Отправить письмо после того, как пользователь отправит свое сообщение в WordPress - PullRequest
0 голосов
/ 20 декабря 2018


На моем сайте пользователи могут отправлять сообщения через обычную форму.
Мои сохраненные переменные PHP:

$usersarray = store the mail of the user
$postId = store the ID of the submitted post

Отправленное сообщение автоматически вводится в " Черновик ".
Я хотел бы автоматически отправлять письмо, когда его сообщение становится " Опубликовано ", как я могу это сделать?

Конечно, это должно работать с разными пользователями и разными отправленными сообщениями, не только последними.(каждому пользователю отправлено сообщение)

Спасибо за совет.

1 Ответ

0 голосов
/ 20 декабря 2018

используется хук publish_post, который запускается при каждом обновлении сообщения и его новом статусе «публикация».

Чтобы отправить письмо автору сообщения через wp_mail (), когдаих статья опубликована.

function post_published_notification( $ID, $post ) {
    $author = $post->post_author; /* Post author ID. */
    $name = get_the_author_meta( 'display_name', $author );
    $email = get_the_author_meta( 'user_email', $author );
    $title = $post->post_title;
    $permalink = get_permalink( $ID );
    $edit = get_edit_post_link( $ID, '' );
    $to[] = sprintf( '%s <%s>', $name, $email );
    $subject = sprintf( 'Published: %s', $title );
    $message = sprintf ('Congratulations, %s! Your article “%s” has been published.' . "\n\n", $name, $title );
    $message .= sprintf( 'View: %s', $permalink );
    $headers[] = '';
    wp_mail( $to, $subject, $message, $headers );
}
add_action( 'publish_post', 'post_published_notification', 10, 2 );

Редактировать:

Как предложил @Stender в комментариях ниже.

Вы также можете использовать

draft_to_publish крючок, который отлично подойдет для того, что вам нужно.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...