Changeset 45708
- Timestamp:
- 08/01/2019 11:27:28 AM (5 years ago)
- Location:
- trunk
- Files:
-
- 6 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/src/wp-admin/includes/ms.php
r45674 r45708 302 302 </tr> 303 303 <?php 304 }305 306 /**307 * Update the status of a user in the database.308 *309 * Used in core to mark a user as spam or "ham" (not spam) in Multisite.310 *311 * @since 3.0.0312 *313 * @global wpdb $wpdb WordPress database abstraction object.314 *315 * @param int $id The user ID.316 * @param string $pref The column in the wp_users table to update the user's status317 * in (presumably user_status, spam, or deleted).318 * @param int $value The new status for the user.319 * @param null $deprecated Deprecated as of 3.0.2 and should not be used.320 * @return int The initially passed $value.321 */322 function update_user_status( $id, $pref, $value, $deprecated = null ) {323 global $wpdb;324 325 if ( null !== $deprecated ) {326 _deprecated_argument( __FUNCTION__, '3.0.2' );327 }328 329 $wpdb->update( $wpdb->users, array( sanitize_key( $pref ) => $value ), array( 'ID' => $id ) );330 331 $user = new WP_User( $id );332 clean_user_cache( $user );333 334 if ( $pref == 'spam' ) {335 if ( $value == 1 ) {336 /**337 * Fires after the user is marked as a SPAM user.338 *339 * @since 3.0.0340 *341 * @param int $id ID of the user marked as SPAM.342 */343 do_action( 'make_spam_user', $id );344 } else {345 /**346 * Fires after the user is marked as a HAM user. Opposite of SPAM.347 *348 * @since 3.0.0349 *350 * @param int $id ID of the user marked as HAM.351 */352 do_action( 'make_ham_user', $id );353 }354 }355 356 return $value;357 304 } 358 305 -
trunk/src/wp-admin/network/users.php
r45599 r45708 77 77 $userfunction = 'all_spam'; 78 78 $blogs = get_blogs_of_user( $user_id, true ); 79 79 80 foreach ( (array) $blogs as $details ) { 80 81 if ( $details->userblog_id != get_network()->site_id ) { // main blog not a spam ! … … 82 83 } 83 84 } 84 update_user_status( $user_id, 'spam', '1' ); 85 86 $user_data = $user->to_array(); 87 $user_data['spam'] = '1'; 88 89 wp_update_user( $user_data ); 85 90 break; 86 91 87 92 case 'notspam': 93 $user = get_userdata( $user_id ); 94 88 95 $userfunction = 'all_notspam'; 89 96 $blogs = get_blogs_of_user( $user_id, true ); 97 90 98 foreach ( (array) $blogs as $details ) { 91 99 update_blog_status( $details->userblog_id, 'spam', '0' ); 92 100 } 93 101 94 update_user_status( $user_id, 'spam', '0' ); 102 $user_data = $user->to_array(); 103 $user_data['spam'] = '0'; 104 105 wp_update_user( $user_data ); 95 106 break; 96 107 } -
trunk/src/wp-includes/ms-deprecated.php
r44469 r45708 686 686 $wpdb->suppress_errors( $suppress ); 687 687 } 688 689 /** 690 * Update the status of a user in the database. 691 * 692 * Previously used in core to mark a user as spam or "ham" (not spam) in Multisite. 693 * 694 * @since 3.0.0 695 * @deprecated 5.3.0 Use wp_update_user() 696 * @see wp_update_user() 697 * 698 * @global wpdb $wpdb WordPress database abstraction object. 699 * 700 * @param int $id The user ID. 701 * @param string $pref The column in the wp_users table to update the user's status 702 * in (presumably user_status, spam, or deleted). 703 * @param int $value The new status for the user. 704 * @param null $deprecated Deprecated as of 3.0.2 and should not be used. 705 * @return int The initially passed $value. 706 */ 707 function update_user_status( $id, $pref, $value, $deprecated = null ) { 708 global $wpdb; 709 710 _deprecated_function( __FUNCTION__, '5.3.0', 'wp_update_user()' ); 711 712 if ( null !== $deprecated ) { 713 _deprecated_argument( __FUNCTION__, '3.0.2' ); 714 } 715 716 $wpdb->update( $wpdb->users, array( sanitize_key( $pref ) => $value ), array( 'ID' => $id ) ); 717 718 $user = new WP_User( $id ); 719 clean_user_cache( $user ); 720 721 if ( $pref == 'spam' ) { 722 if ( $value == 1 ) { 723 /** This filter is documented in wp-includes/user.php */ 724 do_action( 'make_spam_user', $id ); 725 } else { 726 /** This filter is documented in wp-includes/user.php */ 727 do_action( 'make_ham_user', $id ); 728 } 729 } 730 731 return $value; 732 } -
trunk/src/wp-includes/user.php
r45674 r45708 1469 1469 * Most of the `$userdata` array fields have filters associated with the values. Exceptions are 1470 1470 * 'ID', 'rich_editing', 'syntax_highlighting', 'comment_shortcuts', 'admin_color', 'use_ssl', 1471 * 'user_registered', and 'role'. The filters have the prefix 'pre_user_' followed by the field1472 * name. An example using 'description' would have the filter called, 'pre_user_description' that1473 * can be hooked into.1471 * 'user_registered', 'spam', and 'role'. The filters have the prefix 'pre_user_' followed by the 1472 * field name. An example using 'description' would have the filter called, 'pre_user_description' 1473 * that can be hooked into. 1474 1474 * 1475 1475 * @since 2.0.0 … … 1477 1477 * methods for new installations. See wp_get_user_contact_methods(). 1478 1478 * @since 4.7.0 The user's locale can be passed to `$userdata`. 1479 * @since 5.3.0 The `spam` field can be passed to `$userdata` (Multisite only). 1479 1480 * 1480 1481 * @global wpdb $wpdb WordPress database abstraction object. … … 1510 1511 * https. Default false. 1511 1512 * @type string $user_registered Date the user registered. Format is 'Y-m-d H:i:s'. 1513 * @type bool $spam Multisite only. Whether the user is marked as spam. 1514 * Default false. 1512 1515 * @type string|bool $show_admin_bar_front Whether to display the Admin Bar for the user on the 1513 1516 * site's front end. Default true. … … 1645 1648 return new WP_Error( 'existing_user_email', __( 'Sorry, that email address is already used!' ) ); 1646 1649 } 1650 1651 if ( isset( $userdata['spam'] ) && ! is_multisite() ) { 1652 return new WP_Error( 'no_spam', __( 'Sorry, marking a user as spam is only supported on Multisite.' ) ); 1653 } 1654 1655 $spam = empty( $userdata['spam'] ) ? 0 : (bool) $userdata['spam']; 1656 1647 1657 $nickname = empty( $userdata['nickname'] ) ? $user_login : $userdata['nickname']; 1648 1658 … … 1724 1734 $meta['admin_color'] = preg_replace( '|[^a-z0-9 _.\-@]|i', '', $admin_color ); 1725 1735 1726 $meta['use_ssl'] = empty( $userdata['use_ssl'] ) ? 0 : $userdata['use_ssl'];1736 $meta['use_ssl'] = empty( $userdata['use_ssl'] ) ? 0 : (bool) $userdata['use_ssl']; 1727 1737 1728 1738 $user_registered = empty( $userdata['user_registered'] ) ? gmdate( 'Y-m-d H:i:s' ) : $userdata['user_registered']; … … 1751 1761 if ( ! $update ) { 1752 1762 $data = $data + compact( 'user_login' ); 1763 } 1764 1765 if ( is_multisite() ) { 1766 $data = $data + compact( 'spam' ); 1753 1767 } 1754 1768 … … 1849 1863 */ 1850 1864 do_action( 'profile_update', $user_id, $old_user_data ); 1865 1866 if ( isset( $userdata['spam'] ) && $userdata['spam'] != $old_user_data->spam ) { 1867 if ( $userdata['spam'] == 1 ) { 1868 /** 1869 * Fires after the user is marked as a SPAM user. 1870 * 1871 * @since 3.0.0 1872 * 1873 * @param int $user_id ID of the user marked as SPAM. 1874 */ 1875 do_action( 'make_spam_user', $user_id ); 1876 } else { 1877 /** 1878 * Fires after the user is marked as a HAM user. Opposite of SPAM. 1879 * 1880 * @since 3.0.0 1881 * 1882 * @param int $user_id ID of the user marked as HAM. 1883 */ 1884 do_action( 'make_ham_user', $user_id ); 1885 } 1886 } 1851 1887 } else { 1852 1888 /** -
trunk/tests/phpunit/tests/user/multisite.php
r42343 r45708 213 213 ) 214 214 ); 215 update_user_status( $spam_user_id, 'spam', '1');215 wp_update_user( array( 'ID' => $spam_user_id, 'spam' => '1' ) ); 216 216 217 217 $this->assertTrue( is_user_spammy( $spam_username ) ); -
trunk/tests/phpunit/tests/user/wpAuthenticateSpamCheck.php
r42343 r45708 35 35 function test_wp_authenticate_spam_check_returns_wp_error_when_flagged() { 36 36 $user_id = self::factory()->user->create( array( 'role' => 'contributor' ) ); 37 update_user_status( $user_id, 'spam', 1);37 wp_update_user( array( 'ID' => $user_id, 'spam' => '1' ) ); 38 38 $user = new WP_User( $user_id ); 39 39 $actual_user = wp_authenticate_spam_check( $user );
Note: See TracChangeset
for help on using the changeset viewer.