Visser Labs – WooCommerce Plugins

  1. Home
  2. Knowledge Base
  3. WooCommerce Store Exporter Deluxe
  4. Available hooks and filters for further customization

Available hooks and filters for further customization

Store Exporter Deluxe fires a large set of WordPress action and filter hooks throughout its export process. Use them to add your own fields to the export forms, change what data gets exported, or plug in an entirely new export type without editing plugin files directly.

This is a developer reference. It assumes you’re comfortable adding code through a custom plugin or your theme’s functions.php. If you’re not familiar with WordPress hooks, see the WordPress Plugin Handbook on hooks first.

Since Store Exporter Deluxe v5.4.3, the plugin’s admin screens (Overview, Quick Export, Scheduled Exports, Settings, and so on) are rendered by a Vue single-page app under WooCommerce → Store Export. Most of the hooks below still fire from the same underlying PHP functions they always have, so they work the same way no matter which admin screen triggers them. A few hooks tied to the old export form and Settings screen no longer fire at all: see the callout under Actions below for which ones. The section headings group hooks by what they affect, not by a specific on-screen tab name.

How hooks fit into the export pipeline

Every export, whether triggered from Quick Export, a Scheduled Export, or manual CRON, runs through the same three stages:

  • Prepare: the exporter opens the output file and writes the column headers. For XML and RSS exports, filters like wsed_export_xml_first_line and wsed_export_xml_store_node control the opening tags and root node name before any rows are added.
  • Process: the exporter fetches records in batches (100 records at a time by default, configurable via the batch-size setting; scheduled exports don’t run in batches) and writes each row. Filters named *_item (like woo_ce_product_item or woo_ce_order_item) run here, once per record, letting you change or add data to that row.
  • Finalize: the exporter closes out the file, for example closing the XML dataset with wsed_export_xml_after_dataset, then hands it off for download, email, or archiving.

Keep this in mind when picking a hook: an _item filter changes one record at a time during Process, while an _options action (fired during the admin form, before Prepare even starts) only affects the export form you see, not the data itself.

Actions

Actions are hooks that WordPress runs at specific points during execution, or when specific events occur.

Before the Vue SPA rewrite in v5.4.3, Store Exporter Deluxe rendered the Quick Export form and the Settings screen with legacy PHP templates that fired hooks like woo_ce_export_options and woo_ce_export_settings_after so you could add your own fields to them. Those templates are no longer part of the current admin UI, so those hooks don’t fire anymore. If you were relying on one of them to add a custom field to the export form or Settings screen, open a support ticket so our team can help you find a working alternative for your use case.

Five other filters were removed from the codebase entirely, rather than left unreachable like the hooks above. These went in unrelated refactors between 2023 and 2024, well before the v5.4.3 rewrite, and none of them was deprecated first: woo_ce_setup_dataset_options, woo_ce_extend_order_fields_custom_order_hover, woo_ce_extend_order_fields_custom_order_item_hover, woo_ce_extend_order_fields_custom_product_hover, and woo_ce_get_order_items_variation_custom. None of these fire in the current plugin. The similarly named woo_ce_extend_order_fields_custom_user_hover, woo_ce_extend_product_fields_custom_product_hover, and woo_ce_get_order_items_variation_taxonomy are still available for related fields (see the Order and Product sections below). If you need one of the removed filters, open a support ticket so our team can help you find a working alternative.

Scheduled Export edit screen

These fire on the Scheduled Export edit screen, where each scheduled export is stored and managed as its own post.

  • woo_ce_before_scheduled_export_general_options: Add fields to the General tab
  • woo_ce_before_scheduled_export_type_options: Add fields to the Type tab
  • woo_ce_before_scheduled_export_method_options: Add fields to the Method tab
  • woo_ce_before_scheduled_export_frequency_options: Add fields to the Frequency tab

Filters

Filters are hooks that modify data before it’s used, whether that’s before it’s added to the database or before it’s written to the export file.

Generic

  • woo_ce_export_types: Add your own export types
  • woo_ce_sys_get_temp_dir: Override the default PHP temporary directory for custom paths
  • woo_ce_template_header: Override the default Store Exporter Deluxe header title
  • woo_ce_admin_order_actions: Add your own buttons to the Actions column on the Orders screen
  • woo_ce_display_admin_footer_text: Modify the WP Admin footer message
  • woo_ce_modules_addons: Add your own plugins to the Export Modules widget
  • woo_ce_get_visitor_ip_address: Override the detected CRON IP address
  • woo_ce_get_line_ending: Override the default line ending character
  • woo_ce_wc_price_decimal_sep
  • woo_ce_wc_price_thousands_sep
  • woo_ce_get_export_type_count: Override the export type counts
  • woo_ce_scheduled_export_data_tabs: Add your own tabs to the Scheduled Export edit screen
  • woo_ce_admin_user_capability: Override the default required user capability to see the WooCommerce > Store Export screen
  • woo_ce_admin_dashboard_user_capability: Override the default required user capability to view the Scheduled Exports and Recent Scheduled Export dashboard widgets

Brand

  • woo_ce_brand_term_taxonomy: Override the default product_brand term taxonomy
  • woo_ce_get_product_brands_args: Add your own WP_Query filters to the Brands export

Category

  • woo_ce_category_item: Add support for additional Category columns
  • woo_ce_get_product_categories_args: Add your own WP_Query filters to the Categories export

Coupon

  • woo_ce_get_coupons_args: Add your own WP_Query filters to the Coupons export
  • woo_ce_coupon_item: Add support for additional Coupon columns
  • woo_ce_coupon_smart_coupons_valid_for
  • woocommerce_coupon_discount_types: Add your own coupon discount types

Commission

  • woo_ce_get_commissions_args: Add your own WP_Query filters to the Commissions export

CRON

  • woo_ce_cron_export_post_args: Override the HTTP POST options
  • woo_ce_email_recipient_name: Override the default email recipient name
  • woo_ce_email_contents: Override the default email contents message
  • woo_ce_cron_export_ftp_switch: Switch between ftp_put and ftp_fput FTP methods
  • woo_ce_default_email_subject: Override the default email subject
  • woo_ce_trigger_new_order_items_formatting

Customer

  • woo_ce_customer_post_status: Override the default Customer post status passed to WP_Query
  • woo_ce_extend_customer_fields_custom_customer_hover
  • woo_ce_extend_customer_fields_custom_user_hover

Order

  • woo_ce_order_post_status: Override the default Order post status passed to WP_Query
  • woo_ce_extend_order_fields_product_addons
  • woo_ce_extend_order_fields_wccs
  • woo_ce_extend_order_fields_gf_label
  • woo_ce_extend_order_fields_gf_hover
  • woo_ce_extend_order_fields_attribute
  • woo_ce_extend_order_fields_custom_user_hover
  • woo_ce_get_orders_args: Add your own WP_Query filters to the Orders export
  • woo_ce_get_order_id
  • woo_ce_get_order_data_billing_address
  • woo_ce_get_order_data_shipping_address
  • woo_ce_order_items_combined
  • woo_ce_order_items_unique
  • woo_ce_order: Add support for additional Order columns
  • woo_ce_get_order_assoc_shipping_method_id
  • woo_ce_get_order_assoc_notes_date
  • woo_ce_get_order_assoc_notes_customer
  • woo_ce_get_order_assoc_notes_order
  • woo_ce_enable_addon_gravity_forms
  • woo_ce_get_order_items_variation_taxonomy
  • woo_ce_order_item_custom_meta
  • woo_ce_order_item
  • woo_ce_order_item_types: Add your own Order Item types
  • woo_ce_order_items_individual
  • woo_ce_add_unique_order_item_fields_on
  • woo_ce_add_unique_order_item_fields_exclusion
  • woo_ce_unique_order_item_column_id
  • woo_ce_unique_order_item_column_product_id
  • woo_ce_unique_order_item_columns
  • woo_ce_extend_order_items_unique_columns_gf_fields
  • woo_ce_get_order_shipping_methods

Product

  • woo_ce_get_export_type_product_count_post_types
  • woo_ce_extend_product_fields_custom_attribute_hover
  • woo_ce_extend_product_fields_custom_product_hover
  • woo_ce_get_products_post_type
  • woo_ce_get_products_status
  • woo_ce_get_products_args: Add your own WP_Query filters to the Products export
  • woo_ce_product_item: Add support for additional Product columns
  • woo_ce_get_product_assoc_categories_size
  • woo_ce_format_product_types
  • woo_ce_unique_product_gallery_column
  • woo_ce_format_description_excerpt_allowed_html
  • woo_ce_format_description_excerpt_allowed_protocols
  • woo_ce_format_description_excerpt

Product Vendor

  • woo_ce_get_product_vendors_args: Add your own WP_Query filters to the Product Vendors export
  • woo_ce_product_vendor: Add support for additional Product Vendor columns
  • woo_ce_product_vendor_term_taxonomy: Override the default wcpv_product_vendors term taxonomy

Shipping Class

  • woo_ce_get_shipping_clases_args: Add your own WP_Query filters to the Shipping Classes export

Subscription

  • woo_ce_get_subscriptions_args: Add your own WP_Query filters to the Subscriptions export
  • woo_ce_subscription: Add support for additional Subscription columns
  • woo_ce_subscription_statuses
  • woo_ce_extend_subscription_fields_wc
  • woo_ce_extend_subscription_fields_custom_user_hover

Tag

  • woo_ce_get_product_tags_args: Add your own WP_Query filters to the Tags export

User

  • woo_ce_extend_user_fields_wc
  • woo_ce_extend_user_fields_custom_user_hover
  • woo_ce_get_users_args: Add your own WP_Query filters to the Users export
  • woo_ce_get_user_data_full_name
  • woo_ce_user: Add support for additional User columns

XML and RSS

Store Exporter Deluxe has two code paths for generating XML and RSS output. Quick Export and Scheduled Exports use the wsed_ prefixed filters below. The woo_ce_ prefixed equivalents only fire for exports triggered through the legacy manual CRON URL. If you’re customizing XML or RSS output for a Quick Export or a Scheduled Export, use the wsed_ version.

Manual CRON export (legacy)Quick Export and Scheduled Exports
woo_ce_export_xml_first_linewsed_export_xml_first_line
woo_ce_export_xml_store_nodewsed_export_xml_store_node
woo_ce_export_xml_before_datasetwsed_export_xml_before_dataset
woo_ce_export_xml_after_datasetwsed_export_xml_after_dataset
woo_ce_export_rss_first_line(no Quick Export/Scheduled equivalent)
woo_ce_export_rss_channel_nodewsed_export_rss_channel_node

The following node filters apply to both code paths:

  • woo_ce_export_xml_product_node
  • woo_ce_export_xml_category_node
  • woo_ce_export_xml_tag_node
  • woo_ce_export_xml_brand_node
  • woo_ce_export_xml_order_node
  • woo_ce_export_xml_customer_node
  • woo_ce_export_xml_user_node
  • woo_ce_export_xml_coupon_node
  • woo_ce_export_xml_subscription_node
  • woo_ce_export_xml_product_vendor_node
  • woo_ce_export_xml_commission_node
  • woo_ce_export_xml_shipping_class_node

Common customization examples

These examples show real signatures verified against the current plugin code. Add them to a custom plugin or your theme’s functions.php.

Add a custom column to the Products export

woo_ce_product_item runs once per product during the Process stage. It receives the row data array, the product ID, and the WC_Product object:

add_filter( 'woo_ce_product_item', 'my_custom_product_column', 10, 3 );
function my_custom_product_column( $product, $product_id, $wc_product ) {
    $product['my_custom_field'] = get_post_meta( $product_id, '_my_custom_field', true );
    return $product;
}

Add the matching column ID to your export’s field list from the Export Fields section so the new value actually appears in the output.

Adding your own field to the Quick Export form or Settings screen isn’t currently possible through a hook. The Vue SPA that renders those screens doesn’t expose an extension point for this yet. If you need this, open a support ticket to discuss your use case.

Add a custom tab to the Scheduled Export edit screen

woo_ce_scheduled_export_data_tabs receives the array of tabs shown on the Scheduled Export edit screen, each keyed by a tab ID with a label, a target element ID, and a CSS class:

add_filter( 'woo_ce_scheduled_export_data_tabs', 'my_custom_scheduled_export_tab' );
function my_custom_scheduled_export_tab( $tabs ) {
    $tabs['my_tab'] = array(
        'label'  => __( 'My Tab', 'my-textdomain' ),
        'target' => 'my_tab_panel',
        'class'  => '',
    );
    return $tabs;
}

woo_ce_export_types only adds a label to the export type list used in places like the type counter. Registering a fully working new export type also means adding a matching case to the internal exporter dispatch, which isn’t something a single filter can do. If you need a genuinely new export type, open a support ticket to discuss your use case.

FAQ

Do I need to know the plugin’s internals to use these hooks?
No. You only need the hook name, when it fires, and what arguments it passes, all of which are listed above. You don’t need to read the plugin’s source code to use a hook.
Will these hooks change in a future update?
Hook names are considered part of the plugin’s public API and Visser Labs avoids renaming them without notice. That said, always test custom code against a staging site after updating the plugin.
Where do I add this code?
Add it to a custom (site-specific) plugin, or to your active theme’s functions.php if you’re not using a child theme setup. Don’t edit Store Exporter Deluxe’s own files directly. Any changes there are lost on the next plugin update.

Need more help?

If you’re on Store Exporter Deluxe and need help with a specific customization, open a support ticket and our team can point you to the right hook for your use case.

If you’re using the free Store Exporter plugin, ask your question on the WordPress.org support forum.

Was this article helpful?

Related Articles

Resources & Help