bp_get_email( string $email_type )
Get an BP_Email object for the specified email type.
Description
This function pre-populates the object with the subject, content, and template from the appropriate email post type item. It does not replace placeholder tokens in the content with real values.
Parameters
- $email_type
-
(Required) Unique identifier for a particular type of email.
Return
(BP_Email|WP_Error) BP_Email object, or WP_Error if there was a problem.
Source
File: bp-core/bp-core-functions.php
function bp_get_email( $email_type ) {
$switched = false;
// Switch to the root blog, where the email posts live.
if ( ! bp_is_root_blog() ) {
switch_to_blog( bp_get_root_blog_id() );
$switched = true;
}
$args = array(
'no_found_rows' => true,
'numberposts' => 1,
'post_status' => 'publish',
'post_type' => bp_get_email_post_type(),
'suppress_filters' => false,
'tax_query' => array(
array(
'field' => 'slug',
'taxonomy' => bp_get_email_tax_type(),
'terms' => $email_type,
)
),
);
/**
* Filters arguments used to find an email post type object.
*
* @since BuddyPress 2.5.0
*
* @param array $args Arguments for get_posts() used to fetch a post object.
* @param string $email_type Unique identifier for a particular type of email.
*/
$args = apply_filters( 'bp_get_email_args', $args, $email_type );
$post = get_posts( $args );
if ( ! $post ) {
if ( $switched ) {
restore_current_blog();
}
return new WP_Error( 'missing_email', __FUNCTION__, array( $email_type, $args ) );
}
/**
* Filters arguments used to create the BP_Email object.
*
* @since BuddyPress 2.5.0
*
* @param WP_Post $post Post object containing the contents of the email.
* @param string $email_type Unique identifier for a particular type of email.
* @param array $args Arguments used with get_posts() to fetch a post object.
* @param WP_Post $post All posts retrieved by get_posts( $args ). May only contain $post.
*/
$post = apply_filters( 'bp_get_email_post', $post[0], $email_type, $args, $post );
$email = new BP_Email( $email_type );
/*
* Set some email properties for convenience.
*/
// Post object (sets subject, content, template).
$email->set_post_object( $post );
/**
* Filters the BP_Email object returned by bp_get_email().
*
* @since BuddyPress 2.5.0
*
* @param BP_Email $email An object representing a single email, ready for mailing.
* @param string $email_type Unique identifier for a particular type of email.
* @param array $args Arguments used with get_posts() to fetch a post object.
* @param WP_Post $post All posts retrieved by get_posts( $args ). May only contain $post.
*/
$retval = apply_filters( 'bp_get_email', $email, $email_type, $args, $post );
if ( $switched ) {
restore_current_blog();
}
return $retval;
}
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.