Cet article est assez ancien, malgré toute l'attention que j' apporte à mes contenus il est possible que celui-ci ne soit plus d'actualité.
N'hésitez pas à me le signaler si nécessaire via le formulaire de contact.
N'hésitez pas à me le signaler si nécessaire via le formulaire de contact.
Petite découverte de la semaine d’une possibilité relativement pratique d’ajouter des conditions à valider dans le tunnel de commande.

La bonne nouvelle c’est que c’est très facile à faire via un module puisqu’il existe un hook pour cela 🙂
Voyons donc cela dans un module hhcgv dont voici le code
<?php if (!defined('_PS_VERSION_')) { exit; } //Attention à bien include ceci use PrestaShop\PrestaShop\Core\Checkout\TermsAndConditions; class Hhcgv extends Module { public function __construct() { $this->name = 'hhcgv'; $this->tab = 'others'; $this->version = '0.1.0'; $this->author = 'hhennes'; $this->bootstrap = true; parent::__construct(); $this->displayName = $this->l('Module de demo cgv'); $this->description = $this->l('Ajout de cgv personnalisées'); } /** * Installation du module * @return bool */ public function install() { if ( !parent::install() || !$this->registerHook('termsAndConditions') ) { return false; } return true; } /** * Nouvelles conditions de commandes * @param array $param * @return array */ public function hookTermsAndConditions($param) { $conditions = []; //Définition des conditions (ici c'est du texte direct ) // mais vous pouver récupérer le contenu d'une page cms également $termsAndConditions = new TermsAndConditions(); $termsAndConditions ->setText( "Je rajoute une condition " ) ->setIdentifier('conditions-sup-1'); $conditions[] = $termsAndConditions; $termsAndConditions2 = new TermsAndConditions(); $termsAndConditions2 ->setText( "Je rajoute encore une condition " ) ->setIdentifier('conditions-sup-2'); $conditions[] = $termsAndConditions2; //Renvoyer les conditions return $conditions; } } |

Les conditions sont bien à valider par les clients pour qu’ils puissent passer commande, il n’y a rien de plus à faire 🙂
Intéressant, merci pour le partage !!
Savez-vous si c’est possible d’ajouter une condition, suivant la méthode d’expédition par exemple
Bonjour,
Oui c’est tout à fait possible de rajouter une condition d’affichage.
Il faut savoir que ce tunnel n’est pas exécuté en ajax, du coup la page est rechargée à chaque fois pour aller dans les étapes suivantes.
Vous pouvez donc réévaluer les conditions d’affichage de l’étape lors de chaque changement.
Cordialement,
Hervé
Merci beaucoup pour votre réponse.
Auriez-vous un exemple de code pour faire une tel condition par rapport a l’étape des carrier. Je n’arrive pas a faire le lien entre les deux étapes.
Bonjour,
vous pouvez conditionner l’ajout de l’étape via une condition du genre ( dans le fichier d’override )
//Vérification du transporteur courant du panier
$id_carrier = 1; //Identifiant du transporteur valide
if ( $this->context->cart->id_carrier == $id_carrier) {
//Ajout de l'étape
}
Bonjour,
Auriez-vous la même solution pour PS1.6 ?
Cordialement,
Laurent
Bonjour Laurent,
Non malheureusement pas dans l’immédiat, car sur la version 1.6 ce point va déjà dépendre du type de tunnel utilisé ( one page checkout ou le standard en plusieurs pages )
Et l’implémentation sera différente dans les 2 cas.
Cordialement,
Hervé