PluginProbe
Optimole – Optimize Images | Convert WebP & AVIF | CDN & Lazy Load | Image Optimization / 3.1.3
Optimole – Optimize Images | Convert WebP & AVIF | CDN & Lazy Load | Image Optimization v3.1.3
4.2.13 4.2.12 4.2.11 4.2.10 4.2.9 4.2.8 4.2.7 4.2.6 4.2.5 2.5.5 2.5.6 2.5.7 3.0.0 3.0.1 3.1.0 3.1.1 3.1.2 3.1.3 3.10.0 3.11.0 3.11.1 3.11.2 3.11.3 3.12.0 3.12.1 All 134 releases
optimole-wp / inc / cli / cli_setting.php

cli_setting.php in Optimole – Optimize Images | Convert WebP & AVIF | CDN & Lazy Load | Image Optimization 3.1.3, at inc/cli/cli_setting.php

134 lines 3.5 KB
No matching file
Up and down to move Enter to open Esc to close
Raw Download Zip
1 <?php
2 /**
3 * CLI commands responsible for the Optimole settings.
4 */
5
6 if ( ! class_exists( 'WP_CLI' ) ) {
7 return;
8 }
9
10 /**
11 * Class Optml_Cli_Setting
12 */
13 class Optml_Cli_Setting extends WP_CLI_Command {
14 /**
15 * Connect to service
16 * <apikey>
17 * : The api key to use.
18 */
19 public function connect( $args ) {
20 if ( empty( $args ) || ! isset( $args[0] ) || $args[0] === '' ) {
21 return \WP_CLI::error( 'No argument passed. Required one argument ( api key )' );
22 }
23
24 if ( sizeof( $args ) > 1 ) {
25 return \WP_CLI::error( 'To many arguments passed' );
26 }
27
28 $api_key = $args[0];
29
30 $request = new Optml_Api();
31 $data = $request->get_user_data( $api_key );
32 if ( $data === false || is_wp_error( $data ) ) {
33 $extra = '';
34 if ( is_wp_error( $data ) ) {
35 /**
36 * Error from api.
37 *
38 * @var WP_Error $data Error object.
39 */
40 $extra = sprintf( __( '. ERROR details: %s', 'optimole-wp' ), $data->get_error_message() );
41 }
42
43 return \WP_CLI::error( __( 'Can not connect to Optimole service', 'optimole-wp' ) . $extra );
44 }
45 $settings = new Optml_Settings();
46 $settings->update( 'service_data', $data );
47 $settings->update( 'api_key', $api_key );
48
49 \WP_CLI::success( sprintf( 'Connected API key %s to Optimole Service', $args[0] ) );
50 }
51
52 /**
53 * Disconnect from service.
54 */
55 public function disconnect() {
56 $settings = new Optml_Settings();
57 $settings->reset();
58 \WP_CLI::success( 'Disconnected from Optimole Service' );
59 }
60
61 /**
62 * Update settings.
63 *
64 * <setting_name>
65 * : The setting name to update.
66 *
67 * <setting_value>
68 * : The setting value to update.
69 */
70 public function update( $args ) {
71 if ( empty( $args ) || ! isset( Optml_Settings::$whitelisted_settings[ $args[0] ] ) ) {
72 \WP_CLI::error( sprintf( 'Setting must be one of: %s', implode( ',', array_keys( Optml_Settings::$whitelisted_settings ) ) ) );
73
74 return false;
75 }
76
77 if ( Optml_Settings::$whitelisted_settings[ $args[0] ] === 'bool' && ( empty( $args ) || ! isset( $args[1] ) || $args[1] === '' || ! in_array(
78 $args[1],
79 [
80 'on',
81 'off',
82 ],
83 true
84 ) ) ) {
85 return \WP_CLI::error( 'No argument passed. Required one argument ( on/off )' );
86 }
87
88 if ( Optml_Settings::$whitelisted_settings[ $args[0] ] === 'int' && ( empty( $args ) || ! isset( $args[1] ) || $args[1] === '' || (int) $args[1] > 100 || (int) $args[1] < 0 ) ) {
89 return \WP_CLI::error( 'Invalid argument, must be between 0 and 100.' );
90 }
91
92 $value = ( Optml_Settings::$whitelisted_settings[ $args[0] ] === 'bool' ) ? ( $args[1] === 'on' ? 'enabled' : 'disabled' ) : (int) $args[1];
93
94 $new_value = $this->update_setting( [ $args[0] => $value ] );
95 \WP_CLI::success( sprintf( 'Setting %s updated to: %s', $args[0], $new_value[ $args[0] ] ) );
96 }
97
98 /**
99 * Check settings.
100 *
101 * <setting_name>
102 * : The setting name to check.
103 */
104 public function get( $args ) {
105 if ( empty( $args ) || ! isset( Optml_Settings::$whitelisted_settings[ $args[0] ] ) ) {
106 \WP_CLI::error( sprintf( 'Setting must be one of: %s', implode( ',', array_keys( Optml_Settings::$whitelisted_settings ) ) ) );
107
108 return false;
109 }
110
111 $value = ( new Optml_Settings() )->get( $args[0] );
112
113 \WP_CLI::success( sprintf( 'Setting %s is set to: %s', $args[0], $value ) );
114 }
115
116
117 /**
118 * Utility method to update setting
119 *
120 * @param mixed $new_setting The setting to parse.
121 *
122 * @return array
123 */
124 private function update_setting( $new_setting ) {
125 if ( empty( $new_setting ) ) {
126 \WP_CLI::error( __( 'No setting to update', 'optimole-wp' ) );
127 }
128 $settings = new Optml_Settings();
129
130 return $settings->parse_settings( $new_setting );
131 }
132
133 }
134