2019-10-09 12:23:19 +02:00
|
|
|
<?php
|
|
|
|
// Exit if accessed directly.
|
|
|
|
if ( ! defined( 'ABSPATH' ) ) {
|
|
|
|
exit;
|
|
|
|
}
|
|
|
|
|
|
|
|
/**
|
|
|
|
* Property_Api
|
|
|
|
*
|
|
|
|
* @since 1.0.0
|
|
|
|
* @package Opalestate_Search_Form_Api
|
|
|
|
*/
|
|
|
|
class Opalestate_Search_Form_Api extends Opalestate_Base_API {
|
|
|
|
|
|
|
|
/**
|
|
|
|
* The unique identifier of the route resource.
|
|
|
|
*
|
|
|
|
* @since 1.0.0
|
|
|
|
* @access public
|
|
|
|
* @var string $base .
|
|
|
|
*/
|
|
|
|
public $base = '/search-form';
|
|
|
|
|
|
|
|
/**
|
|
|
|
* Register Routes
|
|
|
|
*
|
|
|
|
* Register all CURD actions with POST/GET/PUT and calling function for each
|
|
|
|
*
|
|
|
|
* @since 1.0
|
|
|
|
*
|
|
|
|
*/
|
|
|
|
public function register_routes() {
|
|
|
|
register_rest_route(
|
|
|
|
$this->namespace,
|
|
|
|
'/' . $this->base,
|
|
|
|
[
|
|
|
|
[
|
|
|
|
'methods' => WP_REST_Server::READABLE,
|
|
|
|
'callback' => [ $this, 'get_fields' ],
|
2019-10-22 12:07:45 +02:00
|
|
|
'permission_callback' => [ $this, 'get_items_permissions_check' ],
|
2019-10-09 12:23:19 +02:00
|
|
|
// 'args' => $this->get_search_params(),
|
|
|
|
],
|
|
|
|
]
|
|
|
|
);
|
|
|
|
}
|
|
|
|
|
|
|
|
/**
|
|
|
|
* Get List Of Properties
|
|
|
|
*
|
|
|
|
* Based on request to get collection
|
|
|
|
*
|
|
|
|
* @return WP_REST_Response is json data
|
|
|
|
* @since 1.0
|
|
|
|
*
|
|
|
|
*/
|
|
|
|
public function get_fields( $request ) {
|
|
|
|
$response = [];
|
|
|
|
|
2019-10-10 06:10:23 +02:00
|
|
|
$fields = [];
|
|
|
|
$fields['min_price'] = [
|
|
|
|
'enable' => opalestate_is_enable_price_field(),
|
|
|
|
'default' => opalestate_options( 'search_min_price', 0 ),
|
|
|
|
];
|
|
|
|
|
|
|
|
$fields['max_price'] = [
|
|
|
|
'enable' => opalestate_is_enable_price_field(),
|
|
|
|
'default' => opalestate_options( 'search_max_price', 10000000 ),
|
|
|
|
];
|
|
|
|
|
|
|
|
$fields['min_area'] = [
|
|
|
|
'enable' => opalestate_is_enable_areasize_field(),
|
|
|
|
'default' => opalestate_options( 'search_min_area', 0 ),
|
|
|
|
];
|
|
|
|
|
|
|
|
$fields['max_area'] = [
|
|
|
|
'enable' => opalestate_is_enable_areasize_field(),
|
|
|
|
'default' => opalestate_options( 'search_max_area', 1000 ),
|
|
|
|
];
|
|
|
|
|
|
|
|
$fields['search_text'] = [
|
|
|
|
'default' => '',
|
|
|
|
];
|
|
|
|
|
|
|
|
$fields['location_text'] = [
|
|
|
|
'default' => '',
|
|
|
|
];
|
|
|
|
|
|
|
|
$fields['geo_long'] = [
|
|
|
|
'default' => '',
|
|
|
|
];
|
|
|
|
|
|
|
|
$fields['geo_lat'] = [
|
|
|
|
'default' => '',
|
|
|
|
];
|
|
|
|
|
|
|
|
$fields['types'] = [
|
|
|
|
'enable' => true,
|
|
|
|
'default' => -1,
|
|
|
|
'data' => Opalestate_Taxonomy_Type::get_list(),
|
|
|
|
];
|
|
|
|
|
|
|
|
$fields['status'] = [
|
|
|
|
'enable' => true,
|
|
|
|
'default' => -1,
|
|
|
|
'data' => Opalestate_Taxonomy_Status::get_list(),
|
|
|
|
];
|
|
|
|
|
|
|
|
$fields['cat'] = [
|
|
|
|
'enable' => true,
|
|
|
|
'default' => -1,
|
|
|
|
'data' => Opalestate_Taxonomy_Categories::get_list(),
|
|
|
|
];
|
|
|
|
|
|
|
|
$fields['location'] = [
|
|
|
|
'enable' => true,
|
|
|
|
'default' => -1,
|
|
|
|
'data' => Opalestate_Taxonomy_Location::get_list(),
|
|
|
|
];
|
|
|
|
|
|
|
|
$fields['city'] = [
|
|
|
|
'enable' => true,
|
|
|
|
'default' => -1,
|
|
|
|
'data' => Opalestate_Taxonomy_City::get_list(),
|
|
|
|
];
|
|
|
|
|
|
|
|
$fields['state'] = [
|
|
|
|
'enable' => true,
|
|
|
|
'default' => -1,
|
|
|
|
'data' => Opalestate_Taxonomy_State::get_list(),
|
|
|
|
];
|
|
|
|
|
|
|
|
$fields['amenities'] = [
|
|
|
|
'enable' => true,
|
|
|
|
'default' => [],
|
|
|
|
'data' => Opalestate_Taxonomy_Amenities::get_list(),
|
|
|
|
];
|
|
|
|
|
2019-10-10 11:56:14 +02:00
|
|
|
$info_fields = OpalEstate_Search::get_setting_search_fields();
|
|
|
|
$info = [];
|
|
|
|
if ( $info_fields ) {
|
|
|
|
foreach ( $info_fields as $field_key => $field_name ) {
|
|
|
|
$info[] = [
|
|
|
|
'key' => $field_key,
|
|
|
|
'name' => $field_name,
|
|
|
|
];
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
$fields['info'] = $info;
|
2019-10-10 06:10:23 +02:00
|
|
|
$response['fields'] = $fields;
|
2019-10-09 12:23:19 +02:00
|
|
|
|
|
|
|
return $this->get_response( 200, $response );
|
|
|
|
}
|
|
|
|
}
|