显示已发送的邀请数

时间:2015-02-23 08:40:28

标签: php ajax wordpress buddypress

我有一个函数,它发送当前事件的私人消息以进行邀请,这是一个CPT。现在我想显示发送的邀请总数。我正在使用BuddyPress btw。这是代码:

function invite_friend_to_event(){
    $message = 'Check out this event! <br><a href="'.$_POST['event_url'].'">'.$_POST['event_title'].'</a>';
    $msg_args = array(
    'sender_id' => get_current_user_id(), // 1 = admin
    'recipients' => $_POST["user_id"],
    'subject' => 'Event invitation!',
    'content' => $message
    );
    $thread_id = messages_new_message($msg_args);

    echo "Invitation sent!";
    die();
}

add_action('wp_ajax_invite_friend', 'invite_friend_to_event');
add_action( 'wp_ajax_nopriv_invite_friend', 'invite_friend_to_event' );

我的前端模板:

<div class="event invite-friends">

    <script>
        function invite_friends(userid){
            jQuery.ajax({
                url:"<?php echo admin_url('admin-ajax.php'); ?>",
                type:'POST',
                data: {
                    action : 'invite_friend',
                    user_id : userid,
                    event_url : '<?php the_permalink();?>',
                    event_title : '<?php echo $event->get_title(); ?>'
                },
                dataType : 'html',
                success:function(results)
                {
                    alert(results);
                }
            });
        }
    </script>
    <h4 class="small">Invite Friends</h4>
    <?php
        $uid = get_current_user_id();
        $friends_list = friends_get_friend_user_ids( $uid, false, true );
        foreach($friends_list as $friend):
            $friend_obj = get_userdata($friend['user_id']);
        ?>
        <div class="invitee">
                <span class="small"><?php echo $friend_obj->first_name." ".$friend_obj->last_name; ?></span>
                <?php echo get_avatar( $friend['user_id'], 64 ); ?>
                <button class='btn-success btn' onclick="invite_friends('<?php echo $friend['user_id']; ?>');">
                <span class='small white'>Invite</span></button>
            </div>
        <?php endforeach; ?>
</div>

1 个答案:

答案 0 :(得分:0)

当您正在向admin-ajax.php发送ajax帖子时,那个脚本(除了它当前正在做的事情,即发送邀请)可以在某个地方增加数据库中的计数器。

如果您想在每次邀请后使用新增加的计数,那么只需将其作为ajax响应的一部分返回,然后在页面上显示。如果您不关心它,那么您可以在下一次重新加载php页面时从数据库中获取邀请计数。