【问题标题】:How to add an field from user account into checkout page如何将用户帐户中的字段添加到结帐页面
【发布时间】:2019-02-08 11:36:28
【问题描述】:

我想将用户帐户中的一个字段添加到 woocommerce 的结帐字段中。我已经有一个字段“欧盟增值税号”,其中包含帐户中每个用户的值。我想在结帐页面上的帐单详细信息后显示此字段及其值。

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

// 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;
}

我需要每个客户在每次订购欧盟增值税号时都不要插入,并且已经插入。 提前谢谢!

【问题讨论】:

    标签: php woocommerce


    【解决方案1】:

    你需要给它一个默认值, 试试这个

    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;
    }    
    

    【讨论】:

    • 感谢您的回答,它帮助我找到了我做错了什么。我在没有“默认”值的情况下使用您的代码,它就像魅力一样。使用默认值时出现错误。
    • 结果:add_filter( 'woocommerce_billing_fields' , 'adding_billing_eu_vat_number', 20, 1 ); function adding_billing_eu_vat_number ( $fields ) { $value = get_field('billing_eu_vat_number', 'user_'.get_current_user_id()); $fields['eu_vat_number'] = array( 'label' =&gt; __('EU VAT Number', 'woocommerce'), 'placeholder' =&gt; _x($value, 'placeholder', 'woocommerce'), 'class' =&gt; array('form-row-wide'), 'required' =&gt; true, 'clear' =&gt; true, ); return $fields; }
    猜你喜欢
    • 2022-01-03
    • 1970-01-01
    • 2014-05-05
    • 2021-06-06
    • 2021-05-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多