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

如何在WooCommerce待处理订单邮件中添加动态可点击支付链接

问题解决方案

以下是修正后可直接使用的完整代码:

add_action( 'woocommerce_email_before_order_table', 'customer_note_email_before_order_table', 10, 4 );
function customer_note_email_before_order_table( $order, $sent_to_admin, $plain_text, $email ){
    // 仅针对客户待处理订单邮件触发
    if ( $email->id === 'customer_on_hold_order' ) :

    // URL前缀固定部分
    $first_url_part = "https://www.mypaymentsite.com/cgi-bin/webscr?&cmd=_xclick&business=89000&currency_code=USD&amount=";
    
    // 获取订单纯数值总金额
    $order_total = $order->get_total();

    // URL后缀固定部分
    $last_url_part = "&item_name=ebook";

    // 拼接完整支付链接(PHP使用.作为字符串拼接运算符)
    $payment_link = $first_url_part . $order_total . $last_url_part; 

    // 输出支付区域,渲染可点击超链接
    echo '<h2>' . __("Direct Payment Link", "woocommerce") . '</h2>
    <div style="margin-bottom: 40px;">
    <table cellspacing="0" cellpadding="0" style="width: 100%; color: #636363; border: 2px solid #e5e5e5;" border="0">
    <tr><td><p><a href="'. esc_url($payment_link) .'">点击此处直接支付订单</a></p></td></tr>
    </table></div>';

    endif;
}

核心修改点说明

  • 修复字符串拼接语法错误:PHP中多个字符串拼接需要使用.运算符,而非直接并列变量
  • 新增可点击链接渲染逻辑:用<a>标签绑定支付链接地址,锚文本设置为指定文案,同时使用esc_url()对链接做安全转义,避免输出异常
  • 优化邮件触发判断逻辑:简化单值ID判断的写法,不需要调用in_array

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.04 02:00:01