Intereting Posts
Разбиение страниц на подстраницы Удаление ненужных p-тегов (не каждый p) 404 – 301 – Фиксирование старых ссылок Перевести идентификатор категории в название категории Миграция содержимого WordPress Изменение всех вариантов управления с помощью wp.customize с помощью JavaScript Создавайте собственные постоянные ссылки на YouTube для нескольких пользовательских типов сообщений Как разрешить кому-либо редактировать сообщение, но не панель доступа Размещено на + только дату (а не время) Получить текущий массив пользователей в гиперссылку Изменить заголовок на главной странице архива Можно ли использовать плагин для хранения всех пользовательских функций для расширения других плагинов Показывать сообщения только автору Количество должностей за каждый год Почтовый фильтр Месяц выпадающего списка в интерфейсе, например, wordpress backend

Отправлять электронную почту администратору, когда пользовательский тип сообщения создается

Мне нужно отправить электронное письмо администратору, когда будет создано сообщение «Задача» типа сообщения. Любая помощь могла бы быть полезна. Благодаря!

Solutions Collecting From Web of "Отправлять электронную почту администратору, когда пользовательский тип сообщения создается"

Если вы хотите отправить электронное письмо при первом опубликовании и обновлении , вы можете избежать многих дополнительных проверок, используя {action} _ { post type } action hook. Поместите код ниже в функции текущей темы.php:

 add_action( 'publish_task', 'wpse_admin_email', 10, 2 ); function wpse_admin_email( $post_id, $post ) { // prepare and send email code goes here... } 

Если вы хотите отправить электронное письмо только после первого опубликования , используйте следующий код:

 add_action( 'transition_post_status', 'wpse_admin_email_once', 10, 3 ); function wpse_admin_email_once( $new, $old, $post ) { if ( $post->post_type == 'task' && $new == 'publish' && $old == 'auto-draft' ) { // prepare and send email code goes here... } } 

Вы можете добавить действие после сообщения wp insert с указанным типом сообщения:

  function after_task_post_created( $post_id ) { //no action if post type not task if (get_post_type($post_id) != 'task') return; // If this is a revision, don't send the email. if ( wp_is_post_revision( $post_id ) ) return; // if post not yet published so no action taken, i know it can be confused if (get_post_status( $post_id ) != 'publish' ) return; // your email action $yoursubject = 'This is your email subject'; $yourmessage = "a body message here"; // Send email. $adminemail = get_option( 'admin_email' ); wp_mail( $adminemail, $yoursubject, $yourmessage ); } add_action( 'wp_insert_post', 'after_task_post_created'); 

Справка:

https://codex.wordpress.org/Plugin_API/Action_Reference/wp_insert_post

https://developer.wordpress.org/reference/functions/get_post_type/

https://developer.wordpress.org/reference/functions/get_option/

Вы можете использовать это очень легкое действие, чтобы контролировать больше, чем создание пользовательского post_type

 add_action( 'transition_post_status', 'transition_fun', 10, 3 ); function transition_fun( $new, $old, $post ) { if ( ( $new == 'publish' ) && ( $old != 'publish' || $old != 'auto-draft' ) && ( $post->post_type == 'task' ) ) { echo 'send mail......'; } else { return; } } 

Просто вставьте это в свой файл functions.php или в качестве плагина .

Если, например, позже вы хотите получить доступ к статусу проекта, вы можете легко сделать это с помощью «авто-черновика»,