Files
mataba/shop/docs/COMPATIBILITY.md
T

48 lines
2.5 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 (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.