Скрыть инструкции по оплате от WooCommerce по электронной почте уведомления о выполненных заказах - PullRequest
0 голосов
/ 27 мая 2019

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

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 );

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

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

1 Ответ

0 голосов
/ 27 мая 2019

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

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 вашей активной дочерней темы (или активной темы). Проверено и работает.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...