Woocommerce在会话中保存了错误的数据

时间:2019-06-01 18:38:02

标签: php wordpress woocommerce

关于Woocommerce会议,我有一个大问题。我尝试在wc会话中将数据数组保存在woocommerce结帐页面中,并在“谢谢”页面中获取它,以便在完成订单时将此值保存到选项中。问题是数据没有正确保存。 我在这里做什么?

add_action( 'woocommerce_cart_calculate_fees', 'daily_add_discount' );

function daily_add_discount() {

//...doing some actions to fill an array before finish the order

if(!empty($final_array_to_save) && $update_used_days_array){

 WC()->session->set('used_discount_days_counts_array_for_user_'.$user_id, $final_array_to_save);
 print_r(WC()->session->get('used_discount_days_counts_array_for_user_'.$user_id));

}

我在这里打印出数组时,它显示的正确数组是:

Array
(
    [2] => Array
        (
            [related_children] => 2
            [used_days] => Array
                (
                    [73] => 1,
                    [75] => 1
                )

        )

)

但是当我在“谢谢”页面上时,我从会话中删除了该数组,并看到了另一个值,即:

add_action('woocommerce_thankyou', 'clear_calendar_values_and_save_discound_data_after_order_done', 10, 1);
function clear_calendar_values_and_save_discound_data_after_order_done($order_id){

    if ( ! $order_id ) return;

    $user_id = get_current_user_id();

    $final_array_to_save = WC()->session->get('used_discount_days_counts_array_for_user_'.$user_id);

    print_r($final_array_to_save);
}

结果:

Array
(
    [2] => Array
        (
            [related_children] => 2
            [used_days] => Array
                (
                    [75] => 1
                )

        )

)

我尝试保存简单的单词,效果很好。也可以尝试使用Cookie进行操作,但效果也不佳。有什么解决方案?

0 个答案:

没有答案