=== Catch Import Export ===
Contributors: catchplugins, catchthemes, sakinshrestha, pratikshrestha, maheshmaharjan, dreamsapana
Donate link: https://catchplugin.com/plugins/catch-import-export/
Tags: customizer export, customizer import, export, import, customizer, customizer settings
Requires at least: 5.9
Requires PHP: 7.4
Tested up to: 7.0
Stable tag: 2.4
License: GPLv2 or later
License URI: http://www.gnu.org/licenses/gpl-2.0.html

Catch Import Export is a simple and easy-to-use import-export plugin that addresses the need for importing and exporting of customizer settings from any WordPress theme to another website without any exertion.

== Description ==

Catch Import Export is a simple and easy to use import-export WordPress plugin that is completely free of cost. It addresses the need for importing and exporting of customizer settings from any WordPress theme to another website. However, you’ll need to have the same theme or its child theme installed on both sites where you are performing the export/import task. Catch Import Export allows you to move the theme customizer settings from one website to another without having to move the content and database. With the Catch Import Export plugin, you can export the customizer settings in order to reuse it. With the same theme or its child theme installed, you can import the .dat file in another website. Catch Import Export lets you perform the import-export task either from the customizer itself or by visiting the plugin’s setting page in the dashboard. Also, if you’ve ever wanted to backup or export your WordPress Customizer settings, Catch Import Export is a perfect solution for you. Catch Import Export – A Quick and Easy Way to Export and Import Customizer Settings!

== Screenshots ==

1. Catch Import/Export option on admin dashboard.
2. Catch Import/Export option on customizer.

== Installation ==

The easy way (via Dashboard) :

* Go to Plugins > Add New
* Type in the **Catch Import/Export** in Search Plugins box
* Click Install Now to install the plugin
* After Installation click activate to start using the **Catch Import/Export**
* Go to **Catch Import/Export** from Dashboard menu

Not so easy way (via FTP) :

* Download the **Catch Import/Export**
* Unarchive **Catch Import/Export** plugin
* Copy folder with catch-import-export.zip
* Open the ftp \wp-content\plugins\
* Paste the plug-ins folder in the folder
* Go to admin panel => open item "Plugins" => activate **Catch Import/Export**
* Go to **Catch Import/Export** from Dashboard menu

== Changelog ==

= 2.4 (Released: May 18, 2026) =
* Bug Fixed: Global-scope CTP option loading and CatchThemesThemePlugin require moved into plugins_loaded hook
* Bug Fixed: load_plugin_textdomain() path in class-catch-import-export-i18n.php corrected — was going one directory level too high
* Bug Fixed: matchHeight script now registered before it is listed as a dependency; scripts moved to footer
* Bug Fixed: __() in wp_localize_script() replaced with esc_html__() for proper escaping
* Bug Fixed: __() in customize_options() section title replaced with esc_html__()
* Bug Fixed: Raw HTML in add_plugin_meta_links() wrapped with wp_kses(); five duplicate SVG stars replaced with str_repeat()
* Bug Fixed: wp_kses_post() inside JS alert() replaced with esc_js() — prevents broken JS when error message contains quotes or special characters
* Bug Fixed: esc_html() used for URL in JavaScript string replaced with esc_url()
* Bug Fixed: Unsanitized $_REQUEST passed to wp_verify_nonce() — wrapped with sanitize_text_field(wp_unslash()) in both _export() and _import()
* Bug Fixed: @unserialize() with user-uploaded data replaced with maybe_unserialize() — removes error suppression and PHP object injection risk
* Bug Fixed: Loose true == $_REQUEST['settings-page'] comparison replaced with strict sanitized check
* Bug Fixed: current_user_can('edit_theme_options') in init() changed to 'manage_options' — only administrators should be able to import/export all theme settings
* Bug Fixed: Orphaned nonce field with typo ('catch_import_export_nounce') outside any form removed from dashboard-display.php — dead code
* Bug Fixed: Form action URL used esc_html() instead of esc_url(); rebuilt with esc_url(add_query_arg()) for correct URL encoding
* Bug Fixed: Unescaped class attribute echo in catch-import-export-display.php wrapped with esc_attr()
* Bug Fixed: include in class-catch-import-export-control.php changed to require_once
* Bug Fixed: Trailing newlines inside href attribute values in sidebar.php removed
* Bug Fixed: Theme name used in Content-disposition header sanitized with sanitize_file_name()
* Compatibility check up to version 7.0

= 2.3.1 (Released: February 25, 2026) =
* Bug Fixed: Fixed JS enqueue path for adding catch themes tab item in Themes add theme section

= 2.3 (Released: February 16, 2026) =
* Bug Fixed: WordPress.Security.EscapeOutput.UnsafePrintingFunction
* Bug Fixed: WordPress.Security.EscapeOutput.OutputNotEscaped
* Bug Fixed: WordPress.Security.NonceVerification.Recommended
* Bug Fixed: WordPress.WP.AlternativeFunctions.unlink_unlink
* Bug Fixed: WordPress.WP.I18n.MissingTranslatorsComment
* Bug Fixed: WordPress.WP.I18n.NoHtmlWrappedStrings
* Bug Fixed: missing_direct_file_access_protection
* Bug Fixed: WordPress.WP.I18n.TextDomainMismatch
* Bug Fixed: plugin_header_invalid_plugin_uri
* Bug Fixed: trunk_stable_tag

= 2.2.3 (Released: January 07, 2026) =
* Compatibility check up to version 6.9

= 2.2.2 (Released: May 12, 2025) =
* Compatibility check up to version 6.8

= 2.2.1 (Released: April 16, 2024) =
* Compatibility check up to version 6.5

= 2.2 (Released: November 15, 2023) =
* Compatibility check up to version 6.4

= 2.1 (Released: November 03, 2022) =
* Compatibility check up to version 6.1

= 2.0 (Released: February 24, 2022) =
* Compatibility check up to version 5.9

= 1.9 (Released: September 16, 2021) =
* Bug Fixed: Security issue on ajax calls

= 1.8 (Released: July 23, 2021) =
* Compatibility check up to version 5.8

= 1.7 (Released: March 04, 2021) =
* Compatibility check up to version 5.7

= 1.6 (Released: Aug 19, 2020) =
* Bug Fixed: Issue in add new theme page

= 1.5 (Released: March 10, 2020) =
* Compatibility check up to version 5.4

= 1.4 (Released: November 12, 2019) =
* Compatibility check up to version 5.3

= 1.3 (Released: August 20, 2019) =
* Added: Option to turn off Catch Themes and Catch Plugins tabs
* Compatibility check up to version 5.2
* Updated: Catch Themes and Catch Plugins tabs displaying code

= 1.2 (Released: February 21, 2019) =
* Compatibility check up to version 5.1

= 1.1 (Released: December 12, 2018) =
* Added: Catch Themes and Catch Plugins tabs in Add themes and Add plugins page respectively
* Added: Themes by Catch Themes section under Themes panel in customizer
* Compatibility check up to version 5.0
* Typo corrected

= 1.0.1 (Released: October 01, 2018) =
* Bug Fixed: Updated generic define to this plugin specific

= 1.0 (Released: September 21, 2018) =
* Initial release
