You are an expert WordPress plugin developer. Create a complete WordPress plugin boilerplate for: πŸ”Ή Plugin Name: Advanced Widget Kit for elementor πŸ”Ή Slug: pro-widget-kit πŸ”Ή Text Domain: pro-widget-kit πŸ”Ή Developer: Ainix IT (ainixit.com) This plugin extends Elementor with free widgets and a dashboard, while being extendable by a Pro add-on plugin. --- ## Requirements 1. **Folder Structure** pro-widget-kit/ β”‚ β”œβ”€β”€ pro-widget-kit.php β”œβ”€β”€ readme.txt β”œβ”€β”€ uninstall.php β”‚ β”œβ”€β”€ assets/ β”‚ β”œβ”€β”€ css/style.css β”‚ β”œβ”€β”€ js/script.js β”‚ └── images/ β”‚ β”œβ”€β”€ includes/ β”‚ β”œβ”€β”€ class-loader.php β”‚ β”œβ”€β”€ class-admin.php β”‚ β”œβ”€β”€ class-assets.php β”‚ β”œβ”€β”€ class-elementor.php β”‚ └── helpers.php β”‚ β”œβ”€β”€ widgets/ β”‚ β”œβ”€β”€ free/ β”‚ β”‚ β”œβ”€β”€ class-testimonial-widget.php β”‚ β”‚ β”œβ”€β”€ class-pricing-table-widget.php β”‚ β”‚ β”œβ”€β”€ class-button-widget.php β”‚ β”‚ β”œβ”€β”€ class-image-box-widget.php β”‚ β”‚ └── class-icon-list-widget.php β”‚ └── pro/ # Empty in free version β”‚ β”œβ”€β”€ templates/free/ β”‚ └── admin/ β”œβ”€β”€ views/dashboard.php └── css/js/ yaml Copy code --- 2. **Plugin Bootstrap (`pro-widget-kit.php`)** - Standard plugin header. - Load `includes/class-loader.php`. - Initialize admin dashboard, assets, Elementor integration. --- 3. **Includes** - `class-loader.php` β†’ Autoload classes. - `class-admin.php` β†’ Registers Dashboard menu + Upgrade CTA. - `class-assets.php` β†’ Enqueue CSS/JS. - `class-elementor.php` β†’ Integrates Elementor, registers free widgets. - `helpers.php` β†’ Utility functions. --- 4. **Widgets (Free)** Each widget must extend Elementor’s `\Elementor\Widget_Base`. Include: - **Button Widget** - **Testimonial Widget** - **Pricing Table (Basic)** - **Image Box with Hover** - **Icon List with Custom Icons** Each widget should: - Define `get_name()`, `get_title()`, `get_icon()`, `get_categories()`. - Register controls (`_register_controls`). - Render output (`render`). --- 5. **Dashboard (Admin)** - Admin page under β€œElementor β†’ Advanced Widget Kit”. - Dashboard UI in `admin/views/dashboard.php`. - Show: Installed version, active widgets, upgrade CTA. - Toggle switches to enable/disable widgets (store in options). --- 6. **Templates** - Add 2 demo Elementor section JSON templates in `/templates/free/`. - Provide import button in dashboard (basic implementation). --- 7. **Extendability for PRO** - Keep `/widgets/pro/` empty in Free version. - Add hooks so PRO plugin can inject widgets. - Dashboard should show locked widgets (with β€œUnlock in Pro”). --- 8. **Best Practices** - OOP, PSR-4 autoloading style. - Security: escape output, sanitize input. - Translation ready (`.pot`). - WP coding standards. --- ## Deliverables Generate the full **plugin boilerplate code** with: - `pro-widget-kit.php` - `class-loader.php` - `class-elementor.php` - One sample widget (`class-button-widget.php`) implemented fully. - Skeletons for other widgets. - Dashboard page (`dashboard.php`). - CSS/JS enqueue system.