This file provides guidance to Claude Code (claude.ai/code) when working with code in this repository.
A WooCommerce extension plugin ("QDR - Studiou WC Custom Reports") that adds custom reporting pages under the WooCommerce admin menu. Currently provides a "Product Categories and Variants Summary" report with CSV export. Requires WordPress 6.8.1+, PHP 8.2+, WooCommerce 9.0+.
This is a WordPress plugin — there is no build step, linter, or test runner. Development is done by deploying to a WordPress installation with WooCommerce active. Enable WP_DEBUG in wp-config.php to see debug logging (prefixed [Studiou Debug] and [Studiou WC Custom Reports]).
Autoloading convention: Classes prefixed StudiouWC_ are autoloaded from includes/. The class StudiouWC_Foo_Bar maps to includes/class-foo-bar.php. This is implemented via spl_autoload_register in the main plugin file.
Wiring: StudiouWC_Main is the entry point — it instantiates all services and registers WordPress/WooCommerce hooks. Dependencies flow via constructor injection: DB_Manager and Settings_Manager are created first, then passed into Admin_View and Export_Handler.
Dual query paths (HPOS): DB_Manager contains two versions of every SQL query — one for WooCommerce HPOS (High-Performance Order Storage using wc_orders table) and one for the legacy wp_posts-based order storage. The is_hpos_enabled() method selects the path at runtime. When modifying queries, both paths must be updated.
Report extensibility: New report types are added through Report_Factory. The current only type is product_categories_summary. To add a new type: create a report class, register it in Report_Factory::create_report(), add DB methods in DB_Manager, and add the option to the view dropdown in Admin_View.
Settings: Stored as a single WordPress option (studiou_wc_custom_reports_settings) managed by Settings_Manager. Settings are saved via AJAX (wp_ajax_studiou_save_settings). Default statuses include the custom status wc-to-print.
Property/variant columns: The report dynamically generates columns based on WooCommerce product attribute taxonomies (e.g., pa_format). The selected attribute is configured in settings as default_property. Property values are resolved from attribute_pa_{property} post meta on variation products.
Defined in studiou-wc-custom-reports.php:
STUDIOU_WC_CUSTOM_REPORTS_TEXT_DOMAIN — 'studiou-wc-custom-reports'STUDIOU_WC_CUSTOM_REPORTS_VERSION — current version stringText domain: studiou-wc-custom-reports. Translation files go in languages/. Czech translation (cs_CZ) exists. All user-facing strings use __() / _e() with the text domain constant.
studiou-custom-reports) — main report page with filters and data tablestudiou-reports-settings) — configuration page for defaults