jonathanwold
  • 0
Учитель

Пользовательский тип записи без редактора или правок – Уведомлять об обновлении?

  • 0

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

Я пробовал отправлять изменения по электронной почте, и для этого требуется, чтобы у вас были включены «Редакции». Я попытался включить его, и я предполагаю, что, поскольку я не использую редактор по умолчанию, он не будет работать без него.

Любые мысли о том, чтобы заставить плагин работать или выяснить, как отправлять электронное письмо при обновлении пользовательского типа сообщения?

Share
  1. Если вы публикуете сообщение, а также пользовательский тип сообщения, хук получает статус формы и post_type — {$new_status}_{$post->post_type} активен, и вы можете использовать этот хук для отправки почты. В качестве примера для публикации музыки: add_action('publish_music', 'fb_my_function'); Вы также можете отправить ревизию по почте, ревизия является только другим типом сообщения и может быть получена из базы данных и добавлена ​​к сообщению почты. Может быть, вы можете увидеть возможности моего последнего плагина, отправлять письма для комментариев и сообщений.

    Простой пример пользовательского типа записи «Архив»

    public $post_type_1 = 'archiv';
    
    add_action( 'publish_' . $this -> post_type_1, array( $this, 'fb_my_function') );
    
            public function fb_my_function( $post_id = FALSE ) {
    
                if ( $post_id ) {
                    // get data from current post
                    $post_data = get_post( $post_id );
                    //var_dump($post_data);exit; <-- see this for all content or use the id for get the revisons
    
                    // get mail from author
                    $user_mail = get_userdata( $post_data -> post_author );
    
                    // email addresses
                    $to = 'test@example.com'
                    // email subject
                    $subject = get_option( 'blogname' ) . ': ' . $post_data -> post_title;
                    // message content
                    $message = $post_data -> post_content . ' ' . PHP_EOL .  
                        get_author_name( $post_data -> post_author ) . ' ' . PHP_EOL . . 
                        get_permalink( $post_id );
                    // create header data
                    $headers = 'From: ' . 
                        get_author_name( $post_data -> post_author ) . 
                        ' (' . get_option( 'blogname' ) . ')' . 
                        ' <' . $user_mail -> user_email . '>' . 
                        PHP_EOL;
                    // send mail
                    wp_mail( 
                        $to,
                        $subject, 
                        $message,
                        $headers
                    );
                }
    
                return $post_id;
            }
    
    • 0

Оставить ответ

You must login to add an answer.