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 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 
<?php
/**
 * Global Functions
 *
 * @package     EPL
 * @subpackage  Functions/Global
 * @copyright   Copyright (c) 2020, 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;
}

/**
 * Get list of all EPL image sizes
 *
 * @since 3.2.3
 */
function get_epl_image_sizes() {
    return apply_filters(
        'epl_image_sizes',
        array(
            array(
                'id'     => 'admin-list-thumb',
                'height' => 100,
                'width'  => 100,
                'crop'   => true,
            ),
            array(
                'id'     => 'epl-image-medium-crop',
                'height' => 200,
                'width'  => 300,
                'crop'   => true,
            ),
        )
    );
}

/**
 * Register image sizes for the admin list of property
 * and a hard cropped 300x200 px image for use in widgets
 *
 * @since 1.0
 */
function epl_image_sizes() {

    $epl_sizes = get_epl_image_sizes();

    foreach ( $epl_sizes as $epl_size ) {
        add_image_size( $epl_size['id'], $epl_size['width'], $epl_size['height'], $epl_size['crop'] );
    }
}
add_action( 'after_setup_theme', 'epl_image_sizes' );

/**
 * Gives the hard cropped image a friendly name
 *
 * @param array $epl_sizes Array of image sizes.
 *
 * @return array
 * @since 1.0
 */
function epl_image_size_names_choose( $epl_sizes ) {
    return array_merge(
        $epl_sizes,
        array(
            'epl-image-medium-crop' => __( 'Medium 300x200 hard Crop', 'easy-property-listings' ),
        )
    );
}
add_filter( 'image_size_names_choose', 'epl_image_size_names_choose' );

/**
 * Add Custom Post Types to Author Archives
 *
 * @param array $query WP Query object.
 * @since 1.0
 */
function epl_property_author_archives( $query ) {
    // Add 'Rentals' post type to author archives.
    if ( $query->is_author ) {
        $query->set( 'post_type', array( 'directory', 'rental', 'testimonial', 'property', 'post' ) );
    }

    // Remove the action after it's run.
    remove_action( 'pre_get_posts', 'epl_property_author_archives' );
}
add_action( 'pre_get_posts', 'epl_property_author_archives' );

/**
 * Add Custom Post Types to Author Archive Page
 *
 * @param array $query WP Query object.
 * @since 1.0
 */
function epl_custom_post_author_archive( $query ) {
    if ( $query->is_author ) {
        $query->set( 'post_type', array( 'property', 'rental', 'testimonial', 'post', 'commercial', 'land' ) );
    }

    remove_action( 'pre_get_posts', 'epl_custom_post_author_archive' );
}
add_action( 'pre_get_posts', 'epl_custom_post_author_archive' );

/**
 * Gravity Forms Filter for populating contact form with author email address
 *
 * Create a gravity from and add a hidden field and enable "Allow field to be populated dynamically"
 * option on the advanced tab. Use author_email as the Parameter Name and when a form is submitted
 * the email address of the author of that property/page/post will be added to the hidden field.
 * You can then setup the forwarding and notifications directly to the author as their email
 * will be part of the form.
 *
 * @param string $value Form pre populating field.
 *
 * @return string
 * @since 1.0
 * @since 3.5.14 Improvements to author email return values in gravity forms email hook.
 */
function epl_populate_post_author_email( $value ) {

    if ( is_author() ) {
        $author = get_queried_object();
        if ( $author instanceof WP_User ) {
            return $author->user_email;
        }
    }

    global $post;
    if ( $post instanceof WP_Post ) {
        $author_email = get_the_author_meta( 'user_email', $post->post_author );
        if ( ! empty( $author_email ) ) {
            return $author_email;
        }
    }

    return '';
}
add_filter( 'gform_field_value_author_email', 'epl_populate_post_author_email' );

Easy Property Listings 3.5.15 Code Reference API documentation generated by ApiGen