code

WooCommerce 수동/편집 주문에 대한 전자 메일 알림 사용 안 함

starcafe 2023. 11. 4. 13:12
반응형

WooCommerce 수동/편집 주문에 대한 전자 메일 알림 사용 안 함

WooCommerce 전문 지식 필요

수동으로 만든 주문에 대해 이메일 알림을 비활성화해야 하고, 처리 상태를 사용해야 하며, 처리 주문 상태에 대한 사용자 지정 후크로 인해 사용자 지정 상태를 만들 수 없습니다.

이상적으로 수동 주문 페이지에서 선택할 수 있는 확인란을 선택하면 모든 상태에서 전자 메일을 고객에게 전송할 수 없습니다.(프로세싱 - 완료).

데이터베이스상의 이유로 back end 오더에 ebay 오더를 입력해야 하기 때문이며 이미 ebay를 통해 발송된 e-메일이 고객에게 재발송되는 것을 원하지 않습니다.

이 후크는 다음과 같이 불러야 할 것 같습니다.

remove_action( 'woocommerce_order_status_completed_notification', array( $email_class->emails['WC_Email_Customer_Completed_Order'], 'trigger' ) );

그리고 이것은:

remove_action( 'woocommerce_order_status_pending_to_processing_notification', array( $email_class->emails['WC_Email_Customer_Processing_Order'], 'trigger' ) );

관리자로부터만 제거하고 고객이 프론트엔드에서 물건을 구매할 때 계속해서 새 주문 이메일을 보내려는 경우에는 조치 제거를 논리적으로 마무리하여 해당 사례를 확인합니다.저는 이 WooCom 예제(https://docs.woocommerce.com/document/unhookremove-woocommerce-emails/), 에서 관리자에게 주문을 만들거나 editing하여 생성되지 않았거나 이미 발송 또는 발송하지 않을 옵션이 있는 이메일(노트)을 모두 제거했습니다.

add_action( 'woocommerce_email', 'unhook_those_pesky_emails' );

function unhook_those_pesky_emails( $email_class ) {

    if ( is_admin() && ! wp_doing_ajax() ) {

        // New order emails
        remove_action( 'woocommerce_order_status_pending_to_processing_notification', array( $email_class->emails['WC_Email_New_Order'], 'trigger' ) );
        remove_action( 'woocommerce_order_status_pending_to_completed_notification', array( $email_class->emails['WC_Email_New_Order'], 'trigger' ) );
        remove_action( 'woocommerce_order_status_pending_to_on-hold_notification', array( $email_class->emails['WC_Email_New_Order'], 'trigger' ) );
        remove_action( 'woocommerce_order_status_failed_to_processing_notification', array( $email_class->emails['WC_Email_New_Order'], 'trigger' ) );
        remove_action( 'woocommerce_order_status_failed_to_completed_notification', array( $email_class->emails['WC_Email_New_Order'], 'trigger' ) );
        remove_action( 'woocommerce_order_status_failed_to_on-hold_notification', array( $email_class->emails['WC_Email_New_Order'], 'trigger' ) );

        // Processing order emails
        remove_action( 'woocommerce_order_status_pending_to_processing_notification', array( $email_class->emails['WC_Email_Customer_Processing_Order'], 'trigger' ) );
        remove_action( 'woocommerce_order_status_pending_to_on-hold_notification', array( $email_class->emails['WC_Email_Customer_Processing_Order'], 'trigger' ) );

        // Completed order emails
        remove_action( 'woocommerce_order_status_completed_notification', array( $email_class->emails['WC_Email_Customer_Completed_Order'], 'trigger' ) );

    }
}

기능을 참조합니다.기능에서.php 또는 사용자 지정 플러그인:

add_action( 'woocommerce_email', 'unhook_those_pesky_emails' );

function unhook_those_pesky_emails( $email_class ) {

remove_action( 'woocommerce_order_status_completed_notification', array( $email_class->emails['WC_Email_Customer_Completed_Order'], 'trigger' ) ); // cancels automatic email of order complete status update.
remove_action( 'woocommerce_order_status_pending_to_processing_notification', array( $email_class->emails['WC_Email_New_Order'], 'trigger' ) ); // cancels automatic email of new order placed (when defined to procession status)
remove_action( 'woocommerce_order_status_pending_to_processing_notification', array( $email_class->emails['WC_Email_Customer_Processing_Order'], 'trigger' ) ); // cancels automatic email of status update to processing.
}

언급URL : https://stackoverflow.com/questions/37485013/disable-email-notification-for-woocommerce-manual-edit-orders

반응형