@@ -55,14 +56,16 @@ function opalestate_property_render_field_template( $field, $label, $type = 'sel
$display_type_search = opalestate_options( $setting_search_type, 'select' );
if ( $display_type_search == 'select' ) {
-
$option_values = (array) explode( ',', opalestate_options( $setting_search_type_options, '1,2,3,4,5,6,7,8,9,10' ) );
+ $option_values = array_map( 'trim', $option_values );
+ $option_values = array_combine( $option_values, $option_values );
+ $option_values = apply_filters( 'opalestate_search_select_type_options', $option_values, $setting_search_type_options, $field );
$template = '
';
$template .= '
';
$template = sprintf( $template, $field, $label );
diff --git a/inc/property/class-metabox-property-admin.php b/inc/property/class-metabox-property-admin.php
index b51de952..2381ebf9 100755
--- a/inc/property/class-metabox-property-admin.php
+++ b/inc/property/class-metabox-property-admin.php
@@ -483,7 +483,7 @@ class Opalestate_Property_MetaBox {
public function metaboxes_layout_fields() {
$prefix = OPALESTATE_PROPERTY_PREFIX;
- $templates = opalestate_single_layout_prieview();
+ $templates = opalestate_single_layout_preview();
$fields = [
[
diff --git a/inc/property/class-opalestate-query.php b/inc/property/class-opalestate-query.php
index abbf19a8..75d82065 100755
--- a/inc/property/class-opalestate-query.php
+++ b/inc/property/class-opalestate-query.php
@@ -319,12 +319,11 @@ class Opalestate_Query {
}
if ( isset( $args['featured'] ) && $args['featured'] ) {
- $args = array_merge( $args,
- [
- 'meta_key' => OPALESTATE_PROPERTY_PREFIX . 'featured',
- 'meta_value' => 'on',
- 'meta_compare' => '=',
- ] );
+ $args = array_merge( $args, [
+ 'meta_key' => OPALESTATE_PROPERTY_PREFIX . 'featured',
+ 'meta_value' => 'on',
+ 'meta_compare' => '=',
+ ] );
unset( $args['featured'] );
}
@@ -342,17 +341,21 @@ class Opalestate_Query {
}
/**
- *
+ * Filter_by_location
*/
- public static function filter_by_location( $geo_lat, $geo_long, $radius, $prefix = OPALESTATE_PROPERTY_PREFIX ) {
-
+ public static function filter_by_location( $geo_lat, $geo_long, $radius, $radius_measure = '', $prefix = OPALESTATE_PROPERTY_PREFIX ) {
global $wpdb;
- $radius_measure = '';
- $earth = 3959;
-
- if ( $radius_measure == 'km' ) {
- $earth = 6371;
+ switch ( $radius_measure ) {
+ case 'km':
+ $earth = 6371;
+ break;
+ case 'miles':
+ $earth = 3959;
+ break;
+ default :
+ $earth = 6371;
+ break;
}
$latitude = $prefix . 'map_latitude';
@@ -382,7 +385,6 @@ class Opalestate_Query {
ORDER BY $wpdb->posts.menu_order ASC, distance ASC";
$query = $wpdb->prepare( $sql,
-
$earth,
$geo_lat,
$geo_long,
diff --git a/inc/property/class-opalestate-search.php b/inc/property/class-opalestate-search.php
index 5dfd55f7..22bcda9a 100755
--- a/inc/property/class-opalestate-search.php
+++ b/inc/property/class-opalestate-search.php
@@ -288,10 +288,10 @@ class OpalEstate_Search {
'compare' => 'LIKE',
'operator' => 'OR',
];
-
} elseif ( $_GET['geo_lat'] && $_GET['geo_long'] ) {
- $radius = isset( $_GET['geo_radius'] ) ? $_GET['geo_radius'] : 5;
- $post_ids = Opalestate_Query::filter_by_location( $_GET['geo_lat'], $_GET['geo_long'], $radius );
+ $radius_measure = isset( $_GET['radius_measure'] ) ? sanitize_text_field( $_GET['radius_measure'] ) : 'km';
+ $radius = isset( $_GET['geo_radius'] ) ? sanitize_text_field( $_GET['geo_radius'] ) : 10;
+ $post_ids = Opalestate_Query::filter_by_location( sanitize_text_field( $_GET['geo_lat'] ), sanitize_text_field( $_GET['geo_long'] ), $radius_measure, $radius );
$args['post__in'] = $post_ids;
}
}
diff --git a/inc/template-functions.php b/inc/template-functions.php
index 665198c8..0619bf2a 100755
--- a/inc/template-functions.php
+++ b/inc/template-functions.php
@@ -456,10 +456,14 @@ function opalestate_single_the_property_layout() {
return $layout;
}
-
-function opalestate_single_layout_prieview() {
- $layout = [
- '' => esc_html__( 'Inherit', 'opalestate-pro' ),
+/**
+ * Single layout preview.
+ *
+ * @param bool $show_none_option
+ * @return array
+ */
+function opalestate_single_layout_preview( $show_none_option = true ) {
+ $layouts = [
'gallery-thumbnail' => esc_html__( 'Gallery Thumb Nav', 'opalestate-pro' ),
'gallery-slider' => esc_html__( 'Gallery Slider', 'opalestate-pro' ),
'map' => esc_html__( 'Maps', 'opalestate-pro' ),
@@ -471,7 +475,11 @@ function opalestate_single_layout_prieview() {
'mark-picture' => esc_html__( 'Mark Picture', 'opalestate-pro' ),
];
- return $layout;
+ if ( $show_none_option ) {
+ $layouts = array_merge( [ '' => esc_html__( 'Inherit', 'opalestate-pro' ) ], $layouts );
+ }
+
+ return apply_filters( 'opalestate_single_layout_preview', $layouts );
}
@@ -491,10 +499,6 @@ function opalestate_property_status() {
echo opalestate_load_template_path( 'parts/property-status' );
}
-/**
- * Single property logic functions
- */
-
/**
* Single property logic functions
*/
@@ -512,9 +516,15 @@ function opalestate_single_show_map() {
function opalestate_property_preview() {
global $property;
$preview = $property->get_preview_template();
+
+ if ( ! $preview ) {
+ $preview = opalestate_get_option( 'single_preview', '' );
+ }
+
if ( isset( $_GET['preview'] ) && $_GET['preview'] ) {
$preview = sanitize_text_field( $_GET['preview'] );
}
+
switch ( $preview ) {
case 'tour360':
echo opalestate_load_template_path( 'single-property/preview/virtualtour' );
@@ -522,7 +532,6 @@ function opalestate_property_preview() {
case 'gallery-slider':
echo opalestate_load_template_path( 'single-property/preview/gallery-slider' );
break;
-
case 'tabs-gallery':
echo opalestate_load_template_path( 'single-property/preview/tabs', [ 'tab_active' => 'gallery-slider' ] );
remove_action( 'opalestate_after_single_property_summary', 'opalestate_property_map', 30 );
@@ -850,7 +859,7 @@ function opalestate_properties_nearby() {
}
$radius = 5;
- $post_ids = Opalestate_Query::filter_by_location( $geo_lat, $geo_long, $radius );
+ $post_ids = Opalestate_Query::filter_by_location( $geo_lat, $geo_long, 'km', $radius );
if ( empty( $post_ids ) ) {
return;
diff --git a/inc/vendors/elementor/widgets/opalestate-searchbox.php b/inc/vendors/elementor/widgets/opalestate-searchbox.php
index fa0c593a..77dd635a 100755
--- a/inc/vendors/elementor/widgets/opalestate-searchbox.php
+++ b/inc/vendors/elementor/widgets/opalestate-searchbox.php
@@ -185,6 +185,34 @@ class Opalestate_Searchbox_Elementor_Widget extends Opalestate_Elementor_Widget_
]
);
+ $this->add_control(
+ 'range_unit',
+ [
+ 'label' => esc_html__( 'Range Unit', 'opalestate-pro' ),
+ 'type' => Controls_Manager::SELECT,
+ 'options' => [
+ 'km' => esc_html__( 'km', 'opalestate-pro' ),
+ 'miles' => esc_html__( 'miles', 'opalestate-pro' ),
+ ],
+ 'default' => 'km',
+ 'condition' => [
+ 'style' => $this->get_radius_form(),
+ ],
+ ]
+ );
+
+ $this->add_control(
+ 'max_range',
+ [
+ 'label' => esc_html__( 'Max Range', 'opalestate-pro' ),
+ 'type' => Controls_Manager::NUMBER,
+ 'default' => '10',
+ 'condition' => [
+ 'style' => $this->get_radius_form(),
+ ],
+ ]
+ );
+
$this->end_controls_section();
$this->start_controls_section(
@@ -414,4 +442,13 @@ class Opalestate_Searchbox_Elementor_Widget extends Opalestate_Elementor_Widget_
'search-form-v3',
];
}
+
+ protected function get_radius_form() {
+ return [
+ 'search-form-v2',
+ 'collapse-advanced',
+ 'collapse-city',
+ 'simple-city',
+ ];
+ }
}
diff --git a/opal-estate-pro.php b/opal-estate-pro.php
index 52873c73..501c31bc 100755
--- a/opal-estate-pro.php
+++ b/opal-estate-pro.php
@@ -3,7 +3,7 @@
* Plugin Name: Opal Estate Pro
* Plugin URI: https://wpdocs.gitbook.io/opal-estate/
* Description: Opal Real Estate Plugin is an ideal solution and brilliant choice for you to set up a professional estate website.
- * Version: 1.5.7
+ * Version: 1.5.8
* Author: WPOPAL
* Author URI: http://www.wpopal.com
* Requires at least: 4.9
@@ -154,7 +154,7 @@ if ( ! class_exists( 'OpalEstate' ) ) {
*/
public function __clone() {
// Cloning instances of the class is forbidden
- _doing_it_wrong( __FUNCTION__, esc_html__( 'Cheatin’ huh?', 'opalestate-pro' ), '1.5.6' );
+ _doing_it_wrong( __FUNCTION__, esc_html__( 'Cheatin’ huh?', 'opalestate-pro' ), '1.5.8' );
}
/**
@@ -163,7 +163,7 @@ if ( ! class_exists( 'OpalEstate' ) ) {
public function setup_constants() {
// Plugin version
if ( ! defined( 'OPALESTATE_VERSION' ) ) {
- define( 'OPALESTATE_VERSION', '1.5.6' );
+ define( 'OPALESTATE_VERSION', '1.5.8' );
}
// Plugin Folder Path
diff --git a/readme.txt b/readme.txt
index 67ec3c6a..16d7632b 100755
--- a/readme.txt
+++ b/readme.txt
@@ -4,7 +4,7 @@ Donate link: https://wpdocs.gitbook.io/opal-estate/
Tags: estate, property, opalestate, house for rent, agency for lease, estate submission, agents estate property, property marketplace
Requires at least: 4.9
Tested up to: 5.3.2
-Stable tag: 1.5.6
+Stable tag: 1.5.8
License: GPLv3
License URI: http://www.gnu.org/licenses/gpl-3.0.html
@@ -150,6 +150,11 @@ This section describes how to install the plugin and get it working.
* System tickets support 24/7 available : [free support](https://themelexus.ticksy.com/ "Visit the Plugin support Page")
== Changelog ==
+= 1.5.8 - 2020-06-18 =
+* Added - Single Preview Layout setting
+* Added - Range setting for Radius search
+* Fixes - Search selection with Custom Fields
+
= 1.5.6 - 2020-06-12 =
* Fixes - Country select when not logged in.
diff --git a/templates/search-box/collapse-advanced.php b/templates/search-box/collapse-advanced.php
index d8df51c5..f39702c2 100755
--- a/templates/search-box/collapse-advanced.php
+++ b/templates/search-box/collapse-advanced.php
@@ -10,23 +10,9 @@ defined( 'ABSPATH' ) || exit;
$unique_id = esc_attr( opalestate_unique_id() );
$GLOBALS['group-info-column'] = 3;
-if ( isset( $nobutton ) && $nobutton ) {
- $grid = [
- 0 => 7,
- 1 => 4,
- 2 => 1,
- 3 => 0,
- ];
-} else {
- $grid = [
- 0 => 6,
- 1 => 3,
- 2 => 1,
- 3 => 2,
- ];
-}
-
$display_more_options = isset( $display_more_options ) ? $display_more_options : true;
+$max_range = isset( $max_range ) && $max_range ? $max_range : apply_filters( 'opalestate_search_geo_max_range', 10 );
+$range_unit = isset( $range_unit ) ? $range_unit : 'km';
$form_classes = [
'opalestate-search-form',
@@ -43,7 +29,7 @@ $form_classes = [
-
+ $max_range, 'range_unit' => $range_unit ] ); ?>
diff --git a/templates/search-box/collapse-city.php b/templates/search-box/collapse-city.php
index e0019ca2..4950ab23 100755
--- a/templates/search-box/collapse-city.php
+++ b/templates/search-box/collapse-city.php
@@ -27,6 +27,8 @@ if ( isset( $nobutton ) && $nobutton ) {
}
$display_more_options = isset( $display_more_options ) ? $display_more_options : true;
+$max_range = isset( $max_range ) && $max_range ? $max_range : apply_filters( 'opalestate_search_geo_max_range', 10 );
+$range_unit = isset( $range_unit ) ? $range_unit : 'km';
$form_classes = [
'opalestate-search-form',
@@ -39,7 +41,7 @@ $form_classes = [