2015-11-24 4 views
2

Я пытаюсь переопределить крюк woocommerce_get_country_locale во многих отношениях, почему его значение означает?WordPress woocommerce_get_country_locale hook не работает

Мне нужно удалить поле состояния для конкретной страны!

Ниже показано, что я пробовал?

Покушение 1

function custom_override_locale_setting ($locale) { 
    $locale['HK']['state']['hidden'] = true; 
    return $locale; 
} 
add_filter('woocommerce_get_country_locale', 'custom_override_locale_setting'); 

Attempt2

apply_filters('woocommerce_get_country_locale', array(
      'HK' => array(
       'postcode' => array(
       'required' => false 
      ), 
       'city' => array(
       'label'  => __('Town/District', 'woocommerce'), 
       //'placeholder' => __('Town/District', 'woocommerce') 
      ) 
      ) 
      )); 

Пожалуйста, дайте предложение, чтобы достичь, спасибо.

+0

https://wordpress.org/support/topic/woocommerce-remove-fields-on-edit-address выглядит, как это могло бы иметь то, что вы хотите - ответ Рольф Хассель в – Steve

+0

«состояние» => массив (сделал 'hidden' => true) делать что-либо при добавлении в свой фильтр? – Steve

ответ

0

Вы можете попробовать добавить в массив:

 'state' => array(
      'required' => false 
     ) 

Подобно Франции в функции, например.

Так что ваш фильтр будет выглядеть

apply_filters('woocommerce_get_country_locale', array(
       'HK' => array(
       'postcode' => array(
        'required' => false 
       ), 
       'city' => array(
       'label'  => __('Town/District', 'woocommerce'), 
       //'placeholder' => __('Town/District', 'woocommerce') 
       ) 
       'state' => array(
        'required' => false 
       ) 
      ) 
     )); 

Функция, которая контролирует это живет в

woocommerce/includes/class-wc-countries.php

Это может быть удален там, но вы должны проявлять большую осторожность, чтобы убедиться, что это поддерживается при обновлении WooCommerce. Я бы не рекомендовал редактировать файлы основных тем таким образом, но это может привести к желаемому результату.

Это может помочь в обеспечении хорошего фона для функции Получаете Страна Язык: http://woocommerce.wp-a2z.org/oik_api/wc_countriesget_country_locale/?bwscid1=2

И это может дать еще один способ - показывает, что эта страна не допускается, если вы хотите, чтобы полностью удалить HK: http://woocommerce.wp-a2z.org/oik_api/wc_countriesget_allowed_countries/

Что-то в ответах здесь может помочь направить вас в более правильный способ сделать это: https://wordpress.stackexchange.com/questions/73062/how-to-force-wordpress-to-temporarily-switch-locale-using-qtranslate

Это также может объяснить некоторые из BEHA viour: https://wordpress.stackexchange.com/questions/120741/cant-change-a-label-in-woocommerce-with-the-normal-filter

+0

off-course Я не редактировал основной файл, я просто перезаписываю, теперь добавляя этот массив ''state' => ( 'required' => false )', состояние удалено? – Sathish

+0

Я думаю, что когда мы даем требуемый, тогда его нужно сделать 'обязательным' полем, но мне нужно удалить поле состояния для конкретной страны! – Sathish

+0

Боюсь, я не знаю и не могу проверить здесь. Поскольку у Франции нет состояний как таковых, я предполагал, что это удалит его - работает ли «state» => array ( '')? Вы можете редактировать файл ядра экспериментально - или в крайнем случае. – Steve

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