0

I'm trying to create an followers/following users list for each user in their profile page with Ajax Pagination.

Someone here was helped me to make the Ajax pagination working, but i'm facing a big problem and i can't fix it!

The problem i'm facing is inside all our users profile page when they click on load more button they are getting the users who followed the administrator id!!

Inside author.php i get the author information by using this line.

<?php
    $curauth = (isset($_GET['author_name'])) ? get_user_by('slug', $author_name) : get_userdata(intval($author));
?>

So how to make them getting their followed users?

Here is all my code i have done.

author.php

<div id="following">

    <div class="following-cont">
<?php

$include = get_user_meta($curauth->ID, '_pwuf_following', true);

if ( empty( $include ) ) {

     echo '<div class="no-follower">Not found followers yet <i class="fa fa-slack fa-1x" aria-hidden="true"></i></div>';

    } else {

$args = array (
    'order' => 'DESC',
    'include'  => $include,
    'number'  => 6,
    'paged' => 1
);

$wp_user_query = new WP_User_Query( $args );

$users = $wp_user_query->get_results();

    echo '<div id="top-artists-contributors-3">';
    echo '<ul id="grid-contributors-4">';
    echo '<li class="scroll-artists">';
    foreach ( $users as $user ) {
        $avatar_size = 90;
        $avatar = get_avatar($user->user_email, 200);
        $author_profile_url = get_author_posts_url($user->ID);
        $profile = get_userdata($user->ID);

    echo '<div class="single-item-3">';
    echo '<div class="author-gravatar-3"><a href="', $author_profile_url, '">', $avatar , '</a></div>';
    echo '<div class="members-name"><a href="', $author_profile_url, '">' . $profile->first_name .'</a></div>';
    echo '</div>';           
    }
    echo '</li>';
    echo '</ul>';
    echo '</div>';
    }

?>

<?php
// The variables tmp_author_name and tmp_author serve only as temporary storage.
// They controls how the data should be determined on the server.
$tmp_author_name = '';
$tmp_author = 0;
if( isset($_GET['author_name']) )
{
    $tmp_author_name = $author_name;
}
else
{
    $tmp_author = intval($author);  
}
?>

<script type="text/javascript">
var ajaxurl = "<?php echo admin_url( 'admin-ajax.php' ); ?>";
var page = 2;
jQuery(function($) {
    $('body').on('click', '.loadmoreartists', function() {
            var data = 
            {
                'action': 'user_following_by_ajax',
                'page': page,
                'security': '<?php echo wp_create_nonce("user_more_following"); ?>',
                'author_name': '<?php echo esc_html($tmp_author_name); ?>',
                'author': '<?php echo esc_html($tmp_author); ?>'

            };

        $.post(ajaxurl, data, function(response) {

        $('.following-cont').append(response);
        page++;

        });
    });
});
</script>

</div>

<div class="loadmoreartists">More</div>

</div><!-- #following -->

function.php

add_action('wp_ajax_user_following_by_ajax', 'user_following_by_ajax_callback');
add_action('wp_ajax_nopriv_user_following_by_ajax', 'user_following_by_ajax_callback');

function user_following_by_ajax_callback() {

    check_ajax_referer('user_more_following', 'security');
    $paged = $_POST['page'];

    $curauth = NULL;

    if( isset($_POST['author_name']) AND trim($_POST['author_name']) != '' )
    {
        $curauth = get_user_by('slug', trim($_POST['author_name']) );
    }
    elseif( isset($_POST['author']) AND intval($_POST['author']) > 0 )
    {
        $curauth = get_userdata(intval($_POST['author']));   
    }

    if( !is_null($curauth) ) {

$include = get_user_meta($curauth->ID, '_pwuf_following', true);

if ( empty( $include ) ) {

     echo '<div class="no-follower">Not found followers yet <i class="fa fa-slack fa-1x" aria-hidden="true"></i></div>';

    } else {

$args = array (
    'order' => 'DESC',
    'include'  => $include,
    'number'  => 6,
    'paged' => $paged
);

$wp_user_query = new WP_User_Query( $args );

$users = $wp_user_query->get_results();

    echo '<div id="top-artists-contributors-3">';
    echo '<ul id="grid-contributors-4">';
    echo '<li class="scroll-artists">';
    foreach ( $users as $user ) {
        $avatar_size = 90;
        $avatar = get_avatar($user->user_email, 200);
        $author_profile_url = get_author_posts_url($user->ID);
        $profile = get_userdata($user->ID);

    echo '<div class="single-item-3">';
    echo '<div class="author-gravatar-3"><a href="', $author_profile_url, '">', $avatar , '</a></div>';
    echo '<div class="members-name"><a href="', $author_profile_url, '">' . $profile->first_name .'</a></div>';
    echo '</div>';           
    }
    echo '</li>';
    echo '</ul>';
    echo '</div>';
    }
    wp_die();
    }
}

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Browse other questions tagged or ask your own question.