Easy Property Listings 3.5.15 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 
<?php
/**
 * SHORTCODE :: Contact Capture [listing_contact]
 *
 * @package     EPL
 * @subpackage  Shortcode/ContactForm
 * @copyright   Copyright (c) 2019, Merv Barrett
 * @license     http://opensource.org/licenses/gpl-2.0.php GNU Public License
 * @since       3.0
 */

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

/**
 * Listing Contact Shortcode [listing_contact] This shortcode allows for you to capture contacts for listings
 *
 * @param array $atts Shortcode array of options.
 *
 * @return false|string
 * @since 3.0
 */
function epl_contact_capture_form( $atts ) {

    $defaults   = epl_contact_capture_get_widget_defaults();
    $attributes = shortcode_atts( $defaults, $atts );
    $fields     = epl_contact_capture_get_widget_fields( $attributes );

    if ( isset( $attributes['submit'] ) && ! empty( $attributes['submit'] ) ) {
        foreach ( $fields as &$field ) {
            if ( 'epl_contact_submit' === $field['name'] ) {
                $field['value'] = $attributes['submit'];
            }
        }
    }

    ob_start();
    $contact_form = new EPL_FORM_BUILDER( array( 'callback_action' => 'contact_capture_form' ) );

    $fields = array(
        array(
            'label'  => '',
            'class'  => 'col-1 epl-inner-div',
            'id'     => '',
            'help'   => '',
            'fields' => $fields,
        ),

    );
    $contact_form->add_sections( $fields );
    $contact_form->add_fields();
    $contact_form->add_nonce( 'epl_contact_widget' );
    echo '<div class="epl-contact-capture-form">';?>
    <div class="epl-contact-capture-form-desc">
        <?php
            echo isset( $atts['description'] ) ? esc_html( $atts['description'] ) : '';
        ?>
    </div>
    <?php

    $contact_form->render_form();
    echo '</div>';
    return ob_get_clean();
}
add_shortcode( 'epl_contact_form', 'epl_contact_capture_form' );
add_shortcode( 'listing_contact', 'epl_contact_capture_form' );


/**
 * Contact Form Callback
 *
 * @since 3.0
 * @param array $form_data Array of form data.
 * @param array $request Request from url for antispam check.
 */
function epl_contact_capture_form_callback( $form_data, $request ) {

    if ( isset( $request['epl_contact_anti_spam'] ) && ! empty( $attributes['submit'] ) ) {
        // spam.
        return;
    }

    $contact = new EPL_contact( $request['epl_contact_email'] );
    $fname   = isset( $request['epl_contact_first_name'] ) ? sanitize_text_field( $request['epl_contact_first_name'] ) : '';
    $lname   = isset( $request['epl_contact_last_name'] ) ? sanitize_text_field( $request['epl_contact_last_name'] ) : '';
    $phone   = isset( $request['epl_contact_phone'] ) ? sanitize_text_field( $request['epl_contact_phone'] ) : '';
    $title   = isset( $request['epl_contact_title'] ) ? sanitize_text_field( $request['epl_contact_title'] ) : '';

    if ( empty( $contact->ID ) ) {

        $contact_data = array(
            'name'  => $title,
            'email' => sanitize_email( $request['epl_contact_email'] ),
        );
        if ( $contact->create( $contact_data ) ) {
            $contact->update_meta( 'contact_first_name', $fname );
            $contact->update_meta( 'contact_last_name', $lname );
            $contact->update_meta( 'contact_phones', array( 'phone' => $phone ) );
            $contact->update_meta( 'contact_category', 'widget' );
            $contact->attach_listing( $request['epl_contact_listing_id'] );
            $contact->add_note( $request['epl_contact_note'], 'note', $request['epl_contact_listing_id'] );
        }
    } else {

        if ( $contact->update( array( 'name' => $title ) ) ) {
            $contact->add_note( $request['epl_contact_note'], 'note', $request['epl_contact_listing_id'] );
            $contact->attach_listing( $request['epl_contact_listing_id'] );
        }
    }
}
add_action( 'epl_form_builder_contact_capture_form', 'epl_contact_capture_form_callback', 10, 2 );
Easy Property Listings 3.5.15 Code Reference API documentation generated by ApiGen