HEX
Server: Apache/2.4.6 (CentOS) OpenSSL/1.0.2k-fips PHP/7.2.34
System: Linux atalantini.com 3.10.0-1127.13.1.el7.x86_64 #1 SMP Tue Jun 23 15:46:38 UTC 2020 x86_64
User: root (0)
PHP: 7.2.34
Disabled: NONE
Upload Files
File: //opt/sg-cachepress/core/Cli/Cli_Webp.php
<?php
namespace SiteGround_Optimizer\Cli;
/**
 * WP-CLI: wp sg webp {setting} value.
 *
 * Run the `wp sg webp {setting} value` command to change the settgins of specific plugin functionality.
 *
 * @since 5.0.0
 * @package Cli
 * @subpackage Cli/Cli_Optimizer
 */

/**
 * Define the {@link Cli_Optimizer} class.
 *
 * @since 5.0.0
 */
class Cli_Webp {
	/**
	 * Enable specific settging for SG Optimizer plugin.
	 *
	 * ## OPTIONS
	 *
	 * <settging>
	 * : Settging name.
	 * ---
	 * options:
	 *  - type
	 *  - quality
	 * ---
	 * <value>
	 * : The new value of the setting.
	 */
	public function __invoke( $args ) {
		switch ( $args[0] ) {
			case 'type':
				return $this->change_type( $args[1] );
			case 'quality':
				return $this->change_quality( $args[1] );
		}
	}

	public function change_type( $type ) {
		$types = array(
			'lossy',
			'lossless',
		);

		if ( ! in_array( $type, $types ) ) {
			\WP_CLI::error( 'The ' . $type . 'is not supported. Please choose between lossy and lossless' );
		}

		$status = update_option( 'siteground_optimizer_quality_type', $type );

		if ( false === $status ) {
			\WP_CLI::error( 'Error updating WebP optimization type' );
		}

		\WP_CLI::success( 'WebP Optimization Type Updated!' );
	}

	public function change_quality( $quality ) {

		$quality = intval( $quality );

		if ( ! is_int( $quality ) ) {
			\WP_CLI::error( 'The ' . $quality . 'is not supported. Please choose between a number between 1 and 100' );
		}

		if (
			$quality < 1 ||
			$quality > 101
		) {
			\WP_CLI::error( 'The ' . $quality . 'is not supported. Please choose between a number between 1 and 100' );
		}

		$status = update_option( 'siteground_optimizer_quality_webp', $quality );

		if ( false === $status ) {
			\WP_CLI::error( 'Error Updating WebP Optimization Quality' );
		}

		\WP_CLI::success( 'WebP Optimization Quality Changed!' );
	}
}