Active License Elementor Pro chỉ với 300k/năm/domain Shop Now
Mới Dịch vụ thiết kế website, xử lý mã độc & tối ưu tốc độ chuyên sâu

Code thêm ghi chú nổi bật vào email đơn hàng theo trạng thái trong WooCommerce

Email xác nhận đơn hàng trong Gmail có khối ghi chú màu vàng nhạt với vạch cam bên trái nằm ngay trên bảng chi tiết đơn hàng

Bài viết này mình sẽ hướng dẫn bạn cách thêm ghi chú nổi bật vào email đơn hàng theo trạng thái trong WooCommerce nhé.

Email đơn hàng mặc định của WooCommerce chỉ có bảng sản phẩm và tổng tiền, khách đặt xong không biết bao giờ hàng giao, khách chưa trả tiền cũng không biết phải chuyển khoản vào đâu. Mỗi trạng thái đơn cần một lời nhắn khác nhau, nhưng WooCommerce mặc định không có chỗ nào để ghi chú riêng theo trạng thái, muốn email nào cũng có đúng thông tin khách cần thì bạn phải code thêm nhé.

Thêm code ghi chú vào email đơn hàng theo trạng thái

Bạn chỉ cần thêm code dưới vào cuối file functions.php của child theme nhé. Nhớ sao lưu file trước khi sửa, và đừng chèn vào theme cha vì khi theme cập nhật sẽ mất code.

<?php
// Thêm ghi chú nổi bật vào email đơn hàng theo trạng thái trong WooCommerce
// Email "Đang chờ thanh toán" nhắc khách chuyển khoản, "Đang xử lý" báo thời gian chuẩn bị hàng,
// "Hoàn thành" cảm ơn và mời đánh giá - khách nhận email nào cũng thấy đúng thông tin mình cần
add_action('woocommerce_email_before_order_table', 'nn_ghi_chu_email_theo_trang_thai', 10, 4);
function nn_ghi_chu_email_theo_trang_thai($order, $sent_to_admin, $plain_text, $email) {
    if ($plain_text || $sent_to_admin || !$order) {
        return;
    }
    $trang_thai = $order->get_status();
    if ('on-hold' === $trang_thai) {
        $ghi_chu = 'Đơn hàng của bạn đang chờ thanh toán. Bạn vui lòng chuyển khoản theo hướng dẫn trong email này, shop sẽ chuẩn bị hàng ngay khi nhận được tiền nhé.';
    } elseif ('processing' === $trang_thai) {
        $ghi_chu = 'Shop đã nhận được thanh toán và đang chuẩn bị hàng cho bạn. Đơn sẽ được giao trong 1-2 ngày làm việc, shop sẽ gửi mã vận đơn qua email khi hàng lên đường nhé.';
    } elseif ('completed' === $trang_thai) {
        $ghi_chu = 'Cảm ơn bạn đã mua hàng tại shop! Nếu hài lòng với sản phẩm, bạn bấm vào link đánh giá trong email này để lại vài dòng nhận xét giúp shop nhé.';
    } else {
        return;
    }
    echo '<div style="background: #fff8e1; border-left: 4px solid #f59e0b; padding: 12px 16px; margin: 0 0 20px; font-size: 14px; line-height: 1.6;">' . esc_html($ghi_chu) . '</div>';
}

Code trên móc vào hook woocommerce_email_before_order_table để chèn ghi chú ngay trước bảng chi tiết đơn hàng trong email. Hàm nhận bốn tham số, trong đó $order là đơn hàng và $plain_text cho biết email có phải bản text thuần không. Code bỏ qua email text thuần và email gửi cho quản trị viên, vì ghi chú này chỉ dành cho khách đọc bản email HTML. Sau đó code đọc trạng thái đơn bằng $order->get_status(): đơn “on-hold” thì nhắc khách chuyển khoản, đơn “processing” thì báo thời gian chuẩn bị và giao hàng, đơn “completed” thì cảm ơn và mời khách đánh giá. Ghi chú in ra trong một khối nền vàng nhạt với vạch cam bên trái, dùng style viết trực tiếp trong thẻ (inline style) để mọi chương trình đọc email đều hiển thị đúng.

Kiểm tra email đơn hàng

Bạn đặt một đơn thử trên shop rồi vào WooCommerce → Đơn hàng, đổi trạng thái đơn thành “Đang chờ” (on-hold) và bấm gửi lại email cho khách, mở email ra sẽ thấy khối ghi chú vàng nhắc chuyển khoản ngay trước bảng sản phẩm. Đổi trạng thái sang “Đang xử lý” rồi gửi lại email thì ghi chú đổi thành thông báo chuẩn bị hàng, đổi sang “Hoàn thành” thì ghi chú đổi thành lời cảm ơn và mời đánh giá.

Email xác nhận đơn hàng trong Gmail có khối ghi chú màu vàng nhạt với vạch cam bên trái nằm ngay trên bảng chi tiết đơn hàng
Kết quả: email đơn hàng có khối ghi chú vàng nổi bật ngay trước bảng chi tiết đơn, nội dung ghi chú đổi theo trạng thái đơn hàng.

Lưu ý khi dùng

Bạn sửa trực tiếp nội dung trong ba nhánh if của code cho khớp với quy trình của shop mình, ví dụ ghi rõ số tài khoản nhận tiền hay thời gian giao hàng thực tế. Muốn thêm trạng thái khác thì thêm một nhánh elseif với mã trạng thái của WooCommerce, ví dụ “cancelled” để nhắn khách khi đơn bị hủy. Email gửi cho quản trị viên không có khối ghi chú này vì chỉ khách hàng mới cần đọc những lời nhắn trên. Tính năng này đi chung với bài code thêm checkbox gói quà ở trang thanh toán trong WooCommerce là thành combo chăm sóc khách từ lúc đặt hàng tới lúc nhận email khá tốt.

Kết luận

Vậy là chỉ với 1 đoạn code ngắn bạn đã thêm ghi chú nổi bật vào email đơn hàng theo trạng thái trong WooCommerce rồi nhé. Tính năng này đi chung với bài code thêm checkbox gói quà ở trang thanh toán trong WooCommerce và bài code ẩn giá và nút mua với khách chưa đăng nhập trong WooCommerce là thành bộ công cụ chăm sóc khách hàng cho shop WooCommerce.

Nếu cần mình kèm 1-1 về WooCommerce thì cứ liên hệ mình nhé.

Nhân Viên

Nhân Viên

Web Developer & WordPress Expert

Ngọc Nguyễn - Chuyên gia thiết kế Website WordPress, tối ưu tốc độ 90+ và xử lý dứt điểm mã độc. Đam mê chia sẻ kiến thức hữu ích đến cộng đồng lập trình & webmaster.

Để lại bình luận hoặc thắc mắc

Email của bạn sẽ không được hiển thị công khai.

Ngọc Nguyễn
Ngọc Nguyễn
| Thiết kế Website | Hosting tốc độ cao | Giải pháp hạ tầng | Fix lỗi WordPress, mã độc | Tối ưu tốc độ | Thiết kế Website | Hosting tốc độ cao | Giải pháp hạ tầng | Fix lỗi WordPress, mã độc | Tối ưu tốc độ
Tư vấn miễn phí