我有一个名为“文档”的自定义帖子类型。我可以在那里添加文档(ACF repeater字段),用户可以在前端视图中看到它们。现在,当我在后端更改自定义帖子类型并保存它时,我需要向帖子的作者发送电子邮件通知。
在另一个项目中,我在函数中使用了以下函数。php文件,但当我创建新帖子时,这段代码才起作用。我不需要在创建新帖子时发送邮件,但当我再次保存它们时。
/* SEND MAIL WHEN CPT PRODUKTIONSAUFTRAG ERSTELLT */
add_action(\'future_to_publish\', \'send_emails_on_new_event\');
add_action(\'new_to_publish\', \'send_emails_on_new_event\');
add_action(\'draft_to_publish\' ,\'send_emails_on_new_event\');
add_action(\'auto-draft_to_publish\' ,\'send_emails_on_new_event\');
function send_emails_on_new_event($post) {
$emails = "info@mymail.com";
$headers = \'From: Name <info@mymail.com>\';
$title = wp_strip_all_tags(get_the_title($post->ID));
$message = "New post created";
if(get_post_type($post->ID) === \'documents\') {
wp_mail($emails, "New Post", $message, $headers);
}
}
SO网友:benny-ben
请尝试以下方法:
function send_emails_on_new_event( $post ) {
$emails = \'info@mymail.com\';
$headers = \'From: Name <info@mymail.com>\';
$title = wp_strip_all_tags( get_the_title( $post->ID ) );
$message = \'New post created\';
if ( get_post_type( $post->ID ) === \'documents\' ) {
wp_mail( $emails, \'New Post\', $message, $headers );
}
}
add_action( \'pre_post_update\', \'send_emails_on_new_event\' );
参考代码:
pre_post_update: 在数据库中更新现有帖子之前立即激发。