php将数据保存在客户端,php – 将数据保存到WooCommerce会话

我正在尝试将简单的文本输入保存到WooCommerce会话中.当用户向购物车添加内容时会创建会话.

我的输入字段存在于自定义页面模板中,该模板将在购物车之后但在结帐之前放置在用户流中:cart>我的模板>查看.

至今

用于捕获数据的简单表单(自定义模板文件)

Join an existing group

接收和设置数据(我无法确定何时/如何运行此数据.在我的自定义页面中)

UPDATE

我已将下面的代码添加到页面模板的顶部,以便页面自行处理,然后重定向到结帐.

function set_and_save_input_to_session(){

if( !is_admin( ) ) {

// User input

if( ! empty( $_POST['create_new_group'] ) ) {

$group_input_value = $_POST['create_new_group'];

// Set session and save data

WC()->session->set( 'group_order_data', $group_input_value );

wp_redirect( 'http://localhost:28/site.dev/checkout' );

exit();

}

}

get_header();

add_action(‘woocommerce_checkout_process’,’set_and_save_input_to_session’);

检索和保存数据

function retrieve_and_save_group_input_value_to_order_meta() {

$retrived_group_input_value = WC()->session->get( 'group_order_data' );

update_post_meta( $order_id, '_create_new_group', $retrived_group_input_value );

}

add_action('woocommerce_checkout_update_order_meta', 'retrieve_and_save_group_input_value_to_order_meta');

我目前正在努力解决对我来说更复杂的解决方案,因此,如果有人能指出我的流程到目前为止存在任何重大缺陷,我将不胜感激.

UPDATE

我可以确认表单正在接收数据,并且WC() – > session->设置是设置数据. (感谢@Firefog建议使用$_SESSION全局)

在进一步调查并找到var_dump会话数据的正确位置后,我发现数据正在使用我的原始方法设置为会话.

数据已设置,但我无法确定为什么数据不会保存到订单中.

解决方法:

更多的是说谢谢你解决我的问题.但这也是一个答案:

由于回调函数中没有$order_id参数,因此无法更新post meta.这应该做的伎俩:

function retrieve_and_save_group_input_value_to_order_meta( $order_id ) {

$retrived_group_input_value = WC()->session->get( 'group_order_data' );

update_post_meta( $order_id, '_create_new_group', $retrived_group_input_value );

}

add_action('woocommerce_checkout_update_order_meta', 'retrieve_and_save_group_input_value_to_order_meta');

标签:php,woocommerce,session,wordpress-plugin,form-submit

来源: https://codeday.me/bug/20190829/1761486.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值