我发现即使在使用后隐藏了一些结帐字段也存在问题:
// 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;
}
我甚至用插件进行了测试,问题仍然存在,它仍然显示在前端的输入。
添加代码后,您可以看到输入仍然显示但是它变得比其他字段短:
答案 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文件。
它应该有用......