public static function update_property_view_stats($user_id, $user_properties)
 {
     $property_stats = DispletRetsIdxViewedPropertiesController::get_property_view_stats($user_properties);
     if (isset($property_stats['baths_average']) && !DispletRetsIdxUtilities::empty_excluding_zero($property_stats['baths_average'])) {
         update_user_meta($user_id, self::$_meta_keys['mean_baths'], $property_stats['baths_average']);
     }
     if (isset($property_stats['beds_average']) && !DispletRetsIdxUtilities::empty_excluding_zero($property_stats['beds_average'])) {
         update_user_meta($user_id, self::$_meta_keys['mean_beds'], $property_stats['beds_average']);
     }
     if (!empty($property_stats['price_average'])) {
         update_user_meta($user_id, self::$_meta_keys['mean_price'], $property_stats['price_average']);
     }
     if (!empty($property_stats['square_feet_average'])) {
         update_user_meta($user_id, self::$_meta_keys['mean_square_feet'], $property_stats['square_feet_average']);
     }
     if (!empty($property_stats['zip_mode'])) {
         update_user_meta($user_id, self::$_meta_keys['zip_mode'], $property_stats['zip_mode']);
     }
     return $property_stats;
 }
 private static function get_price_options($field)
 {
     $options = array('min' => array(), 'max' => array(), 'hidden' => array('lease_max' => !empty($field['lease_max']) ? intval(intval($field['lease_max']) / 1000) : false, 'sale_min' => !empty($field['sale_min']) ? intval(intval($field['sale_min']) / 1000) : false));
     if (!empty($field['range'])) {
         $prices = array_map(array('DispletRetsIdxUtilities', 'reduce_by_three_orders_of_magnitude'), $field['range']);
     } else {
         if (!DispletRetsIdxUtilities::empty_excluding_zero($field['min']) && !empty($field['max']) && !empty($field['increment'])) {
             $prices = array();
             $min = intval(intval($field['min']) / 1000);
             $max = intval(intval($field['max']) / 1000);
             $increment = intval(intval($field['increment']) / 1000);
             if ($increment > 0 && ($max - $min + 1) / $increment <= 500) {
                 for ($i = $min; $i <= $max; $i += $increment) {
                     $prices[] = $i;
                 }
             }
         }
     }
     if (!empty($prices)) {
         $min_price = !empty(self::$_options['min_price_filter']) ? intval(self::$_options['min_price_filter']) : false;
         $max_price = !empty(self::$_options['max_price_filter']) ? intval(self::$_options['max_price_filter']) : false;
         foreach ($prices as $price) {
             if ((!$min_price || $price >= $min_price) && (!$max_price || $price <= $max_price)) {
                 $base = '$' . number_format($price * 1000);
                 $min_label = $base . '+';
                 $max_label = $base . '-';
                 $options['min'][$price] = $min_label;
                 $options['max'][$price] = $max_label;
             }
         }
     }
     return $options;
 }
/**
 * @package: displetretsidx_the_stats() or displetretsidx_the_advanced_stats()
 * @return: boolean
 */
function displetretsidx_has_average_bathrooms()
{
    global $displetretsidx_results;
    if (!DispletRetsIdxUtilities::empty_excluding_zero($displetretsidx_results['meta']->full_baths_mean)) {
        return true;
    }
    return false;
}
/**
 * @return: boolean
 */
function displetretsidx_have_similar_listings()
{
    global $displetretsidx_template;
    global $displetretsidx_listing;
    global $displetretsidx_original_listing;
    if (DispletRetsIdxUtilities::empty_excluding_zero($displetretsidx_template['similar_listings_index'])) {
        $displetretsidx_original_listing = $displetretsidx_listing;
        $displetretsidx_template['similar_listings_index'] = 0;
    }
    if (!empty($displetretsidx_template['similar_listings'][$displetretsidx_template['similar_listings_index']])) {
        return true;
    } else {
        if ($displetretsidx_template['similar_listings_index'] === count($displetretsidx_template['similar_listings'])) {
            $displetretsidx_listing = $displetretsidx_original_listing;
            $displetretsidx_template['similar_listings_index'] = 0;
        }
    }
    return false;
}
 public static function validate($input)
 {
     $search_forms = array(array(), array(), array(), array(), array());
     if (!empty($input['search_forms']) && is_array($input['search_forms'])) {
         $search_fields = DispletRetsIdxSearchFieldsModel::$fields;
         foreach ($input['search_forms'] as &$form) {
             if (!empty($form) && is_array($form)) {
                 foreach ($form as &$column) {
                     if (!empty($column) && is_array($column)) {
                         foreach ($column as &$field) {
                             if (!empty($field) && is_array($field)) {
                                 foreach ($field as $key => &$value) {
                                     switch ($key) {
                                         case 'options':
                                             $value = !empty($value) && is_array($value) ? array_map('addslashes', $value) : array();
                                             break;
                                         case 'increment':
                                         case 'min':
                                         case 'max':
                                         case 'lease_max':
                                         case 'sale_min':
                                             if (DispletRetsIdxUtilities::empty_excluding_zero($value) && !DispletRetsIdxUtilities::empty_excluding_zero($search_fields[$field['field']]['range'][$key])) {
                                                 $value = $search_fields[$field['field']]['range'][$key];
                                             } else {
                                                 $value = DispletRetsIdxUtilities::remove_non_numeric_characters($value);
                                             }
                                             break;
                                         case 'range':
                                             if (!empty($value)) {
                                                 $value = array_filter(array_map(array('DispletRetsIdxUtilities', 'remove_non_numeric_characters'), explode("\n", $value)));
                                             } else {
                                                 $value = array();
                                             }
                                             break;
                                         default:
                                             $value = sanitize_text_field($value);
                                             break;
                                     }
                                 }
                                 if (!DispletRetsIdxUtilities::empty_excluding_zero($field['min']) && !DispletRetsIdxUtilities::empty_excluding_zero($field['max'])) {
                                     $count = 0;
                                     if ($field['field'] === 'price' || $field['field'] === 'price' || $field['field']) {
                                         $difference = intval(intval($field['max']) / 1000) - intval(intval($field['min']) / 1000);
                                         $increment = intval(intval($field['increment']) / 1000);
                                     } else {
                                         $difference = floatval($field['max']) - floatval($field['min']);
                                         $increment = floatval($field['increment']);
                                     }
                                     if (!empty($increment)) {
                                         $count = floor(($difference + 1) / $increment);
                                     } else {
                                         $count = intval($difference) + 1;
                                     }
                                     if ($count > 500) {
                                         add_settings_error('search_forms', 'search_forms', 'Too many options for ' . $field['label'] . '! Try a higher min, a lower max, or a higher increment to avoid having ' . number_format($count) . ' options.', 'error');
                                     }
                                 }
                             }
                         }
                         $column = array_values($column);
                     }
                 }
                 $form = array_values($form);
             }
         }
         foreach ($input['search_forms'] as $key => $search_form) {
             if (!empty($search_form)) {
                 $search_forms[$key] = $search_form;
             }
         }
     }
     return $search_forms;
 }