2013-10-03 14 views
11

Jak ustawić/uzyskać kod pocztowy (kod pocztowy) w woocommerce? Czy jest w tym funkcja?WooCommerce: pobierz i ustaw kod pocztowy i adres rozliczeniowy

tj. Czy mogę ustawić kod pocztowy za pomocą dowolnej funkcji?

Chciałbym również wiedzieć, jak wypełnić to pole moimi danymi (powiedz np. 546621), jeśli użytkownik nie jest zalogowany?

Odpowiedz

10

Można wykonać następujące pobierać/kody pocztowe rozliczeniowy/wysyłki,

Aby ustawić wartości,

$customer = new WC_Customer(); 
$customer->set_postcode('123456');  //for setting billing postcode 
$customer->set_shipping_postcode('123456'); //for setting shipping postcode 

Jeśli chcesz tylko sprowadzić z kodami pocztowymi, można pobrać to od samego meta table użytkownika,

$shipping_postcode = get_user_meta($current_user->ID, 'shipping_postcode', true); 
$billing_postcode = get_user_meta($current_user->ID, 'billing_postcode', true); 
4

Można użyć klasy WC_Customer, która udostępnia tę funkcję. Jest załadowany do klasy Woocommerce. Informacje te są przechowywane w bieżącej sesji.

function set_shipping_zip() { 
    global $woocommerce; 

    //set it 
    $woocommerce->customer->set_shipping_postcode(12345); 
    $woocommerce->customer->set_postcode(12345); 

    //get it 
    $woocommerce->customer->get_shipping_postcode();  
    $woocommerce->customer->get_postcode(); 
} 

Pełną dokumentację dla tej klasy: http://docs.woothemes.com/wc-apidocs/class-WC_Customer.html

nadzieję, że to pomaga.

+0

To działa również. Dzięki! – Rao

+2

Chcę również zauważyć, że ta metoda ustawia tylko dane w zmiennej sesji i nie jest przechowywana w DB. Jeśli chcesz ustawić go w db, musisz ustawić 'billing_postcode' i' shipping_postcode' w tabeli 'wp_usermeta'. – Rao

+0

@Rao, to dokładnie to, czego chcę :-) Chciałbym zapytać o adres dostawy na mojej stronie głównej (aby poinformować użytkowników z góry, jeśli nie wysyłam tutaj) i mieć to już ustawione na stronie realizacji transakcji . –

4

Dzięki @rao! Szukałem tego od wielu godzin ... Udało mi się zabrać twój kod i użyć go do pobrania całego adresu użytkownika - dzięki temu mogę użyć każdego pola adresu do wypełnienia formularza adresu, który tworzę w innym miejscu.

$fname = get_user_meta($current_user->ID, 'first_name', true); 
$lname = get_user_meta($current_user->ID, 'last_name', true); 
$address_1 = get_user_meta($current_user->ID, 'billing_address_1', true); 
$address_2 = get_user_meta($current_user->ID, 'billing_address_2', true); 
$city = get_user_meta($current_user->ID, 'billing_city', true); 
$postcode = get_user_meta($current_user->ID, 'billing_postcode', true); 

echo $fname . "<BR>"; 
echo $lname . "<BR>"; 
echo $address_1 . "<BR>"; 
echo $address_2 . "<BR>"; 
echo $city . "<BR>"; 
echo $postcode . "<BR>"; 
+0

Wiem, że jest to stary wpis, ale możesz uzyskać dostęp do Nazwy adresu rozliczeniowego również za pomocą "billing_first_name" i "billing_last_name", na wypadek, gdyby użyto innej nazwy :) Powinien dotyczyć również adresu wysyłki –

Powiązane problemy