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)
但这似乎没有什么区别。任何帮助表示赞赏。
为了避免排序,您需要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 文件中。经过测试并有效。