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 134 135
		}

		/* translators: %s: site address */
		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>';
godog's avatar
godog committed
136 137 138 139
	}

	// Blog Title
	?>
samba's avatar
samba committed
140 141 142 143 144 145 146 147 148
	<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
149 150
	?>

lechuck's avatar
lechuck committed
151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171
	<?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
172 173 174 175 176 177 178 179 180
			wp_dropdown_languages(
				array(
					'name'                        => 'WPLANG',
					'id'                          => 'site-language',
					'selected'                    => $lang,
					'languages'                   => $languages,
					'show_available_translations' => false,
				)
			);
lechuck's avatar
lechuck committed
181 182
			?>
		</p>
samba's avatar
samba committed
183 184 185 186 187 188 189 190 191 192 193
		<?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
194

godog's avatar
godog committed
195
	<div id="privacy">
samba's avatar
samba committed
196 197 198 199 200 201 202 203 204 205 206 207 208
		<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
209 210 211
	</div>

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

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

samba's avatar
samba committed
235
	return wpmu_validate_blog_signup( $_POST['blogname'], $_POST['blog_title'], $user );
godog's avatar
godog committed
236 237
}

lechuck's avatar
lechuck committed
238 239 240
/**
 * Display user registration form
 *
lucha's avatar
lucha committed
241
 * @since MU (3.0.0)
lechuck's avatar
lechuck committed
242
 *
lucha's avatar
lucha committed
243 244 245
 * @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
246
 */
samba's avatar
samba committed
247
function show_user_form( $user_name = '', $user_email = '', $errors = '' ) {
lucha's avatar
lucha committed
248 249 250 251
	if ( ! is_wp_error( $errors ) ) {
		$errors = new WP_Error();
	}

godog's avatar
godog committed
252
	// User name
samba's avatar
samba committed
253 254 255 256
	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
257
	}
samba's avatar
samba committed
258
	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
259 260 261
	_e( '(Must be at least 4 characters, letters and numbers only.)' );
	?>

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

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

lechuck's avatar
lechuck committed
296 297 298
/**
 * Allow returning users to sign up for another site
 *
lucha's avatar
lucha committed
299
 * @since MU (3.0.0)
lechuck's avatar
lechuck committed
300
 *
lucha's avatar
lucha committed
301 302 303
 * @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
304
 */
lucha's avatar
lucha committed
305
function signup_another_blog( $blogname = '', $blog_title = '', $errors = '' ) {
godog's avatar
godog committed
306 307
	$current_user = wp_get_current_user();

samba's avatar
samba committed
308
	if ( ! is_wp_error( $errors ) ) {
godog's avatar
godog committed
309 310 311
		$errors = new WP_Error();
	}

lucha's avatar
lucha committed
312 313 314
	$signup_defaults = array(
		'blogname'   => $blogname,
		'blog_title' => $blog_title,
samba's avatar
samba committed
315
		'errors'     => $errors,
lucha's avatar
lucha committed
316 317 318
	);

	/**
lucha's avatar
lucha committed
319
	 * Filters the default site sign-up variables.
lucha's avatar
lucha committed
320 321 322 323 324 325
	 *
	 * @since 3.0.0
	 *
	 * @param array $signup_defaults {
	 *     An array of default site sign-up variables.
	 *
lucha's avatar
lucha committed
326 327 328
	 *     @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
329 330 331 332
	 * }
	 */
	$filtered_results = apply_filters( 'signup_another_blog_init', $signup_defaults );

samba's avatar
samba committed
333
	$blogname   = $filtered_results['blogname'];
godog's avatar
godog committed
334
	$blog_title = $filtered_results['blog_title'];
samba's avatar
samba committed
335
	$errors     = $filtered_results['errors'];
godog's avatar
godog committed
336

samba's avatar
samba committed
337
	/* translators: %s: Network's site name. */
lucha's avatar
lucha committed
338
	echo '<h2>' . sprintf( __( 'Get <em>another</em> %s site in seconds' ), get_network()->site_name ) . '</h2>';
godog's avatar
godog committed
339

samba's avatar
samba committed
340
	if ( $errors->has_errors() ) {
godog's avatar
godog committed
341 342 343
		echo '<p>' . __( 'There was a problem, please correct the form below and try again.' ) . '</p>';
	}
	?>
samba's avatar
samba committed
344 345 346 347 348 349 350 351 352
	<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
353 354

	<?php
samba's avatar
samba committed
355 356 357
	$blogs = get_blogs_of_user( $current_user->ID );
	if ( ! empty( $blogs ) ) {
		?>
godog's avatar
godog committed
358

samba's avatar
samba committed
359
			<p><?php _e( 'Sites you are already a member of:' ); ?></p>
godog's avatar
godog committed
360
			<ul>
samba's avatar
samba committed
361 362
				<?php
				foreach ( $blogs as $blog ) {
godog's avatar
godog committed
363 364
					$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
365 366
				}
				?>
godog's avatar
godog committed
367 368 369
			</ul>
	<?php } ?>

samba's avatar
samba committed
370
	<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
371 372
	<form id="setupform" method="post" action="wp-signup.php">
		<input type="hidden" name="stage" value="gimmeanotherblog" />
lucha's avatar
lucha committed
373 374 375 376
		<?php
		/**
		 * Hidden sign-up form fields output when creating another site or user.
		 *
lucha's avatar
lucha committed
377
		 * @since MU (3.0.0)
lucha's avatar
lucha committed
378 379 380 381 382 383
		 *
		 * @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
384 385
		<?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
386 387 388 389
	</form>
	<?php
}

lechuck's avatar
lechuck committed
390
/**
samba's avatar
samba committed
391 392 393 394 395 396 397
 * 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
398
 *
lucha's avatar
lucha committed
399
 * @since MU (3.0.0)
lechuck's avatar
lechuck committed
400
 *
lechuck's avatar
lechuck committed
401
 * @return null|bool True if site signup was validated, false if error.
lechuck's avatar
lechuck committed
402
 *                   The function halts all execution if the user is not logged in.
lechuck's avatar
lechuck committed
403
 */
godog's avatar
godog committed
404
function validate_another_blog_signup() {
lucha's avatar
lucha committed
405
	global $blogname, $blog_title, $errors, $domain, $path;
godog's avatar
godog committed
406
	$current_user = wp_get_current_user();
lechuck's avatar
lechuck committed
407
	if ( ! is_user_logged_in() ) {
godog's avatar
godog committed
408
		die();
lechuck's avatar
lechuck committed
409
	}
godog's avatar
godog committed
410 411

	$result = validate_blog_form();
lucha's avatar
lucha committed
412 413

	// Extracted values set/overwrite globals.
samba's avatar
samba committed
414 415 416
	$domain     = $result['domain'];
	$path       = $result['path'];
	$blogname   = $result['blogname'];
lucha's avatar
lucha committed
417
	$blog_title = $result['blog_title'];
samba's avatar
samba committed
418
	$errors     = $result['errors'];
godog's avatar
godog committed
419

samba's avatar
samba committed
420 421
	if ( $errors->has_errors() ) {
		signup_another_blog( $blogname, $blog_title, $errors );
godog's avatar
godog committed
422 423 424 425
		return false;
	}

	$public = (int) $_POST['blog_public'];
lucha's avatar
lucha committed
426 427 428

	$blog_meta_defaults = array(
		'lang_id' => 1,
samba's avatar
samba committed
429
		'public'  => $public,
lucha's avatar
lucha committed
430 431
	);

lechuck's avatar
lechuck committed
432 433 434 435 436 437 438 439 440 441 442 443 444 445
	// 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
446
	/**
lucha's avatar
lucha committed
447 448 449
	 * Filters the new site meta variables.
	 *
	 * Use the {@see 'add_signup_meta'} filter instead.
lucha's avatar
lucha committed
450
	 *
lucha's avatar
lucha committed
451
	 * @since MU (3.0.0)
lucha's avatar
lucha committed
452
	 * @deprecated 3.0.0 Use the {@see 'add_signup_meta'} filter instead.
lucha's avatar
lucha committed
453 454 455
	 *
	 * @param array $blog_meta_defaults An array of default blog meta variables.
	 */
lucha's avatar
lucha committed
456
	$meta_defaults = apply_filters( 'signup_create_blog_meta', $blog_meta_defaults );
lechuck's avatar
lechuck committed
457

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

lucha's avatar
lucha committed
472
	$blog_id = wpmu_create_blog( $domain, $path, $blog_title, $current_user->ID, $meta, get_current_network_id() );
lechuck's avatar
lechuck committed
473 474 475 476 477 478

	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
479 480 481
	return true;
}

lechuck's avatar
lechuck committed
482
/**
lechuck's avatar
lechuck committed
483
 * Confirm a new site signup.
lechuck's avatar
lechuck committed
484
 *
lucha's avatar
lucha committed
485
 * @since MU (3.0.0)
lechuck's avatar
lechuck committed
486 487 488 489 490 491 492
 * @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
493
 * @param array  $meta       Any additional meta from the {@see 'add_signup_meta'} filter in validate_blog_signup().
lechuck's avatar
lechuck committed
494
 * @param int    $blog_id    The site ID.
lechuck's avatar
lechuck committed
495
 */
lechuck's avatar
lechuck committed
496 497 498 499 500 501 502 503 504 505 506 507
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
508 509
	$site = sprintf(
		'<a href="%1$s">%2$s</a>',
lechuck's avatar
lechuck committed
510 511 512 513
		esc_url( $home_url ),
		$blog_title
	);

godog's avatar
godog committed
514
	?>
samba's avatar
samba committed
515 516
	<h2>
	<?php
lucha's avatar
lucha committed
517 518
		/* translators: %s: site name */
		printf( __( 'The site %s is yours.' ), $site );
samba's avatar
samba committed
519 520
	?>
	</h2>
godog's avatar
godog committed
521
	<p>
samba's avatar
samba committed
522 523
		<?php
		printf(
lucha's avatar
lucha committed
524 525 526 527 528 529 530
			/* translators: 1: link to new site, 2: login URL, 3: username */
			__( '%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
531 532
			esc_url( $login_url ),
			$user_name
samba's avatar
samba committed
533 534
		);
		?>
godog's avatar
godog committed
535 536
	</p>
	<?php
lucha's avatar
lucha committed
537 538 539 540 541
	/**
	 * Fires when the site or user sign-up process is complete.
	 *
	 * @since 3.0.0
	 */
godog's avatar
godog committed
542 543 544
	do_action( 'signup_finished' );
}

lechuck's avatar
lechuck committed
545 546 547
/**
 * Setup the new user signup process
 *
lucha's avatar
lucha committed
548
 * @since MU (3.0.0)
lechuck's avatar
lechuck committed
549
 *
lucha's avatar
lucha committed
550 551 552
 * @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
553
 */
lucha's avatar
lucha committed
554 555
function signup_user( $user_name = '', $user_email = '', $errors = '' ) {
	global $active_signup;
godog's avatar
godog committed
556

samba's avatar
samba committed
557
	if ( ! is_wp_error( $errors ) ) {
godog's avatar
godog committed
558
		$errors = new WP_Error();
samba's avatar
samba committed
559
	}
godog's avatar
godog committed
560

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

lucha's avatar
lucha committed
563 564 565 566 567 568 569
	$signup_user_defaults = array(
		'user_name'  => $user_name,
		'user_email' => $user_email,
		'errors'     => $errors,
	);

	/**
lucha's avatar
lucha committed
570
	 * Filters the default user variables used on the user sign-up form.
lucha's avatar
lucha committed
571 572 573 574 575 576
	 *
	 * @since 3.0.0
	 *
	 * @param array $signup_user_defaults {
	 *     An array of default user variables.
	 *
lucha's avatar
lucha committed
577 578 579
	 *     @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
580 581 582
	 * }
	 */
	$filtered_results = apply_filters( 'signup_user_init', $signup_user_defaults );
samba's avatar
samba committed
583 584 585
	$user_name        = $filtered_results['user_name'];
	$user_email       = $filtered_results['user_email'];
	$errors           = $filtered_results['errors'];
godog's avatar
godog committed
586 587 588

	?>

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

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

samba's avatar
samba committed
617
		<p class="submit"><input type="submit" name="submit" class="submit" value="<?php esc_attr_e( 'Next' ); ?>" /></p>
godog's avatar
godog committed
618 619 620 621
	</form>
	<?php
}

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

samba's avatar
samba committed
635 636
	if ( $errors->has_errors() ) {
		signup_user( $user_name, $user_email, $errors );
godog's avatar
godog committed
637 638 639 640
		return false;
	}

	if ( 'blog' == $_POST['signup_for'] ) {
samba's avatar
samba committed
641
		signup_blog( $user_name, $user_email );
godog's avatar
godog committed
642 643 644
		return false;
	}

lucha's avatar
lucha committed
645 646
	/** 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
647

samba's avatar
samba committed
648
	confirm_user_signup( $user_name, $user_email );
godog's avatar
godog committed
649 650 651
	return true;
}

lechuck's avatar
lechuck committed
652 653 654
/**
 * New user signup confirmation
 *
lucha's avatar
lucha committed
655
 * @since MU (3.0.0)
lechuck's avatar
lechuck committed
656 657 658 659
 *
 * @param string $user_name The username
 * @param string $user_email The user's email address
 */
samba's avatar
samba committed
660
function confirm_user_signup( $user_name, $user_email ) {
godog's avatar
godog committed
661
	?>
samba's avatar
samba committed
662 663 664 665 666 667 668 669 670 671 672 673 674
	<h2>
	<?php
	/* translators: %s: username */
	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
	/* translators: %s: email address */
	printf( __( 'Check your inbox at %s and click the link given.' ), '<strong>' . $user_email . '</strong>' );
	?>
	</p>
godog's avatar
godog committed
675 676
	<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
677
	/** This action is documented in wp-signup.php */
godog's avatar
godog committed
678 679 680
	do_action( 'signup_finished' );
}

lechuck's avatar
lechuck committed
681 682 683
/**
 * Setup the new site signup
 *
lucha's avatar
lucha committed
684
 * @since MU (3.0.0)
lechuck's avatar
lechuck committed
685
 *
lucha's avatar
lucha committed
686 687 688 689 690
 * @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
691
 */
samba's avatar
samba committed
692 693
function signup_blog( $user_name = '', $user_email = '', $blogname = '', $blog_title = '', $errors = '' ) {
	if ( ! is_wp_error( $errors ) ) {
godog's avatar
godog committed
694
		$errors = new WP_Error();
samba's avatar
samba committed
695
	}
godog's avatar
godog committed
696

lucha's avatar
lucha committed
697 698 699 700 701
	$signup_blog_defaults = array(
		'user_name'  => $user_name,
		'user_email' => $user_email,
		'blogname'   => $blogname,
		'blog_title' => $blog_title,
samba's avatar
samba committed
702
		'errors'     => $errors,
lucha's avatar
lucha committed
703 704 705
	);

	/**
lucha's avatar
lucha committed
706
	 * Filters the default site creation variables for the site sign-up form.
lucha's avatar
lucha committed
707 708 709 710 711 712
	 *
	 * @since 3.0.0
	 *
	 * @param array $signup_blog_defaults {
	 *     An array of default site creation variables.
	 *
lucha's avatar
lucha committed
713 714 715 716 717
	 *     @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
718 719 720 721
	 * }
	 */
	$filtered_results = apply_filters( 'signup_blog_init', $signup_blog_defaults );

samba's avatar
samba committed
722
	$user_name  = $filtered_results['user_name'];
godog's avatar
godog committed
723
	$user_email = $filtered_results['user_email'];
samba's avatar
samba committed
724
	$blogname   = $filtered_results['blogname'];
godog's avatar
godog committed
725
	$blog_title = $filtered_results['blog_title'];
samba's avatar
samba committed
726
	$errors     = $filtered_results['errors'];
godog's avatar
godog committed
727

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

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

samba's avatar
samba committed
760
	if ( $user_errors->has_errors() ) {
lucha's avatar
lucha committed
761
		signup_user( $user_name, $user_email, $user_errors );
godog's avatar
godog committed
762 763 764
		return false;
	}

samba's avatar
samba committed
765 766 767 768
	$result     = wpmu_validate_blog_signup( $_POST['blogname'], $_POST['blog_title'] );
	$domain     = $result['domain'];
	$path       = $result['path'];
	$blogname   = $result['blogname'];
lucha's avatar
lucha committed
769
	$blog_title = $result['blog_title'];
samba's avatar
samba committed
770
	$errors     = $result['errors'];
godog's avatar
godog committed
771

samba's avatar
samba committed
772 773
	if ( $errors->has_errors() ) {
		signup_blog( $user_name, $user_email, $blogname, $blog_title, $errors );
godog's avatar
godog committed
774 775 776
		return false;
	}

samba's avatar
samba committed
777 778 779 780 781
	$public      = (int) $_POST['blog_public'];
	$signup_meta = array(
		'lang_id' => 1,
		'public'  => $public,
	);
lucha's avatar
lucha committed
782

lechuck's avatar
lechuck committed
783 784 785 786 787 788 789 790 791 792 793 794 795 796
	// 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
797
	/** This filter is documented in wp-signup.php */
lucha's avatar
lucha committed
798
	$meta = apply_filters( 'add_signup_meta', $signup_meta );
godog's avatar
godog committed
799

samba's avatar
samba committed
800 801
	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
802 803 804
	return true;
}

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

samba's avatar
samba committed
826 827 828 829 830 831 832
	<p><?php _e( 'But, before you can start using your site, <strong>you must activate it</strong>.' ); ?></p>
	<p>
	<?php
	/* translators: %s: email address */
	printf( __( 'Check your inbox at %s and click the link given.' ), '<strong>' . $user_email . '</strong>' );
	?>
	</p>
godog's avatar
godog committed
833 834 835
	<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
836
		<?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
837
		<ul id="noemail-tips">
samba's avatar
samba committed
838 839 840 841
			<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
lucha's avatar
lucha committed
842 843
				/* translators: %s: email address */
				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
844 845
			?>
			</li>
godog's avatar
godog committed
846 847 848
		</ul>
	</p>
	<?php
lucha's avatar
lucha committed
849
	/** This action is documented in wp-signup.php */
godog's avatar
godog committed
850 851 852
	do_action( 'signup_finished' );
}

lechuck's avatar
lechuck committed
853 854 855 856 857 858 859 860 861 862 863
/**
 * 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
864
	 * Filters the list of available languages for front-end site signups.
lechuck's avatar
lechuck committed
865 866 867 868 869 870 871 872 873 874 875 876 877 878 879 880 881 882 883 884 885
	 *
	 * 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
886
// Main
lucha's avatar
lucha committed
887
$active_signup = get_site_option( 'registration', 'none' );
lucha's avatar
lucha committed
888

lucha's avatar
lucha committed
889
/**
lucha's avatar
lucha committed
890
 * Filters the type of site sign-up.
lucha's avatar
lucha committed
891 892 893 894 895 896 897
 *
 * @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
898

lucha's avatar
lucha committed
899 900 901 902 903 904 905 906 907 908 909 910 911 912 913 914 915 916 917 918 919 920 921 922 923
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 ' ';

	/* translators: %s: network settings URL */
	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
924
}
godog's avatar
godog committed
925

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

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

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

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

samba's avatar
samba committed
1009 1010
<?php
get_footer( 'wp-signup' );