WooCommerce: получить и установить почтовый индекс почтового и платежного адреса

Как установить/получить почтовый индекс (почтовый индекс) в woocommerce? Есть ли функция для этого?

т.е. можно ли установить почтовый индекс через любую функцию?

Я также хотел бы знать, как заполнить это поле моими данными (скажем, 546621), если пользователь не вошел в систему?

Ответ 1

Вы можете сделать следующее, чтобы получить/установить почтовые индексы выставления счетов/доставки,

В установите значения,

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

Если вы хотите просто извлечь почтовые индексы, вы можете извлечь их из самой таблицы пользователя,

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

Ответ 2

Вы можете использовать класс WC_Customer, который предоставляет эту функцию. Он загружен внутри класса Woocommerce. Эта информация хранится внутри текущего сеанса.

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

Полная документация для этого класса: http://docs.woothemes.com/wc-apidocs/class-WC_Customer.html

Надеюсь, что это поможет.

Ответ 3

Спасибо @rao! Я искал это в течение нескольких часов... Я смог взять ваш код и использовать его, чтобы вытащить весь адрес пользователя - поэтому я могу использовать каждое поле адреса, чтобы предварительно заполнить форму адреса, которую я создаю в другом месте.

$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>";