Arpels Posted November 12, 2016 Share Posted November 12, 2016 Bonjour, J'ai un module que me permet de déclarer des plages de livraison. Ce module transmet un email de confirmation avec la date et l'heure de livraison séparément. J'aimerais récupérer ces informations pour les intégrer directement dans le mail order_conf. Après maintes tentatives infructueuse : copier tous le code correspondant du module dans paymentModule-validateOrder copier une partie du code en effectuant des modifications Je pense que la solution plus simple serait de récupérer directement les informations dans la base avec un simple requête et les passer dans le template mail. J'ai effectué cela, mais ca ne fonctionne pas : $resultpdc = Db::getInstance()->getRow(' SELECT pd.`id_planning_delivery_carrier`, pd.`id_planning_delivery_carrier_slot`, pd.`date_delivery`, c.`id_carrier` FROM `'._DB_PREFIX_.'planning_delivery_carrier` pd LEFT JOIN `'._DB_PREFIX_.'cart` c ON (pd.`id_cart` = c.`id_cart`) WHERE pd.`id_cart` = '.(int)$this->context->cart->id); $date_delivery = (date)$resultpdc['date_delivery']; $delivery_slot = (date)$resultpdc['id_planning_delivery_carrier_slot']; J'ai l'erreur suivante : Parse error: syntax error, unexpected '$resultpdc' (T_VARIABLE) J'ai également placé les déclarations suivantes : // Construct order detail table for the email $product_var_tpl = array( '{date_delivery}' => $date_delivery, '{delivery_slot}' => $delivery_slot ) // Send an e-mail to customer (one order = one email) $data = array( '{date_delivery}' => $date_delivery, '{delivery_slot}' => $delivery_slot ) Si quelqu'un peut m'aider à corriger mes erreurs, merci d'avance. Link to comment Share on other sites More sharing options...
Mediacom87 Posted November 12, 2016 Share Posted November 12, 2016 Bonjour, certainement que le développeur de ce module pourrait vous aider puisqu'il sait comment il fonctionne. Link to comment Share on other sites More sharing options...
Arpels Posted November 12, 2016 Author Share Posted November 12, 2016 Je l'ai sollicité pour savoir d'ou récupérer l'information et ou la transmettre. Il n'en fera pas plus. Mon post aujourd'hui est tourné sur l’implémentation de ce code par mes propres moyens. Avez-vous donc des conseils utiles pour m'aider ? Link to comment Share on other sites More sharing options...
EISEAL Posted November 12, 2016 Share Posted November 12, 2016 Salut, Bon sans le module en effet ca va etre compliqué de t'aider... Tu as placé ce code dans classes > PaymentModule.php ? Je mettrais ceci dans PaymentModule.php juste avant $data = array( : $resultpdc = Db::getInstance()->getRow(' SELECT pd.`id_planning_delivery_carrier`, pd.`id_planning_delivery_carrier_slot`, pd.`date_delivery`, c.`id_carrier` FROM `'._DB_PREFIX_.'planning_delivery_carrier` pd LEFT JOIN `'._DB_PREFIX_.'cart` c ON (pd.`id_cart` = c.`id_cart`) WHERE pd.`id_cart` = '.(int)$this->context->cart->id); $date_delivery = Tools::displayDate($resultpdc['date_delivery']); $delivery_slot = Tools::displayDate($resultpdc['id_planning_delivery_carrier_slot']); Et dans $data = array( tu ajoutes : '{date_delivery}' => $date_delivery, '{delivery_slot}' => $delivery_slot, Piste non testée ! Fais une sauvegarde !!! Link to comment Share on other sites More sharing options...
Mediacom87 Posted November 13, 2016 Share Posted November 13, 2016 Bonjour, c'est réellement un date ce truc ? $delivery_slot = (date)$resultpdc['id_planning_delivery_carrier_slot']; dans ce cas c’est bien étrange comme clé de valeur. Link to comment Share on other sites More sharing options...
Arpels Posted November 18, 2016 Author Share Posted November 18, 2016 Hello ! Désolé du retard : Bonjour, c'est réellement un date ce truc ? $delivery_slot = (date)$resultpdc['id_planning_delivery_carrier_slot']; dans ce cas c’est bien étrange comme clé de valeur. Alors effectivement, c'est pas un type date, mais un type Int(10). my bad. en faite, la date est récupéré comme ça dans le module : 'delivery_slot' => PlanningDeliverySlotByCarrier::getNameById($result['id_planning_delivery_carrier_slot'] @anteverce je test ton code mais il faut que j'ajuste la deuxième variable du coup. Est-ce que je peux appeler la fonction (si c'est bien ça?) PlanningDeliverySlotByCarrier::getNameById depuis PaymentModule.php ? merci ! Link to comment Share on other sites More sharing options...
Arpels Posted November 18, 2016 Author Share Posted November 18, 2016 Re ! J'ai réussi ! j'ai testé d'inclure la classe dans paymentModule, sans succès. --> require_once(dirname(modules/planningdeliverybycarrier).'/PlanningDeliverySlotByCarrier.php'); Alors j'ai carrément copier le code de la classe du module dans PaymentModule.php ! Merci pour votre aide ! j'ai appris de nouvelle chose par la même occasion 1 Link to comment Share on other sites More sharing options...
Arpels Posted November 22, 2016 Author Share Posted November 22, 2016 Avant de le mettre en SOLVED, j'aimerai aller plus loin et mettre le code que j'ai fais dans l'override, plutôt que dans la classe même. Car j'ai remarqué qu'en upgrade de version prestashop les modifs dans ce genre de fichier sont perdu... Merci ! Link to comment Share on other sites More sharing options...
EISEAL Posted November 22, 2016 Share Posted November 22, 2016 Suffit de faire une copie de PaymentModule.php dans override > classes et effacer class_index.php dans le dossier cache pour que ce soit pris en compte Link to comment Share on other sites More sharing options...
Arpels Posted December 9, 2016 Author Share Posted December 9, 2016 Super merci ! je passe le post à SOLVED. Link to comment Share on other sites More sharing options...
Recommended Posts
Create an account or sign in to comment
You need to be a member in order to leave a comment
Create an account
Sign up for a new account in our community. It's easy!
Register a new accountSign in
Already have an account? Sign in here.
Sign In Now