See how WPResidence handles real estate listing submission in WordPress, from front-end forms to approval, expiration, and payments.
By Cris Bean
Last updated: September 28, 2026
WPResidence is a real estate WordPress theme where owners, agents and agencies add listings from a Submit Property page, using a form you set up in Theme Options. If you turn on admin approval, each new listing waits in Pending Review; otherwise it publishes right away.
Listings show as Pending Review, Published, Expired or Disabled. In membership mode, listings stay live while the user’s package is active, and free listings expire after the number of days you set. Automated emails cover each stage, from submission and approval to membership warnings and payments.
Payments run on built-in Stripe, PayPal, and wire transfer. All of this is built into the theme. Sites where only staff add listings can leave out the Submit Property page.
Front-end submission uses a page with the Submit Property template. Create that page, and visitors fill in the form themselves. Sites that leave it out add listings from wp-admin.
In Theme Options, you choose which fields the form shows and which are required. You choose which fields appear, which are required, and which stay hidden. A rentals portal might require minimum stay and drop sale price.
The Front End Submit page has a login step. Guests can fill in the form and see what fields you require, and they log in or register when they click Submit.
To close sign-ups, turn off “Allow user registration?” in Theme Options and “Anyone can register” in WordPress Settings. The register step on the submit page follows both.
Theme Options also sets the maximum number of images per property, and each membership package can set its own image limit.
Do you want submissions locked to a single city or niche, like vacation rentals only? Three settings do this.
Location runs on the State, City, and Area taxonomies, all managed from the dashboard. Create only the terms you accept, and the dropdowns only show those terms.
When “Enable Location Autocomplete in Front End Submission Form” is off (the default), the submit form shows County/State, City and Area as linked dropdowns, so users pick from the locations you created.
Listing type works the same way, through the Property Status, Property Category, and Property Type taxonomies. Trim or rename them to fit the site. Remove “For Sale,” keep “For Rent” and “Vacation Rental,” and every search filter and label across the site follows suit.
When you need niche data, the Custom Fields Builder adds fields like Minimum Stay (nights), Cleaning Fee, or Pet Policy. You decide which show on the submit form and which are required, so owners fill in the details you need.
| What you want to restrict | How it's controlled |
|---|---|
| Location | State / City / Area taxonomies, linked submit-form dropdowns, and location autocomplete off |
| Listing type | Property Status, Property Category, and Property Type taxonomies (keep or rename only the terms you use) |
| Extra fields | Custom Fields Builder to add niche fields and mark the ones that are required |
For a full walkthrough of the intake settings, see how to manage submit form fields and mandatory fields.
Some portals add every listing from staff or an import, such as an MLS-feed site or an in-house brokerage catalog.
For these sites, leave out the Submit Property page. Listings are then added from wp-admin or by import, and the front-end form, login step and moderation stay out of use.
In WPResidence, one setting decides whether new listings are checked before they go live: "Submitted listings should be approved by admin?"
Set it to Yes, and every new front-end submission lands as Pending Review until an admin looks at it. Set it to No, and listings publish instantly, which fits high-volume portals that care more about speed than a manual read of every property.
With approval on, the admin opens each pending property, checks the data, adjusts photos or text, then publishes or deletes it. The admin gets an email for each new submission.
With approval on, edits are checked too: any change an agent makes to a published listing sends it back to Pending Review, and the admin gets a Listing Edit email.
The setting covers listings submitted from the front end. Listings added in wp-admin are published by the admin, and MLSImport imports listings as published or draft.
Moderation works alongside payments. A paid property can still sit in Pending Review.
Manual approval is optional and set per site. Many owners start strict while a marketplace is young, then relax the rules for trusted users.
A second setting covers accounts: you choose which roles (Agent, Agency, Developer) need admin approval when they sign up from the front end.
When someone signs up in one of those roles, their profile is stored, but the dashboard tools stay locked until you approve them. They can log in, and Add Property and the agent tools unlock after approval. Roles you leave unselected, such as regular users who save searches and favorites, are approved automatically.
The admin approves pending accounts from the backend, and each user gets an "Approved User" email.
With both settings on, the admin checks each new account and each listing before they go live.
For more on how agents and agencies work day to day, see agent and agency portals.
Listings show as Pending Review, Published, Expired or Disabled, and users manage them from a front-end dashboard.
In "My Properties", users edit their listings, disable or re-enable them, and set them as featured, from their package or with a paid upgrade.
Agents and owners do their daily work there, with stats and analytics, away from theme and plugin settings.
To delegate review, Theme Options → Roles has a permissions matrix for the WordPress Editor role, so an in-house reviewer can work with an Editor account instead of an administrator.
Each front-end role gets its own dashboard, scoped to what that role actually does. Regular Users save searches and favorites. Agents manage their own listings.
Agencies get a group panel and can manage their own agents from it. Developers list projects under their brand.
The agency panel matters most for larger operations. An agency manages its agents locally, while the main site admin keeps final approval and every global setting, so a brokerage can grow from one office to several teams while the central moderation rules stay the same.
For co-listing, a property can have secondary agents next to its main agent. From the backend, an admin can also assign or reassign any listing to a specific agent or agency user. That's handy when content staff enter properties but each listing needs to show under the right person on the front end.
For the account structure behind all this, see how multi-office teams are set up.
How long a listing stays live depends on the submission mode:
Expired listings leave the public lists, and users can resend them for approval from their dashboard.
Membership packages also set quotas: a number of listings (or unlimited), featured listings and images per listing. The theme counts what a user has used and stops new listings once the quota is reached, until they upgrade or renew.
Say a monthly package allows 10 listings and 2 featured slots. The user can publish 10 listings and feature 2 of them, and the listings stay live while the package renews each month.
Each package has these fields:
| Package field | What it controls |
|---|---|
| Price | The package fee, in your own pricing |
| Billing period and frequency | How long the package runs (days, weeks, months or years) before it renews or ends |
| Listings | How many listings a user can publish, or unlimited |
| Featured listings | How many of those listings can be featured |
| Images per listing | How many images each listing can have |
For the full setup, see how to use membership for submissions.
Expiration checks and warning emails run on WordPress’s own WP Cron, twice a day. WP Cron runs when someone visits the site, so it keeps time on a site with regular visits.
Note: on a low-traffic or staging site, WP Cron can lag, since there’s no steady stream of visits to trigger it.
Full-page caching can cause the same lag on a busy site. When a cache plugin serves a visitor static HTML, WordPress skips the PHP that checks the schedule, so expirations and warning emails can run late even with plenty of traffic. That’s worth knowing on a fast WPResidence portal, since a speed setup usually means a cache plugin is running.
The fix is the same in both cases: set a real server cron that calls wp-cron.php every 5 to 15 minutes, so scheduling runs on a clock instead of on page views.
WPResidence sends the lifecycle emails from a Theme Options » Email Management panel, with no extra plugin.
That panel covers registration, new submissions, approvals, listing edits, membership warnings and cancellations, expired free listings, wire transfers and payments. Each event is its own field set, with an editable subject and body, so changing the approval message doesn’t touch the payment message.
Templates can be plain text or simple HTML. Inside each one, you drop placeholder tags for data like username, property title, property URL, payment amount, dashboard links, and invoice details. When an email sends, the theme swaps those tags for real values.
Leave a template’s subject or content blank, and that email stops going out.
Keep HTML templates light, since heavy styling and large images display differently across mail clients.
Each lifecycle event maps to one named template in the Email Management panel:
| Lifecycle event | Email template |
|---|---|
| Listing submitted | New Listing Submission (to the admin) |
| Listing approved | Approved Listings |
| Membership about to end | Membership Expiration Warning |
| Free listing expired | Free Listing Expired |
| Payment received | Paid Submission, Featured Submission or Membership Activated |
Buyers can save a search and get email alerts, sent daily or weekly as the admin sets. Membership and invoice emails fire on package purchase or renewal through Stripe or PayPal.
Property inquiries from contact forms go to the listing’s agent or owner by email.
To brand and rewrite any of these, see the Email Management settings.
WPResidence has three submission modes: free submission, pay-per-listing, and recurring membership packages. A site can run one mode or mix them.
In membership mode, you can give each new user a number of free listings and free featured listings; after that, they buy a package.
PayPal and Stripe are built in. Wire transfer is an offline payment: the admin confirms the bank transfer before activating the listing.
In pay-per-listing mode, a property auto-publishes after a successful PayPal or Stripe payment, unless approval moderation is on. Turn approval on, and the paid listing waits in Pending Review like any other.
Payment and approval are separate steps, and you decide whether a listing needs one or both.
You can change the submission, approval and payment settings later. Existing listings keep their status, and the new rules apply to new submissions and edits. One exception: if you add free listing days or shorten them, the twice-daily check expires free listings older than that limit.
The built-in Stripe, PayPal and wire transfer cover listing payments on most sites.
Add WooCommerce when you need extra payment gateways or complex tax rules. Submission, approval, quotas and expiration keep running on the theme's own system either way.
For the built-in gateways, see Stripe and PayPal payments.
It protects the submission workflow. For firewall and malware scanning, add a WordPress security plugin.
Key forms use WordPress nonces, one-time tokens that block forged or repeated requests. Google reCAPTCHA can be added to the register form from Theme Options.
The login step means every listing has an account behind it. The front-end dashboard keeps agents away from theme and plugin settings, and the image limit caps uploads per listing.
The register form has a terms and conditions checkbox, social login with Facebook, Google or X, and an optional field for users to set their own password.
Put together, the built-in anti-spam stack includes:
The theme covers the submission workflow: forms, moderation and the login step.
Firewall protection, login rate-limiting and malware scanning come from a standard WordPress security plugin. For how WPResidence handles security and updates, see security, reliability and updates.
Portals with existing inventory can import it. Two tools bring listings into WPResidence, filtered to the same cities, categories and types you use for front-end submissions.
MLSImport is the default IDX and MLS solution for WPResidence, built to work with MLS and RESO feeds. You can set it to import only selected cities, counties, statuses, property types or price ranges, so one city's rentals can come from a larger regional feed.
For flat files, the WP All Import add-on for WPResidence maps CSV or XML columns into WPResidence taxonomies and custom fields. Its filtering rules can keep only the rows that match your target city or type, so only matching records are imported.
Imported listings follow the same city and category dropdowns, search filters, and rental-only rules as front-end submissions, and MLSImport imports them as published or draft. They skip the front-end form checks and then follow the same lifecycle.
For a deeper look, see MLSImport and WPResidence integration.
You can rehearse the entire flow before anything goes public, at zero monthly cost. LocalWP, XAMPP, and WAMP run WordPress on your own computer, and WPResidence installs there just like on a live server, with demo imports, property post types, and front-end submission all working locally.
A license activates one domain at a time, and you can deactivate it and register it again on a staging site, then on the live site. Import the demo content for sample properties, agents, and agencies, then test every step, including the built-in CRM and the HubSpot connection, before a client ever sees it.
The main points of this page.
Use three settings. In WPResidence, create only the State, City, and Area terms you accept, keep location autocomplete off, and use the linked State to City to Area dropdowns on the submit form. Users then pick only from your chosen city.
Often yes, and it's low effort. WordPress WP Cron runs listing expiration, membership warnings and saved-search alerts, but something has to trigger it: visitor traffic. That trigger can miss on a low-traffic or staging site, and also on a busy site running full-page caching, since a cached page skips the PHP that runs the check.
Setting a real server cron that calls wp-cron.php every 5 to 15 minutes covers all of those cases and keeps WPResidence scheduling reliable.
All of it is built in. Submission, moderation, statuses, expiration, membership and pay-per-listing payments through Stripe, PayPal, and wire transfer, plus every lifecycle email, are all native WPResidence theme options. WooCommerce is optional and only helps with extra payment gateways or complex tax rules.
Add a standard WordPress security plugin for firewall protection and malware scanning.
Yes. Location and category restrictions, submission scope, approval toggles, membership packages, and email templates are stored in the database as WordPress settings and taxonomy terms, so a theme update leaves them in place.
Changes made directly in theme PHP files are replaced by updates, so put those in a child theme.