You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在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

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.18 13:13:24