如何在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
相关产品推荐
相关产品推荐

