Affichage par defaut de la liste des commandes avec un statut défini PDF Imprimer Envoyer

Ouvrir par défaut la liste des commandes virtuemart avec un statut défini

Si vous cherchez à ouvrir directement la liste des commandes virtuemart sur les commandes à traiter (ex: commande en cours de traitement, paiement confirmé...etc), le code ci dessous vous permettra de sélectionner le ou les statuts voulus lorsque vous cliquerez sur les icônes "Lister les commandes".

En plus, il affichera la liste des statuts des commandes en haut de la liste afin de filtrer les status que vous souhaitez.

Attention, ce code peut sans doute être amélioré ou optimisé car je ne suis pas un informaticien de formation, je ne pourrais pas être tenu pour responsable de l'utilisation que vous en ferez.

Dans administrator\components\com_virtuemart\html\order.order_list.php ligne 38, ajouter ou modifier

$show = vmGet( $_REQUEST, "show", "" );
 
if (!empty($show)) {
if ($show == "Commande a traiter") {
$q .= "order_status <> 'X' AND order_status <> 'E' AND order_status <> 'S' AND ";
}else{
$q .= "order_status = '$show' AND ";
}
}

Dans le code ci dessus, modifier les statuts que vous ne souhaitez pas afficher, ici on a X (commande annulée) et E (commande expédiée)

Ajouter ou modifier à la ligne 70

<div align="center">
<?php
$navi_db = new ps_DB;
$q = "SELECT order_status_code, order_status_name ";
$q .= "FROM #__{vm}_order_status WHERE vendor_id = '$ps_vendor_id'";
$navi_db->query($q);
while ($navi_db->next_record()) {  ?>
<a href="/<?php $sess->purl($_SERVER['PHP_SELF']."?page=$modulename.order_list&show=".$navi_db->f("order_status_code")) ?>">
<b><?php echo $navi_db->f("order_status_name")?></b></a>
|
<?php
}
?>
<a href="/<?php $sess->purl($_SERVER['PHP_SELF']."?page=$modulename.order_list&show=")?>"><b>
<?php echo $VM_LANG->_('PHPSHOP_ALL') ?></b></a>
</div>
<br />
<a href="/<?php $sess->purl($_SERVER['PHP_SELF']."?page=$modulename.order_list&show=Commande a traiter") ?>">  <b><?php echo "Commande a traiter" ?></b></a>

Le code ci dessus affichera la liste de tous les statuts de commande virtuemart et vous pourrez filtrer ainsi sur les commandes que vous voulez en cliquant sur les différents liens.

A la fin du fichier ligne  269, après $listObj->endTable();

Ajouter ou modifier

$listObj->writeFooter( $keyword, "&show=$show" );

Pour afficher uniquement les commandes à traiter quand on clique sur lister les commandes

Dans administrator\components\com_virtuemart\header.php, ligne 363, ajouter  &amp;show=Commande a traiter après order.order_list

<a href="/<?php $sess->purl($_SERVER['PHP_SELF']."?pshop_mode=admin&amp;page=order.order_list&amp;show=Commande a traiter") ?>"><?php echo $VM_LANG->_('PHPSHOP_ORDER_LIST_MNU') ?></a>

Dans administrator\modules\mod_quickicon\mod_quickicon.php, ligne 44, ajouter  &show=Commande a traiter après com_virtuemart

$link = 'index.php?pshop_mode=admin&page=order.order_list&option=com_virtuemart&show=Commande a traiter';

Dans administrator\components\com_virtuemart\html\store.index.php, ligne 97 ajouter  &amp;show=Commande a traiter après order.order_list

$link = $sess->url($_SERVER['PHP_SELF']."?pshop_mode=admin&page=order.order_list&show=Commande a traiter");

Et voilà, vous allez gagner du temps!

 

Afin que le statut sélectionné (ex:"commande expédiée") ne soit pas changer lorsque l'on change le statut d'une ligne de commande, faire la modification suivante:

Dans administrator\components\com_virtuemart\html\order.order_list.php, remplacer ligne 246

// Change Order Status form
$form_code .= '<form style="float:left;" method="post" action="'. $_SERVER['PHP_SELF'] .'">';

par

$u =& JFactory::getURI();
$form_code .= '<form style="float:left;" method="post" action="'. $u->toString() .'">';