Appearance
Guest Submissions
Guest Submissions lets logged-out visitors fill in and submit your Voxel create-post form. The listing is attached to an account matching the email they entered — created on the spot if there isn't one — and a claim link lands in their inbox, so submitting doubles as registering.
Overview
Voxel's create-post form normally requires an account before a visitor can type anything, which loses the people who were willing to add a listing but not to sign up first. This function reverses the order: they submit, then they claim.
Because the post is attached to a real user account from the start, nothing about your existing setup changes. The listing shows in the author's dashboard once claimed, counts toward their listing plan if you use one, and behaves like any other post for moderation, ownership and Voxel's own notifications.
Key Features
- Logged-out visitors can submit the Voxel create-post form for the post types you choose
- Submissions attach to an account matched by email, created automatically when new
- A claim link emails the submitter so they can take ownership of their listing
- With Temporary Login enabled, the claim link is a one-click sign-in
- Guest posts are forced to pending review by default
- Per-IP rate limiting and a honeypot field guard the open form
- The claim email is a real Voxel app event, with full dynamic-tag templates
Setup Instructions
Step 1: Enable the Function
- Navigate to Voxel Toolkit → Functions in your WordPress admin
- Find Guest Submissions in the list
- Toggle the switch to enable it
Step 2: Choose Post Types
Open the function's settings and tick the post types that accept guest submissions. Anything left unticked keeps Voxel's normal behaviour and still requires an account.
Enable this only for post types you actively moderate. An open submission form is a public write endpoint, and the safeguards below are there because of it.
Step 3: Review the Email
The claim email is an app event, so it is edited where all your other Voxel emails are: Voxel → App Events → Voxel Toolkit → Guest submission received.
It ships with two recipients:
- New guest — someone who had no account before submitting. Their template can use the
@claim(link)dynamic tag for the sign-in link. - Existing account owner — the email already belonged to a member. They are told a listing was added to their account rather than being offered a claim link.
Each recipient has its own template and its own on/off toggle, and because it is a normal app event it automatically supports Push, SMS and Notification Preferences.
Settings
Post Types
Which post types accept logged-out submissions.
Force Pending Review
On by default. Guest posts are created as pending regardless of the post type's normal setting, so nothing published by an unauthenticated visitor goes live unreviewed. Turn this off only if the post type is already moderated another way.
Account Role
The role given to accounts created by a guest submission. Use your normal subscriber-equivalent role — this is the account the visitor will claim.
Rate Limit
How many submissions one IP address may make per hour. This is the main brake on automated abuse.
Honeypot
Adds a hidden field that real visitors never fill in and naive bots do. Submissions that fill it are rejected silently.
What the Visitor Sees
- They open the create-post form while logged out and fill it in as normal
- They enter an email address
- On submit, the post is created against their account and held for review
- They receive the claim email and follow the link to take ownership
Editing and drafts still require logging in. A guest can create a post, not manage one.
Troubleshooting
The Form Still Asks for Login
The post type isn't ticked in the function's settings, or the function isn't enabled. Both are under Voxel Toolkit → Functions → Guest Submissions.
No Claim Email Arrived
Check Voxel → App Events → Voxel Toolkit → Guest submission received and confirm the relevant recipient is enabled. If your site has email delivery problems generally, test with another Voxel notification first — this event uses the same delivery path as every other Voxel email.
Submissions Are Being Rejected
Check the rate limit. A shared network — an office, a conference, a mobile carrier's NAT — can put many genuine visitors behind one IP address.
Requirements
- Voxel theme with a create-post form configured for the post type
- Email delivery configured on the site
- Temporary Login is optional, and makes the claim link one-click

