Make WordPress Core

Ticket #33654: 33654.5.diff

File 33654.5.diff, 7.0 KB (added by ocean90, 9 years ago)
  • src/wp-admin/includes/user.php

     
    176176                $user_id = wp_update_user( $user );
    177177        } else {
    178178                $user_id = wp_insert_user( $user );
    179                 wp_new_user_notification( $user_id, 'both' );
     179                wp_new_user_notification( $user_id, null, 'both' );
    180180        }
    181181        return $user_id;
    182182}
  • src/wp-admin/network/site-new.php

     
    9494                if ( false === $user_id )
    9595                        wp_die( __( 'There was an error creating the user.' ) );
    9696                else
    97                         wp_new_user_notification( $user_id, 'both' );
     97                        wp_new_user_notification( $user_id, null, 'both' );
    9898        }
    9999
    100100        $wpdb->hide_errors();
  • src/wp-admin/network/site-users.php

     
    7777                                if ( false === $user_id ) {
    7878                                        $update = 'err_new_dup';
    7979                                } else {
    80                                         wp_new_user_notification( $user_id, 'both' );
     80                                        wp_new_user_notification( $user_id, null, 'both' );
    8181                                        add_user_to_blog( $id, $user_id, $_POST['new_role'] );
    8282                                        $update = 'newuser';
    8383                                }
  • src/wp-admin/network/user-new.php

     
    5151                if ( ! $user_id ) {
    5252                        $add_user_errors = new WP_Error( 'add_user_fail', __( 'Cannot add user.' ) );
    5353                } else {
    54                         wp_new_user_notification( $user_id, 'both' );
     54                        wp_new_user_notification( $user_id, null, 'both' );
    5555                        wp_redirect( add_query_arg( array('update' => 'added'), 'user-new.php' ) );
    5656                        exit;
    5757                }
  • src/wp-includes/pluggable.php

     
    16901690 *
    16911691 * @since 2.0.0
    16921692 * @since 4.3.0 The `$plaintext_pass` parameter was changed to `$notify`.
     1693 * @since 4.3.1 The `$plaintext_pass` deprecated. `$notify` added as a third argument.
    16931694 *
    16941695 * @global wpdb         $wpdb      WordPress database object for queries.
    16951696 * @global PasswordHash $wp_hasher Portable PHP password hashing framework instance.
    16961697 *
    1697  * @param int    $user_id User ID.
    1698  * @param string $notify  Optional. Type of notification that should happen. Accepts 'admin' or an empty
    1699  *                        string (admin only), or 'both' (admin and user). The empty string value was kept
    1700  *                        for backward-compatibility purposes with the renamed parameter. Default empty.
     1698 * @param int    $user_id    User ID.
     1699 * @param null   $deprecated Not used (argument deprecated).
     1700 * @param string $notify     Optional. Type of notification that should happen. Accepts 'admin' or an empty
     1701 *                           string (admin only), or 'both' (admin and user). The empty string value was kept
     1702 *                           for backward-compatibility purposes with the renamed parameter. Default empty.
    17011703 */
    1702 function wp_new_user_notification( $user_id, $notify = '' ) {
     1704function wp_new_user_notification( $user_id, $deprecated = null, $notify = '' ) {
     1705        if ( $deprecated !== null ) {
     1706                _deprecated_argument( __FUNCTION__, '4.3.1' );
     1707        }
     1708
    17031709        global $wpdb, $wp_hasher;
    17041710        $user = get_userdata( $user_id );
    17051711
  • src/wp-includes/user-functions.php

     
    20042004
    20052005        update_user_option( $user_id, 'default_password_nag', true, true ); //Set up the Password change nag.
    20062006
    2007         wp_new_user_notification( $user_id, 'both' );
     2007        wp_new_user_notification( $user_id, null, 'both' );
    20082008
    20092009        return $user_id;
    20102010}
  • tests/phpunit/tests/user.php

     
    679679                $this->assertEquals( $user->user_email, 'test2@test.com' );
    680680        }
    681681
     682        /**
     683         * Testing wp_new_user_notification email statuses.
     684         *
     685         * @dataProvider data_wp_new_user_notifications
     686         * @ticket 33654
     687         */
     688        function test_wp_new_user_notification( $notify, $admin_email_sent_expected, $user_email_sent_expected ) {
     689                unset( $GLOBALS['phpmailer']->mock_sent );
     690
     691                $was_admin_email_sent = false;
     692                $was_user_email_sent = false;
     693
     694                $user = $this->factory->user->create( $this->user_data );
     695
     696                wp_new_user_notification( $user, null, $notify );
     697
     698                /*
     699                 * Check to see if a notification email was sent to the
     700                 * post author `blackburn@battlefield3.com` and and site admin `admin@example.org`.
     701                 */
     702                if ( ! empty( $GLOBALS['phpmailer']->mock_sent ) ) {
     703                        $was_admin_email_sent = ( isset( $GLOBALS['phpmailer']->mock_sent[0] ) && WP_TESTS_EMAIL == $GLOBALS['phpmailer']->mock_sent[0]['to'][0][0] );
     704                        $was_user_email_sent = ( isset( $GLOBALS['phpmailer']->mock_sent[1] ) && 'blackburn@battlefield3.com' == $GLOBALS['phpmailer']->mock_sent[1]['to'][0][0] );
     705                }
     706
     707                $this->assertSame( $admin_email_sent_expected, $was_admin_email_sent, 'Admin email result was not as expected in test_wp_new_user_notification' );
     708                $this->assertSame( $user_email_sent_expected , $was_user_email_sent, 'User email result was not as expected in test_wp_new_user_notification' );
     709        }
     710
     711        /**
     712         * Data provider for test_wp_new_user_notification().
     713         *
     714         * Passes the three available options for the $notify parameter and the expected email
     715         * emails sent status as a bool.
     716         *
     717         * @return array {
     718         *     @type array {
     719         *         @type string $post_args               The arguments that will merged with the $_POST array.
     720         *         @type bool $admin_email_sent_expected The expected result of whether an email was sent to the admin.
     721         *         @type bool $user_email_sent_expected  The expected result of whether an email was sent to the user.
     722         *     }
     723         * }
     724         */
     725        function data_wp_new_user_notifications() {
     726                return array(
     727                        array(
     728                                '',
     729                                true,
     730                                false,
     731                        ),
     732                        array(
     733                                'admin',
     734                                true,
     735                                false,
     736                        ),
     737                        array(
     738                                'both',
     739                                true,
     740                                true,
     741                        ),
     742                );
     743        }
     744
     745        /**
     746         * Set up a user and try sending a notification using the old, deprecated
     747         * function signature `wp_new_user_notification( $user, 'plaintext_password' );`.
     748         *
     749         * @ticket 33654
     750         * @expectedDeprecated wp_new_user_notification
     751         */
     752        function test_wp_new_user_notification_old_signature_throws_deprecated_warning() {
     753                $user = $this->factory->user->create(
     754                        array(
     755                                'role'       => 'author',
     756                                'user_login' => 'test_wp_new_user_notification',
     757                                'user_pass'  => 'password',
     758                                'user_email' => 'test@test.com',
     759                        )
     760                );
     761
     762                wp_new_user_notification( $user, 'this_is_deprecated' );
     763        }
    682764}