Aujourd’hui, nous allons voir comment ajouter la notification « Produit déjà acheté le ….. » sur la page produit.
Cette astuce (donnée par Nemops) est valable pour Prestashop 1.6.
Très rapide à mettre en place.
—————————————————————
Dans ce tutorial, nous allons « overrider » les fichiers. Si vous upgradez Prestashop, les fichiers modifiés ne seront pas supprimés.
A) Override du fichier : ProductController.php
– Créer un fichier qui se nommera ProductController.php qui se placera dans override/controllers/front/ puis insérez le code suivant :
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 |
<?php Class ProductController extends ProductControllerCore { public function initContent() { if($this->context->customer->id) // only if logged in { $bought_products = $this->context->customer->getBoughtProducts(); // only valid orders if($bought_products) { foreach ($bought_products as $prod) { if($prod['product_id'] = $this->product->id) { $this->context->smarty->assign(array( 'bought_on'=> $prod['date_add'] )); } } } } parent::initContent(); } } |
B) Nettoyer votre cache
Allez dans le dossier cache et supprimer le fichier class_index.php
C) Insérez la notification dans le fichier tpl de la fiche produit
Ouvrez le fichier product.tpl qui se situe dans themes/nomdevotretheme/product.tpl et insérez le code à l’endroit où vous désirez voir apparaitre la phrase. Je mets toujours la phrase en anglais et je la traduis ensuite dans le BO de prestashop.
1 2 3 4 5 6 7 |
{if isset($bought_on)} <div class="col-xs-12"> <div class="bought_on alert alert-info"> {l s='You purchased this product on'} {dateFormat date=$bought_on} </div> </div> {/if} |
D) N’oubliez pas de nettoyer le cache dans le Back-office de Prestashop :
Pour en savoir plus, vous pouvez lire l’article suivant : https://www.majory-cubizolles.fr/blog/vider-cache-prestashop/
Merci très pratique en effet !
Je cherche la même astuce à mettre dans la liste produit !
en tout cas super.
Jérôme