当对特定帖子发表新评论时,向自定义字段中的特定地址发送邮件

时间:2020-08-20 作者:Benjamin

我正在尝试使用wp\\u mail函数发送邮件,当对特定帖子发表新评论时,其中自定义字段是用邮件编译的。

该功能可以工作,但当我试图将其限制为未批准或已批准的评论(不是针对垃圾邮件)时,它将无法工作。我有一个功能,可以将每个新评论发送到垃圾邮件,在版主批准该评论或将其从垃圾邮件文件夹中移出(因此状态将更改为已批准或未批准)后,我想将邮件发送到特定地址:

// SEND NEW COMMENTS TO SPAM
function set_new_comment_to_spam($commentId) {
    wp_set_comment_status($commentId, \'spam\');
}

add_action(\'comment_post\', \'set_new_comment_to_spam\', 10, 1);
// SEND MAIL TO CUSTOM FIELD
function send_comment_email_notification( $comment_ID, $comment_approved, $commentdata) {
    $comment = get_comment( $comment_ID );
    $postid = $comment->comment_post_ID;
    $master_email = get_post_meta( $postid, \'email_custom\', true);
    if( $comment_approved != \'spam\' && isset( $master_email ) && is_email( $master_email ) ) {
        $message = \'New comment\';
        add_filter( \'wp_mail_content_type\', create_function( \'\', \'return "text/html";\' ) );
        wp_mail( $master_email, \'New comment\', $message );
    }
}
add_action( \'comment_post\', \'send_comment_email_notification\', 11, 3 );

1 个回复
SO网友:NightHawk

这听起来好像不起作用,因为你comment_post, 即在创建注释时如果更改注释的状态,则注释已经存在,因此不会生成电子邮件。

有一个注释状态更改挂钩:comment_{$old_status}_to_{$new_status}.

每当注释的状态从一个指定状态更改为另一个指定状态时,它都会触发。

因此,您可以尝试以下方法:

function send_comment_email_notification($comment) {
    $master_email = get_post_meta( $comment->comment_post_ID, \'email_custom\', true);
    if( isset( $master_email ) && is_email( $master_email ) ) {
        $message = \'New comment\';
        add_filter( \'wp_mail_content_type\', create_function( \'\', \'return "text/html";\' ) );
        wp_mail( $master_email, \'New comment\', $comment->comment_content );
    }
}
add_action(\'comment_spam_to_approved\', \'send_comment_email_notification\');
此处的文档:https://developer.wordpress.org/reference/hooks/comment_old_status_to_new_status/

相关推荐

图像URL上的PHP脚本的URL重写

我构建了一个图像随机化器,这样当我打开一个。显示图像的URL中的php文件readfile($randomImage);. 这在本地起作用,但当我将其上载到服务器时,它会被防火墙阻止,因为我们不想加载URL,如https://www.example.com/wp-content/themes/THEME/randomImage.php 我想加载一个.php 在上编写脚本.jpg 文件需要做的是,当我使用URL时(例如)https://www.example.com/image.jpg