2011-07-20 127 views
1

我正在創建ZenCart支付模塊。我可以通過產品,運輸細節以及運輸費用,但它不會通過優惠券通過沒有搞亂貨幣格式。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

您發佈的$ mCouponCost的3個變化= XXXXXXX

  • 第一個使用*繁殖......這是正確的解決方案。

  • 第二次使用 - >這肯定是錯誤的,因爲數據 不是 - >需要的對象格式。

  • 第三,這是你說的什麼部分是「所有代碼」,採用的是 - 這將被減去,而絕對不會產生 正確的結果。

您的代碼需要一些東西,其中有一些是從您的文章不存在:

一)$訂單對象必須聲明爲一個全球性的你使用它的函數/法裏

b)您必須有書面自己的代碼實際聲明和值分配給的$命令 - 如果你正在處理多種貨幣的「coupon_cost」元素>信息陣列

C),然後將基本成本乘以$ order-> info ['currency_value']將產生t他糾正了客戶購物貨幣的結果。

一個簡單的測試,以確定您的問題是否真正關係到你方第一次報的代碼行,是簡單地分配

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

即:沒有做任何乘法可言。這樣做會揭示有關其他問題可能會導致您遇到困難的有用信息。