ZenCart 中的優惠券問題 (Coupon problem in ZenCart)


問題描述

ZenCart 中的優惠券問題 (Coupon problem in ZenCart)

I am creating a ZenCart payment module. I can pass through the products, the shipping details as well as the shipping fee, but it won’t pass the coupon through without messing up the currency format.

If i do this, it won’t display the coupon at all

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

If i do it like this, it will display the coupon but it messes up the currency format

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

All the code is below: 

  $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');
 }

Where am I going wrong?


參考解法

方法 1:

You posted 3 variations of the $mCouponCost = xxxxxxx

  • The first uses * to multiply ... which is the correct solution.

  • The second uses -> which would definitely be wrong because the data is not in the object format which -> would require.

  • The third, which is part of what you said is "all the code", uses a - which would be subtracting, and definitely would not produce the correct result.

Your code requires a few things, some of which are absent from your post:

a) the $order object must be declared as a global inside the function/method you're using it in

b) you must have written your own code to actually declare and assign a value to the 'coupon_cost' element of the $order->info array

c) if you're dealing with multiple currencies, then multiplying the base cost by $order->info['currency_value'] would yield the correct result for the currency in which the customer is shopping.

A simple test to determine whether your problem is actually related to the line of code you first quoted, would be to simply assign 

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

ie: without doing any multiplication at all. Doing so would reveal useful information about what other problems might actually be causing the difficulties you're encountering.

(by alkistisZen Cart)

參考文件

  1. Coupon problem in ZenCart (CC BY-SA 3.0/4.0)

#shopping-cart #PHP #zen-cart






相關問題

PHP PDO - 無法序列化或反序列化 PDO 實例 (PHP PDO - cannot serialize or unserialize PDO instances)

Prestashop 在註冊表單中添加額外字段 (Prestashop Add extra fields to registration form)

接近購物車存儲,帶有 sessionID 的數據庫 (Approach shopping cart storage, database with sessionID)

購物車不工作,我想哭 (Shopping cart won't work and I want to cry)

如何在 UITableView 中使用 dequeueReusableCellWithIdentifier 快速管理購物車? (How to manage shopping cart in UITableView with dequeueReusableCellWithIdentifier in swift?)

如何區分 Rs 和 % 值? (How to differentiate Rs and % values?)

貝寶購物車的運費之一 (One of delivery charge for paypal shopping cart)

ZenCart 中的優惠券問題 (Coupon problem in ZenCart)

PAYPAL 貨幣不起作用 (PAYPAL currency is not working)

RESTful 購物車網絡服務 (RESTful Shopping Cart web service)

Gravity Form 不適用於結帳頁面 (Gravity Form doesn't work with Checkout Page)

帶有對象的數組,單擊按鈕後增加/減少對像中的值之一 (Array with objects, increasing/decreasing one of the value in object after click on button)







留言討論