php 如何删除状态字段,并使它们在woocommerce结帐的每个国家'不需要'

5q4ezhmt  于 2023-10-15  发布在  PHP
关注(0)|答案(2)|浏览(114)

我找到了一种方法来删除github https://gist.github.com/jeherve/a07ccf469025d722ad7016f6953146fd上的状态字段“state”(woocommerce中的结帐页面)(谢谢杰里米埃尔韦!)

function jeherve_remove_state_field( $fields ) {
    unset( $fields['state'] );

    return $fields;
}
add_filter( 'woocommerce_default_address_fields', 'jeherve_remove_state_field' );

我的问题是:删除州字段是否安全,或者已经有国家在woocommerce中设置了州字段是“必需的”?
我是否必须首先将每个国家/地区的所有州字段设置为“不需要”?
我担心的是,在我删除了州字段后,某些特定国家的结账功能将无法正常工作,因为他们需要这个字段。
我不需要像对邮政编码字段那样,让state字段$address_fields =“state”][required]=false,对吧?

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

非常感谢您的帮助。谢谢.

cpjpxq1n

cpjpxq1n1#

您可以使用相同的代码从 checkout 表单中删除状态。

function wc_remove_state_field($fields) {

    unset($fields['state']);
    return $fields;
}

add_filter('woocommerce_default_address_fields', 'wc_remove_state_field');

这不会给结账过程带来任何麻烦。您不需要为所有国家/地区设置此选项。
1 -仍然需要邮政编码才能继续。
2 -无法使用需要按要求状态的支付网关进行操作。

wecizke3

wecizke32#

add_filter('woocommerce_default_address_fields', 'remove_state_validation');

function remove_state_validation($fields) {
    $fields['state']['required'] = false;
    return $fields;
}

相关问题