为了账号安全,请及时绑定邮箱和手机立即绑定

从 WooCommerce 中的自定义结帐计费字段获取价值

从 WooCommerce 中的自定义结帐计费字段获取价值

PHP
千万里不及你 2023-07-08 17:52:54
我在woocommerce 文档后面的结帐处添加了一个字段,如下所示:/*Add document ID to checkout form*/add_filter( 'woocommerce_checkout_fields' , 'ebani_cedula_checkout_field' );// Our hooked in function - $fields is passed via the filter!function ebani_cedula_checkout_field( $fields ) {    $fields['billing']['cedula'] = array(        'label'     => __('C&eacute;dula de ciudadan&iacute;a', 'woocommerce'),        'placeholder'   => _x('C&eacute;dula', 'placeholder', 'woocommerce'),        'required'  => true,        'class'     => array('form-row-last'),        'clear'     => true,        'priority' => 15    );     return $fields;}然后我想以这种方式在管理订单编辑页面上显示它:/** * Display field value on the order edit page */ add_action( 'woocommerce_admin_order_data_after_billing_address', 'cedula_checkout_field_display_admin_order_meta', 10, 1 );     function cedula_checkout_field_display_admin_order_meta($order){        echo '<p><strong>'.__('C&eacute;dula').':</strong> ' . get_post_meta( $order->get_id(), '_cedula', true ) . '</p>'; }当我进入订单编辑页面时,我得到一个空值,_cedula我不知道为什么,我只是按照文档操作,但它不起作用,如何获取存储在自定义结账字段中的数据?
查看完整描述

1 回答

?
Smart猫小萌

TA贡献1911条经验 获得超7个赞

如果您希望在下订单时保存此自定义账单字段,最好使用操作挂钩,woocommerce_billing_fields而不是woocommerce_checkout_fields像:


add_filter( 'woocommerce_billing_fields' , 'ebani_cedula_checkout_field' );

function ebani_cedula_checkout_field( $fields ) {

    $fields['billing_cedula'] = array(

        'label'       => __('Cédula de ciudadanía', 'woocommerce'),

        'placeholder' => _x('Cédula', 'placeholder', 'woocommerce'),

        'required'    => true,

        'class'       => array('form-row-last'),

        'clear'       => true,

        'priority'    => 15

    );

    return $fields;

}


add_action( 'woocommerce_admin_order_data_after_billing_address', 'cedula_checkout_field_display_admin_order_meta', 10, 1 );

function cedula_checkout_field_display_admin_order_meta($order){

    if( $value = $order->get_meta('_billing_cedula') )

        echo '<p><strong>'.__('Cédula').':</strong> ' . $value . '</p>';

}

现在您的自定义结帐账单字段已保存。


查看完整回答
反对 回复 2023-07-08
  • 1 回答
  • 0 关注
  • 120 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信