Ticket #25393: wp-login-4.diff
| File wp-login-4.diff, 15.9 KB (added by , 12 years ago) |
|---|
-
wp-login.php
49 49 50 50 // Shake it! 51 51 $shake_error_codes = array( 'empty_password', 'empty_email', 'invalid_email', 'invalidcombo', 'empty_username', 'invalid_username', 'incorrect_password' ); 52 /** 53 * Filter the error codes array for shaking the login form. 54 * 55 * @since 3.0.0 56 * 57 * @param array $shake_error_codes Error codes that shake the login form. 58 */ 52 59 $shake_error_codes = apply_filters( 'shake_error_codes', $shake_error_codes ); 53 60 54 61 if ( $shake_error_codes && $wp_error->get_error_code() && in_array( $wp_error->get_error_code(), $shake_error_codes ) ) … … 77 84 <?php 78 85 } 79 86 87 /** 88 * Fires at the time of enqueueing scripts and styles on the login page. 89 * 90 * The proper hook to use when enqueueing scripts and styles that will appear on the login page. 91 * 92 * @since 3.1.0 93 */ 80 94 do_action( 'login_enqueue_scripts' ); 95 /** 96 * Fires before </head> on the login page. 97 * 98 * @since 2.1.0 99 */ 81 100 do_action( 'login_head' ); 82 101 83 102 if ( is_multisite() ) { … … 88 107 $login_header_title = __( 'Powered by WordPress' ); 89 108 } 90 109 91 $login_header_url = apply_filters( 'login_headerurl', $login_header_url ); 110 /** 111 * Filter link URL of the header logo above login form. 112 * 113 * @since 2.1.0 114 * 115 * @param string $login_header_url Default URL. 116 */ 117 $login_header_url = apply_filters( 'login_headerurl', $login_header_url ); 118 /** 119 * Filter the title of the header logo above login form. 120 * 121 * @since 2.1.0 122 * 123 * @param string $login_header_title Default title. 124 */ 92 125 $login_header_title = apply_filters( 'login_headertitle', $login_header_title ); 93 126 94 127 $classes = array( 'login-action-' . $action, 'wp-core-ui' ); … … 106 139 $classes[] = 'interim-login-success'; 107 140 } 108 141 142 /** 143 * Filter the classes of login page <body> tag. 144 * 145 * @since 3.5.0 146 * 147 * @param array $classes Classes to be added to the <body>. 148 * @param string $action The action user took before coming to the login page. 149 */ 109 150 $classes = apply_filters( 'login_body_class', $classes, $action ); 110 151 111 152 ?> … … 117 158 118 159 unset( $login_header_url, $login_header_title ); 119 160 120 $message = apply_filters('login_message', $message); 161 /** 162 * Filter the message to display above the login form. 163 * 164 * @since 2.1.0 165 * 166 * @param string $message Default message text. 167 */ 168 $message = apply_filters( 'login_message', $message ); 121 169 if ( !empty( $message ) ) 122 170 echo $message . "\n"; 123 171 … … 140 188 } 141 189 } 142 190 if ( !empty($errors) ) 143 echo '<div id="login_error">' . apply_filters('login_errors', $errors) . "</div>\n"; 191 /** 192 * Filter the error message above the login form. 193 * 194 * @since 2.1.0 195 * 196 * @param string $errors Error message. 197 */ 198 echo '<div id="login_error">' . apply_filters( 'login_errors', $errors ) . "</div>\n"; 144 199 if ( !empty($messages) ) 145 echo '<p class="message">' . apply_filters('login_messages', $messages) . "</p>\n"; 200 /** 201 * Filter the login message above the login form. 202 * 203 * @since 2.5.0 204 * 205 * @param string $messages Login message. 206 */ 207 echo '<p class="message">' . apply_filters( 'login_messages', $messages ) . "</p>\n"; 146 208 } 147 209 } // End of login_header() 148 210 … … 168 230 </script> 169 231 <?php endif; ?> 170 232 171 <?php do_action('login_footer'); ?> 233 <?php 234 /** 235 * Fires at the end of the login page HTML. 236 * 237 * @since 3.1.0 238 */ 239 do_action( 'login_footer' ); ?> 172 240 <div class="clear"></div> 173 241 </body> 174 242 </html> … … 194 262 * 195 263 * @uses $wpdb WordPress Database object 196 264 * 197 * @return bool|WP_Error True: when finish . WP_Error on error265 * @return bool|WP_Error True: when finished. WP_Error on error. 198 266 */ 199 267 function retrieve_password() { 200 268 global $wpdb, $current_site; … … 212 280 $user_data = get_user_by('login', $login); 213 281 } 214 282 215 do_action('lostpassword_post'); 283 /** 284 * Fires before returning WP Error in password retrieval process. 285 * 286 * @since 2.1.0 287 */ 288 do_action( 'lostpassword_post' ); 216 289 217 290 if ( $errors->get_error_code() ) 218 291 return $errors; … … 226 299 $user_login = $user_data->user_login; 227 300 $user_email = $user_data->user_email; 228 301 229 do_action('retreive_password', $user_login); // Misspelled and deprecated 230 do_action('retrieve_password', $user_login); 302 /** 303 * Fires within the password retrieval process. 304 * 305 * Misspelled and deprecated 306 * 307 * @since 1.5.2 308 * 309 * @param string $user_login User name to login. 310 */ 311 do_action( 'retreive_password', $user_login ); 312 /** 313 * Fires within the password retrieval process. 314 * 315 * @since 1.5.2 316 * 317 * @param string $user_login User name to login. 318 */ 319 do_action( 'retrieve_password', $user_login ); 231 320 232 $allow = apply_filters('allow_password_reset', true, $user_data->ID); 321 /** 322 * Filter password reset restriction condition boolean to disallow password reset. 323 * 324 * @since 2.7.0 325 * 326 * @param boolean Allow/Disallow user to reset password, true as default. 327 * @param int $user_data->ID The ID of the user who is retrieving new password. 328 */ 329 $allow = apply_filters( 'allow_password_reset', true, $user_data->ID ); 233 330 234 331 if ( ! $allow ) 235 332 return new WP_Error('no_password_reset', __('Password reset is not allowed for this user')); … … 240 337 if ( empty($key) ) { 241 338 // Generate something random for a key... 242 339 $key = wp_generate_password(20, false); 243 do_action('retrieve_password_key', $user_login, $key); 340 /** 341 * Fires before inserting the activation key into database. 342 * 343 * @since 2.5.0 344 * 345 * @param string $user_login User name to login. 346 * @param string $key Activation key. 347 */ 348 do_action( 'retrieve_password_key', $user_login, $key ); 244 349 // Now insert the new md5 key into the db 245 350 $wpdb->update($wpdb->users, array('user_activation_key' => $key), array('user_login' => $user_login)); 246 351 } … … 260 365 261 366 $title = sprintf( __('[%s] Password Reset'), $blogname ); 262 367 263 $title = apply_filters('retrieve_password_title', $title); 264 $message = apply_filters('retrieve_password_message', $message, $key); 368 /** 369 * Filter title of the password reset email. 370 * 371 * @since 2.8.0 372 * 373 * @param string $title Default email title. 374 */ 375 $title = apply_filters( 'retrieve_password_title', $title ); 376 /** 377 * Filter body message of the password reset mail. 378 * 379 * @since 2.8.0 380 * 381 * @param string $message Default mail message. 382 * @param string $key The activation key. 383 */ 384 $message = apply_filters( 'retrieve_password_message', $message, $key ); 265 385 266 386 if ( $message && !wp_mail($user_email, $title, $message) ) 267 387 wp_die( __('The e-mail could not be sent.') . "<br />\n" . __('Possible reason: your host may have disabled the mail() function.') ); … … 301 421 if ( SITECOOKIEPATH != COOKIEPATH ) 302 422 setcookie(TEST_COOKIE, 'WP Cookie check', 0, SITECOOKIEPATH, COOKIE_DOMAIN); 303 423 304 // allow plugins to override the default actions, and to add extra actions if they want 424 /** 425 * Fires before running the actions such as showing forms and logout etc. 426 * 427 * Allow plugins to override the default actions, and add extra actions if they want. 428 * 429 * @since 3.2.0 430 * 431 */ 305 432 do_action( 'login_init' ); 433 /** 434 * Fires before running the actions such as showing forms and logout etc. depending on the $action. 435 * 436 * @since 2.8.0 437 * 438 */ 306 439 do_action( 'login_form_' . $action ); 307 440 308 441 $http_post = ('POST' == $_SERVER['REQUEST_METHOD']); … … 321 454 * To turn this into a session cookie, return 0. 322 455 * 323 456 * @since 3.7.0 457 * 324 458 * @param int $expires The expiry time, as passed to setcookie(). 325 459 */ 326 460 $expire = apply_filters( 'post_password_expires', time() + 10 * DAY_IN_SECONDS ); … … 354 488 } 355 489 356 490 if ( isset($_GET['error']) && 'invalidkey' == $_GET['error'] ) $errors->add('invalidkey', __('Sorry, that key does not appear to be valid.')); 357 $redirect_to = apply_filters( 'lostpassword_redirect', !empty( $_REQUEST['redirect_to'] ) ? $_REQUEST['redirect_to'] : '' ); 491 492 $lostpassword_redirect = !empty( $_REQUEST['redirect_to'] ) ? $_REQUEST['redirect_to'] : ''; 493 /** 494 * Filter the redirect URL after submitting the lostpassword/retrievepassword form. 495 * 496 * @since 3.0.0 497 * 498 * @param string $lostpassword_redirect The redirect destination URL. 499 */ 500 $redirect_to = apply_filters( 'lostpassword_redirect', $lostpassword_redirect ); 358 501 359 do_action('lost_password'); 502 /** 503 * Fires before the lost password and retrieve password form. 504 * 505 * @since 1.5.2 506 */ 507 do_action( 'lost_password' ); 360 508 login_header(__('Lost Password'), '<p class="message">' . __('Please enter your username or email address. You will receive a link to create a new password via email.') . '</p>', $errors); 361 509 362 510 $user_login = isset($_POST['user_login']) ? wp_unslash($_POST['user_login']) : ''; … … 368 516 <label for="user_login" ><?php _e('Username or E-mail:') ?><br /> 369 517 <input type="text" name="user_login" id="user_login" class="input" value="<?php echo esc_attr($user_login); ?>" size="20" /></label> 370 518 </p> 371 <?php do_action('lostpassword_form'); ?> 519 <?php 520 /** 521 * Fires in the lostpassword form before the hidden fields. 522 * 523 * @since 2.1.0 524 */ 525 do_action( 'lostpassword_form' ); ?> 372 526 <input type="hidden" name="redirect_to" value="<?php echo esc_attr( $redirect_to ); ?>" /> 373 527 <p class="submit"><input type="submit" name="wp-submit" id="wp-submit" class="button button-primary button-large" value="<?php esc_attr_e('Get New Password'); ?>" /></p> 374 528 </form> … … 375 529 376 530 <p id="nav"> 377 531 <a href="<?php echo esc_url( wp_login_url() ); ?>"><?php _e('Log in') ?></a> 378 <?php if ( get_option( 'users_can_register' ) ) : ?> 379 | <?php echo apply_filters( 'register', sprintf( '<a href="%s">%s</a>', esc_url( wp_registration_url() ), __( 'Register' ) ) ); ?> 380 <?php endif; ?> 532 <?php if ( get_option( 'users_can_register' ) ) : 533 $registration_url = sprintf( '<a href="%s">%s</a>', esc_url( wp_registration_url() ), __( 'Register' ) ); 534 /** 535 * Filter the register link text below the login form. 536 * 537 * @since 1.5.2 538 * 539 * @param string $registration_url Register link text. 540 */ 541 echo ' | ' . apply_filters( 'register', $registration_url ); 542 endif; ?> 381 543 </p> 382 544 383 545 <?php … … 398 560 if ( isset($_POST['pass1']) && $_POST['pass1'] != $_POST['pass2'] ) 399 561 $errors->add( 'password_reset_mismatch', __( 'The passwords do not match.' ) ); 400 562 563 /** 564 * Fires before the validation in the password reset procedure. 565 * 566 * @since 3.5.0 567 * 568 * @param object $errors WP Error object. 569 * @param string $user User data. 570 */ 401 571 do_action( 'validate_password_reset', $errors, $user ); 402 572 403 573 if ( ( ! $errors->get_error_code() ) && isset( $_POST['pass1'] ) && !empty( $_POST['pass1'] ) ) { … … 434 604 435 605 <p id="nav"> 436 606 <a href="<?php echo esc_url( wp_login_url() ); ?>"><?php _e( 'Log in' ); ?></a> 437 <?php if ( get_option( 'users_can_register' ) ) : ?> 438 | <?php echo apply_filters( 'register', sprintf( '<a href="%s">%s</a>', esc_url( wp_registration_url() ), __( 'Register' ) ) ); ?> 439 <?php endif; ?> 607 <?php if ( get_option( 'users_can_register' ) ) : 608 $registration_url = sprintf( '<a href="%s">%s</a>', esc_url( wp_registration_url() ), __( 'Register' ) ); 609 //duplicate_hook 610 echo ' | ' . apply_filters( 'register', $registration_url ); 611 endif; ?> 440 612 </p> 441 613 442 614 <?php … … 445 617 446 618 case 'register' : 447 619 if ( is_multisite() ) { 448 // Multisite uses wp-signup.php 620 /** 621 * Filter the redirect destination URL for Multisite. 622 * 623 * @since 3.0.0 624 * 625 * @param string Signup URL for Multisite. 626 */ 449 627 wp_redirect( apply_filters( 'wp_signup_location', network_site_url('wp-signup.php') ) ); 450 628 exit; 451 629 } … … 468 646 } 469 647 } 470 648 649 /** 650 * Filter the redirect destination URL after user registration. 651 * 652 * @since 3.0.0 653 * 654 * @param string The redirect destination URL. 655 */ 471 656 $redirect_to = apply_filters( 'registration_redirect', !empty( $_REQUEST['redirect_to'] ) ? $_REQUEST['redirect_to'] : '' ); 472 657 login_header(__('Registration Form'), '<p class="message register">' . __('Register For This Site') . '</p>', $errors); 473 658 ?> … … 481 666 <label for="user_email"><?php _e('E-mail') ?><br /> 482 667 <input type="text" name="user_email" id="user_email" class="input" value="<?php echo esc_attr(wp_unslash($user_email)); ?>" size="25" /></label> 483 668 </p> 484 <?php do_action('register_form'); ?> 669 <?php 670 /** 671 * Fires in the registration form to add extra inputs. 672 * 673 * @since 2.1.0 674 */ 675 do_action( 'register_form' ); ?> 485 676 <p id="reg_passmail"><?php _e('A password will be e-mailed to you.') ?></p> 486 677 <br class="clear" /> 487 678 <input type="hidden" name="redirect_to" value="<?php echo esc_attr( $redirect_to ); ?>" /> … … 538 729 else 539 730 $user = wp_signon('', $secure_cookie); 540 731 541 $redirect_to = apply_filters('login_redirect', $redirect_to, isset( $_REQUEST['redirect_to'] ) ? $_REQUEST['redirect_to'] : '', $user); 732 $requested_redirect_to = isset( $_REQUEST['redirect_to'] ) ? $_REQUEST['redirect_to'] : ''; 733 /** 734 * Filtering the redirect URL after login. 735 * 736 * @since 3.0.0 737 * 738 * @param string $redirect_to The redirect destination URL. 739 * @param string $requested_redirect_to The redirect destination URL passed as a parameter. 740 * @param object $user User data object. 741 */ 742 $redirect_to = apply_filters( 'login_redirect', $redirect_to, $requested_redirect_to, $user ); 542 743 543 744 if ( !is_wp_error($user) && !$reauth ) { 544 745 if ( $interim_login ) { … … 546 747 $interim_login = 'success'; 547 748 login_header( '', $message ); ?> 548 749 </div> 549 <?php do_action( 'login_footer' ); ?> 750 <?php 751 /** 752 * Fires at the end of the login page HTML. 753 * 754 * @since 3.1.0 755 */ 756 do_action( 'login_footer' ); ?> 550 757 <?php if ( $customize_login ) : ?> 551 758 <script type="text/javascript">setTimeout( function(){ new wp.customize.Messenger({ url: '<?php echo wp_customize_url(); ?>', channel: 'login' }).send('login') }, 1000 );</script> 552 759 <?php endif; ?> … … 591 798 $errors->add('updated', __( '<strong>You have successfully updated WordPress!</strong> Please log back in to experience the awesomeness.' ), 'message' ); 592 799 } 593 800 801 /** 802 * Filter the WP Error object of the login page. 803 * 804 * @since 3.6.0 805 * 806 * @param object $errors WP Error object. 807 * @param string $redirect_to Redirect destination URL. 808 */ 594 809 $errors = apply_filters( 'wp_login_errors', $errors, $redirect_to ); 595 810 596 811 // Clear any stale cookies. … … 613 828 <label for="user_pass"><?php _e('Password') ?><br /> 614 829 <input type="password" name="pwd" id="user_pass" class="input" value="" size="20" /></label> 615 830 </p> 616 <?php do_action('login_form'); ?> 831 <?php 832 /** 833 * Fires in the login form to add extra input. 834 * 835 * @since 2.1.0 836 */ 837 do_action( 'login_form' ); ?> 617 838 <p class="forgetmenot"><label for="rememberme"><input name="rememberme" type="checkbox" id="rememberme" value="forever" <?php checked( $rememberme ); ?> /> <?php esc_attr_e('Remember Me'); ?></label></p> 618 839 <p class="submit"> 619 840 <input type="submit" name="wp-submit" id="wp-submit" class="button button-primary button-large" value="<?php esc_attr_e('Log In'); ?>" /> … … 631 852 632 853 <?php if ( ! $interim_login ) { ?> 633 854 <p id="nav"> 634 <?php if ( ! isset( $_GET['checkemail'] ) || ! in_array( $_GET['checkemail'], array( 'confirm', 'newpass' ) ) ) : ?> 635 <?php if ( get_option( 'users_can_register' ) ) : ?> 636 <?php echo apply_filters( 'register', sprintf( '<a href="%s">%s</a>', esc_url( wp_registration_url() ), __( 'Register' ) ) ); ?> | 637 <?php endif; ?> 855 <?php if ( ! isset( $_GET['checkemail'] ) || ! in_array( $_GET['checkemail'], array( 'confirm', 'newpass' ) ) ) : 856 if ( get_option( 'users_can_register' ) ) : 857 $registration_url = sprintf( '<a href="%s">%s</a>', esc_url( wp_registration_url() ), __( 'Register' ) ); 858 //duplicate_hook 859 echo apply_filters( 'register', $registration_url ) . ' | '; 860 endif; 861 ?> 638 862 <a href="<?php echo esc_url( wp_lostpassword_url() ); ?>" title="<?php esc_attr_e( 'Password Lost and Found' ); ?>"><?php _e( 'Lost your password?' ); ?></a> 639 863 <?php endif; ?> 640 864 </p>