1 lien pour se désinscrire mais 2 tables abonnés

[Résolu]
Signaler
Messages postés
103
Date d'inscription
jeudi 16 juin 2005
Statut
Membre
Dernière intervention
30 avril 2007
-
Messages postés
103
Date d'inscription
jeudi 16 juin 2005
Statut
Membre
Dernière intervention
30 avril 2007
-
Bonjour à tous, voilà des lustres que je ne suis pas revenu sur ce site qui a plus que contribué à mon apprentissage du php ^^

Alors voilà, je souhaiterais rajouter à ma newsletter un lien pour se désabonner, mais comment gérer la désinscription avec mes 2 tables ? En effet, dans le corps du mail j'envoie l'adresse de l'abonné, mais je ne sais pas le faire pour 2 tables différentes...

Ci dessous mon envoi de mail :

while ($mail = tep_db_fetch_array($mail_query1)) {
                      $mimemessage = new email(array('X-Mailer: osCommerce bulk mailer'));
                    $mimemessage->add_html($this->html_content.'

'.TEXT_NEWSLETTER_OPTOUT.'
'.'['.HTTP_SERVER.DIR_WS_CATALOG.FILENAME_NEWS_OPTOUT.'?email='.$mail['customers_email_address'].' Se désinscrire]');
                 $mimemessage->build_message();
                $mimemessage->send($mail['customers_firstname'] . ' ' . $mail['customers_lastname'], $mail['customers_email_address'], '', EMAIL_FROM, $this->title);
              }

Il me semble que le souci est concentré sur cette ligne :

$mimemessage->add_html($this->html_content.'

'.TEXT_NEWSLETTER_OPTOUT.'
'.'['.HTTP_SERVER.DIR_WS_CATALOG.FILENAME_NEWS_OPTOUT.'?email='.$mail['email'].' Se
désinscrire]');

J'hésite entre 2 explications
-> ou on ne peut rien rajouter à ce moment de la formation du mail, car je peux rajouter <!--coloro:#008000--><!--/coloro-->'

'.TEXT_NEWSLETTER_OPTOUT.'
'.'['.HTTP_SERVER.DIR_WS_CATALOG.FILENAME_NEWS_OPTOUT.'?email='.$mail['email'].' Se
désinscrire]');<!--colorc--><!--/colorc--> dans le corps du mail de cette manière html_content.=

(cette
solution m'aurait arrangé car plus simple, seulement j'ai besoin de
transmettre le mail du membre dans le lien pour sa désincription, et
comme j'ai 2 tables avec les inscrits membres et les inscrits "page
d'accueil", je ne vois d'autre choix que rajouter le code en vert dans
les 2 boucles while de fin.)

<!--coloro:#008000-->-> ou bien il est possible -et
je ne sais comment faire- d'intégrer mon code en vert dans le corps du
mail (html_content.=) tout en spécifiant la bonne adresse dans dans <!--/coloro-->?email='.$mail['<!--coloro:#FF0000--><!--/coloro-->email<!--colorc--><!--/colorc-->'].'

<!--colorc--><!--/colorc-->Si quelqu'un a une idée, je suis plus que preneur !

3 réponses

Messages postés
103
Date d'inscription
jeudi 16 juin 2005
Statut
Membre
Dernière intervention
30 avril 2007

j'ai résolu mon problème, suffisait de remplacer $this->html_content par $this->content, merci quand même Flashy Joe
Messages postés
2089
Date d'inscription
jeudi 16 septembre 2004
Statut
Membre
Dernière intervention
27 juin 2021
1
C'est pas tres clair ton histoire...
tu as donc 2 tables, qui servent à une seule newsletter ?
est-ce que les inscrits le sont dans les 2 tables, ou uniquement dans l'une ou peut-être dans les 2 ?
tu peut modifier ta page de desinscription ? est ce que tu en as une pour chaque liste ?
est ce que les 2 tables ont des champs communs ?

Flachy Joe
Messages postés
103
Date d'inscription
jeudi 16 juin 2005
Statut
Membre
Dernière intervention
30 avril 2007

Désolé pour mon manque de clarté.

Alors j'ai une newsletter que je voudrais envoyer à 2 tables en même temps (une table customers et une table newsletter_suscriber).
Ces 2 tables sont indépendantes dans le sens où la première recense les utilisateurs ayant cochés "oui à la news"
Quant à la seconde table, elle concerne les visiteurs qui ont renseigné leur email sur la page d'accueil pour s'inscrire à la news et pas au site.
Je n'ai pas encore fait la page de désincription, mais ce ne sera pas le plus dur je pense.
Et non les 2 tables n'ont pas les mêmes champs :
table customer :
customer_id
customer_gnder
customer_firstname
customer_email (1=abonné)
customer_defautadress
Etc.

Table newsletter_suscriber
id_abonne
email
desabonne (0 = abonné)

Voici le contenu de mon mail :

$html_content .= '</tr><tr><td class="content" align="center" width="' . $width . '%">[' . tep_catalog_href_link(FILENAME_PRODUCT_INFO, 'products_id=' . $images['products_id']) . ' ' . tep_image(HTTP_CATALOG_SERVER . DIR_WS_NORMAL_IMAGES . $images['products_image'], $images['products_name'], SMALL_IMAGE_WIDTH, SMALL_IMAGE_HEIGHT) . '
' . $images['products_name'] . '
' . $currencies->display_price($images['products_price'], tep_get_tax_rate($images['products_tax_class_id'])) . ']</td>';
                $col = 0;
            }else{
                $html_content .= '<td class="content" align="center" width="' . $width . '%">[' . tep_catalog_href_link(FILENAME_PRODUCT_INFO, 'products_id=' . $images['products_id']) . ' ' . tep_image(HTTP_CATALOG_SERVER . DIR_WS_NORMAL_IMAGES . $images['products_image'], $images['products_name'], SMALL_IMAGE_WIDTH, SMALL_IMAGE_HEIGHT) . '
' . $images['products_name'] . '
' . $currencies->display_price($images['products_price'], tep_get_tax_rate($images['products_tax_class_id'])) . ']</td>';
            }
            $col++;
        }
        $html_content .= '</tr></table>';

et mes envois de mail :

 function send($newsletter_id) {      $mail_query1 tep_db_query("select customers_firstname, customers_lastname, customers_email_address from " . TABLE_CUSTOMERS . " where customers_newsletter '1'");      $mail_query2 tep_db_query("select id_abonne, desabonne, email from newsletter_subscribers where desabonne '0'");
     
                 // Construction du mail
               
                // Envoi membres
              while ($mail = tep_db_fetch_array($mail_query1)) {
                 $mimemessage = new email(array('X-Mailer: osCommerce bulk mailer'));
                $mimemessage->add_html($this->html_content.'

'.TEXT_NEWSLETTER_OPTOUT.'
'.'['.HTTP_SERVER.DIR_WS_CATALOG.FILENAME_NEWS_OPTOUT.'?email='.$mail['customers_email_address'].' Se désinscrire]');
                $mimemessage->add_html($this->html_content());
                $mimemessage->build_message();
                $mimemessage->send($mail['customers_firstname'] . ' ' . $mail['customers_lastname'], $mail['customers_email_address'], '', EMAIL_FROM, $this->title);
              }
             
              // Envoi visiteurs
              while ($mail = tep_db_fetch_array($mail_query2)) {
                  $mimemessage = new email(array('X-Mailer: osCommerce bulk mailer'));
                $mimemessage->add_html($this->html_content.'

'.TEXT_NEWSLETTER_OPTOUT.'
'.'['.HTTP_SERVER.DIR_WS_CATALOG.FILENAME_NEWS_OPTOUT.'?email='.$mail['email'].' Se désinscrire]');
                $mimemessage->add_html($this->html_content());
                $mimemessage->build_message();
                $mimemessage->send($mail['id_abonne'] . ' ' . $mail['desabonne'], $mail['email'], '', EMAIL_FROM, $this->title);
              }
   
      $newsletter_id = tep_db_prepare_input($newsletter_id);      tep_db_query("update " . TABLE_NEWSLETTERS . " set date_sent now(), status '1' where newsletters_id = '" . tep_db_input($newsletter_id) . "'");
    }

C'est plus clair ?