WooCommerce自定义支付网关:如何仅展示订单上浮10%的金额(不改动实际值)
核心调整思路
完全弃用之前通过woocommerce_cart_calculate_fees钩子修改金额的方案——该方案会直接向购物车对象写入附加费用,把10%的上浮比例纳入订单实际总金额计算,完全不符合需求。本次调整仅修改Woocrypt支付网关指定位置的输出代码,在临时变量中完成上浮10%的数值计算,全程不对购物车、订单的底层金额值做任何写入或修改。
具体操作代码
找到支付网关自定义代码中原本的金额输出行echo $order->get_total();,替换为如下逻辑:
// 读取订单真实总金额,不修改原订单对象的任何属性 $real_total = $order->get_total(); // 仅在当前展示环节生成上浮10%的临时值,无任何持久化存储操作 $display_btc_pay_total = $real_total * 1.1; // 按照WooCommerce标准格式输出展示金额,保持页面排版统一 echo wc_price($display_btc_pay_total);
关键注意点
- 该逻辑仅作用于Woocrypt比特币支付渠道的这一个指定展示位置,不会影响其他支付渠道、购物车页、订单确认页的实际金额展示
- 所有计算都是临时的页面临时变量运算,不会改动数据库中存储的订单金额、支付网关回调校验的金额、后续对账的实际应收金额
- 如果原有代码不需要货币符号、仅输出纯数字金额,可直接输出计算后的临时变量即可,无需强制套用
wc_price()函数,只要不涉及底层金额对象的修改就不会偏离需求
内容的提问来源于stack exchange,提问作者Boggie
相关产品推荐
相关产品推荐

