[ Index ]

PHP Cross Reference of WordPress

title

Body

[close]

/ -> wp-activate.php (source)

   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 before the Site Activation page is loaded.
  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          form { margin-top: 2em; }
 109          #submit, #key { width: 90%; font-size: 24px; }
 110          #language { margin-top: .5em; }
 111          .error { background: #f66; }
 112          span.h3 { padding: 0 8px; font-size: 1.3em; font-weight: 600; }
 113      </style>
 114      <?php
 115  }
 116  add_action( 'wp_head', 'wpmu_activate_stylesheet' );
 117  add_action( 'wp_head', 'wp_strict_cross_origin_referrer' );
 118  add_filter( 'wp_robots', 'wp_robots_sensitive_page' );
 119  
 120  get_header( 'wp-activate' );
 121  
 122  $blog_details = get_blog_details();
 123  ?>
 124  
 125  <div id="signup-content" class="widecolumn">
 126      <div class="wp-activate-container">
 127      <?php if ( ! $key ) { ?>
 128  
 129          <h2><?php _e( 'Activation Key Required' ); ?></h2>
 130          <form name="activateform" id="activateform" method="post" action="<?php echo network_site_url( $blog_details->path . 'wp-activate.php' ); ?>">
 131              <p>
 132                  <label for="key"><?php _e( 'Activation Key:' ); ?></label>
 133                  <br /><input type="text" name="key" id="key" value="" size="50" />
 134              </p>
 135              <p class="submit">
 136                  <input id="submit" type="submit" name="Submit" class="submit" value="<?php esc_attr_e( 'Activate' ); ?>" />
 137              </p>
 138          </form>
 139  
 140          <?php
 141      } else {
 142          if ( is_wp_error( $result ) && in_array( $result->get_error_code(), $valid_error_codes, true ) ) {
 143              $signup = $result->get_error_data();
 144              ?>
 145              <h2><?php _e( 'Your account is now active!' ); ?></h2>
 146              <?php
 147              echo '<p class="lead-in">';
 148              if ( '' === $signup->domain . $signup->path ) {
 149                  printf(
 150                      /* translators: 1: Login URL, 2: Username, 3: User email address, 4: Lost password URL. */
 151                      __( 'Your account has been activated. You may now <a href="%1$s">log in</a> to the site using your chosen username of &#8220;%2$s&#8221;. 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>.' ),
 152                      network_site_url( $blog_details->path . 'wp-login.php', 'login' ),
 153                      $signup->user_login,
 154                      $signup->user_email,
 155                      wp_lostpassword_url()
 156                  );
 157              } else {
 158                  printf(
 159                      /* translators: 1: Site URL, 2: Username, 3: User email address, 4: Lost password URL. */
 160                      __( 'Your site at %1$s is active. You may now log in to your site using your chosen username of &#8220;%2$s&#8221;. 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>.' ),
 161                      sprintf( '<a href="http://%1$s%2$s">%1$s%2$s</a>', $signup->domain, $blog_details->path ),
 162                      $signup->user_login,
 163                      $signup->user_email,
 164                      wp_lostpassword_url()
 165                  );
 166              }
 167              echo '</p>';
 168          } elseif ( null === $result || is_wp_error( $result ) ) {
 169              ?>
 170              <h2><?php _e( 'An error occurred during the activation' ); ?></h2>
 171              <?php if ( is_wp_error( $result ) ) : ?>
 172                  <p><?php echo $result->get_error_message(); ?></p>
 173              <?php endif; ?>
 174              <?php
 175          } else {
 176              $url  = isset( $result['blog_id'] ) ? get_home_url( (int) $result['blog_id'] ) : '';
 177              $user = get_userdata( (int) $result['user_id'] );
 178              ?>
 179              <h2><?php _e( 'Your account is now active!' ); ?></h2>
 180  
 181              <div id="signup-welcome">
 182              <p><span class="h3"><?php _e( 'Username:' ); ?></span> <?php echo $user->user_login; ?></p>
 183              <p><span class="h3"><?php _e( 'Password:' ); ?></span> <?php echo $result['password']; ?></p>
 184              </div>
 185  
 186              <?php
 187              if ( $url && network_home_url( '', 'http' ) !== $url ) :
 188                  switch_to_blog( (int) $result['blog_id'] );
 189                  $login_url = wp_login_url();
 190                  restore_current_blog();
 191                  ?>
 192                  <p class="view">
 193                  <?php
 194                      /* translators: 1: Site URL, 2: Login URL. */
 195                      printf( __( 'Your account is now activated. <a href="%1$s">View your site</a> or <a href="%2$s">Log in</a>' ), $url, esc_url( $login_url ) );
 196                  ?>
 197                  </p>
 198              <?php else : ?>
 199                  <p class="view">
 200                  <?php
 201                      printf(
 202                          /* translators: 1: Login URL, 2: Network home URL. */
 203                          __( 'Your account is now activated. <a href="%1$s">Log in</a> or go back to the <a href="%2$s">homepage</a>.' ),
 204                          network_site_url( $blog_details->path . 'wp-login.php', 'login' ),
 205                          network_home_url( $blog_details->path )
 206                      );
 207                  ?>
 208                  </p>
 209                  <?php
 210                  endif;
 211          }
 212      }
 213      ?>
 214      </div>
 215  </div>
 216  <script type="text/javascript">
 217      var key_input = document.getElementById('key');
 218      key_input && key_input.focus();
 219  </script>
 220  <?php
 221  get_footer( 'wp-activate' );


Generated: Thu Mar 28 01:00:02 2024 Cross-referenced by PHPXref 0.7.1