importers[ $type ] ) ) { $this->load_wp_importer_api(); require_once( wc_csv_import_suite()->get_plugin_path() . '/src/class-wc-csv-import-suite-import-exception.php' ); require_once( wc_csv_import_suite()->get_plugin_path() . '/src/class-wc-csv-import-suite-parser.php' ); require_once( wc_csv_import_suite()->get_plugin_path() . '/src/class-wc-csv-import-suite-importer.php' ); $importer = null; switch ( $type ) { case 'woocommerce_customer_csv': require_once( wc_csv_import_suite()->get_plugin_path() . '/src/class-wc-csv-import-suite-customer-import.php' ); $importer = 'WC_CSV_Import_Suite_Customer_Import'; break; case 'woocommerce_coupon_csv': require_once( wc_csv_import_suite()->get_plugin_path() . '/src/class-wc-csv-import-suite-coupon-import.php' ); $importer = 'WC_CSV_Import_Suite_Coupon_Import'; break; case 'woocommerce_order_csv': require_once( wc_csv_import_suite()->get_plugin_path() . '/src/class-wc-csv-import-suite-order-import.php' ); $importer = 'WC_CSV_Import_Suite_Order_Import'; break; } /** * Filter the loaded importer instance * * Allows 3rd parties to load their importer instances in a streamlined manner * * @since 3.0.0 * @param mixed $importer Importer instance, class name or null (if no matching importer was found) * @param string $type Importer type, such as `woocommerce_customer_csv` */ $importer = apply_filters( 'wc_csv_import_suite_importer_class', $importer, $type ); // create new importer instance if ( is_string( $importer ) ) { $importer = new $importer(); } // cache the instance $this->importers[ $type ] = $importer; } return $this->importers[ $type ]; } /** * Load WP_Importer class * * @since 3.0.0 */ private function load_wp_importer_api() { require_once ABSPATH . 'wp-admin/includes/import.php'; if ( ! class_exists( 'WP_Importer' ) ) { $class_wp_importer = ABSPATH . 'wp-admin/includes/class-wp-importer.php'; if ( is_readable( $class_wp_importer ) ) { require( $class_wp_importer ); } } } }