WordPress.org

Making WordPress.org

Changeset 6264


Ignore:
Timestamp:
12/13/17 19:45:26 (5 weeks ago)
Author:
ocean90
Message:

Translate, Plugin Directory: Update project status command to use the new table.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • sites/trunk/wordpress.org/public_html/wp-content/plugins/wporg-gp-plugin-directory/inc/cli/class-update-plugin-project-status.php

    r4188 r6264  
    1616        global $wpdb; 
    1717 
    18         if ( ! defined( 'PLUGINS_TABLE_PREFIX' ) ) { 
    19             WP_CLI::error( 'PLUGINS_TABLE_PREFIX is not defined.' ); 
     18        if ( ! defined( 'WPORG_PLUGIN_DIRECTORY_BLOGID' ) ) { 
     19            WP_CLI::error( 'WPORG_PLUGIN_DIRECTORY_BLOGID is not defined.' ); 
    2020        } 
    2121 
     
    2727        $plugins = GP::$project->many( "SELECT * FROM {$wpdb->gp_projects} WHERE parent_project_id = %d", $parent_project->id ); 
    2828        if ( ! $plugins ) { 
    29             WP_CLI::error( 'No plugins founds.' ); 
     29            WP_CLI::error( 'No plugins found.' ); 
    3030        } 
    3131 
     
    3333            $plugin_status = $this->get_plugin_status( $plugin->slug ); 
    3434 
    35             if ( 'published' === $plugin_status && ! $plugin->active ) { 
    36                 $plugin->save( array( 
     35            if ( 'publish' === $plugin_status && ! $plugin->active ) { 
     36                $plugin->save( [ 
    3737                    'active' => 1, 
    38                 ) ); 
     38                ] ); 
    3939                WP_CLI::log( sprintf( 
    4040                    'Plugin `%s` has been activated.', 
    4141                    $plugin->slug 
    4242                ) ); 
    43             } elseif ( 'published' !== $plugin_status && $plugin->active ) { 
    44                 $plugin->save( array( 
     43            } elseif ( 'publish' !== $plugin_status && $plugin->active ) { 
     44                $plugin->save( [ 
    4545                    'active' => 0, 
    46                 ) ); 
     46                ] ); 
    4747                WP_CLI::log( sprintf( 
    4848                    'Plugin `%s` has been deactivated.', 
     
    5656     * Retrieves the current plugin status. 
    5757     * 
    58      * @param $plugin_slug The plugin slug. 
    59      * 
     58     * @param string $plugin_slug The plugin slug. 
    6059     * @return false|string Status on success, false on failure. 
    6160     */ 
    6261    protected function get_plugin_status( $plugin_slug ) { 
    63         global $wpdb; 
     62        switch_to_blog( WPORG_PLUGIN_DIRECTORY_BLOGID ); 
     63        $posts = get_posts( [ 
     64            'post_type'   => 'plugin', 
     65            'name'        => $plugin_slug, 
     66            'post_status' => [ 'publish', 'pending', 'disabled', 'closed', 'new', 'draft', 'approved' ], 
     67        ] ); 
     68        restore_current_blog(); 
    6469 
    65         $topic = $wpdb->get_row( $wpdb->prepare( 'SELECT * FROM ' . PLUGINS_TABLE_PREFIX . 'topics WHERE topic_slug = %s', $plugin_slug ) ); 
    66         if ( ! $topic ) { 
     70        if ( ! $posts ) { 
    6771            return false; 
    6872        } 
    6973 
    70         $status = 'published'; 
    71         if ( 2 == $topic->topic_open ) { 
    72             $status = 'approved'; 
    73         } elseif ( 2 == $topic->forum_id ) { 
    74             $status = 'pending'; 
    75         } elseif ( 4 == $topic->forum_id || 'rejected-' == substr( $topic->topic_slug, 0, 9 ) ) { 
    76             $status = 'rejected'; 
    77         } elseif ( 1 == $topic->forum_id && 0 == $topic->topic_open ) { 
    78             $status = 'closed'; 
    79         } elseif ( 3 == $topic->topic_open ) { 
    80             $status = 'disabled'; 
    81         } 
     74        $plugin = array_shift( $posts ); 
    8275 
    83         return $status; 
     76        return $plugin->post_status; 
    8477    } 
    8578} 
Note: See TracChangeset for help on using the changeset viewer.