在Woocommerce中隐藏一些Checkout Fields问题

时间:2018-01-26 10:57:53

标签: php wordpress woocommerce field checkout

我发现即使在使用后隐藏了一些结帐字段也存在问题:

// woocommerce checkout page  
add_filter( 'woocommerce_checkout_fields' , 'custom_override_checkout_fields' );
function custom_override_checkout_fields( $fields ) {

unset($fields['billing']['billing_company']);
unset($fields['billing']['billing_country']);
unset($fields['billing']['billing_state']);
return $fields;
}

我甚至用插件进行了测试,问题仍然存在,它仍然显示在前端的输入。

添加代码后,您可以看到输入仍然显示但是它变得比其他字段短

 *after adding the code you can see that the input is still showing but it become shorter than the other Fields

2 个答案:

答案 0 :(得分:2)

解决了定义add_action()函数中使用的优先级和参数数量的问题:

// woocommerce checkout page  
add_filter( 'woocommerce_checkout_fields' ,'custom_override_checkout_fields',20,1 );
function custom_override_checkout_fields( $fields ) {

unset($fields['billing']['billing_company']);
unset($fields['billing']['billing_country']);
unset($fields['billing']['billing_state']);
return $fields;
}

这是解决方案^^

答案 1 :(得分:0)

  

在特定情况下,您需要使用woocommerce_default_address_fields过滤器。”related official woocommerce documentation ...

所以你应该尝试这样做:

add_filter( 'woocommerce_default_address_fields', 'custom_checkout_fields' 20, 1 );
function custom_checkout_fields( $address_fields ) {

    unset($address_fields['company']);
    unset($address_fields['country']);
    unset($address_fields['state']);

    return $address_fields;
}

代码进入活动子主题(或活动主题)的function.php文件。

它应该有用......