首页 > 解决方案 > 在 Woocommerce 结帐国家/地区选择字段中使美国成为第一

问题描述

我已经在 woocommerce 结帐时选择了美国作为我的默认国家/地区。除此之外,我还被要求在结帐表格中将“美国”移到国家/地区列表的最顶部。

我创建了一个新过滤器并像这样连接到“woocommerce_countries”钩子:

function change_country_order_in_checkout_form($countries)
{
    $countries = array('US' => $countries['US']) + $countries;

    return $countries;
}

add_filter( 'woocommerce_countries', 'change_country_order_in_checkout_form' );

我的国家列表得到了正确修改,但是 WooCommerce 中的某些东西按字母顺序对国家进行了排序,我想避免这种情况。我尝试添加:

remove_filter('woocommerce_sort_countries', 'wpautop');

但这似乎没有任何区别。任何帮助表示赞赏。

标签: phpwordpresswoocommercehook-woocommercecountries

解决方案


为避免排序,您需要以woocommerce_sort_countries这种方式使用过滤器挂钩:

add_filter('woocommerce_sort_countries', '__return_false');

并首先设置“美国”,试试这个:

add_filter( 'woocommerce_countries', 'change_country_order_in_checkout_form' );
function change_country_order_in_checkout_form($countries)
{
    $usa = $countries['US']; // Store the data for "US" key
    unset($countries["US"]); // Remove "US" entry from the array

    // Return "US" first in the countries array
    return array('US' => $usa ) + $countries;
}

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

在此处输入图像描述


推荐阅读