# OMR Reviews composite badge strip (shield row)

**Last updated:** 2026-04-08

## Single source of truth

- **Data:** [`v2/data/omr-review-badges.php`](../../../v2/data/omr-review-badges.php) — `composite_src`, dimensions, `alt_de`, `omr_profile_url`, `badge_period_label`, optional `composite_srcset` / `sizes`.
- **Loader helper:** [`v2/helpers/omr-review-badges.php`](../../../v2/helpers/omr-review-badges.php) — `ordio_omr_review_badges_data()` (cached `require`).
- **Markup partial:** [`v2/sections/partials/omr-review-badges-strip.php`](../../../v2/sections/partials/omr-review-badges-strip.php) — wraps the strip in a link to `omr_profile_url` (new tab). Set `$omr_badges_omit_link = true` before include only if legal/marketing requires an unlinked image.

### Not the same as logo / review tiles

| Pattern | Use when | Assets / code |
|--------|----------|----------------|
| **Composite shield strip** (this doc) | Hero or section showing OMR award badges as one raster strip | `omr-review-badges.php` + `omr-review-badges-strip.php` |
| **Google + OMR logo tiles** | “Social proof trust” cards with star lines and platform logos | [`v2/data/social-proof-trust-section.php`](../../../v2/data/social-proof-trust-section.php) + [`v2/sections/social-proof-trust-card.php`](../../../v2/sections/social-proof-trust-card.php) |

Do not hardcode `/html/images/static/omr-badges-*.webp` in PHP pages; change `composite_src` in the data file only.

### Shared rating rows (Google + OMR)

[`v2/sections/partials/omr-reviews-rating-tiles.php`](../../../v2/sections/partials/omr-reviews-rating-tiles.php) expects `$omr_ratings_spt` (same shape as `social-proof-trust-section.php` `google` / `omr` keys). Used on `/preise` (inside the ausgezeichnet block), paid landers, etc.

### Full “Ausgezeichnete Bewertungen” block (`/preise`)

[`v2/sections/partials/omr-reviews-ausgezeichnet-section.php`](../../../v2/sections/partials/omr-reviews-ausgezeichnet-section.php) — requires `$omr_reviews_section_spt`; includes rating tiles + badge strip + CTAs.

## CSS

- Rules for `.omr-review-badges-strip__link` and `.omr-review-badges-strip__img` live in [`v2/css/pricing-page.css`](../../../v2/css/pricing-page.css), [`v2/css/testimonials-page.css`](../../../v2/css/testimonials-page.css), and [`v2/css/product-pages.css`](../../../v2/css/product-pages.css) (e.g. `/einladung`).
- Standalone [`v2/css/omr-review-badges.css`](../../../v2/css/omr-review-badges.css) + minified file is linked on legacy pages that do not load those bundles (e.g. old pricing/customers PHP).

After editing any `v2/css/*.css`, run `npm run minify`.

## Quarterly / asset update checklist

1. Obtain the new composite strip from OMR (WebP or other raster); place under `html/images/static/` (or adjust `composite_src` if stored under `/v2/img/...`).
2. Update `width` / `height` in `omr-review-badges.php` to match the file (CLS).
3. Update `alt_de` so it matches what the image shows.
4. Set `badge_period_label` (e.g. `Q1/2026`) for editorial copy; align italic “Die beste Schichtplanung” lines that reference OMR Reviews.
5. Run `php v2/scripts/dev-helpers/verify-omr-review-badges.php`.
6. Confirm OMR Success Hub / licensing for on-site use.

## Source SVG (optional)

Add or maintain OMR-related vectors under `v2/img/omr/` for **re-exporting** the composite or documentation; runtime delivery remains the optimized raster from `composite_src` unless you deliberately switch to SVG.

## Verification script

`php v2/scripts/dev-helpers/verify-omr-review-badges.php` — validates data keys, warns if the raster file is missing locally, and fails if the legacy filename string is still embedded in `v2/pages` or `v2/sections` PHP (outside the data file).
