$_SESSION 被覆盖而不是附加

时间:2021-06-27 18:08:28

标签: php wordpress 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 添加到会话中的 happer_products 数组中,如果用户单击产品 1 的添加,然后单击产品 2,我希望响应如下所示,

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

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

1 个答案:

答案 0 :(得分:0)

请记住,Wordpress 不使用 PHP 的会话,它是核心设计决策。据我了解,您正在使用 WooCommerce,然后更好地利用其会话功能:

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

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

相关问题