Easy Property Listings 3.5.14 Code Reference
  • Package
  • Class
  • Tree
  • Todo
  • Hook Reference

Packages

  • EPL
    • Admin
      • Actions
      • Classes
        • ContactsTable
        • ReportsGraph
        • Welcome
      • Contacts
      • ContactsActions
      • ContactsFunctions
      • Elements
      • Functions
      • Help
      • HelpSingle
      • Menus
      • MenusAddons
      • MenusExtensions
      • MenusLicenses
      • Plugins
      • Reports
      • ReportsGraphing
      • User
    • Assets
      • ScriptsStyles
      • SVG
    • Classes
      • AuthorLoader
      • AuthorMeta
      • Contact
      • Cron
      • CustomPostType
      • Forms
      • License
      • ListingAdvanced
      • ListingElements
      • MetaboxesCustomFields
      • Pagination
      • PropertyMeta
      • RenderFields
      • RestAPI
      • Search
      • Session
      • Updater
    • Compatibility
      • Extensions
      • Functions
      • Shortcodes
    • Functions
      • Actions
      • ConditionalTags
      • ErrorTracking
      • Formatting
      • Front
      • Global
      • Install
      • Pagination
      • Settings
      • Templates
    • Hooks
      • EnergyCertificate
      • ExternalLinks
      • FloorPlan
      • Map
      • ReadMore
      • WebLink
    • Meta
      • InitCustomFields
      • Meta
    • PostTypes
      • Business
      • Commercial
      • CommercialLand
      • Contact
      • Functions
      • Land
      • Property
      • Rental
      • Rural
    • Shortcode
      • CommercialListingSearch
      • ContactForm
      • Listing
      • ListingAdvanced
      • ListingAuction
      • ListingCategory
      • ListingFeature
      • ListingLocation
      • ListingMetaDoc
      • ListingOpen
      • ListingResults
      • ListingSearch
      • Map
    • Taxonomy
      • BusinessCategories
      • ContactTag
      • Features
      • Location
    • Templates
      • Themes
        • iThemes
        • iThemesBuilder
    • Widget
      • Admin
        • Dashboard
      • Classes
        • Author
        • ContactCapture
        • Gallery
        • Listing
        • Search
      • Functions
  • None
  • WordPress
    • Session

Classes

  • EPL_Advanced_Shortcode_Listing
  • EPL_Author
  • EPL_Author_Loader
  • EPL_Author_Meta
  • EPL_Contact
  • EPL_Contact_Reports_Table
  • EPL_CPT
  • EPL_Cron
  • EPL_FORM_BUILDER
  • EPL_Graph
  • EPL_License
  • EPL_Listing_Elements
  • EPL_METABOX
  • EPL_Pagination_Call
  • EPL_Property_Meta
  • EPL_Render_Fields
  • EPL_Rest_API
  • EPL_SEARCH
  • EPL_Search_Fields
  • EPL_Session
  • EPL_SL_Plugin_Updater
  • EPL_Welcome
  • EPL_Widget_Author
  • EPL_Widget_Contact_Capture
  • EPL_Widget_Property_Gallery
  • EPL_Widget_Property_Search
  • EPL_Widget_Recent_Property

Functions

  • EPL
  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
/**
 * WIDGET :: Property Search
 *
 * @package     EPL
 * @subpackage  Widget/Classes/Search
 * @copyright   Copyright (c) 2019, Merv Barrett
 * @license     http://opensource.org/licenses/gpl-2.0.php GNU Public License
 * @since       1.0
 */

// Exit if accessed directly.
if ( ! defined( 'ABSPATH' ) ) {
    exit;
}

/**
 * EPL_Widget_Property_Search class
 *
 * @since 1.0
 */
class EPL_Widget_Property_Search extends WP_Widget {

    /**
     * Construct the widget.
     *
     * @since 1.0.0
     */
    public function __construct() {
        parent::__construct( false, $name = __( 'EPL - Listing Search', 'easy-property-listings' ), array( 'description' => __( 'Search listings.', 'easy-property-listings' ) ) );
        // Widget name for filter: epl_property_search.
    }

    /**
     * Widget function.
     *
     * @since 1.0
     * @since 3.5 Added escaping to elements.
     * @param array $args Widget arguments.
     * @param array $instance Widget instance.
     */
    public function widget( $args, $instance ) {

        // phpcs:disable WordPress.Security.EscapeOutput.OutputNotEscaped

        $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;
    }

    /**
     * Widget update.
     *
     * @param array $new_instance New values.
     * @param array $old_instance Old values.
     *
     * @return array
     * @since 1.0
     */
    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;
    }

    /**
     * Render the widget form.
     *
     * @since 1.0
     * @param array $instance options.
     */
    public function form( $instance ) {

        // phpcs:disable WordPress.Security.EscapeOutput.OutputNotEscaped

        $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 );
        }
    }
}

/**
 * Register Listing Search Widget.
 *
 * Registers the EPL Widgets.
 *
 * @since 3.2.2
 * @return void
 */
function epl_register_widget_property_search() {
    register_widget( 'EPL_Widget_Property_Search' );
}
add_action( 'widgets_init', 'epl_register_widget_property_search' );
Easy Property Listings 3.5.14 Code Reference API documentation generated by ApiGen