Custom User Role Sync - mailchimp/mc-woocommerce GitHub Wiki
Problem Statement and Solution
Problem: WooCommerce administrators often face challenges in synchronizing orders for custom user roles created in WordPress.
Solution: The solution involves implementing a custom filter within WooCommerce. This filter extends the default functionality to include additional user roles in order synchronization, thereby catering to unique business requirements.
mailchimp_campaign_user_roles
Filter
Utilizing the Existing The mailchimp_campaign_user_roles
filter is a pre-existing tool in WooCommerce that specifies which user roles are valid for order tracking. This filter can be modified to include custom roles, thereby enabling synchronization for a broader range of user roles.
Custom Implementation Guide
To integrate custom roles into the synchronization process, a snippet can be added to the functions.php
file of the WordPress theme. Here's an illustrative example:
add_filter('mailchimp_campaign_user_roles', function($allowed_roles) {
// Add your custom roles here
$allowed_roles[] = 'your_custom_role';
$allowed_roles[] = 'another_custom_role';
return $allowed_roles;
});
This script allows the inclusion of custom roles like 'your_custom_role' and 'another_custom_role' in order tracking.
Working with Default Roles
The Mailchimp for WooCommerce plugin, by default, tracks orders for 'customer' and 'subscriber' roles. The following code snippet shows the standard approach to using the filter:
$allowed_roles = array('customer', 'subscriber');
$allowed_roles = apply_filters('mailchimp_campaign_user_roles', $allowed_roles);
Administrators can append custom roles to this array as per their requirements, ensuring a more inclusive order tracking system.