update plugins
This commit is contained in:
@@ -0,0 +1,103 @@
|
||||
<?php
|
||||
/**
|
||||
* WC_CLI_COM_Command class file.
|
||||
*
|
||||
* @package WooCommerce\CLI
|
||||
*/
|
||||
|
||||
if ( ! defined( 'ABSPATH' ) ) {
|
||||
exit;
|
||||
}
|
||||
|
||||
if ( ! class_exists( 'Plugin_Command' ) ) {
|
||||
exit;
|
||||
}
|
||||
|
||||
/**
|
||||
* Allows to interact with extensions from WCCOM marketplace via CLI.
|
||||
*
|
||||
* @version 6.8
|
||||
* @package WooCommerce
|
||||
*/
|
||||
class WC_CLI_COM_Extension_Command extends Plugin_Command {
|
||||
/**
|
||||
* Registers a commands for managing WooCommerce.com extensions.
|
||||
*/
|
||||
public static function register_commands() {
|
||||
WP_CLI::add_command( 'wc com extension', 'WC_CLI_COM_Extension_Command' );
|
||||
}
|
||||
|
||||
/**
|
||||
* Installs one or more plugins from wccom marketplace.
|
||||
*
|
||||
* ## OPTIONS
|
||||
*
|
||||
* <extension>...
|
||||
* : One or more plugins to install. Accepts a plugin slug.
|
||||
*
|
||||
* [--force]
|
||||
* : If set, the command will overwrite any installed version of the plugin, without prompting
|
||||
* for confirmation.
|
||||
*
|
||||
* [--activate]
|
||||
* : If set, the plugin will be activated immediately after install.
|
||||
*
|
||||
* [--activate-network]
|
||||
* : If set, the plugin will be network activated immediately after install
|
||||
*
|
||||
* [--insecure]
|
||||
* : Retry downloads without certificate validation if TLS handshake fails. Note: This makes the request vulnerable to a MITM attack.
|
||||
*
|
||||
* ## EXAMPLES
|
||||
*
|
||||
* # Install the latest version from WooCommerce.com and activate
|
||||
* $ wp wc com extension install automatewoo --activate
|
||||
* Downloading install package from http://s3.amazonaws.com/bucketname/automatewoo.zip?AWSAccessKeyId=123&Expires=456&Signature=abcdef......
|
||||
* Using cached file '/home/vagrant/.wp-cli/cache/plugin/automatewoo.zip'...
|
||||
* Unpacking the package...
|
||||
* Installing the plugin...
|
||||
* Plugin installed successfully.
|
||||
* Activating 'automatewoo'...
|
||||
* Plugin 'automatewoo' activated.
|
||||
* Success: Installed 1 of 1 plugins.
|
||||
*
|
||||
* # Forcefully re-install an installed plugin
|
||||
* $ wp wc com extension install automatewoo --force
|
||||
* Downloading install package from http://s3.amazonaws.com/bucketname/automatewoo.zip?AWSAccessKeyId=123&Expires=456&Signature=abcdef...
|
||||
* Unpacking the package...
|
||||
* Installing the plugin...
|
||||
* Removing the old version of the plugin...
|
||||
* Plugin updated successfully
|
||||
* Success: Installed 1 of 1 plugins.
|
||||
*
|
||||
* @param array $args WP-CLI positional arguments.
|
||||
* @param array $assoc_args WP-CLI associative arguments.
|
||||
*/
|
||||
public function install( $args, $assoc_args ) {
|
||||
$subscriptions = WC_Helper_Updater::get_available_extensions_downloads_data();
|
||||
$extension = reset( $args );
|
||||
$extension_package_url = null;
|
||||
|
||||
// Remove `--version` as we don't support it.
|
||||
unset( $assoc_args['version'] );
|
||||
|
||||
// Filter by slug.
|
||||
foreach ( $subscriptions as $subscription ) {
|
||||
if ( $subscription['slug'] === $extension && ! is_null( $subscription['package'] ) ) {
|
||||
|
||||
$extension_package_url = $subscription['package'];
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
// No package found.
|
||||
if ( is_null( $extension_package_url ) ) {
|
||||
WP_CLI::warning( sprintf( 'We couldn\'t find a Subscription for \'%s\'', $extension ) );
|
||||
WP_CLI\Utils\report_batch_operation_results( $this->item_type, 'install', count( $args ), 0, 1 );
|
||||
|
||||
return;
|
||||
}
|
||||
|
||||
parent::install( array( $extension_package_url ), $assoc_args );
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user