bp_core_wpsignup_redirect()
Redirect away from wp-signup.php if BP registration templates are present.
Description Description
Source Source
File: bp-members/bp-members-functions.php
function bp_core_wpsignup_redirect() {
// Bail in admin or if custom signup page is broken.
if ( is_admin() || ! bp_has_custom_signup_page() ) {
return;
}
$is_wp_signup = false;
if ( ! empty( $_SERVER['SCRIPT_NAME'] ) ) {
$script_name_path = wp_parse_url( $_SERVER['SCRIPT_NAME'], PHP_URL_PATH );
if ( 'wp-signup.php' === basename( $script_name_path ) || ( 'wp-login.php' === basename( $script_name_path ) && ! empty( $_GET['action'] ) && 'register' === $_GET['action'] ) ) {
$is_wp_signup = true;
}
}
// If this is not wp-signup.php, there's nothing to do here.
if ( ! $is_wp_signup ) {
return;
}
/*
* We redirect wp-signup.php to the registration page except when it's a site signup.
* In that case, redirect to the BP site creation page if available, otherwise allow
* access to wp-signup.php.
*/
$redirect_to = bp_get_signup_page();
$is_site_creation = false;
$referer = wp_get_referer();
// A new site is being added.
if ( isset( $_POST['stage'] ) && $_POST['stage'] === 'gimmeanotherblog' ) {
$is_site_creation = true;
// We've arrived at wp-signup.php from my-sites.php.
} elseif ( $referer ) {
$referer_path = wp_parse_url( $referer, PHP_URL_PATH );
$is_site_creation = false !== strpos( $referer_path, 'wp-admin/my-sites.php' );
}
if ( $is_site_creation ) {
if ( bp_is_active( 'blogs' ) ) {
$redirect_to = trailingslashit( bp_get_blogs_directory_permalink() . 'create' );
} else {
// Perform no redirect in this case.
$redirect_to = '';
}
}
if ( ! $redirect_to ) {
return;
}
bp_core_redirect( $redirect_to );
}
Changelog Changelog
| Version | Description |
|---|---|
| 1.1.0 | Introduced. |