在 Woocommerce 中隐藏一些结帐字段问题

Hide some Checkout Fields issue in Woocommerce

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

// 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;
}

我什至用插件测试过,问题仍然存在,它仍然在前端显示输入。

添加代码后,您可以看到输入仍在显示,但比其他字段短:

"In specific cases you need to use the woocommerce_default_address_fields filter." says 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 文件。

它应该有效……

解决了定义 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;
}

解决方法在这里^^