Ajax Check Post Status

时间:2018-06-28 作者:Matt H

我有这个功能,每当作者创建一个新帖子时,我都会向所有订阅作者的用户发送电子邮件,效果很好。我正在尝试ajaxify函数,并每隔几秒钟检查一次帖子是否已更新,或者用户是否已发布新帖子。如果是这样,请通过“实时”通知弹出窗口更新该作者的所有订阅者(它不是真正实时的,但似乎是通过setInterval函数实时完成的)。无论如何,任何帮助都将不胜感激!

以下是当前函数:

add_action(\'publish_listings\', \'vba_update\', 10, 1);
add_action(\'draft_listings\', \'vba_update\', 10, 1);
function vba_update($post_id){ 
    $args = array(
        \'include\'   => tb_get_followers($user_id)
    );
    $user_query = new WP_User_Query($args);

    if ( !empty($user_query->results) ) : 

        $post_title = get_the_title( $post_id ); 
        $post_url = get_permalink( $post_id ); 
        $subject = \'A post has been updated\'; 
        $message = "A post has been updated on your website:\\n\\n";
        $message .= "<a href=\'". $post_url. "\'>" .$post_title. "</a>\\n\\n"; 

        /** Send an individual message to each user */
        foreach ( $user_query->results as $user ) :
            wp_mail($user->data->user_email, $subject, $message);
        endforeach;
    endif; 
}

1 个回复
SO网友:Bjorn

因此,基本上您需要一种检查post更改的ajax方法。

Here\'s 一篇关于WP ajax for front&;后端。

简而言之,您要执行以下操作:

在要显示通知弹出窗口的页面上加载Ajax JS脚本wp_ajax_{your_custom_action}. 或者使用WP REST APIsetinterval. 在页面加载时执行第一个ajax调用,如果ajax响应良好,则在X秒后执行下一个ajax调用。

结束