【问题标题】:Account checkout-fields not working in woocommerce帐户结帐字段在 woocommerce 中不起作用
【发布时间】:2016-07-02 08:15:06
【问题描述】:

我正在 woocommerce 结帐表单中设计我选择的字段,虽然有些工作正常,但与帐户关联的字段无法正常工作。 我从this 回答中获得了帮助,但仍然无法正确加载帐户字段。

我正在使用此代码在 form-b​​illing.php 中生成这些字段

woocommerce_form_field( 'account_username', $checkout->checkout_fields['account']['account_username'],
          $checkout->get_value( 'account_username') );

woocommerce_form_field( 'account_password', $checkout->checkout_fields['account']['account_password'],
          $checkout->get_value( 'account_password') );

woocommerce_form_field( 'account_password-2', $checkout->checkout_fields['account']['account_password-2'], $checkout->get_value( 'account_password-2') );

任何帮助将不胜感激。 :)

【问题讨论】:

    标签: php wordpress woocommerce


    【解决方案1】:

    我找到了我的问题的答案,我在我的主题 function.php 中添加了过滤器 custom_override 并制作了我需要的 3 个字段,即用户名、密码和密码 2,然后在我的 form-b​​illing.php 中简单地调用它

    将此代码添加到我的 functions.php

    add_filter( 'woocommerce_checkout_fields' , 'custom_override_checkout_fields' );
    
    // Our hooked in function - $fields is passed via the filter!
    function custom_override_checkout_fields( $fields ) {
         $fields['account']['account_username'] = array(
            'label'     => __('Username', 'woocommerce'),
        'placeholder'   => _x('username', 'placeholder', 'woocommerce'),
        'required'  => true,
        'class'     => array('form-row-wide'),
        'clear'     => true
         );
    
         $fields['account']['account_password'] = array(
           'type' => 'password',
           'required'  => true,
            'label' => __('Account password', 'woocommerce'),
            'placeholder' => _x('Password', 'placeholder', 'woocommerce'),
            'class' => array('form-row-wide')
         );
    
         $fields['account']['account_password-2'] = array(
           'type' => 'password',
           'required'  => true,
            'label' => __('Confirm your password', 'woocommerce'),
            'placeholder' => _x('Re-password', 'placeholder', 'woocommerce'),
            'class' => array('form-row-wide')
    
         );
    
    
    
         return $fields;
    }
    

    然后在我的 form-b​​illing.php

    中调用我的字段
    woocommerce_form_field( 'account_username', $checkout->checkout_fields['account']['account_username'],
                      $checkout->get_value( 'account_username') );
    
    woocommerce_form_field( 'account_password', $checkout->checkout_fields['account']['account_password'], $checkout->get_value( 'account_password') );
    
    woocommerce_form_field( 'account_password-2', $checkout->checkout_fields['account']['account_password-2'], $checkout->get_value( 'account_password-2') );
    

    注意:我在 form-b​​illing.php 的这个循环中覆盖了这些行

    <?php foreach ( $checkout->checkout_fields['billing'] as $key => $field ) : ?>
    
        <?php woocommerce_form_field( $key, $field, $checkout->get_value( $key ) ); ?>
    
    <?php endforeach; ?>
    

    它解决了我的问题,可能对你有帮助:)

    【讨论】:

      猜你喜欢
      • 2018-12-20
      • 1970-01-01
      • 2015-04-20
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2022-01-03
      • 2017-03-27
      相关资源
      最近更新 更多