Function Reference: count_listings_by_country

Summary

Get location count for a country.

Global Values

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

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

Default: None

Package

GeoDirectory_Location_Manager

Parameters

$country
(string) (required) Country name.

Default: None
$country_slug
(string) (required) Country slug.

Default: None
$with_translated
(bool) (required) Return with translation? Default: true.

Default: None

Return Values

(int)
  • Listing count.

Change Log

Since: 1.0.0

Source File

count_listings_by_country() is located in geodir_location_manager/geodir_location_functions.php [Line: 2530]

Source Code

function count_listings_by_country( $country, $country_slug='', $with_translated=false ) {
	global $wpdb, $plugin_prefix;

	$geodir_posttypes = geodir_get_posttypes();

	$total = 0;
	if ( $country == '' ) {
		return $total;
	}

	foreach( $geodir_posttypes as $geodir_posttype ) {
		$table = $plugin_prefix . $geodir_posttype . '_detail';

		if( $with_translated ) {
			$country_translated = __( $country, GEODIRECTORY_TEXTDOMAIN);
			$sql = "SELECT COUNT(*) FROM " . $table . " WHERE post_country LIKE '".$country."' OR post_country LIKE '".$country_translated."' OR post_locations LIKE '%,[".$country_slug."]'";
		} else {
			$sql = $wpdb->prepare( "SELECT COUNT(*) FROM " . $table . " WHERE post_country LIKE %s", array( $country ) );
		}
		$count = (int)$wpdb->get_var( $sql );

		$total += $count;
	}
	return $total;
}