2013-07-23 2 views
10

Я работаю с Woocommerce, и я собираюсь сделать электронное письмо с подтверждением заказа.Получить имя клиента в подтверждении по электронной почте

Он хочет почты сказать:

"Привет [имя клиентов]"

Как получить WooCommerce печатать имя клиентов?

+1

Вы должны показать исследовательские усилия при размещении вопроса: [спросить]. , , Отбросьте папку плагинов в своем любимом редакторе кода и выполните глобальный поиск «подтверждения электронной почты», а затем опубликуйте свои результаты здесь. Возможно, просто имя функции может привести к существующему решению. – brasofilo

ответ

12

Вам нужен объект заказа, поэтому в зависимости от того, какой крюк вы используете, он должен быть там. Попробуйте что-то вроде этого:

add_action('woocommerce_order_status_completed','my_woo_email'); 
function my_woo_email($order_id){ 

      $order = new WC_Order($order_id); 
      $to = $order->billing_email; 
      $subject = 'this is my subject'; 
      $message = 'Hi '.$order->billing_first_name.' '.$order->billing_email;$order->billing_last_name.', thanks for the order!'; 

       woocommerce_mail($to, $subject, $message, $headers = "Content-Type: text/htmlrn", $attachments = "") 

} 

Это тестировался, но должен получить вы начали

+0

как насчет того, если я хочу отобразить имя пользователя клиента? – Gangesh

+0

Получил свои решения. $ order имеет ключ «customer_user», который содержит идентификатор пользователя. – Gangesh

0

вы можете получить данные о клиентах из $order объекта, что-то вроде этого.

$customer = get_userdata($order->get_customer_id()); 
$name = $customer->display_name; 
4

Вот мой стартер пример получения кучу инфо клиента WooCommerce внутри WP_Query цикла:

$args = array(
    'post_status' => 'any', 
    'post_type'  => 'shop_order', 
    'posts_per_page' => -1, 
    'order'   => 'ASC' 
); 

$query = new WP_Query($args); 

while ($query->have_posts()) { 

    $query->the_post(); 

    $order = new WC_Order($query->post->ID); 

    echo $order->billing_address_1; 
    echo $order->billing_address_2; 
    echo $order->billing_city; 
    echo $order->billing_company; 
    echo $order->billing_country; 
    echo $order->billing_email; 
    echo $order->billing_first_name; 
    echo $order->billing_last_name; 
    echo $order->billing_phone; 
    echo $order->billing_postcode; 
    echo $order->billing_state; 
    echo $order->cart_discount; 
    echo $order->cart_discount_tax; 
    echo $order->customer_ip_address; 
    echo $order->customer_user; 
    echo $order->customer_user_agent; 
    echo $order->order_currency; 
    echo $order->order_discount; 
    echo $order->order_key; 
    echo $order->order_shipping; 
    echo $order->order_shipping_tax; 
    echo $order->order_tax; 
    echo $order->order_total; 
    echo $order->payment_method; 
    echo $order->payment_method_title; 
    echo $order->shipping_address_1; 
    echo $order->shipping_address_2; 
    echo $order->shipping_city; 
    echo $order->shipping_company; 
    echo $order->shipping_country; 
    echo $order->shipping_first_name; 
    echo $order->shipping_last_name; 
    echo $order->shipping_method_title; 
    echo $order->shipping_postcode; 
    echo $order->shipping_state; 
} 
wp_reset_postdata(); 

Надеюсь, это будет полезно для кого-то другого.

4

Начиная с WooCommerce 3.x свойства объекта $order не должны быть доступны напрямую, как предложено в предыдущих ответах. Правильный путь:

echo 'Hi ' . $order->get_billing_first_name() . ' ' . $order->get_billing_last_name(); 
Смежные вопросы