-
-
Notifications
You must be signed in to change notification settings - Fork 68
Enhance Integration
Enhance is a modern control panel that provides powerful hosting automation and management capabilities. This integration enables automatic domain syncing and SSL certificate management between Ultimate Multisite and Enhance Control Panel.
Related Discussion: See GitHub Discussion #265 for community tips and additional information.
- Automatic domain syncing when domains are mapped in Ultimate Multisite
- Automatic SSL certificate provisioning via LetsEncrypt when DNS resolves
- Subdomain support for networks running in subdomain mode
- Domain removal when mappings are deleted
- Connection testing to verify API credentials
- Enhance Control Panel installed and accessible
- WordPress Multisite installation hosted on or connected to an Enhance server
- Apache web server (Enhance currently supports Apache configurations; LiteSpeed Enterprise is available at reduced cost)
You must have administrator access to the Enhance Control Panel to create API tokens.
- Log in to your Enhance Control Panel as an administrator
- Click on Settings in the navigation menu
- Navigate to Access Tokens
- Click Create Token
- Give the token a descriptive name (e.g., "Ultimate Multisite Integration")
- Assign the System Administrator role
- For the expiry date:
- Leave empty if you want the token to never expire
- Or set a specific expiration date for security purposes
- Click Create
After creation, your Access Token and Organization ID will be displayed. Save these immediately as the token will only be shown once.
The Organization ID is displayed on the Access Tokens page in a blue information box labeled "Org ID: {your_id}".
The Organization ID is a UUID formatted like: d8554b6d-5d0d-6719-009b-fec1189aa8f3
You can also find a customer's Organization ID by:
- Go to Customers page
- Click Manage customer for the relevant customer
- Look at the URL - the Organization ID is the alphanumeric characters after
/customers/
To find your Server ID (required for domain operations):
- In the Enhance Control Panel, navigate to Servers
- Click on the server where your WordPress installation is running
- The Server ID (UUID format) will be visible in the URL or server details
- Alternatively, you can use the API to list servers:
curl -s -X GET https://your-enhance-panel.com/api/servers \
-H "Accept: application/json" \
-H "Authorization: Bearer YOUR_TOKEN" | jqThe server ID follows the UUID format: 00000000-0000-0000-0000-000000000000
Your API URL is your Enhance Control Panel URL with /api/ appended:
https://your-enhance-panel.com/api/
Important: The /api/ path is required. Common mistakes include:
- Using just the domain without
/api/ - Using HTTP instead of HTTPS (HTTPS is required for security)
Add the following constants to your wp-config.php file:
// Enhance Control Panel Integration
define('WU_ENHANCE_API_TOKEN', 'your-bearer-token-here');
define('WU_ENHANCE_API_URL', 'https://your-enhance-panel.com/api/');
define('WU_ENHANCE_SERVER_ID', 'your-server-uuid-here');- In your WordPress admin, go to Ultimate Multisite > Settings
- Navigate to the Integrations tab
- Find Enhance Control Panel Integration and click Configuration
- The wizard will guide you through the setup:
- Step 1: Introduction and feature overview
- Step 2: Enter your API credentials (Token, API URL, Server ID)
- Step 3: Test the connection
- Step 4: Review and activate
You can choose to:
- Let the wizard inject the constants into your
wp-config.phpfile automatically - Copy the constant definitions and add them manually
Based on community feedback (Discussion #265), you may need to configure these additional settings:
If you experience issues with domain mapping:
- Delete the original Enhance
.htaccessfile - Replace it with the standard WordPress Multisite
.htaccessfile
Add these constants to wp-config.php to ensure proper cookie handling across mapped domains:
define('COOKIE_DOMAIN', $_SERVER['HTTP_HOST']);
define('COOKIEPATH', '/');
define('ADMIN_COOKIE_PATH', '/');- A user maps a custom domain in Ultimate Multisite (or a new site is created in subdomain mode)
- The integration sends a POST request to Enhance's API:
/servers/{server_id}/domains - Enhance adds the domain to your server configuration
- When DNS resolves to your server, Enhance automatically provisions an SSL certificate via LetsEncrypt
- The domain becomes active with HTTPS
- A domain mapping is deleted in Ultimate Multisite
- The integration queries Enhance to find the domain's ID
- A DELETE request is sent to:
/servers/{server_id}/domains/{domain_id} - Enhance removes the domain from your server configuration
Ultimate Multisite includes built-in DNS and SSL checking:
- You can configure the check interval in Domain Mapping Settings (default: 300 seconds/5 minutes)
- The system will verify DNS propagation before marking a domain as active
- SSL certificate validity is checked automatically
- Enhance handles SSL provisioning automatically, so manual SSL configuration is not required
- In the Integration Wizard, use the Test Connection step
- The plugin will attempt to list domains on your server
- A success message confirms:
- API credentials are correct
- API URL is accessible
- Server ID is valid
- Permissions are properly set
- Map a test domain in Ultimate Multisite
- Check the Ultimate Multisite logs (Ultimate Multisite > Logs > integration-enhance)
- Verify in Enhance Control Panel that the domain was added:
- Go to Servers > Your Server > Domains
- The new domain should appear in the list
- Once DNS propagates, verify SSL is provisioned automatically
Error: "Failed to connect to Enhance API"
- Verify
WU_ENHANCE_API_URLincludes/api/at the end - Ensure you're using HTTPS, not HTTP
- Check that the Enhance panel is accessible from your WordPress server
- Verify there are no firewall rules blocking the connection
Error: "Enhance API Token not found"
- Ensure
WU_ENHANCE_API_TOKENis defined inwp-config.php - Verify the token hasn't been deleted or expired in Enhance
- Check for typos in the token value
Error: "Server ID is not configured"
- Verify
WU_ENHANCE_SERVER_IDis defined inwp-config.php - Ensure the Server ID is a valid UUID format
- Confirm the server exists in your Enhance panel
Check the logs:
- Go to Ultimate Multisite > Logs
- Filter by integration-enhance
- Look for error messages indicating the issue
Common causes:
- Invalid domain name format
- Domain already exists in Enhance
- Insufficient API permissions (ensure token has System Administrator role)
- Server ID doesn't match the actual server in Enhance
SSL not provisioning:
- Verify DNS is pointing to your server's IP address
- Check that the domain resolves correctly:
nslookup yourdomain.com - Enhance requires DNS to resolve before it can provision SSL
- SSL provisioning typically takes 5-10 minutes after DNS propagation
- Check Enhance Control Panel logs for SSL-specific errors
Manual SSL troubleshooting in Enhance:
- Go to Servers > Your Server > Domains
- Find your domain and check its SSL status
- You can manually trigger SSL provisioning if needed
If domains or SSL certificates are taking too long to activate:
- Go to Ultimate Multisite > Settings > Domain Mapping
- Find DNS Check Interval setting
- Adjust from the default 300 seconds to a lower value (minimum: 10 seconds)
- Note: Lower intervals mean more frequent checks but higher server load
HTTP 401/403 errors:
- Regenerate your API token in Enhance
- Verify the token has System Administrator role
- Check that the token hasn't expired
- Ensure you're using the correct Organization ID (though it's typically not required in the URL)
Enable detailed logging:
// Add to wp-config.php for enhanced debugging
define('WP_DEBUG', true);
define('WP_DEBUG_LOG', true);Then check logs at:
- Ultimate Multisite logs: Ultimate Multisite > Logs
- WordPress debug log:
wp-content/debug.log - Enhance panel logs: Available in Enhance's admin interface
All API requests use Bearer token authentication:
Authorization: Bearer YOUR_TOKEN_HERE
List Servers:
GET /servers
List Domains on a Server:
GET /servers/{server_id}/domains
Add a Domain:
POST /servers/{server_id}/domains
Body: {"domain": "example.com"}
Delete a Domain:
DELETE /servers/{server_id}/domains/{domain_id}
Complete API documentation: https://apidocs.enhance.com
- Never commit API tokens to version control
- Store tokens in
wp-config.phpwhich should be excluded from Git - Use tokens with appropriate permissions (System Administrator for full integration)
- Set token expiry dates for production environments
- Rotate tokens periodically
- Use the default DNS check interval (300 seconds) to avoid excessive API calls
- Monitor Enhance server resources when running large-scale domain operations
- Consider staggering domain additions if mapping many domains at once
- Regularly check Ultimate Multisite logs for integration errors
- Set up monitoring for failed domain additions
- Verify SSL certificates are provisioning correctly
- Keep an eye on Enhance server capacity and domain limits
- Enhance Official Documentation: https://enhance.com/docs
- Enhance API Documentation: https://apidocs.enhance.com
- Enhance Community Forum: https://community.enhance.com
- GitHub Discussion: Issue #265 - Enhance Integration Tips
- Ultimate Multisite Domain Mapping Guide: See wiki page "How to Configure Domain Mapping v2"
If you encounter issues:
- Check the Troubleshooting section above
- Review the Ultimate Multisite logs
- Consult the GitHub Discussions
- Contact Enhance support for panel-specific issues
- Create a new discussion with detailed error logs for community assistance
- This integration handles domain aliases only; Enhance manages SSL automatically
- The integration supports both custom domain mappings and subdomain-based sites
- Automatic www subdomain creation can be configured in Domain Mapping settings
- Enhance currently supports Apache configurations (LiteSpeed Enterprise available)
- Domain removal from Ultimate Multisite will remove the domain from Enhance but may not delete associated SSL certificates immediately
- Ultimate Multisite 101
- Basic Concepts
- What is WordPress Multisite?
- Ultimate Multisite Requirements
- Why Ultimate Multisite
- Installing Ultimate Multisite (v2)
- How do I Install WordPress Multisite?
- Understanding the Ultimate Multisite Dashboard
- Understanding your Dashboard (v2)
- Touring the Admin Panel
- Managing Customers
- Managing Sites
- Managing Memberships (v2)
- Managing Payments and Invoices
- Managing System Emails
- Site Templates (v2)
- Auto Search and Replace in Site Templates (v2)
- Checkout Forms
- Creating your First Subscription Product (v2)
- Creating Discount Codes (v2)
- Managing Shareable Links for Plans
- Customizing your Registration Form
- The Registration Flow (v2)
- How to Configure Domain Mapping (v2)
- How to configure domain mapping (v1)
- Setting the Sunrise constant to true on Closte
- Closte Integration
- Cloudflare Integration
- Cloudways Integration
- cPanel Integration
- Enhance Control Panel Integration
- GridPane Integration
- Hestia Control Panel Integration
- RunCloud Integration
- ServerPilot Integration
- WP Engine Integration
- WPMU DEV Integration
- Setting Up The Stripe Gateway (v2)
- Setting Up The PayPal Gateway (v2)
- Setting Up Manual Payments (v2)
- Getting Started with the PayFast Payment Gateway
- Getting Started with the GoCardless Payment Gateway
- Getting Paid (v2)
- Tax Handling
- Your Client's Account Page (v2)
- Your Client's Websites (v2)
- Upgrading a Plan (v2)
- Downgrading a plan (v2)
- Canceling a Membership (v2)
- How can I access my account page for the first time?
- How can I cancel my subscription?
- Setting Up The WooCommerce Integration (v2)
- Integrating Ultimate Multisite with Zapier
- Event: Register an account via Zapier
- Using Ultimate Multisite: MailChimp Integration
- Using Ultimate Multisite: AffiliateWP Integration to create your own referral program for Ultimate Multisite
- A First Look on Webhooks (v2)
- Customizing your Admin Panel with PRO Theme
- Customizing your Admin Panel with Material WP
- Placing Ads on your network with Ultimate Multisite: Ad Injector
- Creating Custom Admin Pages and Sub-pages using Ultimate Multisite: Admin Page Creator
- Editing Plugins and Themes Meta Information with Ultimate Multisite: Plugin and Theme Manager
- Ultimate Multisite Hooks and filters
- The Ultimate Multisite Register API endpoint
- How to use Ultimate Multisite snippets on our GitHub repository
- Code Snippets for v2
- How to Get Custom Development Help from Codeable?
- Translating Ultimate Multisite
- Activating Ultimate Multisite: Language Selector
- Re-ordering the Ultimate Multisite country list