=== ShortPixel Image Optimizer - Optimize Images, Convert WebP & AVIF ===
Contributors: ShortPixel
Tags: convert webp, optimize images, image optimization, resize, compressor
Requires at least: 4.8.0
Tested up to: 6.5
Requires PHP: 5.6
Stable tag: 5.6.2
License: GPLv2 or later
License URI: http://www.gnu.org/licenses/gpl-2.0.html

Optimize images & PDFs smartly. Create and compress next-gen WebP and AVIF formats. Smart crop and resize.

== Description ==

**Optimize images and create WebP/AVIF versions with an easy-to-use, comprehensive, lightweight, stable and frequently updated freemium image compression plugin supported by the friendly team that created it.**

Increase your website's SEO ranking, number of visitors, and ultimately your sales by optimising any image or PDF document on your website.
ShortPixel is an easy to use, lightweight, install-and-forget-about-it <a href="https://shortpixel.com" target="_blank">image optimization</a> plugin that can compress all your past images and PDF documents with a single click. New images are automatically resized/rescaled and optimized on the fly, in the background. It's also compatible with any gallery, slider or eCommerce plugin.

**Ready for a quick DEMO? Test our plugin <a href="https://demo.tastewp.com/shortpixel-image-optimiser" target="_blank">here</a> and <a href="https://wpsandbox.net/" target="_blank">here</a>.**
Or you can create a staging copy of your site using <a href="https://wp-staging.com/" target="_blank">WP Staging</a> and test it there.

Short Pixel uses minimal resources and works well with any shared, cloud, VPS or dedicated web hosting. It can optimize any image you have on your website even the images that aren't listed in Media Library like those in galleries like <a href="https://wordpress.org/plugins/nextgen-gallery/" target="_blank">NextGEN</a>, <a href="https://wordpress.org/plugins/modula-best-grid-gallery/" target="_blank">Modula</a> or added directly via FTP!

Both lossy and lossless image compression are available for the most common image types (JPG, PNG, GIF, WebP, and AVIF) plus PDF files.
We also offer **glossy** JPEG compression which is a very high-quality lossy optimization algorithm. Specially designed for photographers!
Optimized images mean better user experience, better PageSpeed Insights or GTmetrix results, better Google PageRank, and more visitors.

Make an instant <a href="https://shortpixel.com/image-compression-test" target="_blank">image compression test</a> of your site or <a href="https://shortpixel.com/online-image-compression" target="_blank">compress some images</a> to test our optimization algorithms.

**<a href="https://shortpixel.com/spio-unlimited/" target="_blank">New Plan: ShortPixel Unlimited</a>**

This is the perfect monthly plan for single website owners.
It allows you to optimize an unlimited number of images with ShortPixel Image Optimizer on your website.
Read more details on our <a href="https://shortpixel.com/knowledge-base/article/555-how-does-the-unlimited-plan-work" target="_blank">dedicated page</a>.

**New! HEIC file support**
With ShortPixel you can now add images in Apple format (HEIC) directly from your iPhone. They will be automatically converted to JPG and then optimized according to your settings. Easy! <a href="https://shortpixel.com/knowledge-base/article/566-heic-apple-images-support-in-shortpixel-image-optimizer" target="_blank">Read more</a>.

**Smart Cropping**

With this new feature, all thumbnails used on your website are not only optimized, but also regenerated to fully display the subject of the image.
All thumbnails fully display the subject and look consistent as well. The new thumbnails look sharper (and can be slightly bigger) than the ones created by WordPress. Ideal for e-commerce and other websites where the images are paramount to selling the products or to support the content. See <a href="https://shortpixel.com/knowledge-base/article/182-what-is-smart-cropping" target="_blank">an example</a>.


**Why is ShortPixel the best choice when it comes to image optimization or PDF compression?**

* popular plugin with over 300,000 active installations - according to WordPress
* compress JPG (and its variations JPEG, JPEG 2000, JPEG XR), PNG, GIF (still or animated) images and also PDF documents
* option to convert any JPEG, PNG or GIF (even animated ones!) to **WebP** and **AVIF** for more Google love. <a href="https://shortpixel.com/blog/how-webp-images-can-speed-up-your-site/" target="_blank">How to enable WebP?</a>. <a href="https://shortpixel.com/blog/what-is-avif-and-why-is-it-good/" target="_blank">What is AVIF and why is it good?</a>.
* **New!:** <a href="https://shortpixel.com/knowledge-base/article/584-background-processing-using-cron-jobs-in-shortpixel-image-optimizer" target="_blank">Background mode</a> now runs automatic cron jobs to continue the image processing when the browser window is closed
* **New!:** Automatic scan of Custom media folders for new images using cron jobs
* full <a href="https://shortpixel.com/knowledge-base/article/537-wp-cli-support-for-shortpixel-image-optimizer" target="_blank">WP-CLI support</a> for background processing, useful especially for websites with a very large Media Library
* easily add <a href="https://shortpixel.com/knowledge-base/article/543-how-to-schedule-a-cron-event-to-run-shortpixel-image-optimizer" target="_blank">recurrent cron jobs</a> for background optimization. Useful if you have users uploading images via the front end of your website
* Smart Cropping. Generate subject-centered thumbnails using ShortPixel's AI engine
* option to automatically convert PNG to JPG if that will result in smaller images. Ideal for large images in PNG format
* option to include the next generation images (WebP and AVIF) into the front-end pages by using the `<picture>` tag instead of `<img>`, independent from generating them through the plugin
* compatible with WP Retina 2x - all **retina images** are automatically compressed. <a href="https://shortpixel.com/blog/how-to-use-optimized-retina-images-on-your-wordpress-site-for-best-user-experience-on-apple-devices/" target="_blank">How to benefit from Retina displays?</a>
* optimize thumbnails as well as featured images. You can also **select individual thumbnails to exclude** from optimization
* advanced exclusion options that allow excluding images based on filename, path, size or complex regex exclusions
* ability to optimize any image on your site including images in **NextGEN Gallery** and any other image galleries or sliders
* option to scale images down, with 2 different options, which is very useful to automatically resize large images. This applies to the featured images and there is no need for additional plugins like Imsanity
* CMYK to RGB conversion
* skip already optimized images
* **24h <a href="https://wordpress.org/support/plugin/shortpixel-image-optimiser/reviews/?filter=5" target="_blank">stellar support</a>** (24/7) directly from developers.
* easily **test lossy/glossy/lossless** versions of the images with a single click in your Media Library
* **great for photographers**: <a href="https://shortpixel.com/blog/how-much-smaller-can-be-images-without-exif-icc/" target="_blank">keep or remove EXIF</a> data from your images, compress photos with lossless option
* works well with both HTTPS and HTTP websites
* fully compatible with any WordPress multisite install (either with sub-folders or sub-domains)
* uses progressive JPEG for larger images in order to speed up the image display
* you can run ShortPixel plugin on **multiple websites** or on a **multisite** with a **single API Key**
* it is **safe to test** and use the plugin: all the original images are by default saved in a local backup that can be restored with a click, either one by one or in bulk
* 'Bulk' optimize all the existing images in Media Library or in any gallery with one click
* works great for **eCommerce websites using WooCommerce** or other plugins
* works great with NextGEN gallery, Foo Gallery and any other galleries and sliders
* fully compatible with the <a href="https://wordpress.org/plugins/amazon-s3-and-cloudfront/" target="_blank">WP Offload Media</a> plugin
* compatible with WP Engine hosted websites and all the major hosting providers
* compatible with WPML and WPML Media plugins
* no file size limit
* integrates with Gravity Forms post_image field type optimizing the images upon upload
* compatible with watermarking plugins
* option to deactivate auto-optimizing images on upload
* no credits are used for the images that are optimised less that 5%
* direct integration with Cloudflare by using a Cloudflare Token
* 30 days optimization report with all image details and overall statistics
* We are GDPR compliant! <a href="https://shortpixel.com/privacy#gdpr" target="_blank">Read more.</a>
* **free optimization credits for non-profits**, <a href="https://shortpixel.com/contact" target="_blank">contact us</a> for details

**How much does it cost?**
ShortPixel comes with 100 free credits/month and additional credits can be bought for as little as $4.99 for 5,000 image credits.
Check out <a href="https://shortpixel.com/pricing" target="_blank">our prices</a>.

> **Testimonials:**
> ★★★★★ **A Super Plugin works very well 62% reduction overall.** [robertvarns](https://wordpress.org/support/topic/a-super-plugin-works-very-well-62-reduction-overall/)
> ★★★★★ **The secret sauce for a WordPress website.**  [mark1mark](https://wordpress.org/support/topic/the-secret-sauce-for-a-wordpress-website/)
> ★★★★★ **A must have plugin, great support!** [ElColo13](https://wordpress.org/support/topic/a-must-have-plugin-great-support/)
> ★★★★★ **Excellent Plugin! Even Better Customer Service!**  [scaliendo](https://wordpress.org/support/topic/great-plugin-great-support-508/)
> ★★★★★ **Great image compression, solid plugin, equally great support.** [matters1959](https://wordpress.org/support/topic/support-shortpixel-image-optimiser/)
> [more testimonials](https://wordpress.org/support/plugin/shortpixel-image-optimiser/reviews/?filter=5)

[youtube https://www.youtube.com/watch?v=FVPWeNsJWss]

Help us spread the word by recommending ShortPixel to your friends and collect **100 lifetime monthly additional image credits for each referred active user**. Make money by promoting a great plugin with our <a href="https://shortpixel.com/free-sign-up-affiliate" target="_blank">30% commission affiliate program</a>.

**Other plugins by ShortPixel**

* [FastPixel Caching](https://wordpress.org/plugins/fastpixel-website-accelerator/) - WP Optimization made easy
* [ShortPixel Adaptive Images](https://wordpress.org/plugins/shortpixel-adaptive-images/) - On-the-fly image optimization & CDN delivery
* [Enable Media Replace](https://wordpress.org/plugins/enable-media-replace/) - Easily replace images or files in Media Library
* [reGenerate Thumbnails Advanced](https://wordpress.org/plugins/regenerate-thumbnails-advanced/) - Easily regenerate thumbnails
* [Resize Image After Upload](https://wordpress.org/plugins/resize-image-after-upload/) - Automatically resize each uploaded image
* [WP SVG Images](https://wordpress.org/plugins/wp-svg-images/) - Secure upload of SVG files to Media Library 
* [ShortPixel Critical CSS](https://wordpress.org/plugins/shortpixel-critical-css/) - Automatically generate above-the-fold CSS for fatster loading times and better SEO scores

**Get in touch!**

* Email <a href="https://shortpixel.com/contact" target="_blank">https://shortpixel.com/contact</a>
* Twitter <a href="https://twitter.com/shortpixel" target="_blank">https://twitter.com/shortpixel</a>
* Facebook <a href="https://www.facebook.com/ShortPixel" target="_blank">https://www.facebook.com/ShortPixel</a>
* LinkedIn <a href="https://www.linkedin.com/company/shortpixel" target="_blank">https://www.linkedin.com/company/shortpixel</a>

== Installation ==

Let's get the ShortPixel plugin running on your WordPress website:


1. Sign up using your email at <a href="https://shortpixel.com/wp-apikey" target="_blank">https://shortpixel.com/wp-apikey</a>.
2. You will receive your personal API key in a confirmation email, to the address you provided.
3. Upload the ShortPixel plugin to the /wp-content/plugins/ directory
4. Use your unique API key to activate the ShortPixel plugin in the 'Plugins' menu in WordPress.
5. Uploaded images can be automatically optimized in the Media Library.
6. Done!


== Frequently Asked Questions ==

= How does ShortPixel compare to other image optimisation plugins (e.g Smush, Imagify, TinyPNG, Kraken, EWWW, Optimole)?  =
	ShortPixel consistently has better compression rates along with more features, backup support and has very affordable one-time or monthly plans.
	Here are a couple of independent reviews:
	AuthorityHacker - "ShortPixel is our tool of choice, simply because it’s pretty much automated – we just let it do its thing." (<a href="https://www.authorityhacker.com/best-wordpress-image-optimizer/" target="_blank">read full review</a>)
	WP Modula - "One of the reasons I’m personally a huge fan of ShortPixel is the built-in support for next-gen image formats like WebP." (<a href="https://wp-modula.com/the-best-wordpress-image-optimization-plugins/" target="_blank">read full review</a>)

= Can I use the same API Key on multiple web sites? =
    Yes, you can.
    As long as you have available credits, you can use a single API Key on as many websites as you wish!

= What plan is better for me? What do you recommend? =
	Everyone has different needs, but generally, we recommend getting a One-Time plan to optimize your whole Media Library and then get a Monthly plan to optimize your future uploads. To learn more, have a look at <a href="https://help.shortpixel.com/article/30-monthly-plans-vs-one-time-plans" target="_blank">this comparison</a>

= I don't know how many thumbnails do I have, what plan should I take?
	To know how many thumbnails you have, just install the plugin and go to Media > Bulk ShortPixel. The plugin will tell you how many thumbnails you've got. Based on this, have a look at <a href="https://shortpixel.com/pricing" target="_blank">our plans</a>

= Can I upgrade/downgrade easily my plan? =
	Of course. You can upgrade or downgrade your plans in a couple of clicks from your account on shortpixel.com.

= Can I test/use the plugin for free? =
    Yes, you can.
    We offer 100 free image optimization credits each month. Exceeding the monthly free quota will pause the optimization process till the quota is reset or extended by buying one of our plans.

= Can I optimize images that aren't in Media Library? =
    Absolutely.
    You can actually optimize any image you have on your site regardless of its place. You just need to add - in the Advanced section of the ShortPixel Settings - the folders where the images you want to optimize are located and ShortPixel will work its magic and do the rest.

= Can I optimize images that are both past and new? =
    Sure!
    You can optimize all your past/current images and photos using our "Bulk ShortPixel" page in your Media with a single click.

= A credit = an optimized image? =
    Yes, that is correct.
    But please note that usually, an image in Media Library has 5 or more associated thumbs. Each optimized thumbnail requires a credit. In the rare cases when ShortPixel does not optimise the image (lossy) with at least 5%, the credit will not be consumed, though.

= Can I restore my images? What happens with the originals? =
    If you choose the "Image backup" option in Settings/ShortPixel then the original version of any optimized image or PDF will be saved in the backup folder.
    The original image is needed if you want to restore an image or if you want to convert an image from lossy/glossy to lossless or vice-versa.

= What types of formats can be optimized? =
    ShortPixel optimises JPEG (JPG, JPEG, JPEG 2000, JPEG XR), PNG, GIF (animated and still), and PDF type of files.

= Do you have one-time plans? =
    Yes we do.
    The credits that come with our <a href="https://shortpixel.com/plans" >one-time plans</a> never expire. Yummy! :-)

= What happens to my existing images? =
    Your existing images are replaced with the optimized ones.
    If you choose the backup option then the originals will be saved in a separate folder so you can restore them should you ever need/want to do that.

= How does the plugin work? =
    Our lightweight plugin sends the original images to our Image Optimization Cloud where they are compressed. ShortPixel then downloads the optimized images and the unoptimized originals are replaced with the optimised versions.

= Do you optimize images in the cloud? =
    Yes, all the images processed by ShortPixel are optimized in the Cloud. This takes the load off of your server and allows us to produce the best results.

= What payment methods are accepted? =
    We accept payments via card (Mastercard, Visa, Maestro, American Express, Discover, Diners Club, JCB, UnionPay), PayPal, and Apple Pay.

= How do I activate the API key on a multisite? =
    You have to activate the plugin in the network admin and then activate it manually on each individual site in the multisite. Once you have done that, the Settings menu appears and you can add the API key for each individual site.
    As an alternative, you can edit wp-config.php and add this line:

`define('SHORTPIXEL_API_KEY', 'APIKEY');`
where `APIKEY` is the API Key received upon sign up.
    If configured that way, the API key will be used for all the sites of the multisite but will only be visible on the main site’s Settings page, being hidden for the rest of the sites.

= I am not the only one working on the WordPress Dashboard. How can I hide my API key? =
    There is a simple way to hide the API key, all you need to do is to add these two lines in your wp-config.php:

`define('SHORTPIXEL_API_KEY', '<<your api key here>>');`
`define('SHORTPIXEL_HIDE_API_KEY', true);`

= How much is a credit? =
    A credit is used each time ShortPixel optimizes an image or thumbnail by at least 5%. If we're not able to optimize an image or thumbnail by at least 5% then no credit will be used :-)
    Please also note that usually images in your Media Library have 3-5 thumbs associated and a credit will be used for each featured image or associated thumbnail that is optimized.

= Why shall I use a WordPress plugin and not an offline tool? =
    Because ShortPixel algorithms were perfected while optimizing over 3.5 billion real-life images.
    ShortPixel not only offers the best compression for JPEG, PNG, GIF, and PDF files but it also saves you a lot of time. You just install it on your site and then ShortPixel will take care that all the images on your site are immediately optimized after upload.

= Does optimizing images affect my ALT tags? =
    No, ShortPixel only optimizes images, it won't touch anything else like your HTML/CSS.

= If I stop using ShortPixel will my images remain optimized? =
    Absolutely!
    Once optimized, the images will remain optimized unless you explicitly choose to restore them. But why would you do that? :-)

= Do I have to pay monthly or one time? =
    We have both options available.
    One-time credits never expire and are a bit more expensive. Check out our prices <a href="https://shortpixel.com/pricing" >here</a>

= When can I cancel a monthly plan? =
    Whenever you want.
    The credits you still have available for the current billing period will still be available until the end of the billing period. At the end of it, you won't be billed again and the plan will be reset to the free plan.

= When do credits expire? =
    Monthly credits expire after 30 days while one-time credits never expire.

= Do you have an API? =
    Yes, we have several APIs and tools.
    You can learn more about it here:
    <a href="https://shortpixel.com/api-tools">https://shortpixel.com/api-tools</a>

= Can I use the ShortPixel WP plugin on a localhost installation? =
    Unfortunately not :-(
    But you can use either our command line tool or our web tool
    <a href="https://shortpixel.com/web-tool-docs">https://shortpixel.com/web-tool-docs</a>
    <a href="https://shortpixel.com/cli-docs">https://shortpixel.com/cli-docs</a>

= How does resizing work? =
    If you choose the option to resize images on your site, then the featured image can be resized to a predefined size while keeping its aspect and proportions intact. The associated thumbs won't be resized.
    Using this option you can safely upload original images safely without needing to apply any pre-processing to make them smaller.

= Will ShortPixel work if my website is using CloudFare? =
    Absolutely! Sometimes you'll need to make sure you whitelist some IPs, just <a href="https://shortpixel.com/contact">contact us</a> and we'll assist you with that.

= Where do I report security bugs found in this plugin? =
Please report security bugs found in the source code of the ShortPixel Image Optimizer plugin through the [Patchstack Vulnerability Disclosure Program](https://patchstack.com/database/vdp/shortpixel-image-optimiser). The Patchstack team will assist you with verification, CVE assignment, and notify the developers of this plugin.

= I’m stuck. What do I do? =

The ShortPixel team is here to help. <a href="https://shortpixel.com/contact">Contact us</a>!


== Actions and Filters for Developers ==

The ShortPixel Image Optimiser plugin calls the following actions and filters:

`do_action( 'shortpixel_image_optimised', $post_id );`
upon successful optimization;

`do_action("shortpixel_before_restore_image", $post_id);`
before restoring an image from backup;

`do_action("shortpixel_after_restore_image", $post_id);`
after succesful restore;

For version 4.22.10 and earlier:

`apply_filters("shortpixel_backup_folder", $backup_folder, $main_file_path, $sizes);`
just before returning the ShortPixel backup folder, usually /wp-content/uploads/ShortpixelBackups. The `$sizes` are the sizes array from metadata;

For version 5.0.0 and later:

`$directory = apply_filters("shortpixel/file/backup_folder", $directory, $file);`
just before returning the ShortPixel backup folder, usually /wp-content/uploads/ShortpixelBackups).

`apply_filters('shortpixel_image_exists', file_exists($path), $path, $post_id);`
post ID is not always set, only if it's an image from Media Library;

`apply_filters('shortpixel_image_urls', $URLs, $post_id);`
filters the URLs that will be sent to optimisation, `$URLs` is a plain array;

<strong>The filter below is deprecated starting with version 5.0.0!</strong>

`apply_filters('shortpixel/db/chunk_size', $chunk);`
the `$chunk` is the value ShortPixel chooses to use as the number of selected records in one query (based on total table size), some hosts work better with a different value;

For version 4.22.10 and earlier:

`apply_filters('shortpixel/backup/paths', $PATHs, $mainPath);`
filters the array of paths of the images sent for backup and can be used to exclude certain paths/images/thumbs from being backed up, based on the image path. `$mainPath` is the path of the main image, while `$PATHs` is an array with all files to be backed up (including thumbnails);

For version 5.0.0 and later:

`apply_filters('shortpixel/image/skip_backup', false, $this->getFullPath(), $this->is_main_file)`
filters the images that are skipped or not from the backup. Return true for the type of images to be skipped in the backup. If you check if `is_main_file` is true and return false (do not skip backup), while while otherwise returning true, the backup will be kept only for the main image. We suggest using it in conjuction with this action that fires right after the restore from backup is done:

`do_action('shortpixel/image/after_restore', $this, $this->id, $cleanRestore);`
This action can be used to cleanup the meta data from the database, regenerate thumbnails after restoring the main file, writing the updated meta data, etc.

`apply_filters('shortpixel/settings/image_sizes', $sizes);`
filters the array (`$sizes`) of image sizes that can be excluded from processing (displayed in the plugin Advanced settings);

`apply_filters('shortpixel/image/imageparamlist', $result, $this->id, $this);`
filters the list of parameters sent to the API so that resizing can be performed more granularly;

`apply_filters('shortpixel/api/request', $requestParameters, $item_id);`
filters the parameters sent to the optimization API (through `$requestParameters`), described in detail here: <a href="https://shortpixel.com/api-docs" target="_blank">ShortPixel Reducer API</a>; `$item_id` contains the ID of the Media Library item, or the ID of the Custom Media item (when used). In short, this filter can be used to alter any parameters sent to the API, depending on the needs. For example, you can set different resize parameters for different post types, different compression levels, remove EXIF or not, covert WebP/AVIF, and basically any other parameter that is sent to the API for a specific image (together with all its thumbnails).

This filter enables the background ShortPixel processing in additional pages (see <a href="https://shortpixel.com/knowledge-base/article/334-on-what-pages-does-spio-optimize-images" target="_blank">here</a> the original list). Here's an example of this filter that enables the processing on the Comments screen (to be placed in your functions.php file):

`
add_filter('shortpixel/init/optimize_on_screens', function ($screens) {
	$screens[] = 'edit-comments';
	return $screens;
});
`
The `edit-comments` is the ID of the screen where you want to enable the processing.

If you want to add multiple pages, here's what the snippet looks like:

`
add_filter('shortpixel/init/optimize_on_screens', function ($screens) {
	$screens = array('edit-comments', 'plugins', 'another-custom-post-type-page');
	return $screens;
	});
`

`add_filter('shortpixel/image/filecheck', function () { return true; });`
This filter forces a file check for WebP/AVIF in case they were manually removed from disk.

If you want to disable the automatic cache flush that is triggered after image optimization, you can use this filter:

`add_filter( 'shortpixel/external/flush_cache', function() { return false; } );`

In order to define custom thumbnails to be picked up by the optimization you have two options, both comma separated defines:

`define('SHORTPIXEL_CUSTOM_THUMB_SUFFIXES', '_tl,_tr');`
will handle custom thumbnails like image-100x100_tl.jpg;

`define('SHORTPIXEL_CUSTOM_THUMB_INFIXES', '-uae');`
 will handle custom thumbnails like image-uae-100x100.jpg;

`define('SHORTPIXEL_USE_DOUBLE_WEBP_EXTENSION', true);`
`define('SHORTPIXEL_USE_DOUBLE_AVIF_EXTENSION', true);`
will tell the plugin to create double extensions for the WebP/AVIF image counterparts, for example, image.jpg.webp/image.jpg.avif for image.jpg;

Enable the "Trusted mode" in case the file system has limitations and is very slow in responding to direct file operations by adding this constant:

`define('SHORTPIXEL_TRUSTED_MODE', true);`

This will simply skip file check operations and if the Media Library loads very slowly or freezes, you might want to try adding the constant above to your wp-config.php file.

Disable the feedback survey when the plugin is deactivated:

`define('SHORTPIXEL_SKIP_FEEDBACK', true);`

Hide the Cloudflare settings by defining these constants in wp-config.php:

`define('SHORTPIXEL_CFTOKEN', 'the Cloudflare API token that has Purge Cache right');`
`define('SHORTPIXEL_CFZONE', 'The Zone ID from the domain settings in Cloudflare');`

Add HTTP basic authentication credentials by defining these constants in wp-config.php

`define('SHORTPIXEL_HTTP_AUTH_USER', 'user');`
`define('SHORTPIXEL_HTTP_AUTH_PASSWORD', 'pass');`

== Screenshots ==

1. Bulk optimization running. (Media>Bulk ShortPixel)

2. Activate your API key in the plugin Settings. (Settings>ShortPixel)

3. Check out the main settings after the API key is activated. (Settings>ShortPixel)

4. Tweak it using Advanced settings. (Settings>ShortPixel)

5. Compress all your past images with one click. (Media>Bulk ShortPixel)

6. Check image optimization status, and restore or reoptimize the image. (Media>Library)

7. Check image optimisation details. (Media>Library->Edit)

8. Check other optimized images' status - themes or other plugins' images. (Media>Other Media)

== Changelog ==

= 5.6.2 =
Release date: May 23, 2024
* Fix: The Cover or Contain setting for resizing was not retained when saving;
* Language: 0 new strings added, 0 updated, 0 fuzzed, and 0 deprecated.

= 5.6.1 =
Release date: May 21, 2024
* Fix: Folders from the uploads folder can now be selected as Custom Media even if the year/month structure is not used;
* Fix: In certain cases PHP errors were generated when trying to optimize or even upload images;
* Fix: Some typos caused warnings in some cases;
* Fix: Fixed a typo regarding the number of seconds in a day (kudos to @JusGu for pointing this out);
* Fix: Images with a size of 0Kb are no longer processed;
* Compat: The integration with Formidable Forms now works directly in the Media Library (no need for Custom Media anymore);
* Language: 5 new strings added, 2 updated, 1 fuzzed, and 2 deprecated.

= 5.6.0 =
Release date: May 2, 2024
* New: Added background mode that uses cron jobs to perform optimizations without having to keep the browser open;
* New: Custom media folders are now automatically checked for new images in the background with cron jobs;
* New: The bulk actions from the list view of the media library have been moved to JS;
* New: BMP and TIFF files are automatically converted to JPG;
* Compat: Added integration for images uploaded via Formidable Forms;
* Compat: Improved performance of PICTURE tag delivery mode when offload is enabled;
* Compat: The images generated by the Uncode theme are now automatically optimized;
* Compat: PNG conversion has been improved to better handle images with alpha channel but without transparent pixels;
* Compat: Added a filter to disable the PHP basedir constraints check;
* Compat: Added filter to allow generation of WebP/AVIF even if they are larger than JPG/PNG;
* Compat: Added new hooks for Regenerate Thumbnails Advanced;
* Compat: Added notification to enable double WebP extension when WebP delivery is enabled in Litespeed Cache;
* Compat: Fixed a conflict with the Getty Images plugin (thanks @pintofbeer);
* Compat: Fixed Photo Engine/WpLr integration when republishing images from Adobe Lightroom;
* Fix: PDF files are now correctly excluded from processing when the option is disabled in the advanced settings;
* Fix: Styling corrected when deactivating the plugin;
* Fix: Added additional checks for silent mode when errors occurred in some cases;
* Fix: Some PHP warnings were displayed under PHP 8.3;
* Fix: The warning about Imagify could not be dismissed;
* Language: 27 new strings added, 6 updated, 0 fuzzed, and 0 deprecated.

= 5.5.5 =
Release date: February 13, 2024
* Compat: Added new hooks to be used by the Regenerate Thumbnails Advanced plugin;
* Compat: Adjusted the settings limitations for the new Unlimited plans;
* Fix: Added an additional check to prevent database table errors when the plugin is removed;
* Language: 0 new strings added, 1 updated, 0 fuzzed and 0 deprecated.

= 5.5.4 =
Release date: January 22, 2024
* Tweak: The messages displayed when executing WP-CLI "auto" commands have been improved;
* Tweak: More options and flexibility for the filter used when creating the `.htaccess` rules (for WebP delivery);
* Tweak: Added a check and mechanism to prevent running out of memory if the bulk process preparation fails due to lack of memory;
* Tweak: Added back the "Optimize" option in the "Bulk actions" section in the list view of the Media Library;
* Compat: Added integration with the "Media File Renamer" plugin;
* Fix: Under PHP 8.1+, a notice was displayed when re-optimizations were performed;
* Fix: A PHP warning was displayed converting optimization metadata via WP-CLI;
* Fix: Multiple exclusion checkboxes in the plugin settings can now be selected with the SHIFT key;
* Fix: Converting optimization metadata without backups could cause the main images to be incorrectly set to unprocessed;
* Language: 4 new strings added, 0 updated, 0 fuzzed, and 0 deprecated.

= 5.5.3 =
Release date: January 3, 2024
* Fix: In some cases, an error was displayed when adding a folder to Custom Media, even if the folder was added correctly;
* Fix: For WebP files uploaded directly to the Media Library, the plugin could remove the wrong files during certain operations;
* Fix: Bulk processing of Custom Media could lead to errors in some cases;
* Fix: A PHP Warning was displayed on the Custom Media page if no items were present;
* Language: 0 new strings added, 0 updated, 0 fuzzed and 0 deprecated.

= 5.5.2 =
Release date: November 24, 2023
* Fix: The excluded thumbnails are no longer checked out when saving the settings;
* Fix: Adding new exclusions is now fixed;
* Fix: Updated the wording of exclusions to make them consistent;
* Fix: An error was displayed in the logs if an image could not be loaded at all;
* Fix: An error is now displayed when a Custom Media folder cannot be added instead of silently crashing the page;
* Fix: If WP_CONTENT_DIR does not contain wp-content, adding a Custom Media folder failed;
* Language: 8 new strings added, 2 updated, 0 fuzzed and 7 deprecated.

= 5.5.1 =
Release date: November 17, 2023
* New: Added a filter to change the parameters sent to the API (e.g. for granular resizing);
* Fix: Some PHP notices were displayed in the logs when no exclusions were set;
* Fix: when using the Media Library Grid view, a request for a non-existent image resulted in an Ajax error;
* Fix: Add checks to prevent errors when WebP files cannot be copied to their destination;
* Tweak: Removed notification about HEIC files;
* Language: 0 new strings added, 0 updated, 0 fuzzed and 2 deprecated.

= 5.5.0 =
Release date: November 8, 2023
* New: The Custom Media folders have been redesigned, more features have been added and everything has been moved to Media -> Custom Media;
* New: The exclusions have been redesigned to provide a simpler and more flexible mechanism;
* New: The ability to override exclusions and manually optimize excluded images has been added;
* New: The ability to mark images as completed (optimized) has been added;
* New: Added migration of optimization data to WP-CLI;
* New: Added constant to disable the feedback survey when the plugin is deactivated;
* Compat: Added proper validation and integration for the Swift AI plugin;
* Compat: Added filter to suppress cache clearing for various cache plugins (useful for large websites);
* Fix: If an image has been excluded, it can now be restored from the backup;
* Fix: Envira and Soliloquy have been added to the list of pages where processing is performed automatically;
* Fix: Websites with many Custom Media folders and/or NextGen galleries should no longer hang;
* Fix: Added some checks and validations to avoid `open_basedir` warnings;
* Fix: Updated wording and banners throughout the plugin;
* Language: 94 new strings added, 3 updated, 5 fuzzed and 33 deprecated.

= 5.4.3 =
Release date: September 28, 2023
* Fix: in some very isolated cases, the previous security fix could result in corrupted data for PNG2JPG in some page builders;
* Language: 0 new strings added, 0 updated, 0 fuzzed, and 0 deprecated.

= 5.4.2 =
Release date: September 14, 2023
* Fix: A possible PHP Object Injection was patched, which could be exploited under certain conditions;
* Fix: added another fix for WebP path for old multisite setups still using blogs.dir folder structure;
* Language: 0 new strings added, 0 updated, 0 fuzzed, and 0 deprecated.

= 5.4.1 =
Release date: September 4, 2023
* Compat: a filter has been added that allows customizing the metadata migration paramaters;
* Fix: a missing space broke the HTML structure in some cases when using the PICTURE tag delivery method for next generation images;
* Fix: added fix for WebP path for old multisite setups still using blogs.dir folder structure;
* Fix: custom uploads folders (by using constants) are now handled correctly in all cases;
* Fix: added supplemental checks to prevent some isolated JS errors that occurred only in certain cases;
* Fix: the plugin now only displays fatal errors when debug mode is enabled;
* Fix: the Shortpixel typos are now corrected in ShortPixel;
* Language: 0 new strings added, 4 updated, 0 fuzzed, and 0 deprecated.

= 5.4.0 =
Release date: August 1, 2023
* New: Images are now processed directly on the "Add New Media" screen;
* New: Support for WordPress image editing functions; a notification is now displayed when you use the editing features;
* New: PNG-to-JPG conversion now replaces posts in states other than published, such as scheduled, pending, draft, etc;
* Compat: Added additional checks when WP Offload Media is used together with Enable Media Replace;
* Compat: Added integration with Total theme, thanks @AJ for the great support;
* Fix: Improved the way the ShortPixel box loads on different screens;
* Fix: Empty ALT tags on images are now preserved when using the PICTURE tag delivery method for next generation images;
* Fix: The PICTURE tag delivery generated invalid HTML code due to a missing space (thanks @kittmedia for pointing these two out!);
* Fix: Several minor fixes and improvements related to PNG-to-JPG conversion;
* Fix: Resize information was not written corectly when using WP Offload Media and backups were not enabled;
* Fix: Restoring backups when Offload is disabled now works without affecting image metadata;
* Fix: When object cache was enabled, transients used for processing were recreated too often;
* Fix: Improved thumbnail handling for SmartCropping: only cropped thumbnails are now send for SmartCropping;
* Language: 1 new string added, 6 updated, 0 fuzzed, and 3 deprecated.

= 5.3.0 =
Release date: June 27, 2023
* New: Added the ShortPixel box on the Media Library Grid view;
* New: Added the option to re-optimize an image with or without Smart Cropping;
* New: Added the images with errors to the Media Library filters, for easier retries;
* New: Added an option in the plugin tools to reset the optimization errors;
* Compat: Added integration with WordPress image editing features (crop, flip, rotate etc.);
* Compat: Added integration for <a target="_blank" href="https://github.com/humanmade/S3-Uploads">S3 Uploads by HumanMade</a>;
* Compat: Fixed integration with LiteSpeed Cache version 5.4 and older. Read more about it in our <a target="_blank" href="https://shortpixel.com/knowledge-base/article/264-how-to-deliver-the-webps-generated-with-shortpixel-with-the-litespeed-cache-plugin">knowledge base article</a>;
* Compat: Fixed bulk processing when WP Media Recovery plugin is active;
* Fix: ABSPATH die statement added to each file, for increased security;
* Fix: Improved bulk processing statistics for large installations;
* Fix: Improved the text and output of WP-CLI commands;
* Fix: In some cases the transient used for bulk processing could get stuck and prevent automatic optimization;
* Fix: When processing a non-optimized image with Bulk Actions from the Media Library, it was not optimized with the correct compression level;
* Fix: Do not add `.htaccess` files in folders where it is not strictly necessary;
* Fix: Interaction with the the database was improved and optimized when using an offloading solution;
* Fix: In some cases an error was displayed when debug mode was enabled;
* Fix: Not all file statuses were displayed correctly in the ShortPixel box of the Media Library;
* Fix: Various text and layout improvements on the plugin pages;
* Language: 24 new strings added, 3 updated, 0 fuzzed, and 0 deprecated.

= 5.2.3 =
Release date: May 26, 2023
* Fix: an error was displayed when an image had only a `srcset` (and no `src`) and the PICTURE tag delivery mode was enabled;
* Fix: a warning was displayed for lazy-loaded images using `data-src`;
* Fix: if the optimization queue contained an item that was added a long time ago, an error caused the optimization to crash;
* Fix: If duplicate thumbnails are no longer present in WordPress, they are ignored when trying to optimize;
* Fix: a typo when checking an array caused an error in certain cases;
* Fix: text changes on the settings page related to AVIF generation for the Unlimited plan;
* Fix: in case of a failed backup, the retry mechanism did not actually retry the optimization in all cases;
* Tweak: the optimization error notification system will only trigger when the plugin's debug mode is enabled;
* Language: 1 new string added, 1 updated, 0 fuzzed, and 0 deprecated.

= 5.2.2 =
Release date: May 10, 2023
* New: If a 5xx error is thrown during optimization, the plugin will attempt to output it for easier debugging;
* Fix: Added multiple fixes and improvements of the PICTURE tag delivery method, including a more stable fallback mechanism in case WebP/AVIF isn't available;
* Fix: In some cases, the PICTURE tag delivery wasn't working properly when WP Offload Media was active;
* Fix: Added a check for old items stuck in the queue to avoid potential errors after plugin updates;
* Fix: In some cases, when WP Offload Media is active, a "Not processable: Image processable" message was displayed;
* Fix: Added a check to prevent the main file to be passed as a thumbnail because that could crash the de-duplication mechanism;
* Tweak: Added a "Trusted mode" for file systems that respond very slowly and slow down or freeze the Media Library;
* Tweak: Added a button to start earler the optimization for huge sites, where preparing the bulk optimization queue can take a very long time;
* Tweak: updated styling for various notices to make it unitary;
* Tweak: thumbnails with ~0% optimization will be grouped toghether and displayed only once;
* Compat: Fixed a bunch of deprecation notices and warnings on PHP 8.1 and PHP 8.2;
* Language: 8 new strings added, 0 updated, 0 fuzzed, and 0 deprecated.

= 5.2.1 =
Release date February 21, 2023
* Fix: an error was displayed when trying to migrate PNG files saved in the old optimization format;
* Fix: in some strange cases, the JS worker URL was called with `http` instead of `https`, blocking plugin functionalities;
* Fix: a JS error affected optimization when another plugin defined prototypes;
* Fix: if the main image was also detected as a thumbnail an error was thrown;
* Language: 0 new strings added, 0 updated, 0 fuzzed, and 0 deprecated.

= 5.2.0 =
Release date February 15, 2023
* New: added support for automatic conversion of HEIC files (Apple image format for iOS devices) to JPG;
* New: the conversion from PNG to JPG has been completely reworked, making it more robust and stable;
* Compat: the integration with WP Offload Media has been updated, according to the latest version;
* Compat: fully tested and working with PHP 8.1;
* Tweak: fractional optimization is now possible, especially useful for images with many thumbnails;
* Tweak: Custom Media stats are now retrieved with only one DB query, speeding up the settings page;
* Tweak: if a PNG is not converted, there is now a reason in the ShortPixel box on the Edit Media screen;
* Tweak: notifications are no longer reset when the plugin is activated/updated, preventing the same notifications from reappearing;
* Fix: security hardening for the settings controller and debug functions;
* Fix: a 4-digit Custom Media folder could not be added due to Media Library exclusions;
* Fix: a check is now performed before adding a NextGen gallery to Custom Media, to avoid duplicates;
* Fix: a failed PNG conversion to JPG can now be retried;
* Fix: credits can no longer be purchased from a sub-account;
* Fix: when converting a large PNG to JPG, the resulting scaled JPG was not optimized properly; 
* Fix: size exclusions work as expected again;
* Fix: when credits are insufficient for the entire bulk, a notification is displayed again;
* Fix: page selection on the Custom Media screen now works as expected again;
* Fix: NextGen Gallery pages no longer crash due to jQuery errors;
* Fix: NextGen galleries are no longer added twice, a check for double slashes has been added;
* Fix: if a PNG image has the same filename as a JPG image after conversion, it's now renamed correctly to avoid conflicts;
* Fix: when an image is deleted from NextGen Gallery, the WebP/AVIF files are also removed;
* Fix: if an optimized image is in a folder without write permissions, WebP/AVIF generation is no longer attempted;
* Fix: when entering a very long email address, the browser no longer hangs;
* Fix: notification for list view mode in Media Library works again;
* Fix: various fixes and updates to the plugin's CSS and text;
* Language: 31 new strings added, 8 updated, 0 fuzzed, and 15 deprecated.

= 5.1.6 =
Release date December 31, 2022
* Fix: in some cases, AVIF files were not cropped correctly;
* Language: 0 new strings added, 0 updated, 0 fuzzed, and 0 deprecated.

= 5.1.5 =
Release date November 29, 2022
* Fix: WebP/AVIF delivery now works correctly, without affecting SVG files or other images or requests (e.g. in WooCommerce). Sorry about this!;
* Fix: a PHP warning was displayed if no valid API key was added;
* Fix: error in Custom Media if the folder is not in the root directory;
* Language: 0 new strings added, 0 updated, 0 fuzzed, and 0 deprecated.

= 5.1.4 =
Release date November 28, 2022
* New: added a filter to force a file check for WebP/AVIF if they were manually deleted from disk;
* Fix: if only small WebPs are available, include the JPG version in the `picture` tag to avoid blurry images;
* Fix: the notification about unlisted thumbnails incorrectly reported WebP and AVIF files;
* Fix: improved integration with WP Offload Media by including Retina images in virtual/offload file checks;
* Fix: if the main file was optimized but some thumbnails did not have WebP/AVIF, it was not displayed correctly in the UI;
* Fix: added a % margin when generating WebPs/AVIF, so that files that are only a few bytes larger are also generated;
* Fix: when running WP-CLI, the percentage of finished items in the total was calculated incorrectly;
* Fix: the settings page crashed in certain cases for new accounts;
* Tweak: various CSS fixes and improvements on the Media Library, especially for cases with many thumbnails;
* Language: 2 new strings added, 2 updated, 0 fuzzed, and 0 deprecated.

= 5.1.3 =
Release date November 9, 2022
* Fix: a typo related to Custom Media that caused an error when adding a new Custom Media folder;
* Fix: some minor cosmetic fixes on the settings and bulk processing pages for new plans;
* Fix: the notification about the ShortPixel column in List view is now displayed when you switch back to the Grid view in Media Library;
* Language: 1 new string added, 0 updated, 0 fuzzed, and 0 deprecated.

= 5.1.2 =
Release date November 7, 2022
* Fix: when converting PNG to JPG, the PNG path was saved in the post editor, which could result in broken images;
* Fix: the bulk restore of Custom Media was performed without saving it to the previous bulks history;
* Fix: various wording updates and fixes throughout the plugin code;
* Fix: PNG to JPG conversion failed under certain Windows environments due to wrong path construction;
* Fix: the plugin now works with thumbs that have a numeric name (e.g. `0`);
* Fix: on certain hosting restrictions, requesting a new API key caused a fatal error;
* Fix: the original image was not processed when thumbnail processing was turned off;
* Compat: added compatibility with the Uncode theme's adaptive images feature;
* Tweak: minor updates to the settings and Media Library layout for new plans that will be introduced soon;
* Tweak: added filter/constant that can be used by affiliates;
* Tweak: reworked plugin notification system to make it more robust and reliable;
* Language: 44 new strings added, 2 updated, 0 fuzzed, and 39 deprecated.

= 5.1.1 =
Release date October 20th, 2022
* Fix: a fatal error for PHP 7.2 and lower was discovered and fixed by @KZeni, thanks!
* Language: 0 new strings added, 0 updated, 0 fuzzed, and 0 deprecated.


= 5.1.0 =
Release date October 20th, 2022
* New: added SmartCropping, especially useful for eCommerce sites;
* New: if the WebP/AVIF files are larger than the JPG/PNG/GIF version, they are no longer generated to ensure that the smallest file is always delivered;
* Fix: various DB-related settings were adjusted for files with very long names and to keep AVIF/WebP optimization data correct;
* Fix: bulk processing history was lost when deleting the plugin;
* Fix: the file name in the bulk preview was added back;
* Fix: various situations and edge cases with WPML are now fixed;
* Fix: when a Custom Media item was excluded, there was no clear message next to it;
* Fix: added a check to prevent re-optimization when using bulk actions in the Media Library;
* Fix: the deactivation pop-up is also displayed in a multisite environment;
* Fix: minor wording and CSS fixes in the plugin settings and notifications;
* Fix: if there are still images to optimize and/or generate, all of them are counted and displayed correctly in the Media Library;
* Tweak: added check of necessary GD library functions to use PNG to JPG conversion;
* Compat: in some very special cases an error was triggered when the YITH Watermark Premium plugin was enabled;
* Language: 20 new strings added, 2 updated, 1 fuzzed, and 2 deprecated.

= EARLIER VERSIONS =
* please refer to the <a href="https://github.com/short-pixel-optimizer/shortpixel-image-optimiser/blob/master/changelog.txt" target="_blank">changelog.txt</a> file inside the plugin archive.

== Upgrade Notice ==

= 5.0.0 =

* BIG UPDATE: This version is a major rewrite of the plugin. We strongly suggest you take a FULL BACKUP (DATABASE and IMAGES) before upgrading because there are multiple changes in the code and the optimization information is stored in a different way starting with this version.

= 4.22.9 =

* This version contains a fix for the WP Offload Media plugin version 2.6.0 and above. Please ensure you're running the latest WP Offload Media plugin and check that everything works correctly after upgrading.
