[RESOLU] Ajouter URL PAYPAL dans mails

Bonjour à tous,

Je souhaiterai savoir comment peut-on intégrer l’URL de paiement en ligne PAYPAL lorsque l’on envoi la facture par mail.

L’idéal serait d’avoir un autre bouton du type « PAYPAL - Envoyer par mail » et d’y attacher le corps du mail (depuis other.lang) avec le lien pour le paiement en ligne.

Merci d’avance

J’avance sur le sujet, voilà où j’en suis :
- Ajout de la variable PAYPAL_ADD_PAYMENT_URL avec 1 comme valeur dans les paramètres divers de dolibarr
- Ajout de la variable PERSONALIZED dans le fichier de langue other.lang
- Ajout de la balise <a href="%s">Je règle ma facture via PAYPAL</a> dans le fichier de langue paypal.lang

Ce qui affiche bien le lien vers le paiement en ligne.

J’aimerai limiter cet affichage seulement si le mode de règlement est celui de PAYPAL.

J’ai essayé if ($this->param[« fk_mode_reglement »]==‹ 55 ›)
ps: 55 correspond à PAYPAL
Mais cette condition ne fonctionne pas

Merci à ceux qui pourront m’aider.

Bonjour,

La condition par rapport au mode de règlement serait à ajouter dans le fichier html.formmail.class.php à la ligne 573
J’essaye ça mais cela ne fonctionne pas
<code>
if (($this->param[« models »]==‹ facture_send ›) && ($this->fk_mode_reglement == ‹ 55 ›))
</code>

J’ai fini par trouver une solution.

Dans htdocs/compta/facture.php

Dans le tableau des parametres complementaires du post, j’ai remplacé ceci :

<code>
// Tableau des parametres complementaires du post
$formmail->param[‹ action ›]=$action;
$formmail->param[‹ models ›]=$modelmail;
</code>

Par

<code>
// Tableau des parametres complementaires du post
$formmail->param[‹ action ›]=$action;
$formmail->param[‹ models ›]=$modelmail;
// Indique le mode de règlement
$formmail->param[‹ mode_reglement_id ›]=$object->mode_reglement_id;
</code>

Puis dans htdocs/core/class/html.formmail.class.php
J’ai remplacé
<code>
if ($this->param[« models »]==‹ order_send ›)
{
$url=getPaypalPaymentUrl(0,‹ order ›,$this->substit[‹ ORDERREF ›]);
$this->substit[‹ PERSONALIZED ›]=$langs->transnoentitiesnoconv(« PredefinedMailContentLink »,$url);
}
if ($this->param[« models »]==‹ facture_send ›)
{
$url=getPaypalPaymentUrl(0,‹ invoice ›,$this->substit[‹ FACREF ›]);
$this->substit[‹ PERSONALIZED ›]=$langs->transnoentitiesnoconv(« PredefinedMailContentLink »,$url);
}
</code>

Par

<code>
// Affiche le lien de paiement PAYPAL si le mode de règlment PAYPAL a été sélectionné
if ($this->param[« mode_reglement_id »] == ‹ 55 ›)
{
if ($this->param[« models »]==‹ order_send ›)
{ $url=getPaypalPaymentUrl(0,‹ order ›,$this->substit[‹ ORDERREF ›]);
$this->substit[‹ PERSONALIZED ›]=$langs->transnoentitiesnoconv(« PredefinedMailContentLink »,$url);
}
if ($this->param[« models »]==‹ facture_send ›)
{
$url=getPaypalPaymentUrl(0,‹ invoice ›,$this->substit[‹ FACREF ›]);
$this->substit[‹ PERSONALIZED ›]=$langs->transnoentitiesnoconv(« PredefinedMailContentLink »,$url);
}
}
</code>

Salut,

Vous avez testé sa fonctionne parfaitement ?

Oui c’est fonctionnelle.

Si vous avez besoin d’aide, dites le moi.

Juste pouvez-vous bien détailler la manip à effectuer, car dans vos 1er post il y’a aussi des manips, svp, merci.

1- Dans configuration/divers
Ajouter PAYPAL_ADD_PAYMENT_URL avec la valeur 1

2- other.lang
Ajouter PERSONALIZED dans PredefinedMailContentSendInvoice

3- paypal.lang
Modifier
%s
Par <a style=« text-decoration:none;color:white"href= »%s">Je règle ma facture via PAYPAL</a> dans PredefinedMailContentLink

Ajouter après PredefinedMailContentLink
PredefinedMailContentLinkOrder=<br/><br/>Vous pouvez cliquer sur le lien sécurisé ci-dessous pour effectuer votre paiement (Paypal) si ce dernier n’a pas encore été fait.<br/><br/><a style=« text-decoration:none;color:white"href= »%s">Je règle ma commande via PAYPAL</a><br/><br/>

4- facture.php
Après
$formmail->param[‹ models ›]=$modelmail;
Ajouter
$formmail->param[‹ mode_reglement_id ›]=$object->mode_reglement_id;

5- commande/fiche.php
Après
$formmail->param[‹ models ›]=$modelmail;
Ajouter
$formmail->param[‹ mode_reglement_id ›]=$object->mode_reglement_id;

6- html.formmail.class.php
Remplacer
if ($this->param[« models »]==‹ order_send ›)
{
$url=getPaypalPaymentUrl(0,‹ order ›,$this->substit[‹ ORDERREF ›]);
$this->substit[‹ PERSONALIZED ›]=$langs->transnoentitiesnoconv(« PredefinedMailContentLink »,$url);
}
if ($this->param[« models »]==‹ facture_send ›)
{
$url=getPaypalPaymentUrl(0,‹ invoice ›,$this->substit[‹ FACREF ›]);
$this->substit[‹ PERSONALIZED ›]=$langs->transnoentitiesnoconv(« PredefinedMailContentLink »,$url);
}

Par
if ($this->param[« mode_reglement_id »] == ‹ 55 ›)
{
if ($this->param[« models »]==‹ order_send ›)
{
$url=getPaypalPaymentUrl(0,‹ order ›,$this->substit[‹ ORDERREF ›]);
$this->substit[‹ PERSONALIZED ›]=$langs->transnoentitiesnoconv(« PredefinedMailContentLinkOrder »,$url);
}
if ($this->param[« models »]==‹ facture_send ›)
{
$url=getPaypalPaymentUrl(0,‹ invoice ›,$this->substit[‹ FACREF ›]);
$this->substit[‹ PERSONALIZED ›]=$langs->transnoentitiesnoconv(« PredefinedMailContentLink »,$url);
}
}

1 « J'aime »

Bonsoir,

J’ai testé malheureusement sa ne fonctionne pas!

De 1 dans « commande/fiche.php » j’ai pas cette ligne :
$formmail->param[‹ models ›]=$modelmail;

De 2 je reçoit effectivement le mail, mais sans lien.

Il y’a pas une erreur dans vos explications ?

Merci

J’ai trouvé le bug, donc dans le mail qu’on reçoit avec la facture ci-joint
le liens « paypal » il est mais en couleur blanc du coup on le voit pas.

C’est après avoir sélectionner le corpds du mail que je me suis rendu compte,
il y a t’il une solution à sa ? Je pense que c’est liée au css.

Merci

retirer le color:white

chez moi j’ai mis un background…

J’utilise la version 6.

je viens de suivre les indications et c’est galère plus d’envoie mail possible?

1/ 4- facture.php $formmail->param=$modelmail, j’ai pas cet ligne.
2/ 5- commande/fiche.php, je n’ai pas ce fichier.
3/ Remplacer
if ($this->param[« models »]==‹ order_send ›)
{
$url=getPaypalPaymentUrl(0,‹ order ›,$this->substit);
$this->substit=$langs->transnoentitiesnoconv(« PredefinedMailContentLink »,$url);
}
if ($this->param[« models »]==‹ facture_send ›)
{
$url=getPaypalPaymentUrl(0,‹ invoice ›,$this->substit);
$this->substit=$langs->transnoentitiesnoconv(« PredefinedMailContentLink »,$url);
}

Par
if ($this->param[« mode_reglement_id »] == ‹ 55 ›)
{
if ($this->param[« models »]==‹ order_send ›)
{
$url=getPaypalPaymentUrl(0,‹ order ›,$this->substit);
$this->substit=$langs->transnoentitiesnoconv(« PredefinedMailContentLinkOrder »,$url);
}
if ($this->param[« models »]==‹ facture_send ›)
{
$url=getPaypalPaymentUrl(0,‹ invoice ›,$this->substit);
$this->substit=$langs->transnoentitiesnoconv(« PredefinedMailContentLink »,$url);
}
}
A partir de cette opération plus d’envoi mail possible

Help, Merci

001-0100.png

001-0100.png