48 lines
2.5 KiB
Markdown
48 lines
2.5 KiB
Markdown
# XShop – Compatibility
|
||
|
||
## 1. Tested Up To (M2: 2026-09-13)
|
||
|
||
| Dependency | Minimum | Tested |
|
||
|------------|---------|--------|
|
||
| WordPress | 6.4 | 7.1 (local XAMPP) |
|
||
| WooCommerce| 8.0 | 11.1.0 |
|
||
| PHP | 8.2 | 8.2.12 (XAMPP), 8.3 recommended per spec |
|
||
| Elementor | 3.15 (optional) | 3.2x |
|
||
| Gutenberg | WP bundled | — |
|
||
| Browsers | last 2 versions: Chrome, Firefox, Edge, Safari | Layout checked 360/768/1024/1280/1440 via CSS grid |
|
||
|
||
## 2. WordPress APIs Used
|
||
|
||
- Theme support: `add_theme_support('title-tag','post-thumbnails','html5','custom-logo','woocommerce'...)`
|
||
- Menus/sidebars/widgets: `register_nav_menus`, `register_sidebar`, `widgets_init`.
|
||
- Settings: `register_setting` + single option `xshop_settings` (Settings API).
|
||
- Customizer: `customize_register` for preview (typography/colours).
|
||
- REST: `register_rest_route` (namespace `xshop/v1`).
|
||
|
||
## 3. WooCommerce Integration (M2)
|
||
|
||
- Declared `add_theme_support('woocommerce')` + gallery features (`wc-product-gallery-zoom/lightbox/slider` now disabled via `remove_action` for custom gallery; can re-enable per ADR).
|
||
- Wrapper via `woocommerce_before_main_content` / `after_main_content` (`.xshop-main xshop-container .xshop-woo-layout`).
|
||
- Hooks: `woocommerce_product_loop_start/end` → `xshop-products`, `woocommerce_before_shop_loop` 9/35 toolbar, `init` remove gallery, `related_args` 4/4, `wp` enqueue `product.js` only on `is_product()`. Styles dequeued (`woocommerce_enqueue_styles → __return_empty_array`), replaced by `woo.css` (global, documented).
|
||
- Overrides (4, minimal, versioned): `content-product.php 3.6.0`, `archive-product.php 3.4.0`, `content-single-product.php 3.6.0`, `single-product.php 1.6.4`. See `ARCHITECTURE.md:11` for why/risks. Monitor `WC()->version` and template `Version:` header.
|
||
|
||
## 4. HPOS
|
||
|
||
- Uses `wc_get_products` CRUD, not direct post table writes. Compatible with High-Performance Order Storage. No direct `wp_posts` manipulation for orders.
|
||
|
||
## 5. Elementor
|
||
|
||
- Widgets registered via `\Elementor\Plugin::instance()->widgets_manager->register` if Elementor active. Namespaced `XShop\Core\Elementor\Widgets\*`. No hard dependency – `is_plugin_active` guard.
|
||
|
||
## 6. Gutenberg
|
||
|
||
- Block styles via `register_block_style`, theme.json opt-in later. No classic-editor dependency.
|
||
|
||
## 7. Multisite
|
||
|
||
- Not primary target; options are per-site (no network options in v1).
|
||
|
||
## 8. Upgrade Notes
|
||
|
||
- Template version bumps checked via `WC template version` comment. Override only where necessary; changelog notes any override update.
|