Php 在Woocommerce中不需要“签出发货邮政编码”字段

Php 在Woocommerce中不需要“签出发货邮政编码”字段,php,wordpress,woocommerce,field,checkout,Php,Wordpress,Woocommerce,Field,Checkout,因此,我按照:中的说明更改邮政编码的必填字段 add_filter( 'woocommerce_billing_fields', 'wc_optional_billing_fields' ); function wc_optional_billing_fields( $address_fields ) { $address_fields['shipping_postcode']['required'] = false; return $address_fields; } 不幸

因此,我按照:中的说明更改邮政编码的必填字段

add_filter( 'woocommerce_billing_fields', 'wc_optional_billing_fields' );
function wc_optional_billing_fields( $address_fields ) {
    $address_fields['shipping_postcode']['required'] = false;

    return $address_fields;
}
不幸的是,它没有更改必填字段,而是生成了第二个字段:

谁能指出这里的问题是什么

这是因为您正在使用
woocommerce\u billing\u fields
hook过滤器,该过滤器仅管理配送邮政编码字段的账单字段

您可以尝试使用
woocommerce\u shipping\u fields
filter hook,但它不起作用,因为postcode签出字段是一个非常特殊的字段,只能使用以下hooked函数设置为not required:

add_filter( 'woocommerce_default_address_fields', 'customise_postcode_fields' );
function customise_postcode_fields( $address_fields ) {
    $address_fields['postcode']['required'] = false;

    return $address_fields;
}
因此,正如您所看到的,它同时作用于账单和发货邮政编码字段。显然,不可能将其仅用于发货邮政编码字段,而仅用于账单和发货字段


官方文档教程:

啊,非常感谢您指出这一点,因为我也尝试了woocommerce\u billing\u字段,但仍然没有成功@我已经尝试了所有可能的方法,唯一适合你的方法就是我的答案中的那个…