What does it do?
With this plugin you can map and synchronize fields in the WordPress user and usermeta database.
Per mapping you choose the direction:
- One-way: the primary field is copied to the secondary field whenever it changes.
- Two-way: both fields are kept in sync in either direction. If both sides change between syncs, the conflict is detected and resolved with primary priority (the primary field wins).
The plugin adds a new menu in the backend called 'SyncFields', which allows you to control the plugin settings.
Give me an example please
When you install plugins such as WooCommerce, the Wordpress usermeta database table is populated with new fields. You can map these fields and choose to automatically sync these with other usermeta fields, or with the Wordpress regular user fields.
For example, you can choose to Sync WooCommerce billing_country usermeta field with the WordPress main Country user field. And lot's of other ways to sync data within WordPress, and keep it synced automatically.
Does it work with plugin xyz...?
Yes, it works with ANY plugin which creates usermeta fields. The plugin automatically finds new fields every time you install a new plugin.
To create a new Sync between two database fields:
- Click on 'Add new mapping'. A list of available fields are collected. (This can take some time).
- Choose the Primary Field.
- Choose a field the primary field will sync with.
- Click on 'Create New Field'
Once you created a mapping between two fields, the data will remain synced for all users. (The way it works is that every time data is changed in a field the sync will trigger automatically).
To delete a field mapping:
- Click the 'delete' button in the applicable mapping row.
To edit a field mapping:
- Click the 'edit' button in the applicable mapping row.
Caution:
Make sure database fields which you intend to sync are of the same type. So for example do not sync an email field with a Country field, this will result in invalid data in the synced fields.
If in doubt do NOT sync fields with each other, it may break your site in extreme cases.
Tested at
plugintests.com
Wonder if it will slow down your site? Wonder it creates PHP errors?
It doesn't. Check this out:
https://plugintests.com/plugins/wporg/syncfields/latest
For an automatic installation through WordPress:
- Go to the 'Add New' plugins screen in your WordPress admin area
- Search for 'SyncFields'
- Click 'Install Now' and activate the plugin
- Go to the 'SyncFields' menu
For a manual installation via FTP:
- Upload the syncfields directory to the /wp-content/plugins/ directory
- Activate the plugin through the 'Plugins' screen in your WordPress admin area
- Go the 'SyncFields' menu
To upload the plugin through WordPress, instead of FTP:
- Upload the downloaded zip file on the 'Add New' plugins screen (see the 'Upload' tab) in your WordPress admin area and activate.
- Go the 'SyncFields' menu
4.1
- Hardened request handling: wp_unslash() before sanitizing all $_GET/$_POST input, and escaped admin error messages
- Bulk delete now casts mapping IDs with absint() before use
- Two-way sync compares timestamps in UTC (time()) for consistent change detection across timezones
- Log-retention cutoff computed via current_datetime() to match how log entries are stored
- Full WordPress Coding Standards (PHPCS) compliance, with documented exceptions
- Declared "Requires at least" and "Requires PHP" in the plugin header
4.0
- Complete rebuild on a modern, namespaced architecture (autoloader, service classes, versioned installer)
- New: two-way sync per mapping, with primary-priority conflict resolution
- Security hardening: prepared statements (SQL injection), output escaping (XSS), nonce + capability checks (CSRF)
- New: searchable field selector with automatic field discovery and type-compatibility validation
- New: activity log, dry-run preview, WP-CLI commands, and a REST field-search endpoint
- Requires WordPress 6.5+ and PHP 7.4+; tested up to WordPress 7.0
3.0
Major Update: Complete Plugin Modernization and Two-Way Sync
This update represents a comprehensive overhaul of the SyncFields plugin, bringing it up to modern WordPress standards with significant new features and improvements.
New Feature: Two-Way Synchronization
- You can now choose between one-way or two-way sync for each mapping
- Two-way sync keeps both fields synchronized automatically in both directions
-
Conflict detection: when both fields change between syncs, the conflict is resolved with primary priority (the primary field wins) so the fields can never drift apart silently
Enhanced Security
-
All security vulnerabilities have been fixed
- The plugin now follows WordPress security best practices
-
Your data is protected with proper input validation and output escaping
Improved Field Selection
-
New searchable field selector makes it easy to find the fields you need
- Automatically discovers fields from all installed plugins
-
Type validation prevents incompatible field mappings
Better User Experience
-
Cleaner, more intuitive admin interface
- Activity log to track all synchronization events
- Dry-run mode to preview changes before applying them
-
WP-CLI commands for advanced users
Developer Tools
-
Unit tests for core helper logic (field compatibility, mapping templates)
- WP-CLI support for automation
- REST API for field discovery
-
Comprehensive logging system with automatic retention
Code Quality
-
Complete code modernization following WordPress standards
- Improved performance and reliability
- Better error handling and user feedback
2.2
- Version 2.2: Security improvements and code modernization. All security vulnerabilities have been fixed including SQL injection, XSS, and CSRF protection. The plugin now follows WordPress coding standards and is fully compatible with the latest WordPress versions.
- Version 2.1: Confirmed compatability with Wordpress 6.5
- Version 2.0: Confirmed compatability with Wordpress 6.1
- Version 1.9.91: Confirmed compatability with Wordpress 6.0
- Version 1.9.9: Confirmed compatibility with latest Wordpress
- Version 1.9.8: Confirmed compatibility with latest Wordpress
- Version 1.9.7: Added FAQ, plugin works with Headless /JamStack WordPress sites
- Version 1.9.6: Confirmed compatibility with Wordpress 5.5.1
- Version 1.9.5: Confirmed compatibility with Wordpress 5.3
- Version 1.9.4: Added security code suggested by Jeff Starr. Confirmed compatibility with Wordpress 5.2
- Version 1.9.3: Confirmed compatibility with Wordpress 5.1
- Version 1.9.2: Confirmed compatibility with Wordpress 5.0 (first release with Gutenberg)
- Version 1.9.1: Small edits, and confirmed compatibility with Wordpress 4.9.8
- Version 1.9: Confirmed compatibility with Wordpress 4.9.8
- Version 1.8: Small edits, and confirmed compatibility with Wordpress 4.9.4
- Version 1.7: Confirmed compatibility with Wordpress 4.9
- Version 1.6: Confirmed compatibility with Wordpress 4.8
- Version 1.5.2: Confirmed compatibility with Wordpress 4.6
- Version 1.5.1: Clarified plugin does one-way sync
- Version 1.5: Corrected typos
- Version 1.4: Backend updates to improve the flow
- Version 1.3: Edited the FAQ
- Version 1.2: Added to the FAQ about missing usermeta fields
- Version 1.1.1 : Added background image
- Version 1.0 : Stable release for production
- Version 0.6.1 : Small changes
- Version 0.5.4 to 0.5.9 : Edits in explanation and screenname to make things more consistent.
- Version 0.5 : Stable enough to release to the public for further scrutiny :-)
- Version 0.4 : Stable enough to test in a production environment with WooCommerce. Beta testers feedback encompassed.
- Version 0.3 : Debugging.
- Version 0.2 : Added automatic sync functionality.
- Version 0.1 : Initial rough thoughts, bugs to squash..