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 wizard
  • kit_studio_theme_mode — "light" or "dark" for designer studio theme
  • kit_api_url — Licensing portal URL
  • kit_api_secret — HMAC shared secret

Key Post Meta Keys

  • _kit_product_config — Stored on kit_product posts, 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