source: spip-zone/_plugins_/commandes/trunk/action/distribuer_commande.php @ 103958

Last change on this file since 103958 was 103958, checked in by cedric@…, 3 years ago

un pipeline commandes_pre_distribuer_commande appelee prealablement a la distribution, qui permet aux plugin peripheriques de modifier eventuellement la commande en prevision de sa distribution : exemple creer un compte client a la volee si besoin

File size: 1.2 KB
Line 
1<?php
2/**
3 * API d'édition du plugin Commandes
4 *
5 * @plugin     Commandes
6 * @copyright  2014
7 * @author     Ateliers CYM, Matthieu Marcillaud, Les Développements Durables
8 * @licence    GPL 3
9 * @package    SPIP\Commandes\Editer
10 */
11
12// Sécurité
13if (!defined("_ECRIRE_INC_VERSION")) return;
14
15/**
16 * Distribuer une commande : pour chaque ligne de la commande on appelle l'api distribuer
17 * si elle est implementee pour l'objet concerne
18 *
19 * @param int $id_commande
20 */
21function action_distribuer_commande_dist($id_commande){
22
23        if ($id_commande = intval($id_commande)
24          and $commande = sql_fetsel("*","spip_commandes","id_commande=".intval($id_commande))) {
25
26                // appeler un pipeline qui permet aux plugins peripheriques de gerer
27                // exemple creer a la volee un compte client si on est arrive jusqu'ici avec id_auteur=0 (nouveau client, workflow simplifie)
28                $commande = pipeline('commandes_pre_distribuer_commande',$commande);
29
30                if ($details = sql_allfetsel("*","spip_commandes_details","id_commande=".intval($id_commande)) ){
31                        foreach ($details as $detail){
32                                $objet = $detail['objet'];
33                                if ($distribuer = charger_fonction($objet, "distribuer", true)){
34                                        $distribuer($detail['id_objet'], $detail, $commande);
35                                }
36                        }
37                }
38        }
39
40}
Note: See TracBrowser for help on using the repository browser.