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

如何在WooCommerce支付方式描述中显示购物车订单总金额

WooCommerce支付网关描述动态计算修改方案

以下是修改后的代码,可实现订单金额百分比计算及40天后日期显示的需求:

add_filter( 'woocommerce_gateway_description', 'rudr_change_payment_gateway_description', 25, 2 );
function rudr_change_payment_gateway_description( $description, $gateway_id ) {
    if( 'pec_gateway_check' === $gateway_id ) {
        // 获取当前购物车总金额
        $order_total = WC()->cart->total;
        
        // 计算在线支付金额(35%)和支票金额(65%)
        $online_amount = $order_total * 0.35;
        $check_amount = $order_total * 0.65;
        
        // 计算并格式化40天后的日期
        $check_date = date( 'Y/m/d', strtotime( '+40 days' ) );
        
        // 构建带动态数据的HTML描述
        $description = '<div class="mcpec-text">
            <span class="mcp-item">مبلغ پرداختی آنلاین شما:<span class="mcp-item-inner">' . wc_price( $online_amount ) . '</span></span>
            <span class="mcp-item">مبلغ چک صیادی:<span class="mcp-item-inner">' . wc_price( $check_amount ) . '</span></span>
            <span class="mcp-item">تاریخ چک صیادی:<span class="mcp-item-inner">' . $check_date . '</span></span>
        </div>';
    }
    return $description;
}

关键说明:

  • 金额获取与计算:通过WC()->cart->total获取购物车最终总金额,直接乘以对应百分比得到拆分金额,确保数据与订单一致。
  • 金额格式化:使用WooCommerce内置的wc_price()函数处理金额显示,自动适配站点设置的货币格式(如符号、千位分隔符)。
  • 日期处理:利用strtotime('+40 days')快速计算40天后的时间戳,再通过date()函数格式化为年/月/日的样式。
  • 过滤器规范:将HTML内容拼接为字符串赋值给$description返回,符合woocommerce_gateway_description过滤器的使用要求,避免直接输出导致的页面渲染问题。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.17 13:20:29