if ( false !== $primary_blog ) {
if ( ! isset( $blogs[ $primary_blog ] ) ) {
update_user_meta( $user_id, 'primary_blog', $first_blog->userblog_id );
- $primary = get_blog_details( $first_blog->userblog_id );
+ $primary = get_site( $first_blog->userblog_id );
} else {
- $primary = get_blog_details( $primary_blog );
+ $primary = get_site( $primary_blog );
}
} else {
//TODO Review this call to add_user_to_blog too - to get here the user must have a role on this blog?
foreach ( (array) $blogs as $blog_id => $blog ) {
if ( $blog->site_id != $wpdb->siteid )
continue;
- $details = get_blog_details( $blog_id );
+ $details = get_site( $blog_id );
if ( is_object( $details ) && $details->archived == 0 && $details->spam == 0 && $details->deleted == 0 ) {
$ret = $blog;
if ( get_user_meta( $user_id , 'primary_blog', true ) != $blog_id )
if ( !get_user_meta($user_id, 'primary_blog', true) ) {
update_user_meta($user_id, 'primary_blog', $blog_id);
- $details = get_blog_details($blog_id);
- update_user_meta($user_id, 'source_domain', $details->domain);
+ $site = get_site( $blog_id );
+ update_user_meta( $user_id, 'source_domain', $site->domain );
}
$user->set_role($role);
function wpmu_validate_blog_signup( $blogname, $blog_title, $user = '' ) {
global $wpdb, $domain;
- $current_site = get_current_site();
- $base = $current_site->path;
+ $current_network = get_network();
+ $base = $current_network->path;
$blog_title = strip_tags( $blog_title );
$errors->add('blogname', __( 'Site name must be at least 4 characters.' ) );
// do not allow users to create a blog that conflicts with a page on the main blog.
- if ( !is_subdomain_install() && $wpdb->get_var( $wpdb->prepare( "SELECT post_name FROM " . $wpdb->get_blog_prefix( $current_site->blog_id ) . "posts WHERE post_type = 'page' AND post_name = %s", $blogname ) ) )
+ if ( !is_subdomain_install() && $wpdb->get_var( $wpdb->prepare( "SELECT post_name FROM " . $wpdb->get_blog_prefix( $current_network->site_id ) . "posts WHERE post_type = 'page' AND post_name = %s", $blogname ) ) )
$errors->add( 'blogname', __( 'Sorry, you may not use that site name.' ) );
// all numeric?
$mydomain = "$domain";
$path = $base.$blogname.'/';
}
- if ( domain_exists($mydomain, $path, $current_site->id) )
+ if ( domain_exists($mydomain, $path, $current_network->id) )
$errors->add( 'blogname', __( 'Sorry, that site already exists!' ) );
if ( username_exists( $blogname ) ) {
function wpmu_signup_blog( $domain, $path, $title, $user, $user_email, $meta = array() ) {
global $wpdb;
- $key = substr( md5( time() . rand() . $domain ), 0, 16 );
+ $key = substr( md5( time() . wp_rand() . $domain ), 0, 16 );
$meta = serialize($meta);
$wpdb->insert( $wpdb->signups, array(
// Format data
$user = preg_replace( '/\s+/', '', sanitize_user( $user, true ) );
$user_email = sanitize_email( $user_email );
- $key = substr( md5( time() . rand() . $user_email ), 0, 16 );
+ $key = substr( md5( time() . wp_rand() . $user_email ), 0, 16 );
$meta = serialize($meta);
$wpdb->insert( $wpdb->signups, array(
* @param string $domain The new blog domain.
* @param string $path The new blog path.
* @param string $title The site title.
- * @param string $user The user's login name.
+ * @param string $user_login The user's login name.
* @param string $user_email The user's email address.
* @param string $key The activation key created in wpmu_signup_blog()
* @param array $meta By default, contains the requested privacy setting and lang_id.
* @return bool
*/
-function wpmu_signup_blog_notification( $domain, $path, $title, $user, $user_email, $key, $meta = array() ) {
+function wpmu_signup_blog_notification( $domain, $path, $title, $user_login, $user_email, $key, $meta = array() ) {
/**
* Filters whether to bypass the new site email notification.
*
* @param string|bool $domain Site domain.
* @param string $path Site path.
* @param string $title Site title.
- * @param string $user User login name.
+ * @param string $user_login User login name.
* @param string $user_email User email address.
* @param string $key Activation key created in wpmu_signup_blog().
* @param array $meta By default, contains the requested privacy setting and lang_id.
*/
- if ( ! apply_filters( 'wpmu_signup_blog_notification', $domain, $path, $title, $user, $user_email, $key, $meta ) ) {
+ if ( ! apply_filters( 'wpmu_signup_blog_notification', $domain, $path, $title, $user_login, $user_email, $key, $meta ) ) {
return false;
}
// Send email with activation link.
- if ( !is_subdomain_install() || get_current_site()->id != 1 )
+ if ( !is_subdomain_install() || get_current_network_id() != 1 )
$activate_url = network_site_url("wp-activate.php?key=$key");
else
$activate_url = "http://{$domain}{$path}wp-activate.php?key=$key"; // @todo use *_url() API
$admin_email = 'support@' . $_SERVER['SERVER_NAME'];
$from_name = get_site_option( 'site_name' ) == '' ? 'WordPress' : esc_html( get_site_option( 'site_name' ) );
$message_headers = "From: \"{$from_name}\" <{$admin_email}>\n" . "Content-Type: text/plain; charset=\"" . get_option('blog_charset') . "\"\n";
+
+ $user = get_user_by( 'login', $user_login );
+ $switched_locale = switch_to_locale( get_user_locale( $user ) );
+
$message = sprintf(
/**
* Filters the message content of the new blog notification email.
* @param string $domain Site domain.
* @param string $path Site path.
* @param string $title Site title.
- * @param string $user User login name.
+ * @param string $user_login User login name.
* @param string $user_email User email address.
* @param string $key Activation key created in wpmu_signup_blog().
* @param array $meta By default, contains the requested privacy setting and lang_id.
*/
apply_filters( 'wpmu_signup_blog_notification_email',
__( "To activate your blog, please click the following link:\n\n%s\n\nAfter you activate, you will receive *another email* with your login.\n\nAfter you activate, you can visit your site here:\n\n%s" ),
- $domain, $path, $title, $user, $user_email, $key, $meta
+ $domain, $path, $title, $user_login, $user_email, $key, $meta
),
$activate_url,
esc_url( "http://{$domain}{$path}" ),
* @param string $domain Site domain.
* @param string $path Site path.
* @param string $title Site title.
- * @param string $user User login name.
+ * @param string $user_login User login name.
* @param string $user_email User email address.
* @param string $key Activation key created in wpmu_signup_blog().
* @param array $meta By default, contains the requested privacy setting and lang_id.
*/
apply_filters( 'wpmu_signup_blog_notification_subject',
- __( '[%1$s] Activate %2$s' ),
- $domain, $path, $title, $user, $user_email, $key, $meta
+ /* translators: New site notification email subject. 1: Network name, 2: New site URL */
+ _x( '[%1$s] Activate %2$s', 'New site notification email subject' ),
+ $domain, $path, $title, $user_login, $user_email, $key, $meta
),
$from_name,
esc_url( 'http://' . $domain . $path )
);
wp_mail( $user_email, wp_specialchars_decode( $subject ), $message, $message_headers );
+
+ if ( $switched_locale ) {
+ restore_previous_locale();
+ }
+
return true;
}
*
* @since MU
*
- * @param string $user The user's login name.
+ * @param string $user_login The user's login name.
* @param string $user_email The user's email address.
* @param string $key The activation key created in wpmu_signup_user()
* @param array $meta By default, an empty array.
* @return bool
*/
-function wpmu_signup_user_notification( $user, $user_email, $key, $meta = array() ) {
+function wpmu_signup_user_notification( $user_login, $user_email, $key, $meta = array() ) {
/**
* Filters whether to bypass the email notification for new user sign-up.
*
* @since MU
*
- * @param string $user User login name.
+ * @param string $user_login User login name.
* @param string $user_email User email address.
* @param string $key Activation key created in wpmu_signup_user().
* @param array $meta Signup meta data.
*/
- if ( ! apply_filters( 'wpmu_signup_user_notification', $user, $user_email, $key, $meta ) )
+ if ( ! apply_filters( 'wpmu_signup_user_notification', $user_login, $user_email, $key, $meta ) )
return false;
+ $user = get_user_by( 'login', $user_login );
+ $switched_locale = switch_to_locale( get_user_locale( $user ) );
+
// Send email with activation link.
$admin_email = get_site_option( 'admin_email' );
if ( $admin_email == '' )
* @since MU
*
* @param string $content Content of the notification email.
- * @param string $user User login name.
+ * @param string $user_login User login name.
* @param string $user_email User email address.
* @param string $key Activation key created in wpmu_signup_user().
* @param array $meta Signup meta data.
*/
apply_filters( 'wpmu_signup_user_notification_email',
__( "To activate your user, please click the following link:\n\n%s\n\nAfter you activate, you will receive *another email* with your login." ),
- $user, $user_email, $key, $meta
+ $user_login, $user_email, $key, $meta
),
site_url( "wp-activate.php?key=$key" )
);
* @since MU
*
* @param string $subject Subject of the notification email.
- * @param string $user User login name.
+ * @param string $user_login User login name.
* @param string $user_email User email address.
* @param string $key Activation key created in wpmu_signup_user().
* @param array $meta Signup meta data.
*/
apply_filters( 'wpmu_signup_user_notification_subject',
- __( '[%1$s] Activate %2$s' ),
- $user, $user_email, $key, $meta
+ /* translators: New user notification email subject. 1: Network name, 2: New user login */
+ _x( '[%1$s] Activate %2$s', 'New user notification email subject' ),
+ $user_login, $user_email, $key, $meta
),
$from_name,
- $user
+ $user_login
);
wp_mail( $user_email, wp_specialchars_decode( $subject ), $message, $message_headers );
+
+ if ( $switched_locale ) {
+ restore_previous_locale();
+ }
+
return true;
}
* @return int|WP_Error Returns WP_Error object on failure, int $blog_id on success
*/
function wpmu_create_blog( $domain, $path, $title, $user_id, $meta = array(), $site_id = 1 ) {
- $defaults = array( 'public' => 0 );
+ $defaults = array(
+ 'public' => 0,
+ 'WPLANG' => get_site_option( 'WPLANG' ),
+ );
$meta = wp_parse_args( $meta, $defaults );
$domain = preg_replace( '/\s+/', '', sanitize_user( $domain, true ) );
update_option( $key, $value );
}
- add_option( 'WPLANG', get_site_option( 'WPLANG' ) );
update_option( 'blog_public', (int) $meta['public'] );
if ( ! is_super_admin( $user_id ) && ! get_user_meta( $user_id, 'primary_blog', true ) )
$siteurl = site_url();
restore_current_blog();
+ /* translators: New site notification email. 1: Site URL, 2: User IP address, 3: Settings screen URL */
$msg = sprintf( __( 'New Site: %1$s
URL: %2$s
Remote IP: %3$s
$user = get_userdata( $user_id );
$options_site_url = esc_url(network_admin_url('settings.php'));
+ /* translators: New user notification email. 1: User login, 2: User IP address, 3: Settings screen URL */
$msg = sprintf(__('New User: %1$s
Remote IP: %2$s
* @param string $blog_title The title of the new site.
*/
function install_blog( $blog_id, $blog_title = '' ) {
- global $wpdb, $wp_roles, $current_site;
+ global $wpdb, $wp_roles;
// Cast for security
$blog_id = (int) $blog_id;
if ( 'https' === parse_url( get_site_option( 'siteurl' ), PHP_URL_SCHEME ) ) {
$siteurl = set_url_scheme( $siteurl, 'https' );
}
- if ( 'https' === parse_url( get_home_url( $current_site->blog_id ), PHP_URL_SCHEME ) ) {
+ if ( 'https' === parse_url( get_home_url( get_network()->site_id ), PHP_URL_SCHEME ) ) {
$home = set_url_scheme( $home, 'https' );
}
if ( get_site_option( 'ms_files_rewriting' ) )
update_option( 'upload_path', UPLOADBLOGSDIR . "/$blog_id/files" );
else
- update_option( 'upload_path', get_blog_option( get_current_site()->blog_id, 'upload_path' ) );
+ update_option( 'upload_path', get_blog_option( get_network()->site_id, 'upload_path' ) );
update_option( 'blogname', wp_unslash( $blog_title ) );
update_option( 'admin_email', '' );
* @return bool
*/
function wpmu_welcome_notification( $blog_id, $user_id, $password, $title, $meta = array() ) {
- $current_site = get_current_site();
+ $current_network = get_network();
/**
* Filters whether to bypass the welcome email after site activation.
if ( ! apply_filters( 'wpmu_welcome_notification', $blog_id, $user_id, $password, $title, $meta ) )
return false;
+ $user = get_userdata( $user_id );
+
+ $switched_locale = switch_to_locale( get_user_locale( $user ) );
+
$welcome_email = get_site_option( 'welcome_email' );
if ( $welcome_email == false ) {
/* translators: Do not translate USERNAME, SITE_NAME, BLOG_URL, PASSWORD: those are placeholders. */
}
$url = get_blogaddress_by_id($blog_id);
- $user = get_userdata( $user_id );
- $welcome_email = str_replace( 'SITE_NAME', $current_site->site_name, $welcome_email );
+ $welcome_email = str_replace( 'SITE_NAME', $current_network->site_name, $welcome_email );
$welcome_email = str_replace( 'BLOG_TITLE', $title, $welcome_email );
$welcome_email = str_replace( 'BLOG_URL', $url, $welcome_email );
$welcome_email = str_replace( 'USERNAME', $user->user_login, $welcome_email );
$message_headers = "From: \"{$from_name}\" <{$admin_email}>\n" . "Content-Type: text/plain; charset=\"" . get_option('blog_charset') . "\"\n";
$message = $welcome_email;
- if ( empty( $current_site->site_name ) )
- $current_site->site_name = 'WordPress';
+ if ( empty( $current_network->site_name ) )
+ $current_network->site_name = 'WordPress';
+
+ /* translators: New site notification email subject. 1: Network name, 2: New site name */
+ $subject = __( 'New %1$s Site: %2$s' );
/**
* Filters the subject of the welcome email after site activation.
*
* @param string $subject Subject of the email.
*/
- $subject = apply_filters( 'update_welcome_subject', sprintf( __( 'New %1$s Site: %2$s' ), $current_site->site_name, wp_unslash( $title ) ) );
+ $subject = apply_filters( 'update_welcome_subject', sprintf( $subject, $current_network->site_name, wp_unslash( $title ) ) );
wp_mail( $user->user_email, wp_specialchars_decode( $subject ), $message, $message_headers );
+
+ if ( $switched_locale ) {
+ restore_previous_locale();
+ }
+
return true;
}
* @return bool
*/
function wpmu_welcome_user_notification( $user_id, $password, $meta = array() ) {
- $current_site = get_current_site();
+ $current_network = get_network();
/**
* Filters whether to bypass the welcome email after user activation.
$user = get_userdata( $user_id );
+ $switched_locale = switch_to_locale( get_user_locale( $user ) );
+
/**
* Filters the content of the welcome email after user activation.
*
* @param array $meta Signup meta data.
*/
$welcome_email = apply_filters( 'update_welcome_user_email', $welcome_email, $user_id, $password, $meta );
- $welcome_email = str_replace( 'SITE_NAME', $current_site->site_name, $welcome_email );
+ $welcome_email = str_replace( 'SITE_NAME', $current_network->site_name, $welcome_email );
$welcome_email = str_replace( 'USERNAME', $user->user_login, $welcome_email );
$welcome_email = str_replace( 'PASSWORD', $password, $welcome_email );
$welcome_email = str_replace( 'LOGINLINK', wp_login_url(), $welcome_email );
$message_headers = "From: \"{$from_name}\" <{$admin_email}>\n" . "Content-Type: text/plain; charset=\"" . get_option('blog_charset') . "\"\n";
$message = $welcome_email;
- if ( empty( $current_site->site_name ) )
- $current_site->site_name = 'WordPress';
+ if ( empty( $current_network->site_name ) )
+ $current_network->site_name = 'WordPress';
+
+ /* translators: New user notification email subject. 1: Network name, 2: New user login */
+ $subject = __( 'New %1$s User: %2$s' );
/**
* Filters the subject of the welcome email after user activation.
*
* @param string $subject Subject of the email.
*/
- $subject = apply_filters( 'update_welcome_user_subject', sprintf( __( 'New %1$s User: %2$s' ), $current_site->site_name, $user->user_login) );
+ $subject = apply_filters( 'update_welcome_user_subject', sprintf( $subject, $current_network->site_name, $user->user_login) );
wp_mail( $user->user_email, wp_specialchars_decode( $subject ), $message, $message_headers );
+
+ if ( $switched_locale ) {
+ restore_previous_locale();
+ }
+
return true;
}
*
* WordPress MS stores a blog's post count as an option so as
* to avoid extraneous COUNTs when a blog's details are fetched
- * with get_blog_details(). This function is called when posts
- * are published or unpublished to make sure the count stays current.
+ * with get_site(). This function is called when posts are published
+ * or unpublished to make sure the count stays current.
*
* @since MU
*
* @return array The current site's domain
*/
function redirect_this_site( $deprecated = '' ) {
- return array( get_current_site()->domain );
+ return array( get_network()->domain );
}
/**
*
* @since MU
*
- * @global int $blog_id
- *
* @param array $details
* @return true|WP_Error|void
*/
function add_existing_user_to_blog( $details = false ) {
- global $blog_id;
-
if ( is_array( $details ) ) {
+ $blog_id = get_current_blog_id();
$result = add_user_to_blog( $blog_id, $details[ 'user_id' ], $details[ 'role' ] );
/**
* Fires immediately after an existing user is added to a site.
if ( !empty( $meta[ 'add_to_blog' ] ) ) {
$blog_id = $meta[ 'add_to_blog' ];
$role = $meta[ 'new_role' ];
- remove_user_from_blog($user_id, get_current_site()->blog_id); // remove user from main blog.
+ remove_user_from_blog($user_id, get_network()->site_id); // remove user from main blog.
add_user_to_blog( $blog_id, $user_id, $role );
update_user_meta( $user_id, 'primary_blog', $blog_id );
}
* @param PHPMailer $phpmailer The PHPMailer instance, passed by reference.
*/
function fix_phpmailer_messageid( $phpmailer ) {
- $phpmailer->Hostname = get_current_site()->domain;
+ $phpmailer->Hostname = get_network()->domain;
}
/**