在 Woocommerce Checkout 上删除某个国家/地区的特定州

Dan*_*eer 2 php wordpress state countries woocommerce

我试图找到一种方法从 WooCommerce 结帐页面的“州”下拉列表中删除一些美国州。

状态列表:

  1. 夏威夷
  2. 阿拉斯加州
  3. 武装部队 (AA)
  4. 武装部队 (AE)
  5. 武装部队 (AP)

到目前为止我一直在做什么:
我一直在手动删除它们,如本链接中所述。但这不是一个好方法,因为每次更新 WooCommerce 时更改都会被覆盖。

我发现的替代方法: 在此链接上WooCommerce 根据类别限制运输到状态,如果满足特定条件,则可以设置运输状态。我想知道是否可以取消设置五个状态。这听起来比设置50 个状态更合乎逻辑。但不幸的是,我找不到任何有用的东西。

任何想法可能是一个可能的解决方案?

Loi*_*tec 10

最简单的方法是使用专用过滤器钩子以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;
}
Run Code Online (Sandbox Code Playgroud)

代码位于活动子主题(或活动主题)的 functions.php 文件中。测试和工作。

然后您可以添加一些条件或制作自定义设置页面,如下面的线程所示: