我正在嘗試構建一個插件,它將一些自定義數據添加到WooCommerce訂單中。
本質上,我從自定義按鈕中加載了一個特定的產品頁面,其中有一個url變量集(& my_post_var = {INTEGER})。然後在產品頁面中處理該變種,在WordPress中顯示一些可用的特定信息,並按預期工作。
從此後,按下添加到購物車後,一些自定義數據被推送到購物車會話。 AJAX jQuery和PHP回調都正確運行,jQuery響應也使用PHP $ _SESSION變量正確填充。
的問題是在這之後,當購物車頁面顯示,其中顯示的數據是從以前& my_post_var = {整數}的一個值,而不是被傳遞的最後一個值。
我沒有使用任何緩存插件,這是一個本地開發wordpress安裝。
有人可以幫我指出什麼可能是錯誤嗎?
這是代碼的一部分可能是更中肯:
function __construct() {
// AJAX callback
function my_ajax_custom_data_callback_inline() {
session_start();
print_r ($_POST);
write_log ('Data inside AJAX callback: ');
write_log (' - DEBUG: _POST data: '. $_POST['my_post_data'][0]); // This outputs the expected value
$_SESSION['my_meta_data'] = $_POST['my_post_data'];
print_r ($_SESSION);
write_log (' - DEBUG: _SESSION DATA: ' . $_SESSION['my_meta_data'][0]); // This outputs the expected value
wp_die();
}
// AJAX hooks
add_action('wp_ajax_' . 'my_custom_data', 'my_ajax_custom_data_callback_inline', 1);
add_action('wp_ajax_nopriv_' . 'my_custom_data', 'my_ajax_custom_data_callback_inline', 1);
if (isset($_SESSION['my_meta_data'])) { // this is not being verified as TRUE
add_filter('woocommerce_add_cart_item_data', 'my_add_cart_item_data', 10, 2);
add_filter('woocommerce_get_cart_item_from_session', 'my_get_cart_items_from_session', 10, 3);
add_filter('woocommerce_get_item_data', 'my_get_item_data', 10, 2);
add_action('woocommerce_add_order_item_meta', 'my_add_values_to_order_item_meta',10,2);
add_action('woocommerce_before_cart_item_quantity_zero', 'my_remove_user_custom_data',10,1);
}
}
非常感謝您