如何将用户帐户中的字段添加到结帐页面

时间:2019-02-08 11:36:28

标签: php woocommerce

我想将用户帐户中的字段添加到woocommerce的结帐字段中。我已经有一个字段“ EU VAT Number”,其中包含帐户中每个用户的值。我想在结帐页面上的帐单明细之后显示此字段及其值。

我创建了一个过滤器,但是它只显示没有值的字段标签。 下面是我的代码

// Display a custom field on checkout and on My account > edit 
billing address

add_filter( 'woocommerce_billing_fields' , 
'adding_billing_eu_vat_number', 20, 1 );
$vat = get_field('billing_eu_vat_number', 
      'user_'.get_current_user_id());

if( $vat = get_field( 'billing_eu_vat_number',  
   'user_'.get_current_user_id() ) ) { echo "<h3 
   style='margin:0;font-weight: 600;'>" . 'EU VAT  NUMBER: '  .  
   $vat . '</h3>' ; }


function adding_billing_eu_vat_number ( $fields ) {
 $fields['eu_vat_number'] = array(
    'label'       => __('EU VAT Number', 'woocommerce'),
    'placeholder' => _x($vat, 'placeholder', 'woocommerce'),
    'class'       => array('form-row-wide'),
    'required'    => true,
    'clear'       => true,
 );

 return $fields;
}

我需要每个客户每次订购欧盟编号时都不要插入并且已经插入。 预先谢谢你!

1 个答案:

答案 0 :(得分:0)

您需要为其提供默认值, 试试这个

add_filter( 'woocommerce_billing_fields' , 'adding_billing_eu_vat_number', 20, 1 );

function adding_billing_eu_vat_number ( $fields ) {
  $eu_vat_number = get_field('billing_eu_vat_number', 'user_'.get_current_user_id());
  $fields['eu_vat_number'] = array(
    'label'       => __('EU VAT Number', 'woocommerce'),
    'placeholder' => _x($vat, 'placeholder', 'woocommerce'),
    'class'       => array('form-row-wide'),
    'required'    => true,
    'clear'       => true,
    'default'     => $eu_vat_number;
  );

 return $fields;
}