关于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进行操作,但效果也不佳。有什么解决方案?