2.5 KiB
2.5 KiB
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 optionxshop_settings(Settings API). - Customizer:
customize_registerfor preview (typography/colours). - REST:
register_rest_route(namespacexshop/v1).
3. WooCommerce Integration (M2)
- Declared
add_theme_support('woocommerce')+ gallery features (wc-product-gallery-zoom/lightbox/slidernow disabled viaremove_actionfor 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_loop9/35 toolbar,initremove gallery,related_args4/4,wpenqueueproduct.jsonly onis_product(). Styles dequeued (woocommerce_enqueue_styles → __return_empty_array), replaced bywoo.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. SeeARCHITECTURE.md:11for why/risks. MonitorWC()->versionand templateVersion:header.
4. HPOS
- Uses
wc_get_productsCRUD, not direct post table writes. Compatible with High-Performance Order Storage. No directwp_postsmanipulation for orders.
5. Elementor
- Widgets registered via
\Elementor\Plugin::instance()->widgets_manager->registerif Elementor active. NamespacedXShop\Core\Elementor\Widgets\*. No hard dependency –is_plugin_activeguard.
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 versioncomment. Override only where necessary; changelog notes any override update.