实时通知心跳API

时间:2018-06-18 12:07:00

标签: javascript php jquery ajax wordpress

我有一个用户跟随系统,它允许我的用户基本上订阅彼此的帖子很好,它现在工作没有问题,但我试图弄清楚如何实现一个实时通知系统,以便当用户获得新的关注者或订阅者,他们会在收到新关注者或订阅者后的一分钟内得到通知。我将使用像sweetalert或achtung这样的实际通知,这部分很好,但我不明白该怎么做的部分是将正确的函数挂钩到wordpress Heartbeat API。如果有人可以请解释我如何将以下php和ajax函数放入wordpress Heartbeat API,我们将不胜感激!感谢

检查用户是否跟随另一个用户的功能(不确定此功能是否相关):

function tb_is_following( $user_id, $follow_id ) {

$following = tb_get_following( $user_id, $follow_id );

$ret = false; // is not following by default

if ( is_array( $following ) && in_array( $follow_id, $following ) ) {
    $ret = true; // is following
}

return $ret;
}

以下是负责关注和取消用户的ajax函数:

function tb_process_new_follow() {
if ( isset( $_POST['user_id'] ) && isset( $_POST['follow_id'] ) ) {
    if( tb_follow_user( absint( $_POST['user_id'] ), absint( $_POST['follow_id'] ) ) ) {
        echo 'success';

    } else {
        echo 'failed';
    }
}
die();
}
add_action('wp_ajax_follow', 'tb_process_new_follow');

function tb_process_unfollow() {
if ( isset( $_POST['user_id'] ) && isset( $_POST['follow_id'] ) ) {
    if( tb_unfollow_user( absint( $_POST['user_id'] ), absint( $_POST['follow_id'] ) ) ) {
        echo 'success';
    } else {
        echo 'failed';
    }
}
die();
}
add_action('wp_ajax_unfollow', 'tb_process_unfollow');

最后这是我目前用于AJAX的jQuery:

jQuery(document).ready(function($) {
/*******************************
follow / unfollow a user
*******************************/
$( '.follow-links a' ).on('click', function(e) {
    e.preventDefault();

    var $this = $(this);

    var data      = {
        action:    $this.hasClass('follow') ? 'follow' : 'unfollow',
        user_id:   $this.data('user-id'),
        follow_id: $this.data('follow-id'),
        nonce:     tb_vars.nonce
    };

    $.post( tb_vars.ajaxurl, data, function(response) {
        console.log(data);
        if( response == 'success' ) {
            $('.follow-links a').toggle();
        } else {
            console.log( tb_vars.processing_error );
        }
    } );


});
});

如果您需要更多信息,请与我们联系。

0 个答案:

没有答案