如何在WooCommerce Processing邮件中添加BACS银行账户及说明信息
解决WooCommerce Processing邮件缺少BACS银行信息的问题
直接用以下代码实现将On-hold邮件中的BACS信息(描述文本、支付说明、账户列表)同步到Processing邮件中,代码可添加到主题functions.php文件或自定义插件:
// 将BACS银行账户信息添加到Processing订单邮件 add_action( 'woocommerce_email_before_order_table', 'add_bacs_details_to_processing_email', 20, 4 ); function add_bacs_details_to_processing_email( $order, $sent_to_admin, $plain_text, $email ) { // 仅针对客户的Processing邮件,且订单支付方式为BACS if ( $email->id === 'customer_processing_order' && $order->get_payment_method() === 'bacs' ) { // 获取BACS网关实例 $bacs_gateway = WC_Payment_Gateways::instance()->get_gateway('bacs'); if ( $bacs_gateway ) { ob_start(); // 输出BACS支付方式描述(后台设置的描述文本) if ( $bacs_gateway->description ) { echo wpautop( wptexturize( $bacs_gateway->description ) ); } // 输出支付操作说明(后台设置的支付说明文本) if ( $bacs_gateway->instructions ) { echo wpautop( wptexturize( $bacs_gateway->instructions ) ); } // 输出银行账户列表HTML(和On-hold邮件格式一致) echo $bacs_gateway->generate_account_details_html(); $bacs_content = ob_get_clean(); echo $bacs_content; } } }
代码说明:
- 钩子选择:使用
woocommerce_email_before_order_table确保内容显示在订单表格前,和On-hold邮件的信息位置一致。 - 精准触发:通过判断邮件ID为
customer_processing_order、订单支付方式为bacs,避免无关邮件显示多余内容。 - 直接调用网关方法:
$bacs_gateway->description:提取后台BACS设置页的「描述」文本$bacs_gateway->instructions:提取后台BACS设置页的「支付说明」文本generate_account_details_html():调用BACS网关内置方法生成账户列表HTML,和On-hold邮件格式完全匹配,无需手动拼接。
- 输出缓冲:用
ob_start()和ob_get_clean()整合内容,保证邮件格式整洁。
内容的提问来源于stack exchange,提问作者SolaceBeforeDawn
相关产品推荐
相关产品推荐

