Skip to content

V4 WooCommerce Store#82

Merged
jasperf merged 27 commits into
mainfrom
feature/sync-v4-woocommerce-store
May 13, 2026
Merged

V4 WooCommerce Store#82
jasperf merged 27 commits into
mainfrom
feature/sync-v4-woocommerce-store

Conversation

@jasperf

@jasperf jasperf commented May 12, 2026

Copy link
Copy Markdown
Contributor

This branch delivers a comprehensive WooCommerce store integration for the Elayne block theme, adding 26 new WooCommerce-specific patterns, 5 new templates, a full suite of block-style CSS files, the Jost variable font, and product placeholder image assets — establishing a complete FSE-based store vertical. Alongside the store feature, the CI pipeline is modernised to use pt-cli's three-pass compliance workflow with PHP 8.4, a product gallery lightbox is introduced via a custom product-image.php template override, and the register_block_type() ticker is refactored to use the render_block filter to comply with WP.org plugin-territory rules. Additional work includes a new spa vertical (7 patterns), a legal-about-intro pattern, a rename of blog-post-columns.php to blog-post-columns-landscape.php for naming consistency, and a wide-ranging monorepo sync that updates the majority of existing patterns and aligns CLAUDE.md, vibe config, and AGENTS.md with current toolchain guidance.

WooCommerce Store Vertical:

  • Added 26 patterns under patterns/woocommerce/ covering the full purchase funnel: hero, shop landing, category hero, category toolbar, shop categories grid, filters sidebar, featured products, product top section, add-to-cart section, gallery, trust badges, variations, colour swatches, engraving option, style options, accordion tabs, mobile ATC bar, related products, cart, checkout, newsletter, our-story, testimonials, and ticker.
  • Introduced 5 new templates (archive-product-store.html, taxonomy-product_cat-store.html, single-product.html, taxonomy-product_cat.html, archive-product-spa.html) and a styles/store.json style variation, with base templates made distributable and demo-store demo variants kept separate per the three-tier WooCommerce strategy.
  • Added 10 dedicated block-style CSS files (elayne-category-hero.css, elayne-category-products.css, elayne-category-toolbar.css, elayne-shop-filters-sidebar.css, elayne-ticker.css, elayne-woo-categories-grid.css, elayne-woo-newsletter-search.css, elayne-woo-our-story-watermark.css, elayne-avatar-circle.css) plus a global assets/styles/woocommerce.css, all registered via wp_enqueue_block_style() for zero-cost loading on non-store pages.
  • Bundled the Jost v20 variable font (regular and italic) in assets/fonts/store/, 11 CC0-compatible product placeholder images, 4 store SVG icons, and added assets/js/category-filter-drawer.js and assets/js/woocommerce-product-page.js for drawer and product-page interactivity.

Bug Fixes and Compliance:

  • Replaced register_block_type() usage for the ticker block with a render_block filter on core/group blocks identified by className, resolving a WP.org plugin-territory violation documented in CLAUDE.md.
  • Fixed WCAG skip-link focus state, corrected WPCS errors in functions.php and the product-image.php template override, resolved a spurious closing </div> in legal-team.php, and applied CSS fixes for product image specificity, button full-width display, and category toolbar sticky positioning.

CI Pipeline and Toolchain:

  • Replaced the inline PHP compliance checker in .github/workflows/pattern-compliance.yml with the pt-cli three-pass workflow (Gutenberg structural validator → pt-cli compliance checker → HTML template checker) and bumped the runner PHP version to 8.4.
  • Upgraded the composer.json dependency from elayne-cli to pt-cli v2, adding layout:create and check Composer scripts, and added a scripts/rebuild-demo.php WP-CLI utility (excluded from WP.org distribution via .distignore) for rebuilding demo pages from pattern PHP files in a live WP context.

Pattern Library Expansion and Sync:

  • Added a spa vertical with 7 new patterns (spa-articles-intro.php, spa-beauty-intro.php, spa-book-intro.php, spa-overlapping-feature-columns.php, spa-overlapping-feature-columns-reversed.php, spa-wellness-posts.php) and a new legal-about-intro.php pattern, raising the documented pattern count to 140+.
  • Performed a broad monorepo sync updating approximately 60 existing patterns, aligning CLAUDE.md with current toolchain rules (border-radius presets, custom block type rule, pt-cli workflow), and syncing AGENTS.md and vibe config/prompts from the monorepo.

Files Changed:

Dependency lock files updated: composer.lock,

jasperf added 9 commits May 12, 2026 18:07
…pass workflow

- Remove 400-line stale inline PatternComplianceChecker class
- Pass 2: pt-cli check patterns/ --theme=elayne (all patterns, not just changed)
- Pass 3a: pt-cli check:templates templates/ --theme=elayne
- Pass 3b: pt-cli check:templates parts/ --theme=elayne
- Note Pass 1 (wp pattern validate) is local-only — requires live WP database
- Bump PHP from 8.0 to 8.2
…tyles

Introduces the Elayne WooCommerce store vertical (v4.0.0):
- patterns/woocommerce/: hero, shop categories, featured products, ticker,
  our story, newsletter, category hero/toolbar, filters sidebar, cart,
  checkout, product top/gallery/variations/color-swatches/style-options/
  accordion-tabs/atc-section/engraving/trust-badges/mobile-atc-bar/related
- templates/: archive-product, archive-product-spa, single-product, taxonomy-product_cat
- styles/store.json: Store style variation (Jost font, teal palette)
- assets/fonts/store/: Jost variable fonts
- assets/js/: category-filter-drawer, woocommerce-product-page
- assets/styles/woocommerce.css + block-styles/elayne-{ticker,avatar-circle,
  category-hero,category-products,category-toolbar,shop-filters-sidebar,
  woo-categories-grid,woo-newsletter-search,woo-our-story-watermark}.css
- patterns/images/store/: leather-bag hero + 10 product placeholders + 4 SVG icons
- patterns/images/fandb/: Facebook and Instagram outline SVG icons
…blog columns

- Add spa-articles-intro, spa-beauty-intro, spa-book-intro, spa-wellness-posts,
  spa-overlapping-feature-columns, spa-overlapping-feature-columns-reversed
- Add legal-about-intro attorney profile intro section
- Add blog-post-columns-landscape (renamed from blog-post-columns.php)
Unbalanced tags: 9 opening, 10 closing divs. Extra </div> was at the
end of the alignwide grid group with no matching opening tag.
@jasperf jasperf changed the title Feature/sync V4 Woocommerce Store V4 Woocommerce Store May 12, 2026
jasperf added 17 commits May 12, 2026 18:26
- Rename loop variable $id to $gallery_id (avoids WordPress global override)
- Put <?php on its own line in all multi-line embedded PHP blocks
- Put ?> at correct indentation inside foreach scope
- Restructure endforeach blocks to separate PHP close tags
- Add missing doc comment for elayne_enqueue_category_filter_drawer()
- Add full stop to inline comment
- Replace short array syntax [] with array() in register_block_type calls
Lock file requires symfony/string >=8.4; --dev is deprecated in Composer 2
(dev deps installed by default).
WP.org theme guidelines prohibit registering custom block types in themes
(plugin territory). Replace elayne/product-attributes-table and
elayne/shipping-returns-content block registrations with render_block
filters on core/group blocks identified by specific classNames.
Replace blue outline/shadow with high-contrast white outline and black
box-shadow ring, meeting WCAG focus indicator visibility requirements.
Document that register_block_type() must not be used in themes per
WP.org plugin-territory guidelines; use render_block filter instead.
Width:100 + centred alignment on product-button block in archive-product.html,
archive-product-spa.html, and taxonomy-product_cat.html so the ATC button
spans the full card width consistently across all product archive views.
…clear-filters styles

- Add .elayne-clear-filters-btn styles (uppercase, orange, hover-to-primary) for the
  JS-injected sidebar clear link
- Raise product image selector to 3-class specificity (0,3,0) so the custom 3/4
  aspect-ratio beats WooCommerce's default 1/1 rule at (0,2,0)
- Update hover selector from .wc-block-grid__product to .wc-block-product
- Change product button from text-align:left to width:100%; add display:block on link
Commented out position:sticky on .is-style-elayne-category-toolbar — sticky
header was conflicting with page scroll behaviour; top/z-index values retained
for when it is re-enabled.
- Bump pattern count from 110/103 to 140+ in README.md and readme.txt
- Add WooCommerce Store vertical description (24 patterns) in README and readme.txt
- Update template count from 14 to 17
- Add CHANGELOG entries for: elayne-clear-filters-btn CSS, CC0 product placeholder
  images, product button full-width change, and image selector specificity fix
…variants

Convert archive-product.html and taxonomy-product_cat.html to ship
unconfigured attribute filter placeholders (Ollie pattern — no hardcoded
attributeIds) and add a rating filter; add demo-store-specific variants
(archive-product-store.html, taxonomy-product_cat-store.html) with
pre-wired Leather Colour/Style/Features attribute filters pushed to the
store DB via the rebuild script. Update docs and changelog accordingly.
Full-screen overlay with prev/next navigation, keyboard (Escape/arrows)
and backdrop-click to close. Lightbox is appended to <body> at init to
avoid ancestor stacking-context clipping.
@jasperf jasperf changed the title V4 Woocommerce Store V4 WooCommerce Store May 13, 2026
@jasperf
jasperf merged commit 8c40c60 into main May 13, 2026
3 checks passed
@jasperf
jasperf deleted the feature/sync-v4-woocommerce-store branch May 13, 2026 06:44
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant