Как получить комментарий автора в WordPress? - PullRequest
0 голосов
/ 10 марта 2010

Это касается разработки плагинов WordPress. Даже если пользователь фактически не вошел в WordPress, но оставил комментарий, WordPress запоминает их с последнего раза. Я хотел включить / выключить отображение флажка «Подписаться на рассылку», если они уже подписались на рассылку. Я уже установил флажок, и он записывает в другую таблицу, хранящую электронную почту автора комментария при публикации. Но что сложно, так это то, что я хочу не показывать флажок, если пользователь уже подписан. Достаточно просто не показывать флажок, если у меня был фактический адрес электронной почты, но я не знаю, как получить адрес электронной почты просто, когда отображается форма комментария.

Обратите внимание, что использование get_currentuserinfo () здесь не применимо, поскольку пользователь является комментатором, а не администратором или автором статьи блога.

Мне нужно что-то, когда пользователь приходит к сообщению, которое он еще не прокомментировал. Возможно, они прокомментировали другие посты, но только не этот. В WordPress вы заметите, что он автоматически знает об этом и назначает значение поля «Имя и почта» с помощью файлов cookie.

Ответы [ 2 ]

1 голос
/ 10 марта 2010

Вы можете сделать это, используя get_comments, он возвращает массив с ключом comment_author_email.

По сути, вам нужно было бы перебрать все комментарии ко всем сообщениям, получить все электронные письма, а затем сравнить их с данными вашего информационного бюллетеня.

Более подробную информацию о синтаксисе (и возможных альтернативах) можно найти здесь: http://codex.wordpress.org/Function_Reference/get_comments

0 голосов
/ 10 марта 2010

Вот процедура, которую я разработал, но, возможно, вы можете сделать это лучше с помощью чего-то в кодексе 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;
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...