Jump to content
Spriter

Supprimer [shop_name] dans l'objet des emails envoyés

Recommended Posts

Salut,

 

Lorsque Prestashop envoie un email il fait précéder l'objet de chaque message par le nom de la boutique entre crochets [shop_name].

 

J'aimerais supprimer cette mention afin de ne laisser que l'objet du message en lui-même.

 

Quelqu'un sait il comment procéder ? Je suis un peu perdu dans la version 1.5 !

 

Merci beaucoup d'avance :) .

 

Je suis sous PS 1.5.4.1

Share this post


Link to post
Share on other sites

Jetez un oeil dans la classe Mail.php

$message = new Swift_Message('['.Configuration::get('PS_SHOP_NAME', null, null, $id_shop).'] '.$subject);

Ne vous reste plus qu'à supprimer cette variable, ce qui donnerait (pas testé)

$message = new Swift_Message($subject);

  • Like 1

Share this post


Link to post
Share on other sites

hello,

 

 

Dans le dossier "mails" à la racine de ton presta, tu as l’ensemble des fichier html pour chaque type de mail.

Tu peux éditer les fichiers et tu trouveras se genre de code :

<title>Message de {shop_name}</title>

 

a adapter selon tes besoins....

 

Penser également aux diverses langues !

Share this post


Link to post
Share on other sites

Bonjour,

 

Dans la classe Mail, la méthode Send() comporte cette ligne:

  /* Create mail and attach differents parts */
  $message = new Swift_Message('['.Configuration::get('PS_SHOP_NAME', null, null, $id_shop).'] '.$subject);

 

Qu'il faut modifier (dans un override) par ceci:

  /* Create mail and attach differents parts */
  $message = new Swift_Message($subject);

 

PS: Je vois que nous avons écris en même temps, au moins il y aura de la réponse ainsi ! :D

  • Like 1

Share this post


Link to post
Share on other sites

Super ! Un grand merci à vous 3 pour vos réponses, j'ai testé la modification dans la classe Mail et ça fonctionne :rolleyes: .

 

En revanche Stéphane, je suis intéressé par les personnalisations que tu indiques mais dans le dossier Mails à la racine de mon Prestashop, moi je n'ai pas de fichiers HTML... uniquement :

  • un répertoire EN
  • un fichier index.php

Est-ce normal de ne pas avoir de répertoire FR ? Voulais tu dire qu'on customisait les fichiers HTML de la base de langue en Anglais et qu'on traduisait le français depuis le BO uniquement ? (on n'a plus la génération de fichiers HTML propres à chaque langues) ?

 

Merci pour ces petits détails !

Edited by Spriter (see edit history)

Share this post


Link to post
Share on other sites

ah ?! Oo

 

tu as version zip de presta sous le coude ?

regarde normalement il y a 5 dossiers langues (de, en, es, fr, it) comprennant les fichiers html et txt....

Share this post


Link to post
Share on other sites

Re Stéphane,

 

Oui j'ai bien le dernier ZIP PS1.5.4.1 et je viens de le redonwloader pour vérifier mais pas mieux ! Il n'y a qu'un répertoire de langue EN dans le répertoire Mails à la racine.

 

En vérifiant dans les versions précédentes, les dossiers de langue autres que l'EN étaient présents dans la version 1.5.3.1 mais plus dans la 1.5.4.0 et l'actuelle 1.5.4.1.

 

En revanche ils ont bien été créés sur mon serveur, ok ok je m'y retrouve. Je pense que PS les crée au besoin selon les langues utilisées.

 

Merci pour ton retour.

Edited by Spriter (see edit history)

Share this post


Link to post
Share on other sites

Bonjour,

 

Dans la classe Mail, la méthode Send() comporte cette ligne:

   /* Create mail and attach differents parts */
   $message = new Swift_Message('['.Configuration::get('PS_SHOP_NAME', null, null, $id_shop).'] '.$subject);
Qu'il faut modifier (dans un override) par ceci:

   /* Create mail and attach differents parts */
   $message = new Swift_Message($subject);
PS: Je vois que nous avons écris en même temps, au moins il y aura de la réponse ainsi ! biggrin.png

 

 

 

Bonjour,

 

Visiblement sous Prestashop 1.6 cette modification n'est plus valable...

 

Dans la classe Mail.php, il s'agirait de ces lignes :

$subject = '['.Configuration::get('PS_SHOP_NAME', null, null, $id_shop).'] '.$subject;
$message = new Swift_Message($subject);

Je suppose qu'il faut donc créer un override Mail.php, en remplaçant la première ligne par :

$subject = $subject;

Pouvez-vous me confirmer ?

 

Edited by MathieuG (see edit history)

Share this post


Link to post
Share on other sites

Bonjour,

 

En effet. Quoique vous pouvez simplement supprimer la première ligne qui équivaudra à ne rien faire, ;)

 

Dans cette version, le $subject a été mis à part, mais l'idée est la même. :)

 

PS: Bien entendu, il faut réaliser une surcharge de la classe Mail ; afin de ne pas perdre la modification lors d'une mise à jour ultérieure :)

Edited by J. Danse (see edit history)

Share this post


Link to post
Share on other sites

Bonjour, je me permet de répondre à ce sujet.

Je précise que je tatonne un tout petit peu avec prestashop et les modifications

La procédure fonctionne en effet pour la version 1.6 par contre les emails evoyés ne sont plus affichés dans préférence-->Email

Quelqu'un à une idée pour corriger le problème?

Merci par avance pour vos réponses

Edited by Niper33 (see edit history)

Share this post


Link to post
Share on other sites

Bonjour,

je suis intéressé par ce sujet, car je désire supprimer le nom de la boutique dans l’entête des mail (car les mails arrivent une fois sur 2 dans les spam).

 

Je suis sur presta 1.6.1.10

 

Comment avez vous fait?

Merci pour vos infos

Share this post


Link to post
Share on other sites

Bonjour,

je suis intéressé par ce sujet, car je désire supprimer le nom de la boutique dans l’entête des mail (car les mails arrivent une fois sur 2 dans les spam).

 

Je suis sur presta 1.6.1.10

 

Comment avez vous fait?

Merci pour vos infos

Bonjour, Souvent cela dépends du nom de ta boutique ou de la quantité d'e-mail que tu envoies si tu es bloqué. Si tu veux pas être embêté tu peux peut passer par des solutions de cloud e-mailing comme emailjet et pleins d'autres. Tu trouveras leur modules gratuits sur l'addons (enfin c'était le cas à l'époque où nous utilisions emailjet). L'abonnement n'est pas très cher si cela dépasse la quantité qu'ils autorisent en utilisation gratuite et donc tu peux en profiter pour envoyer des newsletters sans être bloqué.

J'espère t'avoir un peu aidé.

Share this post


Link to post
Share on other sites

Bonjour,

 

Je suis sur la version 1.7. Une idée comment faire car cela a changé :(

 

Merci

Share this post


Link to post
Share on other sites

Bonjour,

 

Dans la classe Mail, la méthode Send() comporte cette ligne:

   /* Create mail and attach differents parts */
   $message = new Swift_Message('['.Configuration::get('PS_SHOP_NAME', null, null, $id_shop).'] '.$subject);
Qu'il faut modifier (dans un override) par ceci:

   /* Create mail and attach differents parts */
   $message = new Swift_Message($subject);
PS: Je vois que nous avons écris en même temps, au moins il y aura de la réponse ainsi ! biggrin.png

 

Hello,

 

Une idée sur 1.7 please? :)

Share this post


Link to post
Share on other sites

Bonjour,

 

A priori c'est la même manip, à tester

 

Dans \classes\Mail.php : 

/* Create mail and attach differents parts */
$subject = '['.Configuration::get('PS_SHOP_NAME', null, null, $idShop).'] '.$subject;
$message->setSubject($subject);

Share this post


Link to post
Share on other sites

 

Bonjour,

 

A priori c'est la même manip, à tester

 

Dans \classes\Mail.php : 

/* Create mail and attach differents parts */
$subject = '['.Configuration::get('PS_SHOP_NAME', null, null, $idShop).'] '.$subject;
$message->setSubject($subject);

Je viens d'essayer de remplacer le:

 

  /* Create mail and attach differents parts */
            $subject = '['.Configuration::get('PS_SHOP_NAME', null, null, $idShop).'] '.$subject;
            $message->setSubject($subject);
 
par
 
/* Create mail and attach differents parts */
            $subject = '['.Configuration::get('PS_SHOP_NAME', null, null, $idShop).'] '.$subject;
            $message->new Swift_Message($subject);
 
mais ca me donne erreur 500 :(

Share this post


Link to post
Share on other sites

:blink:

 

Si ce que vous voulez faire c'est retirer le nom de la boutique dans le sujet du mail, il suffit que vous commentiez la ligne 364 et c'est tout.

Share this post


Link to post
Share on other sites

Bonjour Alexandre.

Je suis désolé mais je ne sais pas insérer le nouveau code dans mon overide (déjà existant)

 

PS 1.6.1.18

 

Overide existant :
 

<?php
class Mail extends MailCore
{

    public static function Send($id_lang, $template, $subject, $template_vars, $to,
        $to_name = null, $from = null, $from_name = null, $file_attachment = null, $mode_smtp = null,
        $template_path = _PS_MAIL_DIR_, $die = false, $id_shop = null, $bcc = null, $reply_to = null)
    {

        //$bcc = 'romain@quote-communication.com';
        //$bcc = 'epicesettoutbio@gmail.com';

        return parent::Send($id_lang, $template, $subject, $template_vars, $to,
            $to_name, $from, $from_name, $file_attachment, $mode_smtp,
            $template_path, $die, $id_shop, $bcc, $reply_to);

    }

}

 

où dois-je coller le code ci-dessous exactement ?

  /* Create mail and attach differents parts */
            $subject = .$subject;
            $message->setSubject($subject);

mon code modifié est juste ?

 

Désolé je suis complètement novice et j'ai repris un site existant donc un dev avait dejà fait des modifs et overides.

Merci

Romain

Share this post


Link to post
Share on other sites
On 21/08/2017 at 1:00 PM, Alexandre Carette said:

Salut,

 

Faites des overrides de classes afin de pouvoir mettre a jour Prestashop,

 

cordialement

 

Bonjour Alexandre.

Je suis désolé mais je ne sais pas insérer le nouveau code dans mon overide (déjà existant)

 

PS 1.6.1.18

 

Overide existant :
 

<?php
class Mail extends MailCore
{

    public static function Send($id_lang, $template, $subject, $template_vars, $to,
        $to_name = null, $from = null, $from_name = null, $file_attachment = null, $mode_smtp = null,
        $template_path = _PS_MAIL_DIR_, $die = false, $id_shop = null, $bcc = null, $reply_to = null)
    {

        //$bcc = 'romain@quote-communication.com';
        //$bcc = 'epicesettoutbio@gmail.com';

        return parent::Send($id_lang, $template, $subject, $template_vars, $to,
            $to_name, $from, $from_name, $file_attachment, $mode_smtp,
            $template_path, $die, $id_shop, $bcc, $reply_to);

    }

}

 

où dois-je coller le code ci-dessous exactement ?

  /* Create mail and attach differents parts */
            $subject = .$subject;
            $message->setSubject($subject);

mon code modifié est juste ?

 

Désolé je suis complètement novice et j'ai repris un site existant donc un dev avait dejà fait des modifs et overides.

Merci

Romain

Share this post


Link to post
Share on other sites

Pour PS 1.7.6.2 j'ai trouvé, il faut écrire :

/* Create mail and attach differents parts */
            $subject = $subject;
            $message->setSubject($subject);

Ça fonctionne.

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

×
×
  • Create New...

Important Information

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