Кажется, я не могу понять, почему не пропустить комментарий, называет мой «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 одобрен, вы не проверяете, что такое старый статус.