Bonjour à tous,
Habituellement je ne poste pas grand chose et j'essais de me débrouiller mais la j'ai vraiment besoin d'aide. J'ai besoin de créer un template d'email depuis un module sous PrestaShop 1.7.7.
En regardant la documentation développeur j'ai trouver cette solution, en utilisant un hook:
public function hookActionListMailThemes(array $hookParams) { if (!isset($hookParams['mailThemes'])) { return; } /** @var ThemeCollectionInterface $themes */ $themes = $hookParams['mailThemes']; /** @var ThemeInterface $theme */ foreach ($themes as $theme) { if (!in_array($theme->getName(), ['classic', 'modern'])) { continue; } $theme->getLayouts()->add(new Layout( 'clictill_template', __DIR__ . '/mails/layout/clictill_template.html.twig', '', $this->name )); } }
Avec un template très simple, juste pour tester que tout fonctionne (monmodule/mails/layout/clictill_template.html.twig):
{# modules/clictill/mails/layout/contact.html.twig #} {% extends '@MailThemes/classic/components/layout.html.twig' %} {% block content %} <div> <p>Test</p> </div> {% endblock %}
Jusque là, je n'ai aucun soucis, mon email s'affiche dans mon panel admin "Apparence > Thème d'email", et je peux le visualiser :
Mais lorsque j'essais de l'appeler depuis mon code de cette façon:
Mail::Send( (int)(Configuration::get('PS_LANG_DEFAULT')), // defaut language id 'clictill_template', // email template file to be use $title, // email subject array( '{email}' => Configuration::get('PS_SHOP_EMAIL'), // sender email address '{message}' => $listErrorsMessage // email content ), $email, // receiver email address NULL, //receiver name NULL, //from email address NULL, //from name NULL, NULL, _PS_MODULE_DIR_.'clictill/mails/' );
J'ai une erreur "Erreur - Le modèle d'e-mail suivant n'existe pas : clictill_template"... Je cherche depuis plusieurs heures et je ne trouve pas de solution..
Quelqu'un aurait une idée ?
Merci d'avance !
Julien