bp_email_get_unsubscribe_link( array $args )

Creates unsubscribe link for notification emails.

Description

Parameters

$redirect_to

(Required) The URL to which the unsubscribe query string is appended.

$args

(Required) Used to build unsubscribe query string.

  • 'notification_type'
    (string) Which notification type is being sent.
  • 'user_id'
    (string) The ID of the user to whom the notification is sent.
  • 'redirect_to'
    (string) Optional. The url to which the user will be redirected. Default is the activity directory.

Return

(string) The unsubscribe link.

Source

File: bp-core/bp-core-functions.php

4204
4205
4206
4207
4208
4209
4210
4211
4212
4213
4214
4215
4216
4217
4218
4219
4220
4221
4222
4223
4224
4225
4226
4227
4228
4229
4230
4231
4232
4233
4234
4235
4236
function bp_email_get_unsubscribe_link( $args ) {
    $emails = bp_email_get_unsubscribe_type_schema();
 
    if ( empty( $args['notification_type'] ) || ! array_key_exists( $args['notification_type'], $emails ) ) {
        return wp_login_url();
    }
 
    $email_type  = $args['notification_type'];
    $redirect_to = ! empty( $args['redirect_to'] ) ? $args['redirect_to'] : site_url();
    $user_id     = (int) $args['user_id'];
 
    // Bail out if the activity type is not un-unsubscribable.
    if ( empty( $emails[ $email_type ]['unsubscribe'] ) ) {
        return '';
    }
 
    $link = add_query_arg(
        array(
            'action' => 'unsubscribe',
            'nh'     => hash_hmac( 'sha1', "{$email_type}:{$user_id}", bp_email_get_salt() ),
            'nt'     => $args['notification_type'],
            'uid'    => $user_id,
        ),
        $redirect_to
    );
 
    /**
     * Filters the unsubscribe link.
     *
     * @since BuddyPress 2.7.0
     */
    return apply_filters( 'bp_email_get_link', $link, $redirect_to, $args );
}

Changelog

Changelog
Version Description
BuddyPress 2.7.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.