私はいくつかのカスタムデータをWooCommerceの注文に追加するプラグインを構築しようとしています。
私は、URL変数(& my_post_var = {INTEGER})が設定されているカスタムボタンから、基本的に特定の製品ページをロードしています。このvarは、製品ページで処理され、WordPressで利用可能な特定の情報が表示され、意図したとおりに動作します。
ここから、カートに追加を押すと、カスタムデータの一部がカートセッションにプッシュされます。 AJAX jQueryとPHPコールバックは正しく実行され、jQueryレスポンスもPHP $ _SESSION変数を使用して正しく設定されます。
問題は、データが表示されたカートページが表示され、前& my_post_var = {INTEGER}値、渡されなかった最後の値から1である場合、それ以降です。
私はキャッシュプラグインを使用していません。これは、ローカル開発用ワードプレスインストールです。
ここで何が間違っているのかを特定するのに助けてくれる人がいますか?
この
はおそらく、より適切であるコードの一部です: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);
}
}
はどうもありがとうございまし