在 Woocommerce Checkout 上删除一个国家的特定州
Remove specific states of a country on Woocommerce Checkout
我正在尝试找到一种方法从 WooCommerce 结帐页面的 "State" 下拉列表中删除一些美国州。
状态列表:
- 夏威夷
- 阿拉斯加
- 武装部队 (AA)
- 武装部队(AE)
- 武装部队 (AP)
到目前为止我做了什么:
我一直在手动删除它们,如 link 中所述。但这不是一个好方法,因为每次更新 WooCommerce 时更改都会被覆盖。
我找到的备选方案:
在这个 link 上,如果满足特定条件,有一种方法可以 设置 运输状态。
我想知道我是否可以 unset 五个状态。这听起来比 setting 50 个州更合乎逻辑。但不幸的是,我找不到任何有用的东西。
有什么可能的解决方案吗?
最好的方法是使用过滤器,将此代码段添加到您的主题中 functions.php
/**
* Modify Woocommerce states array
*
* @param array $states, collection of all $states
* @return array $states, modified array.
*/
add_filter( 'woocommerce_states', function( $states ){
// Unset Hawaii
unset( $states['US']['HI'] );
return $states;
}, 999);
您可以像这样取消设置任何状态。
最简单的方法是使用专用过滤器挂钩 woocommerce_states
删除它们,方法如下:
add_filter( 'woocommerce_states', 'custom_us_states', 10, 1 );
function custom_us_states( $states ) {
$non_allowed_us_states = array( 'AK', 'HI', 'AA', 'AE', 'AP');
// Loop through your non allowed us states and remove them
foreach( $non_allowed_us_states as $state_code ) {
if( isset($states['US'][$state_code]) )
unset( $states['US'][$state_code] );
}
return $states;
}
代码进入您的活动子主题(或活动主题)的 functions.php 文件。测试和工作。
Then you can add some condition or make a custom settings page like in the threads below:
我正在尝试找到一种方法从 WooCommerce 结帐页面的 "State" 下拉列表中删除一些美国州。
状态列表:
- 夏威夷
- 阿拉斯加
- 武装部队 (AA)
- 武装部队(AE)
- 武装部队 (AP)
到目前为止我做了什么:
我一直在手动删除它们,如 link 中所述。但这不是一个好方法,因为每次更新 WooCommerce 时更改都会被覆盖。
我找到的备选方案:
在这个 link
有什么可能的解决方案吗?
最好的方法是使用过滤器,将此代码段添加到您的主题中 functions.php
/**
* Modify Woocommerce states array
*
* @param array $states, collection of all $states
* @return array $states, modified array.
*/
add_filter( 'woocommerce_states', function( $states ){
// Unset Hawaii
unset( $states['US']['HI'] );
return $states;
}, 999);
您可以像这样取消设置任何状态。
最简单的方法是使用专用过滤器挂钩 woocommerce_states
删除它们,方法如下:
add_filter( 'woocommerce_states', 'custom_us_states', 10, 1 );
function custom_us_states( $states ) {
$non_allowed_us_states = array( 'AK', 'HI', 'AA', 'AE', 'AP');
// Loop through your non allowed us states and remove them
foreach( $non_allowed_us_states as $state_code ) {
if( isset($states['US'][$state_code]) )
unset( $states['US'][$state_code] );
}
return $states;
}
代码进入您的活动子主题(或活动主题)的 functions.php 文件。测试和工作。
Then you can add some condition or make a custom settings page like in the threads below: