为了账号安全,请及时绑定邮箱和手机立即绑定

隐藏来自 WooCommerce 电子邮件已完成订单通知的付款说明

隐藏来自 WooCommerce 电子邮件已完成订单通知的付款说明

PHP
斯蒂芬大帝 2021-06-27 09:59:08
在我的 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 );它全局应用于所有电子邮件通知,我只需要从“客户完成的订单”电子邮件通知中删除付款说明。任何帮助表示赞赏。
查看完整描述

1 回答

?
冉冉说

TA贡献1877条经验 获得超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 文件中。测试和工作。


查看完整回答
反对 回复 2021-07-09
  • 1 回答
  • 0 关注
  • 156 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信