Files
mataba/shop/docs/COMPATIBILITY.md
T

2.5 KiB
Raw Blame History

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.