private function get_permalink($listing)
 {
     if ($this->_model['data_from'] === 'property_showcase' && empty(self::$_options['use_pdp_for_showcase_details'])) {
         $listing->permalink = get_permalink($listing->ID);
     } else {
         if ($this->_model['data_from'] === 'property_showcase') {
             $listing_id = 'PS' . $listing->ID;
         } else {
             $listing_id = $listing->id;
         }
         if (!empty($listing_id) && !empty($this->_model['property_details_page_url'])) {
             $listing->permalink = DispletRetsIdxUtilities::get_listing_permalink(array('page_url' => $this->_model['property_details_page_url'], 'state' => !empty($listing->state) ? $listing->state : 'CAN', 'city' => !empty($listing->city) ? $listing->city : 'City', 'zip' => !empty($listing->zip) ? $listing->zip : '00000', 'id' => $listing_id, 'address' => $listing->address, 'price' => $listing->list_price));
         }
     }
 }
 private static function _set_canonical()
 {
     if (self::$_model['is_property_details_page'] || self::$_model['is_property_update_page']) {
         self::$_model['canonical'] = self::$_model['listings'][0]->permalink;
     } else {
         if (self::$_model['is_partial_address_page']) {
             self::$_model['canonical'] = DispletRetsIdxUtilities::get_listing_permalink(array('page_url' => self::$_model['property_details_page_url'], 'state' => self::$_model['property_state'], 'city' => self::$_model['property_city'], 'zip' => self::$_model['property_zip']));
         }
     }
 }
 public static function redirect_to_parent()
 {
     if (self::$_model['is_property_details_page'] || self::$_model['is_property_update_page']) {
         if (empty(self::$_model['listings'][0])) {
             $url = DispletRetsIdxUtilities::get_listing_permalink(array('page_url' => self::$_model['property_details_page_url'], 'state' => self::$_model['property_state'], 'city' => self::$_model['property_city'], 'zip' => self::$_model['property_zip']));
             $url .= '#listing=' . self::$_model['property_id'] . '/';
             if (!empty(self::$_model['property_address'])) {
                 $url .= 'address=' . self::$_model['property_address'] . '/';
             }
             $url .= 'status=unavailable';
             wp_safe_redirect($url, 301);
         } else {
             self::redirect_to_canonical();
         }
     } else {
         if (self::$_model['is_partial_address_page'] && empty(self::$_model['meta']->count)) {
             $query_vars = array_filter(array(self::$_model['property_state'], self::$_model['property_city'], self::$_model['property_zip']), 'trim');
             array_pop($query_vars);
             if (!empty($query_vars)) {
                 $url = trailingslashit(self::$_model['property_details_page_url']) . implode('/', $query_vars);
             } else {
                 $url = self::$_model['search_results_page_url'];
             }
             wp_safe_redirect($url, 301);
         }
     }
 }