在Woocommerce中将状态结帐字段设为可选

时间:2018-11-08 10:26:04

标签: php wordpress woocommerce state checkout

自Woo 3.5.1起,“结算状态”字段在某些国家/地区是必填字段,我正在尝试弄清如何使其不强制。

这是我正在使用的代码,无法正常工作。这似乎是一个核心变化,我不知道是否有新的钩子?

代码:

add_filter( 'woocommerce_billing_fields', 'remove_mandatory_state_billing', 10, 1 );
function remove_mandatory_state_billing( $address_fields ) {
    $address_fields['billing_state']['required'] = false;
    return $address_fields;
}

add_filter( 'woocommerce_shipping_fields', 'remove_mandatory_state_shipping', 10, 1 );
function remove_mandatory_state_shipping( $address_fields ) {
    $address_fields['shipping_state']['required'] = false;
    return $address_fields;
}

非常感谢您的帮助。

1 个答案:

答案 0 :(得分:0)

以下代码将使Woocommerce中的所有国家/地区的州字段均为可选:

add_filter( 'woocommerce_get_country_locale', 'custom_country_locale_state_optional', 10, 1 );
function custom_country_locale_state_optional( $locale ) {
    foreach( $locale as $country_code => $state_field ) {
        if( isset($locale[$country_code]['state']) ) {
            $locale[$country_code]['state']['required'] = false;
        }
    }
    return $locale;
}

代码进入您的活动子主题(活动主题)的function.php文件中。经过测试,可以正常工作。

相关:Make state checkout field required for a specific country in Woocommerce