2010-03-10 2 views
0

Cela concerne le développement de plugins WordPress. Même si un utilisateur ne s'est pas connecté à WordPress, mais a laissé un commentaire, WordPress se souvient d'eux depuis la dernière fois. Je voulais activer la case à cocher «S'abonner à la newsletter» s'ils avaient déjà été abonnés à une newsletter. J'ai déjà travaillé sur la case à cocher et il écrit dans une autre table en stockant l'email de l'auteur du commentaire lors de sa publication. Mais ce qui est difficile, c'est que je ne veux pas afficher la case à cocher si l'utilisateur s'est déjà abonné. Il est assez facile de ne pas afficher la case à cocher si j'ai une adresse e-mail réelle, mais je ne sais pas comment récupérer l'adresse e-mail simplement lorsque le formulaire de commentaire est affiché.Comment puis-je obtenir l'auteur du commentaire dans WordPress?

Notez que l'utilisation de get_currentuserinfo() ne s'applique pas ici car l'utilisateur est un commentateur et non un administrateur ou un auteur d'article de blog.

J'ai besoin de quelque chose où l'utilisateur vient à un poste qu'ils n'ont pas encore commenté. Ils ont peut-être commenté d'autres articles, mais pas celui-ci. Dans WordPress, vous remarquerez qu'il le sait automatiquement et attribue une valeur de champ Nom et Courrier via des cookies.

Répondre

0

Voici une routine que j'ai mise au point, mais peut-être que vous pouvez le faire mieux à travers quelque chose dans le codex WordPress?

function getCommentAuthorEmail() { 
global $user_level; 

    get_currentuserinfo(); 
    if($user_level > 0) { //if signed into wordpress as admin or author 
    return ''; //don't provide anything 
    } 

    $sEmail = ''; 
    try { 
    foreach($_COOKIE as $sKey => $sVal) { 
     if (strpos(' ' . $sKey, 'comment_author_email')>0) { 
     $sEmail = urldecode($sVal); 
     break; 
     } 
    } 
    } catch (Exception $e){} 
    return $sEmail; 
} 
1

Vous pourriez être en mesure de le faire en utilisant get_comments, elle retourne un tableau avec la comment_author_email clé.

Fondamentalement, vous devez parcourir tous les commentaires à tous les messages, récupérer tous les e-mails, puis le vérifier par rapport à vos données de newsletter.

Plus d'informations sur la syntaxe (et les alternatives possibles) se trouve ici: http://codex.wordpress.org/Function_Reference/get_comments

+0

Ah, peut-être que je ne me suis pas clair. Cela ne fonctionnera pas parce que j'ai besoin de quelque chose où l'utilisateur vient à un poste qu'ils n'ont pas encore commenté. Ils ont peut-être commenté d'autres articles, mais pas celui-ci. Dans WordPress, vous remarquerez qu'il le sait automatiquement et attribue une valeur de champ Nom et Courrier via des cookies. – Volomike

Questions connexes