~canonical-sysadmins/wordpress/4.8.1

« back to all changes in this revision

Viewing changes to wp-includes/pluggable.php

  • Committer: Barry Price
  • Date: 2016-08-17 04:49:28 UTC
  • mto: This revision was merged to the branch mainline in revision 22.
  • Revision ID: barry.price@canonical.com-20160817044928-viijiwb4tl8jwzmp
new upstream release 4.6

Show diffs side-by-side

added added

removed removed

Lines of Context:
154
154
 *
155
155
 * The default content type is 'text/plain' which does not allow using HTML.
156
156
 * However, you can set the content type of the email by using the
157
 
 * 'wp_mail_content_type' filter.
 
157
 * {@see 'wp_mail_content_type'} filter.
158
158
 *
159
159
 * The default charset is based on the charset used on the blog. The charset can
160
 
 * be set using the 'wp_mail_charset' filter.
 
160
 * be set using the {@see 'wp_mail_charset'} filter.
161
161
 *
162
162
 * @since 1.2.1
163
163
 *
174
174
        // Compact the input, apply the filters, and extract them back out
175
175
 
176
176
        /**
177
 
         * Filter the wp_mail() arguments.
 
177
         * Filters the wp_mail() arguments.
178
178
         *
179
179
         * @since 2.2.0
180
180
         *
216
216
        }
217
217
 
218
218
        // Headers
 
219
        $cc = $bcc = $reply_to = array();
 
220
 
219
221
        if ( empty( $headers ) ) {
220
222
                $headers = array();
221
223
        } else {
227
229
                        $tempheaders = $headers;
228
230
                }
229
231
                $headers = array();
230
 
                $cc = array();
231
 
                $bcc = array();
232
232
 
233
233
                // If it's actually got contents
234
234
                if ( !empty( $tempheaders ) ) {
291
291
                                        case 'bcc':
292
292
                                                $bcc = array_merge( (array) $bcc, explode( ',', $content ) );
293
293
                                                break;
 
294
                                        case 'reply-to':
 
295
                                                $reply_to = array_merge( (array) $reply_to, explode( ',', $content ) );
 
296
                                                break;
294
297
                                        default:
295
298
                                                // Add it to our grand headers array
296
299
                                                $headers[trim( $name )] = trim( $content );
329
332
        }
330
333
 
331
334
        /**
332
 
         * Filter the email address to send from.
 
335
         * Filters the email address to send from.
333
336
         *
334
337
         * @since 2.2.0
335
338
         *
336
339
         * @param string $from_email Email address to send from.
337
340
         */
338
 
        $phpmailer->From = apply_filters( 'wp_mail_from', $from_email );
 
341
        $from_email = apply_filters( 'wp_mail_from', $from_email );
339
342
 
340
343
        /**
341
 
         * Filter the name to associate with the "from" email address.
 
344
         * Filters the name to associate with the "from" email address.
342
345
         *
343
346
         * @since 2.3.0
344
347
         *
345
348
         * @param string $from_name Name associated with the "from" email address.
346
349
         */
347
 
        $phpmailer->FromName = apply_filters( 'wp_mail_from_name', $from_name );
 
350
        $from_name = apply_filters( 'wp_mail_from_name', $from_name );
 
351
 
 
352
        $phpmailer->setFrom( $from_email, $from_name );
348
353
 
349
354
        // Set destination addresses
350
355
        if ( !is_array( $to ) )
351
356
                $to = explode( ',', $to );
352
357
 
353
 
        foreach ( (array) $to as $recipient ) {
354
 
                try {
355
 
                        // Break $recipient into name and address parts if in the format "Foo <bar@baz.com>"
356
 
                        $recipient_name = '';
357
 
                        if ( preg_match( '/(.*)<(.+)>/', $recipient, $matches ) ) {
358
 
                                if ( count( $matches ) == 3 ) {
359
 
                                        $recipient_name = $matches[1];
360
 
                                        $recipient = $matches[2];
361
 
                                }
362
 
                        }
363
 
                        $phpmailer->AddAddress( $recipient, $recipient_name);
364
 
                } catch ( phpmailerException $e ) {
365
 
                        continue;
366
 
                }
367
 
        }
368
 
 
369
358
        // Set mail's subject and body
370
359
        $phpmailer->Subject = $subject;
371
360
        $phpmailer->Body    = $message;
372
361
 
373
 
        // Add any CC and BCC recipients
374
 
        if ( !empty( $cc ) ) {
375
 
                foreach ( (array) $cc as $recipient ) {
376
 
                        try {
377
 
                                // Break $recipient into name and address parts if in the format "Foo <bar@baz.com>"
378
 
                                $recipient_name = '';
379
 
                                if ( preg_match( '/(.*)<(.+)>/', $recipient, $matches ) ) {
380
 
                                        if ( count( $matches ) == 3 ) {
381
 
                                                $recipient_name = $matches[1];
382
 
                                                $recipient = $matches[2];
383
 
                                        }
384
 
                                }
385
 
                                $phpmailer->AddCc( $recipient, $recipient_name );
386
 
                        } catch ( phpmailerException $e ) {
387
 
                                continue;
388
 
                        }
 
362
        // Use appropriate methods for handling addresses, rather than treating them as generic headers
 
363
        $address_headers = compact( 'to', 'cc', 'bcc', 'reply_to' );
 
364
 
 
365
        foreach ( $address_headers as $address_header => $addresses ) {
 
366
                if ( empty( $addresses ) ) {
 
367
                        continue;
389
368
                }
390
 
        }
391
369
 
392
 
        if ( !empty( $bcc ) ) {
393
 
                foreach ( (array) $bcc as $recipient) {
 
370
                foreach ( (array) $addresses as $address ) {
394
371
                        try {
395
372
                                // Break $recipient into name and address parts if in the format "Foo <bar@baz.com>"
396
373
                                $recipient_name = '';
397
 
                                if ( preg_match( '/(.*)<(.+)>/', $recipient, $matches ) ) {
 
374
 
 
375
                                if ( preg_match( '/(.*)<(.+)>/', $address, $matches ) ) {
398
376
                                        if ( count( $matches ) == 3 ) {
399
377
                                                $recipient_name = $matches[1];
400
 
                                                $recipient = $matches[2];
 
378
                                                $address        = $matches[2];
401
379
                                        }
402
380
                                }
403
 
                                $phpmailer->AddBcc( $recipient, $recipient_name );
 
381
 
 
382
                                switch ( $address_header ) {
 
383
                                        case 'to':
 
384
                                                $phpmailer->addAddress( $address, $recipient_name );
 
385
                                                break;
 
386
                                        case 'cc':
 
387
                                                $phpmailer->addCc( $address, $recipient_name );
 
388
                                                break;
 
389
                                        case 'bcc':
 
390
                                                $phpmailer->addBcc( $address, $recipient_name );
 
391
                                                break;
 
392
                                        case 'reply_to':
 
393
                                                $phpmailer->addReplyTo( $address, $recipient_name );
 
394
                                                break;
 
395
                                }
404
396
                        } catch ( phpmailerException $e ) {
405
397
                                continue;
406
398
                        }
416
408
                $content_type = 'text/plain';
417
409
 
418
410
        /**
419
 
         * Filter the wp_mail() content type.
 
411
         * Filters the wp_mail() content type.
420
412
         *
421
413
         * @since 2.3.0
422
414
         *
437
429
        // Set the content-type and charset
438
430
 
439
431
        /**
440
 
         * Filter the default wp_mail() charset.
 
432
         * Filters the default wp_mail() charset.
441
433
         *
442
434
         * @since 2.3.0
443
435
         *
513
505
        $password = trim($password);
514
506
 
515
507
        /**
516
 
         * Filter whether a set of user login credentials are valid.
 
508
         * Filters whether a set of user login credentials are valid.
517
509
         *
518
510
         * A WP_User object is returned if the credentials authenticate a user.
519
511
         * WP_Error or null otherwise.
610
602
        $token = $cookie_elements['token'];
611
603
        $expired = $expiration = $cookie_elements['expiration'];
612
604
 
613
 
        // Allow a grace period for POST and AJAX requests
 
605
        // Allow a grace period for POST and Ajax requests
614
606
        if ( defined('DOING_AJAX') || 'POST' == $_SERVER['REQUEST_METHOD'] ) {
615
607
                $expired += HOUR_IN_SECONDS;
616
608
        }
667
659
                return false;
668
660
        }
669
661
 
670
 
        // AJAX/POST grace period set above
 
662
        // Ajax/POST grace period set above
671
663
        if ( $expiration < time() ) {
672
664
                $GLOBALS['login_grace_period'] = 1;
673
665
        }
693
685
 * @since 2.5.0
694
686
 *
695
687
 * @param int    $user_id    User ID
696
 
 * @param int    $expiration Cookie expiration in seconds
 
688
 * @param int    $expiration The time the cookie expires as a UNIX timestamp.
697
689
 * @param string $scheme     Optional. The cookie scheme to use: auth, secure_auth, or logged_in
698
690
 * @param string $token      User's session token to use for this cookie
699
691
 * @return string Authentication cookie contents. Empty string if user does not exist.
720
712
        $cookie = $user->user_login . '|' . $expiration . '|' . $token . '|' . $hash;
721
713
 
722
714
        /**
723
 
         * Filter the authentication cookie.
 
715
         * Filters the authentication cookie.
724
716
         *
725
717
         * @since 2.5.0
726
718
         *
727
719
         * @param string $cookie     Authentication cookie.
728
720
         * @param int    $user_id    User ID.
729
 
         * @param int    $expiration Authentication cookie expiration in seconds.
 
721
         * @param int    $expiration The time the cookie expires as a UNIX timestamp.
730
722
         * @param string $scheme     Cookie scheme used. Accepts 'auth', 'secure_auth', or 'logged_in'.
731
723
         * @param string $token      User's session token used.
732
724
         */
802
794
function wp_set_auth_cookie( $user_id, $remember = false, $secure = '', $token = '' ) {
803
795
        if ( $remember ) {
804
796
                /**
805
 
                 * Filter the duration of the authentication cookie expiration period.
 
797
                 * Filters the duration of the authentication cookie expiration period.
806
798
                 *
807
799
                 * @since 2.8.0
808
800
                 *
831
823
        $secure_logged_in_cookie = $secure && 'https' === parse_url( get_option( 'home' ), PHP_URL_SCHEME );
832
824
 
833
825
        /**
834
 
         * Filter whether the connection is secure.
 
826
         * Filters whether the connection is secure.
835
827
         *
836
828
         * @since 3.1.0
837
829
         *
841
833
        $secure = apply_filters( 'secure_auth_cookie', $secure, $user_id );
842
834
 
843
835
        /**
844
 
         * Filter whether to use a secure cookie when logged-in.
 
836
         * Filters whether to use a secure cookie when logged-in.
845
837
         *
846
838
         * @since 3.1.0
847
839
         *
873
865
         * @since 2.5.0
874
866
         *
875
867
         * @param string $auth_cookie Authentication cookie.
876
 
         * @param int    $expire      Login grace period in seconds. Default 43,200 seconds, or 12 hours.
877
 
         * @param int    $expiration  Duration in seconds the authentication cookie should be valid.
878
 
         *                            Default 1,209,600 seconds, or 14 days.
 
868
         * @param int    $expire      The time the login grace period expires as a UNIX timestamp.
 
869
         *                            Default is 12 hours past the cookie's expiration time.
 
870
         * @param int    $expiration  The time when the authentication cookie expires as a UNIX timestamp.
 
871
         *                            Default is 14 days from now.
879
872
         * @param int    $user_id     User ID.
880
873
         * @param string $scheme      Authentication scheme. Values include 'auth', 'secure_auth', or 'logged_in'.
881
874
         */
882
875
        do_action( 'set_auth_cookie', $auth_cookie, $expire, $expiration, $user_id, $scheme );
883
876
 
884
877
        /**
885
 
         * Fires immediately before the secure authentication cookie is set.
 
878
         * Fires immediately before the logged-in authentication cookie is set.
886
879
         *
887
880
         * @since 2.6.0
888
881
         *
889
882
         * @param string $logged_in_cookie The logged-in cookie.
890
 
         * @param int    $expire           Login grace period in seconds. Default 43,200 seconds, or 12 hours.
891
 
         * @param int    $expiration       Duration in seconds the authentication cookie should be valid.
892
 
         *                                 Default 1,209,600 seconds, or 14 days.
 
883
         * @param int    $expire           The time the login grace period expires as a UNIX timestamp.
 
884
         *                                 Default is 12 hours past the cookie's expiration time.
 
885
         * @param int    $expiration       The time when the logged-in authentication cookie expires as a UNIX timestamp.
 
886
         *                                 Default is 14 days from now.
893
887
         * @param int    $user_id          User ID.
894
888
         * @param string $scheme           Authentication scheme. Default 'logged_in'.
895
889
         */
965
959
        $secure = ( is_ssl() || force_ssl_admin() );
966
960
 
967
961
        /**
968
 
         * Filter whether to use a secure authentication redirect.
 
962
         * Filters whether to use a secure authentication redirect.
969
963
         *
970
964
         * @since 3.1.0
971
965
         *
1045
1039
 */
1046
1040
function check_admin_referer( $action = -1, $query_arg = '_wpnonce' ) {
1047
1041
        if ( -1 == $action )
1048
 
                _doing_it_wrong( __FUNCTION__, __( 'You should specify a nonce action to be verified by using the first parameter.' ), '3.2' );
 
1042
                _doing_it_wrong( __FUNCTION__, __( 'You should specify a nonce action to be verified by using the first parameter.' ), '3.2.0' );
1049
1043
 
1050
1044
        $adminurl = strtolower(admin_url());
1051
1045
        $referer = strtolower(wp_get_referer());
1073
1067
 
1074
1068
if ( !function_exists('check_ajax_referer') ) :
1075
1069
/**
1076
 
 * Verifies the AJAX request to prevent processing requests external of the blog.
 
1070
 * Verifies the Ajax request to prevent processing requests external of the blog.
1077
1071
 *
1078
1072
 * @since 2.0.3
1079
1073
 *
1099
1093
        $result = wp_verify_nonce( $nonce, $action );
1100
1094
 
1101
1095
        /**
1102
 
         * Fires once the AJAX request has been validated or not.
 
1096
         * Fires once the Ajax request has been validated or not.
1103
1097
         *
1104
1098
         * @since 2.1.0
1105
1099
         *
1106
 
         * @param string    $action The AJAX nonce action.
 
1100
         * @param string    $action The Ajax nonce action.
1107
1101
         * @param false|int $result False if the nonce is invalid, 1 if the nonce is valid and generated between
1108
1102
         *                          0-12 hours ago, 2 if the nonce is valid and generated between 12-24 hours ago.
1109
1103
         */
1125
1119
/**
1126
1120
 * Redirects to another page.
1127
1121
 *
 
1122
 * Note: wp_redirect() does not exit automatically, and should almost always be
 
1123
 * followed by a call to `exit;`:
 
1124
 *
 
1125
 *     wp_redirect( $url );
 
1126
 *     exit;
 
1127
 *
 
1128
 * Exiting can also be selectively manipulated by using wp_redirect() as a conditional
 
1129
 * in conjunction with the {@see 'wp_redirect'} and {@see 'wp_redirect_location'} hooks:
 
1130
 *
 
1131
 *     if ( wp_redirect( $url ) {
 
1132
 *         exit;
 
1133
 *     }
 
1134
 *
1128
1135
 * @since 1.5.1
1129
1136
 *
1130
1137
 * @global bool $is_IIS
1137
1144
        global $is_IIS;
1138
1145
 
1139
1146
        /**
1140
 
         * Filter the redirect location.
 
1147
         * Filters the redirect location.
1141
1148
         *
1142
1149
         * @since 2.1.0
1143
1150
         *
1147
1154
        $location = apply_filters( 'wp_redirect', $location, $status );
1148
1155
 
1149
1156
        /**
1150
 
         * Filter the redirect status code.
 
1157
         * Filters the redirect status code.
1151
1158
         *
1152
1159
         * @since 2.3.0
1153
1160
         *
1241
1248
        $location = wp_sanitize_redirect($location);
1242
1249
 
1243
1250
        /**
1244
 
         * Filter the redirect fallback URL for when the provided redirect is not safe (local).
 
1251
         * Filters the redirect fallback URL for when the provided redirect is not safe (local).
1245
1252
         *
1246
1253
         * @since 4.3.0
1247
1254
         *
1305
1312
        $wpp = parse_url(home_url());
1306
1313
 
1307
1314
        /**
1308
 
         * Filter the whitelist of hosts to redirect to.
 
1315
         * Filters the whitelist of hosts to redirect to.
1309
1316
         *
1310
1317
         * @since 2.3.0
1311
1318
         *
1333
1340
 */
1334
1341
function wp_notify_postauthor( $comment_id, $deprecated = null ) {
1335
1342
        if ( null !== $deprecated ) {
1336
 
                _deprecated_argument( __FUNCTION__, '3.8' );
 
1343
                _deprecated_argument( __FUNCTION__, '3.8.0' );
1337
1344
        }
1338
1345
 
1339
1346
        $comment = get_comment( $comment_id );
1350
1357
        }
1351
1358
 
1352
1359
        /**
1353
 
         * Filter the list of email addresses to receive a comment notification.
 
1360
         * Filters the list of email addresses to receive a comment notification.
1354
1361
         *
1355
1362
         * By default, only post authors are notified of comments. This filter allows
1356
1363
         * others to be added.
1372
1379
        $emails = array_flip( $emails );
1373
1380
 
1374
1381
        /**
1375
 
         * Filter whether to notify comment authors of their comments on their own posts.
 
1382
         * Filters whether to notify comment authors of their comments on their own posts.
1376
1383
         *
1377
1384
         * By default, comment authors aren't notified of their comments on their own
1378
1385
         * posts. This filter allows you to override that.
1478
1485
                $message_headers .= $reply_to . "\n";
1479
1486
 
1480
1487
        /**
1481
 
         * Filter the comment notification email text.
 
1488
         * Filters the comment notification email text.
1482
1489
         *
1483
1490
         * @since 1.5.2
1484
1491
         *
1488
1495
        $notify_message = apply_filters( 'comment_notification_text', $notify_message, $comment->comment_ID );
1489
1496
 
1490
1497
        /**
1491
 
         * Filter the comment notification email subject.
 
1498
         * Filters the comment notification email subject.
1492
1499
         *
1493
1500
         * @since 1.5.2
1494
1501
         *
1498
1505
        $subject = apply_filters( 'comment_notification_subject', $subject, $comment->comment_ID );
1499
1506
 
1500
1507
        /**
1501
 
         * Filter the comment notification email headers.
 
1508
         * Filters the comment notification email headers.
1502
1509
         *
1503
1510
         * @since 1.5.2
1504
1511
         *
1535
1542
        $maybe_notify = get_option( 'moderation_notify' );
1536
1543
 
1537
1544
        /**
1538
 
         * Filter whether to send the site moderator email notifications, overriding the site setting.
 
1545
         * Filters whether to send the site moderator email notifications, overriding the site setting.
1539
1546
         *
1540
1547
         * @since 4.4.0
1541
1548
         *
1610
1617
        $message_headers = '';
1611
1618
 
1612
1619
        /**
1613
 
         * Filter the list of recipients for comment moderation emails.
 
1620
         * Filters the list of recipients for comment moderation emails.
1614
1621
         *
1615
1622
         * @since 3.7.0
1616
1623
         *
1620
1627
        $emails = apply_filters( 'comment_moderation_recipients', $emails, $comment_id );
1621
1628
 
1622
1629
        /**
1623
 
         * Filter the comment moderation email text.
 
1630
         * Filters the comment moderation email text.
1624
1631
         *
1625
1632
         * @since 1.5.2
1626
1633
         *
1630
1637
        $notify_message = apply_filters( 'comment_moderation_text', $notify_message, $comment_id );
1631
1638
 
1632
1639
        /**
1633
 
         * Filter the comment moderation email subject.
 
1640
         * Filters the comment moderation email subject.
1634
1641
         *
1635
1642
         * @since 1.5.2
1636
1643
         *
1640
1647
        $subject = apply_filters( 'comment_moderation_subject', $subject, $comment_id );
1641
1648
 
1642
1649
        /**
1643
 
         * Filter the comment moderation email headers.
 
1650
         * Filters the comment moderation email headers.
1644
1651
         *
1645
1652
         * @since 2.8.0
1646
1653
         *
1669
1676
        // send a copy of password change notification to the admin
1670
1677
        // but check to see if it's the admin whose password we're changing, and skip this
1671
1678
        if ( 0 !== strcasecmp( $user->user_email, get_option( 'admin_email' ) ) ) {
1672
 
                $message = sprintf(__('Password Lost and Changed for user: %s'), $user->user_login) . "\r\n";
 
1679
                /* translators: %s: user name */
 
1680
                $message = sprintf( __( 'Password changed for user: %s' ), $user->user_login ) . "\r\n";
1673
1681
                // The blogname option is escaped with esc_html on the way into the database in sanitize_option
1674
1682
                // we want to reverse this for the plain text arena of emails.
1675
1683
                $blogname = wp_specialchars_decode(get_option('blogname'), ENT_QUOTES);
1676
 
                wp_mail(get_option('admin_email'), sprintf(__('[%s] Password Lost/Changed'), $blogname), $message);
 
1684
                /* translators: %s: site title */
 
1685
                wp_mail( get_option( 'admin_email' ), sprintf( __( '[%s] Password Changed' ), $blogname ), $message );
1677
1686
        }
1678
1687
}
1679
1688
endif;
1687
1696
 * @since 2.0.0
1688
1697
 * @since 4.3.0 The `$plaintext_pass` parameter was changed to `$notify`.
1689
1698
 * @since 4.3.1 The `$plaintext_pass` parameter was deprecated. `$notify` added as a third parameter.
 
1699
 * @since 4.6.0 The `$notify` parameter accepts 'user' for sending notification only to the user created.
1690
1700
 *
1691
1701
 * @global wpdb         $wpdb      WordPress database object for queries.
1692
1702
 * @global PasswordHash $wp_hasher Portable PHP password hashing framework instance.
1694
1704
 * @param int    $user_id    User ID.
1695
1705
 * @param null   $deprecated Not used (argument deprecated).
1696
1706
 * @param string $notify     Optional. Type of notification that should happen. Accepts 'admin' or an empty
1697
 
 *                           string (admin only), or 'both' (admin and user). Default empty.
 
1707
 *                           string (admin only), 'user', or 'both' (admin and user). Default empty.
1698
1708
 */
1699
1709
function wp_new_user_notification( $user_id, $deprecated = null, $notify = '' ) {
1700
1710
        if ( $deprecated !== null ) {
1708
1718
        // we want to reverse this for the plain text arena of emails.
1709
1719
        $blogname = wp_specialchars_decode(get_option('blogname'), ENT_QUOTES);
1710
1720
 
1711
 
        $message  = sprintf(__('New user registration on your site %s:'), $blogname) . "\r\n\r\n";
1712
 
        $message .= sprintf(__('Username: %s'), $user->user_login) . "\r\n\r\n";
1713
 
        $message .= sprintf(__('Email: %s'), $user->user_email) . "\r\n";
 
1721
        if ( 'user' !== $notify ) {
 
1722
                $message  = sprintf( __( 'New user registration on your site %s:' ), $blogname ) . "\r\n\r\n";
 
1723
                $message .= sprintf( __( 'Username: %s' ), $user->user_login ) . "\r\n\r\n";
 
1724
                $message .= sprintf( __( 'Email: %s' ), $user->user_email ) . "\r\n";
1714
1725
 
1715
 
        @wp_mail(get_option('admin_email'), sprintf(__('[%s] New User Registration'), $blogname), $message);
 
1726
                @wp_mail( get_option( 'admin_email' ), sprintf( __( '[%s] New User Registration' ), $blogname ), $message );
 
1727
        }
1716
1728
 
1717
1729
        // `$deprecated was pre-4.3 `$plaintext_pass`. An empty `$plaintext_pass` didn't sent a user notifcation.
1718
1730
        if ( 'admin' === $notify || ( empty( $deprecated ) && empty( $notify ) ) ) {
1756
1768
 */
1757
1769
function wp_nonce_tick() {
1758
1770
        /**
1759
 
         * Filter the lifespan of nonces in seconds.
 
1771
         * Filters the lifespan of nonces in seconds.
1760
1772
         *
1761
1773
         * @since 2.5.0
1762
1774
         *
1788
1800
        $uid = (int) $user->ID;
1789
1801
        if ( ! $uid ) {
1790
1802
                /**
1791
 
                 * Filter whether the user who generated the nonce is logged out.
 
1803
                 * Filters whether the user who generated the nonce is logged out.
1792
1804
                 *
1793
1805
                 * @since 3.5.0
1794
1806
                 *
1900
1912
        static $cached_salts = array();
1901
1913
        if ( isset( $cached_salts[ $scheme ] ) ) {
1902
1914
                /**
1903
 
                 * Filter the WordPress salt.
 
1915
                 * Filters the WordPress salt.
1904
1916
                 *
1905
1917
                 * @since 2.5.0
1906
1918
                 *
2047
2059
                }
2048
2060
 
2049
2061
                /**
2050
 
                 * Filter whether the plaintext password matches the encrypted password.
 
2062
                 * Filters whether the plaintext password matches the encrypted password.
2051
2063
                 *
2052
2064
                 * @since 2.5.0
2053
2065
                 *
2100
2112
        }
2101
2113
 
2102
2114
        /**
2103
 
         * Filter the randomly-generated password.
 
2115
         * Filters the randomly-generated password.
2104
2116
         *
2105
2117
         * @since 3.0.0
2106
2118
         *
2289
2301
        }
2290
2302
 
2291
2303
        /**
2292
 
         * Filter whether to retrieve the avatar URL early.
 
2304
         * Filters whether to retrieve the avatar URL early.
2293
2305
         *
2294
2306
         * Passing a non-null value will effectively short-circuit get_avatar(), passing
2295
2307
         * the value through the {@see 'get_avatar'} filter and returning early.
2348
2360
        );
2349
2361
 
2350
2362
        /**
2351
 
         * Filter the avatar to retrieve.
 
2363
         * Filters the avatar to retrieve.
2352
2364
         *
2353
2365
         * @since 2.5.0
2354
2366
         * @since 4.2.0 The `$args` parameter was added.