Making WordPress.org


Ignore:
Timestamp:
12/06/2023 04:28:05 AM (3 years 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.