wpf_format_field_value

wpf_format_field_value

#Overview
Most of WP Fusion』s supported CRMs support different custom field types in addition to text fields, for example dates, picklists, dropdowns, and radios.
The wpf_format_field_value filter is run on each field value before it』s synced to your CRM, to convert WordPress formatted data into the appropriate format in your CRM.
#Parameters

$value: (mixed) The field value that will be synced to the CRM
$field_type: (string) The field type as shown on the Contact Fields list in the WP Fusion settings
$field: (string) The field』s API name in your CRM

#How it works in WP Fusion
This happens in two places, at two priorities. In the class WPF_CRM_Base there is a format_field_value() function attached to priority 5 that does some standardized formatting for all CRMs:

Dates are converted into Unix timestamps
Array values (like multiselects) are combined into a comma-separated string
Checkbox values are converted to 1 if they are checked or null if they are un-checked.

Then in each CRM integration module there is a format_field_value() function attached to priority 10, which does additional formatting based on that CRM』s API. For example:

With ActiveCampaign, multiselect values are separated with pipes || to properly update multiselect fields
With Infusionsoft dates are converted from their UNIX timestamps into ISO 8601 dates
With Mautic states and countries are converted into Mautic-compatible state and country abbreviation codes

#Examples
You may sometimes need to change the way field values are formatted before being synced to your CRM in addition to WP Fusion』s default formatting. To use the code examples below, add them to your active theme』s functions.php file.
#Convert Yes / No strings to checkbox values
This example converts 「Yes」 and 「No」 values submitted on a form to boolean values, for updating checkbox-type fields in your CRM.
function custom_format_checkbox( $value, $field_type, $field ) {

if ( 'Yes' == $value ) {
$value = true;
} elseif ( 'No' == $value ) {
$value = null;
}

return $value;

}

add_filter( 'wpf_format_field_value', 'custom_format_checkbox', 20, 3 );
#Convert checkbox values to strings
WP Fusion syncs checkbox values to your CRM as boolean true and null, which is the most compatible with updating checkbox and radio type custom fields in your CRM.
However, you may want to see the actual text 「True」 and 「False」 in your CRM. This example converts those boolean values back to strings.
function custom_format_checkbox( $value, $field_type, $field ) {

if ( 'checkbox' == $field_type && true == $value ) {
$value = 'True';
} elseif ( 'checkbox' == $field_type && null == $value ) {
$value = 'False';
}

return $value;

}

add_filter( 'wpf_format_field_value', 'custom_format_checkbox', 20, 3 );
#Prepend a 1 to phone numbers
If your CRM has a phone-type field that enforces a certain length, you may need to prepend a country code to the number for it to sync properly.
function custom_format_phone( $value, $field_type, $field ) {

if ( 'phone' == $field && strlen( (string) $value ) <= 10 ) {

$value = '1' . $value;

}

return $value;

}

add_filter( 'wpf_format_field_value', 'custom_format_phone', 20, 3 );
#Custom formatting for dates
You may want to store a date in a text field in a different format from the default for your CRM.
function custom_format_date( $value, $field_type, $field ) {

if ( $field_type == 'datepicker' || $field_type == 'date' ) {

$value = date( 'Y-m-d', strtotime( $value ) );

}

return $value;

}

add_filter( 'wpf_format_field_value', 'custom_format_date', 20, 3 );
#Force an empty value
By default WP Fusion won』t sync an empty text value to your CRM, to avoid overwriting existing data. You can override this by setting the field』s value to null.
In this example we』ll set WP Fusion to always send a null value any time data isn』t specified for the CRM field with key mycrmfieldkey:
function custom_format_empty_fields( $value, $field_type, $field ) {

if ( 'mycrmfieldkey' == $field && empty( $value ) ) {

$value = null;

}

return $value;

}

add_filter( 'wpf_format_field_value', 'custom_format_empty_fields', 4, 3 );
Or, to target based on field type:
function custom_format_empty_dates( $value, $field_type, $field ) {

if ( 'date' === $field_type && empty( $value ) ) {

$value = null;

}

return $value;

}

add_filter( 'wpf_format_field_value', 'custom_format_empty_dates', 4, 3 );
Note that the priority on the filters is 4, so it runs before WP Fusion has done any other formatting on the field value.

#Was this helpful?

Let us know if you liked the post. That』s the only way we can improve.

Yes

No

wpf_event_tickets_attendee_data

wpf_event_tickets_attendee_data

#Overview
This filter is run during an Event Tickets registration, after WP Fusion has collected the event and attendee data. It can be used to sync additional data from an Event Tickets registration to custom fields in your CRM.
To use the code examples below, add them to your active theme』s functions.php file.
#Parameters

$update_data: (array) This is an array of key value pairs representing WordPress meta fields and their corresponding values.
$attendee_id: (int) The Event Tickets attendee ID

#Examples
#Override attendee emails
This example overrides the email addresses of attendees to include the event name that the attendee registered for.
The email address synced to the CRM will then be formatted like email+{event_name}@domain.com
function alt_emails_for_attendees( $update_data, $attendee_id ) {

$email_parts = explode( '@', $update_data['user_email'] );

// Convert [email protected] to [email protected]:
$update_data['user_email'] = $email_parts[0] . '+' . strtolower( $update_data['first_name'] ) . '@' . $email_parts[1];

// Or, __alternate method__: Convert [email protected] to [email protected]:
$event_name = sanitize_title( $update_data['event_name'];
$update_data['user_email'] = $email_parts[0] . '+' . $event_name . '@' . $email_parts[1];

return $update_data;

}

add_filter( 'wpf_event_tickets_attendee_data', 'alt_emails_for_attendees', 10, 2 );

#Was this helpful?

Let us know if you liked the post. That』s the only way we can improve.

Yes

No

wpf_event_espresso_customer_data

wpf_event_espresso_customer_data

#Overview
This filter is run during an Event Espresso registration, after WP Fusion has extracted the customer data from the registration object. It can be used to sync additional data from an Event Espresso registration to custom fields in your CRM.
To use the code examples below, add them to your active theme』s functions.php file.
#Parameters

$order_data: This is an array of key value pairs representing WordPress meta fields and their corresponding values.
$registration: The Event Espresso registration object

#Examples
#Override attendee emails
This example overrides the email addresses of attendees to include the event name that the attendee registered for.
The email address synced to the CRM will then be formatted like email+{event_name}@domain.com
function alt_emails_for_attendees( $update_data, $registration ) {

$email_parts = explode( '@', $update_data['user_email'] );

// Convert [email protected] to [email protected]:
$update_data['user_email'] = $email_parts[0] . '+' . strtolower( $update_data['first_name'] ) . '@' . $email_parts[1];

// Or, __alternate method__: Convert [email protected] to [email protected]:
$event = $registration->event();
$event_name = sanitize_title( $event->name() );
$event_name = str_replace( '-', '_', $event_name );

$update_data['user_email'] = $email_parts[0] . '+' . $event_name . '@' . $email_parts[1];

return $update_data;

}

add_filter( 'wpf_event_espresso_customer_data', 'alt_emails_for_attendees', 10, 2 );
#Sync event meta
This example grabs two postmeta keys (custom_field_one and custom_field_two) off the Event Espresso event and merges them into the data synced to the CRM for the attendee. This can be used to sync additional event properties to the attendee』s contact record in the CRM.
To enable the custom fields for sync they must first be enabled for sync and mapped to custom fields in your CRM via the Contact Fields settings.
function sync_event_custom_fields( $update_data, $registration ) {

$event_id = $registration->event_ID();

$update_data['custom_field_one'] = get_post_meta( $event_id, 'custom_field_one', true );
$update_data['custom_field_two'] = get_post_meta( $event_id, 'custom_field_two', true );

return $update_data;

}

add_filter( 'wpf_event_espresso_customer_data', 'sync_event_custom_fields', 10, 2 );

#Was this helpful?

Let us know if you liked the post. That』s the only way we can improve.

Yes

No

wpf_elementor_can_access

wpf_elementor_can_access

#Overview
This filter is similar to the wpf_user_can_access filter, but runs only on Elementor elements, and passes the Elementor widget as an argument to the filter. To use the code examples below, add them to your active theme』s functions.php file.
#Parameters

$can_access: This variable represents whether or not the user can access the content. It will either be true or false.
$element: The Elementor widget

#Examples
#Require all tags to view an Element
This example changes the logic from the WP Fusion settings on an Element to require all of the specified tags, instead of any one of them.

function my_wpf_elementor_access( $can_access, $element ) {

$widget_tags = $element->get_settings( 'wpf_tags' );

if ( empty( $widget_tags ) ) {
return $can_access;
}

$user_tags = wp_fusion()->user->get_tags();

$result = array_intersect( $widget_tags, $user_tags );

if ( count( $result ) == count( $widget_tags ) ) {
$can_access = true;
} else {
$can_access = false;
}

return $can_access;
}

add_filter( 'wpf_elementor_can_access', 'my_wpf_elementor_access', 10, 2 );

#Create a custom access rule for a specific element
This example hides an element with ID fa65gh unless the user has Tag X and does not have Tag Y.
function my_wpf_elementor_access_by_id( $can_access, $element ) {

if ( $element->get_id() == 'fa65gh' ) {

$can_access = false;

if ( wp_fusion()->user->has_tag( 'TAG X' ) && ! wp_fusion()->user->has_tag( 'TAG Y' ) ) {

$can_access = true;

}

}

return $can_access;

}

add_filter( 'wpf_elementor_can_access', 'my_wpf_elementor_access_by_id', 10, 2 );

#Was this helpful?

Let us know if you liked the post. That』s the only way we can improve.

Yes

No

wpf_ecommerce_order_args

wpf_ecommerce_order_args

#Overview
This filter is run by the Enhanced Ecommerce addon before the order data is passed to the CRM for processing. It can be used to override the order details that are synced to the CRM.
To use the code examples below, add them to your active theme』s functions.php file.
#Parameters

$order_args: An array of order data:

order_label: The label, for example 「WooCommerce Order #123」
order_number: The order umber, for example 123
order_edit_link: The link to edit the order in the admin
payment_method: The payment method
products: An array of products and their prices
line_items: An array of line items (discounts, shipping, etc) and their amounts
total: The order total
currency: The order currency
currency_symbol: The order currency symbol
order_date: The order date
provider: The plugin source, for example woocommerce or easy-digital-downloads
status: The order status
user_id: The user ID who placed the order, 0 for guest
user_email: The customer email address

$order_id: The ecommerce order ID

#Examples
#Override order label
This example overrides the order label that』s synced to the CRM.
function alt_emails_for_attendees( $order_args, $order_id ) {

$order_args['order_label'] = 'Custom Label, Order #' . $order_args['order_number'];

return $order_args;

}

add_filter( 'wpf_ecommerce_order_args', 'override_order_label', 10, 2 );

#Was this helpful?

Let us know if you liked the post. That』s the only way we can improve.

Yes

No

wpf_crm_object_type

wpf_crm_object_type

#Overview
By default WP Fusion interfaces with Contacts in all of our supported CRM integrations. Some platforms like Salesforce, Ontraport, and Zoho support custom object types in addition to contacts (like Leads).
You can override WP Fusion to interface with a different object type via a filter in your functions.php file.
Changing the object type will also reset the fields available for syncing. After changing the object type, please reload the available fields by going to Settings » WP Fusion » Setup and clicking the blue Resync Available Tags & Fields button.
#Salesforce
For example, to interface with Salesforce』s 「leads」 component, you would use the following:
add_filter( 'wpf_crm_object_type', function( $object_type ) {
return 'Lead';
});
#Zoho
To interface with Zoho』s 「leads」 component, you would use the following:
add_filter( 'wpf_crm_object_type', function( $object_type ) {
return 'Leads';
});
#Ontraport
Ontraport uses numeric IDs for object types. The default type is 0 for contacts. To override that, pass the ID of your custom object into the filter.
add_filter( 'wpf_crm_object_type', function( $object_type ) {
return 8;
});
#Can WP Fusion interface with multiple object types at the same time?
The short answer is no.
That』s because WP Fusion syncs your WordPress users bidirectionally with the selected object type in your CRM.
That』s usually Contacts, but could also be Leads or a custom object type.
If you take a hypothetical scenario where WP Fusion is configured to sync with both Contacts and Leads at the same time:

A new Lead is created in Zoho CRM
A webhook syncs the Lead back to a new WordPress user account
The user updates their profile, which creates a Contact in Zoho
Now you have two duplicate records, one Lead and one Contact, both linked to the same WordPress user

Or

Email address is updated on [email protected]』s lead record
The changed email address is loaded to Jane』s WordPress user account
WP Fusion syncs the changed email address to Jane』s contact record

Obviously it doesn』t do any good to have two separate CRM objects that are kept in sync with eachother, since the records will be identical.
And it will slow down your WordPress site having WP Fusion constantly connecting to your CRM to sync the objects with eachother.
#Conditionally switching object types
An exception to that is switching the object type temporarily, just for certain operations.
For example maybe you have WP Fusion syncing your users bidirectionally with Contacts in your CRM, but you want all Gravity Form submissions to create a new Lead (with a one-way sync).
function my_gform_after_submission( $entry, $form ) {

if ( ! function_exists( 'wp_fusion' ) ) {
return false; // Make sure WP Fusion is running
}

// Gets the first name and last name from field ID 5, and email from field ID 6
$contact_data = array(
'FirstName' => rgar( $entry, '5.3' ),
'LastName' => rgar( $entry, '5.6' ),
'Email' => rgar( $entry, '6' ),
'Company' => 'CompanyName',
);

$lead_id = wp_fusion()->crm->add_object( $contact_data, 'Lead' );
}

// Replace "1" with the ID of the form
add_action( 'gform_after_submission_1', 'my_gform_after_submission', 10, 2 );
This example runs after a Gravity Form has been submitted and then creates a new lead with the submitted form data, using the add_object() method.
For another example with Salesforce, see this Gist:

#Alternatives
Implementing a custom object switching solution with WP Fusion is usually a complex project.
In some cases it』s better to use a different plugin for your custom objects, and let WP Fusion focus on the bi-directional sync of your user and customer data.

For syncing custom post types with Salesforce objects, we recommend Object Sync for Salesforce.
For syncing WooCommerce orders with Salesforce orders, we recommend WooCommerce Salesforce Integration by CRM Perks.

#Was this helpful?

Let us know if you liked the post. That』s the only way we can improve.

Yes

No

What can I do with it?

What can I do with it?

#Video Overview

#Run a membership site
WP Fusion offers an intuitive page locking system that can restrict access to any content on your site based on a user』s tags in your CRM. This lets you use your WordPress site to:

Sell online courses with LearnDash or LifterLMS
Create members-only discussion forums with bbPress
Create archives of downloadable material for members
And almost anything else you can think of

WP Fusion can intelligently redirect users to alternate pages on your site if they don』t have permission to access a given piece of content, or show a custom error message.
 
#Sync ecommerce data
WP Fusion includes deep ecommerce integrations with WooCommerce, Easy Digital Downloads, and LifterLMS. Using our Enhanced Ecommerce addon you can sync a variety of data to supported CRMs, including:

Products purchased
Quantities
Taxes and shipping
Discounts
Invoices

This data can then be used in reports and to track lifetime value as well as trigger automations.
#Customize the user experience
WP Fusion synchronizes your customers』 CRM contact records with your WordPress users database. This means that all of your CRM contact data is accessible by any WordPress plugin.
We like using the Ultimate Member plugin for creating and managing custom user fields, as well as allowing users to update their profile data from within your WordPress site.
You can also use tags in your CRM to show and hide page content, with support for many of the most popular page builders and popup builders.
Imagine your customers coming back to your website and being greeted with a personalized message. WP Fusion can do that.
#Track and engage leads
WP Fusion has the ability to automatically apply tags to a contact when they visit a certain page on your site. You can even gauge their interest by setting a delay before the tag is applied.
For example, if a customer reads your product description page for more than three seconds, why not automatically send them an email with a special discount if they purchase now? WP Fusion can do that.
Using lead source tracking you can also keep track of UTM variables and referral URLs, and sync these to a your CRM when someone registers or makes a purchase.
#Keep WordPress sites in sync
Because WP Fusion can push user data to your CRM, and be configured to receive data automatically from your CRM, you can use WP Fusion to keep user accounts in sync across multiple sites.
With some simple configuration, you can use your CRM application as a central hub to keep user accounts on an unlimited number of WordPress installs synchronized, including user logins and passwords.
#Perform actions with user data
Because WP Fusion supports synchronizing any user metadata collected on your site, you can use a wide variety of WordPress plugins to collect  user data at registration, profile update, or when a form is submitted.
After the user has been registered, all data is passed through to your CRM, where you can use automations to apply tags, create tasks, set opportunity states, or send emails based on their provided data.

#Was this helpful?

Let us know if you liked the post. That』s the only way we can improve.

Yes

No

Performance

Performance

#The basics
WP Fusion was designed with performance in mind, and is used on sites with hundreds of thousands of users, and stores processing thousands of transactions a day.
Unlike some other membership plugins with CRM integrations, WP Fusion will only connect to your CRM as a direct result of user action. For example:

Updating a profile
Making a purchase
Completing a course

WP Fusion does not connect to your CRM to authenticate user logins, and it does not run any background synchronization processes.
Another benefit of this is that even if your CRM』s API is offline or unreachable, your users will still be able to log in and access their content.
#General tips
On a fresh install WP Fusion will have no noticeable impact on your site』s speed at all. However there are some steps you can take to maintain optimal performance on your WP Fusion powered site.
#Use webhooks
WP Fusion includes the option to load your user』s latest tags and meta data from your CRM on login.

While this is an easy way to make sure their data is always up to date, this will slow down the login process while the various API calls are made.
Instead, set up webhooks from your CRM to WP Fusion. You can trigger a webhook only when something has modified and needs to be updated in WordPress. Since webhooks run in the background, your users』 updated tags and meta data will already be available when they log in.
#Keep 「Push All」 turned off
WP Fusion has a setting that will sync data to your CRM whenever any field in your database is modified.

This setting is intended for people using plugins or custom code that isn』t supported by WP Fusion, but shouldn』t be necessary on normal sites. Leaving this setting on may result in unnecessary API calls being sent.
#Be careful with 「Linked」 tags
WP Fusion includes a powerful feature called 「Link with tag」, which allows you to automate enrollment into courses, groups, and membership levels when a tag is applied.

As a general rule, only specify a linked tag if you』re trying to trigger an automated enrollment via an outside trigger. For example a product purchase in an outside shopping cart, or using a drip sequence in your CRM.
If you are using linked tags, avoid overlapping their functionality. For example if you have a linked tag that enrolls someone into a membership, and that membership includes bundled courses, it』s not necessary to set a linked tag on each of the courses as well. This can create a chaining situation which can slow down your site.
#The technical stuff
WP Fusion includes a few technologies to keep your site running fast.
#Asynchronous webhooks
By default incoming webhooks are processed in real time. When the webhook is received WP Fusion connects to your CRM and loads the relevant data. This generally works well, but if many webhooks are received at once (i.e. several hundred), this could cause your server to get overloaded and some webhooks may be ignored.
You can get around this by appending &async=true to the end of your webhook URL. This will cause WP Fusion to put your incoming webhooks into a queue and work through them as server resources allow, usually within a minute or two. While this does slow down the amount of time to process a single webhook, it allows WP Fusion to receive and act on more incoming webhooks simultaneously.
#The API queue
The API queue is enabled by default, though it can be turned off for troubleshooting purposes. The setting is under the Advanced tab.

With the API queue on, WP Fusion puts all API calls into a buffer and executes them during PHP』s shutdown function.
This means that any delay introduced by API calls will happen in the footer of the page, after the page has already loaded for the site visitor.
The queue also combines redundant calls into a single API call. For example
wp_fusion()->user->push_user_meta( $user_id, array( 'first_name' => 'John' ) );

wp_fusion()->user->push_user_meta( $user_id, array( 'user_email' => '[email protected]' ) );

With the API queue off these two function calls would trigger two API calls. With the queue on it will just send a single API call.
The queue combines calls that:

Apply tags
Remove tags
Update contacts

#Asynchronous checkout
Depending on the addons you have installed, a checkout can take a lot of time to process— adding a contact, applying tags, adding products, adding an invoice, and removing abandoned cart tags.
To speed this up, WP Fusion has an option for Asynchronous Checkout with WooCommerce and Easy Digital Downloads. This setting is enabled by default and can be found on the Integrations tab.
With async checkout enabled, WP Fusion will send a non-blocking POST request to a background worker on your server. This lets WP Fusion process all the API calls in the background without delaying the checkout.
#The background process worker
WP Fusion includes a background worker which can export users, membership statuses, order details, and more to your CRM.

This background worker is based on the WP Background Processing library. Items to be processed are added to a queue and are worked through sequentially, taking into account the server』s available memory and max execution time.
Using the background worker we have processed up to 300,000 WooCommerce orders in a single go.
The background process can run for up to 24 hours. This can be extended if needed by using the 'nonce_life' filter.
#Admin performance
If you have a lot of tags and/or custom fields in your CRM (i.e. 1,000+ options), the WP Fusion interfaces can be slow to load in the admin.
To avoid this, WP Fusion has two built in thresholds:

If there are more than 300 custom fields available for sync on the Contact Fields list, the field select dropdown will revert to a standard HTML dropdown instead of the searchable select2 dropdown.
If there are more than 1,000 total tags in your CRM, the Select Tag(s) dropdown will lazy load the tags instead of trying to display all the options at once. After you』ve entered the first three characters of your tag name, WP Fusion will search the database and return the results.

There are three filters you can use to further customize the display of the tags and CRM fields dropdowns:
add_filter( 'wpf_disable_tag_multiselect', '__return_true' );
Completely disables the Select Tag(s) select box. It will not be output on the page at all.
add_filter( 'wpf_disable_tag_select4', '__return_true' );
Disables the enhanced interface on the Select Tag(s) select box. It will be displayed as a normal select input.
add_filter( 'wpf_disable_crm_field_select4', '__return_true' );
Disables the enhanced interface on the Select A CRM Field select box. It will be displayed as a normal select input.

#Was this helpful?

Let us know if you liked the post. That』s the only way we can improve.

Yes

No

Misc. FAQ

Misc. FAQ

#Can I generate an invoice / provide my VAT number?
Yes you can generate an invoice within your account area on our site. In the Purchases & Subscriptions section click Generate Invoice next to your order, and you』ll be able to provide your invoice details.
#Does WP Fusion work on WordPress multisite?
Yes, WP Fusion works on multisite WordPress installs. It is installed and configured at the site level, not the network level.
#Does WP Fusion work with Thrive products?
(Like Thrive Leads, Thrive Architect, and Thrive Apprentice)
No. Thrive products are coded in such a way that they』re not able to be extended by other plugins, and so we』re not able to make WP Fusion work with them (we』ve tried).
As an alternative to Thrive Architect, check out Elementor. It』s a much more powerful page builder and has a deep integration with WP Fusion.
As an alternative to Thrive Apprentice, check out LifterLMS. It』s a modern, powerful, LMS plugin with a wide ecosystem of extensions and is fully compatible with WP Fusion.
#Can I connect WP Fusion to multiple CRMs?
The short answer is no.
Because WP Fusion provides a bi-directional sync between your WordPress site and your CRM, it』s not practical to connect to multiple CRMs simultaneously.
In an ideal setup, your CRM or marketing automation platform is the hub of your business online, and the master record of your contacts and their data. Your WordPress site is a spoke connected to your CRM via WP Fusion.
A good configuration
When you connect multiple platforms bi-directionally with WP Fusion, your WordPress site becomes responsible for keeping data in sync between your other services. For example an email address change in Intercom gets synced to WordPress, and then WP Fusion needs to sync it onwards to ActiveCampaign.
This will quickly overwhelm your website since it』s not optimized for routing data in real time between third-party services. For something like that Zapier is much more appropriate.
A bad configuration with multiple external services routing data through WordPress
#What are my options?
WP Fusion works best when it』s connected to your marketing automation platform, since it』s syncing data related to individual customers and contacts.
If you need to use an additional service in addition to this (for example Pipedrive to manage sales pipelines), it』s best to connect it directly to your marketing automation tool, with Zapier or another integration tool. Then you can trigger an opportunity to be created in your sales automation platform based on activity in your marketing automation platform.
In some cases you may want to trigger an outside service directly from WordPress. Using WP Fusion』s Webhooks / Zapier Addon you can ping an external URL based on user activity on your site, such as completing a course or making a purchase. Since this is a one-way sync of data, it doesn』t impact performance or create a risk of data loss.
#Why can』t I use multiple tags for auto-enrollments / Link With Tag?
WP Fusion includes a feature with most LMS and membership plugins that we call 「Link with Tag「. This lets you specify a CRM tag that can be used as a trigger to auto-enroll someone into a course or membership.
When the tag is applied the user is enrolled, and when the tag is removed the user is unenrolled.
Auto-enrollment settings on a LearnDash course
The link with tag setting is limited to one tag, if you try to select more than one tag you will see a message saying 「You can only select one item「.
#Why can』t you select multiple tags?
The reason you can only select one tag is comes from the fact that the linked tag is also used as an un-enrollment trigger.
Look at the following example:

In this example, someone is selling access to courses individually by applying the Course A – Active tag, and also selling bundled course access by applying the All Courses Bundle Purchase tag.
Imagine a scenario where an admin needs to manually add a user to the course, or course access is granted by another plugin like WooCommerce or Uncanny Automator:

The user is enrolled in the course. However, if the linked tag isn』t applied, the user will be immediately removed from the course, since the linked tag is also an un-enrollment trigger
To keep the user from being unenrolled, WP Fusion must apply the linked tags whenever a user is added to a course, from any source
This applied both tags Course A – Active and All Courses Bundle Purchase
The All Courses Bundle Purchase tag is also linked with 4 other courses, this triggers the user to be enrolled in all of those courses as well
When the user is enrolled in those courses, they are auto-assigned those linked tags, Course B – Active, Course C – Active, Course D – Active, and Course E – Active
Now the user has access to all of the courses on your site and a bunch of undesired tags
In situations where you have a lot of courses or memberships linked together (i.e. 20+) this can also cause your website to crash, as the user is enrolled in everything on your site simultaneously and dozens of API calls are sent to your CRM

For this reason WP Fusion doesn』t allow you to use multiple tags for auto-enrollment triggers.
#How can I sell bundled courses using auto-enrollment tags?
A simple way to auto-enroll people into multiple courses is to simply apply all of the linked tags when a bundle purchase is made. Then by looking at a contact』s tags in your CRM you can easily see exactly which courses they are in. Removing a linked tag will unenroll them from that course, and a refund or subscription cancellation will remove all the linked tags and unenroll them from all the associated courses.
That works fine with a small bundle of two or three courses, but it ends up being a lot of tags if you have a large bundle, and becomes hard to manage.
There is a great alternative to that if you』re using either LearnDash or LifterLMS:
LearnDash
With LearnDash you can create a Group for your course bundle, and set a linked tag on this group.
In our example above, the All Courses Bundle Purchase tag would be associated with an All Access group. When the tag is applied the user will be added to the group, which then grants access to all courses, even though the user doesn』t have the linked tags from any of the individual courses.
Removing the linked tag removes the user from that group, and their course access is revoked.
LifterLMS
Likewise, with LifterLMS you can create a Membership for your course bundle, and set a linked tag on this membership.
In our example above, the All Courses Bundle Purchase tag would be associated with an All Courses membership. When the tag is applied the user will be added to the membership, which then grants access to all courses, even though the user doesn』t have the linked tags from any of the individual courses.
By using Groups or Memberships as an extra level of access control, you can create different overlapping bundles of access to your courses which still use a single linked tag for auto-enrollment.
#How do I use external shopping carts with WP Fusion?

Any external system that connects to your CRM, like ThriveCart or SamCart, can be used with WP Fusion. The principles are universal, but at right you can see an example workflow using Drip.
The purchase in ThriveCart triggers the automation. Then a tag is applied to the new subscriber. This is the tag that you will use to unlock content in WordPress. Or it can be used to trigger an automated enrollment in any of our supported membership or LMS plugins.
After the tag is applied, a webhook is sent to your site. This tells WP Fusion to create a new WordPress user and load their tags. WP Fusion generates a password and stores it back in a custom field in Drip.
The final step is sending a welcome email with the subscriber』s password included. When they log into your site, they』ll be able to access their content right away.

#Was this helpful?

Let us know if you liked the post. That』s the only way we can improve.

Yes

No

Is WP Fusion hard to use?

Is WP Fusion hard to use?

「Is WP Fusion hard to use?」 That』s a question we get asked a lot.
The answer is yes, and no.
#Where it』s easy
When you first connect WP Fusion to your CRM, it will automatically configure itself based on the plugins you have installed on your site.
New users who register or customers who make a purchase will be added to your CRM as contact records with their name and email address, all automatically.
It』s a really easy, one-click solution to start syncing data from WordPress into your CRM.
#Where it gets hard
WP Fusion can connect a lot of different things between your CRM and across 70+ plugin integrations, and has a lot of advanced features that can be enabled.
As an example let』s say you want to:

Create a opt-in form in Elementor Forms which adds a contact to ActiveCampaign
Using Form Auto Login, the new lead is identified to both WP Fusion and the ActiveCampaign tracking script on form submission
You require the lead to watch at least 15 minutes of a video on the next page to get free access to your course. WP Fusion Media Tools applies a tag to the lead in ActiveCampaign when they hit the right timecode
This tag triggers an automation in ActiveCampaign which sends a webhook to WordPress, to create a new WordPress user account and generate a password
Using a linked tag in a LearnDash course, the new user is automatically enrolled in the free course
An automated email is sent from ActiveCampaign to the new student containing their login information

These kinds of setups are also possible with WP Fusion, and they can be super effective, but they necessarily require a lot more time and patience to set up.
You』d want to be comfortable with understanding how caching on your site might interfere with tracking guests, troubleshooting webhooks getting blocked by your firewall, reading the WP Fusion logs, and understanding how automations are processed in your marketing platform.
#Our advice
Our advice is to start with your goals. Figure out what you want to automate, what data is most valuable for you to track, and what』s going to make the biggest impact on your outcomes— whether that』s increasing member engagement, driving more sales, collecting more leads, or recovering more abandoned carts.
Then start slow with trying out new strategies and components one by one, and measuring their effectiveness.
The greatest frustration we see from customers is people who』ve turned on every setting and enabled every integration all at once. Suddenly people can』t log in, they』re getting un-enrolled from courses, or they』re getting unwanted emails.
With great power comes great responsibility. Go slow, and feel free to contact us at any time with any questions about your setup or strategy, we』re here for you.

#Was this helpful?

Let us know if you liked the post. That』s the only way we can improve.

Yes

No