Скрыть инструкции по оплате из уведомлений о завершении заказа по электронной почте WooCommerce

В моем магазине woocommerce я активировал инструкции по оплате, и они отображаются во всех уведомлениях по электронной почте. У меня есть следующий код (взятый из другого ответа), который удаляет инструкции по оплате для метода оплаты "COD":

add_action( 'woocommerce_email_before_order_table', function(){
    if ( ! class_exists( 'WC_Payment_Gateways' ) ) return;

    $gateways = WC_Payment_Gateways::instance(); // gateway instance
    $available_gateways = $gateways->get_available_payment_gateways();


    if ( isset( $available_gateways['cod'] ) )
        remove_action( 'woocommerce_email_before_order_table', array( $available_gateways['cod'], 'email_instructions' ), 10, 3 );
}, 1 );

Он применяется глобально ко всем уведомлениям по электронной почте, и мне нужно удалить инструкции по оплате только из электронного уведомления «Заказчик завершил заказ».

Любая помощь приветствуется.


person Lord Hernan Cortes Bermudez    schedule 26.05.2019    source источник


Ответы (1)


Ваш код немного устарел (или устарел), и вы пропустили аргументы функции перехвата, которые позволят вам настроить таргетинг на уведомление по электронной почте «Заказ выполнен заказчиком». Вместо этого попробуйте следующее:

add_action( 'woocommerce_email_before_order_table', 'action_email_before_order_table_callback', 9, 4 );
function action_email_before_order_table_callback( $order, $sent_to_admin, $plain_text, $email ){
    $payment_method = $order->get_payment_method();

    // Targeting "COD" payment method on Customer completed order email notification
    if ( 'customer_completed_order' === $email->id && 'cod' === $payment_method ) {
        $available_gateways = WC()->payment_gateways->get_available_payment_gateways();

        remove_action( 'woocommerce_email_before_order_table', [ $available_gateways[$payment_method], 'email_instructions' ], 10 );
    }
}

Код находится в файле functions.php вашей активной дочерней темы (или активной темы). Проверено и работает.

person LoicTheAztec    schedule 27.05.2019
comment
wooo супер большое спасибо, весь день нашел решение, спасибо! - person Lord Hernan Cortes Bermudez; 27.05.2019