Intereting Posts
Shortcode для отображения всех пользовательских сообщений на одной странице Добавить пользовательские параметры в диалог wplink Показать предварительный загрузчик ajax для больших изображений в сообщениях Разница update_meta_user в i: 1 и b: 1, как писать b: 1 Расширенные пользовательские поля Поле изображения объекта Post не отображается в пользовательском типе сообщений single.php Невозможно изменить метку в woocommerce с помощью обычного фильтра Как добавить разбивку на страницы для комментариев? Почему все роли назначаются пользователю при использовании wp_insert_user ()? WordPress на Mac не загружает страницу администратора Многостраничное обновление базы данных требует успеха, но db_version не обновляется Проблема с MapPress Easy Google Map в JQuery Tabs Архивы пользовательских сообщений и ежедневная / ежемесячная шутка Перенаправление (разоблачение) внешнего домена на многосайтовый сайт при сохранении пути Предоставление большего количества элементов в комментариях через functions.php Подстраницы WordPress для пользовательских типов сообщений

transition_comment_status вызывается при неподходящих комментариях

Кажется, я не могу понять, почему не пропустить комментарий, называет мой «approve_comment_callback» -action.

Есть идеи? Я просто не хочу, чтобы он отправлял два письма одновременно, когда я не просматривал комментарий.

Вот две (почтовые) функции, которые, похоже, сталкиваются …

// Send mail to user when their comment has been restored function untrash_answer_notification($comment_id) { $comment = get_comment($comment_id); if ( $comment->comment_parent != 0 ) return; $author = get_userdata($comment->user_id); $headers = "MIME-Version: 1.0" . "\r\n"; $headers .= "Content-type: text/html; charset=UTF-8" . "\r\n"; $headers .= "From: Blabla.com <bla@bla.com>" . "\r\n"; $subject = "Your comment was restored"; $message = "blabla"; wp_mail($author->user_email, $subject, $message, $headers); } add_action( 'untrash_comment', 'untrash_answer_notification' ); // Mail author if/when they're comment is approved function approve_comment_callback($new_status, $old_status, $comment) { if($old_status != $new_status) { if($new_status == 'approved' || $new_status==1) { if($comment->comment_author_email!=''){ $author = get_userdata($comment->user_id); $headers = "MIME-Version: 1.0" . "\r\n"; $headers .= "Content-type: text/html; charset=UTF-8" . "\r\n"; $headers .= "From: Blabla.com <bla@bla.com>" . "\r\n"; $subject = "Your comment was approved"; $message = "blabla"; wp_mail($author->user_email, $subject, $message, $headers); } } } } add_action('transition_comment_status', 'approve_comment_callback', 10,3); 

Действие transition_comment_status будет вызываться, когда статус комментария изменяется от одной вещи к другой, независимо от того, что это за вещи.

Если вы не хотите, чтобы он принимал меры при переходе из разрезанного на одобренный, вам необходимо узнать, когда $ old_status будет выгружен и не предпримет действия в этот момент времени. Прямо сейчас, вы только проверяете, что $ new_status одобрен, вы не проверяете, что такое старый статус.