2010-01-06 08:50:12 +01:00
< ? php
/** Sets up the WordPress Environment. */
require ( dirname ( __FILE__ ) . '/wp-load.php' );
2011-11-15 21:44:48 +01:00
add_action ( 'wp_head' , 'wp_no_robots' );
2010-01-06 08:50:12 +01:00
2013-09-25 02:17:40 +02:00
require ( dirname ( __FILE__ ) . '/wp-blog-header.php' );
2010-01-06 08:50:12 +01:00
2010-03-04 19:38:39 +01:00
if ( is_array ( get_site_option ( 'illegal_names' )) && isset ( $_GET [ 'new' ] ) && in_array ( $_GET [ 'new' ], get_site_option ( 'illegal_names' ) ) == true ) {
2010-05-12 02:45:01 +02:00
wp_redirect ( network_home_url () );
2010-01-06 08:50:12 +01:00
die ();
}
2013-01-31 04:13:22 +01:00
/**
* Prints signup_header via wp_head
*
* @ since MU
*/
2010-01-06 08:50:12 +01:00
function do_signup_header () {
2013-09-29 01:41:07 +02:00
/**
* Fires within the < head > section of the site sign - up screen .
*
* @ since 3.0 . 0
*/
2011-05-23 00:30:05 +02:00
do_action ( 'signup_header' );
2010-01-06 08:50:12 +01:00
}
add_action ( 'wp_head' , 'do_signup_header' );
2010-01-26 22:22:44 +01:00
if ( ! is_multisite () ) {
2010-10-27 12:43:43 +02:00
wp_redirect ( site_url ( 'wp-login.php?action=register' ) );
2010-01-26 22:22:44 +01:00
die ();
}
if ( ! is_main_site () ) {
2012-09-11 14:27:25 +02:00
wp_redirect ( network_site_url ( 'wp-signup.php' ) );
2010-01-06 08:50:12 +01:00
die ();
}
2010-05-12 02:45:01 +02:00
// Fix for page title
$wp_query -> is_404 = false ;
2013-01-31 04:13:22 +01:00
/**
* Prints styles for front - end Multisite signup pages
*
* @ since MU
*/
2010-01-06 08:50:12 +01:00
function wpmu_signup_stylesheet () {
?>
2010-01-15 23:11:12 +01:00
< style type = " text/css " >
2010-01-06 08:50:12 +01:00
. mu_register { width : 90 % ; margin : 0 auto ; }
. mu_register form { margin - top : 2 em ; }
. mu_register . error { font - weight : 700 ; padding : 10 px ; color : #333333; background:#FFEBE8; border:1px solid #CC0000; }
. mu_register input [ type = " submit " ],
. mu_register #blog_title,
2010-01-15 23:11:12 +01:00
. mu_register #user_email,
2010-01-06 08:50:12 +01:00
. mu_register #blogname,
2010-01-15 23:11:12 +01:00
. mu_register #user_name { width:100%; font-size: 24px; margin:5px 0; }
2010-01-06 08:50:12 +01:00
. mu_register . prefix_address ,
2010-01-15 23:11:12 +01:00
. mu_register . suffix_address { font - size : 18 px ; display : inline ; }
2010-01-06 08:50:12 +01:00
. mu_register label { font - weight : 700 ; font - size : 15 px ; display : block ; margin : 10 px 0 ; }
. mu_register label . checkbox { display : inline ; }
. mu_register . mu_alert { font - weight : 700 ; padding : 10 px ; color : #333333; background:#ffffe0; border:1px solid #e6db55; }
</ style >
< ? php
}
add_action ( 'wp_head' , 'wpmu_signup_stylesheet' );
get_header ();
2010-03-09 17:27:02 +01:00
2013-09-29 01:41:07 +02:00
/**
* Fires before the site sign - up form .
*
* @ since 3.0 . 0
*/
2010-03-09 17:27:02 +01:00
do_action ( 'before_signup_form' );
2010-01-06 08:50:12 +01:00
?>
< div id = " content " class = " widecolumn " >
< div class = " mu_register " >
< ? php
2013-01-31 04:13:22 +01:00
/**
* Generates and displays the Signup and Create Site forms
*
* @ since MU
*
* @ param string $blogname The new site name
* @ param string $blog_title The new site title
* @ param array $errors
*/
2013-11-13 04:22:48 +01:00
function show_blog_form ( $blogname = '' , $blog_title = '' , $errors = '' ) {
$current_site = get_current_site ();
2010-01-06 08:50:12 +01:00
// Blog name
2010-01-16 00:40:29 +01:00
if ( ! is_subdomain_install () )
2010-02-24 21:45:02 +01:00
echo '<label for="blogname">' . __ ( 'Site Name:' ) . '</label>' ;
2010-01-06 08:50:12 +01:00
else
2010-02-24 21:45:02 +01:00
echo '<label for="blogname">' . __ ( 'Site Domain:' ) . '</label>' ;
2010-01-06 08:50:12 +01:00
if ( $errmsg = $errors -> get_error_message ( 'blogname' ) ) { ?>
< p class = " error " >< ? php echo $errmsg ?> </p>
< ? php }
2010-01-16 00:40:29 +01:00
if ( ! is_subdomain_install () )
2010-06-11 17:26:11 +02:00
echo '<span class="prefix_address">' . $current_site -> domain . $current_site -> path . '</span><input name="blogname" type="text" id="blogname" value="' . esc_attr ( $blogname ) . '" maxlength="60" /><br />' ;
2010-01-16 00:40:29 +01:00
else
2010-06-11 17:26:11 +02:00
echo '<input name="blogname" type="text" id="blogname" value="' . esc_attr ( $blogname ) . '" maxlength="60" /><span class="suffix_address">.' . ( $site_domain = preg_replace ( '|^www\.|' , '' , $current_site -> domain ) ) . '</span><br />' ;
2010-01-16 00:40:29 +01:00
2010-01-06 08:50:12 +01:00
if ( ! is_user_logged_in () ) {
2010-01-16 00:40:29 +01:00
if ( ! is_subdomain_install () )
2010-12-01 18:31:24 +01:00
$site = $current_site -> domain . $current_site -> path . __ ( 'sitename' );
2010-01-16 00:40:29 +01:00
else
2010-12-01 18:31:24 +01:00
$site = __ ( 'domain' ) . '.' . $site_domain . $current_site -> path ;
echo '<p>(<strong>' . sprintf ( __ ( 'Your address will be %s.' ), $site ) . '</strong>) ' . __ ( 'Must be at least 4 characters, letters and numbers only. It cannot be changed, so choose carefully!' ) . '</p>' ;
2010-01-06 08:50:12 +01:00
}
// Blog Title
?>
2010-02-24 21:45:02 +01:00
< label for = " blog_title " >< ? php _e ( 'Site Title:' ) ?> </label>
2010-01-06 08:50:12 +01:00
< ? php if ( $errmsg = $errors -> get_error_message ( 'blog_title' ) ) { ?>
< p class = " error " >< ? php echo $errmsg ?> </p>
< ? php }
2010-06-10 22:44:54 +02:00
echo '<input name="blog_title" type="text" id="blog_title" value="' . esc_attr ( $blog_title ) . '" />' ;
2010-01-06 08:50:12 +01:00
?>
< div id = " privacy " >
< p class = " privacy-intro " >
< label for = " blog_public_on " >< ? php _e ( 'Privacy:' ) ?> </label>
2012-01-30 21:51:00 +01:00
< ? php _e ( 'Allow search engines to index this site.' ); ?>
2010-06-10 22:44:54 +02:00
< br style = " clear:both " />
2010-01-06 08:50:12 +01:00
< label class = " checkbox " for = " blog_public_on " >
2010-01-16 00:40:29 +01:00
< input type = " radio " id = " blog_public_on " name = " blog_public " value = " 1 " < ? php if ( ! isset ( $_POST [ 'blog_public' ] ) || $_POST [ 'blog_public' ] == '1' ) { ?> checked="checked"<?php } ?> />
2010-01-06 08:50:12 +01:00
< strong >< ? php _e ( 'Yes' ); ?> </strong>
</ label >
< label class = " checkbox " for = " blog_public_off " >
2010-01-16 00:40:29 +01:00
< input type = " radio " id = " blog_public_off " name = " blog_public " value = " 0 " < ? php if ( isset ( $_POST [ 'blog_public' ] ) && $_POST [ 'blog_public' ] == '0' ) { ?> checked="checked"<?php } ?> />
2010-01-06 08:50:12 +01:00
< strong >< ? php _e ( 'No' ); ?> </strong>
</ label >
</ p >
</ div >
2010-01-15 23:11:12 +01:00
2010-01-06 08:50:12 +01:00
< ? php
2013-09-29 01:41:07 +02:00
/**
* Fires after the site sign - up form .
*
* @ since 3.0 . 0
*
* @ param array $errors An array possibly containing 'blogname' or 'blog_title' errors .
*/
do_action ( 'signup_blogform' , $errors );
2010-01-06 08:50:12 +01:00
}
2013-01-31 04:13:22 +01:00
/**
* Validate the new site signup
*
* @ since MU
*
* @ uses wp_get_current_user () to retrieve the current user
* @ uses wpmu_validate_blog_signup () to validate new site signup for the current user
* @ return array Contains the new site data and error messages .
*/
2010-01-06 08:50:12 +01:00
function validate_blog_form () {
$user = '' ;
if ( is_user_logged_in () )
$user = wp_get_current_user ();
return wpmu_validate_blog_signup ( $_POST [ 'blogname' ], $_POST [ 'blog_title' ], $user );
}
2013-01-31 04:13:22 +01:00
/**
* Display user registration form
*
* @ since MU
*
* @ param string $user_name The entered username
* @ param string $user_email The entered email address
* @ param array $errors
*/
2010-01-06 08:50:12 +01:00
function show_user_form ( $user_name = '' , $user_email = '' , $errors = '' ) {
// User name
echo '<label for="user_name">' . __ ( 'Username:' ) . '</label>' ;
if ( $errmsg = $errors -> get_error_message ( 'user_name' ) ) {
echo '<p class="error">' . $errmsg . '</p>' ;
}
2010-06-11 17:26:11 +02:00
echo '<input name="user_name" type="text" id="user_name" value="' . esc_attr ( $user_name ) . '" maxlength="60" /><br />' ;
2010-04-11 12:41:54 +02:00
_e ( '(Must be at least 4 characters, letters and numbers only.)' );
2010-01-06 08:50:12 +01:00
?>
2010-04-11 12:41:54 +02:00
< label for = " user_email " >< ? php _e ( 'Email Address:' ) ?> </label>
2010-01-06 08:50:12 +01:00
< ? php if ( $errmsg = $errors -> get_error_message ( 'user_email' ) ) { ?>
< p class = " error " >< ? php echo $errmsg ?> </p>
2010-01-15 23:11:12 +01:00
< ? php } ?>
2010-05-12 02:45:01 +02:00
< input name = " user_email " type = " text " id = " user_email " value = " <?php echo esc_attr( $user_email ) ?> " maxlength = " 200 " />< br />< ? php _e ( 'We send your registration email to this address. (Double-check your email address before continuing.)' ) ?>
2010-01-06 08:50:12 +01:00
< ? php
if ( $errmsg = $errors -> get_error_message ( 'generic' ) ) {
2010-04-11 12:41:54 +02:00
echo '<p class="error">' . $errmsg . '</p>' ;
2010-01-06 08:50:12 +01:00
}
2013-09-29 01:41:07 +02:00
/**
* Fires at the end of the user registration form on the site sign - up form .
*
* @ since 3.0 . 0
*
* @ param array $errors An array possibly containing 'user_name' or 'user_email' errors .
*/
2010-01-06 08:50:12 +01:00
do_action ( 'signup_extra_fields' , $errors );
}
2013-01-31 04:13:22 +01:00
/**
* Validate user signup name and email
*
* @ since MU
*
* @ uses wpmu_validate_user_signup () to retrieve an array of user data
* @ return array Contains username , email , and error messages .
*/
2010-01-06 08:50:12 +01:00
function validate_user_form () {
return wpmu_validate_user_signup ( $_POST [ 'user_name' ], $_POST [ 'user_email' ]);
}
2013-01-31 04:13:22 +01:00
/**
* Allow returning users to sign up for another site
*
* @ since MU
*
* @ uses wp_get_current_user () to get the current user
* @ param string $blogname The new site name
* @ param string $blog_title The new blog title
* @ param array $errors
*/
2013-11-13 04:22:48 +01:00
function signup_another_blog ( $blogname = '' , $blog_title = '' , $errors = '' ) {
2010-06-24 17:01:29 +02:00
$current_user = wp_get_current_user ();
2010-01-15 23:11:12 +01:00
2010-01-06 08:50:12 +01:00
if ( ! is_wp_error ( $errors ) ) {
$errors = new WP_Error ();
}
2013-09-29 01:41:07 +02:00
$signup_defaults = array (
'blogname' => $blogname ,
'blog_title' => $blog_title ,
'errors' => $errors
);
/**
* Filter the default site sign - up variables .
*
* @ since 3.0 . 0
*
* @ param array $signup_defaults {
* An array of default site sign - up variables .
*
* @ type string $blogname The site blogname .
* @ type string $blog_title The site title .
* @ type array $errors An array possibly containing 'blogname' or 'blog_title' errors .
* }
*/
$filtered_results = apply_filters ( 'signup_another_blog_init' , $signup_defaults );
2010-01-06 08:50:12 +01:00
$blogname = $filtered_results [ 'blogname' ];
$blog_title = $filtered_results [ 'blog_title' ];
$errors = $filtered_results [ 'errors' ];
2013-11-13 04:22:48 +01:00
echo '<h2>' . sprintf ( __ ( 'Get <em>another</em> %s site in seconds' ), get_current_site () -> site_name ) . '</h2>' ;
2010-01-06 08:50:12 +01:00
if ( $errors -> get_error_code () ) {
2010-04-11 12:41:54 +02:00
echo '<p>' . __ ( 'There was a problem, please correct the form below and try again.' ) . '</p>' ;
2010-01-06 08:50:12 +01:00
}
?>
2010-04-11 12:41:54 +02:00
< p >< ? php printf ( __ ( 'Welcome back, %s. By filling out the form below, you can <strong>add another site to your account</strong>. There is no limit to the number of sites you can have, so create to your heart’s content, but write responsibly!' ), $current_user -> display_name ) ?> </p>
2010-01-15 23:11:12 +01:00
2010-01-06 08:50:12 +01:00
< ? php
2010-01-15 23:11:12 +01:00
$blogs = get_blogs_of_user ( $current_user -> ID );
2010-01-06 08:50:12 +01:00
if ( ! empty ( $blogs ) ) { ?>
2010-06-11 22:19:35 +02:00
2010-06-10 22:44:54 +02:00
< p >< ? php _e ( 'Sites you are already a member of:' ) ?> </p>
2010-01-06 08:50:12 +01:00
< ul >
< ? php foreach ( $blogs as $blog ) {
2010-05-12 02:45:01 +02:00
$home_url = get_home_url ( $blog -> userblog_id );
echo '<li><a href="' . esc_url ( $home_url ) . '">' . $home_url . '</a></li>' ;
2010-01-06 08:50:12 +01:00
} ?>
</ ul >
< ? php } ?>
2010-01-15 23:11:12 +01:00
2010-04-11 12:41:54 +02:00
< p >< ? php _e ( 'If you’re not going to use a great site domain, leave it for a new user. Now have at it!' ) ?> </p>
2010-01-06 08:50:12 +01:00
< form id = " setupform " method = " post " action = " wp-signup.php " >
< input type = " hidden " name = " stage " value = " gimmeanotherblog " />
2013-09-24 17:50:06 +02:00
< ? php
/**
2013-09-29 01:41:07 +02:00
* Hidden sign - up form fields output when creating another site or user .
2013-09-24 17:50:06 +02:00
*
* @ since MU
*
2013-09-29 01:41:07 +02:00
* @ param string $context A string describing the steps of the sign - up process . The value can be
2013-09-24 17:50:06 +02:00
* 'create-another-site' , 'validate-user' , or 'validate-site' .
*/
do_action ( 'signup_hidden_fields' , 'create-another-site' );
?>
2010-01-06 08:50:12 +01:00
< ? php show_blog_form ( $blogname , $blog_title , $errors ); ?>
2010-10-29 02:31:27 +02:00
< p class = " submit " >< input type = " submit " name = " submit " class = " submit " value = " <?php esc_attr_e( 'Create Site' ) ?> " /></ p >
2010-01-06 08:50:12 +01:00
</ form >
< ? php
}
2013-01-31 04:13:22 +01:00
/**
* Validate a new blog signup
*
* @ since MU
*
* @ uses wp_get_current_user () to retrieve the current user
* @ uses wpmu_create_blog () to add a new site
* @ uses confirm_another_blog_signup () to confirm the user ' s new site signup
* @ return bool True if blog signup was validated , false if error
*/
2010-01-06 08:50:12 +01:00
function validate_another_blog_signup () {
2010-06-24 17:01:29 +02:00
global $wpdb , $blogname , $blog_title , $errors , $domain , $path ;
2010-01-06 08:50:12 +01:00
$current_user = wp_get_current_user ();
2010-01-16 00:40:29 +01:00
if ( ! is_user_logged_in () )
2010-01-06 08:50:12 +01:00
die ();
$result = validate_blog_form ();
2014-05-16 16:42:25 +02:00
// extracted values set/overwrite globals
$domain = $result [ 'domain' ];
$path = $result [ 'path' ];
$blogname = $result [ 'blogname' ];
$blog_title = $result [ 'blog_title' ];
$errors = $result [ 'errors' ];
2010-01-06 08:50:12 +01:00
if ( $errors -> get_error_code () ) {
signup_another_blog ( $blogname , $blog_title , $errors );
return false ;
}
$public = ( int ) $_POST [ 'blog_public' ];
2013-09-29 01:41:07 +02:00
$blog_meta_defaults = array (
'lang_id' => 1 ,
'public' => $public
);
/**
* Filter the new site meta variables .
*
* @ since MU
* @ deprecated 3.0 . 0 Use the 'add_signup_meta' filter instead .
*
* @ param array $blog_meta_defaults An array of default blog meta variables .
*/
2014-05-16 16:42:25 +02:00
$meta_defaults = apply_filters ( 'signup_create_blog_meta' , $blog_meta_defaults );
2013-09-29 01:41:07 +02:00
/**
* Filter the new default site meta variables .
*
* @ since 3.0 . 0
*
* @ param array $meta {
* An array of default site meta variables .
*
* @ type int $lang_id The language ID .
* @ type int $blog_public Whether search engines should be discouraged from indexing the site . 1 for true , 0 for false .
* }
*/
2014-05-16 16:42:25 +02:00
$meta = apply_filters ( 'add_signup_meta' , $meta_defaults );
2010-01-06 08:50:12 +01:00
2011-08-04 05:09:27 +02:00
wpmu_create_blog ( $domain , $path , $blog_title , $current_user -> ID , $meta , $wpdb -> siteid );
2010-01-06 08:50:12 +01:00
confirm_another_blog_signup ( $domain , $path , $blog_title , $current_user -> user_login , $current_user -> user_email , $meta );
return true ;
}
2013-01-31 04:13:22 +01:00
/**
* Confirm a new site signup
*
* @ since MU
*
* @ param string $domain The domain URL
* @ param string $path The site root path
* @ param string $user_name The username
* @ param string $user_email The user ' s email address
2013-05-15 19:54:02 +02:00
* @ param array $meta Any additional meta from the 'add_signup_meta' filter in validate_blog_signup ()
2013-01-31 04:13:22 +01:00
*/
2013-05-15 19:54:02 +02:00
function confirm_another_blog_signup ( $domain , $path , $blog_title , $user_name , $user_email = '' , $meta = array () ) {
2010-01-06 08:50:12 +01:00
?>
2010-04-11 12:41:54 +02:00
< h2 >< ? php printf ( __ ( 'The site %s is yours.' ), " <a href='http:// { $domain } { $path } '> { $blog_title } </a> " ) ?> </h2>
2010-01-06 08:50:12 +01:00
< p >
2011-12-14 00:45:31 +01:00
< ? php printf ( __ ( '<a href="http://%1$s">http://%2$s</a> is your new site. <a href="%3$s">Log in</a> as “%4$s” using your existing password.' ), $domain . $path , $domain . $path , " http:// " . $domain . $path . " wp-login.php " , $user_name ) ?>
2010-01-06 08:50:12 +01:00
</ p >
< ? php
2013-09-29 01:41:07 +02:00
/**
* Fires when the site or user sign - up process is complete .
*
* @ since 3.0 . 0
*/
2010-04-11 12:41:54 +02:00
do_action ( 'signup_finished' );
2010-01-06 08:50:12 +01:00
}
2013-01-31 04:13:22 +01:00
/**
* Setup the new user signup process
*
* @ since MU
*
* @ uses apply_filters () filter $filtered_results
* @ uses show_user_form () to display the user registration form
* @ param string $user_name The username
* @ param string $user_email The user ' s email
* @ param array $errors
*/
2013-11-13 04:22:48 +01:00
function signup_user ( $user_name = '' , $user_email = '' , $errors = '' ) {
global $active_signup ;
2010-01-06 08:50:12 +01:00
if ( ! is_wp_error ( $errors ) )
$errors = new WP_Error ();
2010-03-17 17:27:25 +01:00
2012-02-07 18:12:46 +01:00
$signup_for = isset ( $_POST [ 'signup_for' ] ) ? esc_html ( $_POST [ 'signup_for' ] ) : 'blog' ;
2010-01-06 08:50:12 +01:00
2013-09-29 01:41:07 +02:00
$signup_user_defaults = array (
'user_name' => $user_name ,
'user_email' => $user_email ,
'errors' => $errors ,
);
/**
* Filter the default user variables used on the user sign - up form .
*
* @ since 3.0 . 0
*
* @ param array $signup_user_defaults {
* An array of default user variables .
*
* @ type string $user_name The user username .
* @ type string $user_email The user email address .
* @ type array $errors An array of possible errors relevant to the sign - up user .
* }
*/
$filtered_results = apply_filters ( 'signup_user_init' , $signup_user_defaults );
2010-01-06 08:50:12 +01:00
$user_name = $filtered_results [ 'user_name' ];
$user_email = $filtered_results [ 'user_email' ];
$errors = $filtered_results [ 'errors' ];
?>
2010-01-15 23:11:12 +01:00
2013-11-13 04:22:48 +01:00
< h2 >< ? php printf ( __ ( 'Get your own %s account in seconds' ), get_current_site () -> site_name ) ?> </h2>
2010-01-06 08:50:12 +01:00
< form id = " setupform " method = " post " action = " wp-signup.php " >
< input type = " hidden " name = " stage " value = " validate-user-signup " />
2013-09-24 17:50:06 +02:00
< ? php
2013-10-22 19:21:32 +02:00
/** This action is documented in wp-signup.php */
2013-09-24 17:50:06 +02:00
do_action ( 'signup_hidden_fields' , 'validate-user' );
?>
2010-01-06 08:50:12 +01:00
< ? php show_user_form ( $user_name , $user_email , $errors ); ?>
2010-01-15 23:11:12 +01:00
2010-01-06 08:50:12 +01:00
< p >
2010-01-16 00:40:29 +01:00
< ? php if ( $active_signup == 'blog' ) { ?>
2010-01-06 08:50:12 +01:00
< input id = " signupblog " type = " hidden " name = " signup_for " value = " blog " />
2010-01-16 00:40:29 +01:00
< ? php } elseif ( $active_signup == 'user' ) { ?>
2010-01-06 08:50:12 +01:00
< input id = " signupblog " type = " hidden " name = " signup_for " value = " user " />
< ? php } else { ?>
2012-02-07 18:12:46 +01:00
< input id = " signupblog " type = " radio " name = " signup_for " value = " blog " < ? php checked ( $signup_for , 'blog' ); ?> />
2010-02-24 21:45:02 +01:00
< label class = " checkbox " for = " signupblog " >< ? php _e ( 'Gimme a site!' ) ?> </label>
2010-01-15 23:11:12 +01:00
< br />
2012-02-07 18:12:46 +01:00
< input id = " signupuser " type = " radio " name = " signup_for " value = " user " < ? php checked ( $signup_for , 'user' ); ?> />
2010-01-06 08:50:12 +01:00
< label class = " checkbox " for = " signupuser " >< ? php _e ( 'Just a username, please.' ) ?> </label>
< ? php } ?>
</ p >
2010-01-15 23:11:12 +01:00
2010-10-29 02:31:27 +02:00
< p class = " submit " >< input type = " submit " name = " submit " class = " submit " value = " <?php esc_attr_e('Next') ?> " /></ p >
2010-01-06 08:50:12 +01:00
</ form >
< ? php
}
2013-01-31 04:13:22 +01:00
/**
* Validate the new user signup
*
* @ since MU
*
* @ uses validate_user_form () to retrieve an array of the user data
* @ uses wpmu_signup_user () to signup the new user
* @ uses confirm_user_signup () to confirm the new user signup
* @ return bool True if new user signup was validated , false if error
*/
2010-01-06 08:50:12 +01:00
function validate_user_signup () {
$result = validate_user_form ();
2014-05-16 16:46:25 +02:00
$user_name = $result [ 'user_name' ];
2014-05-16 16:52:04 +02:00
$user_email = $result [ 'user_email' ];
2014-05-16 16:46:25 +02:00
$errors = $result [ 'errors' ];
2010-01-06 08:50:12 +01:00
if ( $errors -> get_error_code () ) {
signup_user ( $user_name , $user_email , $errors );
return false ;
}
if ( 'blog' == $_POST [ 'signup_for' ] ) {
signup_blog ( $user_name , $user_email );
return false ;
}
2013-10-22 19:21:32 +02:00
/** This filter is documented in wp-signup.php */
2013-09-29 01:41:07 +02:00
wpmu_signup_user ( $user_name , $user_email , apply_filters ( 'add_signup_meta' , array () ) );
2010-01-06 08:50:12 +01:00
confirm_user_signup ( $user_name , $user_email );
return true ;
}
2013-01-31 04:13:22 +01:00
/**
* New user signup confirmation
*
* @ since MU
*
* @ param string $user_name The username
* @ param string $user_email The user ' s email address
*/
2010-01-06 08:50:12 +01:00
function confirm_user_signup ( $user_name , $user_email ) {
?>
2010-04-11 12:41:54 +02:00
< h2 >< ? php printf ( __ ( '%s is your new username' ), $user_name ) ?> </h2>
< p >< ? php _e ( 'But, before you can start using your new username, <strong>you must activate it</strong>.' ) ?> </p>
2012-04-21 08:40:31 +02:00
< p >< ? php printf ( __ ( 'Check your inbox at <strong>%s</strong> and click the link given.' ), $user_email ); ?> </p>
2010-04-11 12:41:54 +02:00
< p >< ? php _e ( 'If you do not activate your username within two days, you will have to sign up again.' ); ?> </p>
2010-01-06 08:50:12 +01:00
< ? php
2013-10-22 19:21:32 +02:00
/** This action is documented in wp-signup.php */
2010-04-11 12:41:54 +02:00
do_action ( 'signup_finished' );
2010-01-06 08:50:12 +01:00
}
2013-01-31 04:13:22 +01:00
/**
* Setup the new site signup
*
* @ since MU
*
* @ uses apply_filters () to filter $filtered_results
* @ uses show_blog_form () to display the blog signup form
* @ param string $user_name The username
* @ param string $user_email The user ' s email address
* @ param string $blogname The site name
* @ param string $blog_title The site title
* @ param array $errors
*/
2010-01-06 08:50:12 +01:00
function signup_blog ( $user_name = '' , $user_email = '' , $blogname = '' , $blog_title = '' , $errors = '' ) {
if ( ! is_wp_error ( $errors ) )
$errors = new WP_Error ();
2013-09-29 01:41:07 +02:00
$signup_blog_defaults = array (
'user_name' => $user_name ,
'user_email' => $user_email ,
'blogname' => $blogname ,
'blog_title' => $blog_title ,
'errors' => $errors
);
/**
* Filter the default site creation variables for the site sign - up form .
*
* @ since 3.0 . 0
*
* @ param array $signup_blog_defaults {
* An array of default site creation variables .
*
* @ type string $user_name The user username .
* @ type string $user_email The user email address .
* @ type string $blogname The blogname .
* @ type string $blog_title The title of the site .
* @ type array $errors An array of possible errors relevant to new site creation variables .
* }
*/
$filtered_results = apply_filters ( 'signup_blog_init' , $signup_blog_defaults );
2010-01-06 08:50:12 +01:00
$user_name = $filtered_results [ 'user_name' ];
$user_email = $filtered_results [ 'user_email' ];
$blogname = $filtered_results [ 'blogname' ];
$blog_title = $filtered_results [ 'blog_title' ];
$errors = $filtered_results [ 'errors' ];
if ( empty ( $blogname ) )
$blogname = $user_name ;
?>
< form id = " setupform " method = " post " action = " wp-signup.php " >
< input type = " hidden " name = " stage " value = " validate-blog-signup " />
2010-01-07 04:40:03 +01:00
< input type = " hidden " name = " user_name " value = " <?php echo esc_attr( $user_name ) ?> " />
< input type = " hidden " name = " user_email " value = " <?php echo esc_attr( $user_email ) ?> " />
2013-09-24 17:50:06 +02:00
< ? php
2013-10-22 19:21:32 +02:00
/** This action is documented in wp-signup.php */
2013-09-24 17:50:06 +02:00
do_action ( 'signup_hidden_fields' , 'validate-site' );
?>
2010-01-06 08:50:12 +01:00
< ? php show_blog_form ( $blogname , $blog_title , $errors ); ?>
2010-10-29 02:31:27 +02:00
< p class = " submit " >< input type = " submit " name = " submit " class = " submit " value = " <?php esc_attr_e('Signup') ?> " /></ p >
2010-01-06 08:50:12 +01:00
</ form >
< ? php
}
2013-01-31 04:13:22 +01:00
/**
* Validate new site signup
*
* @ since MU
*
* @ uses wpmu_validate_user_signup () to retrieve an array of the new user data and errors
* @ uses wpmu_validate_blog_signup () to retrieve an array of the new site data and errors
* @ uses apply_filters () to make signup $meta filterable
* @ uses signup_user () to signup a new user
* @ uses signup_blog () to signup a the new user to a new site
* @ return bool True if the site signup was validated , false if error
*/
2010-01-06 08:50:12 +01:00
function validate_blog_signup () {
// Re-validate user info.
2014-05-16 16:52:04 +02:00
$user_result = wpmu_validate_user_signup ( $_POST [ 'user_name' ], $_POST [ 'user_email' ] );
$user_name = $user_result [ 'user_name' ];
$user_email = $user_result [ 'user_email' ];
$user_errors = $user_result [ 'errors' ];
2010-01-06 08:50:12 +01:00
2014-05-16 16:52:04 +02:00
if ( $user_errors -> get_error_code () ) {
signup_user ( $user_name , $user_email , $user_errors );
2010-01-06 08:50:12 +01:00
return false ;
}
2014-05-16 16:52:04 +02:00
$result = wpmu_validate_blog_signup ( $_POST [ 'blogname' ], $_POST [ 'blog_title' ] );
$domain = $result [ 'domain' ];
$path = $result [ 'path' ];
$blogname = $result [ 'blogname' ];
$blog_title = $result [ 'blog_title' ];
$errors = $result [ 'errors' ];
2010-01-06 08:50:12 +01:00
if ( $errors -> get_error_code () ) {
signup_blog ( $user_name , $user_email , $blogname , $blog_title , $errors );
return false ;
}
$public = ( int ) $_POST [ 'blog_public' ];
2014-05-16 16:52:04 +02:00
$signup_meta = array ( 'lang_id' => 1 , 'public' => $public );
2013-09-29 01:41:07 +02:00
2013-10-22 19:21:32 +02:00
/** This filter is documented in wp-signup.php */
2014-05-16 16:52:04 +02:00
$meta = apply_filters ( 'add_signup_meta' , $signup_meta );
2010-01-06 08:50:12 +01:00
wpmu_signup_blog ( $domain , $path , $blog_title , $user_name , $user_email , $meta );
confirm_blog_signup ( $domain , $path , $blog_title , $user_name , $user_email , $meta );
return true ;
}
2013-01-31 04:13:22 +01:00
/**
* New site signup confirmation
*
* @ since MU
*
* @ param string $domain The domain URL
* @ param string $path The site root path
* @ param string $blog_title The new site title
* @ param string $user_name The user ' s username
* @ param string $user_email The user ' s email address
2013-05-15 19:54:02 +02:00
* @ param array $meta Any additional meta from the 'add_signup_meta' filter in validate_blog_signup ()
2013-01-31 04:13:22 +01:00
*/
2013-04-29 15:26:31 +02:00
function confirm_blog_signup ( $domain , $path , $blog_title , $user_name = '' , $user_email = '' , $meta = array () ) {
2010-01-06 08:50:12 +01:00
?>
2010-04-11 12:41:54 +02:00
< h2 >< ? php printf ( __ ( 'Congratulations! Your new site, %s, is almost ready.' ), " <a href='http:// { $domain } { $path } '> { $blog_title } </a> " ) ?> </h2>
2010-01-15 23:11:12 +01:00
2010-04-11 12:41:54 +02:00
< p >< ? php _e ( 'But, before you can start using your site, <strong>you must activate it</strong>.' ) ?> </p>
2010-05-12 02:45:01 +02:00
< p >< ? php printf ( __ ( 'Check your inbox at <strong>%s</strong> and click the link given.' ), $user_email ) ?> </p>
2010-04-11 12:41:54 +02:00
< p >< ? php _e ( 'If you do not activate your site within two days, you will have to sign up again.' ); ?> </p>
< h2 >< ? php _e ( 'Still waiting for your email?' ); ?> </h2>
2010-01-06 08:50:12 +01:00
< p >
2010-04-11 12:41:54 +02:00
< ? php _e ( 'If you haven’t received your email yet, there are a number of things you can do:' ) ?>
2010-01-06 08:50:12 +01:00
< ul id = " noemail-tips " >
2010-05-12 02:45:01 +02:00
< li >< p >< strong >< ? php _e ( 'Wait a little longer. Sometimes delivery of email can be delayed by processes outside of our control.' ) ?> </strong></p></li>
< li >< p >< ? php _e ( 'Check the junk or spam folder of your email client. Sometime emails wind up there by mistake.' ) ?> </p></li>
2013-04-22 22:49:24 +02:00
< li >< ? php printf ( __ ( 'Have you entered your email correctly? You have entered %s, if it’s incorrect, you will not receive your email.' ), $user_email ) ?> </li>
2010-01-06 08:50:12 +01:00
</ ul >
</ p >
< ? php
2013-10-22 19:21:32 +02:00
/** This action is documented in wp-signup.php */
2010-04-11 12:41:54 +02:00
do_action ( 'signup_finished' );
2010-01-06 08:50:12 +01:00
}
// Main
2013-08-24 00:59:09 +02:00
$active_signup = get_site_option ( 'registration' , 'none' );
2013-09-29 01:41:07 +02:00
/**
* Filter the type of site sign - up .
*
* @ since 3.0 . 0
*
* @ param string $active_signup String that returns registration type . The value can be
* 'all' , 'none' , 'blog' , or 'user' .
*/
$active_signup = apply_filters ( 'wpmu_active_signup' , $active_signup );
2010-01-06 08:50:12 +01:00
2010-05-23 23:05:04 +02:00
// Make the signup type translatable.
2010-05-25 19:53:34 +02:00
$i18n_signup [ 'all' ] = _x ( 'all' , 'Multisite active signup type' );
$i18n_signup [ 'none' ] = _x ( 'none' , 'Multisite active signup type' );
$i18n_signup [ 'blog' ] = _x ( 'blog' , 'Multisite active signup type' );
$i18n_signup [ 'user' ] = _x ( 'user' , 'Multisite active signup type' );
2010-05-23 23:05:04 +02:00
2010-01-16 00:40:29 +01:00
if ( is_super_admin () )
2010-12-06 20:26:26 +01:00
echo '<div class="mu_alert">' . sprintf ( __ ( 'Greetings Site Administrator! You are currently allowing “%s” registrations. To change or disable registration go to your <a href="%s">Options page</a>.' ), $i18n_signup [ $active_signup ], esc_url ( network_admin_url ( 'settings.php' ) ) ) . '</div>' ;
2010-01-06 08:50:12 +01:00
$newblogname = isset ( $_GET [ 'new' ]) ? strtolower ( preg_replace ( '/^-|-$|[^-a-zA-Z0-9]/' , '' , $_GET [ 'new' ])) : null ;
$current_user = wp_get_current_user ();
2011-05-23 00:30:05 +02:00
if ( $active_signup == 'none' ) {
2010-04-11 12:41:54 +02:00
_e ( 'Registration has been disabled.' );
2010-01-16 00:40:29 +01:00
} elseif ( $active_signup == 'blog' && ! is_user_logged_in () ) {
2012-09-11 14:27:25 +02:00
$login_url = site_url ( 'wp-login.php?redirect_to=' . urlencode ( network_site_url ( 'wp-signup.php' ) ) );
2010-04-11 12:41:54 +02:00
echo sprintf ( __ ( 'You must first <a href="%s">log in</a>, and then you can create a new site.' ), $login_url );
2010-01-06 08:50:12 +01:00
} else {
2010-03-04 19:38:39 +01:00
$stage = isset ( $_POST [ 'stage' ] ) ? $_POST [ 'stage' ] : 'default' ;
switch ( $stage ) {
2010-01-06 08:50:12 +01:00
case 'validate-user-signup' :
2010-01-18 21:34:48 +01:00
if ( $active_signup == 'all' || $_POST [ 'signup_for' ] == 'blog' && $active_signup == 'blog' || $_POST [ 'signup_for' ] == 'user' && $active_signup == 'user' )
2010-01-06 08:50:12 +01:00
validate_user_signup ();
else
2010-04-11 12:41:54 +02:00
_e ( 'User registration has been disabled.' );
2010-01-06 08:50:12 +01:00
break ;
case 'validate-blog-signup' :
2010-01-16 00:40:29 +01:00
if ( $active_signup == 'all' || $active_signup == 'blog' )
2010-01-06 08:50:12 +01:00
validate_blog_signup ();
else
2010-04-11 12:41:54 +02:00
_e ( 'Site registration has been disabled.' );
2010-01-06 08:50:12 +01:00
break ;
case 'gimmeanotherblog' :
validate_another_blog_signup ();
break ;
2010-03-04 19:38:39 +01:00
case 'default' :
2010-01-06 08:50:12 +01:00
default :
2010-03-04 19:38:39 +01:00
$user_email = isset ( $_POST [ 'user_email' ] ) ? $_POST [ 'user_email' ] : '' ;
2013-09-29 01:41:07 +02:00
/**
* Fires when the site sign - up form is sent .
*
* @ since 3.0 . 0
*/
do_action ( 'preprocess_signup_form' );
2010-01-16 00:40:29 +01:00
if ( is_user_logged_in () && ( $active_signup == 'all' || $active_signup == 'blog' ) )
2010-01-06 08:50:12 +01:00
signup_another_blog ( $newblogname );
2010-01-18 21:34:48 +01:00
elseif ( is_user_logged_in () == false && ( $active_signup == 'all' || $active_signup == 'user' ) )
2010-01-06 08:50:12 +01:00
signup_user ( $newblogname , $user_email );
2010-01-18 21:34:48 +01:00
elseif ( is_user_logged_in () == false && ( $active_signup == 'blog' ) )
2010-05-12 02:45:01 +02:00
_e ( 'Sorry, new registrations are not allowed at this time.' );
2010-01-16 00:40:29 +01:00
else
2010-04-11 12:41:54 +02:00
_e ( 'You are logged in already. No need to register again!' );
2010-01-16 00:40:29 +01:00
2010-05-17 00:36:58 +02:00
if ( $newblogname ) {
$newblog = get_blogaddress_by_name ( $newblogname );
2010-01-16 00:40:29 +01:00
if ( $active_signup == 'blog' || $active_signup == 'all' )
2013-04-22 22:49:24 +02:00
printf ( '<p><em>' . __ ( 'The site you were looking for, <strong>%s</strong>, does not exist, but you can create it now!' ) . '</em></p>' , $newblog );
2010-01-06 08:50:12 +01:00
else
2013-04-22 22:49:24 +02:00
printf ( '<p><em>' . __ ( 'The site you were looking for, <strong>%s</strong>, does not exist.' ) . '</em></p>' , $newblog );
2010-01-06 08:50:12 +01:00
}
break ;
}
}
?>
</ div >
</ div >
2013-09-29 01:41:07 +02:00
< ? php
/**
* Fires after the sign - up forms , before wp_footer .
*
* @ since 3.0 . 0
*/
do_action ( 'after_signup_form' ); ?>
2010-01-06 08:50:12 +01:00
< ? php get_footer (); ?>