2015-06-25 2 views

ответ

9

Да, вы можете достичь этого, имея следующий код, где когда-либо вы хотите

global $woocommerce; 
    $countries_obj = new WC_Countries(); 
    $countries = $countries_obj->__get('countries'); 
    echo '<div id="my_custom_countries_field"><h2>' . __('Countries') . '</h2>'; 

    woocommerce_form_field('my_country_field', array(
    'type'  => 'select', 
    'class'  => array('chzn-drop'), 
    'label'  => __('Select a country'), 
    'placeholder' => __('Enter something'), 
    'options' => $countries 
    ) 
    ); 
    echo '</div>'; 

Я испытал то же самое и использовал один и тот же код в шорткоде и использовал этот шорткод на продукте описание

enter image description here

Позвольте мне знать, если это работает для вас тоже.

+0

код отображает все страны. но я хотел бы отобразить конкретные страны, которые я указал на странице настроек (продавать в определенные страны). – Jagankumar

+0

. Получите эти страны в формате массива с ключом (это станет значением параметра раскрывающегося списка) и значением (это будет отображаться в виде текста в выпадающем списке для эта опция) и присвоить то же значение переменной $ countries в коде. – WisdmLabs

+0

'woocommerce_form_field' имеет параметр ** type => country **, и этот делает exaccty, то, что вы ищете .. см. Ответ Braj Kishor Sah .. – honk31

2

Вы можете добавить это к вашему function.php, если вы хотите пользовательские страны:

add_filter('woocommerce_checkout_fields', 'add_custom_select_country'); 
function add_custom_select_country($fields) { 
    $fields['billing']['billing_select_country'] = array(
     'type'  => 'select', 
     'required' => true, 
     'clear'  => false, 
     'options' => array(
     'country' => __('Country', 'woocommerce'), 
     'fr'  => __('France', 'woocommerce'), 
     'gb'  => __('United Kingdom', 'woocommerce'), 
     'ru'  => __('Russian', 'woocommerce') 
    ) 
); 
return $fields; 
} 
4

Вот очень простой и уменьшенный код:

global $woocommerce;  
woocommerce_form_field('billing_country', array('type' => 'country')); 
+0

, если $ key установлен в 'shipping_country' (как в примере), вытащить все страны, что магазин отправит. если он настроен на что-то еще, он вытащит список всех разрешенных стран (как настраиваемый @ woocommerce-> settings-> general). вся функция 'woocommerce_form_field' [здесь] (https://docs.woocommerce.com/wc-apidocs/source-function-woocommerce_form_field.html#1841-2061) – honk31

Смежные вопросы