2012-09-05 112 views
8

我還有一個網頁在我的Opencart的環境,讓說,關於我們頁面,其中有下面這些形式,假設用戶已經在他們的車中的物品,這些形式應該工作,但他們不這樣做:如何獲取外部頁面優惠券/優惠券表單以在OpenCart中工作?

輸入優惠券代碼在這裏:

<form action="index.php?route=checkout/cart" method="post" enctype="multipart/form-data" id="basket"> 
    <input type="text" value="" id="coupon" name="coupon"/> 
    <input type="hidden" value="coupon" name="next"/> 
    <input type="submit" class="button" value="Apply Coupon"/> 
</form> 

輸入您的禮品券代碼在這裏:

<form action="index.php?route=checkout/cart" method="post" enctype="multipart/form-data" id="basket"> 
    <input type="text" value="" name="voucher"/> 
    <input type="hidden" value="voucher" name="next"/> 
    <input type="submit" class="button" value="Apply Voucher"/> 
</form> 

這是優惠券代碼系統,但它不工作(此代碼是默認不能編輯):

/catalog/controller/checkout/cart.php

// VOUCHER 
// IF THE USER HAS ENTERED A VOUCHER 
if (isset($this->request->post['voucher']) && $this->request->post['voucher']) { 
    foreach ($this->request->post['voucher'] as $key) { 
     if (isset($this->session->data['vouchers'][$key])) { 
      unset($this->session->data['vouchers'][$key]); 
     } 
    } 
} 
+0

的PHP代碼沒有做任何事情... ...只要UNS兌現代金券代碼。請發佈整個cart.php文件或鏈接到它。 – christopher

+0

您是否添加了快速死亡('here'),以便您知道它是否達到了此IF語句。如果你發佈了你正在使用的opencart的舊版本,它也會有所幫助。 –

回答

3

優惠券/優惠券/優惠

這三個系統塊在Opencart的模塊。它們被組合在一起,您可以編輯這些文件,例如使一些空白或使用if/else語句僅顯示某些模塊。

你不能調用的形式本身在cart.tpl,它必須是:

<div class="right"> 
    <!-- eVoucher System --> 
    <?php foreach ($modules as $module) { ?> 
     <?=$module?> 
    <?php } ?> 
    <!-- eVoucher System --> 
</div> 

運輸/憑證的文件位置和優惠券模塊

這將循環和顯示模塊第三方物流文件,航運,優惠券和優惠券。他們奇怪地位於

/catalog/view/theme/default/total/coupon.tpl 
/catalog/view/theme/default/total/shipping.tpl 
/catalog/view/theme/default/total/voucher.tpl 

我們不使用它們,所以我們已經空白的憑證和運輸。優惠券形式如下:

<div> 
    <div class="cart-heading"><?php echo $heading_title; ?></div> 
    <div class="cart-content" id="coupon"><?php echo $entry_coupon; ?>&nbsp; 
    <input type="text" name="coupon" value="<?php echo $coupon; ?>" /> 
    &nbsp;<a id="button-coupon" class="button"><span><?php echo $button_coupon; ?></span></a></div> 
</div> 
<script type="text/javascript"> 
<!-- 
// 
// jQuery dependent based on .post so make sure 
// your footer or header jQuery call is before this 
// 
$('#button-coupon').bind('click', function() { 
    $.ajax({ 
     type: 'POST', 
     url: 'index.php?route=total/coupon/calculate', 
     data: $('#coupon :input'), 
     dataType: 'json',  
     beforeSend: function() { 
      $('.success, .warning').remove(); 
      $('#button-coupon').attr('disabled', true); 
      $('#button-coupon').after('<span class="wait">&nbsp;<img src="catalog/view/theme/default/image/loading.gif" alt="" /></span>'); 
     }, 
     complete: function() { 
      $('#button-coupon').attr('disabled', false); 
      $('.wait').remove(); 
     },  
     success: function(json) { 
      if (json['error']) { 
       $('#basket').before('<div class="warning">' + json['error'] + '<img src="catalog/view/theme/default/image/close.png" alt="" class="close" /></div>'); 
      } 

      if (json['redirect']) { 
       location = json['redirect']; 
      } 
     } 
    }); 
}); 
//--> 
</script> 

所以這是如何以及在何處這些文件中,total也有一個控制器和coupon和所有其他模塊控制器和驅動標準的MVC。

外部優惠券購物車形式

所以對你希望外部網頁,採摘爲TPL文件和$modules$module循環使用,代碼應該是:

(確保「斜線」指數。 PHP在SEO URI的情況下)

當然,例如,你對我們的網頁上:

<strong>Please enter your coupon:</strong> 

<form action="/index.php?route=total/coupon/calculate" method="post" enctype="multipart/form-data" id="basket"> 
    <input type="text" value="" id="coupon" name="coupon"/> 
    <input type="hidden" value="coupon" name="next"/> 
    <input type="submit" class="button" value="Apply Coupon"/> 
</form> 
+0

我可以創建一個外部窗體,但使用index.php嗎?路線=總計/優惠券/計算功能,而不是在購物車上,但? +1雖然.. – TheBlackBenzKid

+0

更新了答案。 – M1th

+0

非常感謝。我嘗試了很長時間,甚至導致將購物車流程改回原來的OpenCart代碼。 – TheBlackBenzKid

0

我試圖把這些形式在頁面上,他們都爲我工作。輸入優惠券/代金券代碼會將我帶到結帳頁面,其中已有代碼供我使用。

+0

這是如何歸類爲答案? – TheBlackBenzKid