Files
mataba/shop/docs/COMPATIBILITY.md
T

47 lines
2.1 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# XShop – Compatibility
## 1. Tested Up To (M4: 2026-09-13)
| Dependency | Minimum | Tested |
|------------|---------|--------|
| WordPress | 6.4 | 7.1 |
| WooCommerce| 8.0 | 11.1.0 |
| PHP | 8.2 | 8.2.12, 8.3 recommended |
| Elementor | 3.15 (optional) | 3.2x |
| Gutenberg | WP bundled | — |
| Browsers | last 2 versions | 360/390/768/1024/1280/1440 via Playwright + CSS |
## 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 (M4)
- `add_theme_support('woocommerce')` + wrappers, loop `xshop-products`, toolbar, `product.js` conditional, `search.js`+`filter.js` front-end (DOM guard).
- REST: `xshop/v1/search` + `xshop/v1/products` (shared `ProductQuery`), HPOS via `wc_get_products`/`WP_Query`, no raw SQL.
- Overrides (4): `content-product.php 3.6.0`, `archive-product.php 3.4.0` (now with `xshop-shop` layout + `product-filters` sidebar/drawer + `pre_get_posts` no-JS fallback), `content-single-product.php 3.6.0`, `single-product.php 1.6.4`.
## 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.