Получите адрес доставки клиента на странице оформления заказа WooCommerce - PullRequest
1 голос
/ 21 мая 2019

Я пытаюсь добавить примерное время доставки к заказам на странице оформления заказа по цене доставки в WooCommerce.

Я разработал, как это сделать, например:

add_action( 'woocommerce_after_shipping_rate', 'blm_action_after_shipping_rate', 20, 2 );

function blm_action_after_shipping_rate ( $method, $index ) {
    if( is_cart() ) {
        return; // Exit on cart page
    }

    // Use $method->method_id in here to check delivery option

}

Теперь, чтобы иметь возможность оценить дни (к сожалению, API доставки не возвращает эти данные), мне нужно узнать страну доставки и штат / провинцию доставки - есть ли способ сделать это?

1 Ответ

1 голос
/ 21 мая 2019

Стоимость доставки рассчитывается по месту доставки клиента.

Итак, вы спросили страну отправления клиента и указали, что вы можете получить объект WC_Customer, используя специальные методы следующим образом:

add_action( 'woocommerce_after_shipping_rate', 'blm_action_after_shipping_rate', 20, 2 );
function blm_action_after_shipping_rate ( $method, $index ) {
    if( is_cart() ) {
        return; // Exit on cart page
    }

    $shipping_country = WC()->customer->get_shipping_country();
    $shipping_state   = WC()->customer->get_shipping_state();

    // Testing output
    echo '<br><small>Country code:' . $shipping_country . ' | State code: ' . $shipping_state . '</small>';
}

Код помещается в файл function.php активной дочерней темы (или активной темы). Проверено и работает.

Если клиент меняет страну и штат, данные обновляются, и новая страна и штат устанавливаются в WC_Customer Объект.

...