2016-04-07 26 views
0

bazı kriterlere erişerek belirli bir bilgi sayfasına sahibim (sayfa kimliği 12) ve yönetici panelinden bu sayfaya bir ürün kimliği atadım. Örneğin, Bilgi Kimliği 12 Ürün1'e atanmıştır. Bir kullanıcı bu ürünü satın aldığında ve sipariş durumu 'Tamamlandı' olarak ayarlandığında, kullanıcının o sayfaya (bilgi-kimliği) erişimi olmalıdır. Yani, bu sayfaya erişmek için, kullanıcı bu ürünü satın almalı ve sipariş durumu eksiksiz olmalı ve kullanıcı giriş yapmalıdır.Belirli bir sayfaya opencart

Bunu nasıl yapacağımı anlamıyorum. order.tpl olarak, ben böyle yapıyor çalıştım ama URL ve kopyalayıp yapıştırarak, eğer giriş yapmadan erişilebilir olabilir. Burada

İşte ben de kontrol ediyorum benim order_list.tpl

$end_date= date('Y-m-d', strtotime($start_date. ' + '.$date1. 'days')); 

     echo date('d/m/Y',strtotime($end_date)); 
     ?></td> 
     </tr> 
     <tr> 
     <td class="history">Product Name</td> 
     <?php $today = date('Y-m-d'); ?> 

     <?php if(($order['status']='Complete') AND ($today > $end_date)) { ?> 
     <td><strong><h4><font color="#FF0000">Either Your Course date is Expired or Order is not completed!!</font></h4></strong> </td> 
     <?php } 
     else { ?> 
     <td><a href="<?php echo $order['href1']; ?>"><strong><?php echo $order['pname']; ?></strong></a></td> 
     <?php } ?> 
     </tr> 

olduğunu admin üzerinden yakalanan son kullanma tarihi.

customer_islogged()'u info.php (controller) içine koyarsam, başka sayfalara erişemiyorum.

cevap

0

sen ürünlerin listesini geçebilir bir işlev oluşturun, bunların hiçbirini müşteri satın tamamlanmış olup olmadığını kontrol veya olamayacağını belirli sayfasında Şimdi bu özel sayfa

//catalog/model/account/order.php 

    public function checkForAccess($product_id_list){ 
     $exists = false; 
     $query = $this->db->query("SELECT product_id FROM ".DB_PREFIX."order o LEFT JOIN ".DB_PREFIX."order_product op ON (o.order_id=op.order_id) WHERE o.order_status_id=5 AND o.customer_id = '" . (int)$this->customer->getId() ."'"); 
     foreach($query->rows as $product){ 
      if(in_array($product['product_id'],$product_id_list)){ 
       $exists = true; 
       break; 
      } 
     } 
     return $exists; 
    } 

erişmek için satın alınması gereken

$this->load->model('account/order'); 
//Eg Customer will have access who have purchased product 20 and 22   
$product_list = array(20,22); 
$results = $this->model_account_order->checkForAccess($product_list); 

if(!$results){ 
    //where to redirect if not valid 
    $this->response->redirect($this->url->link('common/home')); 
} 
İlgili konular