SyncSheets is extensible by design. Developers can create custom data providers to sync any type of WordPress data with Google Sheets.
The Data Provider Interface
All data providers implement the SyncSheetsProvidersData_Provider interface. This interface defines the methods your custom provider must include.
Required Methods
- get_id(): Return a unique string identifier for your provider (e.g., “my_custom_data”).
- get_label(): Return a human-readable name shown in the admin UI.
- get_description(): Return a brief description of what data this provider handles.
- get_icon(): Return an icon identifier for the provider card.
- is_available(): Return true/false to indicate if the provider can be used (e.g., check if a dependency plugin is active).
- get_fields(): Return an array of available fields with their labels and types.
- get_filters(): Return an array of filter options for the provider.
- get_data(): Fetch and return the data to be exported.
- import_item(): Create or update a single item from imported sheet data.
- get_sync_hooks(): Return WordPress action hooks for real-time sync triggers.
- get_available_triggers(): Return supported trigger types (create, update, delete).
- get_item_data(): Fetch data for a single item by ID.
Registering Your Provider
Use the syncsheets_register_providers action hook to register your custom provider:
add_action( 'syncsheets_register_providers', function( $sync_engine ) {
$sync_engine->register_provider( new My_Custom_Provider() );
});Available Filter Hooks
SyncSheets provides filter hooks to modify provider fields:
syncsheets_posts_fields— Modify Posts & Pages fields.syncsheets_wc_orders_fields— Modify WooCommerce Orders fields.- Similar filters exist for all built-in providers.
Use these filters to add custom fields to existing providers or remove fields you do not need.