首页 > 解决方案 > 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;
}

标签: wordpresswoocommerce

解决方案


尝试添加更高的优先级。

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;
}

推荐阅读