如何在发布自定义帖子类型时自动发送电子邮件?

时间:2013-05-24 作者:furio

当我发布特定自定义帖子类型的帖子时,我希望有一封电子邮件自动发送给我网站的订阅者。我发现了一些插件可以做到这一点,但只适用于普通帖子(或任何发布的帖子类型,不允许指定特定的帖子类型)。如有任何建议,将不胜感激!谢谢

1 个回复
最合适的回答,由SO网友:fuxia 整理而成

钩入transition_post_status, 获取用户并向所有用户发送电子邮件。

未测试的示例代码:

add_action( \'transition_post_status\', \'send_mails_on_publish\', 10, 3 );

function send_mails_on_publish( $new_status, $old_status, $post )
{
    if ( \'publish\' !== $new_status or \'publish\' === $old_status
        or \'my_custom_type\' !== get_post_type( $post ) )
        return;

    $subscribers = get_users( array ( \'role\' => \'subscriber\' ) );
    $emails      = array ();

    foreach ( $subscribers as $subscriber )
        $emails[] = $subscriber->user_email;

    $body = sprintf( \'Hey there is a new entry!
        See <%s>\',
        get_permalink( $post )
    );


    wp_mail( $emails, \'New entry!\', $body );
}
你可能应该use the Bcc field.

结束