BP_Email_Recipient::__construct( string|array|int|WP_User $email_or_user, string $name = '' )
Constructor.
Description
Parameters
- $email_or_user
-
(Required) Either an email address, user ID, WP_User object, or an array containing any combination of the above.
- $name
-
(Optional) If $email_or_user is a string, this is the recipient's name.
Default value: ''
Source
File: bp-core/classes/class-bp-email-recipient.php
public function __construct( $email_or_user, $name = '' ) { $name = sanitize_text_field( $name ); // User ID, email address or WP_User object. if ( is_int( $email_or_user ) || ( is_string( $email_or_user ) && is_email( $email_or_user ) ) || is_object( $email_or_user ) ) { // We already have a WP user. if ( is_object( $email_or_user ) ) { $this->user_object = $email_or_user; // Query for WP user by user ID. } elseif ( is_int( $email_or_user ) ) { $this->user_object = get_user_by( 'id', $email_or_user ); } // Set email address. if ( empty( $this->user_object ) && is_email( $email_or_user ) ) { $address = $email_or_user; } // Array or miscellaneous string. } else { if ( ! is_array( $email_or_user ) ) { $email_or_user = array( $email_or_user => $name ); } // Handle numeric arrays. if ( is_int( key( $email_or_user ) ) ) { $address = current( $email_or_user ); } else { $address = key( $email_or_user ); $name = current( $email_or_user ); } } // Set address if we have one. if ( ! empty( $address ) ) { $this->address = sanitize_email( $address ); } // Still no user object; try to query user by email address. if ( empty( $this->user_object ) ) { $this->get_user( 'search-email' ); } // We have a user object; so set address and name from DB. if ( $this->user_object ) { // This is escaped with esc_html in bp_core_get_user_displayname() $wp_name = wp_specialchars_decode( bp_core_get_user_displayname( $this->user_object->ID ), ENT_QUOTES ); $this->address = $this->user_object->user_email; $this->name = sanitize_text_field( $wp_name ); $this->avatar = bp_core_fetch_avatar( array( 'item_id' => $this->user_object->ID, 'html' => false ) ); } // Custom name override. if ( $name ) { $this->name = $name; } /** * Fires inside __construct() method for BP_Email_Recipient class. * * @since BuddyPress 2.5.0 * * @param string|array|int|WP_User $email_or_user Either an email address, user ID, WP_User object, * or an array containing any combination of the above. * @param string $name If $email_or_user is a string, this is the recipient's name. * @param BP_Email_Recipient $this Current instance of the email type class. */ do_action( 'bp_email_recipient', $email_or_user, $name, $this ); }
Changelog
Version | Description |
---|---|
BuddyPress 2.5.0 | Introduced. |
Questions?
We're always happy to help with code or other questions you might have! Search our developer docs, contact support, or connect with our sales team.