Making WordPress.org


Ignore:
Timestamp:
12/06/2023 04:28:05 AM (17 months ago)
Author:
dd32
Message:

Plugin Directory: Reviewer tools: Make the Reviewer column sortable.

Fixes #7147.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • sites/trunk/wordpress.org/public_html/wp-content/plugins/plugin-directory/admin/class-customizations.php

    r12756 r13017  
    3030        add_filter( 'dashboard_glance_items', array( $this, 'plugin_glance_items' ) );
    3131
     32        add_filter( 'query_vars', array( $this, 'query_vars' ) );
    3233        add_action( 'pre_get_posts', array( $this, 'pre_get_posts' ) );
    3334
     
    190191
    191192    /**
     193     * Filter the query vars used in wp-admin.
     194     */
     195    public function query_vars( $query_vars ) {
     196        $query_vars[] = 'reviewer';
     197
     198        return $query_vars;
     199    }
     200
     201    /**
    192202     * Filter the query in wp-admin to list only plugins relevant to the current user.
    193203     *
     
    215225
    216226        // Filter by reviewer.
    217         if ( ! empty( $_REQUEST['reviewer'] ) ) {
     227        if ( isset( $query->query['reviewer'] ) && strlen( $query->query['reviewer'] ) ) {
    218228            $meta_query = $query->get( 'meta_query' ) ?: [];
    219             $meta_query[] = [
     229            $meta_query['assigned_reviewer'] = [
    220230                'key'   => 'assigned_reviewer',
    221                 'value' => intval( $_GET['reviewer'] ),
     231                'value' => intval( $query->query['reviewer'] ),
     232                'type'  => 'unsigned',
     233            ];
     234
     235            // Query for no assignee.
     236            if ( ! $meta_query['assigned_reviewer']['value'] ) {
     237                $meta_query['assigned_reviewer']['compare'] = 'NOT EXISTS';
     238            }
     239
     240            $query->set( 'meta_query', $meta_query );
     241        }
     242
     243        if ( 'assigned_reviewer_time' === $query->query['orderby'] ?? '' ) {
     244            $meta_query = $query->get( 'meta_query' ) ?: [];
     245
     246            $meta_query['assigned_reviewer_time'] = [
     247                'key'     => 'assigned_reviewer_time',
     248                'type'    => 'unsigned',
    222249            ];
    223250
Note: See TracChangeset for help on using the changeset viewer.