Description
WP Fusion Lite synchronizes your WordPress users with leading CRMs and marketing automation systems, keeps user profiles in sync with CRM contact records, and lets you protect site content based on CRM tags.
Features
- Automatically create new contacts in your CRM when users register in WordPress
- Restrict access to site content using tags and lists in your CRM
- Synchronize any WordPress user data with custom fields in your CRM
- Apply tags when users register
- Import contacts from your CRM as new WordPress users and generate passwords for them
- Export WordPress users to your CRM as contact records
- Track visitor activity using your CRM’s tracking scripts (with supported CRMs)
WP Fusion is a critical tool in our toolkit for our clients, and we VERY strongly encourage our clients to use WP Fusion if they have any kind of CRM. The software is top notch, and the support team is fast and friendly. Nothing but love for WP Fusion from my team here at House Trevethan.
Allen Trevethan – House Trevethan
Lite Version
This is a free version of WP Fusion. WP Fusion Lite synchronizes your registered WordPress users with your connected CRM, including their name and email address.
It does not apply tags based on purchases or course activity, sync form entries, sync customers, or detect any data generated by other plugins.
For integration with WooCommerce, LearnDash, Gravity Forms, Elementor and over 100 other popular WordPress plugins, check out one of our paid licenses.
Benefits
-
⚡ Replace Zapier, Integromat, and other integration tools. WP Fusion gives you a direct data sync between your site and your CRM, with no delays or limits.
-
🔒 Create easy to manage membership sites with drip-released content using timers and logic in your CRM.
-
💎 Personalize your site by displaying data from CRM contact records, and showing / hiding content based on a user’s CRM tags or lists.
WP Fusion allows us to provide tailored customer experiences in WordPress that wow every time.
Hundreds of plugins that used to be one size fits all, can now perform differently for each Ontraport contact. For example, a low scoring Ontraport contact can be presented with a winback customer journey in WordPress.
This has allowed our clients to increase customer engagement and retention. It’s the only solution that should be considered for any WordPress integration.
Josh Schleifer – Triple Canopy
Docs and Tutorials
- 📦 Installation Guide
- 🔒 Controlling access to content with CRM tags
- 📝 Shortcodes
- 👀 Displaying CRM data in WordPress
- 🔥 Sync WordPress users with CRM contact records
- 🔑 Import users from your CRM and generate passwords
- 📤 Export users and metadata to your CRM
- 📈 Sync Google Analytics and other leadsource variables with your CRM
- 🏷️ Track user activity using tags
- 🔮 Auto login links
WP Fusion builds a critical bridge between our WooCommerce powered ecommerce site and LifterLMS powered training site to our CRM ActiveCampaign. It was easy to set up. The technical support is above and beyond anything I’ve ever seen. What it does is clearly intelligently designed and well built.
Chris Badgett – LifterLMS
Supported CRMs and marketing automation platforms
- ActiveCampaign
- AgileCRM
- Autopilot
- Autonami
- Bento
- BirdSend
- Capsule
- Constant Contact
- ConvertKit
- Copper
- Customerly
- Drift
- Drip
- Engage
- EngageBay
- Flexie
- FluentCRM (same site or REST API)
- GetResponse
- Gist
- Groundhogg (same site or REST API)
- Growmatik
- HighLevel
- HubSpot
- Infusionsoft
- Intercom
- Jetpack CRM
- Kartra
- Klaviyo
- Klick-Tipp
- Loopify
- MailChimp
- MailEngine
- MailerLite
- Mailjet
- MailPoet
- Maropost
- Mautic
- Microsoft Dynamics 365
- MooSend
- NationBuilder
- Ontraport
- Ortto
- Pipedrive
- Platform.ly
- PulseTechnologyCRM
- Quentn
- Salesflare
- Salesforce
- SendFox
- SendinBlue
- Sendlane
- Tubular
- UserEngage
- WP ERP
- Zoho
For more info on CRM compatibility, check out the compatibility table.
WP Fusion is one of my secret weapons for getting WordPress to keep our member’s data synced with our CRM. This makes everything work so much better when you don’t have to worry about your members having issues logging into the member’s area.
If you have or are considering having a membership website using WordPress this plugin is a must-have. It will save you hours of time and frustration.
Greg Russell – SuccessTeam Marketing
Screenshots
Blocks
This plugin provides 3 blocks.
- Unsecure
- WP Fusion
- Inner
Installation
Upload and activate the plugin, then go to Settings >> WP Fusion. Select your desired CRM, enter your API credentials and click “Connect” to verify the connection.
For CRM-specific setup information, see our Installation Guide.
FAQ
-
Who is it for?
-
WP Fusion is built for anyone using a CRM or marketing automation platform, and running their website with WordPress.
CRMs empower businesses to track leads, send email broadcasts, manage contact data, track sales, delegate client relationships between employees, and more.
WordPress handles the public facing side of your business: your sales pages, ecommerce platform, support forums, photos and videos, and anything else you want the world to see.
But your CRM and WordPress don’t talk to each other.
This is where WP Fusion comes in.
WP Fusion acts as a bridge between your WordPress data and CRM data— it allows you to use data from WordPress to power your marketing campaigns, and data from your CRM to personalize the customer experience in WordPress.
-
How is it different from Zapier?
-
While WP Fusion and Zapier are both integration tools, they work quite differently.
Zapier is a SaaS (Software as a Service) solution that acts as a middleman between your site and your CRM (as well as many other platforms).
When something is updated in WordPress, it is synced to Zapier’s website, and then Zapier syncs the data on to your desired platform. Depending on your plan there is a delay before the data is synced, and/or limit on how many “tasks” you can run each month.
WP Fusion connects your site directly to your CRM or marketing automation platform over the API (nothing goes through our website). Because of this the sync of data is instant, secure, and there are no monthly limits.
In addition to syncing data with your CRM, WP Fusion also includes many options for protecting your WordPress content based on CRM tags, and triggering changes in membership level or course enrollments based on CRM automations. This generally isn’t possible with Zapier because Zapier is configured via zapier.com, not inside your WordPress dashboard.
-
Can I disable the upgrade nags?
-
WP Fusion Lite has a few banners on the settings pages with additional info about the features available in the Pro version.
If you’d prefer not to see these you can disable them with the filter:
add_filter( 'wp_fusion_hide_upgrade_nags', '__return_true' );
-
Do you have more FAQs?
-
Of course, see our Frequently Asked Questions.
Reviews
Contributors & Developers
“WP Fusion Lite – Marketing Automation for WordPress” is open source software. The following people have contributed to this plugin.
ContributorsTranslate “WP Fusion Lite – Marketing Automation for WordPress” into your language.
Interested in development?
Browse the code, check out the SVN repository, or subscribe to the development log by RSS.
Changelog
3.41.2 – 3/27/2023
Tech stuff
- Tested for WordPress 6.2.0
New CRMs
- Added Ortto CRM integration
- Added Engage CRM integration
New Features
- Added option to refresh a user’s tags when access is denied
- Added
wpf-refresh
query string parameter to force a refresh of the user’s tags and/or meta from the CRM - Added a
sync_if_empty
parameter to theuser_meta
shortcode - Added option to completely remove all WP Fusion settings from the database when resetting the main settings page
-
Added Previous User Email field for sync (to track email address changes)
-
Added support for updating lookup fields and associated entities with Microsoft Dynamics 365 Marketing
- Added option with FluentCRM (REST API and same site) to set the default status for new contacts to either Subscribed or Pending (and trigger a double opt-in email)
- Added link to edit the contact in the CRM for HighLevel (requires a Resync Contact IDs operation to load the edit URLs)
- Added new scopes to HubSpot integration: timeline, crm.objects.custom.read, and crm.objects.custom.write
- Added Intercom event tracking
- Added Intercom site tracking
- Added Klaviyo event tracking
- Added direct link to view a subscriber from WordPress when using the new V2 MailerLite API
- Added OAuth API integration with Mautic (requires settings reset)
- Added Optin Status field for sync with MailerLite — you can sync a value of
active
,unconfirmed
, orunsubscribed
to update the subscriber’s status in MailerLite
Improvements
- Improved – With CRMs that support identifying a visitor to a tracking script via JavaScript, a visitor can now be identified in the same page load as a form submission (instead of requiring a redirect or refresh)
- Improved – The “Select a redirect” box in the main WP Fusion metabox can now accept a page or a URL
- Improved – The API Queue will now run on the
shutdown
hook at priority -1 instead of 1, to try and get ahead of any potential redirects in WooCommerce payment gateways - Improved – You can now set the
WPF_MULTISITE_PREFIX_KEYS
in wp-config.php to turn on blog ID prefixes for usermeta keys - Improved – When an auto-login session loads the tags for someone who has a user account on the site, those tags will also be saved to their local cache
- Improved – Clicking Cancel on a batch operation / export operation will now cancel the next operation in the queue, even if the key is unknown
- Improved status output for batch operations in the console: will now count items processed in the last batch, and available memory is human-readable
- Improved – Some plugins sloppily trigger
wp_login
twice during a single login. WP Fusion will now only run on the first instance - Improved notifications when an error was encountered saving or validating an option in the WP Fusion settings
- Improved: the
wpf_update_meta
andwpf_update_tags
shortcodes will now output an HTML comment to help locating them within a page - Improved – Using the
date-format
parameter in theuser_meta
shortcode will now output the date in the site’s language (as opposed to English) - Improved – If a user’s contact record is deleted, their cached tags will be deleted as well (previously these were left behind and could clutter up the database)
- Improved – If a contact was created in staging mode, deactvating staging mode will also remove the user’s
staging_xxxx
contact ID - Improved lead source tracking — tracking data will now be stored JSON-encoded inside of a single cookie, instead of across multiple cookies
- Improved – Set a
max-height
on the debug output for HTTP API logging in the logs -
Improved – With CRMs which require an email address for some API calls, WP Fusion will now check to see if the email can be retrieved from a WooCommerce order before making an API call to load the contact (improves performance)
-
Improved – ActiveCampaign event tracking API calls updated to use
wp_remote_post()
instead ofwp_safe_remote_post()
to fix occasionalA valid URL was not provided
errors - Improved – The Bento tracking script will now be registered via
wp_enqueue_script()
instead of inline, to play better with caching and optimization plugins - Improved – The cookie to track Bento guest form submissions will only be set for one hour (instead of one year). This is plenty of time for the Bento tracking script to pick it up, and will make it easier to cache pages for identified guests
- Improved – Guest form submissions and checkouts will now pass the guest’s email address to the Bento tracking script
- Improved – Removed redundant
name
andemail
custom fields with Bento - Improved error handling with Dynamics 365
- Improved – Updated Klaviyo integration to use the new v2022-10-17 API, which will greatly improve performance
- Improved MailerLite error handling
- Improved – When changing the tag type with Salesforce, all users will automatically have their tags resynced from the CRM
- Improved – When using a Picklist for Salesforce tags, if an unknown is loaded for a user, it will be added to the dropdown of available options
Bug Fixes
- Fixed “Action Failed” error when flushing the logs when WooCommmerce’s logging was active in database mode
- Fixed fatal error with Push All when other plugins updated user meta fields before WP Fusion had loaded
- Fixed HTML in custom field names being displayed in the Contact Fields list
- Fixed JavaScript based lead source tracking not working with WP Rocket
- Fixed warning “Attempt to read
cap_key
on bool” when adding or removing roles with a deleted user ID - Fixed the
wpf_update_meta
shortcode triggering a pull from the CRM multiple times per page load (if used with multiple blank fields) - Fixed WP Fusion not running on multiple user registrations in the same request
- Fixed
timezone-offset
parameter in theuser_meta
shortcode being treated as minutes, not hours - Fixed batch operations started on a single multisite showing the status bar on all other sites in the network
- Fixed fatal error displaying a user’s tags on the All Users list when a user’s tags were stored as a string, with PHP 8
- Fixed PHP error
Cannot use string offset as array
when importing users with PHP 8 -
Fixed being unable to clear out the User dropdown filter in the logs once a user was selected
-
Fixed Event Tracking not working with a recent ActiveCampaign API update (not sure exactly when it started)
- Fixed the ActiveCampaign integration intercepting API errors from other CRMs during the initial connection process
- Fixed fatal error syncing string-formatted date timestamps to ActiveCampaign with PHP 8.1
- Fixed link to edit subscriber in Bento not available immediately after creating a new subscriber
- Fixed Bento integration returning
false
when a contact had no tags, instead of an empty array. Sometimes caused errors with other integrations. - Fixed: Removed Drip site tracking code (Drip no longer supports site tracking)
- Fixed date fields not syncing to FluentCRM (REST API)
- Fixed API errors syncing multiselect or array data with Gist
- Fixed Event Tracking not working with Groundhogg (This Site)
- Fixed custom properties created with the core Groundhogg plugin (not the Better Meta extension) not being available for sync
- Fixed error resyncing available fields when the Groundhogg Better Meta plugin was active
- Fixed logs warning with Groundhogg when a user updated their email address to have capital letters in it
- Fixed Event Tracking updating the most recent event instead of creating a new one with Groundhogg (REST API)
- Fixed Groundhogg (REST API) integration not loading more than 100 available tags
- Fixed all phone numbers getting synced to HighLevel with a +1 country code
- Fixed HubSpot integration using a 120 second timeout
- Fixed redirect URI mismatch error with HubSpot (since HubSpot scopes were updated on March 24th)
- Fixed GMT calculation with HubSpot dates adding the GMT offset when it should have been subtracing it
- Fixed error
Failed to parse XML-RPC request
when syncing HTML in text fields to Infusionsoft / Keap - Fixed warnings
Return type of X should be compatible with Y
warnings with PHP 8.1 and the XMLRPC library (Infusionsoft/Keap) - Fixed Klaviyo integration sometimes loading “Unknown List” entries from subscribers in cases of deleted or system lists
- Fixed groups not applying for anonymous subscribers when using the new MailerLite API
- Fixed updating a user profile in WordPress marking MailerLite subscribers as Active even if they hadn’t been confirmed yet
- Fixed MailPoet integration listing a user’s segments as “unknown lists”
- Fixed an unhandled error refreshing the Mautic access token when the user’s API credentials had changed
- Fixed – Pipedrive integration will now use a private app instead of a public app, which will allow setup to complete (previously we were pending a public app review for several months)
- Fixed Quentn integration treating a Contact Not Found as a serious error
- Fixed import tool not working with Salesforce picklist-based segmentation
- Fixed Salesforce integration not loading more than 2000 available topics
- Fixed Import Users tool with Sendinblue not loading more than 500 subscribers
- Fixed PHP warning
Undefined variable $code
in Zoho integration when handling an API error
Developer
- Developers: If the background worker / exporter goes rogue, you can now hard cancel everything by appending
&wpf-cancel-batch
to the WPF settings page URL - Developers: Added filter
wpf_get_email_from_contact_id
- Updated Growmatik integration
3.40.36 – 11/1/2022
Tech stuff
- Tested for WordPress 6.1.0
- Tested for PHP 8.1.9
New CRMs
New Features
- Added Refresh Available Tags & Fields button to the admin toolbar
- Added “Add to CRM” checkbox on admin Add New User form
- Added as-you-type filter to Preview With Tags admin bar dropdown when there are more than 20 available tags
- Added support for the Groundhogg White Label Branding extension
- Addded Avatar URL for sync with FluentCRM (can update the contact’s photo by syncing a URL to an image)
- Added County, Availability, Support Level, Latitude, Longitude, Voting District, Inferred Support Level, Priority Level, Do Not Call, Mobile Opt-In, Recruiter ID, and Do Not Contact fields for sync with NationBuilder
- Added Status field for sync with JetPack CRM
Improvements
- Improved – The tags list in the All Users list now has a max height set, and can be clicked to expand
- Improved support for syncing user capabilities when using a custom table prefix
- Improved – Dates will be force to UTC for timestamp conversion before beng synced (fixes issues with other plugins calling
date_default_timezone_set()
and messing up the conversion) - Improved – Filter Queries Advanced will now take into account any
post__in
arguments when building up the array of post IDs to exclude (improves performance) - Improved performance when using Filter Queries in Advanced mode and a query is for multiple post types
- Improved – Exporting the activity logs will now automatically unserialize any serialized data
- Improved – The HTTP API logs will now be associated with the user who initiaited the API call, instead of “system”
- Improved – If the logs are disabled, the logs database table will be dropped
- Improved staging site automatic detection on hosts that find/replace the site URL throughout the database when copying from live to staging
- Improved and simplified duplicate site and staging site notices in the admin
- Improved – Made WP Fusion menu item and settings page title able to be white labelled via the
gettext
filter - Improved Return After Login feature, will also run on the
login_redirect
filter for cases where another plugin takes priority over the login redirect onwp_login
- Updated Autonami to FunnelKit Automations
- Improved – If Autonami is running on the same site, tag changes will be synced across to WP Fusion immediately, without requiring an API call
- Improved – The Bento integration will force all email addresses to lowercase, both for syncing and for contact ID lookups
- Warning – Bento users – Note that this change will cause WordPress users to become disconnected from their Bento subscriber records if their email addresses in Bento contain capital letters. To fix this, it’s recommended to run a Push User Meta operation one time, and WP Fusion will update all your subscriber records in Bento to use lowercase email addresses
- Improved – Groundhogg integration will now log an error when updating a contact’s email to an address that is already in use by another contact
Bug Fixes
- Fixed – All links to CRM contact records in the logs will now open in a new browser window
- Fixed Staging Mode checkbox not un-checkable when the site was in staging mode due to detecting a change in the site’s URL
- Fixed the TipTip JS file getting enqueued twice with WooCommerce (made tooltips not automatically close)
- Fixed staging mode only auto-activating in the admin of the staging site
- Fixed Preview With Tag not working with tags with apostrophes in the tag name
- Fixed Filter Queries – Advanced not working on
post
post type when not speficied as thepost_type
in theWP_Query
arguments - Fixed
?wpf-end-auto-login=true
query parameter not working - Fixed memory leak when using [the_excerpt] shortcode inside a post’s main content area
- Fixed PHP warning during auto-login session when a Return After Login redirect was attempted
- Fixed Apply Tags on View functionality not working when “Restrict Content” was disabled in the General settings
- Fixed connection settings getting overwritten when calling
wp_fusion()->settings->set()
after having switched to another multisite blog - Fixed fatal error trying to delete import groups that contained
WP_Error
s - Fixed disabling the API queue also disabling staging mode
- Fixed JavaScript lead source tracking not working on some hosts (cookie components were being URI-encoded)
- Fixed removing a user role syncing the user’s role as the name of the role that was just removed
- Fixed fatal error on WP Fusion settings page when connected to Jetpack CRM and the Jetpack CRM plugin was deactivated
- Fixed Groundhogg syncing new user registrations to Groundhogg before WP Fusion
- Fixed PHP warnings in Maropost integration
- Fixed lists not loading with Dynamics Marketing 365
- Fixed fatal error starting an auto login session with Dynamics 365 when the contact wasn’t on any lists
- Fixed the MailerLite integration logging an error when a subscriber record isn’t found for an email address (should just be an info message)
- Fixed custom fields not loading with Autonami 2.2.0
- Fixed PHP warning loading usermeta fields from Autonami (same site)
- Fixed unhandled fatal error when a HubSpot access token refresh failed
- Fixed un-selected checkboxes not being loaded from HubSpot
- Fixed address and phone fields not updating with Groundhogg (REST API)
- Fixed error
The entity "ccedil" was referenced, but not declared.
when syncing a country value ofCuraçao
to Infusionsoft - Fixed missing
use_utm_names
flag with Ontraport when updating existing contacts (prevented lead sources from being set) - Fixed tags not loading with MooSend
- Fixed PHP warnings in MooSend integration
- Fixed Mautic ignoring empty fields
Developer
- Added error handling for the Sendinblue Sales CRM API
- Developers: When a user’s tags are modified, the memory cache at WPF_Access_Control::$can_access_posts will be cleared
- Developers:
wpf_crm_loaded
action will now pass the active CRM as a parameter - Developers: Fixed
wpf_get_setting_{$id}
filter not updating the option inputs on the settings page - Developers – Improved: The
validate_field_
filters in the settings will now only run when an option value has changed instead of on every save
3.40.12 – 7/13/2022
New CRMs
New Features
- Added
the_excerpt
shortcode for use in the restricted content message - Added EMPTY and NOT EMPTY comparisons to the
user_meta_if
shortcode - Added option to use a custom picklist field for tags with Salesforce
- Added Current Page pseudo-field to lead source tracking fields
- Added support for Sendinblue event tracking
- Added support for Sendinblue site tracking
- Added option to completely disable the access control system
- Addded an experimental method for setting the lead source tracking cookies on sites like WP Engine and Flywheel which sanitize UTM parameters out of request URIs
- Added fields Marital Status and External ID for sync with NationBuilder
- Added Status field for sync with FluentCRM (same site)
Improvements
- Improved – If a tag is set for a post (or the More block is used), and the Restricted Content Message is being displayed, the post excerpt (above the tag) will be displayed
- Improved – When searching in the Redirect if Access is Denied dropdown in the main WP Fusion meta box, results will by grouped by post type
- Improved – The tooltip for restricted content in the admin post list table will now show if a redirect has been configured on the post
- Improved – If an auto login link is visited, the Return After Login process will be triggered (if enabled)
- Improved – Auto login sessions will now be ended on the
set_logged_in_cookie
action instead ofwp_login
andwp_authenticate
(fixes conflict with Gravity Perks Auto Login) - Improved – If a user registers and has an existing Lead record in Gist, the Lead will be converted to a User
- Improved – If a timestamp being synced to HubSpot is already a whole date (midnight UTC), it won’t be recalculated using the site’s timezone offset
- Improved – Mobile phone numbers synced to NationBuilder will be set to opted in for SMS by default
- Improved – If a contact has been deleted or merged in ActiveCampaign and a “not found” error is triggered, WP Fusion will try to look up the contact again by email address and retry the API call
- Improved – If an invalid timestamp is being synced to HubSpot (+/- 1000 years from today) it will be removed from the payload to avoid an API error
- Improved – Updated NationBuilder add contact API endpoint to
/people/push
instead of/people
to better handle merging duplicate records - Improved – Bento event tracking can now accept an array for
$event_data
- Improved – Shortened the URL length when filtering data in the activity logs
- Improved – Updated Mailchimp
add_contact()
API call toPUT
instead ofPOST
to better handle duplicates - Improved logging when syncing dates with invalid formats
- Improved HubSpot error handling
- Improved Sendinblue error handling for failed contact record creation
- Improved error handling with ActiveCampaign (403 errors are now properly handled)
Bug Fixes
- Fixed Return After Login feature not working since WordPress 6.0
- Fixed Mautic ignoring empty fields
- Fixed the “Require Admin Permissions” setting (Advanced settings tab) not working
- Fixed conflict with “WooCommerce Fattureincloud Premium” when loading the available WooCommerce checkout fields in the admin
- Fixed some HTML and escaping glitches on the WooCommerce product panel upgrade nag with WP Fusion Lite
- Fixed incorrect format when syncing dates to Bento
- Fixed conflict (
Uncaught ArgumentCountError
) with the auto-register functionality in FluentCRM v2.5.9 - Fixed slashes in Mautic API passwords not getting unslashed before saving, and breaking the API connection
- Fixed bulk editing access rules not working since WordPress 6.0
- Fixed date fields not syncing to NationBuilder
- Fixed UI saying “Add Topics” instead of “Add Tags” when using a picklist field for tags with Salesforce
- Fixed PHP warning
Expected parameter 2 to be array, null given
when bulk editing WP Fusion access rules and the Merge Changes box was checked - Fixed fatal error
Class 'WPF_Staging' not found
when trying to sync data to the CRM on a multisite install after callingswitch_to_blog()
- Fixed the Drip integration not loading custom fields with capital letters in the field keys
- Fixed conflict with Premmerce Permalink Manager for WooCommerce (WP Fusion settings page not saving)
- Fixed logs not properly displaying the results of a value modified by the
wpf_format_field_value
when the input variable was empty - Fixed empty dates getting synced to Mailchimp as Jan 1st 1970
- Fixed PHP warning in
WPF_CRM_Base
when viewing an admin user profile before WP Fusion had been set up - Fixed admin users list showing No Contact ID for users who had a contact ID but no tags
- Fixed updates to existing leads not working with Intercom and Gist
- Fixed PHP warning trying to apply tags via AJAX when an invalid tag name was provided
- Fixed Gist integration not loading more than 50 available tags
- Fixed user passwords getting recorded in the logs when registering a new user during an active auto-login session
- Fixed broken “Reauthorize with NationBuilder” link on the setup panel
- Fixed (Lite) – Integrations settings tab will now be hidden in WP Fusion Lite
- Fixed Capsule integration not returning the contact ID of newly created contacts
- Fixed filtering in the logs not working if headers were already sent by another plugin
- Fixed 401 / unauthorized errors not being correctly handled with Bento
- Fixed dismissing notices on the WPF settings page not being remembered
- Fixed adding a new list in HubSpot via WP Fusion causing the existing Select A List dropdown to only show
(array)
for each list option - Fixed unhandled exception when updating a contact’s email address to an email address already in use by another contact, with FluentCRM (same site)
- Fixed import by tag not working with MailChimp and numeric tag IDs
- Fixed unclosed
<
table> tag on the Setup tab when connected to NationBuilder
* Fixed first and last name fields not syncing to Bento
* Fixed capabilities being saved to the database with wp_
as the prefix instead of the current blog prefix
* Fixed some unclosed HTML tags in the single taxonomy term settings table
* Fixed un-checked checkboxes not syncing with Sendinblue boolean fields
* Fixed FluentCRM (same site) custom fields not being erased when a null value was synced
* Fixed logs not indicating a value was modified by the wpf_format_field_value
filter when only the type had changed (fixed !=
to !==
)
* Fixed dates syncing to HubSpot in UTC not local time
* Fixed custom fields not syncing to Autonami
* Fixed Import Tool not working with Mailchimp since 3.38.35
* Fixed date filter in the logs not working
Developer
- Refactored and simplified CRM class structure: removed calls to wp_fusion()->crm_base, removed class
WPF_CRM_Queue
, removed redundancies in callingWPF_Staging
CRM - Refactored and simplified lead source tracking
- Removed parameter
$map_meta_fields
in CRM classes. Field mapping is now handled in__call()
magic method inWPF_CRM_Base
(i.e.wp_fusion()->crm
) - Developers: Improved – WP Fusion will not save the main settings if you are currently switched to another blog on a multisite install. This prevents settings from the original site overwriting the site you’ve switched to.
- Developers: Added filter
wpf_loaded_tags
when tags are loaded from the CRM for a user - Developers: added action
wpf_crm_loaded
- Developers: Added function
wpf_is_staging_mode()
- Developers: Fixed the
wp_fusion_init_crm
action running too early for code added to functions.php (moved fromplugins_loaded
toinit
) - Fixed missing second parameter
$force
in wpf_get_tags() function - Fixed fatal error calling
wpf_get_current_user()
before the API was initialized
3.38.44 – 2/24/2022
New CRMs
- Added Bento marketing automation integration
- Added Groundhogg (REST API) CRM integration
- Added Microsoft Dynamics 365 CRM integration
- Added MooSend integration
New Features
- Added – With FluentCRM, Groundhogg, HubSpot, Infusionsoft, and Ontraport you can now type new tag names into the Select Tag(s) dropdown, and if the tag doesn’t exist WP Fusion can send an API call to create the new tag
- Added links to the logs to go directly to the CRM contact record for each user
- Added
IN
andNOT IN
comparisons to theuser_meta_if
shortcode - Added
timezone-offset
attribute touser_meta
shortcode - Added IP Address field to Contact Fields list
- Added View In CRM link to the user action links on the All Users list in the admin
- Added Status section to WP Fusion settings with status and debug information about the plugin
- Added link to admin user profile to view the logs for that user
- Added Export to CSV button to Activity Logs
- Added user search field to the logs table
- Added option to prefix usermeta keys with the current blog prefix to avoid sharing contact IDs and tags across sub-sites on multisite installs (can be enabled from the Advanced settings tab)
-
Added logging for when a date failed to sync to the CRM because the input date format couldn’t be converted to a timestamp
-
Added Emercury site tracking
- Added support for custom objects with HubSpot
- Added notice to HubSpot integration about enabling marketing contacts for the WP Fusion app
- Added Phone 1 Extension, Phone 1 Type, Phone 2, Phone 2 Extension, Phone 2 Type fields for sync with Infusionsoft
- Added social fields for sync with Infusionsoft / Keap (click Refresh Available Fields to load them)
- Added support for syncing to Date/Time fields with Keap and Infusionsoft
- Added dynamic tagging support to Mailchimp integration (requires resetting the settings for existing installs)
- Added Salesforce OAuth integration – Salesforce users will need to go to the WP Fusion settings page one time and grant OAuth permissions to use the new API
Improvements
- Tested for WordPress 5.9
- Improved – Staging site detection will now prompt you whether to recognize the new site URL as the main site vs. staying in staging mode (similar to WooCommerce Subscriptions)
- Improved – Filter Queries will now be bypassed when DOING_CRON is set to true
- Improved – When using Filter Queries – Advanced, posts protected by taxonomy terms will be properly excluded
- Improved performance with checking post access against taxonomy term restrictions
- Improved – Logs will now show “user-login” as the source when data was synced due to Login Meta Sync or Login Tags Sync
- Improved – Auto login will set a cookie
wordpress_logged_in_wpfusioncachebuster
which should bypass caching on most configurations - Improved – If the full WP Fusion is activated, the WP Fusion Lite plugin will be automatically deactivated
- Improved – Removed some redundant data in the logs when HTTP API logging is enabled
- Improved – HTTP API logging will now show JSON-decoded request and response bodies where applicable
- Improved – HTML tags will be removed when exporting the activity logs to .csv
- Improved – When resetting the main settings page, the cached contact IDs and tags will be deleted for all users (this fixes “Invalid contact ID” errors when switching between CRM accounts)
- Improved – Stopped ending auto-login sessions on registration (
user_register
hook) - Improved – Select Tags boxes in Appearance >> Menus editor will now lazy load their tags, for improved menu editing performance
- Improved – If a field type is set to “raw” an empty value loaded over the CRM will erase the value saved in WordPress
- Improved – If a field type is set to multiselect and it is stored as a comma-separated text value, the value will be synced as an array with supported CRMs
- Improved – If a page using an auto-login query string (?cid=) is refreshed, for example due to a form submission, this will no longer force reload the contact’s tags from the CRM
-
Improved – Dates displayed with the [[user_meta]] shortcode will now use the site’s current timezone
-
Improved – ActiveCampaign integration now fully uses the WordPress HTTP API instead of the ActiveCampaign PHP SDK
- Improved ActiveCampaign error handling so that it now looks at the response code instead of message (some errors were not being caught properly with non-English accounts)
- Improved – ActiveCampaign HTTP timeout extended to 20 seconds (instead of 15)
- Improved Autonami error handling
- Improved – Added a notice to the logs when a new ConvertKit subscriber is being created with a random tag due to no default tag being set
- Added support for loading multiselect data from Copper
- Improved logging with Drip, when an email address is changed to an address that already has a subscriber record
- Improved – A successful API response from Drip for a subscriber will remove the Inactive badge in the admin
- Improved – Stopped syncing user ID when updating Gist subscribers (should cause records to get merged less often)
- Improved HubSpot error handling
- Improved – Read-only tags and lists (i.e. with HubSpot) will no longer show up in Apply Tags dropdowns (only Required Tags dropdowns)
- Improved – HubSpot’s site tracking script is now disabled on the WooCommerce My Account page, to prevent the script from trying to sync account edits with the CRM
- Improved – When creating a new lead in Kartra, the user’s IP address will be sent by default
- Improved Mailchimp API performance for applying and removing tags
- Improved Mailchimp API performance when loading available tags
- Improved Mailchimp contact ID lookup — will now only return exact matches (fixes an issue where tags would be applied to the wrong contact when using sub-inboxes with Gmail)
- Improved – Mailchimp Audience select box is moved to the Setup tab and fields and tags can be loaded for a new audience without having to save the settings first
- Improved – Mailchimp setup will now show a warning if you try to connect and there are no audiences in your account
- Improved logging of authentication errors with Salesforce
- Improved Zoho error handling and made error messages clearer
Bug Fixes
- Fixed – Outgoing API calls to remove and apply the same tag in the same request will be ignored (fixes issue of tag changes getting processed out of order in the CRM)
- Fixed PHP warning calling wp_fusion()->user->get_user_meta() when not logged in
- Fixed fatal error loading the
role
field with an array value (now the first array value will be used as the role) - Fixed the Prevent Reapplying Tags setting not working if at least one of the tags to be applied was new
- Fixed PHP notice “wpdb::prepare was called incorrectly” when checking taxonomy term access rules on posts
- Fixed HTML not saving in the Default Restricted Content Message since 3.38.0
- Fixed special characters getting synced to the CRM HTML encoded since 3.38.0
- Fixed apply tags via AJAX endpoints resulting in a 403 error since 3.38.0
- Fixed empty date fields being synced as 0 which could evaluate to January 1st 1970 in some CRMs
- Fixed date values before 1970 not being synced correctly
- Fixed access checks sometimes failing when using tag names with HTML special characters in them
- Fixed tags with > and < symbols getting loaded from the CRM HTML-encoded
- Fixed PHP warning in class WPF_User when registering a new user with no first or last name
- Fixed PHP warning in the admin when editing a page that has child pages
- Fixed – Removed
wp_kses_post()
on restricted content message (was breaking login forms) - Fixed
http_request_failed
errors from the WordPress HTTP API not being logged as errors - Fixed JavaScript error with Resync Tags button on admin user profile
- Fixed serialized data not being unserialized during a Push User Meta operation
-
Fixed links not displaying in the activity logs since 3.38.0
-
Fixed import by tag with ActiveCampaign sometimes importing contacts with the wrong tag ID when the search string matched multiple tags
- Fixed ActiveCampaign multiselect fields loaded as text being prepended/appended by ||
- Fixed
Fatal error: Cannot declare class AC_Connector
since 3.38.0 - Fixed updated Copper API URL
- Fixed multiselect data not syncing to Copper
- Fixed checkbox data not syncing to Copper
- Fixed 422 error with Drip when trying to sync data into a field that had a dash or space in the field ID
- Fixed an empty API response from Drip marking users as Inactive
- Fixed import tool with Drip not importing unsubscribed subscribers
- Fixed import tool with Drip not importing more than 1000 subscribers
- Fixed issue syncing tags with Emercury for subscribers that had upper case letters in their email address
- Fixed PHP warning in Emercury integration
- Fixed update contact method not working with FluentCRM (REST API)
- Fixed Import Users tool not working with FluentCRM (same site)
- Fixed initial REST authentication (Groundhogg, FluentCRM, Autonami) sometimes breaking if there was a trailing slash at the end of the REST URL
- Fixed “contact data not found” error receiving Groundhogg REST webhooks
- Fixed “The tags must be an array.” error message with HighLevel when using Create Tag(s) from Value
- Fixed checkbox fields not syncing with HubSpot
- Fixed fatal error in HubSpot integration when using site tracking and an API error was encountered trying to get the tracking ID
- Fixed
wpf_infusionsoft_safe_tags
filter not stripping invalid characters out of tag category names - Fixed – Infusionsoft integration will force all numeric values to sync as text to get around “java.lang.Integer cannot be cast to java.lang.String” errors
- Fixed countries with e-acute symbol in their name not syncing to the Country field with Infusionsoft
- Fixed Infusionsoft not loading more than 1000 available tags per category
- Fixed Intercom rejecting new subscribers without a last name
- Fixed PHP warning loading subscriber with no tags from Intercom
- Fixed updates to existing contacts not working with Klaviyo
- Fixed deleted tags in Mailchimp not being removed from the dropdowns in WP Fusion
- Fixed Incomplete Address error with Mailchimp when syncing United States of America as the country, but not specifying a state
- Fixed 5 second timeout loading a contact with Maropost (increased to 20s)
- Maropost bugfixes
- Fixed – Updated Maropost API calls to use SSL API endpoint
- Fixed Ontraport integration not creating new contacts with missing emails (even though Ontraport allows contacts to not have an email address)
- Fixed – Salesforce dates will now be formatted using gmdate() instead of date() (fixes some time zone issues)
- Fixed error syncing array values with Sendinblue
- Fixed Sendinblue error “attributes should be an object” when syncing data without any custom fields
Developer
- Developers – The active CRM object is now passed by reference via the
wp_fusion_init_crm
action and can be operated on - Developers – The process lock time for the background worker will now respect the site’s PHP
max_execution_time
. The lock time will be the max time + 30 seconds. - Developers: Data loaded from the CRM will now be passed through
wp_kses_post()
instead ofsanitize_text_field()
(since 3.38), to permit syncing HTML inside of custom fields - Developers – Added filter
wpf_query_filter_cache_time
- Developers – Added filter
wpf_restricted_terms_for_user
- Developers – Added filter
wpf_taxonomy_rules
- Developers: Added filter
wpf_wp_kses_allowed_html
- Developers – Added constants
WPF_CONTACT_ID_META_KEY
andWPF_TAGS_META_KEY
- Developers – Added function
wpf_get_current_user_email()
- Developers – Added function
wpf_clean_tags()
(same aswpf_clean()
but allows special characters) - Developers – Fixed missing second argument
$force_update
inwpf_get_contact_id()
- Developers: Fixed
wpf_get_contact_id()
sometimes returning an empty string instead offalse
when a contact record wasn’t found
3.38.2 – 8/18/2021
- Fixed error
Call to undefined function get_current_screen()
since 3.38.0 when performing some admin actions - Fixed auto-login links not working since 3.38.0
- Fixed initial default field mapping not being stored after setup until the settings were saved the first time
- Developers: Removed WPF_* prefix from 3rd party CRM SDK classes (to comply with wordpress.org plugin guidelines)
3.38.0 – 8/13/2021
- Big cleanup and refactoring with improvements for security, internationalization, and documentation
- Added View in CRM URL for Jetpack CRM
- Fixed user profile updates overwriting Jetpack CRM contacts
- Fixed logs getting flushed when hitting Enter in the pagination box
- Deleted unused XMLRPC modules in the Infusionsoft iSDK
- Developers: Added function
wpf_get_option()
(alternative forwp_fusion()->settings->get()
) - Developers: Added function
wpf_clean()
- Developers: Deprecated
wp_fusion()->settings->get_all()
- Developers: Changed
wp_fusion()->settings->set_all( $options )
towp_fusion()->settings->set_multiple( $options )
3.37.31 – 8/7/2021
- Fixed XSS vulnerability on logs table in the admin.
3.37.30 – 8/6/2021
New CRMs
New Features
- Added View In CRM links (direct link to the contact record) for all CRMs that support it
- Added a Send Welcome Email option in the Imported Users settings
- Added Picture URL field for sync with CapsuleCRM
- Added Job Title field for sync with Capsule CRM
- Added unique_id field for sync with Ontraport
- Added Owner ID field for sync with Intercom
- Added Google Analytics fields for sync with Intercom
Improvements
- Improved – Wildcards * can now be used in the Allowed URLs setting for Site Lockout
- Improved – Added warning for admins when viewing a post that has access rules enabled, but no redirect specified
- Improved – If the Limit User Roles setting is in use, and a user without a CRM contact record has their role changed to a valid role, a new contact record will be created in the CRM
- Improved – Return after login cookies will now be set if access is denied and the restricted content message is shown (previously it only worked after a redirect)
- Improved – Comments forms will be pre-filled with the temporary user’s details during an auto-login session
- Improved – If a field type is set to
text
then arrays will be converted to comma-separated strings for syncing - Improved – Stopped “Unknown Lists” from being loaded from HubSpot
- Improved – Custom leadsource tracking variables registered via the wpf_leadsource_vars filter will show up on the Contact Fields list automatically
- Improved – Contact fields settings will default to suggested usermeta / CRM field pairings
- Improved – If you have more than 1,000 tags, they will be loaded in the admin via AJAX when you focus on the dropdown (improves admin performance)
- Improved site tracking with EngageBay (logged-in users will now be identified to the tracking script by email address)
- Improved site tracking with Mautic after guest form submission
- Added indicator in the logs when a pseudo field or read only field (i.e. user_registered) has been loaded from the CRM
- Added notification badge on WP Fusion Logs admin menu item to indicate when there are unseen API errors in the logs
- Added logging when a site tracking session has been started for a guest, for ActiveCampaign, HubSpot, and EngageBay
- Added error message when connecting to FluentCRM (REST API) and pretty permalinks aren’t enabled on the CRM site
Bug Fixes
- Fixed console errors in the Widgets editor since WP 5.8
- Fixed auto-login loading the user’s tags on every page load
- Fixed fatal error with Drip SDK and PHP 8
- Added nonce verification to Flush All Logs button (improved security)
- Fixed custom fields not syncing with Maropost
- Fixed PHP warning updating contacts with Intercom
- Fixed Capsule CRM not loading more than 100 tags
- Fixed undefined index PHP warning loading data from ActiveCampaign
- Fixed “Invalid email address” error with Mailerlite when Email Changes setting was set to Duplicate
- Fixed error syncing array formatted data to Intercom
- Fixed fatal error with Klick-Tip when making API calls using expired credentials
- Fixed datetime fields being synced to ActiveCampaign in 12h format (fixed to 24h format)
- Fixed fatal error trying to sync multidimensional arrays to the CRM
- Fixed default fields not being enabled for sync in the settings after first setting up the plugin
- Fixed the default owner for new Zoho contacts overriding a custom owner
- Fixed fatal error when enabling ActiveCampaign site tracking while WP Fusion is in staging mode
- Fixed PHP warning syncing array values with HighLevel
- Fixed PHP notices in Groundhogg integration
Developer
- Added wpf_get_users_with_contact_ids() function
- Developers: wp_fusion_init action will now only fire if WP Fusion is connected to a CRM
- Developers: Added
wpf_get_lookup_field()
function for getting the API name of the CRM field used for contact lookups (usually Email) - Developers: Added
wpf_infusionsoft_safe_fields
filter (strips out Asian characters loaded over the API in field names to prevent XML parse errors) - Developers – added
wpf_get_users_with_tag( $tag )
function - Developers – added
wpf_get_datetime_format()
function andwpf_datetime_format
filter - Developers – Added wpf_get_tags() function
- Developers – Added action wpf_meta_box_content_{$post->post_type}
- Developers – Refactored user_can_access() function for better performance and readability
- Developers: Added wpf_disable_crm_field_select4 and wpf_disable_tag_select4 filters
- Developers: removed register_shutdown_function() in API queue in favor of the “shutdown” WordPress action
3.37.18 – 5/18/2021
New CRMs
- Emercury
- FluentCRM (REST API)
New Features
- Added Auto Login debug mode
- Added View in CRM links to admin user profile for FluentCRM and Groundhogg
Improvements
- Added notice to the logs when Filter Queries is running on more than 200 posts of a post type in a single request
- Added warning during HubSpot setup if site isn’t SSL secured
- Added additional context to the “Can not operate manually on a dynamic list.” error with HubSpot
- Improved performance with taxonomy term access rules
- Improved – Active HubSpot lists will now show as “read only” when selected
- Improved – User-entered fields on the Contact Fields list will now show under their own heading
- Improved support for syncing phone numbers with HighLevel
- Improved – user_email and user_pass will no longer be loaded from the CRM during login if Login Meta Sync is enabled
- Improved error handing with HubSpot
- Improved Filter Queries performance
- Improved – Filter Queries / Advanced will now limit the post query to the first 200 posts of each post type (for improved performance)
- Improved – Filter Queries will be bypassed while WP Fusion is processing a webhook
- Improved – user_registered will now be synced back to the CRM after a user is imported via webhook (if enabled)
- Improved – Edits to fields on contact records in FluentCRM will now be synced back to the user record automatically
- Improved – Disabled the “API Queue” with FluentCRM and Groundhogg
- Improved upgrade nags with WP Fusion Lite
Bug Fixes
- Fixed Resync Tags batch operation getting hung up with Ontraport trying to load the tags from a deleted contact
- EngageBay bugfixes
- Fixed Filter Queries – Standard not working on search results
- Fixed Export Users batch operation not respecting Limit User Roles setting
- Fixed fatal error error handling error-level HTTP response code with NationBuilder
- Fixed Capsule not loading more than 50 tags
- Fixed an empty last_name field at registration defaulting to last_updated (with FluentCRM)
- Fixed unwanted user meta getting synced back to the CRM when importing users if Push All was enabled
- Fixed PHP warning trying to apply tags on view for deleted taxonomy terms
- Fixed fatal error trying to apply tags to a deleted FluentCRM contact
- Fixed HTTP API logging not working with MailJet
- Fixed MailJet treating Contact Not Found errors as irrecoverable
- Fixed duplicate State field with HighLevel
- Fixed tag changes not being synced back properly from FluentCRM
- Fixed being unable to disable First Name and Last Name fields from sync
- Fixed fatal error on frontend if you selected Mautic as the CRM in the initial setup and saved the settings without entering API credentials
- Fixed PHP warning ‘WPF_Lead_Source_Tracking’ does not have a method ‘prepare_meta_fields’ warning saving the settings
- Fixed “Warning: Illegal string offset ‘crm_field'”
Developer
- Added action wp_fusion_init
- Added action wp_fusion_init_crm
- Added wp_fusion_hide_upgrade_nags filter
- Added wpf_query_filter_get_posts_args filter
- Added wpf_is_post_type_eligible_for_query_filtering filter
- Added wpf_should_filter_query filter
- Added filter wpf_get_user_id
- Added filter wpf_restricted_content_message
- Added wpf_leadsource_cookie_name filter
- Added wpf_referral_cookie_name filter
- Added wpf_get_current_user() function
- Added wp_fusion()->access->can_access_posts cache
- Added wp_fusion()->access->can_access_terms cache
- Added “wpf_filtering_query” property to WP_Query objects that are being affected by Filter Queries – Advanced
- Improved – Third parameter ($post_id) to wpf_user_can_access filter will now be false if the item being checked is not a post
3.37 – 3/16/2021
New CRMs
- Growmatik
- HighLevel
New Features
- Added “Default Not Logged-In Redirect” setting
- Added [[user_meta_if]] shortcode (thanks @igorbenic!)
- Added automatic detection for first_name and last_name fields during registration
- Added View In CRM link to admin user profile for ActiveCampaign and Infusionsoft
- Added option to set default format for usernames for imported users
- Added option to limit Filter Queries to specific post types
- Added user_nicename field for sync
- Added “Apply registration tags” batch operation
- Added Read Only indicator on non-writeable Salesforce fields
- Added support for Datetime fields with ActiveCampaign
- Added track_event function to ActiveCampaign integration
- Added “ignoreSendingWebhook” parameter to EngageBay API calls
- Added warning when curly quotes are detected in shortcode parameters
- Added First Name and Last Name fields for sync with Intercom
- Added support for loading picklist / multiselect fields from Salesforce
- Added logging for when an API call to apply a tag isn’t sent because the user already has that tag
- Added 1 second sleep time to Quentn batch operations to get around API throttling
- Added additional Standard Fields for sync with Autopilot
- Added Work Address fields for sync with NationBuilder
- Added debugging message to logs page for when the site runs out of memory building the Users dropdown
- Added Flush All Logs button at top of logs page
- Added Start Date and End Date filters to the activity logs
- Added admin notice when logs are set to Only Errors mode
- Added link back to main settings page from the logs page
Improvements
-
Tested and updated for WordPress 5.7
-
Removed AWeber integration
- Improved – Parentheses can now be used in shortcode attributes to match tags with square brackets in the name
- Improved – Added note about .csv imports to Import settings tab for Salesforce
- Improved – Role slug or name can be loaded from the CRM and used to set a user’s role
- Improved – Added notice in the logs when a user’s role or capabilities were changed via loading a new role from the CRM
- Improved – Login Tags Sync and Login Meta Sync features will now give up after 5 seconds if the CRM API is offline
- Improved – Added search filter to select boxes in the admin
- Improved – Significantly reduced the amount of memory required for the main settings storage
- Improved – Admin notices from other plugins will be hidden on the WPF settings page
- Improved – Available tags and available fields have been moved to their own wp_options keys for improved performance
- Improved – The wpf_options options key is now set to autoload, for improved performance
- Improved – AJAX’ified the page redirect select in the meta box for improved admin performance
- Improved performance with Filter Queries – Advanced, query results for the same post type will now be cached with wp_cache_set()
- Improved performance – wpf-settings postmeta key will now be deleted on post save if there are no WPF settings configured for the post
- Improved – If Staging Mode is enabled, site tracking scripts will be turned off with supported CRMs
- Improved – Log messages will now use the correct custom object type (instead of “contact”) when a custom object is being edited
- Improved – If FirstnameLastname or Firstname12345 are selected for the user import username format, and a user already exists with that username, the username will be randomized further
- Improved – Test Connection / Refresh Available Tags errors will now be shown on the top of the settings page (instead of the Setup tab)
- Improved – Logs will now show when an entry was recorded as a part of a batch operation
- Improved admin style for consistency with the rest of WP
- Improved – Data will no longer be synced to Salesforce for read-only fields
- Improved – ConvertKit API timeout is now extended to 15 seconds
- Improved support for multiselect fields with EngageBay
- Improved NationBuilder error handling
- Improved Mailchimp error handling
- Improved EngageBay error handling
- Improved Zoho error handling
- Improved HubSpot error logging
- Improved error handling with Groundhogg and FluentCRM when those plugins are deactivated
Bug Fixes
- Fixed roles or capabilities loaded from the CRM being able to remove roles and/or capabilities from administrators
- Fixed wp_capabilities field not saved in correct format when loaded from the CRM
- Fixed Add New Field on Contact Fields list not saving when no CRM field was selected
- Fixed Prevent Reapplying Tags setting not saving when un-checked
- Fixed menu visibility controls sometimes getting output twice
- Fixed Gutenberg block visibility not respecting auto login sessions
- Fixed the logs getting flushed if the filter form was submitted using the enter key
- Fixed imported users not respecting “role” field loaded in user meta
- Fixed fatal error loading admin user profile when WP Fusion was not connected to a CRM
- Fixed apostrophes getting escaped with slashes before being synced
- Fixed header resync button on settings page not resyncing CRM lists
- Fixed the No Tags filter in the users list showing all users
- Fixed Create Tags from Value on user_role conflicting with Limit User Roles setting
- Fixed post type rules taking priority over single post access rules for query filtering
- Fixed some post types registered by other plugins not showing as options for Filter Queries – Post Types
- Fixed menu items being hidden when Filter Queries was used in Standard mode and limited to specific post types
- Fixed query filtering not working on queries that used post__in
- Fixed auto-login session setting user to logged in when the contact ID was invalid
- Fixed tag changes in FluentCRM not being synced back to WP Fusion
- Fixed date-format fields sometimes not syncing correctly to Kartra
- Fixed bug applying and removing tags with Growmatik
- Fixed Mautic not loading more than 30 tags on some sites
- Fixed dates loaded from HubSpot being loaded as milliseconds not seconds since the epoch
- Fixed ActiveCampaign not loading more than 100 lists
- Fixed ActiveCampaign integration not treating 429 status code as an error
- Fixed Create Tag(s) from Value creating errors with NationBuilder
- Fixed WP Fusion trying to handle API error responses from ontraport.com that originated with other plugins
- Fixed Autopilot integration creating new contacts when email address wasn’t specified in update data
- Fixed standard fields not being loaded from Autopilot
- Fixed JavaScript error on settings page when connected to ConvertKit
- Fixed HTTP API logging not showing up for ConvertKit
- Fixed error when trying to add an entry to the logs before the CRM connection was configured
- Fixed “Invalid argument” warning listing custom fields with some CRMs
- Fixed PHP warning loading available users from Zoho
- Fixed PHP warning trying to get tag ID from tag label when no tags exist in the CRM
- Fixed PHP warning when force-ending an auto login session
- Fixed PHP warning during login when Login Tags Sync is enabled
- Fixed PHP notice “Constant DOING_WPF_BATCH_TASK already defined”
- Fixed PHP warning in Salesforce integration
- Fixed PHP notices in Mailjet integration
Developer
- Added add_object() update_object() and load_object() methods to Salesforce, HubSpot, and Zoho
- Added wpf_get_contact_id() function
- Added wpf_bypass_query_filtering filter
- Added wpf_query_filtering_mode filter
- Added wpf_configure_setting_{$setting_id} filter
- Added wpf_hubspot_auth_url filter
- Added wpf_zoho_auth_url filter
- Added wpf_api_preflight_check filter
- Added third parameter $searchfield to wpf_salesforce_query_args filter
- Improved – wpf_format_field_value in WPF_CRM_Base will stop imploding arrays (fixes issue syncing picklists options with commas in them to Salesforce and HubSpot)
- Improved – the available CRMs are now loaded on plugins_loaded to better support custom CRMs modules in other plugins
- Improved – Added second argument $user_meta to wpf_map_meta_fields filter
3.35 – 12/8/2020
New CRMs
- FluentCRM
New Features
- Added additional logging to show when meta values have been modified by wpf_format_field_value before being sent to the CRM
- Added “Additional Actions” to admin user profile (Push User Meta, Pull User Meta, and Show User Meta) for debugging purposes
- Added Re-Authorize With Hubspot button to re-connect via OAuth
- Added option to disable admin menu editor interfaces
- Added support for Mautic v3
- Added support for new background_request flag with the Ontraport API
-
Added a Default Account setting for Salesforce
-
Added datetime field support to Zoho integration
- Added support for dropdown and checkbox fields with Kartra
- Added Work Address fields for sync with NationBuilder
- Added Owner ID field for sync with Groundhogg
- Added Profile Picture field for sync with Groundhogg
- Added support for custom address fields with Mailchimp
- Added Avatar field for sync with Jetpack CRM
- Added Phone 3 through Phone 5 fields for syncing with Infusionsoft
Improvements
-
Tested and updated for WordPress 5.6
-
Added warning when user_pass field is enabled for sync
- Added logging for WP Fusion plugin updates
-
Added logging for when an invalid role slug was loaded from the CRM
-
Improved Hide From Menus setting – will now attempt to get a post ID out of a custom link
- Improved (No Tags) and (No Contact ID) filters in the All Users list
- Improved – Multiselect values loaded from ActiveCampaign will now be loaded as arrays instead of strings
- Improved support for syncing First Name and Last Name with Gist
- Improved – Post type archives will now respect wpf_post_type_rules access rules
- Improved handling for merged / changed contact IDs to Ontraport
-
Improved – Moved ActiveCampaign tracking scripts to the footer
-
Improved error handling for MailPoet
- Improved error handling with Drip
- Improved error handling with MailJet
-
Improved error handling for NationBuilder
-
Updated ZeroBS CRM to Jetpack CRM
-
Removed Groundhogg < 2.x compatibility code
- Removed dynamic tagging support from Groundhogg
- Removed AWeber integration
Bug Fixes
- Fixed custom fields not updating with Kartra
- Fixed importer getting hung up on more than 100 contacts with HubSpot
- Fixed importer with EngageBay
- Fixed import tool with MailerLite
- Fixed MailerLite integration using a case-sensitive comparison for email address changes
- Fixed user_registered getting loaded from the CRM when a user was imported
- Fixed Mailjet integration not loading more than 10 custom fields
- Fixed ActiveCampaign not loading more than 100 custom fields
- Fixed dates not formatted correctly with Mailjet
- Fixed PHP warning loading contact data with ActiveCampaign
- Fixed some issues with Sendinblue and email addresses that had capital letters
- Fixed syncing empty multiselects to EngageBay not erasing the selected values in the CRM
- Fixed multiselect fields not loading from EngageBay
- Fixed PHP warning in EngageBay integration when loading a contact with no custom properties
- Fixed users having to log in twice if they tried to log in during an auto-login session
- Fixed taxonomy term settings not saving when trying to remove protection from a term
- Fixed error adding new Zoho Leads without a last name
- Fixed JS bug when editing taxonomy terms
- Fixed settings page requiring an extra refresh after resetting before changing to a new CRM
- Fixed “Wrong custom field format” error adding contacts to Kartra
- Fixed loading dropdown and multi-checkbox type fields from Kartra
- Fixed Salesforce not connecting when the password has a slash character in it
- Fixed date fields not syncing properly with Groundhogg
- Fixed applying tags on pageview in AJAX request during an auto login session not working on WP Engine
- Fixed JSON formatting error applying tags with AgileCRM
- Fixed – user_id will no longer be loaded during user imports
- Fixed – Renamed class WPF_Options to WP_Fusion_Options to prevent conflict with WooCommerce Product Filter
- Fixed MailEngine SOAP warning when MailEngine wasn’t the active CRM
- Fixed user_meta shortcode not displaying field if value was 0
- Fixed Lead Source Tracking not working for guests
Developer
- Added “raw” field type
- Added functions wpf_get_crm_field(), wpf_is_field_active(), and wpf_get_field_type()
- Added wpf_set_user_meta filter
- Added wpf_render_tag_multiselect_args filter
- Added gettext support to wpf-admin.js and wpf-options.js strings
- Added doing_wpf_webhook() function
- Added pre_user_{$field} filter on user data being synced to the CRM
3.34 – 8/12/2020
New CRMs
- Loopify
- WP ERP
- EngageBay
New Features
- Added Set Current User option to auto-login system
- Added Send Confirmation Emails setting for MailPoet
- Added Status field for syncing with Drip
- Added Time Zone and Language fields for Infusionsoft
- Added Double Optin setting to Mailchimp integration
- Added Username for sync with Kartra
- Added priority option for Return After Login
- Added option to set a default owner for new contacts with Zoho
- Split Mautic site tracking into two modes (Standard vs. Advanced)
- Added “Resync contact IDs for every user” batch operation
- Added [[wpf_user_can_access]] shortcode
- Added support for Groundhogg Advanced Custom Meta Fields
- Added support for multiselect fields with Mautic
- Added ability to create new tags in Groundhogg via WP Fusion
- Added setting for additional allowed URLs to Site Lockout feature
Improvements
- WordPress 5.5 compatibility updates
- If the user_meta shortcode is used for a field that has never been loaded from the CRM, WP Fusion will make an API call to load the field value one time
- Improved support for Mautic site tracking
- Improved support for syncing phone numbers with Sendinblue
- If API call to get user tags fails or times out, the local tag cache won’t be erased
- Intercom integration will now force the v1.4 API
- Added compatibility notices in the admin when potential plugin conflicts are detected
- Added validation to custom meta keys registered for sync on the Contact Fields list
- Facebook OG scraper will now bypass access rules if SEO Show Excerpts is on
- Improved error handling for Salesforce access token refresh process
- Salesforce will now default to the field configured for sync with the user_email field as the lookup field for records
- Improved filtering tool on the All Users list
- Reduced the amount of data saved by the background worker to help with max_allowed_packet issues
- Added staging mode notice on the settings page
- Users added to a multisite blog will now be tagged with the Assign Tags setting for that site
- Added notice if an auto-login link is visited by a logged-in admin
- Added Refresh Tags & Fields button to top of WPF settings page
- Improved support for syncing wp_capabilities and role fields
Bug Fixes
- Fixed email address changes not getting synced after confirmation via the admin user profile
- Fixed optin_status getting saved to contact meta with Groundhogg
- Fixed Groundhogg custom fields updated over the REST API not being synced back to the user record
- Fixed address fields not being synced back to WordPress after an admin contact save in Groundhogg
- Fixed Mautic not importing more than 30 contacts using import tool
- Fixed MailerLite subscriber IDs not loading properly on servers with PHP_INT_MAX set to 32
- Fixed Infusionsoft form submissions starting auto-login sessions even if the setting was turned off
- Fixed Spanish characters not showing in Infusionsoft tag names
- Fixed SSL error connecting to Zoho’s Indian data servers
- Fixed ActiveCampaign list Auto Responder campaigns not running on contacts added over the API
- Fixed import tool not loading more than 10 contacts with Mailchimp
- Fixed import tool not loading more than 100 contacts with MailerLite
-
Fixed import tool not loading more than 1,000 contacts with AgileCRM
-
Fixed Hide From Menus filter treating a taxonomy term as a post ID for access control
- Fixed Filter Queries not working on the blog index page
- Fixed Filter Queries not working on search results in Advanced mode
- Fixed Filter Queries (Advanced) hiding restricted posts in the admin
- Fixed archive restrictions not working if no required tags were specified
- Fixed deletion tags not being applied on multisite sites when a user was deleted from a blog
- Fixed Preview With Tag not working if the user doesn’t have a CRM contact record
- Fixed restricted post category redirects not working if no tags was specified
- Fixed Hide Term on post categories hiding terms in the admin when Exclude Administrators was off
- Fixed restricted posts triggering redirects on a homepage set to Your Latest Posts in Settings >> Reading
-
Fixed Required Tags (All) tags not showing on lock icon tooltip in post tables
-
Updated User.com integration for new API endpoint
- Klaviyo bugfixes
- Maropost bugfixes
Developer
- Added wpf_user_can_access() function
- Added wpf_disable_tag_multiselect filter
- Added wpf_salesforce_lookup_field filter
- Added wpf_get_contact_id_email filter
- Added wpf_batch_objects filter
- Added X-Redirect-By headers when WP Fusion performs a redirect
- Added HTTP API logging option
- Added PHP error handling to logger
- Added fallback method for background worker in case it gets blocked
- Added setting for Prevent Reapplying Tags (Advanced)
- Improved – Updated has_tag() function to accept an array or a string
- Updated some ActiveCampaign API calls to v3 API
3.31 – 3/30/2020
New CRMs
- ZeroBS CRM
- MailEngine
- Klick-Tipp
- Quentn
- SendFox
New Features
- Added option to restrict access to individual menu items
- Added Apply Tags on View option for taxonomy terms
- Added Required Tags (not) setting to access control meta box
- contactId can now be used as a URL parameter for auto-login with Infusionsoft
- Added automatic data conversion for dropdown fields with Ontraport
- Added data-remove-tags option to link click tracking
- Added option to send welcome email to new users imported from ConvertKit
- Added Default Optin Status option and optin_status syncing with Groundhogg
- Added an alert to the status bar of the background worker if API errors were encountered during data export
- Added Entries Per Page to Screen Options in logs
- Added logging for API throttling with ConvertKit
- Added support for dropdown-type fields with Copper
- Added additional built in Gist fields for syncing
Improvements
- Removed extra column in admin list table and moved lock symbol to after the post title
- Contacts will no longer be created in Ontraport without an email address
- Removed non-editable fields from Ontraport fields dropdowns
- Stopped loading meta for new user registrations with existing contact records
- Leads will now be created in Gist instead of Users if the subscriber doesn’t have a user account
- Logged in users and form submissions will now be identified to the Gist tracking script
- Logged in users and guest form submissions will now be identified to the Autopilot tracking script
- Slowed down batch operations with ConvertKit to get around API throttling
- Improved debugging tools for background worker
- Improvements to applying tags with Kartra using the new Kartra API endpoints
- Gutenberg block will no longer output HTML if there’s nothing to display
Bug Fixes
- Fixed duplicate content in Gutenberg block
- Fixed messed up formatting of foreign characters in Gutenberg block
- Fixed duplicate contact ID lookup API call for new user registrations with existing contact records
- Fixed restricted content message not being output when multiple content areas were on a page
- Fixed user_activation_key getting reset when importing new users and breaking Better Notifications welcome emails
- Fixed “Return After Login” not working with WooCommerce account login
- Fixed lead source variables not syncing to Ontraport
- Stopped converting dates to GMT with Ontraport
- Fixed Duplicate and Delete tool for MailerLite email address changes
- Fixed New User Benchmark not firing with Groundhogg
- Fixed changed email addresses not syncing to Sendinblue
- Fixed bug in Import Tool with Sendinblue
- Fixed Mautic not listing more than 30 custom fields
- Fixed Mailchimp not loading more than 200 tags
- Fixed underscores not loading in Infusionsoft tag labels
- Fixed Invalid Data errors when syncing a number to a text field in Zoho
- Fixed ActiveCampaign contact ID lookups returning error message when connected to non-English ActiveCampaign accounts
- Gist compatibility updates for changed API methods
- Fixed missing email addresses causing BirdSend API calls to fail
- Fixed BirdSend only loading 15 available tags
Developer
- Added wpf_get_current_user_id() function
- Added wpf_is_user_logged_in() function
- Auto login system no longer sets $current_user global
- Removed admin authentication cookies from background worker
- Added wpf_auto_login_cookie_expiration filter
- Added wpf_salesforce_query_args filter
- Added wpf_aweber_key and wpf_aweber_secret filters
3.27 – 11/27/2019
New CRMs
- BirdSend
- Klaviyo
New Features
- Added Site Lockout feature
- Added Company, GDPR Consent, and Agreed to Terms fields for sync with Groundhogg
- Added signup_type field to NationBuilder
- Added Australia and India data server support to Zoho integration
- Added “capabilties” format for syncing capability fields
- Added “ucwords” formatting option to user_meta shortcode
- Added option to hide WPF meta boxes from non admins
Improvements
- Style compatibility updates for WP 5.3
- Improved Mautic site tracking
- Improved handling of merged contacts with Mautic
- Improved site tracking with HubSpot for guests
- Updated ActiveCampaign site tracking scripts
- Updated Intercom integration to use API v1.4
- Enabled Import Users tab for Intercom
- Improved support for Country field with Groundhogg
- All site tracking scripts will now recognize auto login sessions
- Disabled comments during auto login sessions
- wpf_tags_applied and wpf_tags_removed actions will now run when tags are loaded from the CRM
- Enabled welcome email in MailPoet when a contact is subscribed to a list
Bug Fixes
- Sendinblue bugfixes
- Copper bugfixes
- Fixed Gist API URL
- Fixed special characters getting escaped on admin profile updates
- Fixed NationBuilder not loading more than 100 available tags
- Fixed fatal error when initializing GetResponse connection
- Fixes for HubSpot accounts with over 250 lists
- Fixed Mailchimp contact ID getting disconnected after email address change
- Fixed NationBuilder Primary address fields not syncing
- Fixed Mailchimp compatibility with other Mailchimp plugins
- Fixed tags not being removed with Ontraport
- Fixed content protection on blog index page
- Fixed “Create tags from value” option for profile updates
- Fixed initial connection to Groundhogg on Groundhogg < 2.0
- Performance improvements and bugfixes for background worker
3.25 – 8/24/2019
New CRMs
- GetResponse
- MailPoet
New Features
- Added option to return people to originally requested content after login
- Added ability to create new user meta fields from the Contact Fields list
- Added dynamic tagging based on field values (for supported CRMs)
- Added ability to modify field data formats via the Contact Fields list
- Added option to remove tags when a page is viewed
- Added option to completely hide a taxonomy term based on tags
- Added option to enable HubSpot site tracking scripts
- Added auto-login by email address for MailerLite
- Added “Advanced” mode for Filter Queries setting
- MailerLite will now re-subscribe subscribers when they submit a form
- Added additional monitoring tools for background process worker
- Groundhogg 2.0 compatibility
- Added social media fields to Kartra
- Added date_joined field for Kartra
- Added new default profile fields for Drip
- Added wpf_salesforce_auth_url filter for Salesforce
- Added multiselect support for HubSpot
- Added unsubscribe notifications for ConvertKit
- Added “wpf_salesforce_auth_url” filter for overriding Salesforce authorization URL
- Added details about configured tags to protected content in post list table
- Added Email Changed event for Drip
- Added Is X? fields for NationBuilder
- Added option to disable “Preview With Tag” in admin bar
- Added active lists to list dropdowns with HubSpot
- Added IP address when adding new contacts with Mautic
- Added Organisation field for syncing to Capsule
- Auto login with Mailchimp now works with email address
- Added Portuguese translation (thanks @João Alexandre)
Improvements
- Improved OAuth access token refresh process with Salesforce
- Access control meta box now requires the manage_options capability
- Drip site tracking will now auto-identify logged in users
- Groundhogg will now load tags and meta immediately instead of requiring sync
- Improved handling for State fields with Ontraport
- Better handling for missing last names in Salesforce
- Slowed down HubSpot batch operations to get around API limits
- Mautic performance improvements
- Preview With Tag now bypasses Exclude Admins setting
- Compatibility updates for custom field formatting with Mailerlite
Bug Fixes
- Fixed typo in NationBuilder fields dropdown
- Fixed email address changes with Infusionsoft causing opt-outs
- Fixed notifications going out when using the built in import tool
- Bugfixes for Preview with Tag feature
- Fixed Infusionsoft API errors with addWithDupCheck method
- Fixed ConvertKit contact ID lookup failing
- Fixed creating a contact in Zoho without a last name
- Fixed slashes getting added to tags with apostrophes in Mautic
- Fixed redirect causing multiple API calls with contact ID lookup in Mautic
- Fixed MailChimp looking up contacts from other lists
- Fixed empty date type fields sending 1/1/1970 dates
- Copper bugfixes
- Capsule bugfixes
- Platform.ly bugfixes
3.24 – 4/25/2019
New CRMs
- Sendlane
- Mailjet
New Features
- Added option to return people to originally requested content after login
- Added admin users column showing user tags
- Added AgileCRM site tracking scripts
- Added Organization Name field for ActiveCampaign
- Added merge settings option to bulk edit
- Added setting to remove “Additional Fields” section from settings
- Added date-format parameter to user_meta shortcode
- Added “Required tags (all)” option to post restriction meta box
- Added option for login meta sync
- Added additional status triggers for Mailerlite webhooks
- Added option to embed Mautic site tracking scripts
- Added Mautic mtc_id cookie tracking for known contacts
- Improved Ontraport site tracking script integration
- Improved HubSpot error logging
Bug Fixes
- Platform.ly bugfixes
- Mailerlite bugfixes
- ConvertKit fixes for unconfirmed subscribers
- Fix for email addresses with + sign in MailChimp
- Fix for contact ID lookup with HubSpot
- Updated AWeber subscriber ID lookup to only use selected list
- Better AWeber exception handling
- Fix for changing email addresses with Drip
- Limit logging table to 10,000 rows
- Fixes for wpf_user_can_access filter
- Fix for background worker when PHP’s memory_limit is set to -1
- Comments are now properly hidden when a post is restricted and no redirects are specified
- Set 1 second sleep time for Drip batch processes to avoid API timeouts
- Fixes for custom objects with Ontraport
3.22 – 2/2/2019
New CRMs
- Drift
- Autopilot
- Customerly
- Copper
- Groundhogg
- NationBuilder
New Features
- Added Gutenberg block for content restriction
- Added support for Salesforce Topics
- Added import tool for Mautic
- Added support for updating email addresses in Kartra
- Added handling for changed contact IDs in Infusionsoft
- Added user_registered field for syncing
- Added option for per-post restricted content messages
- Added Pull User Meta batch operation
- Added support for picklist / multiselect fields in Zoho
- Added import by Topic for Salesforce
- Added support for using tag labels in link click tracking
- Added Gist (ConvertFox) webhooks support
- Added custom fields support for Kartra
- Added webhooks support for Platform.ly
Bug Fixes
- Capsule bugfixes
- UserEngage bugfixes
- Gist (ConvertFox) bugfixes
- Drift tagging bugfixes
- Fixed bug where bulk-editing pages would remove WPF access rules
- Fix for syncing with unsubscribed subscribers in ConvertKit
- Fix for incomplete address error with MailChimp
- Fix for error creating contacts in Intercom without any custom fields
- Fix for wpf_update_tags shortcode in auto-login sessions
- Fix for imports larger than 50 with Capsule
- Fix for Sendinblue not creating contacts if custom attributes weren’t present
3.18 – 11/5/2018
- Added Platform.ly CRM support
- Added support for Salesforce topics
- More flexible staging mode
- Added logged in / logged out shortcode
- Added option to sync tags on user login
- Capsule bugfixes
- Added option to choose contact layout for new contacts with Zoho
- Added custom fields support for Intercom
- Fix for “restrict access” checkbox not unlocking inputs correctly
- Fix for import button not working in admin
3.17.1 – 9/9/2018
- Additional sanitizing of user input data
3.17 – 9/8/2018
- Initial release of Lite version
For previous release notes see the changelog.