. */ namespace Smackcoders\FCSV; if ( ! defined( 'ABSPATH' ) ) exit; // Exit if accessed directly class SmackCSV{ protected static $instance = null; private static $table_instance = null; private static $desktop_upload_instance = null; private static $url_upload_instance = null; private static $ftp_upload_instance = null; private static $xml_instance = null; protected static $mapping_instance = null; private static $extension_instance = null; private static $save_mapping_instance = null; private static $plugin_instance = null; private static $import_config_instance = null; private static $dashboard_instance = null; private static $drag_drop_instance = null; private static $log_manager_instance = null; private static $media_instance = null; private static $db_optimizer = null; private static $send_password = null ; private static $security = null ; private static $support_instance = null ; private static $helper_instance = null ; private static $need_helper_instance = null ; private static $uninstall = null ; private static $install = null ; private static $export_instance = null ; private static $en_instance = null ; private static $en_CA_instance = null ; private static $en_GB_instance = null ; private static $italy_instance = null ; private static $france_instance = null ; private static $german_instance = null ; private static $spanish_instance = null; private static $russian_instance = null; private static $portuguese_instance = null; private static $turkish_instance = null; private static $nz_instance = null; private static $pl_instance = null; private static $aus_instance = null; private static $enpi_instance = null; private static $japanese_instance = null; private static $dutch_instance = null; private static $en_ZA_instance = null; private static $tamil_instance = null; private static $arabic_instance = null; private static $persian_instance = null; private static $chinese_instance = null; private static $addon_instance = null; public $version = '7.31'; public function __construct() { add_action('init', array(__CLASS__, 'show_admin_menus')); //action to register in wordpress tools add_action('admin_init', array(__CLASS__, 'csv_register_importers')); $current_date_and_time = date("Y-m-d H:i:s"); $nextnoticedate =get_option('close_date'); if(!empty($nextnoticedate)){ $nextnotice=strtotime("+3 day", strtotime($nextnoticedate)); } add_action('admin_enqueue_scripts', array(__CLASS__, 'smack_enqueue_scripts')); $this->init_review_notice(); } public function init_review_notice() { add_action('admin_notices', [$this, 'render_review_notice']); add_action('admin_init', [$this, 'handle_review_notice_actions']); } public function render_review_notice() { if (!current_user_can('manage_options')) { return; } $activation_time = get_option('wcsv_activation_time'); $dismissed = get_option('wcsv_review_dismissed'); $later = get_option('wcsv_review_later'); if (!$activation_time) { update_option('wcsv_activation_time', time()); return; } if ((time() - $activation_time) < 7 * DAY_IN_SECONDS) { return; } if ($dismissed) { return; } if ($later && (time() - $later) < 7 * DAY_IN_SECONDS) { return; } ?>
admin_url('admin-ajax.php') , 'nonce' => wp_create_nonce('smack-ultimate-csv-importer'), 'imagePath' => plugins_url('/assets/images/', __FILE__) ); wp_localize_script('react-js', 'smack_nonce_object', $secure_uniquekey_csv); } } public static function csv_register_importers() { register_importer( 'csv_importer_free', __( 'CSV Importer', 'wp_csv_importer' ), __( 'Import Posts, Custom Posts, Pages, Media, SEO and more from your CSV data with ease.', 'wp_csv_importer' ), array( __CLASS__, 'csv_run_importer' ) ); } public static function csv_run_importer(){ wp_safe_redirect( admin_url( 'admin.php?page=com.smackcoders.csvimporternew.menu' ) ); exit; } public static function show_admin_menus(){ $ucisettings = get_option('sm_uci_pro_settings'); if( is_user_logged_in() ) { $user = wp_get_current_user(); $role = ( array ) $user->roles; } if(!empty($role) && in_array( 'administrator' , $role)){ if ( is_user_logged_in() && current_user_can('manage_options') ) { add_action('admin_menu',array(__CLASS__,'testing_function')); } } $first_activate = get_option("WP_ULTIMATE_CSV_FIRST_ACTIVATE"); if($first_activate == 'On'){ delete_option("WP_ULTIMATE_CSV_FIRST_ACTIVATE"); exit(wp_redirect(admin_url().'admin.php?page=wp-addons-page')); } } public static function getInstance() { if (SmackCSV::$instance == null) { SmackCSV::$instance = new SmackCSV; SmackCSV::$addon_instance = InstallAddons::getInstance(); SmackCSV::$table_instance = Tables::getInstance(); SmackCSV::$desktop_upload_instance = DesktopUpload::getInstance(); SmackCSV::$url_upload_instance = UrlUpload::getInstance(); SmackCSV::$ftp_upload_instance = FtpUpload::getInstance(); SmackCSV::$xml_instance = XmlHandler::getInstance(); SmackCSV::$mapping_instance = MappingExtension::getInstance(); SmackCSV::$extension_instance = new ExtensionHandler; SmackCSV::$save_mapping_instance = SaveMapping::getInstance(); SmackCSV::$media_instance = MediaHandling::getInstance(); SmackCSV::$import_config_instance = ImportConfiguration::getInstance(); SmackCSV::$dashboard_instance = Dashboard::getInstance(); SmackCSV::$drag_drop_instance = DragandDropExtension::getInstance(); SmackCSV::$log_manager_instance = LogManager::getInstance(); SmackCSV::$plugin_instance = Plugin::getInstance(); SmackCSV::$send_password = SendPassword::getInstance(); SmackCSV::$security = Security::getInstance(); SmackCSV::$support_instance = SupportMail::getInstance(); SmackCSV::$helper_instance = HelperExtension::getInstance(); SmackCSV::$need_helper_instance = NeedHelperExtension::getInstance(); SmackCSV::$install = SmackCSVInstall::getInstance(); SmackCSV::$export_instance = ExportExtension::getInstance(); SmackCSV::$italy_instance = LangIT::getInstance(); SmackCSV::$france_instance = LangFR::getInstance(); SmackCSV::$german_instance = LangGE::getInstance(); SmackCSV::$en_instance = LangEN::getInstance(); SmackCSV::$en_CA_instance = LangEN_CA::getInstance(); SmackCSV::$en_GB_instance = LangEN_GB::getInstance(); SmackCSV::$spanish_instance = LangES::getInstance(); SmackCSV::$russian_instance = LangRU::getInstance(); SmackCSV::$portuguese_instance = LangPT::getInstance(); SmackCSV::$japanese_instance = LangJA::getInstance(); SmackCSV::$dutch_instance = LangNL::getInstance(); SmackCSV::$turkish_instance = LangTR::getInstance(); SmackCSV::$nz_instance = LangNZ::getInstance(); SmackCSV::$pl_instance = LangPL::getInstance(); SmackCSV::$enpi_instance = LangPI::getInstance(); SmackCSV::$aus_instance = LangAUS::getInstance(); SmackCSV::$en_ZA_instance = LangEN_ZA::getInstance(); SmackCSV::$tamil_instance = LangTA::getInstance(); SmackCSV::$arabic_instance = LangAR::getInstance(); SmackCSV::$persian_instance = LangFA::getInstance(); SmackCSV::$chinese_instance = LangZH::getInstance(); add_filter('https_local_ssl_verify', '__return_false' ); add_filter('https_ssl_verify', '__return_false'); if ( ! function_exists( 'is_plugin_active' ) ) { include_once ABSPATH . 'wp-admin/includes/plugin.php'; } self::init_hooks(); return SmackCSV::$instance; } return SmackCSV::$instance; } public static function init_hooks() { $ucisettings = get_option('sm_uci_pro_settings'); if(isset($ucisettings['enable_main_mode']) && $ucisettings['enable_main_mode'] == 'true') { add_action( 'admin_bar_menu', array(SmackCSV::$instance,'admin_bar_menu')); add_action('wp_head', array(SmackCSV::$instance,'activate_maintenance_mode')); } } public static function testing_function (){ remove_menu_page('com.smackcoders.csvimporternew.menu'); $my_page = add_menu_page('Ultimate CSV Importer Free', 'Ultimate CSV Importer Free', 'manage_options', 'com.smackcoders.csvimporternew.menu',array(__CLASS__,'menu_testing_function'),plugins_url("assets/images/wp-ultimate-csv-importer.png",__FILE__)); add_submenu_page( "com.smackcoders.csvimporternew.menu", "Manage Addons", ''.__('Manage Addons').'', "manage_options", "wp-addons-page", array(__CLASS__,'importer_addons_page') ); add_action('load-'.$my_page, array(__CLASS__, 'load_admin_js')); } public static function importer_pro_page() { wp_enqueue_style('com.smackcoders.smackcsvfont-awesome-css', plugins_url( 'assets/css/deps/font-awesome-all.css', __FILE__)); include_once('upgrade-to-pro.php'); } public static function importer_hireus_page() { wp_enqueue_style('com.smackcoders.smackcsvfont-awesome-css', plugins_url( 'assets/css/deps/font-awesome-all.css', __FILE__)); include_once('hire-us.php'); } public static function importer_addons_page(){ wp_register_script('script_csv_importer_recommend_addon',plugins_url( 'assets/js/deps/recommendedAddons.js', __FILE__), array('jquery')); /* Create Nonce */ $secure_uniquekey_csv = array( 'url' => admin_url('admin-ajax.php') , 'nonce' => wp_create_nonce('smack-ultimate-csv-importer'), 'imagePath' => plugins_url('/assets/images/', __FILE__) ); wp_localize_script('script_csv_importer_recommend_addon', 'smack_nonce_object', $secure_uniquekey_csv); wp_enqueue_script('script_csv_importer_recommend_addon'); include_once('recommended-addons.php'); } public static function load_admin_js() { add_action('admin_enqueue_scripts',array(__CLASS__,'csv_enqueue_function')); } public static function is_upgrade_notice_dismissed() { return get_option('csv_upgrade_notice_dismissed', false); } public static function editor_menu (){ remove_menu_page('com.smackcoders.csvimporternew.menu'); $my_page = add_menu_page('Ultimate CSV Importer Free', 'Ultimate CSV Importer Free', 'edit_published_posts', 'com.smackcoders.csvimporternew.menu',array(__CLASS__,'menu_testing_function'),plugins_url("assets/images/wp-ultimate-csv-importer.png",__FILE__)); add_action('load-'.$my_page, array(__CLASS__, 'load_admin_js')); } public static function menu_testing_function(){ ?>getPluginSlug().'popper',plugins_url( 'assets/js/deps/popper.js', __FILE__), array('jquery')); wp_enqueue_script(SmackCSV::$plugin_instance->getPluginSlug().'popper'); wp_register_script(SmackCSV::$plugin_instance->getPluginSlug().'bootstrap',plugins_url( 'assets/js/deps/bootstrap.min.js', __FILE__), array('jquery')); wp_enqueue_script(SmackCSV::$plugin_instance->getPluginSlug().'bootstrap'); wp_register_script(SmackCSV::$plugin_instance->getPluginSlug().'main-js',plugins_url( 'assets/js/deps/main.js', __FILE__), array('jquery')); wp_enqueue_script(SmackCSV::$plugin_instance->getPluginSlug().'main-js'); wp_localize_script(SmackCSV::$plugin_instance->getPluginSlug().'script_csv_importer', 'wpr_object', array('imagePath' => plugins_url('/assets/images/', __FILE__) )); $upload_url = $upload_base_url . '/smack_uci_uploads/imports'; wp_enqueue_style(SmackCSV::$plugin_instance->getPluginSlug().'bootstrap-css', plugins_url( 'assets/css/deps/bootstrap.min.css', __FILE__)); wp_enqueue_style(SmackCSV::$plugin_instance->getPluginSlug().'filepond-css', plugins_url( 'assets/css/deps/filepond.min.css', __FILE__)); wp_enqueue_style(SmackCSV::$plugin_instance->getPluginSlug().'react-datepicker-css', plugins_url( 'assets/css/deps/react-datepicker.css', __FILE__)); //wp_enqueue_style(SmackCSV::$plugin_instance->getPluginSlug().'react-toasty-css', plugins_url( 'assets/css/deps/ReactToastify.min.css', __FILE__)); wp_enqueue_style(SmackCSV::$plugin_instance->getPluginSlug().'react-toastify-css', plugins_url( 'assets/css/deps/ReactToastify.css', __FILE__)); wp_enqueue_style(SmackCSV::$plugin_instance->getPluginSlug().'csv-importer-css', plugins_url( 'assets/css/deps/csv-importer-free.css', __FILE__)); wp_enqueue_style(SmackCSV::$plugin_instance->getPluginSlug().'csv-importer-roboto-css', plugins_url( 'assets/css/deps/csv-importerfree-roboto.css', __FILE__)); wp_enqueue_style(SmackCSV::$plugin_instance->getPluginSlug().'csv-importer-poppins-css', plugins_url( 'assets/css/deps/csv-importerfree-poppins.css', __FILE__)); wp_enqueue_style(SmackCSV::$plugin_instance->getPluginSlug() . 'style-css', plugins_url('assets/css/deps/style.css', __FILE__)); wp_enqueue_style(SmackCSV::$plugin_instance->getPluginSlug() . 'style-poppins-css', plugins_url('assets/css/deps/style-poppins.css', __FILE__)); wp_enqueue_style(SmackCSV::$plugin_instance->getPluginSlug() . 'style-roboto-css', plugins_url('assets/css/deps/style-roboto.css', __FILE__)); wp_enqueue_style(SmackCSV::$plugin_instance->getPluginSlug() . 'react-confirm-alert-css', plugins_url('assets/css/deps/react-confirm-alert.css', __FILE__)); wp_enqueue_script(SmackCSV::$plugin_instance->getPluginSlug().'main-js'); wp_register_script(SmackCSV::$plugin_instance->getPluginSlug().'script_csv_importer',plugins_url( 'assets/js/admin-v6.1.js', __FILE__), array('jquery')); wp_enqueue_script(SmackCSV::$plugin_instance->getPluginSlug().'script_csv_importer'); $language = get_locale(); $user_id = get_current_user_id(); //$language = get_user_meta($user_id, 'locale', true); if($language == 'it_IT'){ $contents = SmackCSV::$italy_instance->contents(); $response = wp_json_encode($contents); wp_localize_script(SmackCSV::$plugin_instance->getPluginSlug().'script_csv_importer', 'wpr_object', array( 'file' => $response,__FILE__, 'imagePath' => plugins_url('/assets/images/', __FILE__),'logfielpath' => $upload_url)); } elseif($language == 'fr_FR' || $language == 'fr_BE'){ $contents = SmackCSV::$france_instance->contents(); $response = wp_json_encode($contents); wp_localize_script(SmackCSV::$plugin_instance->getPluginSlug().'script_csv_importer', 'wpr_object', array( 'file' => $response,__FILE__, 'imagePath' => plugins_url('/assets/images/', __FILE__),'logfielpath' => $upload_url)); } elseif($language == 'de_DE' || $language == 'de_AT'){ $contents = SmackCSV::$german_instance->contents(); $response = wp_json_encode($contents); wp_localize_script(SmackCSV::$plugin_instance->getPluginSlug().'script_csv_importer', 'wpr_object', array( 'file' => $response,__FILE__, 'imagePath' => plugins_url('/assets/images/', __FILE__),'logfielpath' => $upload_url)); } elseif ($language == 'es_ES') { $contents = SmackCSV::$spanish_instance->contents(); $response = wp_json_encode($contents); wp_localize_script(SmackCSV::$plugin_instance->getPluginSlug() . 'script_csv_importer', 'wpr_object', array('file' => $response, __FILE__, 'imagePath' => plugins_url('/assets/images/', __FILE__),'logfielpath' => $upload_url)); } elseif ($language == 'en_CA') { $contents = SmackCSV::$en_CA_instance->contents(); $response = wp_json_encode($contents); wp_localize_script(SmackCSV::$plugin_instance->getPluginSlug() . 'script_csv_importer', 'wpr_object', array('file' => $response, __FILE__, 'imagePath' => plugins_url('/assets/images/', __FILE__),'logfielpath' => $upload_url)); } elseif ($language == 'en_GB') { $contents = SmackCSV::$en_GB_instance->contents(); $response = wp_json_encode($contents); wp_localize_script(SmackCSV::$plugin_instance->getPluginSlug() . 'script_csv_importer', 'wpr_object', array('file' => $response, __FILE__, 'imagePath' => plugins_url('/assets/images/', __FILE__),'logfielpath' => $upload_url)); } elseif ($language == 'tr_TR') { $contents = SmackCSV::$turkish_instance->contents(); $response = wp_json_encode($contents); wp_localize_script(SmackCSV::$plugin_instance->getPluginSlug() . 'script_csv_importer', 'wpr_object', array('file' => $response, __FILE__, 'imagePath' => plugins_url('/assets/images/', __FILE__),'logfielpath' => $upload_url)); } elseif ($language == 'en_NZ') { $contents = SmackCSV::$nz_instance->contents(); $response = wp_json_encode($contents); wp_localize_script(SmackCSV::$plugin_instance->getPluginSlug() . 'script_csv_importer', 'wpr_object', array('file' => $response, __FILE__, 'imagePath' => plugins_url('/assets/images/', __FILE__),'logfielpath' => $upload_url)); } elseif ($language == 'pl_PL') { $contents = SmackCSV::$pl_instance->contents(); $response = wp_json_encode($contents); wp_localize_script(SmackCSV::$plugin_instance->getPluginSlug() . 'script_csv_importer', 'wpr_object', array('file' => $response, __FILE__, 'imagePath' => plugins_url('/assets/images/', __FILE__),'logfielpath' => $upload_url)); } elseif ($language == 'en_AU') { $contents = SmackCSV::$aus_instance->contents(); $response = wp_json_encode($contents); wp_localize_script(SmackCSV::$plugin_instance->getPluginSlug() . 'script_csv_importer', 'wpr_object', array('file' => $response, __FILE__, 'imagePath' => plugins_url('/assets/images/', __FILE__),'logfielpath' => $upload_url)); } elseif ($language == 'art_xpirate') { $contents = SmackCSV::$enpi_instance->contents(); $response = wp_json_encode($contents); wp_localize_script(SmackCSV::$plugin_instance->getPluginSlug() . 'script_csv_importer', 'wpr_object', array('file' => $response, __FILE__, 'imagePath' => plugins_url('/assets/images/', __FILE__),'logfielpath' => $upload_url)); } elseif ($language == 'en_ZA') { $contents = SmackCSV::$en_ZA_instance->contents(); $response = wp_json_encode($contents); wp_localize_script(SmackCSV::$plugin_instance->getPluginSlug() . 'script_csv_importer', 'wpr_object', array('file' => $response, __FILE__, 'imagePath' => plugins_url('/assets/images/', __FILE__),'logfielpath' => $upload_url)); } elseif ($language == 'ru_RU') { $contents = SmackCSV::$russian_instance->contents(); $response = wp_json_encode($contents); wp_localize_script(SmackCSV::$plugin_instance->getPluginSlug() . 'script_csv_importer', 'wpr_object', array('file' => $response, __FILE__, 'imagePath' => plugins_url('/assets/images/', __FILE__),'logfielpath' => $upload_url)); } elseif($language == 'pt_BR') { $contents = SmackCSV::$portuguese_instance->contents(); $response = wp_json_encode($contents); wp_localize_script(SmackCSV::$plugin_instance->getPluginSlug() . 'script_csv_importer', 'wpr_object', array('file' => $response, __FILE__, 'imagePath' => plugins_url('/assets/images/', __FILE__),'logfielpath' => $upload_url)); } elseif ($language == 'ja') { $contents = SmackCSV::$japanese_instance->contents(); $response = wp_json_encode($contents); wp_localize_script(SmackCSV::$plugin_instance->getPluginSlug() . 'script_csv_importer', 'wpr_object', array('file' => $response, __FILE__, 'imagePath' => plugins_url('/assets/images/', __FILE__),'logfielpath' => $upload_url)); } elseif ($language == 'nl_NL') { $contents = SmackCSV::$dutch_instance->contents(); $response = wp_json_encode($contents); wp_localize_script(SmackCSV::$plugin_instance->getPluginSlug() . 'script_csv_importer', 'wpr_object', array('file' => $response, __FILE__, 'imagePath' => plugins_url('/assets/images/', __FILE__),'logfielpath' => $upload_url)); } elseif ($language == 'ta_IN') { $contents = SmackCSV::$tamil_instance->contents(); $response = wp_json_encode($contents); wp_localize_script(SmackCSV::$plugin_instance->getPluginSlug() . 'script_csv_importer', 'wpr_object', array('file' => $response, __FILE__, 'imagePath' => plugins_url('/assets/images/', __FILE__),'logfielpath' => $upload_url)); } elseif ($language == 'ar') { $contents = SmackCSV::$arabic_instance->contents(); $response = wp_json_encode($contents); wp_localize_script(SmackCSV::$plugin_instance->getPluginSlug() . 'script_csv_importer', 'wpr_object', array('file' => $response, __FILE__, 'imagePath' => plugins_url('/assets/images/', __FILE__),'logfielpath' => $upload_url)); } elseif ($language == 'fa_IR') { $contents = SmackCSV::$persian_instance->contents(); $response = wp_json_encode($contents); wp_localize_script(SmackCSV::$plugin_instance->getPluginSlug() . 'script_csv_importer', 'wpr_object', array('file' => $response, __FILE__, 'imagePath' => plugins_url('/assets/images/', __FILE__),'logfielpath' => $upload_url)); } elseif ($language == 'zh_CN') { $contents = SmackCSV::$chinese_instance->contents(); $response = wp_json_encode($contents); wp_localize_script(SmackCSV::$plugin_instance->getPluginSlug() . 'script_csv_importer', 'wpr_object', array('file' => $response, __FILE__, 'imagePath' => plugins_url('/assets/images/', __FILE__),'logfielpath' => $upload_url)); } else{ $contents = SmackCSV::$en_instance->contents(); $response = wp_json_encode($contents); wp_localize_script(SmackCSV::$plugin_instance->getPluginSlug().'script_csv_importer', 'wpr_object', array( 'file' => $response,__FILE__ , 'imagePath' => plugins_url('/assets/images/', __FILE__),'logfielpath' => $upload_url)); } /* Create Nonce */ $secure_uniquekey_csv = array( 'url' => admin_url('admin-ajax.php') , 'nonce' => wp_create_nonce('smack-ultimate-csv-importer') ); wp_localize_script(SmackCSV::$plugin_instance->getPluginSlug().'script_csv_importer', 'smack_nonce_object', $secure_uniquekey_csv); } /** * Generates unique key for each file. * @param string $value - filename * @return string hashkey */ public function convert_string2hash_key($value) { $file_name = hash_hmac('md5', "$value" . time() , 'secret'); return $file_name; } /** * Creates a folder in uploads. * @return string path to that folder */ public function create_upload_dir($mode = null) { $upload = wp_upload_dir(); $upload_dir = $upload['basedir']; if(!is_dir($upload_dir)){ return false; } else { $upload_dir = $upload_dir . '/smack_uci_uploads/imports/'; if (!is_dir($upload_dir)) { wp_mkdir_p($upload_dir); chmod($upload_dir, 0755); $index_php_file = $upload_dir . 'index.php'; if (!file_exists($index_php_file)) { $file_content = ''; file_put_contents($index_php_file, $file_content); } } if($mode != 'CLI') { chmod($upload_dir, 0777); } return $upload_dir; } } public function delete_image_schedule() { global $wpdb; $wpdb->get_results("DELETE FROM {$wpdb->prefix}ultimate_csv_importer_shortcode_manager"); } public function image_schedule() { global $wpdb; $get_result = $wpdb->get_results("SELECT DISTINCT post_id FROM {$wpdb->prefix}ultimate_csv_importer_shortcode_manager", ARRAY_A); $records = array_column($get_result, 'post_id'); foreach ($records as $title => $id) { $core_instance = CoreFieldsImport::getInstance(); $post_id = $core_instance->image_handling($id); } } public function admin_bar_menu(){ global $wp_admin_bar; $wp_admin_bar->add_menu( array( 'id' => 'debug-bar', 'href' => admin_url().'admin.php?page=com.smackcoders.csvimporternew.menu', 'parent' => 'top-secondary', 'title' => apply_filters( 'debug_bar_title', __('Maintenance Mode', 'ultimate-maintenance-mode') ), 'meta' => array( 'class' => 'smack-main-mode' ), ) ); } public function activate_maintenance_mode() { global $maintainance_text; $maintainance_text = "Site is under maintenance mode. Please wait few min!"; if(!current_user_can('manage_options')) { ?>