我正在创建一个ZenCart支付模块。我可以通过产品,运费细节以及运费,但不会通过优惠券而不会弄乱货币格式。
如果我这样做,它将不会显示优惠券
$mCouponCost => $order->info['coupon_cost'] * $order->info['currency_value'];
如果我这样做,它会显示优惠券,但它会混淆货币格式
$mCouponCost = $order->info['coupon_cost'] -> $order->info['currency_value'];
所有代码如下:
$mCouponCost = $order->info['coupon_cost'] - $order->info['currency_value'];
if (!empty($mCouponCost)) {
$j++;
$process_button_string .= zen_draw_hidden_field('LIDSKU' . $j, 'Coupon') .
zen_draw_hidden_field('LIDDesc' . $j, 'Coupon Cost') .
zen_draw_hidden_field('LIDPrice' . $j, number_format($mCouponCost, 2, '.', '')) .
zen_draw_hidden_field('LIDQty' . $j, '1') .
zen_draw_hidden_field('ShippingRequired' . $j, '1') .
zen_draw_hidden_field('IsVoucher' . $j, '0');
}
我哪里错了?
答案 0 :(得分:0)
您发布了$ mCouponCost = xxxxxxx
的3种变体第一个使用*来乘以...这是正确的解决方案。
第二次使用 - >这肯定是错误的,因为数据 不是对象格式 - >需要。
第三个,也就是你所说的“所有代码”的一部分,使用了 - 这将减去,绝对不会产生 正确的结果。
您的代码需要一些内容,其中一些内容不在您的帖子中:
a)$ order对象必须在你正在使用它的函数/方法中声明为全局
b)您必须编写自己的代码才能实际声明并为$ order-> info数组的'coupon_cost'元素赋值
c)如果您正在处理多种货币,那么将基本成本乘以$ order-> info ['currency_value']将得出客户购物货币的正确结果。确定您的问题是否与您首次引用的代码行实际相关的简单测试,只需分配
$mCouponCost = $order->info['coupon_cost'];
即:完全没有任何乘法。这样做可以揭示有关其他问题可能导致您遇到的困难的有用信息。