Introduction
PWD Custom WCFM Registration is a professional multi-step vendor registration form for WCFM Marketplace. It provides a polished, fully configurable registration experience with email verification, auto-save drafts, conditional logic, file uploads, and complete styling controls — all managed from a dedicated admin panel.
Multi-Step Form Builder
Drag-and-drop interface to organise any WCFM field across any number of steps with a live progress bar.
Email Verification
6-digit code verification before proceeding. Auto-confirms on the 6th digit. Codes expire after 15 minutes.
Auto-Save Drafts
Progress saved automatically every 30 seconds. Vendors can also manually save and receive a resume link by email.
Conditional Logic
Show or hide fields dynamically based on values entered in other fields. Four condition types and two actions.
Full Styling Controls
Inherit from theme with zero overrides, or switch to Custom mode to control every visual aspect of the form.
File Upload Support
WCFM-compatible file upload fields with WordPress media library integration and MD5-keyed storage.
WCFM Approval Flow
Reads WCFM membership approval settings automatically — routes vendors to pending or active state accordingly.
Bot Protection
Optional Cloudflare Turnstile CAPTCHA integration to prevent automated registrations.
Requirements
| Requirement | Minimum | Notes |
|---|---|---|
| WordPress | 5.8+ | Tested up to WordPress 6.x |
| PHP | 7.4+ | 8.0+ recommended |
| WooCommerce | 5.0+ | Required for all WCFM functionality |
| WCFM Marketplace | 3.0+ | Core dependency — vendor accounts and profiles |
| License Key | Required | Purchased from prowebdesign.co.za — unlocks all features |
Installation
Method 1 — WordPress Admin
Navigate to Plugins
In your WordPress admin go to Plugins → Add New → Upload Plugin
Upload the ZIP
Choose pwd-custom-wcfm-registration-4_1_3.zip and click Install Now
Activate
Click Activate Plugin after installation completes
Method 2 — FTP / File Manager
Extract
Unzip pwd-custom-wcfm-registration-4_1_3.zip on your computer
Upload
Upload the pwd-custom-wcfm-registration/ folder to /wp-content/plugins/ on your server
Activate
Go to Plugins in WordPress admin and click Activate next to PWD Custom WCFM Registration
License Activation
PWD Custom WCFM Registration requires an active license to display the registration form. The shortcode, multi-step builder, conditional logic, and all admin functionality are blocked until a valid license is entered.
Activating Your License
Go to the License Page
In WordPress admin navigate to Vendor Registration → License
Enter Your Credentials
Paste your License Key and the email address used at purchase
Click Activate License
The plugin contacts the PWD license server and validates your key against your domain
All Features Unlock
On success, the License page shows your key, email, expiry, and last verification time. The registration form becomes fully active.
Daily Verification
Once activated, the plugin silently verifies your license once per day via a background cron job (pwd_wcfm_daily_license_check). Up to 3 consecutive network failures are tolerated before the license is marked invalid — protecting you from brief server outages.
Plugins Page Indicators
The WordPress Plugins page shows License Active when valid, or Activate License when not. A red ! badge also appears on the Vendor Registration nav menu item when activation is required. The License tab is always accessible regardless of plugin state.
Quick Start
Activate License
Go to Vendor Registration → License and enter your license key and email
Create a Registration Page
Create a new WordPress page and add the shortcode [pwd_wcfm_registration] in the content area. Publish the page.
Configure Settings
Go to Vendor Registration → Settings and enable multi-step, email verification, and auto-save as needed
Organise Fields into Steps
Go to Vendor Registration → Multi-Step and drag fields from the pool into step boxes. Click Save Steps.
Style the Form (Optional)
Go to Vendor Registration → Styling. Switch to Custom mode and adjust colours, fonts, inputs, and buttons.
Go Live
Visit your registration page — the form is live and accepting vendor registrations
Settings
All settings are managed from Vendor Registration → Settings and saved via AJAX — no page reload required.
| Setting | Description | Default |
|---|---|---|
| enable_multi_step | Enables multi-step form with navigation and progress bar | true |
| enable_email_verification | Requires vendors to verify email with a 6-digit code before proceeding | true |
| enable_auto_save | Automatically saves form progress as a draft every N seconds | true |
| auto_save_interval | Interval in seconds between automatic draft saves | 30 |
| draft_expiry_days | Days before an abandoned draft is considered expired and cleaned up | 30 |
| redirect_after_registration | Destination after registration: wcfm_dashboard or custom_url | wcfm_dashboard |
| custom_redirect_url | Custom URL to redirect to when redirect_after_registration is set to custom_url | — |
| enable_turnstile | Enables Cloudflare Turnstile bot protection on the form | false |
| turnstile_site_key | Your Cloudflare Turnstile site key | — |
| turnstile_secret_key | Your Cloudflare Turnstile secret key | — |
| enable_admin_email | Sends an HTML notification email to admins on new vendor registration | false |
| admin_emails | Comma-separated list of admin email addresses to notify | Site admin |
| admin_email_subject | Email subject — supports {store_name}, {username}, {email} placeholders | New Vendor Registration… |
| admin_email_approval_link | Adds an "Approve This Vendor" button to the admin notification email | false |
Multi-Step Builder
The Multi-Step builder is found at Vendor Registration → Multi-Step. It provides a drag-and-drop interface where you can organise any WCFM field — including custom fields and upload fields — across multiple form steps.
How It Works
Available Fields Pool
All WCFM registration fields appear in the pool on the left. Fields not assigned to any step appear on the final step automatically.
Add Steps
Click + Add Step to create a new step box. Steps are numbered sequentially.
Drag Fields
Drag field chips from the pool into step boxes. Fields can be moved between steps freely. Upload fields are highlighted in yellow.
Save
Click Save Steps to persist the configuration. Changes take effect immediately on the frontend.
Recommended Organisation
Step 1: Account Basics
— Username, Email, Password, Confirm Password
Step 2: Personal Information
— First Name, Last Name, Phone
Step 3: Store Details
— Store Name, Store Description
Step 4: Additional / Custom Fields
— Any WCFM custom fields, Terms acceptance
Conditional Logic
Create rules that show or hide fields dynamically based on other field values — found at Vendor Registration → Conditional Logic.
Conditions
| Condition | Description | Example |
|---|---|---|
| equals | Field value matches the specified value | Show tax ID if Business Type = Corporation |
| not_equals | Field value does not match | Show custom field if Country ≠ United States |
| not_empty | Field has any value entered | Show follow-up if previous field filled |
| empty | Field is blank | Show hint text if field is empty |
Actions
- show — Show the target field(s) when the condition is met
- hide — Hide the target field(s) when the condition is met
Styling
Found at Vendor Registration → Styling. Gives you complete control over the registration form's appearance without touching any CSS files.
Mode Selector
- Inherit from theme — Zero overrides applied. The form inherits all colours, fonts, and button styles from your active WordPress theme. This is the default and is fully non-destructive.
- Custom styling — Enables the controls below. Any field left at its default value uses the form's built-in fallback.
Form Container
| Control | Description |
|---|---|
| Background Color | Form container background colour |
| Text Color | Default text colour inside the form |
| Border Color | Colour of the form container border |
| Border Radius | Corner rounding — 0 to 32px |
| Padding | Internal spacing — 8 to 80px |
| Max Width | Maximum form width — 320 to 1200px |
| Box Shadow | None, Default (subtle), Medium, or Large |
Typography
| Control | Description |
|---|---|
| Font Family | Inherit from theme, or Inter, Roboto, Open Sans, Lato, Poppins, Nunito, Montserrat, Raleway, Source Sans Pro — auto-loaded on frontend via Google Fonts |
| Base Font Size | Form-wide base font size — 12 to 22px |
| Label Color | Colour of all field labels |
| Label Font Size | Size of field labels — 10 to 20px |
| Label Font Weight | Normal, Medium, Semi-Bold, or Bold |
Input Fields
| Control | Description |
|---|---|
| Background | Input field background colour |
| Text Color | Input text colour |
| Border Color | Input border colour |
| Focus / Accent Color | Border and focus ring colour on active inputs — also used for the email verification code field |
| Border Radius | Corner rounding — 0 to 20px |
| Padding (V / H) | Vertical and horizontal internal padding |
Buttons
| Control | Applies To |
|---|---|
| Primary Background / Text / Hover | Next and Submit buttons |
| Secondary Text / Border Color | Back (Previous) button |
| Border Radius, Font Size, Font Weight, Padding | All buttons |
Progress Bar
- Fill Color — the active progress fill
- Track Color — the unfilled background track
- Height — 2 to 20px
!important overrides via wp_add_inline_style. Clicking Reset to Defaults switches back to Inherit mode and removes all overrides instantly.Shortcode
The registration form is embedded with a single shortcode:
[pwd_wcfm_registration]
Where You Can Use It
- Classic Editor — paste directly into the text or visual editor
- Block Editor (Gutenberg) — use a Shortcode block
- Page Builders — Elementor, Divi, Beaver Builder, WPBakery all support shortcodes
- Widget Areas — use a Text or Custom HTML widget
- Theme Files —
do_shortcode('[pwd_wcfm_registration]')
Fields Reference
The plugin builds its field pool from three sources: standard fields, WCFM custom fields, and WCFM upload fields.
Standard Fields
| Field ID | Label | Type | Required |
|---|---|---|---|
| user_name | Username | text | Yes |
| Yes | |||
| password | Password | password | Yes |
| confirm_password | Confirm Password | password | Yes |
| first_name | First Name | text | Yes |
| last_name | Last Name | text | Yes |
| store_name | Store Name | text | Yes |
| phone | Phone | tel | No |
| store_description | Store Description | textarea | No |
| terms_accepted | Accept Terms | checkbox | Yes |
WCFM Custom Fields
Any custom fields defined in WCFM → Settings → Vendor Registration Custom Fields and marked as enabled are automatically detected and added to the builder pool. Supported types: text, email, tel, number, select, radio, checkbox, textarea, content (read-only), and upload.
Vendor Guide
Completing Registration
Navigate to the Registration Page
Open the page containing the [pwd_wcfm_registration] shortcode. The progress bar shows the total number of steps.
Fill Required Fields
Fields marked with a red asterisk * are required. All fields are validated before you can proceed to the next step.
Verify Your Email
Click Send Verification Code, check your email for the 6-digit code, and enter it. The code auto-verifies on the 6th digit — a green ✓ Verified appears when confirmed.
Save Your Progress (Optional)
Click Save & Email Me Link on any step to receive a resume link. Auto-save also runs silently every 30 seconds.
Submit
On the final step, click Complete Registration. You will be automatically logged in and redirected to your vendor dashboard upon success.
WCFM Approval Flow
After a vendor completes registration, the plugin reads the WCFM membership's required_approval setting and routes accordingly — no manual configuration needed.
Approval Not Required
WCFMvm::register_vendor()is called to activate the account immediatelyWCFMvm::store_subscription_data()assigns a free subscription record- The vendor is auto-logged in via
wp_set_auth_cookie() - The
wcfm_membership_registrationaction hook fires for third-party integrations - The vendor is redirected to the WCFM dashboard (or custom URL)
Approval Required
WCFMvm::send_approval_reminder_admin()notifies the site admin of the pending account- The vendor account is created but left in a pending state
- If Include Approval Link is enabled, the admin notification email includes a one-click approval button
wcfm_registration_thankyou_url filter is applied to the redirect URL, allowing theme or plugin developers to override the post-registration destination programmatically.Troubleshooting
Form not displaying on the frontend
- Confirm your license is active — go to Vendor Registration → License
- Confirm the shortcode
[pwd_wcfm_registration]is on the page - Check that WCFM Marketplace and WooCommerce are active and up to date
- Try clearing any page/server cache
Custom fields not appearing in the builder
- Ensure fields are enabled in WCFM → Settings → Vendor Registration Custom Fields
- Ensure all field labels are unique — duplicate labels cause only one to appear
- Hard-refresh the Multi-Step builder page (Ctrl+Shift+R)
Verification email not sending
- Check the spam/junk folder first
- Install and configure WP Mail SMTP plugin
- Test email delivery with the Check Email plugin
- Check
wp-content/debug.logfor mail errors
Styling not applying to the form
- Confirm the Styling page is set to Custom styling mode (not Inherit)
- Clear any page caching or CDN cache after saving
- Inspect the page source for the inline
<style>block appended afterpwd-wcfm-form
License activation fails
- Confirm you are using the correct license key from your purchase confirmation email
- Confirm the email matches the one used at purchase exactly
- Check that your server can make outbound HTTP requests — some hosts restrict this
- If already activated on another domain, deactivate there first
Enabling Debug Logging
// Add to wp-config.php before "That's all, stop editing!"
define('WP_DEBUG', true);
define('WP_DEBUG_LOG', true);
define('WP_DEBUG_DISPLAY', false);
Check wp-content/debug.log after reproducing the issue.
Changelog
v4.1.3
LATEST March 2026- IMPROVED License admin page rebuilt with cleaner UI and improved status display
- IMPROVED Plugin Update Checker upgraded to PUC v5p6
- IMPROVED Admin menu registration hardened — License tab always registered before the core menu, ensuring it is accessible in all plugin states (licensed and unlicensed)
- NEW Plugin action links now show green License Active or red Activate License depending on license state
- NEW Plugin row meta displays a red activation reminder when the license is inactive
- IMPROVED Deactivation hook unschedules
pwd_wcfm_daily_license_checkcron event and flushes rewrite rules
v4.1.0 – v4.1.2
March 2026- IMPROVED Internal stability and hardening releases
- IMPROVED Nonce handling tightened across all AJAX endpoints
- IMPROVED Admin JS and CSS asset loading scoped strictly to plugin pages
v4.0.5
March 2026- NEW License moved to its own nav tab — always accessible regardless of plugin state
- NEW Styling admin page — dedicated tab at Vendor Registration → Styling
- NEW Mode selector: Inherit from theme (zero overrides) or Custom styling
- NEW Form container controls: background, text, border, radius, padding, max-width, shadow
- NEW Typography controls: Google Font selector (auto-enqueued on frontend), base size, label colour/size/weight
- NEW Input field controls: background, text, border, focus/accent colour, radius, padding
- NEW Button controls: primary/secondary colours, hover, shared radius, font size/weight, padding
- NEW Progress bar controls: fill colour, track colour, height
- NEW Reset to Defaults button — reverts to Inherit mode instantly
- IMPROVED CSS injected via
wp_add_inline_stylewith scoped!important— fully non-destructive - IMPROVED Nav rewritten as loop-driven tab bar — Styling and License tabs always present
v4.0.4
March 2026- IMPROVED Production-ready v4 release shipped to customers
- IMPROVED Nav updated to loop-driven tab structure
- FIXED Minor admin UI refinements
v4.0.3
February 2026- FIXED Removed development debug logging from production build
- FIXED Cleaned up backup and orphan files
- IMPROVED Updated documentation to reflect all current features
v4.0.2
February 2026- NEW Admin email notifications with file attachment support
- NEW Cloudflare Turnstile bot protection option
- NEW Configurable approval link in admin notification emails
- IMPROVED Upload field handling — MD5-keyed WCFM storage format
v4.0.1
February 2026- NEW Full WCFM approval flow integration
- NEW Auto-login after registration completes
- NEW
wcfm_membership_registrationhook fired on completion - IMPROVED Draft cleanup on successful registration
v4.0.0
February 2026- NEW Complete rewrite and rebrand to v4
- NEW Multi-step builder with drag-and-drop field organiser
- NEW Email verification with 6-digit code and 15-minute expiry
- NEW Auto-save drafts with resume-by-link capability
- NEW Conditional logic engine — four condition types
- NEW Password reveal toggle with eye icon
- NEW Professional HTML email templates
- NEW Admin dashboard with tab navigation
- NEW License system with daily background verification
- NEW Plugin Update Checker (PUC) — automatic update notifications