├── inc ├── classes │ ├── Dependencies │ │ ├── .gitkeep │ │ └── wp-media │ │ │ └── event-manager │ │ │ ├── EventManagerAwareSubscriberInterface.php │ │ │ └── SubscriberInterface.php │ ├── class-imagify-cron-library-size.php │ └── class-imagify-data.php ├── 3rd-party │ ├── wp-rocket │ │ └── wp-rocket.php │ ├── formidable-pro │ │ ├── formidable-pro.php │ │ └── classes │ │ │ └── Main.php │ ├── regenerate-thumbnails │ │ └── regenerate-thumbnails.php │ ├── enable-media-replace │ │ └── enable-media-replace.php │ ├── nextgen-gallery │ │ ├── inc │ │ │ ├── functions │ │ │ │ ├── attachments.php │ │ │ │ └── common.php │ │ │ └── admin │ │ │ │ ├── menu.php │ │ │ │ ├── enqueue.php │ │ │ │ └── gallery.php │ │ └── nextgen-gallery.php │ ├── amp │ │ └── amp.php │ ├── wp-cloudflare-super-page-cache.php │ ├── yoast-seo.php │ ├── hosting │ │ ├── pressable.php │ │ ├── wpengine.php │ │ ├── wordpress-com.php │ │ ├── flywheel.php │ │ └── siteground.php │ ├── screets-lc.php │ ├── 3rd-party.php │ └── amazon-s3-and-cloudfront │ │ └── amazon-s3-and-cloudfront.php ├── Dependencies │ └── ActionScheduler │ │ ├── classes │ │ ├── ActionScheduler_Exception.php │ │ ├── actions │ │ │ ├── ActionScheduler_FinishedAction.php │ │ │ ├── ActionScheduler_NullAction.php │ │ │ └── ActionScheduler_CanceledAction.php │ │ ├── ActionScheduler_NullLogEntry.php │ │ ├── migration │ │ │ ├── DryRun_LogMigrator.php │ │ │ ├── DryRun_ActionMigrator.php │ │ │ ├── LogMigrator.php │ │ │ └── ActionScheduler_DBStoreMigrator.php │ │ ├── schedules │ │ │ ├── ActionScheduler_Schedule.php │ │ │ ├── ActionScheduler_NullSchedule.php │ │ │ └── ActionScheduler_CanceledSchedule.php │ │ ├── ActionScheduler_ActionClaim.php │ │ ├── data-stores │ │ │ └── ActionScheduler_wpPostStore_TaxonomyRegistrar.php │ │ └── ActionScheduler_InvalidActionException.php │ │ ├── lib │ │ └── cron-expression │ │ │ ├── CronExpression_MinutesField.php │ │ │ ├── CronExpression_YearField.php │ │ │ ├── LICENSE │ │ │ ├── CronExpression_FieldInterface.php │ │ │ ├── CronExpression_HoursField.php │ │ │ ├── CronExpression_MonthField.php │ │ │ └── CronExpression_FieldFactory.php │ │ └── deprecated │ │ ├── ActionScheduler_Schedule_Deprecated.php │ │ ├── ActionScheduler_Abstract_QueueRunner_Deprecated.php │ │ └── ActionScheduler_Store_Deprecated.php ├── functions │ ├── media.php │ ├── partners.php │ └── formatting.php ├── deprecated │ ├── Traits │ │ ├── Media │ │ │ ├── NoopDeprecatedTrait.php │ │ │ ├── NGGDeprecatedTrait.php │ │ │ ├── WPDeprecatedTrait.php │ │ │ └── CustomFoldersDeprecatedTrait.php │ │ └── Optimization │ │ │ └── Process │ │ │ └── AbstractProcessDeprecatedTrait.php │ └── classes │ │ ├── class-imagify-notices-deprecated.php │ │ └── class-imagify-abstract-db-deprecated.php ├── main.php └── common │ └── partners.php ├── assets ├── images │ ├── icon-lock.png │ ├── icon-pack.png │ ├── lazyload.png │ ├── spinner.gif │ ├── big-blue-check.png │ ├── imagify-logo.png │ ├── logo-wprocket.png │ ├── pic-ericwaltr.jpg │ ├── pic-srhdesign.jpg │ ├── upload-image.png │ ├── logo-wprocket@2x.png │ ├── mushrooms-normal.jpg │ ├── mushrooms-ultra.jpg │ ├── icon-arrow-choice.png │ ├── imagify-menu-bar-de.jpg │ ├── imagify-menu-bar-en.jpg │ ├── imagify-menu-bar-es.jpg │ ├── imagify-menu-bar-fr.jpg │ ├── imagify-menu-bar-it.jpg │ ├── mushrooms-original.jpg │ ├── mushrooms-aggressive.jpg │ ├── check-1.svg │ ├── icon-lock.svg │ ├── icon-external.svg │ ├── facebook_c.svg │ ├── icon-level.svg │ ├── check-mini-1.svg │ ├── icon-time.svg │ ├── key.svg │ ├── twitter_c.svg │ ├── bulk.svg │ ├── icon-alert.svg │ ├── stormy.svg │ ├── sun.svg │ ├── phone.svg │ ├── mail.svg │ ├── check.svg │ ├── icon-load.svg │ ├── check-mini.svg │ ├── cloudy-sun.svg │ ├── user.svg │ ├── icon-pack.svg │ ├── icon-arrow-choice.svg │ ├── logo-termly.svg │ └── logo-rank-math.svg ├── admin │ ├── manifest.json │ ├── entrypoints.json │ └── js │ │ └── runtime.js └── js │ ├── admin-bar.min.js │ ├── library.min.js │ ├── admin-bar.js │ ├── admin.min.js │ └── library.js ├── views ├── part-files-list-header.php ├── container │ └── data-actions.php ├── button │ ├── processing.php │ ├── compare-images.php │ ├── optimize.php │ ├── delete-webp.php │ ├── refresh-status.php │ ├── restore.php │ ├── generate-webp.php │ ├── retry-optimize.php │ ├── optimize-missing-sizes.php │ └── re-optimize.php ├── notice-footer.php ├── admin │ └── admin-bar-pricing.php ├── page-files-list.php ├── part-settings-webp-missing-message.php ├── notice-grid-view.php ├── part-settings-row-custom-folder.php ├── notice-temporary.php ├── notice-bulk-optimization-running.php ├── modal-settings-partners-infos.php ├── notice-header.php ├── part-settings-footer.php ├── part-discount-banner.php ├── part-bulk-optimization-newbie.php ├── notice-wrong-api-key.php ├── notice-backup-folder-not-writable.php ├── notice-http-block-external.php ├── notice-wp-rocket.php ├── notice-plugins-to-deactivate.php ├── notice-rating.php ├── part-bulk-optimization-overquota-alert.php ├── notice-bulk-optimization-complete.php ├── part-bulk-optimization-header.php ├── part-documentation-link.php └── input │ └── selector.php ├── classes ├── Dependencies │ ├── League │ │ └── Container │ │ │ ├── Argument │ │ │ ├── LiteralArgumentInterface.php │ │ │ ├── ArgumentInterface.php │ │ │ ├── ResolvableArgumentInterface.php │ │ │ ├── DefaultValueInterface.php │ │ │ ├── Literal │ │ │ │ ├── ArrayArgument.php │ │ │ │ ├── BooleanArgument.php │ │ │ │ ├── FloatArgument.php │ │ │ │ ├── IntegerArgument.php │ │ │ │ ├── ObjectArgument.php │ │ │ │ ├── StringArgument.php │ │ │ │ └── CallableArgument.php │ │ │ ├── ResolvableArgument.php │ │ │ ├── ArgumentResolverInterface.php │ │ │ ├── DefaultValueArgument.php │ │ │ └── LiteralArgument.php │ │ │ ├── ContainerAwareInterface.php │ │ │ ├── Exception │ │ │ ├── ContainerException.php │ │ │ └── NotFoundException.php │ │ │ ├── Inflector │ │ │ ├── InflectorAggregateInterface.php │ │ │ ├── InflectorInterface.php │ │ │ └── InflectorAggregate.php │ │ │ ├── ServiceProvider │ │ │ ├── BootableServiceProviderInterface.php │ │ │ ├── ServiceProviderInterface.php │ │ │ ├── ServiceProviderAggregateInterface.php │ │ │ └── AbstractServiceProvider.php │ │ │ ├── Definition │ │ │ ├── DefinitionAggregateInterface.php │ │ │ └── DefinitionInterface.php │ │ │ ├── DefinitionContainerInterface.php │ │ │ └── ContainerAwareTrait.php │ ├── Psr │ │ └── Container │ │ │ ├── NotFoundExceptionInterface.php │ │ │ ├── ContainerExceptionInterface.php │ │ │ └── ContainerInterface.php │ └── WPMedia │ │ └── PluginFamily │ │ └── Controller │ │ └── PluginFamilyInterface.php ├── CLI │ ├── AbstractCommand.php │ ├── CommandInterface.php │ ├── GenerateMissingNextgenCommand.php │ └── BulkOptimizeCommand.php ├── Avif │ ├── RewriteRules │ │ ├── Nginx.php │ │ ├── Apache.php │ │ └── IIS.php │ ├── Apache.php │ ├── IIS.php │ └── ServiceProvider.php ├── Webp │ ├── Apache.php │ ├── IIS.php │ ├── ServiceProvider.php │ └── RewriteRules │ │ ├── Nginx.php │ │ └── Apache.php ├── Stats │ ├── StatInterface.php │ └── ServiceProvider.php ├── Traits │ └── InstanceGetterTrait.php ├── User │ └── ServiceProvider.php ├── Media │ ├── Subscriber.php │ ├── ServiceProvider.php │ └── Upload │ │ └── Upload.php ├── CDN │ └── ServiceProvider.php ├── Picture │ └── ServiceProvider.php ├── ThirdParty │ └── ServiceProvider.php ├── Admin │ ├── PluginFamilySubscriber.php │ └── ServiceProvider.php ├── WriteFile │ └── WriteFileInterface.php ├── DB │ └── DBInterface.php └── Bulk │ └── BulkInterface.php ├── config └── providers.php ├── package.json └── contributors.txt /inc/classes/Dependencies/.gitkeep: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /assets/images/icon-lock.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wp-media/imagify-plugin/HEAD/assets/images/icon-lock.png -------------------------------------------------------------------------------- /assets/images/icon-pack.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wp-media/imagify-plugin/HEAD/assets/images/icon-pack.png -------------------------------------------------------------------------------- /assets/images/lazyload.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wp-media/imagify-plugin/HEAD/assets/images/lazyload.png -------------------------------------------------------------------------------- /assets/images/spinner.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wp-media/imagify-plugin/HEAD/assets/images/spinner.gif -------------------------------------------------------------------------------- /assets/images/big-blue-check.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wp-media/imagify-plugin/HEAD/assets/images/big-blue-check.png -------------------------------------------------------------------------------- /assets/images/imagify-logo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wp-media/imagify-plugin/HEAD/assets/images/imagify-logo.png -------------------------------------------------------------------------------- /assets/images/logo-wprocket.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wp-media/imagify-plugin/HEAD/assets/images/logo-wprocket.png -------------------------------------------------------------------------------- /assets/images/pic-ericwaltr.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wp-media/imagify-plugin/HEAD/assets/images/pic-ericwaltr.jpg -------------------------------------------------------------------------------- /assets/images/pic-srhdesign.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wp-media/imagify-plugin/HEAD/assets/images/pic-srhdesign.jpg -------------------------------------------------------------------------------- /assets/images/upload-image.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wp-media/imagify-plugin/HEAD/assets/images/upload-image.png -------------------------------------------------------------------------------- /assets/images/logo-wprocket@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wp-media/imagify-plugin/HEAD/assets/images/logo-wprocket@2x.png -------------------------------------------------------------------------------- /assets/images/mushrooms-normal.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wp-media/imagify-plugin/HEAD/assets/images/mushrooms-normal.jpg -------------------------------------------------------------------------------- /assets/images/mushrooms-ultra.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wp-media/imagify-plugin/HEAD/assets/images/mushrooms-ultra.jpg -------------------------------------------------------------------------------- /assets/images/icon-arrow-choice.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wp-media/imagify-plugin/HEAD/assets/images/icon-arrow-choice.png -------------------------------------------------------------------------------- /assets/images/imagify-menu-bar-de.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wp-media/imagify-plugin/HEAD/assets/images/imagify-menu-bar-de.jpg -------------------------------------------------------------------------------- /assets/images/imagify-menu-bar-en.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wp-media/imagify-plugin/HEAD/assets/images/imagify-menu-bar-en.jpg -------------------------------------------------------------------------------- /assets/images/imagify-menu-bar-es.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wp-media/imagify-plugin/HEAD/assets/images/imagify-menu-bar-es.jpg -------------------------------------------------------------------------------- /assets/images/imagify-menu-bar-fr.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wp-media/imagify-plugin/HEAD/assets/images/imagify-menu-bar-fr.jpg -------------------------------------------------------------------------------- /assets/images/imagify-menu-bar-it.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wp-media/imagify-plugin/HEAD/assets/images/imagify-menu-bar-it.jpg -------------------------------------------------------------------------------- /assets/images/mushrooms-original.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wp-media/imagify-plugin/HEAD/assets/images/mushrooms-original.jpg -------------------------------------------------------------------------------- /assets/images/mushrooms-aggressive.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wp-media/imagify-plugin/HEAD/assets/images/mushrooms-aggressive.jpg -------------------------------------------------------------------------------- /assets/admin/manifest.json: -------------------------------------------------------------------------------- 1 | { 2 | "chart.js": "js/chart.js", 3 | "bulk.js": "js/bulk.js", 4 | "runtime.js": "js/runtime.js", 5 | "entrypoints.json": "entrypoints.json" 6 | } -------------------------------------------------------------------------------- /views/part-files-list-header.php: -------------------------------------------------------------------------------- 1 | 5 |
6 | init(); 7 | 8 | endif; 9 | -------------------------------------------------------------------------------- /assets/admin/entrypoints.json: -------------------------------------------------------------------------------- 1 | { 2 | "chart": { 3 | "js": [ 4 | "js/runtime.js", 5 | "js/chart.js" 6 | ] 7 | }, 8 | "bulk": { 9 | "js": [ 10 | "js/runtime.js", 11 | "js/bulk.js" 12 | ] 13 | } 14 | } -------------------------------------------------------------------------------- /classes/Dependencies/League/Container/Argument/LiteralArgumentInterface.php: -------------------------------------------------------------------------------- 1 |5 | 6 | 7 | 8 |
9 | -------------------------------------------------------------------------------- /classes/CLI/AbstractCommand.php: -------------------------------------------------------------------------------- 1 | get_command_name() ); 15 | } 16 | 17 | /** 18 | * Get the "imagify" command name. 19 | * 20 | * @return string 21 | */ 22 | abstract protected function get_command_name(): string; 23 | 24 | /** 25 | * {@inheritdoc} 26 | */ 27 | public function get_synopsis(): array { 28 | return []; 29 | } 30 | } 31 | -------------------------------------------------------------------------------- /classes/Dependencies/League/Container/Argument/DefaultValueArgument.php: -------------------------------------------------------------------------------- 1 | defaultValue = $defaultValue; 14 | parent::__construct($value); 15 | } 16 | 17 | /** 18 | * @return mixed|null 19 | */ 20 | public function getDefaultValue() 21 | { 22 | return $this->defaultValue; 23 | } 24 | } 25 | -------------------------------------------------------------------------------- /inc/3rd-party/amp/amp.php: -------------------------------------------------------------------------------- 1 | tags in AMP pages. 12 | * 13 | * @since 1.9 14 | * 15 | * @param bool $allow True to allow the use of[] ] ); ?>
19 | 20 |8 | ', 13 | '', 14 | '', 15 | '' 16 | ); 17 | ?> 18 |
19 | print_template( 'notice-footer', [ 'dismissible' => 'bulk-optimization-complete' ] ); ?> 20 | -------------------------------------------------------------------------------- /assets/images/key.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /views/modal-settings-partners-infos.php: -------------------------------------------------------------------------------- 1 | 4 | 5 |
8 | 12 | 13 | -------------------------------------------------------------------------------- /package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "imagify", 3 | "description": "Imagify Image Optimizer. Dramatically reduce image file sizes without losing quality, make your website load faster, boost your SEO and save money on your bandwidth.", 4 | "version": "1.9.9", 5 | "homepage": "https://wordpress.org/plugins/imagify/", 6 | "license": "GPL-2.0", 7 | "private": true, 8 | "author": { 9 | "name": "WP Media", 10 | "url": "http://wp-media.me" 11 | }, 12 | "devDependencies": { 13 | "autoprefixer": "^7.0.1", 14 | "grunt": "^1.0.1", 15 | "grunt-contrib-cssmin": "^4.0.0", 16 | "grunt-contrib-uglify": "^5.0.1", 17 | "grunt-eslint": "^24.0.0", 18 | "grunt-postcss": "^0.9.0" 19 | }, 20 | "scripts": { 21 | "build": "grunt" 22 | } 23 | } 24 | -------------------------------------------------------------------------------- /classes/Avif/RewriteRules/Nginx.php: -------------------------------------------------------------------------------- 1 | 6 | Geoffrey Crofte
13 | 14 | ', 19 | '', 20 | '' 21 | ); 22 | ?> 23 |
24 | print_template( 26 | 'notice-footer', 27 | [ 28 | 'dismissible' => 'wrong-api-key', 29 | ] 30 | ); 31 | -------------------------------------------------------------------------------- /views/notice-backup-folder-not-writable.php: -------------------------------------------------------------------------------- 1 | print_template( 5 | 'notice-header', 6 | [ 7 | 'classes' => [ 'error' ], 8 | ] 9 | ); 10 | 11 | $backup_path = $this->filesystem->make_path_relative( get_imagify_backup_dir_path( true ) ); 12 | 13 | if ( $this->filesystem->exists( get_imagify_backup_dir_path() ) ) { 14 | /* translators: %s is a file path. */ 15 | $message = esc_html__( 'The backup folder %s is not writable by the server, original images cannot be saved!', 'imagify' ); 16 | } else { 17 | /* translators: %s is a file path. */ 18 | $message = esc_html__( 'The backup folder %s cannot be created. Is its parent directory writable by the server? Original images cannot be saved!', 'imagify' ); 19 | } 20 | 21 | echo '' . sprintf( $message, "$backup_path" ) . '
13 | WP_HTTP_BLOCK_EXTERNAL constant in the wp-config.php to block all external HTTP requests.', 'imagify' ); ?>
14 |
16 | wp-config.php file so that it works correctly.', 'imagify' ); ?>
17 |
18 |
20 | 21 |
22 | print_template( 24 | 'notice-footer', 25 | [ 26 | 'dismissible' => 'http-block-external', 27 | ] 28 | ); 29 | -------------------------------------------------------------------------------- /inc/Dependencies/ActionScheduler/deprecated/ActionScheduler_Schedule_Deprecated.php: -------------------------------------------------------------------------------- 1 | get_date(); 19 | $replacement_method = 'get_date()'; 20 | } else { 21 | $return_value = $this->get_next( $after ); 22 | $replacement_method = 'get_next( $after )'; 23 | } 24 | 25 | _deprecated_function( __METHOD__, '3.0.0', __CLASS__ . '::' . $replacement_method ); // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped 26 | 27 | return $return_value; 28 | } 29 | } 30 | -------------------------------------------------------------------------------- /views/button/generate-webp.php: -------------------------------------------------------------------------------- 1 | build_attributes( $data['atts'] ); 21 | ?> 22 | 23 | > 24 | 25 | 28 | 29 | 30 | print_js_template_in_footer( 'button/processing' ); 33 | } 34 | -------------------------------------------------------------------------------- /classes/Traits/InstanceGetterTrait.php: -------------------------------------------------------------------------------- 1 | get_fullsize_url()' ); 27 | 28 | if ( ! $this->is_valid() ) { 29 | return false; 30 | } 31 | 32 | if ( $this->get_cdn() ) { 33 | return $this->get_cdn()->get_file_url(); 34 | } 35 | 36 | return ! empty( $this->image->imageURL ) ? $this->image->imageURL : false; 37 | } 38 | } 39 | -------------------------------------------------------------------------------- /inc/functions/partners.php: -------------------------------------------------------------------------------- 1 | set_schedule( new ActionScheduler_NullSchedule() ); 23 | } 24 | } 25 | } 26 | -------------------------------------------------------------------------------- /inc/deprecated/Traits/Media/WPDeprecatedTrait.php: -------------------------------------------------------------------------------- 1 | get_fullsize_url()' ); 27 | 28 | if ( ! $this->is_valid() ) { 29 | return false; 30 | } 31 | 32 | if ( $this->get_cdn() ) { 33 | return $this->get_cdn()->get_file_url(); 34 | } 35 | 36 | $url = wp_get_attachment_url( $this->id ); 37 | 38 | return $url ? $url : false; 39 | } 40 | } 41 | -------------------------------------------------------------------------------- /inc/3rd-party/nextgen-gallery/inc/functions/common.php: -------------------------------------------------------------------------------- 1 |12 | ', 17 | '', 18 | esc_html( number_format_i18n( $data ) ) 19 | ); 20 | ?> 21 |
22 |
23 | ',
28 | '
',
29 | '',
30 | ''
31 | );
32 | ?>
33 |
34 | ☆☆☆☆☆
35 |
15 | 16 |
17 | ', 25 | '' 26 | ); 27 | ?> 28 |
29 |
8 |
11 |
12 |
13 |
14 |
15 |