jetpack_boost = $jetpack_boost; } /** * Manage Jetpack Boost Modules * * ## OPTIONS * * * : The action to take. * --- * options: * - activate * - deactivate * --- * * [] * : The slug of the module to perform an action on. * * ## EXAMPLES * * wp jetpack-boost module activate critical_css * wp jetpack-boost module deactivate critical_css * * @param array $args Command arguments. */ public function module( $args ) { $action = isset( $args[0] ) ? $args[0] : null; $module_slug = isset( $args[1] ) ? $args[1] : null; if ( $module_slug === null ) { /* translators: Placeholder is list of available modules. */ \WP_CLI::error( sprintf( __( 'Please specify a valid module. It should be one of %s', 'jetpack-boost' ), wp_json_encode( self::MAKE_E2E_TESTS_WORK_MODULES ) ) ); } if ( ! in_array( $module_slug, self::MAKE_E2E_TESTS_WORK_MODULES, true ) ) { \WP_CLI::error( /* translators: %1$s refers to the module slug like 'critical-css', %2$s is the list of available modules. */ sprintf( __( "The '%1\$s' module slug is invalid. It should be one of %2\$s", 'jetpack-boost' ), $module_slug, wp_json_encode( self::MAKE_E2E_TESTS_WORK_MODULES ) ) ); } switch ( $action ) { case 'activate': $this->set_module_status( $module_slug, true ); break; case 'deactivate': $this->set_module_status( $module_slug, false ); break; } } public function getting_started( $args ) { $status = isset( $args[0] ) ? $args[0] : null; if ( ! in_array( $status, array( 'true', 'false' ), true ) ) { \WP_CLI::error( /* translators: %s refers to the module slug like 'critical-css' */ sprintf( __( "The '%s' status is invalid", 'jetpack-boost' ), $status ) ); } ( new Getting_Started_Entry() )->set( 'true' === $status ); \WP_CLI::success( /* translators: %s refers to 'true' or 'false' */ sprintf( __( 'Getting started is set to %s', 'jetpack-boost' ), $status ) ); } /** * Set a module status. * * @param string $module_slug Module slug. * @param string $status Module status. */ private function set_module_status( $module_slug, $status ) { $modules_index = new Modules_Index(); $module = $modules_index->get_module_instance_by_slug( $module_slug ); if ( $module === false ) { \WP_CLI::error( /* translators: %s refers to the module slug like 'critical-css' */ sprintf( __( "The '%s' module slug is invalid", 'jetpack-boost' ), $module_slug ) ); } $module->update( $status ); if ( $module_slug === 'page_cache' && $status ) { $setup_result = Page_Cache_Setup::run_setup(); if ( is_wp_error( $setup_result ) ) { \WP_CLI::error( sprintf( /* translators: %s refers to the error code */ __( 'Setup: %s', 'jetpack-boost' ), $setup_result->get_error_code() ) ); } Garbage_Collection::activate(); Boost_Cache_Settings::get_instance()->set( array( 'enabled' => true ) ); } $status_label = $status ? __( 'activated', 'jetpack-boost' ) : __( 'deactivated', 'jetpack-boost' ); /* translators: The %1$s refers to the module slug, %2$s refers to the module state (either activated or deactivated)*/ \WP_CLI::success( sprintf( __( "'%1\$s' has been %2\$s.", 'jetpack-boost' ), $module_slug, $status_label ) ); } /** * Manage Jetpack Boost connection * * ## OPTIONS * * * : The action to take. * --- * options: * - activate * - deactivate * - status * --- * * ## EXAMPLES * * wp jetpack-boost connection activate * wp jetpack-boost connection deactivate * wp jetpack-boost connection status * * @param array $args Command arguments. */ public function connection( $args ) { $action = isset( $args[0] ) ? $args[0] : null; switch ( $action ) { case 'activate': $result = $this->jetpack_boost->connection->register(); if ( true === $result ) { \WP_CLI::success( __( 'Boost is connected to WP.com', 'jetpack-boost' ) ); } else { \WP_CLI::error( __( 'Boost could not be connected to WP.com', 'jetpack-boost' ) ); } break; case 'deactivate': require_once ABSPATH . '/wp-admin/includes/plugin.php'; if ( is_plugin_active_for_network( JETPACK_BOOST_PATH ) ) { $this->jetpack_boost->connection->deactivate_disconnect_network(); } else { $this->jetpack_boost->connection->disconnect(); } \WP_CLI::success( __( 'Boost is disconnected from WP.com', 'jetpack-boost' ) ); break; case 'status': $is_connected = $this->jetpack_boost->connection->is_connected(); if ( $is_connected ) { \WP_CLI::line( 'connected' ); } else { \WP_CLI::line( 'disconnected' ); } break; } } /** * Reset Jetpack Boost * * ## EXAMPLE * * wp jetpack-boost reset */ public function reset() { $this->jetpack_boost->deactivate(); $this->jetpack_boost->uninstall(); \WP_CLI::success( 'Reset successfully' ); } }