Jump to content

Loulou91

Members
  • Posts

    51
  • Joined

  • Last visited

About Loulou91

  • Birthday 09/04/1960

Contact Methods

Profile Information

  • Location
    france
  • Activity
    Project Owner

Loulou91's Achievements

Newbie

Newbie (1/14)

0

Reputation

  1. Hello, You can find the solution here: https://www.prestashop.com/forums/topic/587229-resolu-html-recuperer-ladresse-email-client-dans-une-commande/
  2. Bonjour à tous, j'ai finalement trouvé (en fouillant dans les forum anglophone) une solution à mon problème ! la solution est donc de modifier le fichier classes/orders/OrderHistory.php et d'y inserer le code: '{email}'=> $order->getCustomer()->email, dans la partie du code ci-après: public function sendEmail($order, $template_vars = false) { $result = Db::getInstance()->getRow(' SELECT osl.`template`, c.`lastname`, c.`firstname`, osl.`name` AS osname, c.`email`, os.`module_name`, os.`id_order_state`, os.`pdf_invoice`, os.`pdf_delivery` FROM `'._DB_PREFIX_.'order_history` oh LEFT JOIN `'._DB_PREFIX_.'orders` o ON oh.`id_order` = o.`id_order` LEFT JOIN `'._DB_PREFIX_.'customer` c ON o.`id_customer` = c.`id_customer` LEFT JOIN `'._DB_PREFIX_.'order_state` os ON oh.`id_order_state` = os.`id_order_state` LEFT JOIN `'._DB_PREFIX_.'order_state_lang` osl ON (os.`id_order_state` = osl.`id_order_state` AND osl.`id_lang` = o.`id_lang`) WHERE oh.`id_order_history` = '.(int)$this->id.' AND os.`send_email` = 1'); if (isset($result['template']) && Validate::isEmail($result['email'])) { ShopUrl::cacheMainDomainForShop($order->id_shop); $topic = $result['osname']; $data = array( '{lastname}' => $result['lastname'], '{firstname}' => $result['firstname'], '{id_order}' => (int)$this->id_order, '{email}'=> $order->getCustomer()->email, '{order_name}' => $order->getUniqReference() Voilà, ça fonctione à merveille!! j'indique le sujet RESOLU !! loulou91 Webmaster (en herbe) du site: https://www.vintagethique.fr
  3. Bonjour, Après moult recherches et investigations ....je seche j'ai bien modifié le fichier ...define.inc.php pour etre en mode debug, mais je n'ai pas tres bien compris l'outil de débug...! donc pas moyen pour moi de suivre le fil...! donc la je suis un peu perdu ..!! je pensais que le sujet serait assez simple à traiter... si quelqu'un à une voie de recherche ? Merci pour votre aide ! loulou91 Webmaster (en herbe) du site: https://www.vintagethique.fr
  4. Hello everyone, I have created an email for a new order status, in this email I need to display the commade number and email address of the client. For the order number I found the variable {order_name} which works, however for the client email address, I searched, but I did not find anything, I tried {email} or { Email_client} but it did not work! I think {email} is not a global variable..! I think this variable should be declared in a file, but I do not know what file and in which part of the file I have to declare this variable! My new email is called "new_email.html" (and new_mail.txt) it is located in the folder "/ Mail / en" if anyone has the solution, thank you in advance for your help Loulou91 webmaster {novice} for https://www.vintagethique.fr
  5. Oui, j'ai bien compris qu'il fallait que je cherche, mais le problème c'est que je ne sais pas quoi ( et ou) chercher..! Chercher dans le fichier AdminOrdersController.php ??, chercher dans un autre fichier ? j'ai bien compris qu'il fallait chercher un code PhP particulier qui serait sensé utiliser ou qui ferait la liaison à "new_Email" (Template) Désolé, mais entre le jargon ^particulier", le manque d'outil de débogage (à l'image de ce que l'on peut trouver dans d'autre language comme VBA) mais ce n'est pas facile, pas très "intuitif" on va dire.. ! Et donc, je cherche ou et je cherche quoi?? Merci pour votre aide !
  6. Bonjour, Comment puis-je retrouver cette partie dans le fichier AdminOrdersController.php ??
  7. il y avait une "," de trop dans le code que je copie /colle...je n'ai plus l'erreur 500, ! Par contre la modif n'a pas fonctionné, le parametre {email} n'est pas pris en compte à l'envoi du mail..??!! j'ai balayé tout le fichier et, des que je pouvais inserer ce code (finalement + de 2 fois) j'ai inséré ce code..pas d'erreur 500 au final, mais le parametre ne fonctionne pas ! :-(
  8. /* Add a new message for the current order and send an e-mail to the customer if needed */ elseif (Tools::isSubmit('submitMessage') && isset($order)) { if ($this->tabAccess['edit'] === '1') { $customer = new Customer(Tools::getValue('id_customer')); if (!Validate::isLoadedObject($customer)) { $this->errors[] = Tools::displayError('The customer is invalid.'); } elseif (!Tools::getValue('message')) { $this->errors[] = Tools::displayError('The message cannot be blank.'); } else { /* Get message rules and and check fields validity */ $rules = call_user_func(array('Message', 'getValidationRules'), 'Message'); foreach ($rules['required'] as $field) { if (($value = Tools::getValue($field)) == false && (string)$value != '0') { if (!Tools::getValue('id_'.$this->table) || $field != 'passwd') { $this->errors[] = sprintf(Tools::displayError('field %s is required.'), $field); } } } foreach ($rules['size'] as $field => $maxLength) { if (Tools::getValue($field) && Tools::strlen(Tools::getValue($field)) > $maxLength) { $this->errors[] = sprintf(Tools::displayError('field %1$s is too long (%2$d chars max).'), $field, $maxLength); } } foreach ($rules['validate'] as $field => $function) { if (Tools::getValue($field)) { if (!Validate::$function(htmlentities(Tools::getValue($field), ENT_COMPAT, 'UTF-8'))) { $this->errors[] = sprintf(Tools::displayError('field %s is invalid.'), $field); } } } if (!count($this->errors)) { //check if a thread already exist $id_customer_thread = CustomerThread::getIdCustomerThreadByEmailAndIdOrder($customer->email, $order->id); if (!$id_customer_thread) { $customer_thread = new CustomerThread(); $customer_thread->id_contact = 0; $customer_thread->id_customer = (int)$order->id_customer; $customer_thread->id_shop = (int)$this->context->shop->id; $customer_thread->id_order = (int)$order->id; $customer_thread->id_lang = (int)$this->context->language->id; $customer_thread->email = $customer->email; $customer_thread->status = 'open'; $customer_thread->token = Tools::passwdGen(12); $customer_thread->add(); } else { $customer_thread = new CustomerThread((int)$id_customer_thread); } $customer_message = new CustomerMessage(); $customer_message->id_customer_thread = $customer_thread->id; $customer_message->id_employee = (int)$this->context->employee->id; $customer_message->message = Tools::getValue('message'); $customer_message->private = Tools::getValue('visibility'); if (!$customer_message->add()) { $this->errors[] = Tools::displayError('An error occurred while saving the message.'); } elseif ($customer_message->private) { Tools::redirectAdmin(self::$currentIndex.'&id_order='.(int)$order->id.'&vieworder&conf=11&token='.$this->token); } else { $message = $customer_message->message; if (Configuration::get('PS_MAIL_TYPE', null, null, $order->id_shop) != Mail::TYPE_TEXT) { $message = Tools::nl2br($customer_message->message); } $varsTpl = array( '{lastname}' => $customer->lastname, '{firstname}' => $customer->firstname, '{id_order}' => $order->id, '{order_name}' => $order->getUniqReference(), '{message}' => $message ); /* Update shipping number */ if (Tools::isSubmit('submitShippingNumber') && isset($order)) { if ($this->tabAccess['edit'] === '1') { $order_carrier = new OrderCarrier(Tools::getValue('id_order_carrier')); if (!Validate::isLoadedObject($order_carrier)) { $this->errors[] = Tools::displayError('The order carrier ID is invalid.'); } elseif (!Validate::isTrackingNumber(Tools::getValue('tracking_number'))) { $this->errors[] = Tools::displayError('The tracking number is incorrect.'); } else { // update shipping number // Keep these two following lines for backward compatibility, remove on 1.6 version $order->shipping_number = Tools::getValue('tracking_number'); $order->update(); // Update order_carrier $order_carrier->tracking_number = pSQL(Tools::getValue('tracking_number')); if ($order_carrier->update()) { // Send mail to customer $customer = new Customer((int)$order->id_customer); $carrier = new Carrier((int)$order->id_carrier, $order->id_lang); if (!Validate::isLoadedObject($customer)) { throw new PrestaShopException('Can\'t load Customer object'); } if (!Validate::isLoadedObject($carrier)) { throw new PrestaShopException('Can\'t load Carrier object'); } $templateVars = array( '{followup}' => str_replace('@', $order->shipping_number, $carrier->url), '{firstname}' => $customer->firstname, '{lastname}' => $customer->lastname, '{id_order}' => $order->id, '{shipping_number}' => $order->shipping_number, '{order_name}' => $order->getUniqReference() ); Voici les 2 zones
  9. Je n'ai pas trouvé la exactement le même code ( j'ai la version 1.6.1.10 de PS) que dans votre exmple, mais j'ai tout de même fait la modification avec votre syntaxe, j'ai trouvé 2 endroits dans ce fichier, ou l'on pouvait insérer ce code, j'ai tester aux 2 endroits successivement, mais j'ai toujours cette erreur 500 (qui disparait heureusement quand j'enlève le code inséré..) ??
  10. On dirait que nos reponses se sont croisée...! Je fais la modif et je vous tiens au courant.. Merci!
  11. A priori, J'ai trouvé ce fichier, admiOrdersController.php, dans lequel il y a une section /* add a new message for the current order and send and email to the custumer is needed */ dans cette section, j'ai trouvé ça: $varsTpl = array ( '{lastname} ' => $customer->lastname, '{firstname} ' => $customer->firstname, '{id_order} ' => $order -> id '{order_name}' => $order -> getUniqReference(), j'ai ensuite inséré votre code (modifié pour avoir la même syntaxe), ici : '{email}' => $this -> context -> Customer-> email , ); Apres enregistrement, lorsque je suis allé sur la page des commandes dans l'admin, j'ai eu une erreur 500, j'ai vidé le cache, mais j'ai eu la même erreur 500 donc, je n'ai pas pu faire le test d'envoi d'email, avec cette variable {email} ... :-( une idée ? déjà,suis-je sur la bonne voie ?? Merci pour votre aide .
  12. Comment connaitre le fichier php qui utilise le fichier new_email.html ?? sachant que cet email est envoyé lors d'un changement d'état d'une commande ??
  13. Bonjour ndiaga, Et merci pour votre aide! Désolé, mais je ne sais pas si cela a une importance pour la réponse, mais j'ai changé le début du titre de mon message (qui commençait par PhP)..par HTML..!! Sinon pour votre réponse, j'ai compris qu'apres avoir coller ce code " $email=$this->context->customer->email; " quelque part dans mon fichier (new_email.html), il fallait que je crée une "variable Template" ...Le problème c'est que je ne sais pas à quoi ressemble une variable Template , où faut-il la créer et comment faut-il l'utiliser?? voici la ligne de code de mon fichier.html, que je cherche à modifier : <strong>Adresse électronique <a href="mailto:{email}" style="color: rgb(51, 127, 241);">{email}</a></strong> désolé pour mes questions qui peuvent paraitre "candides"...mais je le suis..! Encore merci !
  14. Bonjour à tous, J'ai crée un email pour un nouvel état de commande, dans cet email, j'ai besoin d'y afficher le numéro de commade et l'adresse email du client . Pour le numéro de commande j'ai bien trouvé le code {order_name} qui fonctionne, par contre pour l'adresse email du client, J'ai cherché, à doite et a gauche, mais je n'ai rien trouvé, j'ai essayé (au pif) {email} ou {email_client} mais cela n'a hélas pas fonctionné ! Si quelqu'un à la solution ? Merci d'avance
  15. Oui, Merci Eolia, je me suis fait la même remarque , j'ai corrigé et ajouté donc le fichier correspondant .txt ..et ça Fonctionne! Encore Merci pour votre réactivité !!
×
×
  • Create New...

Important Information

Cookies ensure the smooth running of our services. Using these, you accept the use of cookies. Learn More