WordPress.org

Make WordPress Core

Changeset 40485


Ignore:
Timestamp:
04/20/2017 12:13:41 AM (3 years ago)
Author:
flixos90
Message:

Multisite: Add $network_id parameter to wp_update_network_user_counts().

Using the new parameter, it is now possible to update the user count on a network different from the current one. While the count itself is technically a global user count and not network-wide, it is stored on each individual network, and the new parameter provides more control about where to update the count.

Fixes #40349. See #38699.

Location:
trunk
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • trunk/src/wp-includes/ms-functions.php

    r40484 r40485  
    23552355 *
    23562356 * @since 3.7.0
     2357 * @since 4.8.0 The $network_id parameter has been added.
    23572358 *
    23582359 * @global wpdb $wpdb WordPress database abstraction object.
    2359  */
    2360 function wp_update_network_user_counts() {
     2360 *
     2361 * @param int|null $network_id ID of the network. Default is the current network.
     2362 */
     2363function wp_update_network_user_counts( $network_id = null ) {
    23612364    global $wpdb;
    23622365
    23632366    $count = $wpdb->get_var( "SELECT COUNT(ID) as c FROM $wpdb->users WHERE spam = '0' AND deleted = '0'" );
    2364     update_site_option( 'user_count', $count );
     2367    update_network_option( $network_id, 'user_count', $count );
    23652368}
    23662369
  • trunk/tests/phpunit/tests/multisite/network.php

    r40484 r40485  
    409409        $this->assertEquals( 3, $result );
    410410    }
     411
     412    /**
     413     * @ticket 40349
     414     */
     415    public function test_wp_update_network_user_counts() {
     416        global $wpdb;
     417
     418        update_network_option( null, 'user_count', 40 );
     419
     420        $expected = $wpdb->get_var( "SELECT COUNT(ID) as c FROM $wpdb->users WHERE spam = '0' AND deleted = '0'" );
     421
     422        wp_update_network_user_counts();
     423
     424        $result = get_user_count();
     425        $this->assertEquals( $expected, $result );
     426    }
     427
     428    /**
     429     * @ticket 40349
     430     */
     431    public function test_wp_update_network_user_counts_on_different_network() {
     432        global $wpdb;
     433
     434        update_network_option( self::$different_network_id, 'user_count', 40 );
     435
     436        $expected = $wpdb->get_var( "SELECT COUNT(ID) as c FROM $wpdb->users WHERE spam = '0' AND deleted = '0'" );
     437
     438        wp_update_network_user_counts( self::$different_network_id );
     439
     440        $result = get_user_count( self::$different_network_id );
     441        $this->assertEquals( $expected, $result );
     442    }
    411443}
    412444
Note: See TracChangeset for help on using the changeset viewer.