2014-08-27 4 views
4

WooCommerce в Wordpress определяет класс страны следующим образом (отредактировано сюда краткость)Получение названия страны из кода страны в WooCommerce

class WC_Countries { 
    public $countries; 

    public function __construct() { 
     global $woocommerce, $states; 

     $this->countries = apply_filters('woocommerce_countries', array(
      'AF' => __('Afghanistan', 'woocommerce'), 
      'AX' => __('Åland Islands', 'woocommerce'), 
      'AL' => __('Albania', 'woocommerce'), 
      'DZ' => __('Algeria', 'woocommerce'), 

     )); 
    } 
} 

При размещении заказа, код страны записываются в wp_postmeta таблицу Wordpress и может экстрагировать везде, где идентификатор заказа можно получить с помощью get_post_meta() функции:

get_post_meta($order->id, '_shipping_country', true), 

вопрос заключается в том, что Weare просто потянув два символа из БД, как может код страны груза (например, AF) будет переведен в страну Имя, указанное в класс стран?

ответ

13

Вы можете получить доступ к классу WC_Countries с помощью WC()->countries. Чтобы получить название страны от заказа, вы должны использовать:

WC()->countries->countries[ $order->shipping_country ]; 
+0

И как получить название страны на определенном языке? Например, sk_SK? –

2

Чтобы получить имя штата из кода состояния, которое вы можете использовать.

WC()->countries->states[$order->billing_country][$order->billing_state]; 
-1
function a000_remove_bundles_counting(){ 
////////////////////////////// 
global $woocommerce_bundles; 
remove_filter('woocommerce_cart_contents_count', 
array($woocommerce_bundles->display, 'woo_bundles_cart_contents_count')); 
} 
add_action('init', 'a000_remove_bundles_counting'); 
/////////////////////////////////////////////////// 

////////////////////////////////////////////////////// 

function d000_cart_contents_count($count) { 
    global $woocommerce; 
$cat_check = false; 
    foreach ($woocommerce->cart->get_cart() as $cart_item_key => $cart_item) { //foreach 

$product = $cart_item['data']; 

if (has_term('VIP', 'product_tag', $product->id)) {//search product_cat 
$cat_check = true; 
// break because we only need one "true" to matter here 
if (!function_exists('woo_override_checkout_fields')) { 
function woo_override_checkout_fields($fields) { // woo_override_checkout_fields Function 


$fields['billing']['billing_country'] = array(
'type' => 'select', 
'label' => __('Country', 'woocommerce'), 
'options' => array('US' => 'United States(US)') 
); 

$fields['billing']['billing_state'] = array(
'type' => 'select', 
'label' => __('State', 'woocommerce'), 
'options' => array('CA' => 'California(CA)') 

); 

return $fields; 
} //end woo_override_checkout_fields Function 
} 
add_filter('woocommerce_checkout_fields' , 'woo_override_checkout_fields'); 

} // end search product_cat 
    }// end foreach 



return $count; 
} 
add_filter('woocommerce_cart_contents_count', 
'd000_cart_contents_count'); 

Сначала вы установили продукт тег «VIP или что когда-либо вам нравится, и тогда вы будете добавить его в код

if (has_term('VIP', 'product_tag', $product->id)) {//search product_cat 

    $cat_check = true; 
} 

в этой функции смотрит есть ли продукт с» VIP "тег продукта и $cat_check = true;

затем внутри этой функции мы добавляем функцию woo_override_checkout_fields($fields) функция установка ограниченный страна как отправка страна поле.

Внутри woo_override_checkout_fields($fields) { }

Установить какую страну вы хотите показать

$fields['billing']['billing_country'] = array(
'type' => 'select', 
'label' => __('Country', 'woocommerce'), 
'options' => array('US' => 'United States(US)') 
); 



$fields['billing']['billing_state'] = array(
'type' => 'select', 
'label' => __('State', 'woocommerce'), 
'options' => array('CA' => 'California(CA)') 

); 
+0

Это было опубликовано на неправильном вопросе? –

0

Основным классом является класс «WooCommerce», который доступен по всему миру через переменную $ WooCommerce. Он обрабатывает основные функции WooCommerce, другие классы init, хранит переменные сайта и обрабатывает сообщения об ошибках/успехах.

Следуйте за этим образом http://www.phpwala.in/woocommerce/get-full-country-name-from-country-code-in-woocommerce/2015/11, чтобы получить более подробную информацию.

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