$_SESSION正在被覆盖,而不是被追加



我在wordpress插件中有一个ajax,它可以执行以下操作,

function hamper_builder_add_product() {
$product = wc_get_product($_POST['product_id']);
$_SESSION['hamper_products'][] = $_POST['product_id'];
die(print_r($_SESSION));
}

当点击添加按钮时,它会被触发,它应该将产品id添加到会话中的hamper_products数组中,如果用户点击添加产品1,然后点击产品2,我希望响应是这样的,

Array ( [hamper_products] => Array ( [0] => 1, [1] => 2 ) ),

然而,所发生的一切都是数组有一个索引被覆盖,我做错了什么?

请记住,Wordpress不使用PHP的会话,它是核心设计决策。据我所知,你正在使用WooCommerce,那么最好利用它的功能进行会话:

$hamperProducts =  WC()->session->get('hamper_products');
$hamperProducts[] = $_POST['product_id'];
WC()->session->set('hamper_products', $hamperProducts);

毕竟,如果您想使用PHP的会话,请确保在使用前调用session_start

最新更新