{"id":371972,"date":"2026-09-24T18:22:18","date_gmt":"2026-09-24T18:22:18","guid":{"rendered":"https:\/\/wordpress.org\/plugins\/webp-library-optimizer-for-woocommerce\/"},"modified":"2026-09-24T18:29:42","modified_gmt":"2026-09-24T18:29:42","slug":"dyadikosnous-media-converter-for-woocommerce","status":"publish","type":"plugin","link":"https:\/\/wordpress.org\/plugins\/dyadikosnous-media-converter-for-woocommerce\/","author":23569804,"comment_status":"closed","ping_status":"closed","template":"","meta":{"version":"1.1.7","stable_tag":"1.1.7","tested":"7.1.2","requires":"6.2","requires_php":"7.4","requires_plugins":null,"header_name":"Dyadikosnous Media Converter","header_author":"dyadikosnous","header_description":"Transactionally reduces Media Library disk usage with WebP conversion, URL rewriting, and unused-media auditing.","assets_banners_color":"","last_updated":"2026-09-24 18:29:42","external_support_url":"","external_repository_url":"","donate_link":"","header_plugin_uri":"","header_author_uri":"https:\/\/profiles.wordpress.org\/dyadikosnous\/","rating":0,"author_block_rating":0,"active_installs":0,"downloads":49,"num_ratings":0,"support_threads":0,"support_threads_resolved":0,"author_block_count":0,"sections":["description","installation","faq","changelog"],"tags":{"1.1.6":{"tag":"1.1.6","author":"dyadikosnous","date":"2026-09-24 18:21:48","revision":3711856},"1.1.7":{"tag":"1.1.7","author":"dyadikosnous","date":"2026-09-24 18:29:42","revision":3711865}},"upgrade_notice":[],"ratings":[],"assets_icons":{"icon-128x128.png":{"filename":"icon-128x128.png","revision":3711856,"resolution":"128x128","location":"assets","locale":"","width":128,"height":128},"icon-256x256.png":{"filename":"icon-256x256.png","revision":3711856,"resolution":"256x256","location":"assets","locale":"","width":256,"height":256}},"assets_banners":[],"assets_blueprints":{},"all_blocks":[],"tagged_versions":["1.1.6","1.1.7"],"block_files":[],"assets_screenshots":[],"screenshots":[]},"plugin_section":[],"plugin_tags":[163,233,187,15376,286],"plugin_category":[45,50,52],"plugin_contributors":[282550],"plugin_business_model":[],"class_list":["post-371972","plugin","type-plugin","status-publish","hentry","plugin_tags-images","plugin_tags-media-library","plugin_tags-optimization","plugin_tags-webp","plugin_tags-woocommerce","plugin_category-ecommerce","plugin_category-media","plugin_category-performance","plugin_contributors-dyadikosnous","plugin_committers-dyadikosnous"],"banners":[],"icons":{"svg":false,"icon":"https:\/\/ps.w.org\/dyadikosnous-media-converter-for-woocommerce\/assets\/icon-128x128.png?rev=3711856","icon_2x":"https:\/\/ps.w.org\/dyadikosnous-media-converter-for-woocommerce\/assets\/icon-256x256.png?rev=3711856","generated":false},"screenshots":[],"raw_content":"<!--section=description-->\n<p>Dyadikosnous Media Converter works as a standalone WordPress Media Library tool; WooCommerce is optional. When WooCommerce is active, product, gallery, variation, order-meta, image-size, cache, and HPOS compatibility integrations are enabled automatically.<\/p>\n\n<p>It provides three deliberate workflows:<\/p>\n\n<ul>\n<li>A resumable library conversion with a progress bar.<\/li>\n<li>Automatic optimization after new image uploads.<\/li>\n<li>A conservative unused-attachment audit followed by explicit trash or permanent deletion.<\/li>\n<\/ul>\n\n<p>The converter keeps the existing attachment ID, so featured images, page-builder media, taxonomy images, and\u2014when WooCommerce is active\u2014product galleries and variation images continue to resolve normally. It regenerates every image size currently registered by WordPress, the theme, and active plugins. Literal old URLs are replaced in pages, posts, custom post types, taxonomy descriptions and metadata, options, JSON, PHP-serialized builder data, and eligible custom prefixed tables.<\/p>\n\n<p>The 1 MB limit is enforced on the full WebP and all generated sizes. Encoding begins at the preferred quality, lowers quality to the configured floor, then reduces dimensions if necessary.<\/p>\n\n<p>A conversion is committed only when the complete resulting attachment family uses less disk space than the existing family. Equal-size or larger results are rolled back and reported as failures, leaving the original attachment unchanged.<\/p>\n\n<p>Unlike format-only converters, the plugin measures the full attachment family\u2014including every registered WordPress, theme, builder, and optional WooCommerce size\u2014before committing a conversion. It also preserves attachment IDs, safely rewrites literal URLs in structured data, and provides a conservative unused-media audit in the same resumable workflow.<\/p>\n\n<h3>Important safety notes<\/h3>\n\n<ul>\n<li>Make a verified database and uploads backup first.<\/li>\n<li>Test the complete workflow on staging before production.<\/li>\n<li>Purge page, object, builder, CDN, and reverse-proxy caches after a batch.<\/li>\n<li>The plugin processes WordPress Media Library attachments. It does not rename theme\/plugin assets or remote images that WordPress does not own.<\/li>\n<li>An unused scan cannot see references hard-coded in PHP, held by a remote service, or stored in an inaccessible external system. Ambiguous scans are marked Review and excluded from bulk deletion.<\/li>\n<li>Animated GIF protection is enabled by default because common WordPress image editors can flatten animations.<\/li>\n<\/ul>\n\n<!--section=installation-->\n<ol>\n<li>Copy this folder into <code>wp-content\/plugins\/<\/code> or upload its ZIP in Plugins &gt; Add New.<\/li>\n<li>Activate the plugin.<\/li>\n<li>Confirm that the \u201cWebP ready\u201d indicator appears under Media &gt; Dyadikosnous Media.<\/li>\n<li>Review Settings, take a backup, then start the optimizer.<\/li>\n<\/ol>\n\n<!--section=faq-->\n<dl>\n<dt id=\"does%20this%20require%20woocommerce%3F\"><h3>Does this require WooCommerce?<\/h3><\/dt>\n<dd><p>No. The plugin activates and processes WordPress Media Library images without WooCommerce. It scans pages, posts, custom post types and taxonomies, blocks, builder data, options, metadata, and eligible custom tables. WooCommerce-specific product, gallery, variation, order-meta, cache, and HPOS behavior is enabled only when WooCommerce is installed and active.<\/p><\/dd>\n<dt id=\"does%20this%20support%20woocommerce%20products%20and%20variations%3F\"><h3>Does this support WooCommerce products and variations?<\/h3><\/dt>\n<dd><p>Yes. WooCommerce stores its main product, gallery, and variation images as Media Library attachment IDs. Those IDs are not changed. WooCommerce image sizes are regenerated from the new WebP file.<\/p><\/dd>\n<dt id=\"is%20the%20plugin%20compatible%20with%20high-performance%20order%20storage%20%28hpos%29%3F\"><h3>Is the plugin compatible with High-Performance Order Storage (HPOS)?<\/h3><\/dt>\n<dd><p>Yes. The plugin declares HPOS compatibility. It operates on Media Library attachments and preserves their IDs; it does not read or write WooCommerce order storage.<\/p><\/dd>\n<dt id=\"what%20does%20%E2%80%9Cpreserve%20the%20uploaded%20original%E2%80%9D%20keep%3F\"><h3>What does \u201cPreserve the uploaded original\u201d keep?<\/h3><\/dt>\n<dd><p>It keeps one source master for recovery. Superseded JPEG\/PNG\/GIF thumbnail files are removed. Turning the setting off on a later optimization removes source masters previously retained by this plugin.<\/p><\/dd>\n<dt id=\"is%20every%20output%20guaranteed%20to%20be%20below%201%20mb%3F\"><h3>Is every output guaranteed to be below 1 MB?<\/h3><\/dt>\n<dd><p>Successful conversions are strictly below 999,000 bytes. If the configured safeguards cannot reach that size, the item fails and its original attachment metadata remains in place.<\/p><\/dd>\n<dt id=\"can%20a%20successful%20conversion%20increase%20disk%20usage%3F\"><h3>Can a successful conversion increase disk usage?<\/h3><\/dt>\n<dd><p>No. The plugin compares the complete existing and proposed attachment families before deleting or rewriting anything. A proposed WebP family that is not smaller is removed, and the original attachment remains unchanged.<\/p><\/dd>\n<dt id=\"can%20i%20close%20the%20browser%3F\"><h3>Can I close the browser?<\/h3><\/dt>\n<dd><p>The current sequence pauses when the page closes. Open the page and start the same job type again to resume the active job. Each completed attachment remains completed.<\/p><\/dd>\n\n<\/dl>\n\n<!--section=changelog-->\n<h4>1.1.7<\/h4>\n\n<ul>\n<li>Publish a maintenance release through the WordPress.org update channel.<\/li>\n<\/ul>\n\n<h4>1.1.6<\/h4>\n\n<ul>\n<li>Make WooCommerce optional so the plugin activates and processes the WordPress Media Library on non-WooCommerce sites.<\/li>\n<li>Keep product, variation, order-meta, image-cache, and HPOS integrations conditional on WooCommerce being active.<\/li>\n<li>Add taxonomy-description URL replacement and integration coverage for pages, posts, custom post types, builders, and custom taxonomy metadata.<\/li>\n<\/ul>\n\n<h4>1.1.5<\/h4>\n\n<ul>\n<li>Declare compatibility with WooCommerce High-Performance Order Storage (HPOS).<\/li>\n<li>Verify the compatibility registration against WooCommerce during integration testing.<\/li>\n<\/ul>\n\n<h4>1.1.4<\/h4>\n\n<ul>\n<li>Rename the plugin and slug to a distinctive, trademark-safe identity for WordPress.org review.<\/li>\n<li>Align the main filename and translation domain with the requested slug.<\/li>\n<li>Declare WooCommerce as a plugin dependency and correct the contributor username.<\/li>\n<\/ul>\n\n<h4>1.1.3<\/h4>\n\n<ul>\n<li>Roll back a conversion when its complete WebP family would not reduce disk usage.<\/li>\n<li>Keep the original attachment, metadata, MIME type, and files unchanged after a size-reduction rejection.<\/li>\n<\/ul>\n\n<h4>1.1.2<\/h4>\n\n<ul>\n<li>Report a net storage increase instead of incorrectly flattening it to \u201c0 B saved\u201d.<\/li>\n<li>Refresh filesystem size information after replacing generated images so savings use current file sizes.<\/li>\n<\/ul>\n\n<h4>1.1.1<\/h4>\n\n<ul>\n<li>Align the text domain, main plugin filename, and package directory with the final WordPress.org plugin slug.<\/li>\n<\/ul>\n\n<h4>1.1.0<\/h4>\n\n<ul>\n<li>Prepare the plugin for WordPress.org with a compliant slug, text domain, package metadata, and unique code prefix.<\/li>\n<li>Replace discouraged filesystem calls and harden preserved-original path validation.<\/li>\n<li>Improve admin accessibility, JavaScript internationalization, and release packaging.<\/li>\n<\/ul>\n\n<h4>1.0.2<\/h4>\n\n<ul>\n<li>Remove the direct PHP logging call from AJAX recovery so restricted hosting environments cannot turn diagnostics into a fatal error.<\/li>\n<li>Skip opaque serialized plugin objects whose PHP class is unavailable, preventing incomplete-object failures without corrupting third-party data.<\/li>\n<\/ul>\n\n<h4>1.0.1<\/h4>\n\n<ul>\n<li>Show actionable HTTP, session, timeout, network, WordPress, and PHP processing errors instead of a generic request failure.<\/li>\n<li>Recover WordPress JSON when another component prints a PHP notice or warning before it.<\/li>\n<\/ul>\n\n<h4>1.0.0<\/h4>\n\n<ul>\n<li>Initial release.<\/li>\n<\/ul>","raw_excerpt":"Shrinks complete media families transactionally, preserves attachment IDs, rewrites URLs, and audits unused images.","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin\/371972","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin"}],"about":[{"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/types\/plugin"}],"replies":[{"embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/comments?post=371972"}],"author":[{"embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wporg\/v1\/users\/dyadikosnous"}],"wp:attachment":[{"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/media?parent=371972"}],"wp:term":[{"taxonomy":"plugin_section","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_section?post=371972"},{"taxonomy":"plugin_tags","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_tags?post=371972"},{"taxonomy":"plugin_category","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_category?post=371972"},{"taxonomy":"plugin_contributors","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_contributors?post=371972"},{"taxonomy":"plugin_business_model","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_business_model?post=371972"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}