Plugin Structure
The BallinKit Plugin follows a standard WordPress plugin architecture with clear separation between admin UI, frontend, API, and supporting utilities.
Directory Tree
wp-content/plugins/kit-customizer/
├── assets/
│ ├── css/
│ │ └── customizer.css # All frontend designer styles
│ ├── fonts/
│ │ └── fonts-manifest.json # Maps font slugs to filenames
│ ├── images/ # Plugin static images
│ ├── js/
│ │ └── customizer.js # Main designer JS (Fabric.js based)
│ └── products/ # Per-product asset directories
├── includes/
│ ├── class-admin.php # Admin panel (menus, forms, media)
│ ├── class-asset-optimizer.php # Image optimization utilities
│ ├── class-cache-manager.php # Preview image caching layer
│ ├── class-cart.php # WooCommerce cart integration
│ ├── class-composite.php # Server-side image compositing engine
│ ├── class-kit-customizer.php # Main plugin bootstrap class
│ ├── class-licensing.php # License validation and encryption
│ ├── class-order-handler.php # Order meta saving and print generation
│ ├── class-pricing-manager.php # Dynamic pricing calculations
│ ├── class-product-type.php # Custom WooCommerce product type
│ ├── class-rest-api.php # All REST API endpoints
│ ├── class-svg-sanitizer.php # SVG upload sanitization
│ ├── class-sync-dispatcher.php # Customer/product sync to licensing portal
│ └── class-webhook-dispatcher.php # WooCommerce event webhooks
├── templates/
│ └── customizer-template.php # Full-screen designer studio template
└── kit-customizer.php # Plugin entry point, constants, autoloader
Custom Post Types Registered
kit_product— Stores customizable product canvas configurations (private, no UI)kit_template— Pre-made design templates created by admin (appears in WP admin under KIT Designer)kit_design— User-saved design drafts (appears in WP admin under KIT Designer)
Key WordPress Options
kit_customizer_setup_complete— Boolean, set after initial setup wizardkit_studio_theme_mode— "light" or "dark" for designer studio themekit_api_url— Licensing portal URLkit_api_secret— HMAC shared secret
Key Post Meta Keys
_kit_product_config— Stored onkit_productposts, full canvas configuration array_kit_product_id— Stored on WooCommerce products/variations, references the kit_product post ID_kit_pricing_strategy— "feature", "view", or "area"_kit_design— Order item meta, JSON-encoded design payload_kit_fonts— Order item meta, JSON object of fonts used in design_kit_team_roster— Order item meta, JSON array of player entries