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

如何针对WooCommerce中Przelewy24支付的待付款订单发送邮件通知

解决WooCommerce中Przelewy24支付网关pending payment状态下发送订单确认邮件的问题

你可以通过添加自定义PHP代码,强制WooCommerce在Przelewy24支付的订单处于pending payment状态时发送订单确认邮件,无需修改订单状态。

实现代码

将以下代码添加到你的WordPress子主题functions.php文件中,或者使用自定义功能插件:

/**
 * 针对Przelewy24支付的pending订单发送确认邮件
 */
add_action( 'woocommerce_order_status_pending', 'send_p24_pending_order_confirmation', 10, 1 );
function send_p24_pending_order_confirmation( $order_id ) {
    // 获取订单对象
    $order = wc_get_order( $order_id );
    if ( ! $order ) return;

    // 验证支付方式是否为Przelewy24(请根据实际网关ID调整)
    $payment_method = $order->get_payment_method();
    if ( 'przelewy24' !== $payment_method ) {
        return;
    }

    // 调用WooCommerce内置邮件发送功能
    $mailer = WC()->mailer();
    $new_order_email = $mailer->get_emails()['WC_Email_Customer_New_Order'];
    
    // 设置邮件参数并发送
    $new_order_email->object = $order;
    $new_order_email->recipient = $order->get_billing_email();
    $new_order_email->send(
        $new_order_email->recipient,
        $new_order_email->get_subject(),
        $new_order_email->get_content(),
        $new_order_email->get_headers(),
        $new_order_email->get_attachments()
    );
}

关键注意事项

  • 确认网关ID:代码中'przelewy24'是Przelewy24网关的默认ID,如果你的网关ID不同(可在WooCommerce支付设置页面查看,或订单编辑页的支付方式元数据中获取),请替换为实际ID。
  • 避免代码丢失:不要直接修改父主题的functions.php,使用子主题或自定义插件存放代码,防止主题更新时代码被覆盖。
  • 测试验证:创建测试订单选择Przelewy24支付,检查pending payment状态下是否收到邮件;支付成功后,WooCommerce会正常发送后续状态的邮件,不会重复发送确认邮件。

内容的提问来源于stack exchange,提问作者mwlandof

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.15 20:33:18