Я пытаюсь создать форму отзыва и страницу со списком в Wordpress, и у меня возникли проблемы с отправкой электронной почты автору отзыва, уведомляющему его о публикации его публикации ,Отправляйте письмо с уведомлением при публикации публикации в Wordpress
После того, как форма подтверждена и обработана, она автоматически создает ожидающий пост с wp_insert_post()
, а данные формы хранятся в текстовых вводах, генерируемых плагином Advanced Custom Fields. Когда я нажимаю кнопку публикации, он должен отправить электронное письмо с уведомлением автору. Вот функция, я писал:
function publish_post_notification($post_id){
$author = get_field('author_email', $post_id); // get author email from custom fields
if(isset($author)){
require_once('testimoniale/mail-config.php'); // PHPMailer config
$mail->addAddress($author); // Add a recipient
$mail->Subject = 'Your testimonial has been published !';
ob_start();
include('testimoniale/mail_template/notification-template.php');
$mail->Body = ob_get_contents();
$mail->AltBody = 'Your testimonial has been published !'; // Alternative text for non-html mail clients
if(!$mail->send()) {
echo 'Message could not be sent.';
echo 'Mailer Error: ' . $mail->ErrorInfo;
} else {
echo 'Message has been sent';
}
ob_end_clean();
}
add_action('publish_post','publish_post_notification',10,1);
Проблема заключается в том, когда я публикую пост в первый раз, он не посылает по электронной почте, но это, если я, например, изменить статус сообщения впоследствии Ожидание и публикация его снова или если я обновляю сообщение.
Я попытался с помощью save_post
крючок, но он срабатывает, когда пост изначально создается с помощью wp_insert_post()
, а также и по какой-то причине transition_post_status
, pending_to_publish
и post_updated
не работает для меня тоже.
Любые предложения?
Заранее спасибо
использовать сохранить пост крюк и проверить статус сообщения в пределах function.You можно установить после мета для предотвращения дальнейших писем. – David
Не могли бы вы привести мне пример? Как я могу проверить, создается ли пост, чтобы крюк не срабатывал тогда? –
попробуйте сами, вы можете использовать 'get_post', чтобы вытащить сообщение, а затем использовать' update_post_meta() 'для сохранения пользовательских данных. – David