Automattic\WooCommerce\Admin\API
Plugins::install_plugins
Installs the requested plugins.
Method of the class: Plugins{}
No Hooks.
Returns
\WP_Error|Array. Plugin Status
Usage
$Plugins = new Plugins(); $Plugins->install_plugins( $request );
- $request(WP_REST_Request) (required)
- Full details about the request.
Plugins::install_plugins() Plugins::install plugins code WC 10.5.0
public function install_plugins( $request ) {
$plugins = explode( ',', $request['plugins'] );
$source = ! empty( $request['source'] ) ? $request['source'] : null;
if ( empty( $request['plugins'] ) || ! is_array( $plugins ) ) {
return new \WP_Error( 'woocommerce_rest_invalid_plugins', __( 'Plugins must be a non-empty array.', 'woocommerce' ), 404 );
}
if ( isset( $request['async'] ) && $request['async'] ) {
$job_id = PluginsHelper::schedule_install_plugins( $plugins );
return array(
'data' => array(
'job_id' => $job_id,
'plugins' => $plugins,
),
'message' => __( 'Plugin installation has been scheduled.', 'woocommerce' ),
);
}
$data = PluginsHelper::install_plugins( $plugins, null, $source );
// Gather some plugin details for each installed plugin.
$plugin_details = array();
if ( is_array( $data['installed'] ) ) {
foreach ( $data['installed'] as $plugin_slug ) {
$plugin_data = PluginsHelper::get_plugin_data( $plugin_slug );
if ( empty( $plugin_data ) ) {
continue;
}
$plugin_details[ $plugin_slug ] = array(
'name' => $plugin_data['Name'],
'description' => $plugin_data['Description'],
'uri' => $plugin_data['PluginURI'],
'version' => $plugin_data['Version'],
);
}
}
return array(
'data' => array(
'installed' => $data['installed'],
'results' => $data['results'],
'install_time' => $data['time'],
'plugin_details' => $plugin_details,
),
'errors' => $data['errors'],
'success' => count( $data['errors']->errors ) === 0,
'message' => count( $data['errors']->errors ) === 0
? __( 'Plugins were successfully installed.', 'woocommerce' )
: __( 'There was a problem installing some of the requested plugins.', 'woocommerce' ),
);
}