File: /var/www/html/shootinschool/wp-content/plugins/sg-cachepress/core/Cli/Cli_Settings.php
<?php
namespace SiteGround_Optimizer\Cli;
use SiteGround_Optimizer\Settings\Settings;
use SiteGround_Optimizer\Options\Options;
/**
* WP-CLI: wp sg settings {setting} value.
*
* Run the `wp sg settings {type}` command to change the settgins of specific plugin functionality.
*
* @since 5.7.13
* @package Cli
* @subpackage Cli/Settings
*/
/**
* Define the {@link Cli_Settings} class.
*
* @since 5.7.13
*/
class Cli_Settings {
/**
* Settings service class.
*
* @var Object.
*/
public $settings_service;
/**
* Options Service class.
*
* @var Object.
*/
public $options_service;
/**
* Enable specific setting for Speed Optimizer by SiteGround plugin.
*
* ## OPTIONS
*
* options:
* - import
* - export
* ---
* <action>
* : Setting name.
* [--hash=<string>]
* : Settings hash.
*/
public function __invoke( $args, $assoc_args ) {
// Call the Settings class.
$this->settings_service = new Settings();
$this->options_service = new Options();
// Check the type of operation.
if ( 'export' === $args[0] ) {
// Start the export.
return $this->export();
}
// Check if we have the import string.
if ( empty( $assoc_args['hash'] ) ) {
\WP_CLI::error( 'Please, use the import command with a `hash` parameter - wp sg settings ' . $args[0] . ' --hash=<The hash string.>' );
}
// Start the import.
return $this->import( $assoc_args['hash'] );
}
/**
* Call the Import Settings method
*
* @since 5.7.13
*
* @param string $hash_import The hash string.
*
* @return array Options that were updated.
*/
public function import( $hash_import ) {
// Start the import.
$result = $this->settings_service->import( $hash_import );
// Check if we have a valid response from the import.
if ( false === $result ) {
return \WP_CLI::error( 'The import was unsuccessful, please make sure your hash is correct.' );
}
if ( ! empty( $result ) ) {
\WP_CLI::error( 'We\'ve imported everything except the following settings: ' . implode( $result, ', ' ) );
}
return \WP_CLI::success( 'Import Completed.' );
}
/**
* Call the Export Settings method.
*
* @since 5.7.13
*
* @return string The filepath or the export string.
*/
public function export() {
// Start the export.
$result = $this->settings_service->export();
// Check if we have a valid response from the export.
if ( ! $result ) {
return \WP_CLI::error( 'The export was unsuccessful, please try again.' );
}
// Return the export string.
return \WP_CLI::success( "The export is completed, please use the following string:\n" . $result );
}
}