From 4fe7aecb3056320410b84c8954ec863e81e726ee Mon Sep 17 00:00:00 2001 From: Hoang Huu Date: Thu, 18 Jun 2020 11:09:45 +0700 Subject: [PATCH] Fixes --- assets/opalestate.css | 11 ++++ assets/scss/opalestate/_single.scss | 9 ++- changelog.txt | 5 ++ inc/admin/settings/property.php | 8 +++ inc/agent/class-opalestate-agent-front.php | 2 +- inc/api/v1/property.php | 13 +++-- inc/function-search-fields.php | 13 +++-- inc/property/class-metabox-property-admin.php | 2 +- inc/property/class-opalestate-query.php | 32 ++++++----- inc/property/class-opalestate-search.php | 6 +- inc/template-functions.php | 31 +++++++---- .../widgets/opalestate-searchbox.php | 37 +++++++++++++ opal-estate-pro.php | 6 +- readme.txt | 7 ++- templates/search-box/collapse-advanced.php | 20 +------ templates/search-box/collapse-city.php | 4 +- .../search-box/fields/search-city-text.php | 55 ++++++++++--------- templates/search-box/search-form-v2.php | 4 +- templates/search-box/simple-city.php | 4 +- 19 files changed, 176 insertions(+), 93 deletions(-) diff --git a/assets/opalestate.css b/assets/opalestate.css index baa4a80a..7363c7e5 100755 --- a/assets/opalestate.css +++ b/assets/opalestate.css @@ -4041,3 +4041,14 @@ header#masthead { border-bottom: 1px solid #ebebeb; margin-bottom: 15px; } + +.swiper-button-next, .swiper-container-rtl .swiper-button-prev, +.swiper-button-prev, .swiper-container-rtl .swiper-button-next { + background-image: none !important; +} + +.swiper-button-prev i, +.swiper-button-next i { + font-size: 20px; + padding: 20px 0; +} diff --git a/assets/scss/opalestate/_single.scss b/assets/scss/opalestate/_single.scss index 4be788f6..2d10b301 100755 --- a/assets/scss/opalestate/_single.scss +++ b/assets/scss/opalestate/_single.scss @@ -394,8 +394,15 @@ } } -[class*="swiper-button-"]{ +.swiper-button-next, .swiper-container-rtl .swiper-button-prev, +.swiper-button-prev, .swiper-container-rtl .swiper-button-next { + background-image: none !important; +} +.swiper-button-prev i, +.swiper-button-next i { + font-size: 20px; + padding: 20px 0; } .swiper-pagination{ diff --git a/changelog.txt b/changelog.txt index 12551927..26e18279 100755 --- a/changelog.txt +++ b/changelog.txt @@ -1,3 +1,8 @@ += 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/inc/admin/settings/property.php b/inc/admin/settings/property.php index 1f0da6a6..d25c93db 100755 --- a/inc/admin/settings/property.php +++ b/inc/admin/settings/property.php @@ -373,6 +373,14 @@ class Opalestate_Settings_Property_Tab extends Opalestate_Settings_Base_Tab { 'options' => apply_filters( 'opalestate_single_layout_templates', [ '' => esc_html__( 'Inherit', 'opalestate-pro' ) ] ), ]; + $fields[] = [ + 'name' => esc_html__( 'Single Preview Display', 'opalestate-pro' ), + 'desc' => esc_html__( 'Choose preview layout for single property.', 'opalestate-pro' ), + 'id' => 'single_preview', + 'type' => 'select', + 'options' => opalestate_single_layout_preview(), + ]; + $fields[] = [ 'name' => esc_html__( 'Enable Request Viewing', 'opalestate-pro' ), 'desc' => esc_html__( 'Enable Request Viewing feature in the single property page.', 'opalestate-pro' ), diff --git a/inc/agent/class-opalestate-agent-front.php b/inc/agent/class-opalestate-agent-front.php index 05011f25..27056025 100755 --- a/inc/agent/class-opalestate-agent-front.php +++ b/inc/agent/class-opalestate-agent-front.php @@ -423,7 +423,7 @@ class Opalestate_Agent_Front { $radius = isset( $_GET['geo_radius'] ) ? sanitize_text_field( $_GET['geo_radius'] ) : 5; $post_ids = Opalestate_Query::filter_by_location( sanitize_text_field( $_GET['geo_lat'] ), - sanitize_text_field( $_GET['geo_long'] ), $radius, $prefix ); + sanitize_text_field( $_GET['geo_long'] ), $radius, 'km', $prefix ); $args['post__in'] = $post_ids; diff --git a/inc/api/v1/property.php b/inc/api/v1/property.php index e7f8e8dd..a3b5a52c 100644 --- a/inc/api/v1/property.php +++ b/inc/api/v1/property.php @@ -382,16 +382,16 @@ class Opalestate_Property_Api extends Opalestate_Base_API { if ( is_array( $request['info'] ) ) { $info_array = $request['info']; } elseif ( is_string( $request['info'] ) ) { - $info = $request['info']; - $array = json_decode($info); - $array = json_decode(json_encode($array), true); + $info = $request['info']; + $array = json_decode( $info ); + $array = json_decode( json_encode( $array ), true ); if ( is_array( $array ) ) { $info_array = $array; } } - if ( $info_array && ! empty($info_array) ) { + if ( $info_array && ! empty( $info_array ) ) { $metaquery = []; foreach ( $info_array as $key => $value ) { if ( trim( $value ) ) { @@ -492,8 +492,9 @@ class Opalestate_Property_Api extends Opalestate_Base_API { 'operator' => 'OR', ] ); } elseif ( $request['geo_lat'] && $request['geo_long'] ) { - $radius = isset( $request['geo_radius'] ) ? $request['geo_radius'] : 5; - $post_ids = Opalestate_Query::filter_by_location( $request['geo_lat'], $request['geo_long'], $radius ); + $radius_measure = isset( $request['radius_measure'] ) ? sanitize_text_field( $request['radius_measure'] ) : 'km'; + $radius = isset( $request['geo_radius'] ) ? sanitize_text_field( $request['geo_radius'] ) : 10; + $post_ids = Opalestate_Query::filter_by_location( sanitize_text_field( $request['geo_lat'] ), sanitize_text_field( $request['geo_long'] ), $radius_measure, $radius ); $args['post__in'] = $post_ids; } } diff --git a/inc/function-search-fields.php b/inc/function-search-fields.php index b1b9e8ea..1de98f49 100755 --- a/inc/function-search-fields.php +++ b/inc/function-search-fields.php @@ -34,8 +34,9 @@ function opalestate_property_render_field_template( $field, $label, $type = 'sel
- +
@@ -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 = [
- + $max_range, 'range_unit' => $range_unit ] ); ?>
diff --git a/templates/search-box/fields/search-city-text.php b/templates/search-box/fields/search-city-text.php index 7ead2f52..0d112599 100755 --- a/templates/search-box/fields/search-city-text.php +++ b/templates/search-box/fields/search-city-text.php @@ -1,19 +1,21 @@ - 'geo_radius', 'decimals' => 0, - 'unit' => $unit, + 'unit' => $range_unit, 'ranger_min' => 0, - 'ranger_max' => $max_price, + 'ranger_max' => $max_range, 'input_min' => 0, - 'input_max' => $max_price, + 'input_max' => $max_range, 'mode' => 1, 'start' => $max_geo_radius, ]; @@ -21,27 +23,28 @@ $data_deposit = [ ?>
- - - -
-
- +
diff --git a/templates/search-box/search-form-v2.php b/templates/search-box/search-form-v2.php index c5305fa5..b9c54229 100755 --- a/templates/search-box/search-form-v2.php +++ b/templates/search-box/search-form-v2.php @@ -12,6 +12,8 @@ $GLOBALS['group-info-column'] = 1; $display_more_options = isset( $display_more_options ) ? $display_more_options : true; $info_number_input = isset( $info_number_input ) ? $info_number_input : true; $type = $info_number_input ? 'input' : 'select'; +$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', @@ -24,7 +26,7 @@ $form_classes = [
- + $max_range, 'range_unit' => $range_unit ] ); ?>
diff --git a/templates/search-box/simple-city.php b/templates/search-box/simple-city.php index 5537749f..77004613 100755 --- a/templates/search-box/simple-city.php +++ b/templates/search-box/simple-city.php @@ -24,6 +24,8 @@ if ( isset( $nobutton ) && $nobutton ) { } $display_more_options = isset( $display_more_options ) ? $display_more_options : false; +$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', @@ -36,7 +38,7 @@ $form_classes = [
- + $max_range, 'range_unit' => $range_unit ] ); ?>