If you’re moving your PaintOps website to a new hosting provider, changing your domain name, or moving to a new WordPress installation, this guide walks you through the recommended process.
At this time, PaintOps does not include a built-in export/import tool. The safest way to migrate your data is by using standard WordPress migration tools that move your entire site and database.
Before You Begin
Before making any changes, we recommend:
- Creating a complete backup of your website (database and files).
- Testing the migration on a staging site whenever possible.
- Having access to your Freemius license email.
- Making note of your Google Maps API key and Stripe settings.
Important: PaintOps stores jobs, estimates, customers, financial records, photos, time clock entries, and other business data in its own database tables rather than standard WordPress posts. Because of this, WordPress’s built-in Export/Import tool (Tools → Export) will not include your PaintOps data.
Scenario 1: Moving to a New Host or New Domain
This is the most common migration. For example:
- You’re switching web hosts.
- You’re changing your website domain.
- You’re moving your existing website to a new server.
The recommended approach is a full WordPress site migration, including:
- The entire database
- The entire
wp-content/uploadsfolder
Whether you use your hosting company’s migration service, a backup plugin, or WP-CLI doesn’t matter as long as the migration copies everything.
What Transfers Automatically?
A complete site migration preserves all PaintOps data, including:
- Jobs
- Estimates
- Customers
- Financial records
- Time clock entries
- Company settings
- Pricing rules
- Categories
- WordPress Painter and Helper accounts
- Permissions
- Job photos
Because the entire database is moved together, photo attachment IDs remain unchanged, so your existing job photos continue working without additional setup.
Steps to Complete After the Migration
1. Transfer Your License
After logging into the new domain for the first time, Freemius will detect the URL change.
Choose Migrate License when prompted.
Do not choose Temporary Duplicate, as that option is intended only for short-term staging sites and eventually expires.
2. Update Your Stripe Webhook
Stripe webhooks are tied to a specific URL.
If your domain changed:
- Create a new webhook endpoint in Stripe.
- Point it to: https://yournewdomain.com/?paintops_stripe_webhook=1
- Copy the new webhook signing secret.
- Paste it into your PaintOps Stripe settings.
- Once you’ve confirmed payments are working, delete the old webhook.
3. Update Your Google Maps API Restrictions
If your Google Maps API key uses HTTP referrer restrictions (recommended), add your new domain inside Google Cloud Console.
Otherwise, address autocomplete may stop working.
4. Keep the Old Domain Redirecting
If customers have:
- Quote links
- Calendar subscriptions
- Emails with links
those URLs will still point to the old domain.
If possible, leave a redirect from the old domain to the new one until all active jobs and quotes have been completed.
Scenario 2: Moving Only PaintOps Into a Different WordPress Site
This is a less common situation.
Examples include:
- Separating PaintOps from an existing website.
- Moving business data to a brand new WordPress installation.
- Selling a business.
Recommended Method
The safest approach is still a full database migration, but restore it into a brand-new, empty WordPress installation.
Once everything has been successfully migrated, you can safely remove any unwanted themes or plugins.
This preserves:
- Job photos
- Worker accounts
- User permissions
- Internal relationships between PaintOps data
Avoid Importing Into an Existing WordPress Site
Importing PaintOps data into a WordPress site that already contains users or media is not recommended.
PaintOps references:
- WordPress attachment IDs for photos
- WordPress user IDs for workers and scheduling
If those IDs already exist on the destination site, photos or worker relationships can become mismatched.
Resolving these conflicts requires developer work to remap IDs.
If you need to merge PaintOps into an existing WordPress site, we recommend working with a developer.
Verify Everything After the Migration
Once your migration is complete, run through this checklist:
- Log in as an administrator and complete the Freemius license migration if prompted.
- Open several jobs with photos to confirm images load correctly.
- Log in as a Painter or Helper and verify assigned jobs appear.
- Test an existing quote acceptance link.
- Refresh your calendar subscription.
- Process a Stripe test payment (or use Stripe Test Mode) to verify the webhook is working.
- Create a new job and confirm address autocomplete works.
- Open Company Profile and save it once. If your logo is missing, upload it again so it points to the new domain.
What Not to Do
Do not use WordPress’s built-in Tools → Export/Import feature to migrate PaintOps.
That tool only exports standard WordPress content such as posts and pages.
It does not include PaintOps data like:
- Jobs
- Estimates
- Customers
- Financial records
- Time clock entries
- Job photos
Using it as your migration method will leave all of your PaintOps data behind.
Looking Ahead
We’re planning to add a dedicated PaintOps export/import tool in the future.
That will make it possible to migrate PaintOps data between WordPress sites without requiring a full database migration or an empty destination site.
Until then, the process outlined above is the recommended and fully supported migration method.