Làm cách nào để kích hoạt email hoàn thành đơn hàng WooC Commerce?


10

Tôi muốn có thể kích hoạt email hoàn thành đơn đặt hàng WooC Commerce ở một giai đoạn khác trong quy trình thanh toán WooC Commerce. Vì vậy, tôi đã vô hiệu hóa email hoàn thành đơn đặt hàng WooC Commerce từ phụ trợ và hiện đang tìm kiếm một dòng mã sẽ kích hoạt email tại điểm mà tôi muốn. Tôi đã thực hiện một chút nghiên cứu và tôi đã tìm thấy cách xóa email hoàn thành đơn hàng nhưng không phải cách kích hoạt thủ công. Bất cứ lời khuyên?

Cảm ơn!

Câu trả lời:


11

Bạn có thể thử cái này

$mailer = WC()->mailer();
$mails = $mailer->get_emails();
if ( ! empty( $mails ) ) {
    foreach ( $mails as $mail ) {
        if ( $mail->id == 'customer_completed_order' ) {
           $mail->trigger( $order->id );
        }
     }
}

Cảm ơn bạn. Bất kỳ cách nào để đảm bảo ai đó không lạm dụng nó, tức là nếu tôi ném nó vào một nơi cụ thể trên trang thankyou, liệu có cách nào để không gửi email mỗi khi một người làm mới trang không?
user3210369

WooC Commerce chăm sóc điều này vì plugin chỉ gửi email trên hook. Nhưng bạn đang gửi nó trên trang cảm ơn, sau đó bạn cần quan tâm đến vấn đề này, bạn có thể thêm một số giá trị meta vào meta người dùng hoặc lưu trữ một số cookie trong trình duyệt của anh ấy / cô ấy. và vui lòng đánh dấu câu trả lời này là chấp nhận vì nó làm công việc hiện tại của bạn.
Sumit

4

Thay vì lặp hoặc sử dụng lại cùng một đối tượng như được đề xuất bởi @Sumit. Bạn có thể bắt đầu một đối tượng mới và sau đó gọi kích hoạt.

$email_oc = new WC_Email_Customer_Completed_Order();
$email_oc->trigger($order_id);
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.