删除了仍然需要的Woocommerce Checkout字段

时间:2017-10-03 12:39:36

标签: php wordpress woocommerce hook-woocommerce

我删除了特定的Woocoomerce结帐字段,因为提货订单不需要这些字段。

add_filter( 'woocommerce_checkout_fields' , 'custom_override_checkout_fields' );

function custom_override_checkout_fields( $fields ) {
    unset($fields['billing']['billing_company']);
    unset($fields['billing']['billing_address_1']);
    unset($fields['billing']['billing_address_2']);
    unset($fields['billing']['billing_city']);
    unset($fields['billing']['billing_postcode']);
    unset($fields['billing']['billing_country']);
    unset($fields['billing']['billing_state']);
    unset($fields['order']['order_comments']);
    return $fields;
}

这非常适合删除字段,但不允许我结帐。我收到以下错误:

enter image description here

我还试图将必需的数组项更改为FALSE,但无济于事。

$fields['billing']['billing_company']['required'] = false;
$fields['billing']['billing_address_1']['required'] = false;
$fields['billing']['billing_address_2']['required'] = false;
$fields['billing']['billing_city']['required'] = false;
$fields['billing']['billing_postcode']['required'] = false;
$fields['billing']['billing_country']['required'] = false;
$fields['billing']['billing_state']['required'] = false;

我使用店面主题以及Woocommerce 3.1.2

2 个答案:

答案 0 :(得分:1)

在版本3之后的Woocommerce中,这是一件令人讨厌的事情。要么降级到早期版本,要么通过特别是国家允许这些细节。您可以使用css或JS隐藏表单输入,但在woocommerce设置中设置所需的国家/地区。

答案 1 :(得分:0)

与“未设置字段”类似的问题,因此只需尝试将优先级设置为“ 100”即可 例如:add_filter('woocommerce_checkout_fields','checkout_fields',100);

来源:

if(!function_exists('checkout_fields')){
    function checkout_fields($fields){
        unset($fields['billing']['billing_address_1']);
        unset($fields['billing']['billing_address_2']);
        unset($fields['billing']['billing_city']);
        unset($fields['billing']['billing_postcode']);
        unset($fields['billing']['billing_country']);
        unset($fields['billing']['billing_state']);
        return $fields;
    }
    add_filter('woocommerce_checkout_fields', 'checkout_fields', 100);
}