Function Reference: geodir_user_favourite_listing_count

Summary

Get user’s favorite listing count.

Global Values

$wpdb
(object) (required) WordPress Database object.

Default: None
$current_user
(object) (required) Current user object.

Default: None
$plugin_prefix
(string) (required) Geodirectory plugin table prefix.

Default: None

Package

GeoDirectory

Parameters

$user_id
(int) (optional) The user id to get, defaults to current user.

Default: None

Return Values

(array)
  • User listing count for each post type.

Change Log

Since: 1.0.0

Source File

geodir_user_favourite_listing_count() is located in geodirectory-functions/user_functions.php [Line: 14]

Source Code

function geodir_user_favourite_listing_count($user_id=false)
{
    global $wpdb, $plugin_prefix, $current_user;

    if(!$user_id){$user_id = $current_user->ID;}
    if(!$user_id){return array();}

    $site_id = '';
    if ( is_multisite() ) {
        $blog_id = get_current_blog_id();
        if($blog_id && $blog_id!='1'){$site_id  = '_' . $blog_id ;}
    }

    $user_favorites = geodir_get_user_favourites($user_id);
    $all_posts = get_option('geodir_favorite_link_user_dashboard');

    $user_listing = array();
    if (is_array($all_posts) && !empty($all_posts) && is_array($user_favorites) && !empty($user_favorites)) {
        $user_favorites = "'" . implode("','", $user_favorites) . "'";

        foreach ($all_posts as $ptype) {
            $total_posts = $wpdb->get_var("SELECT count( ID ) FROM " . $wpdb->prefix . "posts WHERE  post_type='" . $ptype . "' AND post_status = 'publish' AND ID IN (" . $user_favorites . ")");

            if ($total_posts > 0) {
                $user_listing[$ptype] = $total_posts;
            }
        }
    }

    return $user_listing;
}