我正在尝试使用AJAX将WooCommerce产品信息从PHP传递到Javascript,以便在某些值发生变化时可以在前端更新。我已经完成了大部分流程,但是我在向JavaScript发送序列化数据并正确接收时遇到了一些问题。
PHP
add_action('wp_ajax_variation_action', 'get_variation_details');
add_action('wp_ajax_nopriv_variation_action', 'get_variation_details');
function get_variation_details(){
$variation_id = $_POST['variation'];
$product = wc_get_product($variation_id);
$sku = $product->get_sku();
$description = $product->get_description();
$downloads = $product->get_downloads();
$downloads = unserialize($downloads);
$variation_info[] = array(
'sku' => $sku,
'description' => $description,
'downloads' => $downloads,
);
echo json_encode($variation_info);
exit;
}
这里我得到了一些值,例如产品SKU和描述,然后将它们放入一个名为$ variation_info的数组中,并且在将它回送给JS之前对该数组进行JSON编码。
这样可以正常工作但是$ downloads变量会出现问题。这里提取的数据存储为序列化字符串,当我将其传递给JS时,它只传递字符串的第一部分。我首先尝试使用unserialize函数,但这似乎不起作用。