ข่าวประชาสัมพันธ์

มาร่วมเป็นกำลังใจให้เว็บด้วยการสมัครสมาชิกวีไอพี ~~ เลือกปีที่ท่านต้องการได้โดยไม่ต้องเรียงปี ~~ ปีละ 350 บาท สมัคร 2 ปีลดเหลือ 600 บาท ~~ มีไลน์กลุ่ม VIP จำนวนหลายร้อยท่าน เอาไว้ปรึกษางานซ่อม ~~ เข้าถึงข้อมูลด้านเทคนิค ข้อมูลเชิงลึกมากมาย.....

ปีที่ 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35

ผู้เขียน หัวข้อ: การเลือกปิดอีเมล์บางฉบับเมื่อมีการสั่งซื้อเกิดขึ้น  (อ่าน 10 ครั้ง)

0 สมาชิก และ 1 บุคคลทั่วไป กำลังดูหัวข้อนี้

ออฟไลน์ Prog Man

  • Administrator
  • วิศวกรรมเครื่องกล
  • *****
  • เจ้าของกระทู้
  • Joined: ก.พ. 2567
  • กระทู้: 563
  • สมาชิกลำดับที่ : 25791
    • อีเมล์
   ถ้าเราไม่ปิด WooCommerce จะส่งจดหมายไปถึงลูกค้าหลายฉบับ
ตั้งแต่มีคำสั่งซื้อ, มีการชำระเงิน, ไปจนถึงฉบับปิดจ๊อบคือจัดส่งสินค้าแล้ว

   เราสามารถปิดอีเมล์ที่ต้องการได้ 2 วิธีคือ
1. ปิดที่หน้า Setting / Email ของ WooCommerce
2. ปิดโดยการใช้โค้ด (เลือกปิดบางฉบับได้)

วิธีที่ 2: ใช้โค้ดเพื่อปิดอีเมล (สำหรับนักพัฒนา)

หากคุณต้องการควบคุมผ่านไฟล์ functions.php ของ Theme (แนะนำให้ทำผ่าน Child Theme) หรือใช้ปลั๊กอิน
อย่าง Code Snippets เพื่อสั่งปิดการส่งอีเมลบางประเภทโดยเด็ดขาด สามารถเลือกใช้โค้ดชุดนี้ได้ครับ:
php
โค๊ด: [Select]
add_action( 'woocommerce_email', 'disable_duplicate_woocommerce_emails' );
function disable_duplicate_woocommerce_emails( $email_class ) {
   
    // เลือกปิดตัวใดตัวหนึ่ง เพื่อให้เหลืออีเมลส่งหาลูกค้าฉบับเดียว

    // ตัวเลือก A: ปิดอีเมล Processing (คำสั่งซื้อที่กำลังประมวลผล)
    remove_action( 'woocommerce_order_status_pending_to_processing_notification', array( $email_class->emails['WC_Email_Customer_Processing_Order'], 'trigger' ) );
   
    // ตัวเลือก B: ปิดอีเมล Completed (คำสั่งซื้อที่เสร็จสมบูรณ์แล้ว)
    // remove_action( 'woocommerce_order_status_completed_notification', array( $email_class->emails['WC_Email_Customer_Completed_Order'], 'trigger' ) );
}
ใช้โค้ดอย่างระมัดระวัง

   นี่เป็นตัวอย่างอีเมล์หลังสุด จากการมีคำสั่งซื้อเข้ามาเป็นลำดับ

ตรงนี้มีภาพ! แต่ท่านจะมองไม่เห็น , ท่านต้อง  สมัครสมาชิก หรือ ลงชื่อเข้าระบบ

« แก้ไขครั้งสุดท้าย: 10 ตุลาคม 2569, 10:16:47 โดย Prog Man »

ออฟไลน์ Prog Man

  • Administrator
  • วิศวกรรมเครื่องกล
  • *****
  • เจ้าของกระทู้
  • Joined: ก.พ. 2567
  • กระทู้: 563
  • สมาชิกลำดับที่ : 25791
    • อีเมล์
-อีเมล์ฉบับ Order on Hold

เรื่องรถเป็นเรื่องง่าย

ขอบคุณสำหรับการสั่งซื้อ
สวัสดี John,

We’ve received your order and it’s currently on hold until we can confirm your payment has been processed.

Here’s a reminder of what you’ve ordered:

สรุปคำสั่งซื้อ
รายการสั่งซื้อ #12345 (10 ตุลาคม, 2026)


บันทึกจากลูกค้า
This is a customer note. Customers can add a note to their order on checkout.

It can be multiple lines. If there’s no note, this section is hidden.

ในท้ายอีเมล์จะมีข้อความ
Thanks again! If you need any help with your order, please contact us at
                         admin@fm.auto-nkp.com.
ในฟอร์มหัวข้อ Additional content : Thanks again! If you need any help with your order, please contact us at {store_email}.

HTML template
      View templateCopy file to themeTo override and edit this email template copy woocommerce/templates/emails/customer-on-hold-order.php
to your theme folder: indymall_1.1.4/woocommerce/emails/customer-on-hold-order.php.

ออฟไลน์ Prog Man

  • Administrator
  • วิศวกรรมเครื่องกล
  • *****
  • เจ้าของกระทู้
  • Joined: ก.พ. 2567
  • กระทู้: 563
  • สมาชิกลำดับที่ : 25791
    • อีเมล์
สำหรับการปิดที่อยู่ใบเสร็จ (Billing Address) และที่อยู่จัดส่ง (Shipping Address) ในอีเมล Complete Order
(คำสั่งซื้อที่เสร็จสมบูรณ์แล้ว) ของ WooCommerce สามารถทำได้ 2 วิธีหลักๆ ดังนี้ครับ:

วิธีที่ 1: ใช้โค้ด PHP (แนะนำและปลอดภัยที่สุด)

วิธีนี้จะปิดการแสดงผลที่อยู่เฉพาะในอีเมลตัวที่กำหนด โดยไม่ต้องไปแก้ไฟล์ระบบของ WooCommerce ทำให้เวลาอัปเดตปลั๊กอิน
โค้ดจะไม่หายครับ ให้คุณนำโค้ดด้านล่างนี้ไปวางไว้ที่ท้ายไฟล์ functions.php ของ Theme ตัวลูก (Child Theme) ที่คุณใช้งานอยู่
หรือใช้ปลั๊กอินประเภท Code Snippets (เช่น ปลั๊กอิน Code Snippets หรือ WPCode) ในการรันโค้ดครับ:
php
โค๊ด: [Select]
add_filter( 'woocommerce_email_customer_details_fields', 'custom_remove_addresses_from_completed_email', 10, 3 );
function custom_remove_addresses_from_completed_email( $fields, $sent_to_admin, $email ) {
    // ตรวจสอบว่าเป็นอีเมลคำสั่งซื้อเสร็จสมบูรณ์ (customer_completed_order) ใช่หรือไม่
    if ( 'customer_completed_order' === $email->id ) {
        // ลบข้อมูลที่อยู่ใบเสร็จและที่อยู่จัดส่งออก
        unset( $fields['billing_address'] );
        unset( $fields['shipping_address'] );
    }
    return $fields;
}
ใช้โค้ดอย่างระมัดระวัง

วิธีที่ 2: แก้ไขโครงสร้างไฟล์เทมเพลตอีเมล (Email Template Override)

หากต้องการปรับแต่งหน้าตาอีเมลด้วยตัวเองอย่างละเอียด สามารถเข้าไปแก้ไขไฟล์ HTML ของอีเมลได้ตามขั้นตอนดังนี้:
1. ไปที่หลังบ้านของ WordPress เลือก WooCommerce > Settings (การตั้งค่า) > แท็บ Emails (อีเมล)
2. เลื่อนหาอีเมลที่ชื่อว่า Completed order (คำสั่งซื้อที่เสร็จสมบูรณ์แล้ว) แล้วคลิกปุ่ม Manage (จัดการ) ด้านขวา
3. เลื่อนลงมาด้านล่างสุดจะพบส่วน HTML template ให้คลิกปุ่ม Copy file to theme (เพื่อคัดลอกไฟล์เทมเพลตไปไว้ในโฟลเดอร์ธีมของคุณ
     ป้องกันการสูญหายเมื่ออัปเดต WooCommerce)
4. ใช้โปรแกรมแก้ไขโค้ดเปิดไฟล์ตามพาธที่ระบบแสดง (ปกติจะอยู่ที่ wp-content/themes/ชื่อธีมของคุณ/woocommerce/emails/
     customer-completed-order.php)
5. ค้นหาและทำเครื่องหมายคอมเมนต์ (Comment) หรือลบโค้ดบรรทัดที่เรียกแสดงผลข้อมูลลูกค้าออก ซึ่งโดยทั่วไปจะเป็นโค้ดลักษณะนี้:
php
โค๊ด: [Select]
/* ลบหรือคอมเมนต์บรรทัดนี้ออก */
do_action( 'woocommerce_email_customer_details', $order, $sent_to_admin, $plain_text, $email );
ใช้โค้ดอย่างระมัดระวัง

หมายเหตุ: วิธีนี้อาจจะลบข้อมูลเบอร์โทรศัพท์หรืออีเมลของลูกค้าในอีเมลฉบับนั้นไปด้วย
หากต้องการลบเฉพาะที่อยู่ แนะนำให้ใช้วิธีที่ 1 จะตรงจุดมากกว่าครับ


ออฟไลน์ Prog Man

  • Administrator
  • วิศวกรรมเครื่องกล
  • *****
  • เจ้าของกระทู้
  • Joined: ก.พ. 2567
  • กระทู้: 563
  • สมาชิกลำดับที่ : 25791
    • อีเมล์
   การปิดโค๊ดที่อยู่ในไฟล์ customer-completed-order.php  ✅ แก้แล้วได้ผลเยี่ยมเลย
ประมาณบรรทัดที่ 67 ให้ปิดบรรทัดนี้ ด้วย //

// do_action( 'woocommerce_email_customer_details', $order, $sent_to_admin, $plain_text, $email );
« แก้ไขครั้งสุดท้าย: 10 ตุลาคม 2569, 12:12:02 โดย Prog Man »