Fixes
This commit is contained in:
@@ -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' ),
|
||||
|
||||
@@ -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;
|
||||
|
||||
@@ -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;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -34,8 +34,9 @@ function opalestate_property_render_field_template( $field, $label, $type = 'sel
|
||||
<label class="opalestate-label opalestate-label--<?php echo sanitize_html_class( $field ); ?>"><?php echo esc_html( $label ); ?></label>
|
||||
<div class="input-group-number">
|
||||
<i class="<?php echo opalestate_get_property_meta_icon( $field ); ?>"></i>
|
||||
<input class="form-control" value="<?php echo esc_attr( $qvalue ? $qvalue : $input_default_value ); ?>" type="text" name="info[<?php echo $field; ?>]" placeholder="<?php echo esc_attr(
|
||||
$label ); ?>"/>
|
||||
<input class="form-control" value="<?php echo esc_attr( $qvalue ? $qvalue : $input_default_value ); ?>" type="text" name="info[<?php echo $field; ?>]"
|
||||
placeholder="<?php echo esc_attr(
|
||||
$label ); ?>"/>
|
||||
<div class="btn-actions">
|
||||
<span class="btn-minus"><i class="fa fa-minus"></i></span>
|
||||
<span class="btn-plus"><i class="fa fa-plus"></i></span>
|
||||
@@ -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 = '<label class="opalestate-label opalestate-label--' . sanitize_html_class( $label ) . '">' . esc_html( $label ) . '</label>';
|
||||
$template .= '<select class="form-control" name="info[%s]"><option value="">%s</option>';
|
||||
|
||||
foreach ( $option_values as $value ) {
|
||||
foreach ( $option_values as $option_key => $value ) {
|
||||
$selected = $value == $qvalue ? 'selected="selected"' : '';
|
||||
$template .= '<option ' . $selected . ' value="' . esc_attr( $value ) . '">' . esc_html( $value ) . '</option>';
|
||||
$template .= '<option ' . $selected . ' value="' . esc_attr( $option_key ) . '">' . esc_html( $value ) . '</option>';
|
||||
}
|
||||
$template .= '</select>';
|
||||
$template = sprintf( $template, $field, $label );
|
||||
|
||||
@@ -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 = [
|
||||
[
|
||||
|
||||
@@ -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,
|
||||
|
||||
@@ -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;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -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;
|
||||
|
||||
@@ -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',
|
||||
];
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user