【问题标题】:Make woocommerce checkout fields optional将 woocommerce 结帐字段设为可选
【发布时间】:2018-06-23 07:59:04
【问题描述】:

我已经按照下面的代码使结帐字段成为可选的方法。但是,我发现非登录用户提交订单时,会跳出填写地址栏的提示。

add_filter( 'woocommerce_default_address_fields' , 'custom_override_default_address_fields' );
function custom_override_default_address_fields($address_fields) {

    $address_fields['first_name']['required'] = false;
    $address_fields['last_name']['required'] = false;
    $address_fields['address_1']['required'] = false;
    $address_fields['address_1']['placeholder'] = '';
    $address_fields['address_2']['required'] = false;
    $address_fields['address_2']['placeholder'] = '';
    $address_fields['postcode']['required'] = false;
    $address_fields['city']['required'] = false;

return $address_fields;
}

顺便说一句,我还尝试将计费和运输字段分别作为链接WooCommerce: Disabling checkout fields with a filter hook中的方法可选。

【问题讨论】:

  • 您的代码非常适合登录或未登录的用户...
  • 我想是的。但是未登录用户填写地址字段的提醒和登录用户填写邮政编码的提醒。

标签: woocommerce field optional checkout


【解决方案1】:

根据您希望将哪些结帐字段设为可选(或必填),您需要连接两个过滤器。第一个过滤器是woocommerce_default_address_fields,用于地址字段,第二个过滤器是woocommerce_billing_fields,用于billing_phonebilling_email 字段。

add_filter( 'woocommerce_default_address_fields', 'adjust_requirement_of_checkout_address_fields' );
function adjust_requirement_of_checkout_address_fields( $fields ) {
    $fields['first_name']['required']   = false;
    $fields['last_name']['required']    = false;
    $fields['company']['required']      = false;
    $fields['country']['required']      = false;
    $fields['address_1']['required']    = false;
    $fields['address_2']['required']    = false;
    $fields['city']['required']         = false;
    $fields['state']['required']        = false;
    $fields['postcode']['required']     = false;

    return $fields;
}

add_filter( 'woocommerce_billing_fields', 'adjust_requirement_of_checkout_contact_fields');
function adjust_requirement_of_checkout_contact_fields( $fields ) {
    $fields['billing_phone']['required']    = false;
    $fields['billing_email']['required']    = false;

    return $fields;
}

【讨论】:

  • 应该被接受的答案,就像一个魅力
【解决方案2】:

转到此线程 Make checkout fields required in Woocommerce checkout 并将不需要的字段的 true 更改为 false 例如:更改 $address_fields['postcode']['required'] = true; 到 $address_fields['postcode']['required'] = false;

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2020-07-26
    • 2018-12-20
    • 2019-08-07
    • 2018-01-18
    • 2015-04-20
    • 2021-04-02
    • 1970-01-01
    • 2018-05-05
    相关资源
    最近更新 更多