예제 #1
0
 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);
 }