Edit File by line
/home/zeestwma/ajeebong.../wp-conte.../plugins/image-op.../modules/settings
File: module.php
<?php
[0] Fix | Delete
[1] Fix | Delete
namespace ImageOptimization\Modules\Settings;
[2] Fix | Delete
[3] Fix | Delete
use ImageOptimization\Classes\Image\Image_Conversion_Option;
[4] Fix | Delete
use ImageOptimization\Classes\Module_Base;
[5] Fix | Delete
use ImageOptimization\Modules\Settings\{
[6] Fix | Delete
Banners\One_Million_Installs_Banner,
[7] Fix | Delete
Banners\Sale_Banner,
[8] Fix | Delete
Banners\Birthday_Banner,
[9] Fix | Delete
Classes\Settings,
[10] Fix | Delete
};
[11] Fix | Delete
[12] Fix | Delete
if ( ! defined( 'ABSPATH' ) ) {
[13] Fix | Delete
exit; // Exit if accessed directly
[14] Fix | Delete
}
[15] Fix | Delete
[16] Fix | Delete
class Module extends Module_Base {
[17] Fix | Delete
const SETTING_PREFIX = 'image_optimizer_';
[18] Fix | Delete
const SETTING_GROUP = 'image_optimizer_settings';
[19] Fix | Delete
const SETTING_BASE_SLUG = 'image-optimization-settings';
[20] Fix | Delete
const SETTING_CAPABILITY = 'manage_options';
[21] Fix | Delete
[22] Fix | Delete
public function get_name(): string {
[23] Fix | Delete
return 'settings';
[24] Fix | Delete
}
[25] Fix | Delete
[26] Fix | Delete
public static function component_list() : array {
[27] Fix | Delete
return [
[28] Fix | Delete
'Settings_Pointer',
[29] Fix | Delete
];
[30] Fix | Delete
}
[31] Fix | Delete
[32] Fix | Delete
public static function get_options() : array {
[33] Fix | Delete
return [
[34] Fix | Delete
'compression_level' => [ 'default' => 'lossy' ],
[35] Fix | Delete
'optimize_on_upload' => [
[36] Fix | Delete
'type' => 'boolean',
[37] Fix | Delete
'default' => true,
[38] Fix | Delete
],
[39] Fix | Delete
'resize_larger_images' => [
[40] Fix | Delete
'type' => 'boolean',
[41] Fix | Delete
'default' => true,
[42] Fix | Delete
],
[43] Fix | Delete
'resize_larger_images_size' => [
[44] Fix | Delete
'type' => 'integer',
[45] Fix | Delete
'default' => 1920,
[46] Fix | Delete
],
[47] Fix | Delete
'exif_metadata' => [
[48] Fix | Delete
'type' => 'boolean',
[49] Fix | Delete
'default' => true,
[50] Fix | Delete
],
[51] Fix | Delete
'original_images' => [
[52] Fix | Delete
'type' => 'boolean',
[53] Fix | Delete
'default' => true,
[54] Fix | Delete
],
[55] Fix | Delete
'convert_to_format' => [
[56] Fix | Delete
'type' => 'string',
[57] Fix | Delete
'default' => Image_Conversion_Option::WEBP,
[58] Fix | Delete
],
[59] Fix | Delete
'custom_sizes' => [
[60] Fix | Delete
'type' => 'string',
[61] Fix | Delete
'default' => 'all',
[62] Fix | Delete
],
[63] Fix | Delete
'help_videos' => [
[64] Fix | Delete
'type' => 'object',
[65] Fix | Delete
'show_in_rest' => [
[66] Fix | Delete
'schema' => [
[67] Fix | Delete
'type' => 'object',
[68] Fix | Delete
'additionalProperties' => true,
[69] Fix | Delete
],
[70] Fix | Delete
],
[71] Fix | Delete
]
[72] Fix | Delete
];
[73] Fix | Delete
}
[74] Fix | Delete
[75] Fix | Delete
public function register_options() {
[76] Fix | Delete
$options = $this->get_options();
[77] Fix | Delete
[78] Fix | Delete
foreach ( $options as $key => &$args ) {
[79] Fix | Delete
$args['type'] = $args['type'] ?? 'string';
[80] Fix | Delete
$args['show_in_rest'] = $args['show_in_rest'] ?? true;
[81] Fix | Delete
$args['default'] = $args['default'] ?? '';
[82] Fix | Delete
[83] Fix | Delete
register_setting(
[84] Fix | Delete
self::SETTING_GROUP,
[85] Fix | Delete
self::SETTING_PREFIX . $key,
[86] Fix | Delete
$args
[87] Fix | Delete
);
[88] Fix | Delete
[89] Fix | Delete
// Set defaults
[90] Fix | Delete
add_option( self::SETTING_PREFIX . $key, $args['default'] );
[91] Fix | Delete
}
[92] Fix | Delete
}
[93] Fix | Delete
[94] Fix | Delete
public function render_app() {
[95] Fix | Delete
?>
[96] Fix | Delete
<?php Sale_Banner::get_banner( 'https://go.elementor.com/IO-BF-sale' ); ?>
[97] Fix | Delete
<?php One_Million_Installs_Banner::get_banner( 'https://go.elementor.com/io-1m-banner-upgrade/' ); ?>
[98] Fix | Delete
<?php Birthday_Banner::get_banner( 'https://go.elementor.com/io-b-day-banner' ); ?>
[99] Fix | Delete
[100] Fix | Delete
<!-- The hack required to wrap WP notifications -->
[101] Fix | Delete
<div class="wrap">
[102] Fix | Delete
<h1 style="display: none;" role="presentation"></h1>
[103] Fix | Delete
</div>
[104] Fix | Delete
[105] Fix | Delete
<div id="image-optimization-app"></div>
[106] Fix | Delete
<?php
[107] Fix | Delete
}
[108] Fix | Delete
[109] Fix | Delete
public function register_page() {
[110] Fix | Delete
add_media_page(
[111] Fix | Delete
__( 'Image Optimizer', 'image-optimization' ),
[112] Fix | Delete
__( 'Image Optimizer', 'image-optimization' ),
[113] Fix | Delete
self::SETTING_CAPABILITY,
[114] Fix | Delete
self::SETTING_BASE_SLUG,
[115] Fix | Delete
[ $this, 'render_app' ],
[116] Fix | Delete
6
[117] Fix | Delete
);
[118] Fix | Delete
}
[119] Fix | Delete
[120] Fix | Delete
/**
[121] Fix | Delete
* The handler converts an old CONVERT_TO_WEBP option to the new CONVERT_TO_FORMAT option.
[122] Fix | Delete
* TODO: [Stability] Remove this fallback after all users updated
[123] Fix | Delete
*
[124] Fix | Delete
* @return void
[125] Fix | Delete
*/
[126] Fix | Delete
public function maybe_migrate_legacy_conversion_option() {
[127] Fix | Delete
$legacy_convert_to_webp = get_option( Settings::CONVERT_TO_WEBP_OPTION_NAME, null );
[128] Fix | Delete
[129] Fix | Delete
if ( is_null( $legacy_convert_to_webp ) ) {
[130] Fix | Delete
return;
[131] Fix | Delete
}
[132] Fix | Delete
[133] Fix | Delete
if ( '1' === $legacy_convert_to_webp ) {
[134] Fix | Delete
update_option( Settings::CONVERT_TO_FORMAT_OPTION_NAME, Image_Conversion_Option::WEBP, false );
[135] Fix | Delete
}
[136] Fix | Delete
[137] Fix | Delete
if ( '0' === $legacy_convert_to_webp ) {
[138] Fix | Delete
update_option( Settings::CONVERT_TO_FORMAT_OPTION_NAME, Image_Conversion_Option::ORIGINAL, false );
[139] Fix | Delete
}
[140] Fix | Delete
[141] Fix | Delete
delete_option( Settings::CONVERT_TO_WEBP_OPTION_NAME );
[142] Fix | Delete
}
[143] Fix | Delete
[144] Fix | Delete
public function __construct() {
[145] Fix | Delete
$this->register_components();
[146] Fix | Delete
[147] Fix | Delete
add_action( 'admin_init', [ $this, 'register_options' ] );
[148] Fix | Delete
add_action( 'rest_api_init', [ $this, 'register_options' ] );
[149] Fix | Delete
add_action( 'admin_init', [ $this, 'maybe_migrate_legacy_conversion_option' ] );
[150] Fix | Delete
add_action( 'admin_menu', [ $this, 'register_page' ] );
[151] Fix | Delete
}
[152] Fix | Delete
}
[153] Fix | Delete
[154] Fix | Delete
It is recommended that you Edit text format, this type of Fix handles quite a lot in one request
Function