| @@ -1,8 +1,10 @@ | ||
| 1 | 1 | <?php |
| 2 | 2 | |
| 3 | 3 | namespace ImageOptimization\Modules\Settings\Classes; |
| 4 | 4 | |
| 5 | +use ImageOptimization\Classes\Image\Image_Conversion_Option; | |
| 6 | + | |
| 5 | 7 | if ( ! defined( 'ABSPATH' ) ) { |
| 6 | 8 | exit; // Exit if accessed directly. |
| 7 | 9 | } |
| 8 | 10 | |
| @@ -8,14 +10,19 @@ | ||
| 8 | 10 | |
| 9 | 11 | class Settings { |
| 10 | 12 | public const COMPRESSION_LEVEL_OPTION_NAME = 'image_optimizer_compression_level'; |
| 11 | 13 | public const OPTIMIZE_ON_UPLOAD_OPTION_NAME = 'image_optimizer_optimize_on_upload'; |
| 14 | + /** @deprecated Use self::CONVERT_TO_FORMAT_OPTION_NAME instead */ | |
| 12 | 15 | public const CONVERT_TO_WEBP_OPTION_NAME = 'image_optimizer_convert_to_webp'; |
| 16 | + public const CONVERT_TO_FORMAT_OPTION_NAME = 'image_optimizer_convert_to_format'; | |
| 13 | 17 | public const RESIZE_LARGER_IMAGES_OPTION_NAME = 'image_optimizer_resize_larger_images'; |
| 14 | 18 | public const RESIZE_LARGER_IMAGES_SIZE_OPTION_NAME = 'image_optimizer_resize_larger_images_size'; |
| 15 | 19 | public const STRIP_EXIF_METADATA_OPTION_NAME = 'image_optimizer_exif_metadata'; |
| 16 | 20 | public const BACKUP_ORIGINAL_IMAGES_OPTION_NAME = 'image_optimizer_original_images'; |
| 17 | 21 | public const CUSTOM_SIZES_OPTION_NAME = 'image_optimizer_custom_sizes'; |
| 22 | + public const HELP_VIDEOS = 'image_optimizer_help_videos'; | |
| 23 | + public const MIGRATION_POPUP_DISMISSED = 'image_optimizer_migration_popup_dismissed'; | |
| 24 | + public const SUBSCRIPTION_ID = 'image_optimizer_subscription_id'; | |
| 18 | 25 | |
| 19 | 26 | /** |
| 20 | 27 | * Returns plugin settings data by option name typecasted to an appropriate data type. |
| 21 | 28 | * |
| @@ -28,14 +35,23 @@ | ||
| 28 | 35 | switch ( $option_name ) { |
| 29 | 36 | case self::RESIZE_LARGER_IMAGES_SIZE_OPTION_NAME: |
| 30 | 37 | return (int) $data; |
| 31 | 38 | |
| 32 | - case self::CONVERT_TO_WEBP_OPTION_NAME: | |
| 33 | 39 | case self::RESIZE_LARGER_IMAGES_OPTION_NAME: |
| 34 | 40 | case self::STRIP_EXIF_METADATA_OPTION_NAME: |
| 35 | 41 | case self::BACKUP_ORIGINAL_IMAGES_OPTION_NAME: |
| 36 | 42 | return (bool) $data; |
| 37 | 43 | |
| 44 | + // TODO: [Stability] Remove this fallback after a few versions | |
| 45 | + case self::CONVERT_TO_WEBP_OPTION_NAME: | |
| 46 | + $new_option = get_option( self::CONVERT_TO_FORMAT_OPTION_NAME ); | |
| 47 | + | |
| 48 | + if ( Image_Conversion_Option::WEBP === $new_option ) { | |
| 49 | + return true; | |
| 50 | + } | |
| 51 | + | |
| 52 | + return false; | |
| 53 | + | |
| 38 | 54 | case self::CUSTOM_SIZES_OPTION_NAME: |
| 39 | 55 | if ( 'all' === $data ) { |
| 40 | 56 | return $data; |
| 41 | 57 | } |
| @@ -48,6 +64,10 @@ | ||
| 48 | 64 | |
| 49 | 65 | default: |
| 50 | 66 | return $data; |
| 51 | 67 | } |
| 68 | + } | |
| 69 | + | |
| 70 | + public static function set( string $option_name, $value ): bool { | |
| 71 | + return update_option( $option_name, $value, false ); | |
| 52 | 72 | } |
| 53 | 73 | } |