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.