Making WordPress.org


Ignore:
Timestamp:
04/29/2024 07:36:53 AM (21 months ago)
Author:
dd32
Message:

Plugin Directory: Add a 'pending plugin' API endpoint to fetch information about a plugin in review.

This is intended to be used by the Reviewer tools, such that the tools can use information known to the plugin directory about the ZIP being reviewed.

See #7385.

File:
1 edited

Legend:

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

    r13147 r13610  
    3939     */
    4040    function plugin_info( $request ) {
    41         $plugin_slug = $request['plugin_slug'];
    42 
    43         global $post;
    44         $post = Plugin_Directory::get_plugin_post( $plugin_slug );
    45 
    46         if ( 'publish' != $post->post_status ) {
     41        $post = Plugin_Directory::get_plugin_post( $request['plugin_slug'] );
     42
     43        if ( ! $post || 'publish' != $post->post_status ) {
    4744            // Copy what the REST API does if the param is incorrect
    4845            return new \WP_Error(
     
    5855        }
    5956
     57        return $this->plugin_info_data( $request, $post );
     58    }
     59
     60    /**
     61     * The underlying API for the plugin information.
     62     *
     63     * Expects that the input has been validated, and that the $post object is safe for display.
     64     * This is shared with/called from Pending_Plugin too.
     65     *
     66     * @param \WP_REST_Request $request The request object.
     67     * @param \WP_Post         $post    The post object for the plugin.
     68     * @return array The formatted array of all the data for the plugin.
     69     */
     70    public function plugin_info_data( $request, $post ) {
     71        $GLOBALS['post'] = $post;
     72        $plugin_slug     = $post->post_name;
     73        $post_id         = $post->ID;
     74
    6075        // Support returning API data in different locales, even on wordpress.org (for api.wordpress.org usage)
    6176        if ( ! empty( $request['locale'] ) && ! in_array( strtolower( $request['locale'] ), array( 'en_us', 'en' ) ) ) {
    6277            switch_to_locale( $request['locale'] );
    6378        }
    64 
    65         $post_id = $post->ID;
    6679
    6780        $result            = array();
Note: See TracChangeset for help on using the changeset viewer.