Intereting Posts
Как добавить переменную GET после URL-адреса скрипта? сопоставить несколько URL-адресов для отображения домашней страницы без изменения URL-адреса, отображаемого в строке местоположения браузера Могу ли я использовать ShortCode в шаблоне? Как контролировать порядок таксономии custum? Запустите снова текущий запрос через ajax, но измените var Сделать страницы видимыми только для зарегистрированных пользователей Как добавить класс к каждому отдельному сообщению? Изменения отображаются в исходном виде, но не в реальном времени. Запрос Несколько значений для одного и того же ключа Получить запрос var внутри functions.php Как я могу использовать WordPress в качестве платы за работу? (но бесплатно) Получить комментарий по комментарию ID Копирование миниатюр сообщения в настраиваемое поле Каков наилучший способ обнаружения IE-браузеров 8 и ниже? Изменение wp-config.php сломало сайт

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

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

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 или в качестве плагина .

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