wordpress - Woocommerce 自定义国家/地区在结帐字段前端排序
问题描述
我正在尝试更改前端国家/地区的顺序 - woocommerce 结帐国家/地区字段。我想先展示具体的国家。为它找到了一些 php 代码,但它似乎对我不起作用。非常感谢任何帮助/指导
这是我尝试过的
add_filter( 'woocommerce_sort_countries', '__return_false' );
add_filter( 'woocommerce_countries', 'handsome_bearded_guy_add_my_country' );
add_filter( 'woocommerce_continents', 'handsome_bearded_guy_add_my_country_to_continents' );
add_filter( 'woocommerce_countries', 'wc_custom_countries_order', 10, 1 );
function handsome_bearded_guy_add_my_country( $countries ) {
$new_countries = array(
'CENTRAL' => __( 'CanaLine.gr', 'woocommerce' ),
'ToumpaSKG' => __( 'CanaLine Τούμπας (SKG)', 'woocommerce' ),
'HlioupoliSKG' => __( 'CanaLine Ηλιούπολης (SKG)', 'woocommerce' ),
'ArgiroupoliATH' => __( 'CanaLine Αργυρούπολης (ATH)', 'woocommerce' ),
'KavalaKAV' => __( 'CanaLine Καβάλας (KAV)', 'woocommerce' ),
);
return array_merge( $countries, $new_countries );
}
function handsome_bearded_guy_add_my_country_to_continents( $continents ) {
$continents['EU']['countries'][] = 'CENTRAL';
$continents['EU']['countries'][] = 'ToumpaSKG';
$continents['EU']['countries'][] = 'HlioupoliSKG';
$continents['EU']['countries'][] = 'ArgiroupoliATH';
$continents['EU']['countries'][] = 'KavalaKAV';
return $continents;
}
function wc_custom_countries_order( $countries ) {
// replace with iso code of the country (example: US or GB)
unset($countries['CENTRAL']);
unset($countries['ToumpaSKG']);
unset($countries['HlioupoliSKG']);
unset($countries['ArgiroupoliATH']);
unset($countries['KavalaKAV']);
// replace with iso code of country AND country name (example: US | United States or GB | United Kingdom (UK)
$countries = ['CENTRAL' => 'CanaLine.gr'] + ['ToumpaSKG' => 'CanaLine Τούμπας (SKG)'] + ['HlioupoliSKG' => 'CanaLine Ηλιούπολης (SKG)'] + ['ArgiroupoliATH' => 'CanaLine Αργυρούπολης (ATH)'] + ['KavalaKAV' => 'CanaLine Καβάλας (KAV)] +$countries;
return $countries;
}
解决方案
尝试添加更高的优先级。
add_filter( 'woocommerce_sort_countries', '__return_false', 999 );
add_filter( 'woocommerce_continents', 'assign_countries_to_continent', 999 );
add_filter( 'woocommerce_countries', 'wc_custom_countries_order', 999, 1 );
function assign_countries_to_continent( $continents ) {
$continents['EU']['countries'][] = 'Country1';
$continents['EU']['countries'][] = 'Country2';
$continents['EU']['countries'][] = 'Country3';
$continents['EU']['countries'][] = 'Country4';
$continents['EU']['countries'][] = 'Country5';
return $continents;
}
function wc_custom_countries_order( $countries ) {
$countries = ['Country1' => 'Country 1'] + ['Country2' => 'Country 2'] + ['Country3' => 'Country 3'] + ['Country4' => 'Country 4'] + ['Country5' => 'Country 5'] + $countries;
return $countries;
}
推荐阅读
- mysql - 即使在非标准位置,也找不到 Mysql 标头
- c# - .net 核心中的 Nunit 并行属性
- c++ - 如何禁用 msvc c++ 编译器的“注意:”提示
- merge - 桌面桥 - 升级设置不起作用
- asp.net-core-mvc - 带有'/'的路由参数在传递给控制器之前被解码
- google-api - 无需重定向即可从网络服务器访问 Google MyBusiness
- javascript - 无法流式传输到未链接的文件
- python-3.x - pip install 出错:“没有名为 pip.__main__ 的模块”
- angular - 在日期之间查询文档(loopback 3 / mongodb)
- batch-file - 网络使用不传递凭据 - 非域帐户