Make WordPress Core

Ticket #36860: 46421-6.diff

File 46421-6.diff, 1.6 KB (added by birgire, 6 years ago)
  • src/wp-admin/users.php

    diff --git src/wp-admin/users.php src/wp-admin/users.php
    index b79e5a8..7cb9c5e 100644
    switch ( $wp_list_table->current_action() ) { 
    234234                        $userids = array_map( 'intval', (array) $_REQUEST['users'] );
    235235                }
    236236
    237                 $users_have_content = false;
    238                 if ( $wpdb->get_var( "SELECT ID FROM {$wpdb->posts} WHERE post_author IN( " . implode( ',', $userids ) . ' ) LIMIT 1' ) ) {
    239                         $users_have_content = true;
    240                 } elseif ( $wpdb->get_var( "SELECT link_id FROM {$wpdb->links} WHERE link_owner IN( " . implode( ',', $userids ) . ' ) LIMIT 1' ) ) {
    241                         $users_have_content = true;
     237                /**
     238                 * Filter to setup `$users_have_content`, also known as the "users have content" flag,
     239                 * before WordPress default checks.
     240                 *
     241                 * @since 5.2.0
     242                 *
     243                 * @param bool|null $users_have_content Whether users have content. Default is `null`
     244                 *                                      to check if they are post authors or link owners.
     245                 * @param int[]     $userids            Array of IDs for users being deleted.
     246                 */
     247                $users_have_content = apply_filters( 'users_have_content', null, $userids );
     248
     249                if ( null === $users_have_content ) {
     250                        if ( $wpdb->get_var( "SELECT ID FROM {$wpdb->posts} WHERE post_author IN( " . implode( ',', $userids ) . ' ) LIMIT 1' ) ) {
     251                                $users_have_content = true;
     252                        } elseif ( $wpdb->get_var( "SELECT link_id FROM {$wpdb->links} WHERE link_owner IN( " . implode( ',', $userids ) . ' ) LIMIT 1' ) ) {
     253                                $users_have_content = true;
     254                        } else {
     255                                $users_have_content = false;
     256                        }
    242257                }
    243258
    244259                if ( $users_have_content ) {