Skip to:
Content

BuddyPress.org

Changeset 12450


Ignore:
Timestamp:
08/24/2019 02:53:10 PM (5 years ago)
Author:
imath
Message:

Anticipate the deprecation in WordPress 5.3 of update_user_status()

Introduce bp_core_update_member_status() in order to wrap wp_update_user() with needed argument to spam a user on multisite configurations.

Props espellcaste

Fixes #8123

Location:
trunk
Files:
4 edited

Legend:

Unmodified
Added
Removed
  • trunk/src/bp-members/bp-members-functions.php

    r12393 r12450  
    611611
    612612/**
     613 * Update the spam status of the member on multisite configs.
     614 *
     615 * @since 5.0.0
     616 *
     617 * @param int   $user_id The user ID to spam or ham.
     618 * @param int   $value   0 to mark the user as `ham`, 1 to mark as `spam`.
     619 * @return bool          True if the spam status of the member changed.
     620 *                       False otherwise.
     621 */
     622function bp_core_update_member_status( $user_id = 0, $value = 0 ) {
     623    if ( ! is_multisite() || ! $user_id ) {
     624        return false;
     625    }
     626
     627    /**
     628     * The `update_user_status()` function is deprecated since WordPress 5.3.0.
     629     * Continue to use it if WordPress current major version is lower than 5.3.
     630     */
     631    if ( bp_get_major_wp_version() < 5.3 ) {
     632        return update_user_status( $user_id, 'spam', $value );
     633    }
     634
     635    // Otherwise use the replacement function.
     636    $user = wp_update_user( array(
     637        'ID'   => $user_id,
     638        'spam' => $value,
     639    ) );
     640
     641    if ( is_wp_error( $user ) ) {
     642        return false;
     643    }
     644
     645    return true;
     646}
     647
     648/**
    613649 * Process a spammed or unspammed user.
    614650 *
     
    672708
    673709        // Finally, mark this user as a spammer.
    674         if ( is_multisite() ) {
    675             update_user_status( $user_id, 'spam', $is_spam );
    676         }
     710        bp_core_update_member_status( $user_id, $is_spam );
    677711    }
    678712
  • trunk/tests/phpunit/testcases/blogs/functions.php

    r12423 r12450  
    290290        if ( function_exists( 'wp_initialize_site' ) ) {
    291291            $this->setExpectedDeprecated( 'wpmu_new_blog' );
    292         }
    293 
    294         if ( is_multisite() && function_exists( 'wp_get_registered_image_subsizes' ) ) {
    295             $this->setExpectedDeprecated( 'update_user_status' );
    296292        }
    297293
  • trunk/tests/phpunit/testcases/core/class-bp-user-query.php

    r12423 r12450  
    390390     */
    391391    public function test_bp_user_query_type_alphabetical_spam_xprofileoff() {
    392         if ( is_multisite() && function_exists( 'wp_get_registered_image_subsizes' ) ) {
    393             $this->setExpectedDeprecated( 'update_user_status' );
    394         }
    395 
    396392        $u1 = self::factory()->user->create();
    397393        $u2 = self::factory()->user->create();
  • trunk/tests/phpunit/testcases/members/functions.php

    r12423 r12450  
    379379        }
    380380
    381         if ( is_multisite() && function_exists( 'wp_get_registered_image_subsizes' ) ) {
    382             $this->setExpectedDeprecated( 'update_user_status' );
    383         }
    384 
    385381        $bp = buddypress();
    386382        $displayed_user = $bp->displayed_user;
     
    390386
    391387        // Bulk spam in network admin uses update_user_status
    392         update_user_status( $u1, 'spam', '1' );
     388        bp_core_update_member_status( $u1, '1' );
    393389
    394390        $this->assertTrue( bp_is_user_spammer( $u1 ) );
     
    411407        }
    412408
    413         if ( is_multisite() && function_exists( 'wp_get_registered_image_subsizes' ) ) {
    414             $this->setExpectedDeprecated( 'update_user_status' );
    415         }
    416 
    417409        $bp = buddypress();
    418410        $displayed_user = $bp->displayed_user;
     
    427419
    428420        // Bulk unspam in network admin uses update_user_status
    429         update_user_status( $u1, 'spam', '0' );
     421        bp_core_update_member_status( $u1, '0' );
    430422
    431423        $this->assertFalse( bp_is_user_spammer( $u1 ) );
     
    439431     */
    440432    public function test_bp_core_process_spammer_status_make_spam_user_filter() {
    441         if ( is_multisite() && function_exists( 'wp_get_registered_image_subsizes' ) ) {
    442             $this->setExpectedDeprecated( 'update_user_status' );
    443         }
    444 
    445433        add_filter( 'make_spam_user', array( $this, 'notification_filter_callback' ) );
    446434
     
    455443
    456444    public function test_bp_core_process_spammer_status_make_ham_user_filter() {
    457         if ( is_multisite() && function_exists( 'wp_get_registered_image_subsizes' ) ) {
    458             $this->setExpectedDeprecated( 'update_user_status' );
    459         }
     445        $u1 = self::factory()->user->create();
     446        $s  = bp_core_process_spammer_status( $u1, 'spam' );
    460447
    461448        add_filter( 'make_ham_user', array( $this, 'notification_filter_callback' ) );
    462449
    463         $u1 = self::factory()->user->create();
    464         $n = bp_core_process_spammer_status( $u1, 'ham' );
     450        $h = bp_core_process_spammer_status( $u1, 'ham' );
    465451
    466452        remove_filter( 'make_ham_user', array( $this, 'notification_filter_callback' ) );
     
    471457
    472458    public function test_bp_core_process_spammer_status_bp_make_spam_user_filter() {
    473         if ( is_multisite() && function_exists( 'wp_get_registered_image_subsizes' ) ) {
    474             $this->setExpectedDeprecated( 'update_user_status' );
    475         }
    476 
    477459        add_filter( 'bp_make_spam_user', array( $this, 'notification_filter_callback' ) );
    478460
     
    487469
    488470    public function test_bp_core_process_spammer_status_bp_make_ham_user_filter() {
    489         if ( is_multisite() && function_exists( 'wp_get_registered_image_subsizes' ) ) {
    490             $this->setExpectedDeprecated( 'update_user_status' );
    491         }
    492 
    493471        add_filter( 'bp_make_ham_user', array( $this, 'notification_filter_callback' ) );
    494472
Note: See TracChangeset for help on using the changeset viewer.