Automattic\WooCommerce\Admin\API

Plugins::install_plugins()publicWC 1.0

Installs the requested plugins.

Метод класса: Plugins{}

Хуков нет.

Возвращает

\WP_Error|Массив. Plugin Status

Использование

$Plugins = new Plugins();
$Plugins->install_plugins( $request );
$request(\WP_REST_Request) (обязательный)
Full details about the request.

Код Plugins::install_plugins() WC 9.7.1

public function install_plugins( $request ) {
	$plugins = explode( ',', $request['plugins'] );

	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 );

	// 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' ),
	);
}