PhpMyNewsLetter 2.0

Support et annonces PhpMyNewsLetter.

Vous n'êtes pas identifié(e).

Annonce

Pour me permettre de mieux vous aider au mieux, merci d'être le plus précis possible en donnant :
- la version de phpmynewsletter utilisée
- votre hébergement : personnel, dédié, mutualisé
- votre hébergeur (OVH, free, Infomaniak, 1and1,...)
- votre OS : linux, windows
- version de PHP (5.3, 5.6, 7.0, hhvm...)
Toutes les réponses à mes questions qui sont sans retour de votre part seront considérées comme résolues !

#1 02-02-2017 10:41:31

fsebbah
Membre

Désinscription des membres

Lors de la désincscription des membres, les utilisateurs sont supprimés de la base au lieu d'être poussés vers la table prefix_email_deleted.


Version  2.0.4 de PhpMyNewsLetter
VM sous Debian Jessie - PHP 7.0
Mysql  Ver 14.14 Distrib 5.5.54

Hors ligne

#2 03-02-2017 13:07:08

Arnaud
Administrateur

Re : Désinscription des membres

Bonjour,
Je viens de tester :
- si confirmation de désinscription avec lien de désinscription : email dans _email_deleted.
- si désinscription directe : c'est le bug !
Pour corriger, il faut aler dans include/lib/pmn_fonctions.php et modifier la fonction :

function removeSubscriberDirect($cnx, $table_email, $list_id, $addr, $table_email_deleted) {
    $addr = strtolower($addr);
    $rm=$cnx->query("SELECT email FROM $table_email WHERE list_id='$list_id' AND email='$addr'")->fetch(PDO::FETCH_ASSOC);
    if ($rm == 0)
        return -1;
    if($cnx->query("DELETE FROM $table_email WHERE email='$addr' AND list_id='$list_id'")){
        return true;
    } else return -2;
    $cnx->query("INSERT INTO $table_email_deleted (list_id,email,type) VALUES (".escape_string($cnx,$list_id).",".escape_string($cnx,$addr).",'unsub')");
}

en

function removeSubscriberDirect($cnx, $table_email, $list_id, $addr, $table_email_deleted) {
    $addr = strtolower($addr);
    $rm=$cnx->query("SELECT email FROM $table_email WHERE list_id='$list_id' AND email='$addr'")->fetch(PDO::FETCH_ASSOC);
    if ($rm == 0)
        return -1;
    if($cnx->query("DELETE FROM $table_email WHERE email='$addr' AND list_id='$list_id'")){
        $cnx->query("INSERT INTO $table_email_deleted (list_id,email,type) VALUES (".escape_string($cnx,$list_id).",".escape_string($cnx,$addr).",'unsub')");
        return true;
    } else return -2;
}

explication : on renvoyait le true avant de passer la requête d'ajout dans email_deleted...


Je prends le temps de créer un outil pour tous, de niveau professionnel, mais simple !
Il n'est pas encore parfait, soyez indulgents, ça vient...
Si vous avez des questions, n'hésitez pas ! Mais soyez précis pour une réponse plus rapide  wink

Hors ligne

#3 07-02-2017 12:32:09

fsebbah
Membre

Re : Désinscription des membres

Ok, je l'ai mis en production et je dois lancer ma newsletter demain. Je te dirais ce qu'il en est, tant est qu'il y ait des désinscriptions. Aujourd'hui j'en à 6000 envois par semaine et ça passe bien.


Version  2.0.4 de PhpMyNewsLetter
VM sous Debian Jessie - PHP 7.0
Mysql  Ver 14.14 Distrib 5.5.54

Hors ligne

#4 07-02-2017 13:18:51

Arnaud
Administrateur

Re : Désinscription des membres

OK, à suivre, mais je suis confiant ! big_smile


Je prends le temps de créer un outil pour tous, de niveau professionnel, mais simple !
Il n'est pas encore parfait, soyez indulgents, ça vient...
Si vous avez des questions, n'hésitez pas ! Mais soyez précis pour une réponse plus rapide  wink

Hors ligne

Pied de page des forums

Propulsé par FluxBB