if ( !isset($args->per_page) )
$args->per_page = 24;
- // Allows a plugin to override the WordPress.org API entirely.
- // Use the filter 'plugins_api_result' to merely add results.
- // Please ensure that a object is returned from the following filters.
- $args = apply_filters('plugins_api_args', $args, $action);
- $res = apply_filters('plugins_api', false, $action, $args);
+ /**
+ * Override the Plugin Install API arguments.
+ *
+ * Please ensure that an object is returned.
+ *
+ * @since 2.7.0
+ *
+ * @param object $args Plugin API arguments.
+ * @param string $action The type of information being requested from the Plugin Install API.
+ */
+ $args = apply_filters( 'plugins_api_args', $args, $action );
+
+ /**
+ * Allows a plugin to override the WordPress.org Plugin Install API entirely.
+ *
+ * Please ensure that an object is returned.
+ *
+ * @since 2.7.0
+ *
+ * @param bool|object The result object. Default is false.
+ * @param string $action The type of information being requested from the Plugin Install API.
+ * @param object $args Plugin API arguments.
+ */
+ $res = apply_filters( 'plugins_api', false, $action, $args );
if ( false === $res ) {
- $request = wp_remote_post('http://api.wordpress.org/plugins/info/1.0/', array( 'timeout' => 15, 'body' => array('action' => $action, 'request' => serialize($args))) );
+ $url = 'http://api.wordpress.org/plugins/info/1.0/';
+ if ( wp_http_supports( array( 'ssl' ) ) )
+ $url = set_url_scheme( $url, 'https' );
+
+ $request = wp_remote_post( $url, array(
+ 'timeout' => 15,
+ 'body' => array(
+ 'action' => $action,
+ 'request' => serialize( $args )
+ )
+ ) );
+
if ( is_wp_error($request) ) {
$res = new WP_Error('plugins_api_failed', __( 'An unexpected error occurred. Something may be wrong with WordPress.org or this server’s configuration. If you continue to have problems, please try the <a href="http://wordpress.org/support/">support forums</a>.' ), $request->get_error_message() );
} else {
$res->external = true;
}
- return apply_filters('plugins_api_result', $res, $action, $args);
+ /**
+ * Filter the Plugin Install API response results.
+ *
+ * @since 2.7.0
+ *
+ * @param object|WP_Error $res Response object or WP_Error.
+ * @param string $action The type of information being requested from the Plugin Install API.
+ * @param object $args Plugin API arguments.
+ */
+ return apply_filters( 'plugins_api_result', $res, $action, $args );
}
/**
function install_plugin_information() {
global $tab;
- $api = plugins_api('plugin_information', array('slug' => wp_unslash( $_REQUEST['plugin'] ) ));
+ $api = plugins_api( 'plugin_information', array( 'slug' => wp_unslash( $_REQUEST['plugin'] ), 'is_ssl' => is_ssl() ) );
if ( is_wp_error($api) )
wp_die($api);
$api->$key = wp_kses( $api->$key, $plugins_allowedtags );
}
- $section = isset($_REQUEST['section']) ? wp_unslash( $_REQUEST['section'] ) : 'description'; //Default to the Description tab, Do not translate, API returns English.
- if ( empty($section) || ! isset($api->sections[ $section ]) )
- $section = array_shift( $section_titles = array_keys((array)$api->sections) );
+ $section = isset( $_REQUEST['section'] ) ? wp_unslash( $_REQUEST['section'] ) : 'description'; //Default to the Description tab, Do not translate, API returns English.
+ if ( empty( $section ) || ! isset( $api->sections[ $section ] ) ) {
+ $section_titles = array_keys( (array) $api->sections );
+ $section = array_shift( $section_titles );
+ }
iframe_header( __('Plugin Install') );
echo "<div id='$tab-header'>\n";