ZenCart中的优惠券问题

时间:2011-07-20 14:38:42

标签: php shopping-cart zen-cart

我正在创建一个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');
 }

我哪里错了?

1 个答案:

答案 0 :(得分:0)

您发布了$ mCouponCost = xxxxxxx

的3种变体
  • 第一个使用*来乘以...这是正确的解决方案。

  • 第二次使用 - >这肯定是错误的,因为数据 不是对象格式 - >需要。

  • 第三个,也就是你所说的“所有代码”的一部分,使用了 - 这将减去,绝对不会产生 正确的结果。

您的代码需要一些内容,其中一些内容不在您的帖子中:

a)$ order对象必须在你正在使用它的函数/方法中声明为全局

b)您必须编写自己的代码才能实际声明并为$ order-> info数组的'coupon_cost'元素赋值

c)如果您正在处理多种货币,那么将基本成本乘以$ order-> info ['currency_value']将得出客户购物货币的正确结果。

确定您的问题是否与您首次引用的代码行实际相关的简单测试,只需分配

$mCouponCost = $order->info['coupon_cost'];

即:完全没有任何乘法。这样做可以揭示有关其他问题可能导致您遇到的困难的有用信息。