2016-04-07 14 views
0

特定の情報ページ(ページIDは12)があり、管理パネルからこのページIDを特定の製品に割り当てました。たとえば、Information-id 12がProduct1に割り当てられています。ユーザーがその製品を購入し、注文ステータスが「完了」に設定されている場合、ユーザーはそのページ(情報ID)にアクセスする必要があります。つまり、このページにアクセスするには、ユーザーはその商品を購入して注文ステータスが完了し、ユーザーがログインする必要があります。opencartで特定の条件で特定のページにアクセスする

私はそれを行う方法がありません。 order.tplでは、私はこのようなやってみましたが、私はURLと貼り付けをコピーする場合、それは、ログインせずにアクセスすることができます。

ここで私もチェックしています私の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> 

です有効期限はadminで取得しています。

customer_islogged()をinformation.php(コントローラ)に入れても、他のページにアクセスすることはできません。

答えて

0

顧客が購入完了したかしていない場合は今、その特定のページにあなたがチェックすることができ

//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; 
    } 

ことのいずれかが、その特定のページにアクセスするために購入する必要があり、あなたが製品のリストを渡すことができる関数を作成します

$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')); 
} 
関連する問題