WordPress.org

Making WordPress.org

Changeset 6264


Ignore:
Timestamp:
12/13/2017 07:45:26 PM (7 months 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.