WP User Frontend (WPUF) is a frontend content management plugin for WordPress. It allows users to create, edit, and delete posts, pages, or custom post types from the frontend — without ever accessing the WordPress admin. Version 4.2.10. Requires PHP 5.6+.
Key capabilities: frontend post submission forms, user registration/login forms, frontend user dashboard, subscription/payment plans, guest posting, content restriction, and AI-powered form building.
The .claude/skills/ directory contains procedural HOW-TO instructions:
wpuf-backend-dev— Backend PHP conventions: namespaces, container, hooks, REST controllers. Invoke before writing any PHP code or tests.wpuf-dev-cycle— Testing and linting workflows (PHPCS, Playwright E2E)wpuf-frontend-dev— Frontend conventions: Vue 3, Vite, Tailwind CSS, Pinia storeswpuf-code-review— Code review standards: critical violations to flag, PR checklist verification, severity levelswpuf-git— Git and GitHub operations: branching, PR templates, CI checks
# Frontend (Vite + Vue 3)
npm run build # Production build (all entry points)
npm run build:forms-list # Build forms list module
npm run build:subscriptions # Build admin subscriptions module
npm run build:frontend-subscriptions # Build frontend subscriptions module
npm run build:ai-form-builder # Build AI form builder module
npm run build:account # Build account module
npm run build:user-directory # Build user directory module
npm run build:css # Compile Tailwind CSS via Grunt
npm run dev:user-directory # Dev mode for user directory module
# Frontend (Grunt — legacy)
grunt release # Full release build
# PHP
composer phpcs # PHP CodeSniffer
composer phpcbf # Auto-fix PHP code stylewpuf.php— Main plugin file, defines constants, loads autoloader, bootstrapsWP_User_Frontendsingleton
wpuf.phploads Composer autoloader (vendor/autoload.php)- Defines constants (
WPUF_VERSION,WPUF_FILE,WPUF_ROOT, etc.) - Creates
WP_User_Frontendsingleton viawpuf()helper - Manually includes
wpuf-functions.php,Frontend_Render_Form, reCaptcha libs, AI manager, and gateway helpers - On
plugins_loaded: loads insights tracker, free/pro loader, upgrades, and instantiates all services into$this->container[] - Services available via magic getter:
wpuf()->service_name
wp-user-frontend/
├── wpuf.php # Main plugin file & bootstrap class
├── wpuf-functions.php # Global utility functions (6,782 lines)
├── includes/ # PHP backend (166 files)
│ ├── Admin/ # Admin settings, menus, subscription management
│ ├── Ajax/ # AJAX handlers (forms, uploads, addresses)
│ ├── AI/ # AI form builder (config, prompts, REST)
│ ├── Api/ # REST API controllers (FormList, Subscription)
│ ├── Fields/ # Form field types (20+ field classes)
│ ├── Free/ # Free version functionality & pro prompts
│ ├── Frontend/ # Frontend forms, dashboard, registration, payments
│ ├── Hooks/ # Form settings cleanup hooks
│ ├── Integrations/ # Third-party integrations (ACF, Dokan, WC Vendors, n8n)
│ ├── Traits/ # Shared traits (FieldableTrait, TaxableTrait)
│ ├── Widgets/ # WordPress widgets
│ ├── Data/ # Data layer classes
│ ├── Log/ # Logging utilities
│ ├── upgrades/ # Version migration scripts
│ └── Abstracts/ # Abstract base classes
├── src/ # Vue 3 source (17 files)
│ ├── admin/ # Admin panel components
│ ├── components/ # Shared Vue components
│ ├── css/ # Component styles
│ ├── js/ # JavaScript modules
│ └── router/ # Vue Router config
├── admin/ # Legacy admin PHP files & form builder
│ ├── form-builder/ # Drag-and-drop form builder (PHP + JS)
│ └── html/ # Admin HTML templates
├── form-builder/ # Form builder assets
├── templates/ # Overridable PHP templates
│ ├── dashboard/ # User dashboard templates
│ ├── subscriptions/ # Subscription plan templates
│ ├── dokan/ # Dokan marketplace integration templates
│ ├── wc-marketplace/ # WC Marketplace integration templates
│ └── *.php # Login, registration, account, post submission
├── assets/ # Compiled CSS/JS output
│ ├── css/ # Compiled stylesheets
│ ├── js/ # Compiled JS bundles
│ ├── images/ # Static images
│ ├── less/ # LESS source files (legacy)
│ └── vendor/ # Third-party vendor assets
├── Lib/ # Third-party libraries
│ ├── Gateway/ # Payment gateways (PayPal, Bank)
│ ├── Appsero/ # License & analytics
│ └── *.php # reCaptcha, settings API, insights
├── modules/ # Self-contained feature modules
│ └── user-directory/ # User directory module (own npm project)
├── tests/
│ └── e2e/ # Playwright E2E tests
├── views/ # Legacy PHP view files
├── class/ # Legacy class files (subscription, render-form)
├── config/ # Configuration files
└── languages/ # Translation files
wpuf-functions.php— Global utility functions (6,782 lines, the largest file)includes/Assets.php— Script/style registration and enqueuingincludes/Frontend_Render_Form.php/includes/Render_Form.php— Core form rendering engineincludes/User_Subscription.php— Subscription plan managementincludes/Installer.php— Plugin activation, DB table creationincludes/API.php— REST API registrationincludes/AI_Manager.php— AI form builder orchestration
Simple array-based container with magic __get(). Services accessed via wpuf()->service_name. Major services:
assets, subscription, fields, customize, bank, paypal, gateway_manager, api, integrations, ai_manager, admin, frontend, ajax, setup_wizard, pro_upgrades, privacy, widgets, tracker, free_loader, upgrades
- Vue 3 (primary) for modern admin and frontend components, with Pinia state management and Vue Router
- jQuery (legacy) for form builder and older frontend interactions
- Vite as build tool with 5 entry points (forms-list, subscriptions, frontend-subscriptions, ai-form-builder, account)
- Grunt for legacy build tasks (LESS compilation, Tailwind CSS, release packaging)
- Tailwind CSS 3 with DaisyUI component library and scoped preflight
- LESS (legacy) for older stylesheets
2 controllers under includes/Api/ — FormList and Subscription. AI features add an additional REST controller via includes/AI/RestController.php.
Payment gateways managed through Lib/Gateway/:
Gateway_Manager.php— Gateway registration and orchestrationPaypal_Gateway.php/Paypal.php— PayPal integrationBank_Gateway.php/Bank.php— Bank transfer support- Frontend payment handling via
includes/Frontend/Payment.php
20+ form field types under includes/Fields/, each extending Field_Contract.php:
Text, Textarea, Email, URL, Dropdown, MultiDropdown, Checkbox, Radio, Image, Featured Image, Post Title, Post Content, Post Excerpt, Post Tags, Post Taxonomy, Hidden, HTML, Section Break, Column, reCaptcha, Cloudflare Turnstile
- PHP: WordPress Coding Standards (WPCS) via PHPCS
- JS: JSHint (legacy), Prettier for formatting
- CSS: Tailwind CSS 3 with DaisyUI
- PHP Namespace:
WeDevs\Wpuf\forincludes/,WeDevs\Wpuf\Lib\forLib/
- Singleton pattern via
WeDevs\WpUtils\SingletonTraitfor main plugin class - Simple container — array-based
$container[]with magic__get()(not a formal DI container) - WordPress hooks extensively used for extensibility (actions & filters)
- Overridable templates — themes can override templates from
templates/directory - Free/Pro split —
includes/Free/Free_Loader.phploads free-only features; Pro version detected viaWP_User_Frontend_Proclass - Form field contract — all form fields implement
Field_Contractfor consistent rendering - Legacy + modern coexistence — jQuery form builder alongside Vue 3 components, LESS alongside Tailwind, Grunt alongside Vite
- Third-party integrations — Dokan, WC Vendors, WC Marketplace, ACF, n8n, Events Calendar
- Playwright for E2E tests in
tests/e2e/- Multiple config files for parallel execution (
playwright.parallel-one.config.ts,playwright.parallel-two.config.ts) - Setup config:
playwright.setup.config.ts
- Multiple config files for parallel execution (
- PHPUnit 7.5.9 listed as dev dependency (test infrastructure in development)
WPUF integrates with several marketplace and third-party plugins:
- Dokan — Vendor registration forms and dashboard integration
- WC Vendors — Vendor frontend forms
- WC Marketplace — Marketplace compatibility
- ACF — Advanced Custom Fields compatibility
- n8n — Workflow automation integration
- Events Calendar — Event post type support