Jump to content

[RESOLU] Bug envoi mail, avec custom template


Recommended Posts

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 :

image.png.faa216295c1cf1b1d952f92f7b8516cf.png

 

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

Edited by Julien (see edit history)

Share this post


Link to post
Share on other sites

Bonjour,

Question bête mais est-ce que les fichiers suivants existent bien dans votre module ?
( Je suppose que vous envoyez les emails en langue fr )

  • mails/fr/clictill_template.html
  • mails/fr/clictill_template.txt

Ce sont ces fichiers et non le .twig que la fonction va utiliser pour envoyer le contenu.
Le reste de votre code semble bon.

Cordialement,
Hervé

Share this post


Link to post
Share on other sites

Bonjour HHennes,

 

merci pour ta réponse,

je n'avais pas vu ces explications sur la documentation technique:

https://devdocs.prestashop.com/1.7/modules/concepts/mail-templates/add-a-layout-from-module/

-https://devdocs.prestashop.com/1.7/modules/concepts/mail-templates/

Je n'avais qu'un template html.twig dans mon répertoire "mails/layout"

 

Je vais me renseigner plus en détails, je garderai ce post à jour si je trouve ou non une solution.

Si tu as un lien vers une documentation expliquant tout ca, je suis preneur car je ne trouve rien de concret dans la documentation développeur Prestashop.

 

J'ai suivi beaucoup de tes explications techniques sur ton site internet. Ca m'a beaucoup aidé , donc merci pour tes partages !

 

Julien

Edited by Julien (see edit history)

Share this post


Link to post
Share on other sites

  • Julien changed the title to [RESOLU] Bug envoi mail, avec custom template

Bonjour Julien,


Ravi que mon article ait pu t'aider à comprendre ton problème. :)
J'avais songé à le mettre tout de suite mais j'évite mettre trop de liens vers mon blog dans mes réponses sur le forum, sinon on va croire que je ne poste que pour ça :D

Bonne journée,

Share this post


Link to post
Share on other sites

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 account

Sign in

Already have an account? Sign in here.

Sign In Now
 Share

×
×
  • Create New...

Important Information

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