从 WooCommerce 电子邮件完成的订单通知中隐藏付款说明
Hide payment instructions from WooCommerce email completed order notifications
在我的 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 );
它全局应用于所有电子邮件通知,我只需要从 "Customer completed order" 电子邮件通知中删除付款说明。
感谢任何帮助。
您的代码有点过时(或旧)并且您错过了钩子函数参数,这将允许您将 "Customer Completed Order" 电子邮件通知作为目标。请尝试以下操作:
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 文件。已测试并有效。
在我的 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 );
它全局应用于所有电子邮件通知,我只需要从 "Customer completed order" 电子邮件通知中删除付款说明。
感谢任何帮助。
您的代码有点过时(或旧)并且您错过了钩子函数参数,这将允许您将 "Customer Completed Order" 电子邮件通知作为目标。请尝试以下操作:
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 文件。已测试并有效。