WooCommerce 주문 완료 이메일을 트리거하는 방법은 무엇입니까?


10

WooCommerce 결제 프로세스의 다른 단계에서 WooCommerce 주문 완료 이메일을 트리거 할 수 있기를 원합니다. 그래서 백엔드에서 WooCommerce 주문 완료 이메일을 비활성화했으며 이제 원하는 시점에서 이메일을 트리거하는 코드 줄을 찾고 있습니다. 약간의 연구를 수행 했으며 주문 완료 이메일 을 제거 하는 방법을 찾았 지만 수동으로 트리거하는 방법을 찾지 못했습니다. 팁이 있습니까?

감사!

답변:


11

당신은 이것을 시도 할 수 있습니다

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

감사합니다. 누군가가이를 악용하지 않도록하는 방법, 즉 감사 페이지의 특정 위치에 해당 페이지를 던져 넣는 경우 페이지를 새로 고칠 때마다 전자 메일을 보내지 않습니까?
user3210369

WooCommerce는 플러그인이 전자 우편을 이메일로만 보내기 때문에이 문제를 처리합니다. 그러나 당신은 감사 페이지에 그것을 보내고 있다면, 당신은 이것을 관리해야합니다, 당신은 메타 값을 사용자 메타에 추가하거나 쿠키를 브라우저에 저장할 수 있습니다. 현재 답변과 마찬가지로이 답변을 수락 된 것으로 표시하십시오.
수밋

4

@Sumit이 제안한 것과 동일한 객체를 반복하거나 재사용하는 대신. 새 객체를 시작한 다음 트리거를 호출 할 수 있습니다.

$email_oc = new WC_Email_Customer_Completed_Order();
$email_oc->trigger($order_id);
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.