Risk Free, Backed By Our 90-Day Money Back Guarantee
 - 
Read More
Lifetime Licenses Are Ending Soon, Get Yours Before They're Gone
 - 
Read More
Risk Free, Backed By Our 90-Day Money Back Guarantee
Pricing

You may have seen some references on our site to annual licensing or renewals.

All plugins currently come with a lifetime license, no matter what the site says.

We’re currently running tests before we make the switch to annual pricing. Check the Discounts tab to purchase our other plugins and get a lifetime license before they’re gone.

I Understand I Have a Lifetime License
Now is your last chance to buy a lifetime license before we switch to annual pricing. Existing licenses will be unaffected.
Read More
200,000+ Active Installs
1500+ 5 Star Reviews
Docs Menu

The best import export plugin for WordPress & WooCommerce.

Complete, granular control of your data with an easy to use drag & drop interface.
  • 90 Day Money Back Guarantee
  • Unlimited Installs
  • Lifetime Licence
  • Fast, World-Class Support
Get Started
90 Day Money Back Guarantee

The Structure of an Import Add-On

WP All Import Add-Ons are WordPress plugins that make use of WP All Import's Rapid Add-On API. A few simple lines of code are all it takes to add UI elements to WP All Import and then determine how data gets imported.

There are five main parts to an add-on:

Now, we'll go through each of them and learn how to create a simple add-on for WP All Import.

Important Note –The this is the latest Rapid Add-On structure and it requires WP All Import (Free) v3.7.6 or higher, or WP All Import Pro v4.8.9-beta-1.0 or higher. If you're using an older version, please check Rapid Add-On Legacy Structure

Step 1: Register as a Plugin and Add-On

To get started, you need to tell WordPress that this is a plugin and then set the groundwork for our import add-on. Start by defining your plugin with metadata and setting up a class structure. This involves creating the plugin header and using a singleton pattern. We'll instantiate a class for our add-on and reference the Rapid Add-On API from WP All Import —this will make it work with both the Free and Pro versions of WP All Import.

/*
Plugin Name: My First Add-On
Description: A super awesome add-on for WP All Import!
Version: 1.0
Author: WP All Import
*/

if (!defined('ABSPATH')) {
    exit; // Exit if accessed directly
}

final class My_First_Add_On {
    protected static $instance;
    protected $add_on;
    protected $addon_name = 'My First Add-On'; // Define the name of your add-on
    protected $addon_slug = 'my_first_addon'; // Define a unique add-on slug

    // Singleton pattern to ensure only one instance of the add-on is loaded
    public static function get_instance() {
        if (self::$instance === null) {
            self::$instance = new self();
        }
        return self::$instance;
    }

    // Constructor to add the init hook
    protected function __construct() {
        add_action('init', array($this, 'init'));
    }
}

Here, the plugin header gives WordPress the basic details about your plugin. The singleton class ensures that only one instance of the add-on exists at any time. We add an action to the init method to prepare our add-on for initialization when WordPress is ready.

Step 2: Check Required Classes and Dependencies

Before moving forward, it's important to verify that WP All Import and its Rapid Add-On API are active. If these essential classes are missing, we won't be able to initiate our add-on.

public function init() {
    // Check for required classes and display an admin notice if not found
    if (!class_exists('PMXI_Plugin') || !class_exists('PMXI_RapidAddon')) {
        add_action('admin_notices', function() {
            echo '

The My First Add-On requires WP All Import Pro to be installed and active.

'; }); return; } }

This part of the code checks for the existence of the PMXI_Plugin or PMXI_RapidAddon required classes. If they're not found, it triggers an admin notice to inform the user that WP All Import is needed. This check ensures that everything is in place before proceeding.

Optionally, you can also limit your add-on to run only when specific plugins or themes are active by adding more logic to the init method. Here is an example of running the add-on only when WP All Import is enabled and the Twenty Twenty-Four theme is active.

public function init() {
    // Check for required classes and display an admin notice if not found
    if (!class_exists('PMXI_Plugin') || !class_exists('PMXI_RapidAddon')) {
        add_action('admin_notices', function() {
            echo '

The My First Add-On requires WP All Import Pro to be installed and active.

'; }); return; } // Check if the Twenty Twenty-Four theme is active $theme = wp_get_theme(); if (!in_array($theme->get('Name'), ['Twenty Twenty-Four'])) { add_action('admin_notices', function() { echo '

The My First Add-On requires the Twenty Twenty-Four theme to be active.

'; }); return; }

Step 3: Initialize the Add-On

Now that we know the required classes are available, it's time to initialize the add-on with the unique name and slug we defined in Step 1.

// Initialize the add-on with its name and slug
$this->add_on = new PMXI_RapidAddon($this->addon_name, $this->addon_slug);
$this->wpai_setup_fields(); // Add fields to the add-on
$this->add_on->set_import_function([$this, 'import']); // Set the import function
$this->add_on->run(); // Run the add-on

Here is how our init method should look like:

public function init() {
    // Check for required classes and display an admin notice if not found
    if (!class_exists('PMXI_Plugin') || !class_exists('PMXI_RapidAddon')) {
        add_action('admin_notices', function() {
            echo '

The My First Add-On requires WP All Import Pro to be installed and active.

'; }); return; } // Initialize the add-on with its name and slug $this->add_on = new PMXI_RapidAddon($this->addon_name, $this->addon_slug); $this->wpai_setup_fields(); // Add fields to the add-on $this->add_on->set_import_function([$this, 'import']); // Set the import function $this->add_on->run(); // Run the add-on }

Step 4: Add the Import Fields and UI Elements

Next, we'll add custom fields to the import template. These fields let users map their data using WP All Import's drag and drop interface.

// Define the fields for the import template
public function wpai_setup_fields() {
    $this->add_on->add_field('property_location', 'Property Location', 'text');
    $this->add_on->add_field('property_address', 'Property Address', 'text');
}

In this example, we added the property_location and property_address custom fields to the import template. Now, these two are text fields, but you can also add radio fields, image fields, and complex nested fields to your add-on.

Next, we'll specify how the data should be imported into your theme or plugin. This function will handle the actual data import.

// Import function to handle the actual data import
public function import($post_id, $data, $import_options) {
    $fields = ['property_location', 'property_address'];
    foreach ($fields as $field) {
        // Check if the field can be updated
        if (empty($data['ID']) || $this->add_on->can_update_meta($field, $import_options)) {
            // Update the custom field with the imported data
            update_post_meta($post_id, $field, $data[$field]);
        }
    }
}

It will update the post meta with the imported values and ensure that each field can be updated before saving the data, making sure that only allowed fields are modified during the import process.

Import Any CSV, XML, or Excel to WordPress

  • Any theme or plugin
  • Images & galleries
  • Custom fields
  • Categories & tags
  • Woo, ACF, Meta Box, JetEngine

Step 5: Close Out The Add-On.

Finally, we need to call the get_instance() method at the end of the file, outside of the class definition:

My_First_Add_On::get_instance();

That’s All — You Are Done Coding!

By calling get_instance(), we ensure the add-on is properly initialized and ready to run. This final step completes the setup, making your WP All Import add-on fully functional. Adjust field names and import logic as needed for your specific use case.

To see the add-on in action, install and activate this plugin, and do an import with WP All Import.

The add-on will appear in Step 3 of WP All Import as a box titled My First Add-On:

My First Add-On

Here is an example of a fully functional add-on for WP All Import if you want to see what it looks like.

Related Docs

Learn more about text fields for WP All Import Add-Ons.

Learn more about using radio fields for WP All Import Add-Ons.

Learn more about image fields in your WP All Import Add-On.

Learn about adding nested fields to your WP All Import Add-On.

The best import export plugin for WordPress & WooCommerce.

Complete, granular control of your data with an easy to use drag & drop interface.
  • 90 Day Money Back Guarantee
  • Unlimited Installs
  • Lifetime Licence
  • Fast, World-Class Support
Get Started
90 Day Money Back Guarantee

Unlimited Installs.
World-Class Support. Money Back Guarantee.

Packages
Standalone
Import
Pro Package
$199
.00
/yr
Save $494, 71% Discount
  • Import Pro
Import Add-Ons
  • Woo
  • ACF
  • Meta Box
  • JetEngine
  • Gravity Forms
  • Users
  • Export Pro
Export Add-Ons
  • Woo
  • ACF
  • Meta Box
  • JetEngine
  • Gravity Forms
  • Users
$693 If Purchased Individually
Buy Now
90 Day Money Back Guarantee
Import + Export Pro Package
$299
.00
/yr
Save $1087, 78% Discount
  • Import Pro
Import Add-Ons
  • Woo
  • ACF
  • Meta Box
  • JetEngine
  • Gravity Forms
  • Users
  • Export Pro
Export Add-Ons
  • Woo
  • ACF
  • Meta Box
  • JetEngine
  • Gravity Forms
  • Users
$1386 If Purchased Individually
Buy Now
90 Day Money Back Guarantee
WooCommerce Import Package
$169
.00
/yr
Save $29, 15% Discount
  • Import Pro
Import Add-Ons
  • Woo
  • ACF
  • Meta Box
  • JetEngine
  • Gravity Forms
  • Users
  • Export Pro
Export Add-Ons
  • Woo
  • ACF
  • Meta Box
  • JetEngine
  • Gravity Forms
  • Users
$198 If Purchased Individually
Buy Now
90 Day Money Back Guarantee
Lifetime License
$1299
One-Time Payment
  • Import Pro + Export Pro
  • All Current Add-Ons
  • All Future Add-Ons
  • Lifetime Support
  • Lifetime Updates
  • No Renewal Fees
Buy Now
90 Day Money Back Guarantee
Import Standalone
$99
.00
/yr
  • Import Pro
Import Add-Ons
  • Woo
  • ACF
  • Meta Box
  • JetEngine
  • Gravity Forms
  • Users
  • Export Pro
Export Add-Ons
  • Woo
  • ACF
  • Meta Box
  • JetEngine
  • Gravity Forms
  • Users
Buy Now
90 Day Money Back Guarantee
Import + Export Standalone
$169
.00
/yr
  • Import Pro
Import Add-Ons
  • Woo
  • ACF
  • Meta Box
  • JetEngine
  • Gravity Forms
  • Users
  • Export Pro
Export Add-Ons
  • Woo
  • ACF
  • Meta Box
  • JetEngine
  • Gravity Forms
  • Users
Buy Now
90 Day Money Back Guarantee
Export Standalone
$99
.00
/yr
  • Import Pro
Import Add-Ons
  • Woo
  • ACF
  • Meta Box
  • JetEngine
  • Gravity Forms
  • Users
  • Export Pro
Export Add-Ons
  • Woo
  • ACF
  • Meta Box
  • JetEngine
  • Gravity Forms
  • Users
Buy Now
90 Day Money Back Guarantee
Packages
Standalone
Import
Pro Package
$16.58
per month, billed annually
Save $494/yr, 71% Discount
  • Import Pro
Import Add-Ons
  • Woo
  • ACF
  • Meta Box
  • JetEngine
  • Gravity Forms
  • Users
  • Export Pro
Export Add-Ons
  • Woo
  • ACF
  • Meta Box
  • JetEngine
  • Gravity Forms
  • Users
$693/yr If Purchased Individually
Buy Now
90 Day Money Back Guarantee
Import + Export Pro Package
$24.92
per month, billed annually
Save $1087/yr, 78% Discount
  • Import Pro
Import Add-Ons
  • Woo
  • ACF
  • Meta Box
  • JetEngine
  • Gravity Forms
  • Users
  • Export Pro
Export Add-Ons
  • Woo
  • ACF
  • Meta Box
  • JetEngine
  • Gravity Forms
  • Users
$1386/yr If Purchased Individually
Buy Now
90 Day Money Back Guarantee
WooCommerce Import Package
$14.08
per month, billed annually
Save $29/yr, 15% Discount
  • Import Pro
Import Add-Ons
  • Woo
  • ACF
  • Meta Box
  • JetEngine
  • Gravity Forms
  • Users
  • Export Pro
Export Add-Ons
  • Woo
  • ACF
  • Meta Box
  • JetEngine
  • Gravity Forms
  • Users
$198/yr If Purchased Individually
Buy Now
90 Day Money Back Guarantee
Lifetime License
$1399
One-Time Payment
  • Import Pro + Export Pro
  • All Current Add-Ons
  • All Future Add-Ons
  • Lifetime Support
  • Lifetime Updates
  • No Renewal Fees
Buy Now
90 Day Money Back Guarantee
Import Standalone
$8.25
per month, billed annually
  • Import Pro
Import Add-Ons
  • Woo
  • ACF
  • Meta Box
  • JetEngine
  • Gravity Forms
  • Users
  • Export Pro
Export Add-Ons
  • Woo
  • ACF
  • Meta Box
  • JetEngine
  • Gravity Forms
  • Users
Buy Now
90 Day Money Back Guarantee
Import + Export Standalone
$14.08
per month, billed annually
  • Import Pro
Import Add-Ons
  • Woo
  • ACF
  • Meta Box
  • JetEngine
  • Gravity Forms
  • Users
  • Export Pro
Export Add-Ons
  • Woo
  • ACF
  • Meta Box
  • JetEngine
  • Gravity Forms
  • Users
Buy Now
90 Day Money Back Guarantee
Export Standalone
$8.25
per month, billed annually
  • Import Pro
Import Add-Ons
  • Woo
  • ACF
  • Meta Box
  • JetEngine
  • Gravity Forms
  • Users
  • Export Pro
Export Add-Ons
  • Woo
  • ACF
  • Meta Box
  • JetEngine
  • Gravity Forms
  • Users
Buy Now
90 Day Money Back Guarantee

Unlimited Installs.
World-Class Support. Money Back Guarantee.

Developer
Pro features to get your WordPress data moving
Normally $299/yr
$149
.00
/yr
Save $150
Import & Export Pro
  • Posts Types, Pages & Taxonomies
  • Custom Fields & Meta Support
  • WordPress Users Support
  • Gravity Forms Entries
  • Developer Tools
  • Pro Settings
  • See detailed list of features
    Buy Now
    90 Day Money Back Guarantee
    Professional
    Everything you need to import and export anything
    Normally $599/yr
    $299
    .00
    /yr
    Save $300
    All Features & Integrations
  • WooCommerce
  • Bulk Editing & Data Migration
  • Advanced Custom Fields
  • JetEngine
  • Meta Box
  • Manual Scheduling
  • See detailed list of features
    Buy Now
    90 Day Money Back Guarantee
    Unlimited Lifetime
    All features and integrations forever for unlimited sites
    Normally $1599
    $1299
    .00
    once
    Limited-Time Offer
    ONE-TIME PAYMENT 
  • Import Pro + Export Pro
  • All Current Features & Integrations
  • All Future Features & Integrations
  • Lifetime Updates
  • Lifetime Support
  • No Renewal Fees
  • See detailed list of features
    Buy Now
    90 Day Money Back Guarantee

    Risk Free with our Money-Back Guarantee

    We would love for you to try WP All Import. Our 90-day money-back guarantee means that if you decide our plugins don’t meet your needs, just let us know, and we’ll gladly give you a full refund, no questions asked.
    200,000+ Active Installs
    1500+ 5 Star Reviews
    Developer
    $149
    .00
    /yr
    Buy Now
    Professional
    $299
    .00
    /yr
    Buy Now
    Ultimate Lifetime
    $1299
    Buy Now
    Unlimited Lifetime Package Features
    included in only in the Ultimate Lifetime Package
    One-Time Payment. No Renewal.
    All Future Add-Ons
    Developer Package Features
    included in all packages
    Untilimited Site Activations
    World-Class Support
    Import & Export Custom Post Types, Pages & Taxonomies
    Import & Export Custom Fields & Meta
    Download Import File from URL & FTP
    Export to CSV, XLSX, and XML
    Import & Export Filters
    Import & Export WordPress Users
    Import & Export Gravity Forms Entries
    Delete Missing Records on Import
    Run PHP Functions on Imports & Exports
    Choose Which Data to Update
    WP_Query Exports
    Secure Client Mode for Exports
    Zapier Integration for Exports
    Professional Package Features
    everything the Developer package, plus:
    Import & Export WooCommerce Products
    Import & Export WooCommerce Product Galleries
    Import & Export WooCommerce Orders
    Import & Export WooCommerce Customers
    Import & Export WooCommerce Reviews & Coupons
    Sync WooCommerce Stock & Prices
    Import & Export ACF Fields
    Import & Export JetEngine Fields
    Import & Export Meta Box Fields
    Export to Google Merchant Center
    Migrate Data Between Sites
    Bulk Edit with Export, Edit, Import
    Manual Scheduling for Imports & Exports

    Have any questions? 

    These are some of the most frequent questions we get about how to get data imported to or exported from WordPress

    Can I use any file type to import my data?

    Absolutely. It doesn't matter how big your CSV file is or what your column names are. Just use our Drag and Drop interface to map incoming data elements to their target fields, and you'll be done in minutes.

    Can I import Excel or Google Sheets to WordPress?

    Yes. Importing any spreadsheet is straightforward. Need to import Google Sheets to WordPress? Just copy and paste its URL. Need to import into WordPress from Excel? Same thing!

    How does my WordPress import data need to be organized?

    Our plugin is extremely flexible, so you probably won't have to make any changes to your data. You can try your WordPress import right now, and if you have any issues, we'll be glad to help you out.

    What will my WordPress export file look like?

    Unlike other solutions, our plugin gives you complete control over your WordPress export, including how it's formatted. You can modify fields, merge them together, and even create completely custom fields using embedded PHP.

    How do I export WordPress data to CSV?

    To export data to a CSV file, you don't have to do anything at all, as CSV is our default export format. If you want to export to other file formats, just change the export type in the Drag & Drop screen.

    Can I export WooCommerce products?

    Yes. Our software is completely integrated with WooCommerce. It provides full support to export WooCommerce customers, orders, products, variations, attributes, subscriptions, and reviews.
    cross