public function businesses_shortcode($attrs) { $remote_settings = Bizyhood_Utility::getRemoteSettings(); $api_url = Bizyhood_Utility::getApiUrl(); $zip_codes = Bizyhood_Utility::getZipsEncoded(); $use_cuisine_types = Bizyhood_Utility::getOption(self::KEY_USE_CUISINE_TYPES); $list_page_id = Bizyhood_Utility::getOption(self::KEY_MAIN_PAGE_ID); if ($use_cuisine_types) { $response = wp_remote_retrieve_body(wp_remote_get($api_url . "/cuisine/?pc=" . $zip_codes . "&rad=15000&format=json")); $response_json = json_decode($response); $cuisines = $response_json->cuisines; } else { $categories = Bizyhood_Utility::getOption(self::KEY_CATEGORIES); } // get current page if (get_query_var('paged')) { $page = get_query_var('paged'); } elseif (isset($_GET['paged'])) { $page = $_GET['paged']; } else { $page = 1; } // get category filter if (get_query_var('k')) { $category = urlencode(get_query_var('k')); } elseif (isset($_GET['k'])) { $category = urlencode($_GET['k']); } if ($use_cuisine_types) { if (isset($category)) { $response = wp_remote_retrieve_body(wp_remote_get($api_url . "/restaurant/?format=json&pc={$zip_codes}&ps=12&pn={$page}&rad=15000&cu={$category}", $remote_settings)); } elseif (isset($_GET['keywords'])) { $keywords = urlencode($_GET['keywords']); $response = wp_remote_retrieve_body(wp_remote_get($api_url . "/restaurant/?format=json&pc={$zip_codes}&ps=12&pn={$page}&rad=15000&k={$keywords}", $remote_settings)); } else { $response = wp_remote_retrieve_body(wp_remote_get($api_url . "/restaurant/?format=json&pc={$zip_codes}&ps=12&pn={$page}&rad=15000", $remote_settings)); } } else { if (isset($category)) { $response = wp_remote_retrieve_body(wp_remote_get($api_url . "/business/?format=json&pc={$zip_codes}&ps=12&pn={$page}&rad=15000&k={$category}", $remote_settings)); } elseif (isset($_GET['keywords'])) { $keywords = urlencode($_GET['keywords']); $response = wp_remote_retrieve_body(wp_remote_get($api_url . "/business/?format=json&pc={$zip_codes}&ps=12&pn={$page}&rad=15000&k={$keywords}", $remote_settings)); } else { $response = wp_remote_retrieve_body(wp_remote_get($api_url . "/business/?format=json&pc={$zip_codes}&ps=12&pn={$page}&rad=15000", $remote_settings)); } } $response_json = json_decode($response); $businesses = $response_json->businesses; $total_count = $response_json->total_count; $page_size = $response_json->page_size; $page_count = 0; if ($page_size > 0) { $page_count = $total_count / $page_size + ($total_count % $page_size == 0 ? 0 : 1); } $pagination_args = array('total' => $page_count, 'current' => $page, 'type' => 'list'); $view_business_page_id = get_page_by_path("business-overview")->ID; return Bizyhood_View::load('listings/index', array('cuisines' => isset($cuisines) ? $cuisines : '', 'categories' => isset($categories) ? $categories : '', 'list_page_id' => $list_page_id, 'pagination_args' => $pagination_args, 'businesses' => $businesses, 'view_business_page_id' => $view_business_page_id), true); }