无法保存WooCommerce结帐的自定义复选框值

麦克风

我创建了在帐单后将复选框添加到WooCommerce结帐功能。

出现复选框,前端一切正常。

add_filter( 'woocommerce_after_checkout_billing_form' , 'add_field_sendy_woocommerce_agree', 9);

function add_field_sendy_woocommerce_agree( ) {

    woocommerce_form_field( 'sendy_woocommerce_agree', array(
    'type'          => 'checkbox',
    'label'         => __('Subscribe to our Newsletter.'),
    'required'  => false,
    'default' => 1 
    ),  WC()->checkout->get_value( 'sendy_woocommerce_agree' ));                               
}

问题在于该复选框未另存为元数据。wp_postmeta表中,_sendy_woocommerce_agree提交后缺少元密钥。

所以我无法使用 $xyz = $order->get_meta( '_sendy_woocommerce_agree' );

我究竟做错了什么?

7uc1f3r

请尝试以下方式

function add_field_sendy_woocommerce_agree( $checkout ) {

    woocommerce_form_field( 'sendy_woocommerce_agree', array(
        'type'          => 'checkbox',
        'label'         => __('Subscribe to our Newsletter.'),
        'required'  => false,
        'default' => 1 
    ),  $checkout->get_value( 'sendy_woocommerce_agree' ));                               
}
add_filter( 'woocommerce_after_checkout_billing_form' , 'add_field_sendy_woocommerce_agree', 10, 1 );

// Save
function action_woocommerce_checkout_create_order( $order, $data ) {
    if ( isset($_POST['sendy_woocommerce_agree']) && ! empty($_POST['sendy_woocommerce_agree']) ) {
        $order->update_meta_data( 'sendy_woocommerce_agree', sanitize_text_field( $_POST['sendy_woocommerce_agree'] ) );
    } 
}
add_action( 'woocommerce_checkout_create_order', 'action_woocommerce_checkout_create_order', 10, 2 );

// Display the custom field value on admin order pages after billing adress:
function action_woocommerce_admin_order_data_after_billing_address( $order ) {
    echo '<p><strong>'.__('Sendy').':</strong> ' . $order->get_meta('sendy_woocommerce_agree') . '</p>'; 
}
add_action( 'woocommerce_admin_order_data_after_billing_address', 'action_woocommerce_admin_order_data_after_billing_address', 10, 1 );

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

如何从WooCommerce结帐保存自定义复选框字段状态?

自定义复选框显示或隐藏Woocommerce结帐中的自定义通知

根据自定义“ woocommerce_variation_option”将复选框添加到WooCommerce结帐页面

在WooCommerce结帐中添加一个自定义复选框,该值以管理员编辑顺序显示

在结帐和我在WooCommerce中的帐户之间同步新闻稿自定义复选框

如何在wordpress插件的自定义元框中保存多个复选框值?

如何使用共享首选项保存自定义列表视图的复选框值

垫复选框自定义颜色无法更改

AngularJS复选框已选中自定义值

如何获取自定义复选框的值

无法将选中的值从自定义复选框组件传递给父组件

网格中的CSS自定义复选框-无法删除原始复选框

自定义复选框问题

自定义Android复选框

自定义Bootstrap复选框

为什么我的 PHP 代码不允许我在 WooCommerce 中保存未选中的自定义复选框?

勾选框时无法触发自定义复选框

在管理面板中向woocommerce quickedit添加自定义复选框

更改Woocommerce购物车项目价格的产品自定义复选框选项

Woocommerce中管理员编辑产品的复选框自定义字段

自定义复选框,在WooCommerce购物车页面中添加费用

Woocommerce变量订阅自定义字段复选框设置为默认未选中

向WooCommerce产品变体选项中添加自定义复选框

Woocommerce 优惠券添加自定义复选框

在 Woocommerce 的前端显示自定义单选和复选框产品设置数据

购物车页面Woocommerce中的自定义“条款和条件”接受复选框

基于Woocommerce产品变体库存数据的自定义显示复选框

复选框字段,用于在WooCommerce中添加/删除自定义费用

在WooCommerce Thankyou页面上显示自定义复选框字段状态