class All_In_One_Redirection_Admin_Screen { /** * The ID of this plugin. * * @since 1.0.0 * @access private * @var string $plugin_name The ID of this plugin. */ private $plugin_name; /** * The version of this plugin. * * @since 1.0.0 * @access private * @var string $version The current version of this plugin. */ private $version; /** * The table name for this plugin * * @since 1.0.0 * @access protected * @var string $db_table_name The table name for this plugin. */ protected $db_table_name; /** * The default site url for this plugin * * @since 1.0.0 * @access protected * @var string $def_site_url The default site url for this plugin. */ protected $def_site_url; /** * The default setting site url for this plugin * * @since 1.0.0 * @access protected * @var string $def_setting_site_url The default site url for this plugin. */ protected $def_setting_site_url; /** * Initialize the class and set its properties. * * @since 1.0.0 * @param string $plugin_name The name of this plugin. * @param string $version The version of this plugin. */ public function __construct( $plugin_name, $version, $db_table_name, $def_site_url, $def_setting_site_url ) { $this->plugin_name = $plugin_name; $this->version = $version; $this->db_table_name = $db_table_name; $this->def_site_url = $def_site_url; $this->def_setting_site_url = $def_setting_site_url; } // set the menu in admin section public function vsz_add_admin_menu(){ add_menu_page(__( 'Redirection', 'all-in-one-redirection' ), __( 'Redirection', 'all-in-one-redirection' ), 'manage_options', 'all-in-one-redirection', array($this,'vsz_admin_redirection_screen'), 'dashicons-randomize', 40 ); add_submenu_page('all-in-one-redirection',__( 'Redirection Setting', 'all-in-one-redirection' ), __( 'Redirection Setting', 'all-in-one-redirection' ), 'manage_options', 'all-in-one-redirection-setting', array($this,'vsz_admin_redirection_setting_screen'),'', 41); add_submenu_page('all-in-one-redirection',__( '404 Pages List', 'all-in-one-redirection' ), __( '404 Pages List', 'all-in-one-redirection' ), 'manage_options', 'all-in-one-redirection-404-pages-list', array($this,'vsz_admin_404_redirection_list_screen'),'', 42); add_submenu_page('all-in-one-redirection',__( 'Tool', 'all-in-one-redirection' ), __( 'Tool', 'all-in-one-redirection' ), 'manage_options', 'all-in-one-redirection-tool', array($this,'vsz_admin_page_redirection_tool_screen'),'', 43); } // Redirection setting public function vsz_admin_redirection_setting_screen(){ echo '
'; echo '
'.__( 'Redirection Setting', 'all-in-one-redirection' ).'
'; echo '
'; if(isset($_POST['redirection_setting_btn']) && !empty($_POST['redirection_setting_btn'])){ if(wp_verify_nonce( sanitize_text_field($_POST['setting-nonce']), 'setting-page-redirection' )){ $redirection_setting = array(); $redirection_setting['host']=sanitize_text_field($_POST['host']); $redirection_setting['www']=sanitize_text_field($_POST['www']); //enable-disable host setting if(sanitize_text_field($_POST['additional_setting'])=='CUSTOM-SETTING'){ $redirection_setting['setting_host_www']='TRUE'; } else{ $redirection_setting['setting_host_www']='FALSE'; } //default seeting based on site url if(sanitize_text_field($_POST['additional_setting'])=='DEFAULT-SETTING'){ $redirection_setting['setting_default_siteurl']='TRUE'; $wp_vsz_site_url = $this->def_site_url; if(strpos($wp_vsz_site_url,'https://') !== false ){ $redirection_setting['host']='HTTPS'; } else{ $redirection_setting['host']='HTTP'; } if(strpos($wp_vsz_site_url,'www.')){ $redirection_setting['www']='WWW'; } else{ $redirection_setting['www']='NON-WWW'; } } else{ $redirection_setting['setting_default_siteurl']='FALSE'; } //setting to remove all data during plugin deactive if(sanitize_text_field($_POST['remove-redirection'])){ $redirection_setting['remove_redirection']='TRUE'; } else{ $redirection_setting['remove_redirection']='FALSE'; } update_option('all-in-one-redirection-setting',json_encode($redirection_setting)); echo '
'.__( 'Setting saved successfully.', 'all-in-one-redirection' ).'
'; } else{ exit; } } echo '
'; $nonce_setting = wp_create_nonce('setting-page-redirection'); $redirection_setting_array = json_decode(get_option('all-in-one-redirection-setting')); ?>
'; echo ''; echo '
'; echo '
'; echo '
'; } /* * Add new redirection record * List of all the redirection records * Update optino for all records * Delete Particular single records * Delete all records */ public function vsz_admin_redirection_screen(){ global $wpdb; $post_per_page = 20; $no_of_page = 0; $current_page = 0; $record_start = 0; $table_name = $this->db_table_name; echo '
'; echo '
'.__( 'Add New Redirection', 'all-in-one-redirection' ).'
'; echo '
'; // Save new record if(isset($_POST['insert_redirection_btn'])){ $source_url = rtrim(trim($_POST['source_url_insert']),'/'); $source_url = str_ireplace($this->def_setting_site_url,'',trim($source_url)); if(empty($source_url)){ $source_url = '/'; } if(!isset($_POST['destination_url_insert']) || empty($_POST['destination_url_insert'])){ $destination_url = $this->def_setting_site_url.'/'; } else{ $destination_url = esc_url($_POST['destination_url_insert']); } $regexpression_check = sanitize_text_field($_POST['reg_expression_check']); if($regexpression_check!=1){ $regexpression_check=0; } if(wp_verify_nonce( sanitize_text_field($_POST['insert-nonce']), 'insert-page-redirection' )){ $def_source = trim($_POST['source_url_insert']); if(isset($def_source) && !empty($def_source)){ if(substr($source_url,0,1) == '/'){ // conver space to %20 $source_url = str_ireplace(' ', '%20', trim($source_url)); $chk_exist_rule = 0; $chk_exist_rule_data = $wpdb->get_row("select * from ".$table_name." where source_url='".stripslashes(trim($source_url))."' and reg_expression=".$regexpression_check." and hide_url=0 and rtype!=404 order by id DESC"); if($chk_exist_rule_data){ if($chk_exist_rule_data->source_url==stripslashes(trim($source_url))){ $chk_exist_rule = 1; } } if(!$chk_exist_rule){ $r_insert = $wpdb->insert( $table_name, array( 'rtype' => trim(sanitize_text_field($_POST['redirection_type'])), 'source_url' => stripslashes(trim($source_url)), 'destination_url' => trim($destination_url), 'reg_expression' => trim($regexpression_check), 'time' => current_time( 'mysql' ) ) ); if($r_insert){ echo '
'.__( 'Record added successfully.', 'all-in-one-redirection' ).'
'; } } else{ echo '
'.__( 'Please insert valid source url because of duplicate entry.', 'all-in-one-redirection' ).'
'; } } else{ echo '
'.__( 'Please insert valid source url with slash(/).', 'all-in-one-redirection' ).'
'; } } else{ echo '
'.__( 'Please insert the source url.', 'all-in-one-redirection' ).'
'; } } else{ exit; } } echo '
'; echo '
'; echo '
'; $nonce_insert = wp_create_nonce('insert-page-redirection'); echo '
'; echo '
'; echo '
'; echo '
'; echo '
'; echo '
'.__( 'Redirection List', 'all-in-one-redirection' ).'
'; // set the filter variables if(isset($_REQUEST['record-filter']) && !empty($_REQUEST['record-filter'])){ $filter_key = trim($_REQUEST['keyword']); $filter_type = sanitize_text_field($_REQUEST['type']); $filter_hide_record = sanitize_text_field($_REQUEST['hide']); $filter_reg_record = sanitize_text_field($_REQUEST['regexp']); } // filter record form echo '
'; echo '
'; echo ''; ?>
'; echo '
'; echo '
'; // Delete all records if(isset($_POST['delete_all_btn']) && !empty($_POST['delete_all_btn'])){ if(wp_verify_nonce( sanitize_text_field($_POST['delete-all-nonce']), 'delete-all-page-redirection' )){ $del_all = $wpdb->query("DELETE FROM $table_name where rtype!=404"); if($del_all){ echo '
'.__( 'All Record deleted successfully.', 'all-in-one-redirection' ).'
'; } } else{ exit; } } // Reset Hits Records if(isset($_POST['reset_hits_btn']) && !empty($_POST['reset_hits_btn'])){ if(wp_verify_nonce( sanitize_text_field($_POST['reset-all-hits-nonce']), 'reset-all-hits-redirection' )){ $reset_hits = $wpdb->query("update $table_name set hits=0 where rtype!=404"); if($reset_hits){ echo '
'.__( 'Hits records are reset successfully.', 'all-in-one-redirection' ).'
'; } } else{ exit; } } // Update all the records if(isset($_POST['update_list'])){ if(wp_verify_nonce( sanitize_text_field($_POST['redirection-list-nonce']), 'list-page-redirection' )){ $c_list = 0; while($c_listdef_setting_site_url,'',trim($sourceurl)); if(empty($sourceurl)){ $sourceurl = '/'; } if(!isset($_POST['destination_url'][$c_list]) || empty($_POST['destination_url'][$c_list])){ $destinationurl = $this->def_setting_site_url.'/'; } else{ $destinationurl = esc_url($_POST['destination_url'][$c_list]); } if(isset($_POST['check_reg_exp_btn'][sanitize_text_field($_POST['redirection_id'][$c_list])])){ $regexpression = sanitize_text_field($_POST['check_reg_exp_btn'][sanitize_text_field($_POST['redirection_id'][$c_list])]); if($regexpression!=1){ $regexpression=0; } } else{ $regexpression=0; } if(isset($_POST['check_hide_btn'][sanitize_text_field($_POST['redirection_id'][$c_list])])){ $redirectionhide = sanitize_text_field($_POST['check_hide_btn'][sanitize_text_field($_POST['redirection_id'][$c_list])]); if($redirectionhide!=1){ $redirectionhide=0; } } else{ $redirectionhide=0; } $defsource = trim($_POST['source_url'][$c_list]); if(isset($defsource) && !empty($defsource) && substr($sourceurl,0,1) == '/'){ $sourceurl = str_ireplace(' ', '%20', trim($sourceurl)); $wpdb->update( $table_name, array( 'rtype' => trim(sanitize_text_field($_POST['redirection_type'][$c_list])), 'source_url' => stripslashes(trim($sourceurl)), 'destination_url' => trim($destinationurl), 'reg_expression' => trim($regexpression), 'hide_url' => trim($redirectionhide) ), array( 'id' => sanitize_text_field($_POST['redirection_id'][$c_list]) ) ); } $c_list++; } echo '
'.__( 'Record updated successfully.', 'all-in-one-redirection' ).'
'; } else{ exit; } } elseif(isset($_POST['delete_selected_list'])){ if(wp_verify_nonce( sanitize_text_field($_POST['redirection-list-nonce']), 'list-page-redirection' )){ if(!empty($_POST['check_delete_btns'])){ $page_id_list = implode(",",array_map('sanitize_text_field',$_POST['check_delete_btns'])); $del_record = $wpdb->query("DELETE from $table_name where id IN ($page_id_list)"); if($del_record){ echo '
'.__( 'Record deleted successfully.', 'all-in-one-redirection' ).'
'; } } } else{ exit; } } // filter record fetch $filter_where_condition = ''; if(isset($_REQUEST['record-filter']) && !empty($_REQUEST['record-filter'])){ if(isset($filter_key) && !empty($filter_key)){ $filter_where_condition .= " AND (source_url LIKE '%$filter_key%' OR destination_url LIKE '%$filter_key%')"; } if(isset($filter_type) && !empty($filter_type)){ $filter_where_condition .= " AND rtype=$filter_type"; } if(isset($filter_hide_record) && !empty($filter_hide_record)){ if($filter_hide_record=='true'){ $filter_where_condition .= " AND hide_url=1"; } elseif($filter_hide_record=='false'){ $filter_where_condition .= " AND hide_url=0"; } } if(isset($filter_reg_record) && !empty($filter_reg_record)){ if($filter_reg_record=='true'){ $filter_where_condition .= " AND reg_expression=1"; } elseif($filter_reg_record=='false'){ $filter_where_condition .= " AND reg_expression=0"; } } } //No. of page - Pagination $no_of_total_page = $wpdb->get_var("select COUNT(id) as no_of_total_record from $table_name where rtype!=404$filter_where_condition"); $no_of_page = ceil($wpdb->get_var("select COUNT(id) as no_of_record from $table_name where rtype!=404$filter_where_condition")/$post_per_page); if(isset($_GET['paged']) && $_GET['paged']!=0){ $current_page = sanitize_text_field($_GET['paged']); $record_start = ($current_page-1)*$post_per_page; } else{ $current_page = 1; $record_start = ($current_page-1)*$post_per_page; } $select_query = "SELECT * FROM $table_name where rtype!=404$filter_where_condition order by id DESC limit $record_start,$post_per_page"; $redirection_list = $wpdb->get_results($select_query); if($redirection_list){ echo '
'; $nonce_delete_all = wp_create_nonce('delete-all-page-redirection'); echo ''; echo ''; echo '
'; echo '
'; $nonce_hits_reset = wp_create_nonce('reset-all-hits-redirection'); echo ''; echo ''; echo '
'; echo '
'; echo ''; echo ''; echo ''; echo ''; echo ''; echo ''; echo ''; echo ''; echo ''; echo ''; echo ''; echo ''; $tr_color=0; $tr_color_class='odd'; foreach($redirection_list as $key => $r_list){ $tr_color++; if(fmod($tr_color,2)==0){ $tr_color_class='even'; } else{ $tr_color_class='odd'; } if($r_list->hide_url=='1'){ $tr_color_class.=' hide-record'; } echo ''; echo ''; echo ''; echo ''; echo ''; echo ''; echo ''; echo ''; echo ''; } echo ''; echo '
'.__( 'Type', 'all-in-one-redirection' ).''.__( 'Source URL', 'all-in-one-redirection' ).'('.__( 'Eg.', 'all-in-one-redirection' ).' /about.html)'.__( 'Destination URL', 'all-in-one-redirection' ).'('.__( 'Eg.', 'all-in-one-redirection' ).' '.$this->def_setting_site_url.'/about-us/)'.__( 'Hits', 'all-in-one-redirection' ).''.__( 'Setting', 'all-in-one-redirection' ).'
'; ?> '; echo ''.esc_html($r_list->hits).'
'; ?>
reg_expression=='1'){echo 'checked="checked"';} ?> value="1" />
hide_url=='1'){echo 'checked="checked"';} ?> value="1" />
last_access=='0000-00-00 00:00:00'){echo '-';}else{echo date('M d, Y h:i A',strtotime($r_list->last_access));} ?>
referrer)){echo $r_list->referrer;}else{echo '-';} ?>
access_ip)){echo $r_list->access_ip;}else{echo '-';} ?>
'; echo '
'; $nonce_update = wp_create_nonce('list-page-redirection'); echo ''; echo ''; echo ''; echo ''.__( 'Total', 'all-in-one-redirection' ).': '.$no_of_total_page.' '.__( 'Records', 'all-in-one-redirection' ).''; echo '
'; // custom pagination $pagination_info = array(); $pagination_info['total_pages'] = $no_of_page; $pagination_info['curr_page'] = $current_page; if($no_of_page>1){ $filter_pagination_condition = ''; if(isset($_REQUEST['record-filter']) && !empty($_REQUEST['record-filter'])){ $filter_pagination_condition .= '&keyword='.stripslashes($filter_key); $filter_pagination_condition .= '&type='.$filter_type; $filter_pagination_condition .= '&hide='.$filter_hide_record; $filter_pagination_condition .= '®exp='.$filter_reg_record; $filter_pagination_condition .= '&record-filter=yes'; } echo '
'; echo ''; echo '
'; } // END custom pagination } else{ if(!isset($del_all)){ echo '
'.__( 'No record found.', 'all-in-one-redirection' ).'
'; } } echo '
'; } /* * 404 pages list * Add 404 page in redirection */ public function vsz_admin_404_redirection_list_screen(){ global $wpdb; $post_per_page = 20; $no_of_page = 0; $current_page = 0; $record_start = 0; $table_name = $this->db_table_name; echo '
'; echo '
'.__( '404 Pages List', 'all-in-one-redirection' ).'
'; // set the filter variables if(isset($_REQUEST['record-404-filter']) && !empty($_REQUEST['record-404-filter'])){ $filter_404_key = trim($_REQUEST['keyword']); //var_dump($filter_404_key);exit; } // filter 404 record form echo '
'; echo '
'; echo ''; ?>
'; echo '
'; echo '
'; // delete selected all 404 page records if(isset($_POST['delete-all-404-pages']) && !empty($_POST['delete-all-404-pages'])){ if(wp_verify_nonce( sanitize_text_field($_POST['delete-404-page-nonce']), 'delete-404-page-list' )){ $del_404_page_all = $wpdb->query("DELETE FROM $table_name where rtype=404"); if($del_404_page_all){ echo '
'.__( 'All Record deleted successfully.', 'all-in-one-redirection' ).'
'; } } else{ exit; } } // delete selected 404 page records if(isset($_POST['delete-404-pages']) && !empty($_POST['delete-404-pages'])){ if(wp_verify_nonce( sanitize_text_field($_POST['delete-404-page-nonce']), 'delete-404-page-list' )){ if(!empty($_POST['check_404_page_delete_btns'])){ $page_404_id_list = implode(",",array_map('sanitize_text_field',$_POST['check_404_page_delete_btns'])); $del_404_page = $wpdb->query("DELETE from $table_name where id IN ($page_404_id_list)"); if($del_404_page){ echo '
'.__( 'Record deleted successfully.', 'all-in-one-redirection' ).'
'; } } } else{ exit; } } // Save new 404 page record if(isset($_POST['insert_404_page_redirection_btn'])){ $source_url = rtrim(trim($_POST['source_url_insert']),'/'); $source_url = str_ireplace($this->def_setting_site_url,'',trim($source_url)); if(empty($source_url)){ $source_url = '/'; } if(!isset($_POST['destination_url_insert']) || empty($_POST['destination_url_insert'])){ $destination_url = $this->def_setting_site_url.'/'; } else{ $destination_url = esc_url($_POST['destination_url_insert']); } $regexpression_check = sanitize_text_field($_POST['reg_expression_check']); if($regexpression_check!=1){ $regexpression_check=0; } if(wp_verify_nonce( sanitize_text_field($_POST['insert-404-page-nonce']), 'insert-404-page-redirection' )){ $def_source = trim($_POST['source_url_insert']); if(isset($def_source) && !empty($def_source)){ if(substr($source_url,0,1) == '/'){ $source_url = str_ireplace(' ', '%20', trim($source_url)); $chk_exist_rule = 0; $chk_exist_rule_data = $wpdb->get_row("select * from ".$table_name." where source_url='".stripslashes(trim($source_url))."' and reg_expression=".$regexpression_check." and hide_url=0 and rtype!=404 order by id DESC"); if($chk_exist_rule_data){ if($chk_exist_rule_data->source_url==stripslashes(trim($source_url))){ $chk_exist_rule = 1; } } if(!$chk_exist_rule){ $r_insert = $wpdb->insert( $table_name, array( 'rtype' => trim(sanitize_text_field($_POST['redirection_type'])), 'source_url' => stripslashes(trim($source_url)), 'destination_url' => trim($destination_url), 'reg_expression' => trim($regexpression_check), 'time' => current_time( 'mysql' ) ) ); if($r_insert){ $del_404_page_all = $wpdb->query("DELETE FROM $table_name where id=".sanitize_text_field($_POST['page_404_id'])); echo '
'.__( 'Record added successfully.', 'all-in-one-redirection' ).'
'; } } else{ echo '
'.__( 'Please insert valid source url because of duplicate entry.', 'all-in-one-redirection' ).'
'; } } else{ echo '
'.__( 'Please insert valid source url with slash(/).', 'all-in-one-redirection' ).'
'; } } else{ echo '
'.__( 'Please insert the source url.', 'all-in-one-redirection' ).'
'; } } else{ exit; } } // filter record fetch $filter_404_where_condition = ''; if(isset($_REQUEST['record-404-filter']) && !empty($_REQUEST['record-404-filter'])){ if(isset($filter_404_key) && !empty($filter_404_key)){ $filter_404_where_condition .= " AND source_url LIKE '%$filter_404_key%'"; } } //No. of page - Pagination $no_of_total_page = $wpdb->get_var("select COUNT(id) as no_of_total_record from $table_name where rtype=404$filter_404_where_condition"); $no_of_page = ceil($wpdb->get_var("select COUNT(id) as no_of_record from $table_name where rtype=404$filter_404_where_condition")/$post_per_page); if(isset($_GET['paged']) && $_GET['paged']!=0){ $current_page = sanitize_text_field($_GET['paged']); $record_start = ($current_page-1)*$post_per_page; } else{ $current_page = 1; $record_start = ($current_page-1)*$post_per_page; } $select_404_page_query = "SELECT * FROM $table_name where rtype=404$filter_404_where_condition order by last_access DESC limit $record_start,$post_per_page"; $page_404_data = $wpdb->get_results($select_404_page_query); if($page_404_data){ echo '
'; echo ''; echo ''; echo ''; echo ''; echo ''; echo ''; echo ''; echo ''; echo ''; echo ''; echo ''; echo ''; echo ''; $tr_color=0; $tr_color_class='odd'; foreach($page_404_data as $key => $page_404_data_item){ $tr_color++; if(fmod($tr_color,2)==0){ $tr_color_class='even'; } else{ $tr_color_class='odd'; } echo ''; echo ''; echo ''; echo ''; echo ''; echo ''; echo ''; echo ''; echo ''; } echo ''; echo '
'.__( 'Access Date', 'all-in-one-redirection' ).''.__( 'Source URL', 'all-in-one-redirection' ).''.__( 'Referrer', 'all-in-one-redirection' ).''.__( 'Access IP', 'all-in-one-redirection' ).''.__( 'Hits', 'all-in-one-redirection' ).''.__( 'Action', 'all-in-one-redirection' ).'
'.date('M d, Y',strtotime($page_404_data_item->last_access)).'
'.date('h:i A',strtotime($page_404_data_item->last_access)).'
'.$page_404_data_item->source_url.''.$page_404_data_item->referrer.''.$page_404_data_item->access_ip.''.$page_404_data_item->hits.'
'; $nonce_delete_404_page = wp_create_nonce('delete-404-page-list'); echo ''; echo ''; echo ''; echo ''.__( 'Total', 'all-in-one-redirection' ).': '.$no_of_total_page.' '.__( 'Records', 'all-in-one-redirection' ).''; echo '
'; // custom pagination $pagination_info = array(); $pagination_info['total_pages'] = $no_of_page; $pagination_info['curr_page'] = $current_page; if($no_of_page>1){ $filter_404_pagination_condition = ''; if(isset($_REQUEST['record-404-filter']) && !empty($_REQUEST['record-404-filter'])){ $filter_404_pagination_condition .= '&keyword='.stripslashes($filter_404_key); $filter_404_pagination_condition .= '&record-404-filter=yes'; } echo '
'; echo ''; echo '
'; } // END custom pagination echo '
'; echo '
'.__( 'Add New Redirection', 'all-in-one-redirection' ).'
'; echo '
'; echo '
'; echo '
'; echo '
'; echo '
'; $nonce_404_page_insert = wp_create_nonce('insert-404-page-redirection'); echo '
'; echo '
'; echo '
'; } else{ if(!isset($del_404_page_all)){ echo '
'.__( 'No record found.', 'all-in-one-redirection' ).'
'; } } echo '
'; } /* * Tool - Import/Export Functionality */ public function vsz_admin_page_redirection_tool_screen(){ global $wpdb; $table_name = $this->db_table_name; echo '
'; echo '
'; echo '
'; echo '
'.__( 'Redirection Bulk Import', 'all-in-one-redirection' ).'
'; if(isset($_POST['import_file_redirection_btn']) && !empty($_POST['import_file_redirection_btn'])){ if(wp_verify_nonce( sanitize_text_field($_POST['file-import-nonce']), 'import-file-page-redirection' )){ require_once plugin_dir_path( __FILE__ ).'class/csv.class.php'; $flag=1; $error_msg=""; $import_file_name = $_FILES['redirection-file']['name']; $file_path = plugin_dir_path(dirname(dirname( __FILE__ ))).'upload/import/'; $file_basename = substr($import_file_name, 0, strripos($import_file_name, '.')); // get file name $file_ext = substr($import_file_name, strripos($import_file_name, '.')); // get file extention $allowed_file_types = array('.csv'); if($import_file_name){ if(in_array($file_ext,$allowed_file_types)){ $newfilename = $file_path.'all-in-one-redirection-import-'.date('Ymdhis').$file_ext; if(move_uploaded_file($_FILES["redirection-file"]["tmp_name"], $newfilename)){ $import_csv_file = $newfilename; if (($handle = fopen($import_csv_file, "r")) !== FALSE) { $objCsv = new CSV($import_csv_file,"R"); $header = array("Codes","Status"); //Seperating the values by semicolon in csv $row_count=0; $skip_record_list=0; $skip_record_flag=true; while ($csv_data = $objCsv->GetArray(false,false,true)){ $row_count++; if($row_count!=1){ $num_field = count($csv_data); if($num_field == 5){ if(!empty($csv_data[0])){ $flag=1; $file_source_url = rtrim($csv_data[1],'/'); $def_source = trim($csv_data[1]); $file_source_url = str_ireplace($this->def_setting_site_url,'',trim($file_source_url)); if(empty($file_source_url)){ $file_source_url = '/'; } if(!isset($csv_data[2]) || empty($csv_data[2])){ $file_destination_url = $this->def_setting_site_url.'/'; } else{ $file_destination_url = esc_url($csv_data[2]); } $redirection_type = trim($csv_data[0]); if($redirection_type!=301 && $redirection_type!=302){ $redirection_type=301; } $redirection_reg_expression = trim($csv_data[3]); if($redirection_reg_expression!=1){ $redirection_reg_expression=0; } $redirection_hide = trim($csv_data[4]); if($redirection_hide!=1){ $redirection_hide=0; } $skip_record_list++; $chk_exist_rule = 0; $chk_exist_rule_data = $wpdb->get_row("select * from ".$table_name." where source_url='".stripslashes(trim($file_source_url))."' and reg_expression=".$redirection_reg_expression." and hide_url=".$redirection_hide." and rtype!=404 order by id DESC"); if($chk_exist_rule_data){ if($chk_exist_rule_data->source_url==stripslashes(trim($file_source_url))){ $chk_exist_rule = 1; } } if(isset($def_source) && !empty($def_source) && substr($file_source_url,0,1) == '/' && !$chk_exist_rule){ $wpdb->insert( $table_name, array( 'rtype' => $redirection_type, 'source_url' => stripslashes(trim($file_source_url)), 'destination_url' => trim($file_destination_url), 'reg_expression' => $redirection_reg_expression, 'hide_url' => $redirection_hide, 'time' => current_time( 'mysql' ) ) ); } else{ if($skip_record_flag){ echo '
'.__( 'Below records are skipped because duplicate entry or source url is not valid. So, please check it.', 'all-in-one-redirection' ).'
'; $skip_record_flag=false; } echo '
'.__( 'Index ', 'all-in-one-redirection').($skip_record_list+1).': '.$csv_data[1].'
'; } } } else{ $flag=0; $error_msg = __( 'Number of fields in csv file does not matched and file must be separated with comma.', 'all-in-one-redirection' ); } } } } else{ $flag=0; $error_msg = __( 'File permission not valid.', 'all-in-one-redirection' ); } } else{ $flag=0; $error_msg = __( 'Folder permission not valid.', 'all-in-one-redirection' ); } } else{ $flag=0; $error_msg = __( 'Invalid file type. Please upload the csv file.', 'all-in-one-redirection' ); } } else{ $flag=0; $error_msg = __( 'Please upload the file.', 'all-in-one-redirection' ); } if($flag==0){ echo '
'.$error_msg.'
'; } else{ echo '
'.__( 'All records are added successfully.', 'all-in-one-redirection' ).'
'; } } else{ echo '
'.__( 'There is some technical problem. Please try again.', 'all-in-one-redirection' ).'
'; } } echo '
'; $example_csv = plugin_dir_url(dirname(dirname( __FILE__))).'upload/example/redirection-example.csv'; echo '
'; echo ''; $nonce_file_import = wp_create_nonce('import-file-page-redirection'); echo '
'; echo '
'; echo '
'; echo '
'; echo '
'.__( 'Redirection Bulk Export', 'all-in-one-redirection' ).'
'; if(isset($_POST['export_file_redirection_btn']) && !empty($_POST['export_file_redirection_btn'])){ if(wp_verify_nonce( sanitize_text_field($_POST['file-export-nonce']), 'export-file-page-redirection' )){ require_once plugin_dir_path( __FILE__ ).'class/csv.class.php'; $file_path = plugin_dir_path(dirname(dirname( __FILE__ ))).'upload/export/'; $file_field_header = array('Type','Source-URL','Destination-URL','Regular-Expression','Hide'); $newFileName = 'all-in-one-redirection-export-'.date('Ymdhis').'.csv'; $exportedFileName = $file_path.$newFileName; // create csv object $csvObj = new CSV($exportedFileName, "W",","); if($csvObj->filename){ $flagCsv = $csvObj->CSV(); $arrInfo = array(); $arrInfo = array_values($file_field_header); $csvObj->addArray($arrInfo); unset($arrInfo); $redirection_list_select = $wpdb->get_results( "SELECT * FROM $table_name where rtype!=404 order by id DESC" ); foreach($redirection_list_select as $key => $redirection_page){ $file_field_value = array($redirection_page->rtype,$redirection_page->source_url,$redirection_page->destination_url,$redirection_page->reg_expression,$redirection_page->hide_url); $arrInfo = array(); $arrInfo = array_values($file_field_value); $csvObj->addArray($arrInfo); unset($arrInfo); } $csvObj->close(); $file_export_path = plugin_dir_url(dirname(dirname( __FILE__))).'upload/export/'.$newFileName; echo '
'.__( 'Click here', 'all-in-one-redirection' ).''.__( ' to download the file.', 'all-in-one-redirection' ).'
'; //header('Location: '.$file_export_path); //exit; } else{ echo '
'.__( 'There is some folder permission issue. Please set the proper file permission.', 'all-in-one-redirection' ).'
'; } } else{ echo '
'.__( 'There is some technical problem. Please try again.', 'all-in-one-redirection' ).'
'; } } elseif(isset($_POST['export_file_404_pages_list_btn']) && !empty($_POST['export_file_404_pages_list_btn'])){ if(wp_verify_nonce( sanitize_text_field($_POST['file-export-nonce']), 'export-file-page-redirection' )){ require_once plugin_dir_path( __FILE__ ).'class/csv.class.php'; $file_path = plugin_dir_path(dirname(dirname( __FILE__ ))).'upload/export/'; $file_field_header = array('Access-Date','Source-URL','Hits'); $newFileName = 'all-in-one-404-page-list-export-'.date('Ymdhis').'.csv'; $exportedFileName = $file_path.$newFileName; // create csv object $csvObj = new CSV($exportedFileName, "W",","); if($csvObj->filename){ $flagCsv = $csvObj->CSV(); $arrInfo = array(); $arrInfo = array_values($file_field_header); $csvObj->addArray($arrInfo); unset($arrInfo); $redirection_list_select = $wpdb->get_results( "SELECT * FROM $table_name where rtype=404 order by last_access DESC" ); foreach($redirection_list_select as $key => $redirection_page){ $file_field_value = array(date('M d, Y h:i A',strtotime($redirection_page->last_access)),$redirection_page->source_url,$redirection_page->hits); $arrInfo = array(); $arrInfo = array_values($file_field_value); $csvObj->addArray($arrInfo); unset($arrInfo); } $csvObj->close(); $file_export_path = plugin_dir_url(dirname(dirname( __FILE__))).'upload/export/'.$newFileName; echo '
'.__( 'Click here', 'all-in-one-redirection' ).''.__( ' to download the file.', 'all-in-one-redirection' ).'
'; //header('Location: '.$file_export_path); //exit; } else{ echo '
'.__( 'There is some folder permission issue. Please set the proper file permission.', 'all-in-one-redirection' ).'
'; } } else{ echo '
'.__( 'There is some technical problem. Please try again.', 'all-in-one-redirection' ).'
'; } } echo '
'; $nonce_file_export = wp_create_nonce('export-file-page-redirection'); echo '
'; echo '
'; echo '
'; echo '
'; echo '
'; } }