Отправка «на удержание» по электронной почте при изменении статуса пользовательского заказа в WooCommerce

#php #wordpress #woocommerce #orders #email-notifications

#php #wordpress #woocommerce #заказы #email-уведомления

Вопрос:

Я создал пользовательский статус на странице заказа Woocommerce. Кажется, это работает. Итак, я пытался отправить то же электронное письмо со статусом «На удержании», когда мой пользовательский статус выбран следующим образом:

 add_filter( 'woocommerce_email_actions', 'filter_woocommerce_email_actions' );
function filter_woocommerce_email_actions( $actions ){
    $actions[] = 'woocommerce_order_status_wc-attesa-pagamento';
    return $actions;
}

add_action( 'woocommerce_order_status_wc-attesa-pagamento', 'enable_processing_to_on_hold_notification', 10, 2 );
function enable_processing_to_on_hold_notification( $order_id, $order ){
    // Getting all WC_emails array objects
    $mailer = WC()->mailer()->get_emails();

    // Send the "On Hold" notification
    $mailer['WC_Email_Customer_On_Hold_Order']->trigger( $order_id );
}

add_action( 'woocommerce_order_status_wc-attesa-pagamento', array( WC(), 'send_transactional_email' ), 10, 1 );
  

Но ничего не происходит!
Кто-нибудь может мне помочь?

Ответ №1:

В вашем коде ошибка, вам нужно заменить эту строку:

 add_action( 'woocommerce_order_status_wc-attesa-pagamento', 'enable_processing_to_on_hold_notification', 10, 2 );
  

с помощью этого:

 add_action( 'woocommerce_order_status_attesa-pagamento', 'enable_processing_to_on_hold_notification', 10, 2 );
  

и это должно сработать.