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 
<?php
/**
 * SHORTCODE :: Simple Google Map
 *
 * @package     EPL
 * @subpackage  Shortcode/Map
 * @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;
}

/**
 * Listing Google Map [listing_map]
 *
 * @param array $atts Shortcode attributes.
 * @param array $content Content.
 *
 * @return string
 * @since 1.0.0
 * @since 3.4.18 Added wrapper class epl-section-map.
 * @since 3.5.0 Fixed warnings. Added width, height and zoop options, allowed usage on any page and renamed file.
 */
function epl_shortcode_googlemap_callback( $atts, $content = null ) {
    global $property;

    $id = 0;

    if ( ! is_null( $property ) ) {
        $id = $property->post->ID;
    }

    $defaults = array(
        'width'       => '100%',  // Pass the width.
        'height'      => '350px', // Pass the height.
        'zoom'        => '17',    // Map zoom level.
        'q'           => '',      // The Address to query.
        'cord'        => '',      // Lat/Long coordinates.
        'suburb_mode' => 0,       // Suburb mode.
    );

    $attributes = shortcode_atts(
        $defaults,
        $atts
    );

    if ( empty( $attributes['cord'] ) && empty( $attributes['q'] ) ) {
        return '';
    }

    if ( ! is_epl_post() ) {
        // Enqueue the Google Maps script if the shortcode is loaded on a page.
        epl_shortcode_googlemap_enqueue();
    }

    return '<div class="epl-tab-section epl-section-map epl-default-map-wrapper">
            <div style="width:' . esc_attr( $attributes['width'] ) . '; height:' . esc_attr( $attributes['height'] ) . '" data-suburb_mode="' . esc_attr( $attributes['suburb_mode'] ) . '" data-cord="' . esc_attr( $attributes['cord'] ) . '" data-zoom="' . esc_attr( $attributes['zoom'] ) . '" data-id="' . esc_attr( $id ) . '" data-address="' . esc_attr( $attributes['q'] ) . '" class="epl-map-shortcode" id="epl-default-map"></div>
        </div>';
}
add_shortcode( 'listing_map', 'epl_shortcode_googlemap_callback' );


/**
 * Loads google map script on non EPL pages if listing_map shortcode is called.
 *
 * @since 3.5.0
 * @since 3.5.3 Google Maps async. Prefix added.
 */
function epl_shortcode_googlemap_enqueue() {

    $googleapiurl       = 'https://maps.googleapis.com/maps/api/js?v=3.exp&callback=Function.prototype&loading=async';
    $epl_google_api_key = epl_get_option( 'epl_google_api_key' );
    if ( ! empty( $epl_google_api_key ) ) {
        $googleapiurl = $googleapiurl . '&key=' . epl_get_option( 'epl_google_api_key' );
    }

    if ( epl_get_option( 'epl_disable_google_api' ) !== 'on' ) {
        wp_enqueue_script( 'epl-google-map-v-3', $googleapiurl, array(), EPL_PROPERTY_VER, false );
    }
}
Easy Property Listings 3.5.15 Code Reference API documentation generated by ApiGen