subscribe
Un exemple d’implémentation est fourni par le plugin Mailsubscribers
newsletter/subscribe
Inscrit un subscriber par son email. Si le subscriber existe deja, on met a jour les informations (nom, listes, lang). L’ajout d’une inscription a une liste est cumulatif : si on appelle plusieurs fois la fonction avec le même email et plusieurs listes différentes, l’inscrit sera sur chaque liste.
Pour retirer un mail d’une liste, il faut le désinscrire.
Quand aucune liste n’est indiquée :
- si l’email n’est inscrit a rien, on l’inscrit a la liste générale
newsletter
- si l’email est déjà inscrit, on ne change pas ses inscriptions, mais on modifie ses informations (
nom
,lang
)
$subscribe = charger_fonction("subscribe","newsletter");
$subscribe($email, $options);
* @param $email
* champ obligatoire
* @param array $options
* nom : string
* listes : array (si non fourni, inscrit a la liste generale 'newsletter')
* lang : string
* force : bool permet de forcer une inscription sans doubleoptin (passe direct en valide)
* graceful : bool permet a contrario de ne pas inscrire quelqu'un qui s'est desabonne (utilise lors de l'import en nombre, l'utilisateur est ignore dans ce cas)
* @return bool
* true si inscrit comme demande, false sinon
*
*
newsletter/unsubscribe
Désinscrire un subscriber par son email. Si une ou plusieurs listes sont précisées, le subscriber est désinscrit de ces seules listes. Si il n’en reste aucune, le statut du subscriber est suspendu. Si aucune liste n’est précisée, le subscriber est désinscrit de toutes les listes newsletter.
$unsubscribe = charger_fonction("unsubscribe","newsletter");
$unsubscribe($email, $options);
*
* @param $email
* champ obligatoire
* @param array $options
* listes : array
* @return bool
* true si inscrit, false sinon
newsletter/subscriber
Décrit les informations d’un inscrit. Pour retirer une liste il faut utiliser unsubscribe
.
$subscriber = charger_fonction("subscriber","newsletter");
$subscriber($email);
*
* @param $email
* champ obligatoire
* @return bool|array
* false si n'existe pas
* array :
* string email
* string nom
* array listes
* string lang
* string status : on|pending|off
* string url_unsubscribe : url de desabonnement
*/
newsletter/subscribers
Renvoie les inscrits à une ou plusieurs listes. Si plusieurs listes sont demandées, c’est un OU qui s’applique (renvoie les inscrits à au moins une des listes). Les options count
et limit
permettent de faire un simple comptage ou de ne récupérer qu’une portion de la liste.
$subscribers = charger_fonction("subscribers","newsletter");
$inscrits = $subscribers($listes,$options);
*
* @param array $listes
* listes de diffusion. 'newsletter' si non precise
* @param array $options
* count : si true renvoyer le nombre de resultats au lieu de la liste (perf issue, permet de tronconner)
* limit : ne recuperer qu'un sous ensemble des inscrits "10,20" pour recuperer 20 resultats a partir du 10e (idem SQL)
* @return int|array
* liste d'utilisateurs, chacun decrit par un array dans le meme format que newsletter/subscriber
newsletter/lists
Renvoie les listes de diffusion disponibles avec leurs statuts (open
,close
,?
).
$lists = charger_fonction("lists","newsletter");
$inscrits = $lists($options);
*
* @param array $options
* status : filtrer les listes sur le status
* @return array
* listes
* chaque liste est decrite par :
* id => array(titre=>'','status'=>'')
#FORMULAIRE_NEWSLETTER_SUBSCRIBE
Permet d’insérer dans une page un formulaire d’inscription à la newsletter, ou à une ou plusieurs autres listes passées en argument.
#FORMULAIRE_NEWSLETTER_SUBSCRIBE
#FORMULAIRE_NEWSLETTER_SUBSCRIBE{nouveautes}
#FORMULAIRE_NEWSLETTER_SUBSCRIBE{newsletter,nouveautes}
#FORMULAIRE_NEWSLETTER_UNSUBSCRIBE
Permet d’insérer dans une page un formulaire de désinscription à la newsletter, ou à une ou plusieurs autres listes passées en argument.
#FORMULAIRE_NEWSLETTER_UNSUBSCRIBE
#FORMULAIRE_NEWSLETTER_UNSUBSCRIBE{nouveautes}
#FORMULAIRE_NEWSLETTER_UNSUBSCRIBE{newsletter,nouveautes}
compose
Un exemple d’implémentation est fourni par le plugin Newsletters
newsletter/content
Renvoyer le contenu d’une newsletter par son id (le format de l’id n’est pas imposé par l’API et peut être un entier ou une chaine. Il doit être cohérent avec celui passé à la fonction newsletter/send
).
$content = charger_fonction("content","newsletter");
$lettre = $content($id);
*
* @param int|string $id
* @return array|bool
* string sujet
* string html
* string texte
newsletter/contextualize
Contextualiser le contenu de l’infolettre en fonction des informations concernant le destinataire. La syntaxe des variables n’est pas imposée par l’API et dépend de l’implémentation par le plugin qui prend en charge cette partie de l’API.
$contextualize = charger_fonction("contextualize","newsletter");
$content2 = $contextualize($content, $context);
* @param $content
* le contenu (html ou texte) de la newsletter
* @param $context
* le contexte des variables
* @return string
*/
send
Un exemple d’implémentation est fourni par le plugin Mailshot
newsletter/send
Envoie une infolettre à un destinataire. L’infolettre peut être fournie par son id (et la fonction utilisera newsletter/content
pour récupérer son contenu détaillé, ou decrite explicitement par un tableau (de format homogène à ce que attend envoyer_mail
).
L’argument $destinataire
attendu est homogène à ce que fournit newsletter/subscriber
.
Le contenu $corps
de l’email sera contextualisé à l’aide du contenu de $destinataire
au moyen de la fonction newsletter/contextualize
$send = charger_fonction("send","newsletter");
$res = $send($destinataire, $corps, $options);
*
* @param array $destinataire
* description du destinataire
* string email
* string nom
* array listes
* string lang
* string status : on|pending|off
* string url_unsubscribe : url de desabonnement
*
* @param array|string $corps
* string id de la newsletter
*ou array contenu de la newsletter
* string sujet
* string html
* string texte
* string from : email de l'envoyeur
* string nom_envoyeur : un nom d'envoyeur pour compléter l'email from
* string cc : destinataires en copie conforme
* string bcc : destinataires en copie conforme cachee
* string|array repondre_a : une ou plusieurs adresses a qui repondre
*
* @param array $options
* options d'envoi
* bool test : mode test (ajoute un [TEST] dans le sujet
* string tracking_id
*
* @return string|int
* vide si ok, ou message d'erreur sinon
newsletter/bulkstart
Démarrer un envoi en nombre d’une info-lettre vers une ou plusieurs listes.
$bulkstart = charger_fonction("bulkstart","newsletter");
$res = $bulkstart($corps, $listes, $options);
*
* @param string|array $corps
* string id de la newsletter a envoyer en lot
*ou array contenu a envoyer
* string sujet
* string html
* string texte
* @param array $listes
* listes a qui on envoie (1 ou ++)
* @param array $options
* string statut : statut par defaut
* @return int
* 0 si echec ou id de l'envoi sinon
newsletter/feedback
Permet la prise en compte d’un évènement concernant un mail envoyé (tracking de l’ouverture, clic sur un lien, bounce...) pour mettre à jour le statut de l’envoi correspondant, ou désabonner un email qui n’est plus valide etc.
$feedback = charger_fonction("feedback","newsletter");
$feedback($quoi, $email, $tracking_id);
Le tracking_id
correspond à celui qui a été fourni en option dans l’appel à newsletter/bulkstart
.
*
* @param string $quoi
* open : l'email a ete ouvert
* clic : un lien a ete clique
* soft_bounce : refus temporaire pour cause de boite mail pleine ou autre
* hard_bounce : adresse foireuse, refus definitif
* reject : email rejete
* spam : email taggue en spam
* @param $email
* @param $tracking_id
#FORMULAIRE_NEWSLETTER_SEND
Permet d’envoyer une info-lettres. L’identifiant de l’info-lettres est fourni en argument.
Il n’y a aucune contrainte sur cet identifiant, qui doit simplement être reconnu par la fonction newsletter/content
à laquelle il sera passé.
Un second argument permet de préciser que l’envoi se fait en mode test uniquement (pour les info-lettres non finalisées par exemple). En mode test, le sujet du mail est préfixé par [TEST] et l’envoi en nombre n’est pas permis.
#FORMULAIRE_NEWSLETTER_SEND{#ID_NEWSLETTER}
[(#REM) En mode test : ]
#FORMULAIRE_NEWSLETTER_SEND{#ID_NEWSLETTER,' '}
Discussions par date d’activité
Une discussion
Je cherche à faire un enregistrement automatique à une liste déterminée dans in formulaire d’inscription à un évenement déterminée.
Dans la partie traitement du formulaire, j’ai rajouté
Ben ça marche pas :-(
$liste
contient le contenu desql_allfetsel
qui est un tableau. Tu devrais plutot utilisersql_getfetsel
. Cf https://programmer.spip.net/sql_getfetsel,582A noter que ce genre de chose est possible aussi via formidable participation mailsubscriber, si on veut quelques chose en clickodrone / configurable de manière plus souple par les responbsables du site.
Ca le fait pas non plus.
L’inscription est prise mais pas l’abonnement
Il me semble justement que $liste doit être un tableau.
oui effectivement. Mais pas le résultat d’un all_fetsel, qui a un niveau d’imbrication en plus (comme un var_dump te le montererai).
Donc il faut aussi que tu corrige
$options['listes'] = $liste;
par$options['listes'] = [$liste];
(je dis cela sans avoir de quoi tester sous la main, juste en regardant le infos sur les retours et entrée des fonctions).C’est résolu. Grand merci !
Répondre à ce message
Ajouter un commentaire
Avant de faire part d’un problème sur un plugin X, merci de lire ce qui suit :
Merci d’avance pour les personnes qui vous aideront !
Par ailleurs, n’oubliez pas que les contributeurs et contributrices ont une vie en dehors de SPIP.
Suivre les commentaires : |