Lỗi email thông báo trong WooCommerce là một trong những vấn đề gây đau đầu nhất với chủ cửa hàng online. Khi hệ thống không gửi được email xác nhận đơn hàng, thông báo thanh toán hay email reset mật khẩu, bạn sẽ mất đi sự tin tưởng của khách hàng và ảnh hưởng trực tiếp đến doanh thu. Trong bài viết này,
Bản chất của lỗi WooCommerce Email Notification

WooCommerce sử dụng hàm wp_mail() của WordPress để gửi email. Hàm này dựa vào cấu hình SMTP hoặc mail server của hosting. Khi có sự cố ở bất kỳ khâu nào – từ thiết lập SMTP, xung đột plugin, đến cấu hình Cron – email sẽ không được gửi hoặc bị rơi vào spam. Hiểu rõ cơ chế này giúp bạn dễ dàng xác định được vị trí phát sinh lỗi.
Hệ thống email trong WooCommerce hoạt động thế nào?
- Khi một sự kiện xảy ra (đơn hàng mới, thanh toán, thay đổi trạng thái), WooCommerce kích hoạt hook tương ứng.
- Hàm
WC_Emailxử lý nội dung, tiêu đề, người nhận dựa trên thiết lập trong WooCommerce > Cài đặt > Email. - Email được chuyển cho WordPress core để gửi qua
wp_mail(). - Server thực hiện gửi thư qua PHP mail() hoặc SMTP đã cấu hình.
- Sử dụng SMTP plugin (khuyến nghị WP Mail SMTP hoặc Post SMTP).
- Chọn dịch vụ gửi email phù hợp: SMTP của hosting, Gmail SMTP, SendGrid, Mailgun, Amazon SES.
- Điền đúng host, port (ưu tiên 587 với STARTTLS hoặc 465 với SSL), username, password (nếu là Gmail phải dùng mật khẩu ứng dụng).
- Bật xác thực SMTP và mã hóa.
- Chỉ dùng hàm mail() mặc định: Hầu hết hosting chặn mail() vì spam, dẫn đến email không bao giờ gửi đi. Luôn dùng SMTP.
- Bỏ qua kiểm tra spam: Nhiều người cứ nghĩ email đã gửi, nhưng thực tế nó nằm trong thư rác. Cần kiểm tra hộp spam và thiết lập SPF/DKIM.
- Không test với đơn hàng thật: Test bằng plugin giả lập không luôn chính xác. Tạo đơn hàng thử với trạng thái pending, processing, completed để kiểm tra toàn bộ luồng email.
- Override template sai cách: Copy file từ plugin WooCommerce vào theme thay vì dùng action hook, dễ gây lỗi khi update.
- Quên cache: Cache plugin có thể lưu trạng thái email cũ. Xóa cache toàn bộ sau mỗi thay đổi cấu hình.
- Luôn cập nhật WooCommerce, WordPress và các plugin liên quan lên phiên bản mới nhất.
- Sử dụng dịch vụ email chuyên nghiệp (SendGrid, Mailgun, Amazon SES) cho cửa hàng có doanh thu cao.
- Thiết lập SPF và DKIM cho domain để cải thiện tỷ lệ vào hộp thư đến.
- Giới hạn số lượng email gửi mỗi giờ nếu hosting có quota – sử dụng hàng đợi tin nhắn (queue) nếu cần.
- Sao lưu file template email trước khi chỉnh sửa, và ưu tiên dùng hook thay vì override.
- Kiểm tra log email định kỳ (hàng tuần) để phát hiện sớm lỗi tiềm ẩn.
Bất kỳ điểm nào trong chuỗi này bị gián đoạn đều dẫn đến lỗi gửi email.
Phân loại lỗi WooCommerce Email Notification phổ biến
| Loại lỗi | Triệu chứng | Nguyên nhân chính |
|---|---|---|
| Email không gửi được | Không nhận được bất kỳ email nào từ hệ thống | SMTP chưa cấu hình, mail server lỗi, hosting chặn cổng 25 |
| Email vào spam | Email vẫn gửi nhưng nằm trong thư rác | Thiếu xác thực SPF/DKIM, IP bị blacklist, nội dung kém chất lượng |
| Email gửi chậm hoặc bị trễ | Khách hàng nhận email sau 30 phút – vài giờ | WP-Cron không hoạt động đúng cách, hosting giới hạn tài nguyên |
| Email chỉ gửi cho admin mà không gửi cho khách | Bạn nhận được thông báo nhưng khách thì không | Cấu hình email template sai, thiếu placeholder người nhận |
| Một số loại email không gửi | Ví dụ: email đặt lại mật khẩu không hoạt động nhưng email đơn hàng vẫn gửi | Plugin can thiệp, lỗi file template override |
Nguyên nhân sâu xa khiến WooCommerce Email Notification bị lỗi

1. Cấu hình SMTP không đúng hoặc thiếu
Hầu hết các hosting shared đều chặn hàm mail() mặc định vì lý do bảo mật. Sử dụng plugin SMTP như WP Mail SMTP, Post SMTP là giải pháp bắt buộc. Nếu nhập sai thông tin máy chủ, cổng, mã hóa hoặc mật khẩu app (đối với Gmail/Outlook), email sẽ không gửi được.
2. Xung đột plugin
Một số plugin bảo mật (Wordfence, Sucuri), plugin cache (WP Rocket, W3 Total Cache) hoặc plugin tối ưu email có thể ghi đè hoặc vô hiệu hóa quá trình gửi mail của WordPress. Plugin membership, booking hoặc form builder đôi khi ngăn chặn hook email gốc của WooCommerce.
3. WP-Cron không hoạt động đúng
WooCommerce dùng WP-Cron để lên lịch gửi email, đặc biệt là email đặt lại mật khẩu và thông báo hết hàng. Nếu lưu lượng truy cập thấp, WP-Cron không kích hoạt thường xuyên, dẫn đến email gửi chậm hoặc không gửi. Cần thay thế bằng Cron thật của server.
4. Lỗi template email (overridden theme)
Khi bạn sao chép file template email vào theme con để tùy chỉnh, nếu file đó lỗi cú pháp PHP hoặc thiếu hook, WooCommerce không thể tạo email. Đặc biệt hay gặp ở các theme Flatsome, WoodMart khi update theme mà không cập nhật lại file đã override.
5. Hosting hoặc server giới hạn gửi email
Nhiều nhà cung cấp hosting giá rẻ giới hạn số lượng email gửi mỗi giờ (ví dụ 100 email/h). Khi cửa hàng có đơn hàng liên tục, hệ thống sẽ queue hoặc drop email. Một số host chặn hoàn toàn cổng SMTP 25, 465, 587.
Hướng dẫn kiểm tra và sửa lỗi WooCommerce Email Notification từng bước
Bước 1: Kiểm tra cấu hình email cơ bản trong WooCommerce
Vào WooCommerce > Cài đặt > Email. Kiểm tra xem tất cả các loại email đã được bật chưa (New order, Cancelled order, Failed order, v.v.). Chú ý đến trường “Email người gửi” và “Địa chỉ email người gửi” – nếu để trống hoặc sai domain, email dễ bị spam.
Bước 2: Cài đặt plugin kiểm tra email và gửi thử
Sử dụng plugin WP Mail Logging hoặc Check & Log Email để gửi email test. Nếu email test thành công nhưng email thông báo đơn hàng vẫn lỗi, vấn đề nằm ở hook sự kiện WooCommerce. Nếu email test thất bại, nguyên nhân là do SMTP/Server.
Bước 3: Thiết lập SMTP đúng chuẩn
Sau khi lưu, gửi email test. Nếu thành công, xóa toàn bộ cache (plugin cache, server cache) và gửi thử đơn hàng thật.
Bước 4: Kiểm tra xung đột plugin bằng cách tạm tắt plugin
Tắt lần lượt các plugin bảo mật, cache, tối ưu email, membership. Mỗi lần tắt, gửi email test. Nếu email gửi được khi tắt một plugin nào đó, plugin đó đang xung đột. Liên hệ nhà phát triển plugin để được hỗ trợ hoặc tìm giải pháp thay thế.
Bước 5: Kiểm tra email template override
Vào thư mục /wp-content/themes/your-theme/woocommerce/emails/. Nếu có file nào đó (ví dụ customer-new-order.php) được copy từ plugin WooCommerce, hãy kiểm tra cú pháp. Cách nhanh: đổi tên file đó (thêm.bak) để WooCommerce dùng file mặc định. Nếu email hoạt động trở lại, file override lỗi. Cập nhật lại file từ theme gốc.
Bước 6: Thiết lập Cron thật thay cho WP-Cron
Nếu email gửi chậm hoặc không gửi theo lịch, thay WP-Cron bằng server cron. Thêm dòng sau vào file wp-config.php để tắt WP-Cron:
define('DISABLE_WP_CRON', true);
Sau đó vào cPanel hoặc Plesk của hosting, tạo cron job với lệnh wget -q -O - https://yourdomain.com/wp-cron.php?doing_wp_cron chạy mỗi 5 phút.
Bước 7: Kiểm tra log lỗi PHP và log email
Bật WP_DEBUG trong wp-config.php: define('WP_DEBUG', true); define('WP_DEBUG_LOG', true);. Truy cập file wp-content/debug.log để xem lỗi PHP. Nếu có lỗi liên quan đến wp_mail, phpmailer hoặc WC_Emails, đó là manh mối chính xác. Đồng thời dùng plugin log email để xem trạng thái gửi từng email.
Những sai lầm thường gặp khi xử lý lỗi WooCommerce Email Notification

Lưu ý quan trọng để tránh lỗi WooCommerce Email Notification tái diễn
So sánh các giải pháp thay thế khi WooCommerce Email Notification lỗi liên tục

| Giải pháp | Chi phí | Độ tin cậy | Phù hợp với |
|---|---|---|---|
| SMTP plugin miễn phí (WP Mail SMTP Lite) | Miễn phí | Trung bình (phụ thuộc hosting) | Site nhỏ, ít đơn hàng |
| Dịch vụ SMTP trả phí (SendGrid, Mailgun) | Từ $10/tháng | Cao (99.9% uptime) | Cửa hàng vừa và lớn |
| Amazon SES | Rẻ (tính theo số lượng) | Rất cao | Site có lưu lượng email lớn |
| Chuyển hosting sang nơi hỗ trợ mail tốt | Phụ thuộc gói hosting | Thay đổi theo nhà cung cấp | Khi các giải pháp trên không hiệu quả |
Câu hỏi thường gặp về lỗi WooCommerce Email Notification
Làm sao để biết email WooCommerce đã được gửi hay chưa?
Cài plugin WP Mail Logging hoặc Check & Log Email. Plugin này ghi lại toàn bộ email gửi từ WordPress, bao gồm trạng thái thành công/thất bại, thời gian, người nhận, lỗi nếu có.
Tại sao email đặt lại mật khẩu WooCommerce không gửi được?
Nguyên nhân thường do WP-Cron không kích hoạt đúng lúc, hoặc plugin bảo mật chặn các request từ trang mất mật khẩu. Hãy kiểm tra xem có plugin nào ngăn chặn hook retrieve_password không. Ngoài ra, cài SMTP và kích hoạt cron thật là cách khắc phục nhanh.
Email WooCommerce gửi cho admin nhưng khách không nhận?
Vào WooCommerce > Cài đặt > Email > chọn từng loại email (New order, Processing order, v.v.) và kiểm tra trường “Email nhận”. Phải có placeholder {customer_email} hoặc người nhận cụ thể. Nếu bạn chỉnh sửa template mà bỏ qua placeholder, email chỉ gửi cho admin.
Lỗi email sau khi cập nhật WooCommerce lên phiên bản mới?
Thường do file template override trong theme không tương thích. Cách xử lý: cập nhật theme lên phiên bản mới nhất, hoặc xóa file override trong thư mục emds của theme (sao lưu trước). Nếu không, dùng plugin Email Customizer giúp chỉnh sửa giao diện email mà không cần override file.
Có nên dùng plugin Email Customizer thay vì sửa file template?
Có. Plugin Email Customizer (ví dụ Kadence WooCommerce Email Designer) cho phép tùy chỉnh giao diện email trực quan, không ảnh hưởng đến code core. Giảm rủi ro lỗi khi update WooCommerce và theme. Tuy nhiên, plugin này có thể xung đột với một số plugin khác nếu dùng quá nhiều.
Kết luận

Lỗi woocommerce email notification lỗi không phải là vấn đề quá phức tạp nếu bạn hiểu rõ nguyên nhân và áp dụng quy trình kiểm tra có hệ thống. Từ việc thiết lập SMTP đúng cách, kiểm tra xung đột plugin, đến tối ưu Cron và xác thực email – mỗi bước đều đóng vai trò quan trọng. Đừng quên thường xuyên theo dõi log email và cập nhật các thành phần trong website để đảm bảo hệ thống email luôn hoạt động ổn định. Một cửa hàng WooCommerce chuyên nghiệp cần có khả năng giao tiếp với khách hàng qua email một cách kịp thời và đáng tin cậy.
- WordPress WP-Admin Error: Nguyên Nhân Và Cách Khắc Phục Toàn Diện
- Woocommerce Revenue Report Lỗi: Nguyên Nhân, Cách Khắc Phục và Phòng Tránh Toàn Diện
- Plugin WordPress PHP Compatibility Issue: Nguyên Nhân, Cách Khắc Phục và Phòng Tránh Toàn Diện
- Cách Khắc Phục Lỗi Upload File Trong WordPress Trên Apache (WordPress Upload Apache Error)
- Hướng dẫn sửa lỗi WordPress form email attachment không gửi được
















