Добавьте электронное письмо клиента в текст на странице заказа WooCommerce. - PullRequest
3 голосов
/ 13 марта 2019

В WooCommerce, поверх моей страницы благодарности / получения заказа, я добавил специальный текст со следующим кодом:

add_action( 'woocommerce_thankyou', 'my_order_received_text', 1, 0);
function my_order_received_text(){

    echo '<div class="my_thankyou2"><p>' . __('Your download link was sent to: ') . '</p></div>' ;

}

Как я могу получить адрес электронной почты клиентадобавили в конец пользовательский текст?

1 Ответ

3 голосов
/ 13 марта 2019

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

  • Woocommerce WC_Order метод get_billing_email()
  • Функция WordPress get_post_meta() с мета-ключом _billing_email из идентификатора заказа.

Теперь вы можете установить текст в 2 разных местах :

1) В верхней части страницы с заказом:

add_filter( 'woocommerce_thankyou_order_received_text', 'my_order_received_text', 10, 2 );
function my_order_received_text( $text, $order ){
    if( ! is_a($order, 'WC_Order') ) {
        return $text;
    }
    // Get Customer billing email
    $email = $order->get_billing_email();

    return $text . '<br>
    <div class="my_thankyou2"><p>' . __('Your download link was sent to: ') . $email . '</p></div>' ;
}

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


2) Внизу страницы с заказом:

Используя метод WC_Order get_billing_email() таким образом:

add_action( 'woocommerce_thankyou', 'my_order_received_text', 10, 1 );
function my_order_received_text( $order_id ){
    if( ! $order_id ){
        return;
    }
    $order = wc_get_order( $order_id ); // Get an instance of the WC_Order Object
    $email = $order->get_billing_email(); // Get Customer billing email

    echo '<div class="my_thankyou2"><p>' . __('Your download link was sent to: ') . $email . '</p></div>' ;
}

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


В качестве альтернативы, используя функцию WordPress get_post_meta(), заменив в функции:

$order = wc_get_order( $order_id ); // Get an instance of the WC_Order Object
$email = $order->get_billing_email(); // Get Customer billing email

По следующей строке:

$email = get_post_meta( $order_id, '_billing_email', true ); // Get Customer billing email
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...