commit
d7782283f6
@ -168,10 +168,10 @@ class Opalestate_Settings_Property_Tab extends Opalestate_Settings_Base_Tab {
|
|||||||
'desc' => esc_html__( 'Show featured first in page result, as default Newest is showed', 'opalestate-pro' ),
|
'desc' => esc_html__( 'Show featured first in page result, as default Newest is showed', 'opalestate-pro' ),
|
||||||
'type' => 'switch',
|
'type' => 'switch',
|
||||||
'options' => [
|
'options' => [
|
||||||
0 => esc_html__( 'Disable', 'opalestate-pro' ),
|
'on' => esc_html__( 'Enable', 'opalestate-pro' ),
|
||||||
1 => esc_html__( 'Enable', 'opalestate-pro' ),
|
'off' => esc_html__( 'Disable', 'opalestate-pro' ),
|
||||||
],
|
],
|
||||||
'default' => 0,
|
'default' => 'off',
|
||||||
];
|
];
|
||||||
$fields[] = [
|
$fields[] = [
|
||||||
'name' => esc_html__( 'Minimum of Search Price', 'opalestate-pro' ),
|
'name' => esc_html__( 'Minimum of Search Price', 'opalestate-pro' ),
|
||||||
@ -334,6 +334,18 @@ class Opalestate_Settings_Property_Tab extends Opalestate_Settings_Base_Tab {
|
|||||||
private function get_subtab_detail_fields() {
|
private function get_subtab_detail_fields() {
|
||||||
$fields = [];
|
$fields = [];
|
||||||
|
|
||||||
|
$fields[] = [
|
||||||
|
'name' => esc_html__( 'Enable Request Viewing', 'opalestate-pro' ),
|
||||||
|
'desc' => esc_html__( 'Enable Request Viewing feature in the single property page.', 'opalestate-pro' ),
|
||||||
|
'id' => 'enable_single_request_viewing',
|
||||||
|
'type' => 'switch',
|
||||||
|
'options' => [
|
||||||
|
'on' => esc_html__( 'Enable', 'opalestate-pro' ),
|
||||||
|
'off' => esc_html__( 'Disable', 'opalestate-pro' ),
|
||||||
|
],
|
||||||
|
'default' => 'on',
|
||||||
|
];
|
||||||
|
|
||||||
$fields[] = [
|
$fields[] = [
|
||||||
'name' => esc_html__( 'Show Amenities tab', 'opalestate-pro' ),
|
'name' => esc_html__( 'Show Amenities tab', 'opalestate-pro' ),
|
||||||
'desc' => esc_html__( 'Show Amenities tab in the single property page.', 'opalestate-pro' ),
|
'desc' => esc_html__( 'Show Amenities tab in the single property page.', 'opalestate-pro' ),
|
||||||
|
@ -93,8 +93,6 @@ class Opalestate_Install {
|
|||||||
$options['currency_position'] = 'before';
|
$options['currency_position'] = 'before';
|
||||||
$options['measurement_unit'] = 'sqft';
|
$options['measurement_unit'] = 'sqft';
|
||||||
$options['google_map_api_keys'] = 'AIzaSyCfMVNIa7khIqYHCw6VBn8ShUWWm4tjbG8';
|
$options['google_map_api_keys'] = 'AIzaSyCfMVNIa7khIqYHCw6VBn8ShUWWm4tjbG8';
|
||||||
$options['admin_approve'] = 'on';
|
|
||||||
$options['require_input_price'] = 'on';
|
|
||||||
$options['from_name'] = get_bloginfo( 'name' );
|
$options['from_name'] = get_bloginfo( 'name' );
|
||||||
$options['from_email'] = get_bloginfo( 'admin_email' );
|
$options['from_email'] = get_bloginfo( 'admin_email' );
|
||||||
$options['message_log'] = 1;
|
$options['message_log'] = 1;
|
||||||
@ -110,6 +108,7 @@ class Opalestate_Install {
|
|||||||
$options[ OPALESTATE_PROPERTY_PREFIX . 'areasize_opt_v' ] = 'on';
|
$options[ OPALESTATE_PROPERTY_PREFIX . 'areasize_opt_v' ] = 'on';
|
||||||
$options[ OPALESTATE_PROPERTY_PREFIX . 'price_opt_v' ] = 'on';
|
$options[ OPALESTATE_PROPERTY_PREFIX . 'price_opt_v' ] = 'on';
|
||||||
|
|
||||||
|
$options['enable_single_request_viewing'] = 'on';
|
||||||
$options['enable_single_amenities'] = 'on';
|
$options['enable_single_amenities'] = 'on';
|
||||||
$options['enable_single_facilities'] = 'on';
|
$options['enable_single_facilities'] = 'on';
|
||||||
$options['enable_single_attachments'] = 'on';
|
$options['enable_single_attachments'] = 'on';
|
||||||
@ -129,6 +128,7 @@ class Opalestate_Install {
|
|||||||
$options['enable_agency_reviews'] = 'on';
|
$options['enable_agency_reviews'] = 'on';
|
||||||
$options['enable_agent_reviews'] = 'on';
|
$options['enable_agent_reviews'] = 'on';
|
||||||
|
|
||||||
|
$options['admin_approve'] = 'on';
|
||||||
$options['enable_submission_tab_media'] = 'on';
|
$options['enable_submission_tab_media'] = 'on';
|
||||||
$options['enable_submission_tab_location'] = 'on';
|
$options['enable_submission_tab_location'] = 'on';
|
||||||
$options['enable_submission_tab_amenities'] = 'on';
|
$options['enable_submission_tab_amenities'] = 'on';
|
||||||
|
@ -177,10 +177,10 @@ class Opalestate_Property_MetaBox {
|
|||||||
'id' => $prefix . 'featured',
|
'id' => $prefix . 'featured',
|
||||||
'type' => 'switch',
|
'type' => 'switch',
|
||||||
'options' => [
|
'options' => [
|
||||||
0 => esc_html__( 'No', 'opalestate-pro' ),
|
'on' => esc_html__( 'Yes', 'opalestate-pro' ),
|
||||||
1 => esc_html__( 'Yes', 'opalestate-pro' ),
|
'off' => esc_html__( 'No', 'opalestate-pro' ),
|
||||||
],
|
],
|
||||||
'default' => 0,
|
'default' => 'off',
|
||||||
],
|
],
|
||||||
[
|
[
|
||||||
'name' => esc_html__( 'Property SKU', 'opalestate-pro' ),
|
'name' => esc_html__( 'Property SKU', 'opalestate-pro' ),
|
||||||
@ -206,17 +206,14 @@ class Opalestate_Property_MetaBox {
|
|||||||
'id' => $prefix . 'enablemapview',
|
'id' => $prefix . 'enablemapview',
|
||||||
'type' => 'switch',
|
'type' => 'switch',
|
||||||
'options' => [
|
'options' => [
|
||||||
1 => esc_html__( 'Yes', 'opalestate-pro' ),
|
'on' => esc_html__( 'Yes', 'opalestate-pro' ),
|
||||||
0 => esc_html__( 'No', 'opalestate-pro' ),
|
'off' => esc_html__( 'No', 'opalestate-pro' ),
|
||||||
],
|
],
|
||||||
],
|
],
|
||||||
[
|
[
|
||||||
'name' => esc_html__( 'Address', 'opalestate-pro' ),
|
'name' => esc_html__( 'Address', 'opalestate-pro' ),
|
||||||
'id' => $prefix . 'address',
|
'id' => $prefix . 'address',
|
||||||
'type' => 'textarea_small',
|
'type' => 'textarea_small',
|
||||||
'attributes' => [
|
|
||||||
'required' => 'required',
|
|
||||||
],
|
|
||||||
],
|
],
|
||||||
[
|
[
|
||||||
'id' => "{$prefix}video",
|
'id' => "{$prefix}video",
|
||||||
@ -243,7 +240,7 @@ class Opalestate_Property_MetaBox {
|
|||||||
'name' => esc_html__( 'Regular Price', 'opalestate-pro' ) . $currency,
|
'name' => esc_html__( 'Regular Price', 'opalestate-pro' ) . $currency,
|
||||||
'type' => 'text',
|
'type' => 'text',
|
||||||
'description' => esc_html__( 'Enter amount without currency', 'opalestate-pro' ),
|
'description' => esc_html__( 'Enter amount without currency', 'opalestate-pro' ),
|
||||||
'attributes' => opalestate_get_option( 'require_input_price' ) ? [ 'required' => 'required' ] : '',
|
'attributes' => [ 'required' => 'required' ],
|
||||||
'before_row' => '<div class="row-group-features group-has-three group-price clearfix"><h3>' . ( is_admin() ? "" : esc_html__( 'Price', 'opalestate-pro' ) ) . '</h3>', // callback
|
'before_row' => '<div class="row-group-features group-has-three group-price clearfix"><h3>' . ( is_admin() ? "" : esc_html__( 'Price', 'opalestate-pro' ) ) . '</h3>', // callback
|
||||||
],
|
],
|
||||||
[
|
[
|
||||||
@ -270,10 +267,10 @@ class Opalestate_Property_MetaBox {
|
|||||||
'id' => $prefix . 'price_oncall',
|
'id' => $prefix . 'price_oncall',
|
||||||
'type' => 'switch',
|
'type' => 'switch',
|
||||||
'options' => [
|
'options' => [
|
||||||
0 => esc_html__( 'No', 'opalestate-pro' ),
|
'on' => esc_html__( 'Yes', 'opalestate-pro' ),
|
||||||
1 => esc_html__( 'Yes', 'opalestate-pro' ),
|
'off' => esc_html__( 'No', 'opalestate-pro' ),
|
||||||
],
|
],
|
||||||
'default' => 0,
|
'default' => 'off',
|
||||||
],
|
],
|
||||||
|
|
||||||
];
|
];
|
||||||
|
@ -207,10 +207,10 @@ class Opalestate_Property {
|
|||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
*
|
* Is featured?
|
||||||
*/
|
*/
|
||||||
public function is_featured() {
|
public function is_featured() {
|
||||||
return 'on' === $this->featured;
|
return ( 'on' === $this->featured ) || ( 1 == $this->featured );
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -315,7 +315,7 @@ class Opalestate_Property {
|
|||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
*
|
* Get location.
|
||||||
*/
|
*/
|
||||||
public function get_locations() {
|
public function get_locations() {
|
||||||
$terms = wp_get_post_terms( $this->post_id, 'opalestate_location' );
|
$terms = wp_get_post_terms( $this->post_id, 'opalestate_location' );
|
||||||
@ -515,7 +515,7 @@ class Opalestate_Property {
|
|||||||
* @access public
|
* @access public
|
||||||
* @param $key
|
* @param $key
|
||||||
* @param $single
|
* @param $single
|
||||||
* @return string
|
* @return string|array
|
||||||
*/
|
*/
|
||||||
public function get_metabox_value( $key, $single = true ) {
|
public function get_metabox_value( $key, $single = true ) {
|
||||||
return get_post_meta( $this->post_id, OPALESTATE_PROPERTY_PREFIX . $key, $single );
|
return get_post_meta( $this->post_id, OPALESTATE_PROPERTY_PREFIX . $key, $single );
|
||||||
@ -579,7 +579,7 @@ class Opalestate_Property {
|
|||||||
* @return array
|
* @return array
|
||||||
*/
|
*/
|
||||||
public function get_gallery() {
|
public function get_gallery() {
|
||||||
return $this->get_metabox_value( 'gallery', true );
|
return $this->get_metabox_value( 'gallery' );
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -677,7 +677,6 @@ class Opalestate_Property {
|
|||||||
return $this->get_metabox_value( 'attachments' );
|
return $this->get_metabox_value( 'attachments' );
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
public function get_content_single_layout() {
|
public function get_content_single_layout() {
|
||||||
return $this->get_metabox_value( 'layout' );
|
return $this->get_metabox_value( 'layout' );
|
||||||
}
|
}
|
||||||
|
@ -243,8 +243,12 @@ class OpalEstate_Search {
|
|||||||
|
|
||||||
if ( ! empty( $ksearchs ) && count( $ksearchs ) == 2 ) {
|
if ( ! empty( $ksearchs ) && count( $ksearchs ) == 2 ) {
|
||||||
$args['meta_key'] = OPALESTATE_PROPERTY_PREFIX . $ksearchs[0];
|
$args['meta_key'] = OPALESTATE_PROPERTY_PREFIX . $ksearchs[0];
|
||||||
$args['orderby'] = 'meta_value_num';
|
$args['orderby'] = 'meta_value';
|
||||||
$args['order'] = $ksearchs[1];
|
$args['order'] = $ksearchs[1];
|
||||||
|
} elseif ( 'on' == opalestate_options( 'show_featured_first', 'off' ) ) {
|
||||||
|
$args['meta_key'] = OPALESTATE_PROPERTY_PREFIX . 'featured';
|
||||||
|
$args['orderby'] = 'meta_value';
|
||||||
|
$args['order'] = 'DESC';
|
||||||
}
|
}
|
||||||
|
|
||||||
$metas = Opalestate_Property_MetaBox::metaboxes_info_fields();
|
$metas = Opalestate_Property_MetaBox::metaboxes_info_fields();
|
||||||
|
@ -59,14 +59,13 @@ class Opalestate_Property_MetaBox_Submission {
|
|||||||
public function get_fields_groups() {
|
public function get_fields_groups() {
|
||||||
return [
|
return [
|
||||||
'general' => [ 'status' => true, 'title' => esc_html__( 'General', 'opalestate-pro' ) ],
|
'general' => [ 'status' => true, 'title' => esc_html__( 'General', 'opalestate-pro' ) ],
|
||||||
|
|
||||||
'media' => [ 'status' => $this->is_enabled_tab( 'media' ), 'title' => esc_html__( 'Media', 'opalestate-pro' ) ],
|
'media' => [ 'status' => $this->is_enabled_tab( 'media' ), 'title' => esc_html__( 'Media', 'opalestate-pro' ) ],
|
||||||
'location' => [ 'status' => $this->is_enabled_tab( 'location' ), 'title' => esc_html__( 'Location', 'opalestate-pro' ) ],
|
'location' => [ 'status' => $this->is_enabled_tab( 'location' ), 'title' => esc_html__( 'Location', 'opalestate-pro' ) ],
|
||||||
'information' => [ 'status' => $this->is_enabled_tab( 'information' ), 'title' => esc_html__( 'Information', 'opalestate-pro' ) ],
|
'information' => [ 'status' => $this->is_enabled_tab( 'information' ), 'title' => esc_html__( 'Information', 'opalestate-pro' ) ],
|
||||||
'amenities' => [ 'status' => $this->is_enabled_tab( 'amenities' ), 'title' => esc_html__( 'Amenities', 'opalestate-pro' ) ],
|
'amenities' => [ 'status' => $this->is_enabled_tab( 'amenities' ), 'title' => esc_html__( 'Amenities', 'opalestate-pro' ) ],
|
||||||
'facilities' => [ 'status' => $this->is_enabled_tab( 'facilities' ), 'title' => esc_html__( 'Facilities', 'opalestate-pro' ) ],
|
'facilities' => [ 'status' => $this->is_enabled_tab( 'facilities' ), 'title' => esc_html__( 'Facilities', 'opalestate-pro' ) ],
|
||||||
'apartments' => [ 'status' => $this->is_enabled_tab( 'apartments' ), 'title' => esc_html__( 'Apartments', 'opalestate-pro' ) ],
|
'apartments' => [ 'status' => $this->is_enabled_tab( 'apartments' ), 'title' => esc_html__( 'Apartments', 'opalestate-pro' ) ],
|
||||||
'floor_plans' => [ 'status' => $this->is_enabled_tab( 'floor_plans' ), 'title' => esc_html__( 'Floor plans', 'opalestate-pro' ) ]
|
'floor_plans' => [ 'status' => $this->is_enabled_tab( 'floor_plans' ), 'title' => esc_html__( 'Floor plans', 'opalestate-pro' ) ],
|
||||||
];
|
];
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -95,7 +94,6 @@ class Opalestate_Property_MetaBox_Submission {
|
|||||||
'default' => $post_id,
|
'default' => $post_id,
|
||||||
|
|
||||||
],
|
],
|
||||||
|
|
||||||
[
|
[
|
||||||
'name' => esc_html__( 'Title', 'opalestate-pro' ) . '<span class="required"> *</span>',
|
'name' => esc_html__( 'Title', 'opalestate-pro' ) . '<span class="required"> *</span>',
|
||||||
'id' => $prefix . 'title',
|
'id' => $prefix . 'title',
|
||||||
@ -113,14 +111,13 @@ class Opalestate_Property_MetaBox_Submission {
|
|||||||
'default' => ! empty( $post ) ? $post->post_content : '',
|
'default' => ! empty( $post ) ? $post->post_content : '',
|
||||||
'before_row' => '<hr>',
|
'before_row' => '<hr>',
|
||||||
],
|
],
|
||||||
|
|
||||||
[
|
[
|
||||||
'id' => $prefix . 'price',
|
'id' => $prefix . 'price',
|
||||||
'name' => esc_html__( 'Regular Price', 'opalestate-pro' ) . $currency . '<span class="required"> *</span>',
|
'name' => esc_html__( 'Regular Price', 'opalestate-pro' ) . $currency . '<span class="required"> *</span>',
|
||||||
'type' => 'text',
|
'type' => 'text',
|
||||||
'description' => esc_html__( 'Enter amount without currency', 'opalestate-pro' ),
|
'description' => esc_html__( 'Enter amount without currency', 'opalestate-pro' ),
|
||||||
'attributes' => opalestate_get_option( 'require_input_price' ) ? [ 'required' => 'required' ] : '',
|
'attributes' => [ 'required' => 'required' ],
|
||||||
'before_row' => '<hr><div class="field-row-2">', // callback
|
'before_row' => '<hr><div class="field-row-2">',
|
||||||
],
|
],
|
||||||
[
|
[
|
||||||
'id' => $prefix . 'saleprice',
|
'id' => $prefix . 'saleprice',
|
||||||
@ -168,7 +165,6 @@ class Opalestate_Property_MetaBox_Submission {
|
|||||||
}
|
}
|
||||||
|
|
||||||
public function metaboxes_media_fields() {
|
public function metaboxes_media_fields() {
|
||||||
|
|
||||||
$id = 0;
|
$id = 0;
|
||||||
|
|
||||||
if ( isset( $_GET['id'] ) ) {
|
if ( isset( $_GET['id'] ) ) {
|
||||||
@ -210,7 +206,7 @@ class Opalestate_Property_MetaBox_Submission {
|
|||||||
'name' => esc_html__( '360° Virtual Tour', 'opalestate-pro' ),
|
'name' => esc_html__( '360° Virtual Tour', 'opalestate-pro' ),
|
||||||
'type' => 'textarea_small',
|
'type' => 'textarea_small',
|
||||||
'description' => esc_html__( 'Input iframe to show 360° Virtual Tour.', 'opalestate-pro' ),
|
'description' => esc_html__( 'Input iframe to show 360° Virtual Tour.', 'opalestate-pro' ),
|
||||||
'before_row' => '<hr>'
|
'before_row' => '<hr>',
|
||||||
],
|
],
|
||||||
[
|
[
|
||||||
'id' => "{$prefix}attachments",
|
'id' => "{$prefix}attachments",
|
||||||
@ -247,10 +243,10 @@ class Opalestate_Property_MetaBox_Submission {
|
|||||||
'name' => esc_html__( 'Parking', 'opalestate-pro' ),
|
'name' => esc_html__( 'Parking', 'opalestate-pro' ),
|
||||||
'id' => $prefix . 'parking',
|
'id' => $prefix . 'parking',
|
||||||
'type' => 'text',
|
'type' => 'text',
|
||||||
'attributes' => array(
|
'attributes' => [
|
||||||
'type' => 'number',
|
'type' => 'number',
|
||||||
'pattern' => '\d*',
|
'pattern' => '\d*',
|
||||||
),
|
],
|
||||||
'sanitization_cb' => 'absint',
|
'sanitization_cb' => 'absint',
|
||||||
'escape_cb' => 'absint',
|
'escape_cb' => 'absint',
|
||||||
'description' => esc_html__( 'Enter number of Parking', 'opalestate-pro' ),
|
'description' => esc_html__( 'Enter number of Parking', 'opalestate-pro' ),
|
||||||
@ -259,10 +255,10 @@ class Opalestate_Property_MetaBox_Submission {
|
|||||||
'name' => esc_html__( 'Bedrooms', 'opalestate-pro' ),
|
'name' => esc_html__( 'Bedrooms', 'opalestate-pro' ),
|
||||||
'id' => $prefix . 'bedrooms',
|
'id' => $prefix . 'bedrooms',
|
||||||
'type' => 'text',
|
'type' => 'text',
|
||||||
'attributes' => array(
|
'attributes' => [
|
||||||
'type' => 'number',
|
'type' => 'number',
|
||||||
'pattern' => '\d*',
|
'pattern' => '\d*',
|
||||||
),
|
],
|
||||||
'sanitization_cb' => 'absint',
|
'sanitization_cb' => 'absint',
|
||||||
'escape_cb' => 'absint',
|
'escape_cb' => 'absint',
|
||||||
'description' => esc_html__( 'Enter number of bedrooms', 'opalestate-pro' ),
|
'description' => esc_html__( 'Enter number of bedrooms', 'opalestate-pro' ),
|
||||||
@ -271,10 +267,10 @@ class Opalestate_Property_MetaBox_Submission {
|
|||||||
'name' => esc_html__( 'Bathrooms', 'opalestate-pro' ),
|
'name' => esc_html__( 'Bathrooms', 'opalestate-pro' ),
|
||||||
'id' => $prefix . 'bathrooms',
|
'id' => $prefix . 'bathrooms',
|
||||||
'type' => 'text',
|
'type' => 'text',
|
||||||
'attributes' => array(
|
'attributes' => [
|
||||||
'type' => 'number',
|
'type' => 'number',
|
||||||
'pattern' => '\d*',
|
'pattern' => '\d*',
|
||||||
),
|
],
|
||||||
'sanitization_cb' => 'absint',
|
'sanitization_cb' => 'absint',
|
||||||
'escape_cb' => 'absint',
|
'escape_cb' => 'absint',
|
||||||
'description' => esc_html__( 'Enter number of bathrooms', 'opalestate-pro' ),
|
'description' => esc_html__( 'Enter number of bathrooms', 'opalestate-pro' ),
|
||||||
@ -289,10 +285,10 @@ class Opalestate_Property_MetaBox_Submission {
|
|||||||
'name' => esc_html__( 'Area Size', 'opalestate-pro' ),
|
'name' => esc_html__( 'Area Size', 'opalestate-pro' ),
|
||||||
'id' => $prefix . 'areasize',
|
'id' => $prefix . 'areasize',
|
||||||
'type' => 'text',
|
'type' => 'text',
|
||||||
'attributes' => array(
|
'attributes' => [
|
||||||
'type' => 'number',
|
'type' => 'number',
|
||||||
'pattern' => '\d*',
|
'pattern' => '\d*',
|
||||||
),
|
],
|
||||||
'sanitization_cb' => 'absint',
|
'sanitization_cb' => 'absint',
|
||||||
'escape_cb' => 'absint',
|
'escape_cb' => 'absint',
|
||||||
'description' => esc_html__( 'Enter size of area in sqft', 'opalestate-pro' ),
|
'description' => esc_html__( 'Enter size of area in sqft', 'opalestate-pro' ),
|
||||||
@ -307,10 +303,10 @@ class Opalestate_Property_MetaBox_Submission {
|
|||||||
'name' => esc_html__( 'Living Rooms', 'opalestate-pro' ),
|
'name' => esc_html__( 'Living Rooms', 'opalestate-pro' ),
|
||||||
'id' => "{$prefix}livingrooms",
|
'id' => "{$prefix}livingrooms",
|
||||||
'type' => 'text',
|
'type' => 'text',
|
||||||
'attributes' => array(
|
'attributes' => [
|
||||||
'type' => 'number',
|
'type' => 'number',
|
||||||
'pattern' => '\d*',
|
'pattern' => '\d*',
|
||||||
),
|
],
|
||||||
'sanitization_cb' => 'absint',
|
'sanitization_cb' => 'absint',
|
||||||
'escape_cb' => 'absint',
|
'escape_cb' => 'absint',
|
||||||
'description' => esc_html__( 'Enter Number of Living Rooms', 'opalestate-pro' ),
|
'description' => esc_html__( 'Enter Number of Living Rooms', 'opalestate-pro' ),
|
||||||
@ -320,10 +316,10 @@ class Opalestate_Property_MetaBox_Submission {
|
|||||||
'name' => esc_html__( 'Kitchens', 'opalestate-pro' ),
|
'name' => esc_html__( 'Kitchens', 'opalestate-pro' ),
|
||||||
'id' => "{$prefix}kitchens",
|
'id' => "{$prefix}kitchens",
|
||||||
'type' => 'text',
|
'type' => 'text',
|
||||||
'attributes' => array(
|
'attributes' => [
|
||||||
'type' => 'number',
|
'type' => 'number',
|
||||||
'pattern' => '\d*',
|
'pattern' => '\d*',
|
||||||
),
|
],
|
||||||
'sanitization_cb' => 'absint',
|
'sanitization_cb' => 'absint',
|
||||||
'escape_cb' => 'absint',
|
'escape_cb' => 'absint',
|
||||||
'description' => esc_html__( 'Enter Number of Kitchens', 'opalestate-pro' ),
|
'description' => esc_html__( 'Enter Number of Kitchens', 'opalestate-pro' ),
|
||||||
@ -333,10 +329,10 @@ class Opalestate_Property_MetaBox_Submission {
|
|||||||
'name' => esc_html__( 'Rooms', 'opalestate-pro' ),
|
'name' => esc_html__( 'Rooms', 'opalestate-pro' ),
|
||||||
'id' => "{$prefix}amountrooms",
|
'id' => "{$prefix}amountrooms",
|
||||||
'type' => 'text',
|
'type' => 'text',
|
||||||
'attributes' => array(
|
'attributes' => [
|
||||||
'type' => 'number',
|
'type' => 'number',
|
||||||
'pattern' => '\d*',
|
'pattern' => '\d*',
|
||||||
),
|
],
|
||||||
'sanitization_cb' => 'absint',
|
'sanitization_cb' => 'absint',
|
||||||
'escape_cb' => 'absint',
|
'escape_cb' => 'absint',
|
||||||
'description' => esc_html__( 'Enter Number of Amount Rooms', 'opalestate-pro' ),
|
'description' => esc_html__( 'Enter Number of Amount Rooms', 'opalestate-pro' ),
|
||||||
@ -375,7 +371,7 @@ class Opalestate_Property_MetaBox_Submission {
|
|||||||
'name' => esc_html__( 'Postal Code / Zip', 'opalestate-pro' ),
|
'name' => esc_html__( 'Postal Code / Zip', 'opalestate-pro' ),
|
||||||
'id' => $prefix . 'zipcode',
|
'id' => $prefix . 'zipcode',
|
||||||
'type' => 'text',
|
'type' => 'text',
|
||||||
'after_row'=> '</div><hr>'
|
'after_row' => '</div><hr>',
|
||||||
|
|
||||||
],
|
],
|
||||||
[
|
[
|
||||||
|
@ -36,7 +36,7 @@ class OpalEstate_Submission {
|
|||||||
*
|
*
|
||||||
*
|
*
|
||||||
*/
|
*/
|
||||||
public $new_attachmenet_ids = array();
|
public $new_attachmenet_ids = [];
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Constructor
|
* Constructor
|
||||||
@ -95,7 +95,7 @@ class OpalEstate_Submission {
|
|||||||
'submission_list' => [
|
'submission_list' => [
|
||||||
'code' => 'submission_list',
|
'code' => 'submission_list',
|
||||||
'label' => esc_html__( 'My Properties', 'opalestate-pro' ),
|
'label' => esc_html__( 'My Properties', 'opalestate-pro' ),
|
||||||
]
|
],
|
||||||
];
|
];
|
||||||
|
|
||||||
foreach ( $shortcodes as $shortcode ) {
|
foreach ( $shortcodes as $shortcode ) {
|
||||||
@ -107,7 +107,7 @@ class OpalEstate_Submission {
|
|||||||
* Is submission page. 'submission_page' option in General Setting
|
* Is submission page. 'submission_page' option in General Setting
|
||||||
*/
|
*/
|
||||||
public function setting_content_tab( $tabs ) {
|
public function setting_content_tab( $tabs ) {
|
||||||
$tabs['submission_page'] = esc_html__( 'Submission Page', 'opalestate-pro' );
|
$tabs['submission_page'] = esc_html__( 'Submission', 'opalestate-pro' );
|
||||||
|
|
||||||
return $tabs;
|
return $tabs;
|
||||||
}
|
}
|
||||||
@ -129,7 +129,7 @@ class OpalEstate_Submission {
|
|||||||
],
|
],
|
||||||
[
|
[
|
||||||
'name' => esc_html__( 'Property Submission Page', 'opalestate-pro' ),
|
'name' => esc_html__( 'Property Submission Page', 'opalestate-pro' ),
|
||||||
'desc' => esc_html__( 'This is the submission page. The <code>[opalestate_submission]</code> shortcode should be on this page.', 'opalestate-pro' ),
|
'desc' => __( 'This is the submission page. The <code>[opalestate_submission]</code> shortcode should be on this page.', 'opalestate-pro' ),
|
||||||
'id' => 'submission_page',
|
'id' => 'submission_page',
|
||||||
'type' => 'select',
|
'type' => 'select',
|
||||||
'options' => opalestate_cmb2_get_post_options( [
|
'options' => opalestate_cmb2_get_post_options( [
|
||||||
@ -137,10 +137,9 @@ class OpalEstate_Submission {
|
|||||||
'numberposts' => -1,
|
'numberposts' => -1,
|
||||||
] ),
|
] ),
|
||||||
],
|
],
|
||||||
|
|
||||||
[
|
[
|
||||||
'name' => esc_html__( 'Show Content Use Not Login', 'opalestate-pro' ),
|
'name' => esc_html__( 'Show Content Use Not Login', 'opalestate-pro' ),
|
||||||
'desc' => esc_html__( 'Show Login/Register form and submission form if user not logined', 'opalestate-pro' ),
|
'desc' => esc_html__( 'Show Login/Register form and submission form if the user is not logged in.', 'opalestate-pro' ),
|
||||||
'id' => 'submission_show_content',
|
'id' => 'submission_show_content',
|
||||||
'type' => 'select',
|
'type' => 'select',
|
||||||
'default' => '',
|
'default' => '',
|
||||||
@ -149,19 +148,16 @@ class OpalEstate_Submission {
|
|||||||
'login_submission' => esc_html__( 'Show Login Form and Submission Form', 'opalestate-pro' ),
|
'login_submission' => esc_html__( 'Show Login Form and Submission Form', 'opalestate-pro' ),
|
||||||
],
|
],
|
||||||
],
|
],
|
||||||
|
|
||||||
[
|
[
|
||||||
'name' => esc_html__( 'Enable Admin Approve', 'opalestate-pro' ),
|
'name' => esc_html__( 'Enable Admin Approve', 'opalestate-pro' ),
|
||||||
'desc' => esc_html__( 'the Property will be auto approve when user submit, if you do not enable it.', 'opalestate-pro' ),
|
'desc' => esc_html__( 'Admin must review and approve before properties are published.', 'opalestate-pro' ),
|
||||||
'id' => 'admin_approve',
|
'id' => 'admin_approve',
|
||||||
'type' => 'checkbox',
|
'type' => 'switch',
|
||||||
|
'options' => [
|
||||||
|
'on' => esc_html__( 'Enable', 'opalestate-pro' ),
|
||||||
|
'off' => esc_html__( 'Disable', 'opalestate-pro' ),
|
||||||
],
|
],
|
||||||
[
|
'default' => 'on',
|
||||||
'name' => esc_html__( 'Enable Require Price', 'opalestate-pro' ),
|
|
||||||
'desc' => esc_html__( 'Enable or Disable require user enter price and price label.', 'opalestate-pro' ),
|
|
||||||
'id' => 'require_input_price',
|
|
||||||
'type' => 'checkbox',
|
|
||||||
|
|
||||||
],
|
],
|
||||||
[
|
[
|
||||||
'name' => esc_html__( 'Submission Tab Settings', 'opalestate-pro' ),
|
'name' => esc_html__( 'Submission Tab Settings', 'opalestate-pro' ),
|
||||||
@ -240,6 +236,30 @@ class OpalEstate_Submission {
|
|||||||
'off' => esc_html__( 'Disable', 'opalestate-pro' ),
|
'off' => esc_html__( 'Disable', 'opalestate-pro' ),
|
||||||
],
|
],
|
||||||
],
|
],
|
||||||
|
[
|
||||||
|
'name' => esc_html__( 'Submission Settings', 'opalestate-pro' ),
|
||||||
|
'id' => 'opalestate_title_submission_settings',
|
||||||
|
'type' => 'title',
|
||||||
|
'before_row' => '<hr>',
|
||||||
|
'after_row' => '<hr>',
|
||||||
|
],
|
||||||
|
[
|
||||||
|
'name' => esc_html__( 'Generate property SKU', 'opalestate-pro' ),
|
||||||
|
'desc' => esc_html__( 'Enable automatic generate property SKU.', 'opalestate-pro' ),
|
||||||
|
'id' => 'enable_submission_generate_sku',
|
||||||
|
'type' => 'switch',
|
||||||
|
'options' => [
|
||||||
|
'on' => esc_html__( 'Enable', 'opalestate-pro' ),
|
||||||
|
'off' => esc_html__( 'Disable', 'opalestate-pro' ),
|
||||||
|
],
|
||||||
|
],
|
||||||
|
[
|
||||||
|
'name' => esc_html__( 'Property SKU format', 'opalestate-pro' ),
|
||||||
|
'desc' => __( 'Use <code>{property_id}</code> to generate the property ID.', 'opalestate-pro' ),
|
||||||
|
'id' => 'submission_sku_format',
|
||||||
|
'type' => 'text',
|
||||||
|
'default' => 'SKU-{property_id}',
|
||||||
|
],
|
||||||
]
|
]
|
||||||
),
|
),
|
||||||
];
|
];
|
||||||
@ -258,8 +278,8 @@ class OpalEstate_Submission {
|
|||||||
* Is submission page. 'submission_page' option in General Setting
|
* Is submission page. 'submission_page' option in General Setting
|
||||||
*/
|
*/
|
||||||
public function render_button_edit() {
|
public function render_button_edit() {
|
||||||
|
|
||||||
global $post, $current_user;
|
global $post, $current_user;
|
||||||
|
|
||||||
wp_get_current_user();
|
wp_get_current_user();
|
||||||
|
|
||||||
if ( $current_user->ID == $post->post_author ) {
|
if ( $current_user->ID == $post->post_author ) {
|
||||||
@ -281,13 +301,12 @@ class OpalEstate_Submission {
|
|||||||
return opalestate_get_option( 'submission_page' ) == $post->ID;
|
return opalestate_get_option( 'submission_page' ) == $post->ID;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
* Register metabox.
|
||||||
*
|
*
|
||||||
*
|
* @return \Opalestate_Property_MetaBox_Submission
|
||||||
*/
|
*/
|
||||||
public function register_metabox() {
|
public function register_metabox() {
|
||||||
|
|
||||||
$metabox = new Opalestate_Property_MetaBox_Submission();
|
$metabox = new Opalestate_Property_MetaBox_Submission();
|
||||||
|
|
||||||
add_filter( 'cmb2_meta_boxes', [ $metabox, 'register_form' ], 9999 );
|
add_filter( 'cmb2_meta_boxes', [ $metabox, 'register_form' ], 9999 );
|
||||||
@ -299,7 +318,6 @@ class OpalEstate_Submission {
|
|||||||
* FrontEnd Submission
|
* FrontEnd Submission
|
||||||
*/
|
*/
|
||||||
public function submission() {
|
public function submission() {
|
||||||
|
|
||||||
global $current_user;
|
global $current_user;
|
||||||
|
|
||||||
if ( ! is_user_logged_in() ) {
|
if ( ! is_user_logged_in() ) {
|
||||||
@ -310,10 +328,10 @@ class OpalEstate_Submission {
|
|||||||
}
|
}
|
||||||
|
|
||||||
if ( isset( $_GET['do'] ) && $_GET['do'] == 'completed' ) {
|
if ( isset( $_GET['do'] ) && $_GET['do'] == 'completed' ) {
|
||||||
|
|
||||||
OpalEstate()->session->set( 'submission', 'addnew' );
|
OpalEstate()->session->set( 'submission', 'addnew' );
|
||||||
|
|
||||||
echo opalestate_load_template_path( 'submission/completed' );
|
echo opalestate_load_template_path( 'submission/completed' );
|
||||||
|
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -324,7 +342,6 @@ class OpalEstate_Submission {
|
|||||||
wp_enqueue_style( 'opalesate-submission' );
|
wp_enqueue_style( 'opalesate-submission' );
|
||||||
wp_enqueue_style( 'opalesate-cmb2-front' );
|
wp_enqueue_style( 'opalesate-cmb2-front' );
|
||||||
|
|
||||||
|
|
||||||
$metabox = $this->register_metabox();
|
$metabox = $this->register_metabox();
|
||||||
$metaboxes = apply_filters( 'cmb2_meta_boxes', [] );
|
$metaboxes = apply_filters( 'cmb2_meta_boxes', [] );
|
||||||
|
|
||||||
@ -352,9 +369,11 @@ class OpalEstate_Submission {
|
|||||||
|
|
||||||
if ( $post_id && ! opalestate_is_own_property( $post_id, $current_user->ID ) ) {
|
if ( $post_id && ! opalestate_is_own_property( $post_id, $current_user->ID ) ) {
|
||||||
echo opalestate_load_template_path( 'parts/has-warning' );
|
echo opalestate_load_template_path( 'parts/has-warning' );
|
||||||
|
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
return opalestate_load_template_path( 'submission/submission-form',
|
return opalestate_load_template_path( 'submission/submission-form',
|
||||||
[
|
[
|
||||||
'post_id' => $post_id,
|
'post_id' => $post_id,
|
||||||
@ -369,6 +388,7 @@ class OpalEstate_Submission {
|
|||||||
*/
|
*/
|
||||||
public function cmb2_get_metabox() {
|
public function cmb2_get_metabox() {
|
||||||
$object_id = 'fake-oject-id';
|
$object_id = 'fake-oject-id';
|
||||||
|
|
||||||
return cmb2_get_metabox( OPALESTATE_PROPERTY_PREFIX . 'front', $object_id );
|
return cmb2_get_metabox( OPALESTATE_PROPERTY_PREFIX . 'front', $object_id );
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -388,13 +408,9 @@ class OpalEstate_Submission {
|
|||||||
|
|
||||||
// Setup and sanitize data
|
// Setup and sanitize data
|
||||||
if ( isset( $_POST[ $prefix . 'title' ] ) && ! $blocked && $user_id ) {
|
if ( isset( $_POST[ $prefix . 'title' ] ) && ! $blocked && $user_id ) {
|
||||||
|
|
||||||
$metabox = $this->register_metabox();
|
$metabox = $this->register_metabox();
|
||||||
$metaboxes = apply_filters( 'cmb2_meta_boxes', [] );
|
$metaboxes = apply_filters( 'cmb2_meta_boxes', [] );
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
$post_id = ! empty( $_POST['post_id'] ) ? absint( $_POST['post_id'] ) : false;
|
$post_id = ! empty( $_POST['post_id'] ) ? absint( $_POST['post_id'] ) : false;
|
||||||
|
|
||||||
if ( $post_id ) {
|
if ( $post_id ) {
|
||||||
@ -403,12 +419,9 @@ class OpalEstate_Submission {
|
|||||||
do_action( 'opalestate_process_submission_before' );
|
do_action( 'opalestate_process_submission_before' );
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
$review_before = opalestate_get_option( 'admin_approve' );
|
|
||||||
|
|
||||||
$post_status = 'pending';
|
$post_status = 'pending';
|
||||||
|
|
||||||
if ( ! $review_before ) {
|
if ( 'on' != opalestate_get_option( 'admin_approve', 'on' ) ) {
|
||||||
$post_status = 'publish';
|
$post_status = 'publish';
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -424,7 +437,6 @@ class OpalEstate_Submission {
|
|||||||
$post_content = isset( $_POST[ $prefix . 'text' ] ) ? wp_kses( $_POST[ $prefix . 'text' ],
|
$post_content = isset( $_POST[ $prefix . 'text' ] ) ? wp_kses( $_POST[ $prefix . 'text' ],
|
||||||
'<b><strong><i><em><h1><h2><h3><h4><h5><h6><pre><code><span><p>' ) : '';
|
'<b><strong><i><em><h1><h2><h3><h4><h5><h6><pre><code><span><p>' ) : '';
|
||||||
|
|
||||||
|
|
||||||
$data = [
|
$data = [
|
||||||
'post_title' => sanitize_text_field( $_POST[ $prefix . 'title' ] ),
|
'post_title' => sanitize_text_field( $_POST[ $prefix . 'title' ] ),
|
||||||
'post_author' => $user_id,
|
'post_author' => $user_id,
|
||||||
@ -458,9 +470,9 @@ class OpalEstate_Submission {
|
|||||||
if ( empty( $data['post_title'] ) || empty( $data['post_author'] ) ) {
|
if ( empty( $data['post_title'] ) || empty( $data['post_author'] ) ) {
|
||||||
return opalestate_output_msg_json( false,
|
return opalestate_output_msg_json( false,
|
||||||
__( 'Please enter data for all require fields before submitting', 'opalestate-pro' ),
|
__( 'Please enter data for all require fields before submitting', 'opalestate-pro' ),
|
||||||
array(
|
[
|
||||||
'heading' => esc_html__('Submission Information' ,'opalestate-pro')
|
'heading' => esc_html__( 'Submission Information', 'opalestate-pro' ),
|
||||||
)) ;
|
] );
|
||||||
}
|
}
|
||||||
|
|
||||||
$post_id = wp_insert_post( $data, true );
|
$post_id = wp_insert_post( $data, true );
|
||||||
@ -495,8 +507,16 @@ class OpalEstate_Submission {
|
|||||||
delete_post_thumbnail( $post_id );
|
delete_post_thumbnail( $post_id );
|
||||||
}
|
}
|
||||||
|
|
||||||
// remove meta field;
|
// Remove meta field.
|
||||||
update_post_meta( $post_id, $prefix . 'featured_image', null );
|
update_post_meta( $post_id, $prefix . 'featured_image', null );
|
||||||
|
|
||||||
|
// Update SKU.
|
||||||
|
if ( 'on' == opalestate_get_option( 'enable_submission_generate_sku', 'off' ) ) {
|
||||||
|
$_sku = str_replace( '{property_id}', $post_id, opalestate_options( 'submission_sku_format', 'SKU-{property_id}' ) );
|
||||||
|
$sku_generated = apply_filters( 'opalestate_submission_sku_generated', sanitize_text_field( $_sku ) );
|
||||||
|
update_post_meta( $post_id, $prefix . 'sku', $sku_generated );
|
||||||
|
}
|
||||||
|
|
||||||
//redirect
|
//redirect
|
||||||
$_SESSION['messages'][] = [ 'success', esc_html__( 'Property has been successfully updated.', 'opalestate-pro' ) ];
|
$_SESSION['messages'][] = [ 'success', esc_html__( 'Property has been successfully updated.', 'opalestate-pro' ) ];
|
||||||
|
|
||||||
@ -519,26 +539,24 @@ class OpalEstate_Submission {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
//
|
|
||||||
|
|
||||||
return opalestate_output_msg_json( true,
|
return opalestate_output_msg_json( true,
|
||||||
$message,
|
$message,
|
||||||
array(
|
[
|
||||||
'heading' => esc_html__( 'Submission Information', 'opalestate-pro' ),
|
'heading' => esc_html__( 'Submission Information', 'opalestate-pro' ),
|
||||||
'redirect' => opalestate_submssion_page( $post_id, array('do' => 'completed') )
|
'redirect' => opalestate_submssion_page( $post_id, [ 'do' => 'completed' ] ),
|
||||||
)) ;
|
] );
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
return opalestate_output_msg_json( fales,
|
return opalestate_output_msg_json( fales,
|
||||||
__( 'Currently, your account was blocked, please keep contact admin to resolve this!.', 'opalestate-pro' ),
|
__( 'Currently, your account was blocked, please keep contact admin to resolve this!.', 'opalestate-pro' ),
|
||||||
array('heading' => esc_html__('Submission Information' ,'opalestate-pro') )
|
[ 'heading' => esc_html__( 'Submission Information', 'opalestate-pro' ) ]
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
return opalestate_output_msg_json( fales,
|
return opalestate_output_msg_json( fales,
|
||||||
__( 'Sorry! Your submitted datcould not save a at this time', 'opalestate-pro' ),
|
__( 'Sorry! Your submitted datcould not save a at this time', 'opalestate-pro' ),
|
||||||
array('heading' => esc_html__('Submission Information', 'opalestate-pro') )
|
[ 'heading' => esc_html__( 'Submission Information', 'opalestate-pro' ) ]
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -552,8 +570,9 @@ class OpalEstate_Submission {
|
|||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
* Process upload files.
|
||||||
*
|
*
|
||||||
*
|
* @param int $post_id Post ID.
|
||||||
*/
|
*/
|
||||||
private function process_upload_files( $post_id ) {
|
private function process_upload_files( $post_id ) {
|
||||||
|
|
||||||
@ -561,10 +580,10 @@ class OpalEstate_Submission {
|
|||||||
if ( isset( $_FILES ) && ! empty( $_FILES ) ) {
|
if ( isset( $_FILES ) && ! empty( $_FILES ) ) {
|
||||||
|
|
||||||
///
|
///
|
||||||
$fields = array(
|
$fields = [
|
||||||
$this->get_field_name( 'gallery' ),
|
$this->get_field_name( 'gallery' ),
|
||||||
$this->get_field_name( 'featured_image' ),
|
$this->get_field_name( 'featured_image' ),
|
||||||
);
|
];
|
||||||
|
|
||||||
foreach ( $_FILES as $key => $value ) {
|
foreach ( $_FILES as $key => $value ) {
|
||||||
// allow processing in fixed collection
|
// allow processing in fixed collection
|
||||||
@ -573,26 +592,25 @@ class OpalEstate_Submission {
|
|||||||
|
|
||||||
/// /////
|
/// /////
|
||||||
if ( isset( $ufile['name'] ) && is_array( $ufile['name'] ) ) {
|
if ( isset( $ufile['name'] ) && is_array( $ufile['name'] ) ) {
|
||||||
$output = array();
|
$output = [];
|
||||||
|
|
||||||
foreach ( $ufile['name'] as $f_key => $f_value ) {
|
foreach ( $ufile['name'] as $f_key => $f_value ) {
|
||||||
$loop_file = array(
|
$loop_file = [
|
||||||
'name' => $ufile['name'][ $f_key ],
|
'name' => $ufile['name'][ $f_key ],
|
||||||
'type' => $ufile['type'][ $f_key ],
|
'type' => $ufile['type'][ $f_key ],
|
||||||
'tmp_name' => $ufile['tmp_name'][ $f_key ],
|
'tmp_name' => $ufile['tmp_name'][ $f_key ],
|
||||||
'error' => $ufile['error'][ $f_key ],
|
'error' => $ufile['error'][ $f_key ],
|
||||||
'size' => $ufile['size'][$f_key]
|
'size' => $ufile['size'][ $f_key ],
|
||||||
);
|
];
|
||||||
$new_atm = $this->upload_image( $loop_file, $post_id );
|
$new_atm = $this->upload_image( $loop_file, $post_id );
|
||||||
if ( $new_atm ) {
|
if ( $new_atm ) {
|
||||||
$_POST[$key] = isset($_POST[$key]) ? $_POST[$key] : array();
|
$_POST[ $key ] = isset( $_POST[ $key ] ) ? $_POST[ $key ] : [];
|
||||||
$_POST[ $key ][ $new_atm['attachment_id'] ] = $new_atm['url'];
|
$_POST[ $key ][ $new_atm['attachment_id'] ] = $new_atm['url'];
|
||||||
$this->new_attachmenet_ids[ $new_atm['attachment_id'] ] = $new_atm['attachment_id'];
|
$this->new_attachmenet_ids[ $new_atm['attachment_id'] ] = $new_atm['attachment_id'];
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
} ///
|
||||||
///
|
|
||||||
elseif ( isset( $ufile['name'] ) ) {
|
elseif ( isset( $ufile['name'] ) ) {
|
||||||
$new_atm = $this->upload_image( $ufile, $post_id );
|
$new_atm = $this->upload_image( $ufile, $post_id );
|
||||||
if ( $new_atm ) {
|
if ( $new_atm ) {
|
||||||
@ -605,28 +623,26 @@ class OpalEstate_Submission {
|
|||||||
}
|
}
|
||||||
|
|
||||||
// for group files
|
// for group files
|
||||||
$fields = array(
|
$fields = [
|
||||||
$this->get_field_name('public_floor_group')
|
$this->get_field_name( 'public_floor_group' ),
|
||||||
);
|
];
|
||||||
|
|
||||||
|
|
||||||
foreach ( $_FILES as $key => $value ) {
|
foreach ( $_FILES as $key => $value ) {
|
||||||
|
|
||||||
if ( in_array( $key, $fields ) ) {
|
if ( in_array( $key, $fields ) ) {
|
||||||
$ufile = $_FILES[ $key ];
|
$ufile = $_FILES[ $key ];
|
||||||
|
|
||||||
if ( isset( $ufile['name'] ) && is_array( $ufile['name'] ) ) {
|
if ( isset( $ufile['name'] ) && is_array( $ufile['name'] ) ) {
|
||||||
$output = array();
|
$output = [];
|
||||||
foreach ( $ufile['name'] as $f_key => $f_value ) {
|
foreach ( $ufile['name'] as $f_key => $f_value ) {
|
||||||
|
|
||||||
foreach ( $f_value as $u_key => $u_v ) {
|
foreach ( $f_value as $u_key => $u_v ) {
|
||||||
$loop_file = array(
|
$loop_file = [
|
||||||
'name' => $ufile['name'][ $f_key ][ $u_key ],
|
'name' => $ufile['name'][ $f_key ][ $u_key ],
|
||||||
'type' => $ufile['type'][ $f_key ][ $u_key ],
|
'type' => $ufile['type'][ $f_key ][ $u_key ],
|
||||||
'tmp_name' => $ufile['tmp_name'][ $f_key ][ $u_key ],
|
'tmp_name' => $ufile['tmp_name'][ $f_key ][ $u_key ],
|
||||||
'error' => $ufile['error'][ $f_key ][ $u_key ],
|
'error' => $ufile['error'][ $f_key ][ $u_key ],
|
||||||
'size' => $ufile['size'][$f_key][$u_key]
|
'size' => $ufile['size'][ $f_key ][ $u_key ],
|
||||||
);
|
];
|
||||||
|
|
||||||
$new_atm = $this->upload_image( $loop_file, $post_id );
|
$new_atm = $this->upload_image( $loop_file, $post_id );
|
||||||
if ( $new_atm ) {
|
if ( $new_atm ) {
|
||||||
@ -642,7 +658,6 @@ class OpalEstate_Submission {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Process upload images for properties
|
* Process upload images for properties
|
||||||
*/
|
*/
|
||||||
|
@ -218,6 +218,10 @@ add_action( 'opalestate_single_property_preview', 'opalestate_property_preview',
|
|||||||
|
|
||||||
|
|
||||||
function opalestate_property_request_viewing_button( $islink = false ) {
|
function opalestate_property_request_viewing_button( $islink = false ) {
|
||||||
|
if ( 'on' != opalestate_get_option( 'enable_single_request_viewing', 'on' ) ) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
$class = $islink ? 'btn-link' : 'btn btn-primary';
|
$class = $islink ? 'btn-link' : 'btn btn-primary';
|
||||||
if ( ! is_user_logged_in() ) {
|
if ( ! is_user_logged_in() ) {
|
||||||
$class .= ' opalestate-need-login';
|
$class .= ' opalestate-need-login';
|
||||||
@ -260,6 +264,10 @@ add_action( 'opalestate_single_property_layout', 'opalestate_single_property_lay
|
|||||||
* Forms
|
* Forms
|
||||||
*/
|
*/
|
||||||
function opalestate_property_request_view_form() {
|
function opalestate_property_request_view_form() {
|
||||||
|
if ( 'on' != opalestate_get_option( 'enable_single_request_viewing', 'on' ) ) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
if ( ! is_user_logged_in() ) {
|
if ( ! is_user_logged_in() ) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
@ -3,7 +3,7 @@
|
|||||||
* Plugin Name: Opal Estate Pro
|
* Plugin Name: Opal Estate Pro
|
||||||
* Plugin URI: https://wpdocs.gitbook.io/opal-estate/
|
* 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.
|
* Description: Opal Real Estate Plugin is an ideal solution and brilliant choice for you to set up a professional estate website.
|
||||||
* Version: 1.1.7
|
* Version: 1.1.8
|
||||||
* Author: WPOPAL
|
* Author: WPOPAL
|
||||||
* Author URI: http://www.wpopal.com
|
* Author URI: http://www.wpopal.com
|
||||||
* Requires at least: 4.6
|
* Requires at least: 4.6
|
||||||
@ -151,7 +151,7 @@ if ( ! class_exists( 'OpalEstate' ) ) {
|
|||||||
*/
|
*/
|
||||||
public function __clone() {
|
public function __clone() {
|
||||||
// Cloning instances of the class is forbidden
|
// Cloning instances of the class is forbidden
|
||||||
_doing_it_wrong( __FUNCTION__, esc_html__( 'Cheatin’ huh?', 'opalestate-pro' ), '1.1.7' );
|
_doing_it_wrong( __FUNCTION__, esc_html__( 'Cheatin’ huh?', 'opalestate-pro' ), '1.1.8' );
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -160,7 +160,7 @@ if ( ! class_exists( 'OpalEstate' ) ) {
|
|||||||
public function setup_constants() {
|
public function setup_constants() {
|
||||||
// Plugin version
|
// Plugin version
|
||||||
if ( ! defined( 'OPALESTATE_VERSION' ) ) {
|
if ( ! defined( 'OPALESTATE_VERSION' ) ) {
|
||||||
define( 'OPALESTATE_VERSION', '1.1.7' );
|
define( 'OPALESTATE_VERSION', '1.1.8' );
|
||||||
}
|
}
|
||||||
|
|
||||||
// Plugin Folder Path
|
// Plugin Folder Path
|
||||||
|
13
readme.txt
13
readme.txt
@ -1,10 +1,10 @@
|
|||||||
=== Opal Estate Pro - Property Management and Submission ===
|
=== Opal Estate Pro - Property Management and Submission ===
|
||||||
Contributors: wpopal, ndoublehwp
|
Contributors: wpopal
|
||||||
Donate link: https://wpdocs.gitbook.io/opal-estate/
|
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
|
Tags: estate, property, opalestate, house for rent, agency for lease, estate submission, agents estate property, property marketplace
|
||||||
Requires at least: 4.6
|
Requires at least: 4.6
|
||||||
Tested up to: 5.2.3
|
Tested up to: 5.2.3
|
||||||
Stable tag: 1.1.7
|
Stable tag: 1.1.8
|
||||||
License: GPLv3
|
License: GPLv3
|
||||||
License URI: http://www.gnu.org/licenses/gpl-3.0.html
|
License URI: http://www.gnu.org/licenses/gpl-3.0.html
|
||||||
|
|
||||||
@ -120,6 +120,7 @@ The plugin will not make you disappointed with ease of use, friendly & flexible
|
|||||||
= WHAT IS NEW IN PRO VERSION =
|
= WHAT IS NEW IN PRO VERSION =
|
||||||
* Suport API use to develop great web app and mobile app .
|
* Suport API use to develop great web app and mobile app .
|
||||||
* Agency Agency and allow edit profile with user having Opal Estate Agency Role. Display Properties and members of agency
|
* Agency Agency and allow edit profile with user having Opal Estate Agency Role. Display Properties and members of agency
|
||||||
|
* Implement Google Map with custom styles.
|
||||||
* Implement Google Capcha for all Email Form
|
* Implement Google Capcha for all Email Form
|
||||||
* Implement Saved Search Form allowing user save theirs result as loved collection. They are managed with Saved Search Menu of user dashboard
|
* Implement Saved Search Form allowing user save theirs result as loved collection. They are managed with Saved Search Menu of user dashboard
|
||||||
* Supported Widgets working with Elementor page builder
|
* Supported Widgets working with Elementor page builder
|
||||||
@ -155,6 +156,14 @@ This section describes how to install the plugin and get it working.
|
|||||||
* System tickets support 24/7 available : [free support](https://wpopal.ticksy.com/ "Visit the Plugin support Page")
|
* System tickets support 24/7 available : [free support](https://wpopal.ticksy.com/ "Visit the Plugin support Page")
|
||||||
|
|
||||||
== Changelog ==
|
== Changelog ==
|
||||||
|
= 1.1.8 - 2019-10-31 =
|
||||||
|
* Fixes - Submission settings.
|
||||||
|
* Fixes - Order settings in the search page.
|
||||||
|
* Fixes - Single property image size.
|
||||||
|
* Added - Automatic generate property SKU.
|
||||||
|
* Added - Enable/Disable Request Viewing.
|
||||||
|
|
||||||
|
|
||||||
= 1.1.7 - 2019-10-30 =
|
= 1.1.7 - 2019-10-30 =
|
||||||
* Added - Google Map styles.
|
* Added - Google Map styles.
|
||||||
|
|
||||||
|
@ -2,7 +2,9 @@
|
|||||||
<?php
|
<?php
|
||||||
global $property;
|
global $property;
|
||||||
$galleries = $property->get_gallery();
|
$galleries = $property->get_gallery();
|
||||||
$image_size = opalestate_get_option( 'opalestate_thumbnail_size', 'medium' );
|
$thumb_image_size = opalestate_get_option( 'opalestate_thumbnail_size', 'medium' );
|
||||||
|
$single_image_size = opalestate_get_option( 'featured_image_size', 'full' );
|
||||||
|
|
||||||
if ( isset( $galleries ) && $galleries ):
|
if ( isset( $galleries ) && $galleries ):
|
||||||
?>
|
?>
|
||||||
<?php
|
<?php
|
||||||
@ -45,13 +47,13 @@
|
|||||||
<div class="swiper-wrapper opalestate-gallery">
|
<div class="swiper-wrapper opalestate-gallery">
|
||||||
<?php if ( has_post_thumbnail() ): ?>
|
<?php if ( has_post_thumbnail() ): ?>
|
||||||
<div class="swiper-slide">
|
<div class="swiper-slide">
|
||||||
<?php the_post_thumbnail( opalestate_get_option( 'featured_image_size', 'full' ) ); ?>
|
<?php the_post_thumbnail( $single_image_size ); ?>
|
||||||
</div>
|
</div>
|
||||||
<?php endif; ?>
|
<?php endif; ?>
|
||||||
<?php if ( isset( $galleries ) && is_array( $galleries ) && $galleries ): ?>
|
<?php if ( isset( $galleries ) && is_array( $galleries ) && $galleries ): ?>
|
||||||
<?php foreach ( $galleries as $src ): ?>
|
<?php foreach ( $galleries as $key => $src ): ?>
|
||||||
<div class="swiper-slide">
|
<div class="swiper-slide">
|
||||||
<img src="<?php echo esc_url( $src ); ?>" alt="gallery">
|
<img src="<?php echo esc_url( wp_get_attachment_image_url( $key, $single_image_size ) ); ?>" alt="gallery">
|
||||||
</div>
|
</div>
|
||||||
<?php endforeach; ?>
|
<?php endforeach; ?>
|
||||||
<?php endif; ?>
|
<?php endif; ?>
|
||||||
@ -76,14 +78,14 @@
|
|||||||
<?php if ( has_post_thumbnail() ):
|
<?php if ( has_post_thumbnail() ):
|
||||||
?>
|
?>
|
||||||
<div class="swiper-slide">
|
<div class="swiper-slide">
|
||||||
<div style="background-image:url('<?php echo wp_get_attachment_thumb_url( get_post_thumbnail_id(), $image_size ); ?>');" class="thumb-nav"></div>
|
<div style="background-image:url('<?php echo wp_get_attachment_thumb_url( get_post_thumbnail_id(), $thumb_image_size ); ?>');" class="thumb-nav"></div>
|
||||||
</div>
|
</div>
|
||||||
<?php endif; ?>
|
<?php endif; ?>
|
||||||
|
|
||||||
<?php if ( isset( $galleries ) && is_array( $galleries ) && $galleries ): ?>
|
<?php if ( isset( $galleries ) && is_array( $galleries ) && $galleries ): ?>
|
||||||
<?php foreach ( $galleries as $key => $src ): ?>
|
<?php foreach ( $galleries as $key => $src ): ?>
|
||||||
<div class="swiper-slide">
|
<div class="swiper-slide">
|
||||||
<div style="background-image:url('<?php echo wp_get_attachment_image_url( $key, $image_size ); ?>');" class="thumb-nav"></div>
|
<div style="background-image:url('<?php echo wp_get_attachment_image_url( $key, $thumb_image_size ); ?>');" class="thumb-nav"></div>
|
||||||
</div>
|
</div>
|
||||||
<?php endforeach; ?>
|
<?php endforeach; ?>
|
||||||
<?php endif; ?>
|
<?php endif; ?>
|
||||||
|
@ -4,8 +4,8 @@
|
|||||||
global $property;
|
global $property;
|
||||||
$galleries = $property->get_gallery();
|
$galleries = $property->get_gallery();
|
||||||
|
|
||||||
|
$single_image_size = opalestate_get_option( 'featured_image_size', 'full' );
|
||||||
|
|
||||||
$image_size = opalestate_get_option( 'opalestate_thumbnail_size' );
|
|
||||||
if ( ! empty( $galleries ) && isset( $galleries ) ):
|
if ( ! empty( $galleries ) && isset( $galleries ) ):
|
||||||
?>
|
?>
|
||||||
<?php
|
<?php
|
||||||
@ -32,12 +32,12 @@
|
|||||||
<div class="swiper-wrapper">
|
<div class="swiper-wrapper">
|
||||||
|
|
||||||
<?php if ( has_post_thumbnail() ): ?>
|
<?php if ( has_post_thumbnail() ): ?>
|
||||||
<div class="swiper-slide"><?php the_post_thumbnail( opalestate_get_option( 'featured_image_size', 'full' ) ); ?></div>
|
<div class="swiper-slide"><?php the_post_thumbnail( $single_image_size ); ?></div>
|
||||||
<?php endif; ?>
|
<?php endif; ?>
|
||||||
|
|
||||||
<?php if ( isset( $galleries ) && is_array( $galleries ) ): ?>
|
<?php if ( isset( $galleries ) && is_array( $galleries ) ): ?>
|
||||||
<?php foreach ( $galleries as $src ): ?>
|
<?php foreach ( $galleries as $key => $src ): ?>
|
||||||
<div class="swiper-slide"><img src="<?php echo esc_url( $src ); ?>" alt="gallery"></div>
|
<div class="swiper-slide"><img src="<?php echo esc_url( wp_get_attachment_image_url( $key, $single_image_size ) ); ?>" alt="gallery"></div>
|
||||||
<?php endforeach; ?>
|
<?php endforeach; ?>
|
||||||
<?php endif; ?>
|
<?php endif; ?>
|
||||||
|
|
||||||
@ -48,7 +48,7 @@
|
|||||||
|
|
||||||
<?php if ( has_post_thumbnail() ): ?>
|
<?php if ( has_post_thumbnail() ): ?>
|
||||||
<div class="property-thumbnail">
|
<div class="property-thumbnail">
|
||||||
<?php the_post_thumbnail( 'full' ); ?>
|
<?php the_post_thumbnail( $single_image_size ); ?>
|
||||||
</div>
|
</div>
|
||||||
<?php endif; ?>
|
<?php endif; ?>
|
||||||
<?php endif; ?>
|
<?php endif; ?>
|
||||||
|
@ -7,7 +7,12 @@ $type = OpalEstate()->session->get( 'submission' );
|
|||||||
<div class="inner">
|
<div class="inner">
|
||||||
<?php if ( $type == 'addnew' ): ?>
|
<?php if ( $type == 'addnew' ): ?>
|
||||||
<div class="addnew-msg">
|
<div class="addnew-msg">
|
||||||
<h5><?php echo esc_html__('Thanks for your submission, it takes some time to review the property.'); ?></h5>
|
<?php if ( 'on' != opalestate_get_option( 'admin_approve', 'on' ) ) : ?>
|
||||||
|
<h5><?php esc_html_e( 'Thanks for your submission, your property is published.', 'opalestate-pro' ); ?></h5>
|
||||||
|
<?php else : ?>
|
||||||
|
<h5><?php esc_html_e( 'Thanks for your submission, it takes some time to review the property.', 'opalestate-pro' ); ?></h5>
|
||||||
|
<?php endif; ?>
|
||||||
|
|
||||||
<?php echo sprintf( esc_html__( 'Click to %s here %s to back to your listing or %s edit %s this.', 'opalestate-pro' ),
|
<?php echo sprintf( esc_html__( 'Click to %s here %s to back to your listing or %s edit %s this.', 'opalestate-pro' ),
|
||||||
'<a href="' . opalestate_submssion_list_page() . '">', '</a>',
|
'<a href="' . opalestate_submssion_list_page() . '">', '</a>',
|
||||||
'<a href="' . opalestate_submssion_page( $post_id ) . '">', '</a>'
|
'<a href="' . opalestate_submssion_page( $post_id ) . '">', '</a>'
|
||||||
@ -15,7 +20,7 @@ $type = OpalEstate()->session->get( 'submission' );
|
|||||||
</div>
|
</div>
|
||||||
<?php else : ?>
|
<?php else : ?>
|
||||||
<div class="edit-msg">
|
<div class="edit-msg">
|
||||||
<?php echo esc_html__('Your property is completed success.'); ?>
|
<?php esc_html_e( 'Your property is completed success.', 'opalestate-pro' ); ?>
|
||||||
<?php echo sprintf( esc_html__( 'Click to %s here %s to back to your listing or %s edit %s this.', 'opalestate-pro' ),
|
<?php echo sprintf( esc_html__( 'Click to %s here %s to back to your listing or %s edit %s this.', 'opalestate-pro' ),
|
||||||
'<a href="' . opalestate_submssion_list_page() . '">', '</a>',
|
'<a href="' . opalestate_submssion_list_page() . '">', '</a>',
|
||||||
'<a href="' . opalestate_submssion_page( $post_id ) . '">', '</a>'
|
'<a href="' . opalestate_submssion_page( $post_id ) . '">', '</a>'
|
||||||
@ -24,4 +29,5 @@ $type = OpalEstate()->session->get( 'submission' );
|
|||||||
<?php endif; ?>
|
<?php endif; ?>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<?php OpalEstate()->session->set( 'submission', null ); ?>
|
<?php OpalEstate()->session->set( 'submission', null ); ?>
|
Loading…
Reference in New Issue
Block a user