让美国在 Woocommerce 结账国家/地区中排名第一 选择字段

use*_*370 4 php wordpress countries woocommerce hook-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' );
Run Code Online (Sandbox Code Playgroud)

我的国家/地区列表已正确修改,但随后 WooCommerce 中的某些内容按字母顺序对国家/地区进行排序,我想避免这种情况。我尝试添加:

remove_filter('woocommerce_sort_countries', 'wpautop');
Run Code Online (Sandbox Code Playgroud)

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

Loi*_*tec 5

为了避免排序,您需要woocommerce_sort_countries这样使用过滤器钩子:

add_filter('woocommerce_sort_countries', '__return_false');
Run Code Online (Sandbox Code Playgroud)

要首先设置“US”,请尝试以下操作:

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;
}
Run Code Online (Sandbox Code Playgroud)

代码位于活动子主题(或活动主题)的 function.php 文件中。经过测试并有效。

在此输入图像描述