1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129
<?php
if ( ! defined( 'ABSPATH' ) ) {
exit;
}
class EPL_Widget_Property_Search extends WP_Widget {
public function __construct() {
parent::__construct( false, $name = __( 'EPL - Listing Search', 'easy-property-listings' ), array( 'description' => __( 'Search listings.', 'easy-property-listings' ) ) );
}
public function widget( $args, $instance ) {
$defaults = epl_search_get_defaults();
$instance = wp_parse_args( (array) $instance, $defaults );
foreach ( $args as $arg_key => $arg_val ) {
${$arg_key} = $arg_val;
}
echo $before_widget;
$title = apply_filters( 'widget_title', $instance['title'] );
if ( $title ) {
echo $before_title . esc_html( $title ) . $after_title;
}
echo epl_shortcode_listing_search_callback( $instance );
echo $after_widget;
}
public function update( $new_instance, $old_instance ) {
$instance = $old_instance;
$all_fields = epl_search_widget_fields();
foreach ( $all_fields as $all_field ) {
if ( isset( $new_instance[ $all_field['key'] ] ) ) {
$instance[ $all_field['key'] ] = epl_strip_tags( $new_instance[ $all_field['key'] ] );
} else {
$instance[ $all_field['key'] ] = '';
}
}
return $instance;
}
public function form( $instance ) {
$defaults = epl_search_get_defaults();
$instance = wp_parse_args( (array) $instance, $defaults );
$instance = array_map( 'epl_esc_attr', $instance );
foreach ( $instance as $in_key => $in_val ) {
${$in_key} = $in_val;
}
$post_types = $post_type;
$fields = epl_search_widget_fields();
foreach ( $fields as $field ) {
$field_value = ${$field['key']};
epl_widget_render_backend_field( $field, $this, $field_value );
}
}
}
function epl_register_widget_property_search() {
register_widget( 'EPL_Widget_Property_Search' );
}
add_action( 'widgets_init', 'epl_register_widget_property_search' );