web-dev-qa-db-fra.com

Obtenir le nom du client dans l'e-mail de confirmation

Je travaille avec Woocommerce et je suis sur le point de faire l'email de confirmation de commande.

Il veut que le courrier dise:

"Bonjour [nom du client]"

Comment obtenez-vous Woocommerce pour imprimer le nom du client?

12
Frederik Skøt

Vous avez besoin de l'objet order, donc, selon le hook que vous utilisez, il devrait être là. Essayez quelque chose comme ça:

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 = "" )

}

Ceci n'est pas testé mais devrait vous aider à démarrer

16
Kyle

A partir de WooCommerce 3.x, les propriétés de l'objet $order ne doivent plus être accessibles directement comme suggéré dans les réponses précédentes. La bonne façon est maintenant:

echo 'Hi ' . $order->get_billing_first_name() . ' ' . $order->get_billing_last_name();
8
Dominik Späte

Voici mon exemple de départ: obtenir une foule d'informations sur les clients WooCommerce dans une boucle 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();

Espérons que cela sera utile pour quelqu'un d'autre.

4
Michael Mizner

vous pouvez obtenir les données client à partir de l'objet $order, quelque chose comme ceci.

$customer = get_userdata( $order->get_customer_id() );
$name = $customer->display_name;
0
Lafif Astahdziq