php - 在 Woocommerce Checkout 上删除一个国家的特定州

标签 php wordpress woocommerce state countries

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

状态列表:

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

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

我找到的替代方案: 在这个链接上WooCommerce restrict shipping to states based on category ,如果满足特定条件,则有一种方法可以设置运输状态。 我想知道是否可以取消设置 五个状态。这对我来说听起来比设置 50 个状态更合乎逻辑。但不幸的是,我找不到任何有用的东西。

有什么想法可以成为可能的解决方案吗?

最佳答案

最简单的方法是使用专用过滤器 Hook 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:

关于php - 在 Woocommerce Checkout 上删除一个国家的特定州,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53678249/

相关文章:

php - 如何在不使用命令行的情况下获取我的 Square Connect 位置

wordpress - 我可以在 Wordpress wp_nav_menu() 中的 anchor 标记后添加分隔符 <li> 吗?

css - WordPress 响应主题没有完全响应

php - Wordpress 当前类别的子类别列表

php - PHP 转换中所需的 HTML5 事件自定义验证

php - 如何在 $woocommerce->mailer() 中添加 Reply-To header

php - 从摘录中删除短代码(有代码)

php - 如何获取左连接 mySQL 表的 id?

php - 我可以在模板文件中的 WordPress 中获得 "base URL"吗?

wordpress - 按 IP 限制 woocommerce 订单