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 145 146 147 148 149 150 151 152 153 154 155 156 157 
<?php
/**
 * User Profile
 *
 * @package     EPL
 * @subpackage  Admin/User
 * @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;
}

/**
 * Add Additional Contact methods to author pages. These links
 * are used in the author widgets and profile boxes
 *
 * @param array $contactmethods User contact methods.
 *
 * @return array
 * @since 1.0
 */
function epl_property_admin_contact( $contactmethods ) {
    $contactmethods['mobile']       = __( 'Mobile', 'easy-property-listings' );
    $contactmethods['office_phone'] = __( 'Office Phone', 'easy-property-listings' );
    $contactmethods['skype']        = __( 'Skype', 'easy-property-listings' );
    $contactmethods['twitter']      = __( 'Twitter', 'easy-property-listings' );
    $contactmethods['facebook']     = __( 'Facebook', 'easy-property-listings' );
    $contactmethods['linkedin']     = __( 'LinkedIn', 'easy-property-listings' );
    $contactmethods['instagram']    = __( 'Instagram', 'easy-property-listings' );
    $contactmethods['pinterest']    = __( 'Pinterest', 'easy-property-listings' );
    $contactmethods['youtube']      = __( 'Youtube', 'easy-property-listings' );
    return $contactmethods;
}
add_filter( 'user_contactmethods', 'epl_property_admin_contact', 10, 1 );

/**
 * Add Additional Contact methods to author pages. These links
 * are used in the author widgets and profile boxes
 *
 * @since 1.0
 */
function epl_get_custom_user_profile_fields() {

    return apply_filters(
        'epl_custom_user_profile_fields',
        array(
            array(
                'name'        => 'position',
                'label'       => __( 'Position', 'easy-property-listings' ),
                'description' => __( 'Please enter your title/position.', 'easy-property-listings' ),
                'class'       => 'regular-text',
                'type'        => 'text',
            ),
            array(
                'name'        => 'slogan',
                'label'       => __( 'Slogan', 'easy-property-listings' ),
                'description' => __( 'Please enter your slogan.', 'easy-property-listings' ),
                'class'       => 'regular-text',
                'type'        => 'text',
            ),
            array(
                'name'        => 'video',
                'label'       => __( 'Youtube Video Url', 'easy-property-listings' ),
                'description' => __( 'Please enter your YouTube Profile Video URL.', 'easy-property-listings' ),
                'class'       => 'regular-text',
                'type'        => 'text',
            ),
            array(
                'name'        => 'contact-form',
                'label'       => __( 'Contact Form short code', 'easy-property-listings' ),
                'description' => __( 'Please enter your form short code for author contact tab.', 'easy-property-listings' ),
                'class'       => 'regular-text',
                'type'        => 'text',
            ),
        )
    );
}

/**
 * Add Additional options to the author profiles for use in
 * the author profile box
 *
 * @param array $user Array of user.
 * @since 1.0
 */
function epl_add_custom_user_profile_fields( $user ) { ?>

    <h3><?php esc_html_e( 'Easy Property Listings: Author Box Profile', 'easy-property-listings' ); ?></h3>
    <p><?php esc_html_e( 'The following details will appear in your author box and widgets.', 'easy-property-listings' ); ?></p>

    <table class="form-table">
        <?php
            $user_fields = epl_get_custom_user_profile_fields();

        foreach ( $user_fields as $user_field ) {
            ?>
                <tr>
                    <th>
                        <label for="<?php echo esc_attr( $user_field['name'] ); ?>">
                            <?php echo esc_attr( $user_field['label'] ); ?>
                        </label>
                    </th>
                    <td>
                        <input
                            type="text"
                            name="<?php echo esc_attr( $user_field['name'] ); ?>"
                            id="<?php echo esc_attr( $user_field['name'] ); ?>"
                            value="<?php echo wp_kses_post( get_the_author_meta( $user_field['name'], $user->ID ) ); ?>"
                            class="regular-text"
                        /><br />
                        <span class="description">
                            <?php
                            echo isset( $user_field['description'] ) ? wp_kses_post( $user_field['description'] ) : '';
                            ?>
                        </span>
                    </td>
                </tr>
                <?php
        }
        ?>
    </table>
    <?php
}

/**
 * Save and update additional author profile box information
 *
 * @param int $user_id User ID.
 *
 * @return bool
 * @since 1.0
 */
function epl_save_custom_user_profile_fields( $user_id ) {
    if ( ! current_user_can( 'edit_user', $user_id ) ) {
        return false;
    }

    $user_fields = epl_get_custom_user_profile_fields();

    foreach ( $user_fields as $user_field ) {

        if ( isset( $_POST[ $user_field['name'] ] ) ) { //phpcs:ignore
            update_user_meta( $user_id, $user_field['name'], sanitize_text_field( wp_unslash( $_POST[ $user_field['name'] ] ) ) ); //phpcs:ignore
        }
    }
}

add_action( 'show_user_profile', 'epl_add_custom_user_profile_fields' );
add_action( 'edit_user_profile', 'epl_add_custom_user_profile_fields' );

add_action( 'personal_options_update', 'epl_save_custom_user_profile_fields' );
add_action( 'edit_user_profile_update', 'epl_save_custom_user_profile_fields' );
Easy Property Listings 3.5.15 Code Reference API documentation generated by ApiGen