2012-09-05 22 views
8

Tôi có một trang khác trong môi trường OpenCart của tôi, chúng ta hãy nói về chúng tôi trang, trong đó có những hình thức dưới đây, giả sử người dùng có mục trong giỏ hàng của họ, những hình thức nên làm việc nhưng họ không:Làm cách nào để nhận biểu mẫu phiếu thưởng/phiếu thưởng bên ngoài để làm việc trong OpenCart?

Nhập mã phiếu giảm giá của bạn ở đây:

<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> 

Nhập món quà mã chứng từ của bạn ở đây:

<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> 

này là dành cho các hệ thống mã voucher nhưng nó không hoạt động (mã này là mặc định không thay đổi nội dung):

/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

mã php doesnt làm bất cứ điều gì ... Chỉ cần UNS đặt mã phiếu thưởng. Vui lòng đăng toàn bộ tệp cart.php hoặc liên kết tới tệp đó. – christopher

+0

Bạn đã thêm một cái chết nhanh ('ở đây') để bạn biết nếu nó thậm chí đạt đến câu lệnh IF này. Ngoài ra nó sẽ giúp nếu bạn đăng phiên bản cũ của opencart bạn đang sử dụng. –

Trả lời

3

Phiếu giảm giá/Phiếu thưởng/Giao hàng

Ba khối hệ thống này là các mô-đun trong OpenCart. Chúng được lặp lại với nhau, bạn có thể chỉnh sửa các tập tin, ví dụ làm cho một số trống hoặc sử dụng một tuyên bố if/else để chỉ hiển thị các mô-đun nhất định.

Bạn không thể gọi các hình thức chính nó trong cart.tpl, nó phải là:

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

địa điểm tập tin của Vận chuyển/Voucher và các module Phiếu giảm giá

Điều này sẽ lặp và hiển thị các mô-đun tpl file, vận chuyển, phiếu giảm giá và chứng từ. Chúng nằm ở vị trí kỳ lạ

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

Chúng tôi không sử dụng tất cả vì vậy chúng tôi đã ghi đè chứng từ và giao hàng. hình thức phiếu giảm giá trông giống như:

<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> 

Vì vậy, đó là cách thức và nơi những tập tin này, các total cũng có một bộ điều khiển và coupon và tất cả các mô-đun khác là điều khiển và chuẩn MVC điều khiển.

ngoài Phiếu giảm giá giỏ Mẫu

Vì vậy, để sử dụng trên các trang bên ngoài như bạn muốn, tuốt cho các tập tin tpl và $modules$module vòng lặp, mã nên là:

(đảm bảo "cắt giảm" chỉ số. php trong trường hợp SEO URI)

chắc chắn, ví dụ, trên về chúng tôi trang của bạn:

<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

Tôi có thể tạo một biểu mẫu bên ngoài nhưng sử dụng index.php không?chức năng route = total/coupon/calculate thay vì có trong giỏ hàng? +1 mặc dù .. – TheBlackBenzKid

+0

Đã cập nhật câu trả lời. – M1th

+0

Cảm ơn bạn rất nhiều. Tôi đã cố gắng một thời gian dài và chúng tôi thậm chí còn dẫn đến việc thay đổi quy trình giỏ hàng gần như quay trở lại mã OpenCart ban đầu. – TheBlackBenzKid

0

tôi đã cố gắng đưa những hình thức trên một trang và họ đang làm việc cho tôi. Việc nhập mã phiếu giảm giá/phiếu thưởng sẽ đưa tôi đến trang thanh toán với các mã đó đã có cho tôi.

+0

Câu hỏi này được phân loại như thế nào? – TheBlackBenzKid

Các vấn đề liên quan