wp-signup.php 30.4 KB
Newer Older
godog's avatar
godog committed
1 2 3
<?php

/** Sets up the WordPress Environment. */
samba's avatar
samba committed
4
require( dirname( __FILE__ ) . '/wp-load.php' );
godog's avatar
godog committed
5

root's avatar
root committed
6
add_action( 'wp_head', 'wp_no_robots' );
godog's avatar
godog committed
7

lucha's avatar
lucha committed
8
require( dirname( __FILE__ ) . '/wp-blog-header.php' );
godog's avatar
godog committed
9

kiki's avatar
kiki committed
10 11
nocache_headers();

samba's avatar
samba committed
12
if ( is_array( get_site_option( 'illegal_names' ) ) && isset( $_GET['new'] ) && in_array( $_GET['new'], get_site_option( 'illegal_names' ) ) ) {
godog's avatar
godog committed
13 14 15 16
	wp_redirect( network_home_url() );
	die();
}

lechuck's avatar
lechuck committed
17 18 19
/**
 * Prints signup_header via wp_head
 *
lucha's avatar
lucha committed
20
 * @since MU (3.0.0)
lechuck's avatar
lechuck committed
21
 */
godog's avatar
godog committed
22
function do_signup_header() {
lucha's avatar
lucha committed
23
	/**
lechuck's avatar
lechuck committed
24
	 * Fires within the head section of the site sign-up screen.
lucha's avatar
lucha committed
25 26 27
	 *
	 * @since 3.0.0
	 */
shammash's avatar
shammash committed
28
	do_action( 'signup_header' );
godog's avatar
godog committed
29 30 31
}
add_action( 'wp_head', 'do_signup_header' );

samba's avatar
samba committed
32
if ( ! is_multisite() ) {
lechuck's avatar
lechuck committed
33
	wp_redirect( wp_registration_url() );
godog's avatar
godog committed
34 35 36
	die();
}

samba's avatar
samba committed
37
if ( ! is_main_site() ) {
lechuck's avatar
lechuck committed
38
	wp_redirect( network_site_url( 'wp-signup.php' ) );
godog's avatar
godog committed
39 40 41 42 43 44
	die();
}

// Fix for page title
$wp_query->is_404 = false;

lechuck's avatar
lechuck committed
45 46 47 48 49 50 51
/**
 * Fires before the Site Signup page is loaded.
 *
 * @since 4.4.0
 */
do_action( 'before_signup_header' );

lechuck's avatar
lechuck committed
52 53 54
/**
 * Prints styles for front-end Multisite signup pages
 *
lucha's avatar
lucha committed
55
 * @since MU (3.0.0)
lechuck's avatar
lechuck committed
56
 */
godog's avatar
godog committed
57 58 59 60 61
function wpmu_signup_stylesheet() {
	?>
	<style type="text/css">
		.mu_register { width: 90%; margin:0 auto; }
		.mu_register form { margin-top: 2em; }
samba's avatar
samba committed
62
		.mu_register .error { font-weight: 600; padding: 10px; color: #333333; background: #FFEBE8; border: 1px solid #CC0000; }
godog's avatar
godog committed
63 64 65 66 67
		.mu_register input[type="submit"],
			.mu_register #blog_title,
			.mu_register #user_email,
			.mu_register #blogname,
			.mu_register #user_name { width:100%; font-size: 24px; margin:5px 0; }
lechuck's avatar
lechuck committed
68
		.mu_register #site-language { display: block; }
godog's avatar
godog committed
69
		.mu_register .prefix_address,
samba's avatar
samba committed
70 71
			.mu_register .suffix_address { font-size: 18px; display:inline; }
		.mu_register label { font-weight: 600; font-size: 15px; display: block; margin: 10px 0; }
godog's avatar
godog committed
72
		.mu_register label.checkbox { display:inline; }
samba's avatar
samba committed
73
		.mu_register .mu_alert { font-weight: 600; padding: 10px; color: #333333; background: #ffffe0; border: 1px solid #e6db55; }
godog's avatar
godog committed
74 75 76 77 78
	</style>
	<?php
}

add_action( 'wp_head', 'wpmu_signup_stylesheet' );
lechuck's avatar
lechuck committed
79
get_header( 'wp-signup' );
godog's avatar
godog committed
80

lucha's avatar
lucha committed
81 82 83 84 85
/**
 * Fires before the site sign-up form.
 *
 * @since 3.0.0
 */
godog's avatar
godog committed
86 87
do_action( 'before_signup_form' );
?>
lechuck's avatar
lechuck committed
88 89
<div id="signup-content" class="widecolumn">
<div class="mu_register wp-signup-container">
godog's avatar
godog committed
90
<?php
lechuck's avatar
lechuck committed
91 92 93
/**
 * Generates and displays the Signup and Create Site forms
 *
lucha's avatar
lucha committed
94
 * @since MU (3.0.0)
lechuck's avatar
lechuck committed
95
 *
lucha's avatar
lucha committed
96 97 98
 * @param string          $blogname   The new site name.
 * @param string          $blog_title The new site title.
 * @param WP_Error|string $errors     A WP_Error object containing existing errors. Defaults to empty string.
lechuck's avatar
lechuck committed
99
 */
lucha's avatar
lucha committed
100
function show_blog_form( $blogname = '', $blog_title = '', $errors = '' ) {
lucha's avatar
lucha committed
101 102 103 104
	if ( ! is_wp_error( $errors ) ) {
		$errors = new WP_Error();
	}

lucha's avatar
lucha committed
105
	$current_network = get_network();
samba's avatar
samba committed
106 107 108 109 110 111
	// Blog name.
	if ( ! is_subdomain_install() ) {
		echo '<label for="blogname">' . __( 'Site Name:' ) . '</label>';
	} else {
		echo '<label for="blogname">' . __( 'Site Domain:' ) . '</label>';
	}
godog's avatar
godog committed
112

samba's avatar
samba committed
113 114 115 116 117 118
	$errmsg = $errors->get_error_message( 'blogname' );
	if ( $errmsg ) {
		?>
		<p class="error"><?php echo $errmsg; ?></p>
		<?php
	}
godog's avatar
godog committed
119

samba's avatar
samba committed
120 121 122 123 124 125
	if ( ! is_subdomain_install() ) {
		echo '<span class="prefix_address">' . $current_network->domain . $current_network->path . '</span><input name="blogname" type="text" id="blogname" value="' . esc_attr( $blogname ) . '" maxlength="60" /><br />';
	} else {
		$site_domain = preg_replace( '|^www\.|', '', $current_network->domain );
		echo '<input name="blogname" type="text" id="blogname" value="' . esc_attr( $blogname ) . '" maxlength="60" /><span class="suffix_address">.' . esc_html( $site_domain ) . '</span><br />';
	}
godog's avatar
godog committed
126

lucha's avatar
lucha committed
127 128
	if ( ! is_user_logged_in() ) {
		if ( ! is_subdomain_install() ) {
lucha's avatar
lucha committed
129
			$site = $current_network->domain . $current_network->path . __( 'sitename' );
lucha's avatar
lucha committed
130
		} else {
lucha's avatar
lucha committed
131
			$site = __( 'domain' ) . '.' . $site_domain . $current_network->path;
lucha's avatar
lucha committed
132 133
		}

agata's avatar
agata committed
134 135 136 137 138 139
		printf(
			'<p>(<strong>%s</strong>) %s</p>',
			/* translators: %s: Site address. */
			sprintf( __( 'Your address will be %s.' ), $site ),
			__( 'Must be at least 4 characters, letters and numbers only. It cannot be changed, so choose carefully!' )
		);
godog's avatar
godog committed
140 141 142 143
	}

	// Blog Title
	?>
samba's avatar
samba committed
144 145 146 147 148 149 150 151 152
	<label for="blog_title"><?php _e( 'Site Title:' ); ?></label>
	<?php
	$errmsg = $errors->get_error_message( 'blog_title' );
	if ( $errmsg ) {
		?>
		<p class="error"><?php echo $errmsg; ?></p>
		<?php
	}
	echo '<input name="blog_title" type="text" id="blog_title" value="' . esc_attr( $blog_title ) . '" />';
godog's avatar
godog committed
153 154
	?>

lechuck's avatar
lechuck committed
155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175
	<?php
	// Site Language.
	$languages = signup_get_available_languages();

	if ( ! empty( $languages ) ) :
		?>
		<p>
			<label for="site-language"><?php _e( 'Site Language:' ); ?></label>
			<?php
			// Network default.
			$lang = get_site_option( 'WPLANG' );

			if ( isset( $_POST['WPLANG'] ) ) {
				$lang = $_POST['WPLANG'];
			}

			// Use US English if the default isn't available.
			if ( ! in_array( $lang, $languages ) ) {
				$lang = '';
			}

samba's avatar
samba committed
176 177 178 179 180 181 182 183 184
			wp_dropdown_languages(
				array(
					'name'                        => 'WPLANG',
					'id'                          => 'site-language',
					'selected'                    => $lang,
					'languages'                   => $languages,
					'show_available_translations' => false,
				)
			);
lechuck's avatar
lechuck committed
185 186
			?>
		</p>
samba's avatar
samba committed
187 188 189 190 191 192 193 194 195 196 197
		<?php
		endif; // Languages.

		$blog_public_on_checked  = '';
		$blog_public_off_checked = '';
	if ( isset( $_POST['blog_public'] ) && '0' == $_POST['blog_public'] ) {
		$blog_public_off_checked = 'checked="checked"';
	} else {
		$blog_public_on_checked = 'checked="checked"';
	}
	?>
lechuck's avatar
lechuck committed
198

godog's avatar
godog committed
199
	<div id="privacy">
samba's avatar
samba committed
200 201 202 203 204 205 206 207 208 209 210 211 212
		<p class="privacy-intro">
			<label for="blog_public_on"><?php _e( 'Privacy:' ); ?></label>
			<?php _e( 'Allow search engines to index this site.' ); ?>
			<br style="clear:both" />
			<label class="checkbox" for="blog_public_on">
				<input type="radio" id="blog_public_on" name="blog_public" value="1" <?php echo $blog_public_on_checked; ?> />
				<strong><?php _e( 'Yes' ); ?></strong>
			</label>
			<label class="checkbox" for="blog_public_off">
				<input type="radio" id="blog_public_off" name="blog_public" value="0" <?php echo $blog_public_off_checked; ?> />
				<strong><?php _e( 'No' ); ?></strong>
			</label>
		</p>
godog's avatar
godog committed
213 214 215
	</div>

	<?php
lucha's avatar
lucha committed
216 217 218 219 220
	/**
	 * Fires after the site sign-up form.
	 *
	 * @since 3.0.0
	 *
lucha's avatar
lucha committed
221
	 * @param WP_Error $errors A WP_Error object possibly containing 'blogname' or 'blog_title' errors.
lucha's avatar
lucha committed
222 223
	 */
	do_action( 'signup_blogform', $errors );
godog's avatar
godog committed
224 225
}

lechuck's avatar
lechuck committed
226 227 228
/**
 * Validate the new site signup
 *
lucha's avatar
lucha committed
229
 * @since MU (3.0.0)
lechuck's avatar
lechuck committed
230 231 232
 *
 * @return array Contains the new site data and error messages.
 */
godog's avatar
godog committed
233 234
function validate_blog_form() {
	$user = '';
samba's avatar
samba committed
235
	if ( is_user_logged_in() ) {
godog's avatar
godog committed
236
		$user = wp_get_current_user();
samba's avatar
samba committed
237
	}
godog's avatar
godog committed
238

samba's avatar
samba committed
239
	return wpmu_validate_blog_signup( $_POST['blogname'], $_POST['blog_title'], $user );
godog's avatar
godog committed
240 241
}

lechuck's avatar
lechuck committed
242 243 244
/**
 * Display user registration form
 *
lucha's avatar
lucha committed
245
 * @since MU (3.0.0)
lechuck's avatar
lechuck committed
246
 *
lucha's avatar
lucha committed
247 248 249
 * @param string          $user_name  The entered username.
 * @param string          $user_email The entered email address.
 * @param WP_Error|string $errors     A WP_Error object containing existing errors. Defaults to empty string.
lechuck's avatar
lechuck committed
250
 */
samba's avatar
samba committed
251
function show_user_form( $user_name = '', $user_email = '', $errors = '' ) {
lucha's avatar
lucha committed
252 253 254 255
	if ( ! is_wp_error( $errors ) ) {
		$errors = new WP_Error();
	}

godog's avatar
godog committed
256
	// User name
samba's avatar
samba committed
257 258 259 260
	echo '<label for="user_name">' . __( 'Username:' ) . '</label>';
	$errmsg = $errors->get_error_message( 'user_name' );
	if ( $errmsg ) {
		echo '<p class="error">' . $errmsg . '</p>';
godog's avatar
godog committed
261
	}
samba's avatar
samba committed
262
	echo '<input name="user_name" type="text" id="user_name" value="' . esc_attr( $user_name ) . '" autocapitalize="none" autocorrect="off" maxlength="60" /><br />';
godog's avatar
godog committed
263 264 265
	_e( '(Must be at least 4 characters, letters and numbers only.)' );
	?>

samba's avatar
samba committed
266 267 268 269 270 271
	<label for="user_email"><?php _e( 'Email&nbsp;Address:' ); ?></label>
	<?php
	$errmsg = $errors->get_error_message( 'user_email' );
	if ( $errmsg ) {
		?>
		<p class="error"><?php echo $errmsg; ?></p>
godog's avatar
godog committed
272
	<?php } ?>
samba's avatar
samba committed
273
	<input name="user_email" type="email" 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.)' ); ?>
godog's avatar
godog committed
274
	<?php
samba's avatar
samba committed
275 276
	$errmsg = $errors->get_error_message( 'generic' );
	if ( $errmsg ) {
godog's avatar
godog committed
277 278
		echo '<p class="error">' . $errmsg . '</p>';
	}
lucha's avatar
lucha committed
279 280 281 282 283
	/**
	 * Fires at the end of the user registration form on the site sign-up form.
	 *
	 * @since 3.0.0
	 *
lucha's avatar
lucha committed
284
	 * @param WP_Error $errors A WP_Error object containing 'user_name' or 'user_email' errors.
lucha's avatar
lucha committed
285
	 */
godog's avatar
godog committed
286 287 288
	do_action( 'signup_extra_fields', $errors );
}

lechuck's avatar
lechuck committed
289 290 291
/**
 * Validate user signup name and email
 *
lucha's avatar
lucha committed
292
 * @since MU (3.0.0)
lechuck's avatar
lechuck committed
293 294 295
 *
 * @return array Contains username, email, and error messages.
 */
godog's avatar
godog committed
296
function validate_user_form() {
samba's avatar
samba committed
297
	return wpmu_validate_user_signup( $_POST['user_name'], $_POST['user_email'] );
godog's avatar
godog committed
298 299
}

lechuck's avatar
lechuck committed
300 301 302
/**
 * Allow returning users to sign up for another site
 *
lucha's avatar
lucha committed
303
 * @since MU (3.0.0)
lechuck's avatar
lechuck committed
304
 *
lucha's avatar
lucha committed
305 306 307
 * @param string          $blogname   The new site name
 * @param string          $blog_title The new site title.
 * @param WP_Error|string $errors     A WP_Error object containing existing errors. Defaults to empty string.
lechuck's avatar
lechuck committed
308
 */
lucha's avatar
lucha committed
309
function signup_another_blog( $blogname = '', $blog_title = '', $errors = '' ) {
godog's avatar
godog committed
310 311
	$current_user = wp_get_current_user();

samba's avatar
samba committed
312
	if ( ! is_wp_error( $errors ) ) {
godog's avatar
godog committed
313 314 315
		$errors = new WP_Error();
	}

lucha's avatar
lucha committed
316 317 318
	$signup_defaults = array(
		'blogname'   => $blogname,
		'blog_title' => $blog_title,
samba's avatar
samba committed
319
		'errors'     => $errors,
lucha's avatar
lucha committed
320 321 322
	);

	/**
lucha's avatar
lucha committed
323
	 * Filters the default site sign-up variables.
lucha's avatar
lucha committed
324 325 326 327 328 329
	 *
	 * @since 3.0.0
	 *
	 * @param array $signup_defaults {
	 *     An array of default site sign-up variables.
	 *
lucha's avatar
lucha committed
330 331 332
	 *     @type string   $blogname   The site blogname.
	 *     @type string   $blog_title The site title.
	 *     @type WP_Error $errors     A WP_Error object possibly containing 'blogname' or 'blog_title' errors.
lucha's avatar
lucha committed
333 334 335 336
	 * }
	 */
	$filtered_results = apply_filters( 'signup_another_blog_init', $signup_defaults );

samba's avatar
samba committed
337
	$blogname   = $filtered_results['blogname'];
godog's avatar
godog committed
338
	$blog_title = $filtered_results['blog_title'];
samba's avatar
samba committed
339
	$errors     = $filtered_results['errors'];
godog's avatar
godog committed
340

agata's avatar
agata committed
341
	/* translators: %s: Network title. */
lucha's avatar
lucha committed
342
	echo '<h2>' . sprintf( __( 'Get <em>another</em> %s site in seconds' ), get_network()->site_name ) . '</h2>';
godog's avatar
godog committed
343

samba's avatar
samba committed
344
	if ( $errors->has_errors() ) {
godog's avatar
godog committed
345 346 347
		echo '<p>' . __( 'There was a problem, please correct the form below and try again.' ) . '</p>';
	}
	?>
samba's avatar
samba committed
348 349 350 351 352 353 354 355 356
	<p>
		<?php
		printf(
			/* translators: %s: Current user's display name. */
			__( '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&#8217;s content, but write responsibly!' ),
			$current_user->display_name
		);
		?>
	</p>
godog's avatar
godog committed
357 358

	<?php
samba's avatar
samba committed
359 360 361
	$blogs = get_blogs_of_user( $current_user->ID );
	if ( ! empty( $blogs ) ) {
		?>
godog's avatar
godog committed
362

samba's avatar
samba committed
363
			<p><?php _e( 'Sites you are already a member of:' ); ?></p>
godog's avatar
godog committed
364
			<ul>
samba's avatar
samba committed
365 366
				<?php
				foreach ( $blogs as $blog ) {
godog's avatar
godog committed
367 368
					$home_url = get_home_url( $blog->userblog_id );
					echo '<li><a href="' . esc_url( $home_url ) . '">' . $home_url . '</a></li>';
samba's avatar
samba committed
369 370
				}
				?>
godog's avatar
godog committed
371 372 373
			</ul>
	<?php } ?>

samba's avatar
samba committed
374
	<p><?php _e( 'If you&#8217;re not going to use a great site domain, leave it for a new user. Now have at it!' ); ?></p>
godog's avatar
godog committed
375 376
	<form id="setupform" method="post" action="wp-signup.php">
		<input type="hidden" name="stage" value="gimmeanotherblog" />
lucha's avatar
lucha committed
377 378 379 380
		<?php
		/**
		 * Hidden sign-up form fields output when creating another site or user.
		 *
lucha's avatar
lucha committed
381
		 * @since MU (3.0.0)
lucha's avatar
lucha committed
382 383 384 385 386 387
		 *
		 * @param string $context A string describing the steps of the sign-up process. The value can be
		 *                        'create-another-site', 'validate-user', or 'validate-site'.
		 */
		do_action( 'signup_hidden_fields', 'create-another-site' );
		?>
samba's avatar
samba committed
388 389
		<?php show_blog_form( $blogname, $blog_title, $errors ); ?>
		<p class="submit"><input type="submit" name="submit" class="submit" value="<?php esc_attr_e( 'Create Site' ); ?>" /></p>
godog's avatar
godog committed
390 391 392 393
	</form>
	<?php
}

lechuck's avatar
lechuck committed
394
/**
samba's avatar
samba committed
395 396 397 398 399 400 401
 * Validate a new site signup for an existing user.
 *
 * @global string          $blogname   The new site's subdomain or directory name.
 * @global string          $blog_title The new site's title.
 * @global WP_Error        $errors     Existing errors in the global scope.
 * @global string          $domain     The new site's domain.
 * @global string          $path       The new site's path.
lechuck's avatar
lechuck committed
402
 *
lucha's avatar
lucha committed
403
 * @since MU (3.0.0)
lechuck's avatar
lechuck committed
404
 *
lechuck's avatar
lechuck committed
405
 * @return null|bool True if site signup was validated, false if error.
lechuck's avatar
lechuck committed
406
 *                   The function halts all execution if the user is not logged in.
lechuck's avatar
lechuck committed
407
 */
godog's avatar
godog committed
408
function validate_another_blog_signup() {
lucha's avatar
lucha committed
409
	global $blogname, $blog_title, $errors, $domain, $path;
godog's avatar
godog committed
410
	$current_user = wp_get_current_user();
lechuck's avatar
lechuck committed
411
	if ( ! is_user_logged_in() ) {
godog's avatar
godog committed
412
		die();
lechuck's avatar
lechuck committed
413
	}
godog's avatar
godog committed
414 415

	$result = validate_blog_form();
lucha's avatar
lucha committed
416 417

	// Extracted values set/overwrite globals.
samba's avatar
samba committed
418 419 420
	$domain     = $result['domain'];
	$path       = $result['path'];
	$blogname   = $result['blogname'];
lucha's avatar
lucha committed
421
	$blog_title = $result['blog_title'];
samba's avatar
samba committed
422
	$errors     = $result['errors'];
godog's avatar
godog committed
423

samba's avatar
samba committed
424 425
	if ( $errors->has_errors() ) {
		signup_another_blog( $blogname, $blog_title, $errors );
godog's avatar
godog committed
426 427 428 429
		return false;
	}

	$public = (int) $_POST['blog_public'];
lucha's avatar
lucha committed
430 431 432

	$blog_meta_defaults = array(
		'lang_id' => 1,
samba's avatar
samba committed
433
		'public'  => $public,
lucha's avatar
lucha committed
434 435
	);

lechuck's avatar
lechuck committed
436 437 438 439 440 441 442 443 444 445 446 447 448 449
	// Handle the language setting for the new site.
	if ( ! empty( $_POST['WPLANG'] ) ) {

		$languages = signup_get_available_languages();

		if ( in_array( $_POST['WPLANG'], $languages ) ) {
			$language = wp_unslash( sanitize_text_field( $_POST['WPLANG'] ) );

			if ( $language ) {
				$blog_meta_defaults['WPLANG'] = $language;
			}
		}
	}

lucha's avatar
lucha committed
450
	/**
lucha's avatar
lucha committed
451 452 453
	 * Filters the new site meta variables.
	 *
	 * Use the {@see 'add_signup_meta'} filter instead.
lucha's avatar
lucha committed
454
	 *
lucha's avatar
lucha committed
455
	 * @since MU (3.0.0)
lucha's avatar
lucha committed
456
	 * @deprecated 3.0.0 Use the {@see 'add_signup_meta'} filter instead.
lucha's avatar
lucha committed
457 458 459
	 *
	 * @param array $blog_meta_defaults An array of default blog meta variables.
	 */
lucha's avatar
lucha committed
460
	$meta_defaults = apply_filters( 'signup_create_blog_meta', $blog_meta_defaults );
lechuck's avatar
lechuck committed
461

lucha's avatar
lucha committed
462
	/**
lucha's avatar
lucha committed
463
	 * Filters the new default site meta variables.
lucha's avatar
lucha committed
464 465 466 467 468 469 470 471 472 473
	 *
	 * @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.
	 * }
	 */
lucha's avatar
lucha committed
474
	$meta = apply_filters( 'add_signup_meta', $meta_defaults );
godog's avatar
godog committed
475

lucha's avatar
lucha committed
476
	$blog_id = wpmu_create_blog( $domain, $path, $blog_title, $current_user->ID, $meta, get_current_network_id() );
lechuck's avatar
lechuck committed
477 478 479 480 481 482

	if ( is_wp_error( $blog_id ) ) {
		return false;
	}

	confirm_another_blog_signup( $domain, $path, $blog_title, $current_user->user_login, $current_user->user_email, $meta, $blog_id );
godog's avatar
godog committed
483 484 485
	return true;
}

lechuck's avatar
lechuck committed
486
/**
lechuck's avatar
lechuck committed
487
 * Confirm a new site signup.
lechuck's avatar
lechuck committed
488
 *
lucha's avatar
lucha committed
489
 * @since MU (3.0.0)
lechuck's avatar
lechuck committed
490 491 492 493 494 495 496
 * @since 4.4.0 Added the `$blog_id` parameter.
 *
 * @param string $domain     The domain URL.
 * @param string $path       The site root path.
 * @param string $blog_title The site title.
 * @param string $user_name  The username.
 * @param string $user_email The user's email address.
lucha's avatar
lucha committed
497
 * @param array  $meta       Any additional meta from the {@see 'add_signup_meta'} filter in validate_blog_signup().
lechuck's avatar
lechuck committed
498
 * @param int    $blog_id    The site ID.
lechuck's avatar
lechuck committed
499
 */
lechuck's avatar
lechuck committed
500 501 502 503 504 505 506 507 508 509 510 511
function confirm_another_blog_signup( $domain, $path, $blog_title, $user_name, $user_email = '', $meta = array(), $blog_id = 0 ) {

	if ( $blog_id ) {
		switch_to_blog( $blog_id );
		$home_url  = home_url( '/' );
		$login_url = wp_login_url();
		restore_current_blog();
	} else {
		$home_url  = 'http://' . $domain . $path;
		$login_url = 'http://' . $domain . $path . 'wp-login.php';
	}

samba's avatar
samba committed
512 513
	$site = sprintf(
		'<a href="%1$s">%2$s</a>',
lechuck's avatar
lechuck committed
514 515 516 517
		esc_url( $home_url ),
		$blog_title
	);

godog's avatar
godog committed
518
	?>
samba's avatar
samba committed
519 520
	<h2>
	<?php
agata's avatar
agata committed
521
		/* translators: %s: Site title. */
lucha's avatar
lucha committed
522
		printf( __( 'The site %s is yours.' ), $site );
samba's avatar
samba committed
523 524
	?>
	</h2>
godog's avatar
godog committed
525
	<p>
samba's avatar
samba committed
526 527
		<?php
		printf(
agata's avatar
agata committed
528
			/* translators: 1: Link to new site, 2: Login URL, 3: Username. */
lucha's avatar
lucha committed
529 530 531 532 533 534
			__( '%1$s is your new site. <a href="%2$s">Log in</a> as &#8220;%3$s&#8221; using your existing password.' ),
			sprintf(
				'<a href="%s">%s</a>',
				esc_url( $home_url ),
				untrailingslashit( $domain . $path )
			),
lechuck's avatar
lechuck committed
535 536
			esc_url( $login_url ),
			$user_name
samba's avatar
samba committed
537 538
		);
		?>
godog's avatar
godog committed
539 540
	</p>
	<?php
lucha's avatar
lucha committed
541 542 543 544 545
	/**
	 * Fires when the site or user sign-up process is complete.
	 *
	 * @since 3.0.0
	 */
godog's avatar
godog committed
546 547 548
	do_action( 'signup_finished' );
}

lechuck's avatar
lechuck committed
549 550 551
/**
 * Setup the new user signup process
 *
lucha's avatar
lucha committed
552
 * @since MU (3.0.0)
lechuck's avatar
lechuck committed
553
 *
lucha's avatar
lucha committed
554 555 556
 * @param string          $user_name  The username.
 * @param string          $user_email The user's email.
 * @param WP_Error|string $errors     A WP_Error object containing existing errors. Defaults to empty string.
lechuck's avatar
lechuck committed
557
 */
lucha's avatar
lucha committed
558 559
function signup_user( $user_name = '', $user_email = '', $errors = '' ) {
	global $active_signup;
godog's avatar
godog committed
560

samba's avatar
samba committed
561
	if ( ! is_wp_error( $errors ) ) {
godog's avatar
godog committed
562
		$errors = new WP_Error();
samba's avatar
samba committed
563
	}
godog's avatar
godog committed
564

samba's avatar
samba committed
565
	$signup_for = isset( $_POST['signup_for'] ) ? esc_html( $_POST['signup_for'] ) : 'blog';
godog's avatar
godog committed
566

lucha's avatar
lucha committed
567 568 569 570 571 572 573
	$signup_user_defaults = array(
		'user_name'  => $user_name,
		'user_email' => $user_email,
		'errors'     => $errors,
	);

	/**
lucha's avatar
lucha committed
574
	 * Filters the default user variables used on the user sign-up form.
lucha's avatar
lucha committed
575 576 577 578 579 580
	 *
	 * @since 3.0.0
	 *
	 * @param array $signup_user_defaults {
	 *     An array of default user variables.
	 *
lucha's avatar
lucha committed
581 582 583
	 *     @type string   $user_name  The user username.
	 *     @type string   $user_email The user email address.
	 *     @type WP_Error $errors     A WP_Error object with possible errors relevant to the sign-up user.
lucha's avatar
lucha committed
584 585 586
	 * }
	 */
	$filtered_results = apply_filters( 'signup_user_init', $signup_user_defaults );
samba's avatar
samba committed
587 588 589
	$user_name        = $filtered_results['user_name'];
	$user_email       = $filtered_results['user_email'];
	$errors           = $filtered_results['errors'];
godog's avatar
godog committed
590 591 592

	?>

samba's avatar
samba committed
593 594
	<h2>
	<?php
agata's avatar
agata committed
595
		/* translators: %s: Name of the network. */
lucha's avatar
lucha committed
596
		printf( __( 'Get your own %s account in seconds' ), get_network()->site_name );
samba's avatar
samba committed
597 598
	?>
	</h2>
lucha's avatar
lucha committed
599
	<form id="setupform" method="post" action="wp-signup.php" novalidate="novalidate">
godog's avatar
godog committed
600
		<input type="hidden" name="stage" value="validate-user-signup" />
lucha's avatar
lucha committed
601 602 603 604
		<?php
		/** This action is documented in wp-signup.php */
		do_action( 'signup_hidden_fields', 'validate-user' );
		?>
samba's avatar
samba committed
605
		<?php show_user_form( $user_name, $user_email, $errors ); ?>
godog's avatar
godog committed
606 607

		<p>
samba's avatar
samba committed
608
		<?php if ( 'blog' === $active_signup ) { ?>
godog's avatar
godog committed
609
			<input id="signupblog" type="hidden" name="signup_for" value="blog" />
samba's avatar
samba committed
610
		<?php } elseif ( 'user' === $active_signup ) { ?>
godog's avatar
godog committed
611 612
			<input id="signupblog" type="hidden" name="signup_for" value="user" />
		<?php } else { ?>
lechuck's avatar
lechuck committed
613
			<input id="signupblog" type="radio" name="signup_for" value="blog" <?php checked( $signup_for, 'blog' ); ?> />
samba's avatar
samba committed
614
			<label class="checkbox" for="signupblog"><?php _e( 'Gimme a site!' ); ?></label>
godog's avatar
godog committed
615
			<br />
lechuck's avatar
lechuck committed
616
			<input id="signupuser" type="radio" name="signup_for" value="user" <?php checked( $signup_for, 'user' ); ?> />
samba's avatar
samba committed
617
			<label class="checkbox" for="signupuser"><?php _e( 'Just a username, please.' ); ?></label>
godog's avatar
godog committed
618 619 620
		<?php } ?>
		</p>

samba's avatar
samba committed
621
		<p class="submit"><input type="submit" name="submit" class="submit" value="<?php esc_attr_e( 'Next' ); ?>" /></p>
godog's avatar
godog committed
622 623 624 625
	</form>
	<?php
}

lechuck's avatar
lechuck committed
626 627 628
/**
 * Validate the new user signup
 *
lucha's avatar
lucha committed
629
 * @since MU (3.0.0)
lechuck's avatar
lechuck committed
630 631 632
 *
 * @return bool True if new user signup was validated, false if error
 */
godog's avatar
godog committed
633
function validate_user_signup() {
samba's avatar
samba committed
634 635
	$result     = validate_user_form();
	$user_name  = $result['user_name'];
lucha's avatar
lucha committed
636
	$user_email = $result['user_email'];
samba's avatar
samba committed
637
	$errors     = $result['errors'];
godog's avatar
godog committed
638

samba's avatar
samba committed
639 640
	if ( $errors->has_errors() ) {
		signup_user( $user_name, $user_email, $errors );
godog's avatar
godog committed
641 642 643 644
		return false;
	}

	if ( 'blog' == $_POST['signup_for'] ) {
samba's avatar
samba committed
645
		signup_blog( $user_name, $user_email );
godog's avatar
godog committed
646 647 648
		return false;
	}

lucha's avatar
lucha committed
649 650
	/** This filter is documented in wp-signup.php */
	wpmu_signup_user( $user_name, $user_email, apply_filters( 'add_signup_meta', array() ) );
godog's avatar
godog committed
651

samba's avatar
samba committed
652
	confirm_user_signup( $user_name, $user_email );
godog's avatar
godog committed
653 654 655
	return true;
}

lechuck's avatar
lechuck committed
656 657 658
/**
 * New user signup confirmation
 *
lucha's avatar
lucha committed
659
 * @since MU (3.0.0)
lechuck's avatar
lechuck committed
660 661 662 663
 *
 * @param string $user_name The username
 * @param string $user_email The user's email address
 */
samba's avatar
samba committed
664
function confirm_user_signup( $user_name, $user_email ) {
godog's avatar
godog committed
665
	?>
samba's avatar
samba committed
666 667
	<h2>
	<?php
agata's avatar
agata committed
668
	/* translators: %s: Username. */
samba's avatar
samba committed
669 670 671 672 673 674
	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>
	<p>
	<?php
agata's avatar
agata committed
675
	/* translators: %s: Email address. */
samba's avatar
samba committed
676 677 678
	printf( __( 'Check your inbox at %s and click the link given.' ), '<strong>' . $user_email . '</strong>' );
	?>
	</p>
godog's avatar
godog committed
679 680
	<p><?php _e( 'If you do not activate your username within two days, you will have to sign up again.' ); ?></p>
	<?php
lucha's avatar
lucha committed
681
	/** This action is documented in wp-signup.php */
godog's avatar
godog committed
682 683 684
	do_action( 'signup_finished' );
}

lechuck's avatar
lechuck committed
685 686 687
/**
 * Setup the new site signup
 *
lucha's avatar
lucha committed
688
 * @since MU (3.0.0)
lechuck's avatar
lechuck committed
689
 *
lucha's avatar
lucha committed
690 691 692 693 694
 * @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 WP_Error|string $errors     A WP_Error object containing existing errors. Defaults to empty string.
lechuck's avatar
lechuck committed
695
 */
samba's avatar
samba committed
696 697
function signup_blog( $user_name = '', $user_email = '', $blogname = '', $blog_title = '', $errors = '' ) {
	if ( ! is_wp_error( $errors ) ) {
godog's avatar
godog committed
698
		$errors = new WP_Error();
samba's avatar
samba committed
699
	}
godog's avatar
godog committed
700

lucha's avatar
lucha committed
701 702 703 704 705
	$signup_blog_defaults = array(
		'user_name'  => $user_name,
		'user_email' => $user_email,
		'blogname'   => $blogname,
		'blog_title' => $blog_title,
samba's avatar
samba committed
706
		'errors'     => $errors,
lucha's avatar
lucha committed
707 708 709
	);

	/**
lucha's avatar
lucha committed
710
	 * Filters the default site creation variables for the site sign-up form.
lucha's avatar
lucha committed
711 712 713 714 715 716
	 *
	 * @since 3.0.0
	 *
	 * @param array $signup_blog_defaults {
	 *     An array of default site creation variables.
	 *
lucha's avatar
lucha committed
717 718 719 720 721
	 *     @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 WP_Error $errors     A WP_Error object with possible errors relevant to new site creation variables.
lucha's avatar
lucha committed
722 723 724 725
	 * }
	 */
	$filtered_results = apply_filters( 'signup_blog_init', $signup_blog_defaults );

samba's avatar
samba committed
726
	$user_name  = $filtered_results['user_name'];
godog's avatar
godog committed
727
	$user_email = $filtered_results['user_email'];
samba's avatar
samba committed
728
	$blogname   = $filtered_results['blogname'];
godog's avatar
godog committed
729
	$blog_title = $filtered_results['blog_title'];
samba's avatar
samba committed
730
	$errors     = $filtered_results['errors'];
godog's avatar
godog committed
731

samba's avatar
samba committed
732
	if ( empty( $blogname ) ) {
godog's avatar
godog committed
733
		$blogname = $user_name;
samba's avatar
samba committed
734
	}
godog's avatar
godog committed
735 736 737
	?>
	<form id="setupform" method="post" action="wp-signup.php">
		<input type="hidden" name="stage" value="validate-blog-signup" />
samba's avatar
samba committed
738 739
		<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 ); ?>" />
lucha's avatar
lucha committed
740 741 742 743
		<?php
		/** This action is documented in wp-signup.php */
		do_action( 'signup_hidden_fields', 'validate-site' );
		?>
samba's avatar
samba committed
744 745
		<?php show_blog_form( $blogname, $blog_title, $errors ); ?>
		<p class="submit"><input type="submit" name="submit" class="submit" value="<?php esc_attr_e( 'Signup' ); ?>" /></p>
godog's avatar
godog committed
746 747 748 749
	</form>
	<?php
}

lechuck's avatar
lechuck committed
750 751 752
/**
 * Validate new site signup
 *
lucha's avatar
lucha committed
753
 * @since MU (3.0.0)
lechuck's avatar
lechuck committed
754 755 756
 *
 * @return bool True if the site signup was validated, false if error
 */
godog's avatar
godog committed
757 758
function validate_blog_signup() {
	// Re-validate user info.
lucha's avatar
lucha committed
759
	$user_result = wpmu_validate_user_signup( $_POST['user_name'], $_POST['user_email'] );
samba's avatar
samba committed
760 761
	$user_name   = $user_result['user_name'];
	$user_email  = $user_result['user_email'];
lucha's avatar
lucha committed
762
	$user_errors = $user_result['errors'];
godog's avatar
godog committed
763

samba's avatar
samba committed
764
	if ( $user_errors->has_errors() ) {
lucha's avatar
lucha committed
765
		signup_user( $user_name, $user_email, $user_errors );
godog's avatar
godog committed
766 767 768
		return false;
	}

samba's avatar
samba committed
769 770 771 772
	$result     = wpmu_validate_blog_signup( $_POST['blogname'], $_POST['blog_title'] );
	$domain     = $result['domain'];
	$path       = $result['path'];
	$blogname   = $result['blogname'];
lucha's avatar
lucha committed
773
	$blog_title = $result['blog_title'];
samba's avatar
samba committed
774
	$errors     = $result['errors'];
godog's avatar
godog committed
775

samba's avatar
samba committed
776 777
	if ( $errors->has_errors() ) {
		signup_blog( $user_name, $user_email, $blogname, $blog_title, $errors );
godog's avatar
godog committed
778 779 780
		return false;
	}

samba's avatar
samba committed
781 782 783 784 785
	$public      = (int) $_POST['blog_public'];
	$signup_meta = array(
		'lang_id' => 1,
		'public'  => $public,
	);
lucha's avatar
lucha committed
786

lechuck's avatar
lechuck committed
787 788 789 790 791 792 793 794 795 796 797 798 799 800
	// Handle the language setting for the new site.
	if ( ! empty( $_POST['WPLANG'] ) ) {

		$languages = signup_get_available_languages();

		if ( in_array( $_POST['WPLANG'], $languages ) ) {
			$language = wp_unslash( sanitize_text_field( $_POST['WPLANG'] ) );

			if ( $language ) {
				$signup_meta['WPLANG'] = $language;
			}
		}
	}

lucha's avatar
lucha committed
801
	/** This filter is documented in wp-signup.php */
lucha's avatar
lucha committed
802
	$meta = apply_filters( 'add_signup_meta', $signup_meta );
godog's avatar
godog committed
803

samba's avatar
samba committed
804 805
	wpmu_signup_blog( $domain, $path, $blog_title, $user_name, $user_email, $meta );
	confirm_blog_signup( $domain, $path, $blog_title, $user_name, $user_email, $meta );
godog's avatar
godog committed
806 807 808
	return true;
}

lechuck's avatar
lechuck committed
809 810 811
/**
 * New site signup confirmation
 *
lucha's avatar
lucha committed
812
 * @since MU (3.0.0)
lechuck's avatar
lechuck committed
813 814 815 816 817 818
 *
 * @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
lucha's avatar
lucha committed
819
 * @param array $meta Any additional meta from the {@see 'add_signup_meta'} filter in validate_blog_signup()
lechuck's avatar
lechuck committed
820 821
 */
function confirm_blog_signup( $domain, $path, $blog_title, $user_name = '', $user_email = '', $meta = array() ) {
godog's avatar
godog committed
822
	?>
samba's avatar
samba committed
823 824
	<h2>
	<?php
agata's avatar
agata committed
825
	/* translators: %s: Site address. */
samba's avatar
samba committed
826 827 828
	printf( __( 'Congratulations! Your new site, %s, is almost ready.' ), "<a href='http://{$domain}{$path}'>{$blog_title}</a>" )
	?>
	</h2>
godog's avatar
godog committed
829

samba's avatar
samba committed
830 831 832
	<p><?php _e( 'But, before you can start using your site, <strong>you must activate it</strong>.' ); ?></p>
	<p>
	<?php
agata's avatar
agata committed
833
	/* translators: %s: Email address. */
samba's avatar
samba committed
834 835 836
	printf( __( 'Check your inbox at %s and click the link given.' ), '<strong>' . $user_email . '</strong>' );
	?>
	</p>
godog's avatar
godog committed
837 838 839
	<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>
	<p>
samba's avatar
samba committed
840
		<?php _e( 'If you haven&#8217;t received your email yet, there are a number of things you can do:' ); ?>
godog's avatar
godog committed
841
		<ul id="noemail-tips">
samba's avatar
samba committed
842 843 844 845
			<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>
			<li>
			<?php
agata's avatar
agata committed
846
				/* translators: %s: Email address. */
lucha's avatar
lucha committed
847
				printf( __( 'Have you entered your email correctly? You have entered %s, if it&#8217;s incorrect, you will not receive your email.' ), $user_email );
samba's avatar
samba committed
848 849
			?>
			</li>
godog's avatar
godog committed
850 851 852
		</ul>
	</p>
	<?php
lucha's avatar
lucha committed
853
	/** This action is documented in wp-signup.php */
godog's avatar
godog committed
854 855 856
	do_action( 'signup_finished' );
}

lechuck's avatar
lechuck committed
857 858 859 860 861 862 863 864 865 866 867
/**
 * Retrieves languages available during the site/user signup process.
 *
 * @since 4.4.0
 *
 * @see get_available_languages()
 *
 * @return array List of available languages.
 */
function signup_get_available_languages() {
	/**
lucha's avatar
lucha committed
868
	 * Filters the list of available languages for front-end site signups.
lechuck's avatar
lechuck committed
869 870 871 872 873 874 875 876 877 878 879 880 881 882 883 884 885 886 887 888 889
	 *
	 * Passing an empty array to this hook will disable output of the setting on the
	 * signup form, and the default language will be used when creating the site.
	 *
	 * Languages not already installed will be stripped.
	 *
	 * @since 4.4.0
	 *
	 * @param array $available_languages Available languages.
	 */
	$languages = (array) apply_filters( 'signup_get_available_languages', get_available_languages() );

	/*
	 * Strip any non-installed languages and return.
	 *
	 * Re-call get_available_languages() here in case a language pack was installed
	 * in a callback hooked to the 'signup_get_available_languages' filter before this point.
	 */
	return array_intersect_assoc( $languages, get_available_languages() );
}

godog's avatar
godog committed
890
// Main
lucha's avatar
lucha committed
891
$active_signup = get_site_option( 'registration', 'none' );
lucha's avatar
lucha committed
892

lucha's avatar
lucha committed
893
/**
lucha's avatar
lucha committed
894
 * Filters the type of site sign-up.
lucha's avatar
lucha committed
895 896 897 898 899 900 901
 *
 * @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 );
godog's avatar
godog committed
902

lucha's avatar
lucha committed
903 904 905 906 907 908 909 910 911 912 913 914 915 916 917 918 919 920 921 922 923 924
if ( current_user_can( 'manage_network' ) ) {
	echo '<div class="mu_alert">';
	_e( 'Greetings Network Administrator!' );
	echo ' ';

	switch ( $active_signup ) {
		case 'none':
			_e( 'The network currently disallows registrations.' );
			break;
		case 'blog':
			_e( 'The network currently allows site registrations.' );
			break;
		case 'user':
			_e( 'The network currently allows user registrations.' );
			break;
		default:
			_e( 'The network currently allows both site and user registrations.' );
			break;
	}

	echo ' ';

agata's avatar
agata committed
925
	/* translators: %s: URL to Network Settings screen. */
lucha's avatar
lucha committed
926 927
	printf( __( 'To change or disable registration go to your <a href="%s">Options page</a>.' ), esc_url( network_admin_url( 'settings.php' ) ) );
	echo '</div>';
lucha's avatar
lucha committed
928
}
godog's avatar
godog committed
929

samba's avatar
samba committed
930
$newblogname = isset( $_GET['new'] ) ? strtolower( preg_replace( '/^-|-$|[^-a-zA-Z0-9]/', '', $_GET['new'] ) ) : null;
godog's avatar
godog committed
931 932

$current_user = wp_get_current_user();
samba's avatar
samba committed
933
if ( 'none' === $active_signup ) {
godog's avatar
godog committed
934
	_e( 'Registration has been disabled.' );
samba's avatar
samba committed
935
} elseif ( 'blog' === $active_signup && ! is_user_logged_in() ) {
lechuck's avatar
lechuck committed
936
	$login_url = wp_login_url( network_site_url( 'wp-signup.php' ) );
agata's avatar
agata committed
937
	/* translators: %s: Login URL. */
lucha's avatar
lucha committed
938
	printf( __( 'You must first <a href="%s">log in</a>, and then you can create a new site.' ), $login_url );
godog's avatar
godog committed
939
} else {
samba's avatar
samba committed
940
	$stage = isset( $_POST['stage'] ) ? $_POST['stage'] : 'default';
godog's avatar
godog committed
941
	switch ( $stage ) {
samba's avatar
samba committed
942 943 944 945 946
		case 'validate-user-signup':
			if ( 'all' === $active_signup
				|| ( 'blog' === $_POST['signup_for'] && 'blog' === $active_signup )
				|| ( 'user' === $_POST['signup_for'] && 'user' === $active_signup )
			) {
godog's avatar
godog committed
947
				validate_user_signup();
samba's avatar
samba committed
948
			} else {
godog's avatar
godog committed
949
				_e( 'User registration has been disabled.' );
samba's avatar
samba committed
950 951
			}
			break;
godog's avatar
godog committed
952
		case 'validate-blog-signup':
samba's avatar
samba committed
953
			if ( 'all' === $active_signup || 'blog' === $active_signup ) {
godog's avatar
godog committed
954
				validate_blog_signup();
samba's avatar
samba committed
955
			} else {
godog's avatar
godog committed
956
				_e( 'Site registration has been disabled.' );
samba's avatar
samba committed
957
			}
godog's avatar
godog committed
958 959 960 961 962
			break;
		case 'gimmeanotherblog':
			validate_another_blog_signup();
			break;
		case 'default':
samba's avatar
samba committed
963 964
		default:
			$user_email = isset( $_POST['user_email'] ) ? $_POST['user_email'] : '';
lucha's avatar
lucha committed
965 966 967 968 969 970
			/**
			 * Fires when the site sign-up form is sent.
			 *
			 * @since 3.0.0
			 */
			do_action( 'preprocess_signup_form' );
samba's avatar
samba committed
971 972 973
			if ( is_user_logged_in() && ( 'all' === $active_signup || 'blog' === $active_signup ) ) {
				signup_another_blog( $newblogname );
			} elseif ( ! is_user_logged_in() && ( 'all' === $active_signup || 'user' === $active_signup ) ) {
godog's avatar
godog committed
974
				signup_user( $newblogname, $user_email );
samba's avatar
samba committed
975
			} elseif ( ! is_user_logged_in() && ( 'blog' === $active_signup ) ) {
godog's avatar
godog committed
976
				_e( 'Sorry, new registrations are not allowed at this time.' );
samba's avatar
samba committed
977
			} else {
godog's avatar
godog committed
978
				_e( 'You are logged in already. No need to register again!' );
samba's avatar
samba committed
979
			}
godog's avatar
godog committed
980 981 982 983

			if ( $newblogname ) {
				$newblog = get_blogaddress_by_name( $newblogname );

samba's avatar
samba committed
984 985
				if ( 'blog' === $active_signup || 'all' === $active_signup ) {
					printf(
agata's avatar
agata committed
986
						/* translators: %s: Site address. */
samba's avatar
samba committed
987
						'<p><em>' . __( 'The site you were looking for, %s, does not exist, but you can create it now!' ) . '</em></p>',
lechuck's avatar
lechuck committed
988 989
						'<strong>' . $newblog . '</strong>'
					);
samba's avatar
samba committed
990 991
				} else {
					printf(
agata's avatar
agata committed
992
						/* translators: %s: Site address. */
samba's avatar
samba committed
993
						'<p><em>' . __( 'The site you were looking for, %s, does not exist.' ) . '</em></p>',
lechuck's avatar
lechuck committed
994 995
						'<strong>' . $newblog . '</strong>'
					);
samba's avatar
samba committed
996
				}
godog's avatar
godog committed
997 998 999 1000 1001 1002 1003
			}
			break;
	}
}
?>
</div>
</div>
lucha's avatar
lucha committed
1004 1005 1006 1007 1008 1009
<?php
/**
 * Fires after the sign-up forms, before wp_footer.
 *
 * @since 3.0.0
 */
samba's avatar
samba committed
1010 1011
do_action( 'after_signup_form' );
?>
godog's avatar
godog committed
1012

samba's avatar
samba committed
1013 1014
<?php
get_footer( 'wp-signup' );