Php 通过WordPress网站上的电子邮件通知来宾作者

Php 通过WordPress网站上的电子邮件通知来宾作者,php,wordpress,Php,Wordpress,我正在WordPress网站上使用一个名为User Submitted Posts的插件。该插件使用短代码创建表单。当用户填写表单时,提交的信息将用于创建帖子。通过表单提交的名称作为来宾作者存储在数据库中。提交的电子邮件存储为用户提交电子邮件 我遇到的问题是,当有人评论他们的文章时,客座作者没有收到通知。我正试图弄清楚如何设置它,以便通过电子邮件将通知发送给来宾作者,而网站所有者不必在每次提交帖子时手动进行设置 下面的代码是我从用户提交的帖子插件中找到的。我在网站子主题的functions.ph

我正在WordPress网站上使用一个名为User Submitted Posts的插件。该插件使用短代码创建表单。当用户填写表单时,提交的信息将用于创建帖子。通过表单提交的名称作为来宾作者存储在数据库中。提交的电子邮件存储为用户提交电子邮件

我遇到的问题是,当有人评论他们的文章时,客座作者没有收到通知。我正试图弄清楚如何设置它,以便通过电子邮件将通知发送给来宾作者,而网站所有者不必在每次提交帖子时手动进行设置

下面的代码是我从用户提交的帖子插件中找到的。我在网站子主题的functions.php文件中找到了它

add_filter( 'the_author', 'guest_author_name' );
add_filter( 'get_the_author_display_name', 'guest_author_name' );
 
function guest_author_name( $name ) {
global $post;
 
$author = get_post_meta( $post->ID, 'guest-author', true );
 
if ( $author )
$name = $author;
 
return $name;
}

你需要把它交给一个动作挂钩,而不是过滤器。如果要处理提交注释的用户,可以使用wp\u insert\u comment\u钩子

假设您存储了post-meta
guest\u-author
,您可以执行以下操作

function wpr_authorNotification( $comment_id, $comment_object) {
    $post = get_post($comment_object->comment_post_ID);

    if ( ! isset($post->guest_author) ) {
        return;
    }
    $message = "";
    $subject = "";;
    wp_mail($post->guest_author, $subject, $message);
}

add_action('wp_insert_comment', 'wpr_authorNotification', 99, 2);