История покупок Shopkeeper

Скрипт для вывода истории покупок для зарегистрированных пользователей с отслеживанием статуса заказа.

Код сниппета «ShopHistory»:

<?php
$dbname
= $modx->db->config['dbase'];
$dbprefix
= $modx->db->config['table_prefix'];
$mod_table
= $dbprefix."manager_shopkeeper";
$mod_config_table
= $dbprefix."manager_shopkeeper_config";
$theme
= $modx->config['manager_theme'];
$charset
= $modx->config['modx_charset'];
$manager_language
= $modx->config['manager_language'];
$text
="";
        $user_id
=$modx->getLoginUserID();
    $count_query
= mysql_query("SELECT COUNT(*) FROM $mod_table WHERE userid='".$user_id."'");
    $total
= mysql_result($count_query, 0);
       
global $modx, $langTxt;

$langTxt
= array(
 
"noOrders" => "Заказов нет",
 
"currency" => "Валюта",
 
"currencyDefault" => "руб.",
   
 
"phase1" => "Новый",
 
"phase2" => "В процессе выполнения",
 
"phase3" => "Отправлен",
 
"phase4" => "Выполнен",
 
"phase5" => "Возникли проблемы",
 
"phase6" => "Оплата получена"
);

   
if($total>0){
                $data_query
= $modx->db->select("id, short_txt, content, allowed, addit, price, currency, status, DATE_FORMAT(date,'%d.%m.%Y %k:%i') AS date",$mod_table, "userid='".$user_id."'", "id DESC", "");
                $summa
=0;
                $num
= 1;
                $text1
='';
       
               
while ($data = mysql_fetch_array($data_query)){
               
                       
                        $descr
= $data['content'];      
                        $L1
= unserialize($descr);
                                $result
= count($L1);
                                                                                               
                                $text1
.='<tr>';
                                $text1
.='<td rowspan="'.$result.'" width="20" align="center">'.$data["id"].'</td>';
                                $text1
.='<td rowspan="'.$result.'" width="100">'.$data["date"].'</td>';
                                $text1
.='<td rowspan="'.$result.'" width="160"  class="status'.$data['status'].'" align="center">'.$langTxt['phase'.$data['status']].'</td>';
                               
                               
foreach ($L1 as $i => $value) {
                                        $document_tvs
=$modx->getTemplateVarOutput(true, $value[0]);
                                        $pagetitle
=$document_tvs['pagetitle'];
                                        $sum
= $value[1] * $value[2];
                                        $text1
.='<td width="50%"><a href="[~'.$value[0].'~]">'.$pagetitle.'</a></td>';
                                        $text1
.='<td align="center">'.$value[1].'</td>';
                                        $text1
.='<td align="center">'.$value[2].''.$data['currency'].'</td>';
                                        $text1
.='<td align="center">';                                  
                                        $text1
.= $sum;
                                        $text1
.= $data['currency'];
                                        $text1
.='</td>';                                                                                        
                                        $text1
.='</tr>';
                                       
                                        $summa
= $summa + $sum;
                                       
++$num;
                               
}                      
               
}
               
//подгружаем чанк
                $txt
= $modx->parseChunk('producthistory', array(
                       
'ShopHistory' => $text1,
                       
'SummaOrder' => $summa
                       
),
                       
''
                       
);
                echo
($txt);
   
}
       
else{
      echo
'<div class="nogood">'.$langTxt['noOrders'].'</div>';
   
}
?>



Код чанка «producthistory»:

<table>
       
<tr><th></th><th>Дата</th><th>Статус</th><th>Состав заказа</th><th>Кол-во</th><th>Цена за 1 ед.</th><th>Общая сумма</th></tr>
       
       
</table>
        Общая стоимость всех заказов: руб.



На нужной странице просто вызываем сниппет

Отправить заявку на создание сайта

Сообщение отправлено