[ Index ] |
PHP Cross Reference of WordPress Trunk (Updated Daily) |
[Summary view] [Print] [Text view]
1 <?php 2 /** 3 * Confirms that the activation key that is sent in an email after a user signs 4 * up for a new site matches the key for that user and then displays confirmation. 5 * 6 * @package WordPress 7 */ 8 9 define( 'WP_INSTALLING', true ); 10 11 /** Sets up the WordPress Environment. */ 12 require __DIR__ . '/wp-load.php'; 13 14 require __DIR__ . '/wp-blog-header.php'; 15 16 if ( ! is_multisite() ) { 17 wp_redirect( wp_registration_url() ); 18 die(); 19 } 20 21 $valid_error_codes = array( 'already_active', 'blog_taken' ); 22 23 list( $activate_path ) = explode( '?', wp_unslash( $_SERVER['REQUEST_URI'] ) ); 24 $activate_cookie = 'wp-activate-' . COOKIEHASH; 25 26 $key = ''; 27 $result = null; 28 29 if ( isset( $_GET['key'] ) && isset( $_POST['key'] ) && $_GET['key'] !== $_POST['key'] ) { 30 wp_die( __( 'A key value mismatch has been detected. Please follow the link provided in your activation email.' ), __( 'An error occurred during the activation' ), 400 ); 31 } elseif ( ! empty( $_GET['key'] ) ) { 32 $key = $_GET['key']; 33 } elseif ( ! empty( $_POST['key'] ) ) { 34 $key = $_POST['key']; 35 } 36 37 if ( $key ) { 38 $redirect_url = remove_query_arg( 'key' ); 39 40 if ( remove_query_arg( false ) !== $redirect_url ) { 41 setcookie( $activate_cookie, $key, 0, $activate_path, COOKIE_DOMAIN, is_ssl(), true ); 42 wp_safe_redirect( $redirect_url ); 43 exit; 44 } else { 45 $result = wpmu_activate_signup( $key ); 46 } 47 } 48 49 if ( null === $result && isset( $_COOKIE[ $activate_cookie ] ) ) { 50 $key = $_COOKIE[ $activate_cookie ]; 51 $result = wpmu_activate_signup( $key ); 52 setcookie( $activate_cookie, ' ', time() - YEAR_IN_SECONDS, $activate_path, COOKIE_DOMAIN, is_ssl(), true ); 53 } 54 55 if ( null === $result || ( is_wp_error( $result ) && 'invalid_key' === $result->get_error_code() ) ) { 56 status_header( 404 ); 57 } elseif ( is_wp_error( $result ) ) { 58 $error_code = $result->get_error_code(); 59 60 if ( ! in_array( $error_code, $valid_error_codes, true ) ) { 61 status_header( 400 ); 62 } 63 } 64 65 nocache_headers(); 66 67 if ( is_object( $wp_object_cache ) ) { 68 $wp_object_cache->cache_enabled = false; 69 } 70 71 // Fix for page title. 72 $wp_query->is_404 = false; 73 74 /** 75 * Fires before the Site Activation page is loaded. 76 * 77 * @since 3.0.0 78 */ 79 do_action( 'activate_header' ); 80 81 /** 82 * Adds an action hook specific to this page. 83 * 84 * Fires on {@see 'wp_head'}. 85 * 86 * @since MU (3.0.0) 87 */ 88 function do_activate_header() { 89 /** 90 * Fires within the `<head>` section of the Site Activation page. 91 * 92 * Fires on the {@see 'wp_head'} action. 93 * 94 * @since 3.0.0 95 */ 96 do_action( 'activate_wp_head' ); 97 } 98 add_action( 'wp_head', 'do_activate_header' ); 99 100 /** 101 * Loads styles specific to this page. 102 * 103 * @since MU (3.0.0) 104 */ 105 function wpmu_activate_stylesheet() { 106 ?> 107 <style type="text/css"> 108 .wp-activate-container { width: 90%; margin: 0 auto; } 109 .wp-activate-container form { margin-top: 2em; } 110 #submit, #key { width: 100%; font-size: 24px; box-sizing: border-box; } 111 #language { margin-top: 0.5em; } 112 .wp-activate-container .error { background: #f66; color: #333; } 113 span.h3 { padding: 0 8px; font-size: 1.3em; font-weight: 600; } 114 </style> 115 <?php 116 } 117 add_action( 'wp_head', 'wpmu_activate_stylesheet' ); 118 add_action( 'wp_head', 'wp_strict_cross_origin_referrer' ); 119 add_filter( 'wp_robots', 'wp_robots_sensitive_page' ); 120 121 get_header( 'wp-activate' ); 122 123 $blog_details = get_site(); 124 ?> 125 126 <div id="signup-content" class="widecolumn"> 127 <div class="wp-activate-container"> 128 <?php if ( ! $key ) { ?> 129 130 <h2><?php _e( 'Activation Key Required' ); ?></h2> 131 <form name="activateform" id="activateform" method="post" action="<?php echo esc_url( network_site_url( $blog_details->path . 'wp-activate.php' ) ); ?>"> 132 <p> 133 <label for="key"><?php _e( 'Activation Key:' ); ?></label> 134 <br /><input type="text" name="key" id="key" value="" size="50" autofocus="autofocus" /> 135 </p> 136 <p class="submit"> 137 <input id="submit" type="submit" name="Submit" class="submit" value="<?php esc_attr_e( 'Activate' ); ?>" /> 138 </p> 139 </form> 140 141 <?php 142 } else { 143 if ( is_wp_error( $result ) && in_array( $result->get_error_code(), $valid_error_codes, true ) ) { 144 $signup = $result->get_error_data(); 145 ?> 146 <h2><?php _e( 'Your account is now active!' ); ?></h2> 147 <?php 148 echo '<p class="lead-in">'; 149 if ( '' === $signup->domain . $signup->path ) { 150 printf( 151 /* translators: 1: Login URL, 2: Username, 3: User email address, 4: Lost password URL. */ 152 __( 'Your account has been activated. You may now <a href="%1$s">log in</a> to the site using your chosen username of “%2$s”. Please check your email inbox at %3$s for your password and login instructions. If you do not receive an email, please check your junk or spam folder. If you still do not receive an email within an hour, you can <a href="%4$s">reset your password</a>.' ), 153 esc_url( network_site_url( $blog_details->path . 'wp-login.php', 'login' ) ), 154 esc_html( $signup->user_login ), 155 esc_html( $signup->user_email ), 156 esc_url( wp_lostpassword_url() ) 157 ); 158 } else { 159 printf( 160 /* translators: 1: Site URL, 2: Username, 3: User email address, 4: Lost password URL. */ 161 __( 'Your site at %1$s is active. You may now log in to your site using your chosen username of “%2$s”. Please check your email inbox at %3$s for your password and login instructions. If you do not receive an email, please check your junk or spam folder. If you still do not receive an email within an hour, you can <a href="%4$s">reset your password</a>.' ), 162 sprintf( '<a href="http://%1$s">%1$s</a>', esc_url( $signup->domain . $blog_details->path ) ), 163 esc_html( $signup->user_login ), 164 esc_html( $signup->user_email ), 165 esc_url( wp_lostpassword_url() ) 166 ); 167 } 168 echo '</p>'; 169 } elseif ( null === $result || is_wp_error( $result ) ) { 170 ?> 171 <h2><?php _e( 'An error occurred during the activation' ); ?></h2> 172 <?php if ( is_wp_error( $result ) ) : ?> 173 <p><?php echo esc_html( $result->get_error_message() ); ?></p> 174 <?php endif; ?> 175 <?php 176 } else { 177 $url = isset( $result['blog_id'] ) ? esc_url( get_home_url( (int) $result['blog_id'] ) ) : ''; 178 $user = get_userdata( (int) $result['user_id'] ); 179 ?> 180 <h2><?php _e( 'Your account is now active!' ); ?></h2> 181 182 <div id="signup-welcome"> 183 <p><span class="h3"><?php _e( 'Username:' ); ?></span> <?php echo esc_html( $user->user_login ); ?></p> 184 <p><span class="h3"><?php _e( 'Password:' ); ?></span> <?php echo esc_html( $result['password'] ); ?></p> 185 </div> 186 187 <?php 188 if ( $url && network_home_url( '', 'http' ) !== $url ) : 189 switch_to_blog( (int) $result['blog_id'] ); 190 $login_url = wp_login_url(); 191 restore_current_blog(); 192 ?> 193 <p class="view"> 194 <?php 195 /* translators: 1: Site URL, 2: Login URL. */ 196 printf( __( 'Your account is now activated. <a href="%1$s">View your site</a> or <a href="%2$s">Log in</a>' ), esc_url( $url ), esc_url( $login_url ) ); 197 ?> 198 </p> 199 <?php else : ?> 200 <p class="view"> 201 <?php 202 printf( 203 /* translators: 1: Login URL, 2: Network home URL. */ 204 __( 'Your account is now activated. <a href="%1$s">Log in</a> or go back to the <a href="%2$s">homepage</a>.' ), 205 esc_url( network_site_url( $blog_details->path . 'wp-login.php', 'login' ) ), 206 esc_url( network_home_url( $blog_details->path ) ) 207 ); 208 ?> 209 </p> 210 <?php 211 endif; 212 } 213 } 214 ?> 215 </div> 216 </div> 217 <?php 218 get_footer( 'wp-activate' );
title
Description
Body
title
Description
Body
title
Description
Body
title
Body
Generated : Tue Dec 24 08:20:01 2024 | Cross-referenced by PHPXref |