programing

확인 이메일에 고객 이름 가져오기

lastmoon 2023. 3. 13. 20:47
반응형

확인 이메일에 고객 이름 가져오기

저는 Woocommerce와 협력하고 있으며, 주문 확인 메일을 보내려고 합니다.

메일에는 다음과 같이 기재되어 있습니다.

"안녕하세요 [고객님 이름]"

Woocommerce가 고객 이름을 인쇄하도록 하려면 어떻게 해야 합니까?

오더 오브젝트가 필요하기 때문에 사용하는 후크에 따라 오브젝트가 있어야 합니다.다음과 같은 방법을 사용해 보십시오.

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

}

테스트되지 않았지만 시작할 수 있습니다.

WooCommerce 3.x 현재$order이전 답변에서 제안한 대로 개체의 속성에 직접 액세스해서는 안 됩니다.적절한 방법은 다음과 같습니다.

echo 'Hi ' . $order->get_billing_first_name() . ' ' . $order->get_billing_last_name();

여기 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();

이것이 다른 사람에게 도움이 되기를 바랍니다.

고객 데이터를 얻을 수 있습니다.$order물체, 이런 거.

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

언급URL : https://stackoverflow.com/questions/17819054/get-customers-name-in-confirmation-email

반응형