Zoya27Fun 09.06.2023 18:24

Как настроить автоматическую рассылку новых записей через электронную почту в WordPress?

Здравствуйте! Я использую WordPress для своего сайта и хотел бы настроить автоматическую рассылку новых записей через электронную почту. Подскажите, как это сделать?

Я уже ознакомился с документацией WordPress и нашел функцию wp_mail(), но не знаю, как ее правильно применить. Я хотел бы отправлять письма только при публикации новых записей и использовать заголовок поста в качестве темы письма, а содержимое поста - в качестве текста письма.

function send_email_on_publish($post_id) {
    // Проверяем, чтобы письма отправлялись только при публикации новых записей
    if(get_post_status($post_id) == 'publish' && !get_post_meta($post_id, 'email_sent', true)){
        $post = get_post($post_id);
        $subject = $post->post_title;
        $message = $post->post_content;
        
        $to = 'example@example.com';
        $headers = array(
            'Content-Type: text/html; charset=UTF-8',
        );
        
        wp_mail($to, $subject, $message, $headers);
        
        // Помечаем запись, чтобы избежать повторной отправки письма при обновлении
        update_post_meta($post_id, 'email_sent', true);
    }
}
add_action('publish_post', 'send_email_on_publish');

Буду очень признателен за помощь!

Ответы:

pa24on 09.06.2023 18:29

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

function send_email_on_publish($post_id) {
    // Проверяем, чтобы письма отправлялись только при публикации новых записей
    if(get_post_status($post_id) == 'publish' && !get_post_meta($post_id, 'email_sent', true)){
        $post = get_post($post_id);
        $subject = $post->post_title;
        $message = $post->post_content;
        
        $to = 'example@example.com';
        $headers = array(
            'Content-Type: text/html; charset=UTF-8',
        );
        
        wp_mail($to, $subject, $message, $headers);
        
        // Помечаем запись, чтобы избежать повторной отправки письма при обновлении
        update_post_meta($post_id, 'email_sent', true);
    }
}
add_action('publish_post', 'send_email_on_publish');

Вы можете вставить этот код в файл functions.php вашей темы или в плагин, который будет активирован на вашем сайте. Обязательно замените адрес электронной почты в переменной $to на свой собственный.

После добавления этого кода, при каждой публикации новой записи, функция send_email_on_publish() будет вызываться, и письмо будет отправлено на указанный вами адрес. Каждый пост будет отправлен только один раз, чтобы избежать повторной отправки писем при обновлении записи.

Надеюсь, это поможет вам настроить автоматическую рассылку новых записей через электронную почту.

Если у вас возникнут еще вопросы, не стесняйтесь задавать!

activeDoc42 09.06.2023 18:47

Для настройки автоматической рассылки новых записей через электронную почту в WordPress, вы можете использовать функцию wp_mail(). Вам необходимо создать функцию, которая будет вызываться при публикации новой записи, и внутри этой функции определить тему и содержимое письма.

Вот пример кода, который позволит вам решить эту задачу:

function send_email_on_publish($post_id) {
    // Проверяем, чтобы письма отправлялись только при публикации новых записей
    if(get_post_status($post_id) == 'publish' && !get_post_meta($post_id, 'email_sent', true)){
        $post = get_post($post_id);
        $subject = $post->post_title;
        $message = $post->post_content;
        
        $to = 'example@example.com';
        $headers = array(
            'Content-Type: text/html; charset=UTF-8',
        );
        
        wp_mail($to, $subject, $message, $headers);
        
        // Помечаем запись, чтобы избежать повторной отправки письма при обновлении
        update_post_meta($post_id, 'email_sent', true);
    }
}
add_action('publish_post', 'send_email_on_publish');

В этом примере мы создаем функцию send_email_on_publish(), которая принимает идентификатор записи. Она проверяет статус записи, чтобы убедиться, что письма отправляются только при публикации новых записей. Затем мы получаем заголовок и содержимое поста, задаем получателя и заголовки письма, а затем вызываем функцию wp_mail() для отправки письма. Наконец, мы помечаем запись, чтобы избежать повторной отправки письма при обновлении.

Чтобы использовать этот код, вам необходимо вставить его в файл functions.php вашей темы или в плагин, который вы используете. После этого новые записи будут автоматически отправляться по электронной почте при публикации.

Надеюсь, это поможет вам настроить автоматическую рассылку новых записей в WordPress. Если у вас возникнут еще вопросы, обращайтесь!


Добавить ответ