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; }