Australcode Uniform Images
Australcode Uniform Images

Australcode Uniform Images

0/5 (0 ratings) — active installs Updated Jun 22, 2026
<strong>Before / After</strong> — product photos with mismatched proportions get cropped and misaligned in the grid (left); Australcode pads them onto a uniform canvas so the full product shows and the grid lines up (right).

<strong>Before / After</strong> — product photos with mismatched proportions get cropped and misaligned in the grid (left); Australcode pads them onto a uniform canvas so the full product shows and the grid lines up (right).

Australcode Uniform Images solves the classic WooCommerce catalog problem: product photos with different proportions that the theme crops brutally to align the grid. This plugin makes them uniform without cropping — it adds smart padding over a colored canvas (white by default), optionally trims the uniform background first to normalize inconsistent margins, and delivers each thumbnail in AVIF + WebP + JPEG using the <picture> element.

Key differentiators

  • No accidental crops — the entire product fits inside the thumbnail, always. The plugin pads to a uniform canvas instead of guessing where to crop.
  • Real <picture> markup — multi-source with AVIF + WebP + JPEG fallback. Survives any page cache (LiteSpeed, WP Rocket, Cloudflare APO, W3 Total Cache) because it does not use Vary: Accept. The browser picks the optimal format; the cache serves HTML without negotiation.
  • 4-tier quality preset — Maximum / High / Standard / Economy with per-format values calibrated (e.g. Standard = AVIF Q60, WebP Q82, JPEG Q85 — visually indistinguishable from the original at half the size).
  • HPOS-ready from day one — declares custom_order_tables and cart_checkout_blocks compatibility without any setup.
  • Cloudflare Image Transformations (CIT) — optional integration to serve via Cloudflare edge (/cdn-cgi/image/format=auto) with automatic availability detection on your zone. If CIT is not enabled on your CF plan, the plugin keeps serving local derivatives without breaking anything.

Free (no license required)

  • Bulk regenerate with Action Scheduler — async processing resumable after worker death, error classification (oom, missing_original, engine_failed, fs_permission), scope filters (auto = products only based on Settings; all-used = every image referenced in posts/products/Bricks templates/terms).
  • Embedded sample test — processes 1-5 images on demand and shows the before/after grid with bytes and % savings. Available on the Settings page (“Quick preview”) and on Bulk regenerate (“Generate sample”).
  • Health page with CDN detection — engine diagnostics, encoders, filesystem permissions, detected competing plugins (Smush/EWWW/ShortPixel/Imagify), Cloudflare Polish status (alerts if active — incompatible with the plugin’s AVIF/WebP), Image Prioritizer (Performance Lab) status with automatic detection.
  • Extreme-padding detection — the Dashboard flags product images that get squared with a lot of empty canvas (panoramic or very tall photos) and a gentle, dismissible notice points you to how each aspect is handled. Detection is free; the per-aspect fix is a Pro upgrade.
  • WP-CLI — 9 commands — 7 free: wp acimg health, stats, regenerate, derivatives <id>, purge-cache (orphans; --stale/--all require Pro), restore-originals, migrate-from-sir. 2 Pro: wp acimg doctor (extended diagnostics) and wp acimg reset (full state reset).

Pro (license required)

  • Cloudflare Image Transformations (CIT) delivery — emits <img> with CIT URLs (/cdn-cgi/image/format=auto) instead of local derivatives when CIT is enabled on your zone. Defensive automatic fallback to the normal path if CIT is unavailable.
  • Media Library audit + cleanup — orphan image detector that understands Bricks Builder (PHP serialize), wp_termmeta, WooCommerce shortcodes, custom meta. Trash mode with typed confirmation, immutable audit log, and an untrash endpoint for rollback.
  • Image Health Monitor — weekly cron that scans for missing derivatives, stale derivatives, Cloudflare Polish conflicts, and storage usage. Email digest to the admin only when there are actionable findings.
  • AI Alt Text BYOK — alt text generation per attachment via OpenAI Vision (gpt-4o-mini) or Anthropic Vision (claude-haiku-4-5). Bring Your Own Key (no Merchant of Record over AI costs). Context enrichment with WooCommerce product title + category + brand.
  • Catalog Watch + Auto-Heal — daily cron that detects ghost derivatives (DB rows without files), orphan files (files without DB rows), products with broken thumbnails. Auto-heal with dry-run preview + strict path validation. Persistent admin notice when there are actionable issues.
  • Multi-Site Manager (Agency) — centralized dashboard to monitor up to 25 client sites from a single wp-admin. BYO Application Password, aggregated metrics (derivatives + bytes + issues), automatic hourly sync + ad-hoc. No external services: direct wp-admin wp-admin communication via native REST.
  • CIT Cost Analyzer — daily pull from Cloudflare GraphQL Analytics API. MTD cost + monthly projection + peak day to identify spikes. BYO API token (CF authenticates directly).
  • Per-aspect-ratio override — within a single WordPress size, process each aspect ratio (1:1, 4:3, 16:9, vertical, horizontal) differently: uniform with canvas, proportional without cropping, or skip. Keep square photos proportional while the rest follow the base mode. Wired into upload + bulk regeneration + derivative invalidation. (This is the fix for the extreme-padding the free Dashboard flags below.)

Integration with other plugins

  • Image Prioritizer / Performance Lab — Australcode Uniform Images detects fetchpriority="high" and propagates correct loading/decoding to the final <picture>. Native LCP optimization.
  • Bricks Builder — supports wp_get_attachment_image and optional output buffer rewriter for themes/page builders that bypass that filter.
  • WP Rocket / a3 Lazy Load — compatible with data-src/data-sizes lazy loaders (reads both if present).

v1.0 non-goals

  • Smart crop — would break the “no cropping” promise. If you need that, this plugin is not for you.
  • SaaS-only / phone home — the plugin is 100% local. All optimization happens on your own server.
  • JPEG XL — format still immature in browsers. We will reevaluate in 2027.

Why this approach

  • Padded canvas, never cropped — every thumbnail pads the product onto a uniform canvas, so the full product is always visible. No subject-guessing, no accidental crops.
  • <picture> element, cache-safe by design — AVIF + WebP + JPEG fallback served without Vary: Accept, so it survives any HTTP page cache (LiteSpeed, WP Rocket, Cloudflare APO, W3 Total Cache). The browser picks the format; the cache serves one HTML.
  • AVIF + WebP + JPEG, all free — modern formats are part of the free core, not a paid add-on.
  • Unlimited bulk on Free — regenerate your whole catalog with no image cap and no monthly credit quota.
  • 100% local — all processing happens on your own server. No SaaS, no phone-home, your images never leave the site.
  • Built for WooCommerce grids — reads wp_get_registered_image_subsizes() and respects the WC thumbnail-cropping setting, so it targets exactly the product sizes your theme uses.

Australcode Uniform Images does one job: uniform product thumbnails for WooCommerce grids, served cache-safe. It only touches images on registered WooCommerce sizes, so it coexists with any general image optimizer you already run.

External services

This plugin connects to external services only when you explicitly enable or
use the corresponding optional feature
. The free, core functionality (uniform
images, AVIF/WebP/JPEG <picture>, bulk regenerate, health) runs 100% on your
own server and contacts no external service
.

Freemius (account, licensing & secure checkout)

Australcode uses Freemius as its billing and licensing platform (Freemius is the
Merchant of Record for Pro purchases). Connecting to Freemius is optional: on
activation you can click “Skip” and the plugin stays fully functional without
ever contacting Freemius.

  • If you opt in (free or Pro), the plugin sends your admin email, site
    URL
    and basic environment data (WordPress, PHP and plugin versions) to the
    Freemius API (host api.freemius.com, path /v1/) to create your account and
    check for updates.
  • If you activate a Pro license, the plugin sends your license key and
    site domain to Freemius to validate the license and enforce the per-plan
    site limit. The license is re-validated periodically.
  • Purchases and license management happen on Freemius-hosted pages
    (hosts freemius.com, users.freemius.com).

No data is sent to Freemius if you skip the opt-in and do not enter a license key.

  • Terms of Service: https://freemius.com/terms/
  • Privacy Policy: https://freemius.com/privacy/

OpenAI / Anthropic (AI Alt Text — Pro, Bring Your Own Key)

If you enable AI Alt Text and provide your own API key, the plugin sends the
image (as a base64 data URI) plus the related WooCommerce product context
(title, category, brand) to the provider you choose, to generate alt text:

  • OpenAI Vision (gpt-4o-mini) — host api.openai.com, path /v1/chat/completions
    • Terms: https://openai.com/policies/terms-of-use
    • Privacy: https://openai.com/policies/privacy-policy
  • Anthropic Vision (claude-haiku-4-5) — host api.anthropic.com, path /v1/messages
    • Terms: https://www.anthropic.com/legal/consumer-terms
    • Privacy: https://www.anthropic.com/legal/privacy

This runs only when you trigger alt text generation and only with the key you
supply. The plugin is not a Merchant of Record for these AI costs (BYOK).

Cloudflare (Image Transformations + Cost Analyzer — Pro)

If you enable Cloudflare Image Transformations (CIT), image URLs of your own
site are served through Cloudflare’s edge (/cdn-cgi/image/...) so Cloudflare can
transform them on-demand. If you enable the CIT Cost Analyzer, the plugin
queries the Cloudflare GraphQL Analytics API
(host api.cloudflare.com, path /client/v4/graphql) with the API token you provide
and your zone identifier, to report usage and cost. The plugin also performs a
HEAD request to one of your own derivative URLs to detect whether CIT and
Cloudflare Polish are active on your zone (no third-party data is sent in that
detection).

  • Terms of Service: https://www.cloudflare.com/terms/
  • Privacy Policy: https://www.cloudflare.com/privacypolicy/