????
Current Path : /home2/sarkar82/www/wp-content/plugins/siteseo/main/ |
Current File : //home2/sarkar82/www/wp-content/plugins/siteseo/main/options-import-export.php |
<?php /* * SiteSEO * https://siteseo.io/ * (c) SiteSEO Team <support@siteseo.io> */ /* Copyright 2016 - 2024 - Benjamin Denis (email : contact@seopress.org) This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License, version 2, as published by the Free Software Foundation. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA */ if ( ! defined( 'ABSPATH' ) ) exit; // Exit if accessed directly //Import / Exports settings page // Are we being accessed directly ? if(!defined('SITESEO_VERSION')) { exit('Hacking Attempt !'); } add_action('admin_init', 'siteseo_export_settings'); // Export SiteSEO Settings to JSON function siteseo_export_settings(){ if (empty($_POST['siteseo_action']) || 'export_settings' != $_POST['siteseo_action']) { return; } if ( ! wp_verify_nonce(siteseo_opt_post('siteseo_export_nonce'), 'siteseo_export_nonce')) { return; } if ( ! current_user_can(siteseo_capability('manage_options', 'export_settings'))) { return; } $settings['siteseo_activated'] = get_option('siteseo_activated'); $settings['siteseo_titles_option_name'] = get_option('siteseo_titles_option_name'); $settings['siteseo_social_option_name'] = get_option('siteseo_social_option_name'); $settings['siteseo_google_analytics_option_name'] = get_option('siteseo_google_analytics_option_name'); $settings['siteseo_advanced_option_name'] = get_option('siteseo_advanced_option_name'); $settings['siteseo_xml_sitemap_option_name'] = get_option('siteseo_xml_sitemap_option_name'); $settings['siteseo_pro_option_name'] = get_option('siteseo_pro_option_name'); $settings['siteseo_pro_mu_option_name'] = get_option('siteseo_pro_mu_option_name'); $settings['siteseo_pro_license_key'] = get_option('siteseo_pro_license_key'); $settings['siteseo_pro_license_status'] = get_option('siteseo_pro_license_status'); $settings['siteseo_bot_option_name'] = get_option('siteseo_bot_option_name'); $settings['siteseo_toggle'] = get_option('siteseo_toggle'); $settings['siteseo_google_analytics_lock_option_name'] = get_option('siteseo_google_analytics_lock_option_name'); $settings['siteseo_tools_option_name'] = get_option('siteseo_tools_option_name'); $settings['siteseo_dashboard_option_name'] = get_option('siteseo_dashboard_option_name'); $settings['siteseo_instant_indexing_option_name'] = get_option('siteseo_instant_indexing_option_name'); ignore_user_abort(true); nocache_headers(); header('Content-Type: application/json; charset=utf-8'); header('Content-Disposition: attachment; filename=siteseo-settings-export-' . date('m-d-Y') . '.json'); header('Expires: 0'); echo wp_json_encode($settings); exit; } add_action('admin_init', 'siteseo_import_settings'); // Import SiteSEO Settings from JSON function siteseo_import_settings() { if (empty($_POST['siteseo_action']) || 'import_settings' != $_POST['siteseo_action']) { return; } if ( ! wp_verify_nonce(siteseo_opt_post('siteseo_import_nonce'), 'siteseo_import_nonce')) { return; } if ( ! current_user_can(siteseo_capability('manage_options', 'import_settings'))) { return; } $extension = !empty($_FILES['import_file']['name']) ? pathinfo(sanitize_file_name($_FILES['import_file']['name']), PATHINFO_EXTENSION) : ''; if ('json' != $extension) { wp_die(esc_html__('Please upload a valid .json file', 'siteseo')); } $import_file = !empty($_FILES['import_file']['tmp_name']) ? sanitize_text_field($_FILES['import_file']['tmp_name']) : ''; if (empty($import_file)) { wp_die(esc_html__('Please upload a file to import', 'siteseo')); } $settings = (array) json_decode(siteseo_remove_utf8_bom(file_get_contents($import_file)), true); if (false !== $settings['siteseo_activated']) { update_option('siteseo_activated', $settings['siteseo_activated'], false); } if (false !== $settings['siteseo_titles_option_name']) { update_option('siteseo_titles_option_name', $settings['siteseo_titles_option_name'], false); } if (false !== $settings['siteseo_social_option_name']) { update_option('siteseo_social_option_name', $settings['siteseo_social_option_name'], false); } if (false !== $settings['siteseo_google_analytics_option_name']) { update_option('siteseo_google_analytics_option_name', $settings['siteseo_google_analytics_option_name'], false); } if (false !== $settings['siteseo_advanced_option_name']) { update_option('siteseo_advanced_option_name', $settings['siteseo_advanced_option_name'], false); } if (false !== $settings['siteseo_xml_sitemap_option_name']) { update_option('siteseo_xml_sitemap_option_name', $settings['siteseo_xml_sitemap_option_name'], false); } if (false !== $settings['siteseo_pro_option_name']) { update_option('siteseo_pro_option_name', $settings['siteseo_pro_option_name'], false); } if (false !== $settings['siteseo_pro_mu_option_name']) { update_option('siteseo_pro_mu_option_name', $settings['siteseo_pro_mu_option_name'], false); } if (false !== $settings['siteseo_pro_license_key']) { update_option('siteseo_pro_license_key', $settings['siteseo_pro_license_key'], false); } if (false !== $settings['siteseo_pro_license_status']) { update_option('siteseo_pro_license_status', $settings['siteseo_pro_license_status'], false); } if (false !== $settings['siteseo_bot_option_name']) { update_option('siteseo_bot_option_name', $settings['siteseo_bot_option_name'], false); } if (false !== $settings['siteseo_toggle']) { update_option('siteseo_toggle', $settings['siteseo_toggle'], false); } if (false !== $settings['siteseo_google_analytics_lock_option_name']) { update_option('siteseo_google_analytics_lock_option_name', $settings['siteseo_google_analytics_lock_option_name'], false); } if (false !== $settings['siteseo_tools_option_name']) { update_option('siteseo_tools_option_name', $settings['siteseo_tools_option_name'], false); } if (false !== $settings['siteseo_instant_indexing_option_name']) { update_option('siteseo_instant_indexing_option_name', $settings['siteseo_instant_indexing_option_name'], false); } wp_safe_redirect(admin_url('admin.php?page=siteseo-import-export&success=true')); exit; } // Import Redirections from CSV function siteseo_import_redirections_settings() { if (empty($_POST['siteseo_action']) || 'import_redirections_settings' != $_POST['siteseo_action']) { return; } if ( ! wp_verify_nonce(siteseo_opt_post('siteseo_import_redirections_nonce'), 'siteseo_import_redirections_nonce')) { return; } if ( ! current_user_can(siteseo_capability('manage_options', 'import_settings'))) { return; } $extension = !empty($_FILES['import_file']['name']) ? pathinfo(sanitize_file_name($_FILES['import_file']['name']), PATHINFO_EXTENSION) : ''; if ('csv' != $extension) { wp_die(esc_html__('Please upload a valid .csv file', 'siteseo')); } $import_file = !empty($_FILES['import_file']['tmp_name']) ? sanitize_file_name($_FILES['import_file']['tmp_name']) : ''; if (empty($import_file)) { wp_die(esc_html__('Please upload a file to import', 'siteseo')); } if (empty($_POST['import_sep'])) { wp_die(esc_html__('Please choose a separator', 'siteseo')); } $csv = array_map(function ($item) { if (!empty($_POST['import_sep']) && 'comma' == sanitize_text_field(wp_unslash($_POST['import_sep']))) { $sep = ','; } elseif (!empty($_POST['import_sep']) && 'semicolon' == sanitize_text_field(wp_unslash($_POST['import_sep']))) { $sep = ';'; } else { wp_die(esc_html__('Invalid separator')); } return str_getcsv($item, $sep, '\"'); }, file($import_file, FILE_IGNORE_NEW_LINES | FILE_SKIP_EMPTY_LINES)); //Remove duplicates from CSV $csv = array_unique($csv, SORT_REGULAR); foreach ($csv as $key => $value) { $csv_line = $value; //Third column: redirections type if ('301' == $csv_line[2] || '302' == $csv_line[2] || '307' == $csv_line[2] || '410' == $csv_line[2] || '451' == $csv_line[2]) { $csv_type_redirects[2] = $csv_line[2]; } //Fourth column: redirections enabled $csv_line[3] = strtolower($csv_line[3]); if ('yes' == $csv_line[3]) { $csv_type_redirects[3] = $csv_line[3]; } else { $csv_type_redirects[3] = ''; } //Fifth column: redirections query param if ( ! empty($csv_line[4])) { if ('exact_match' == $csv_line[4] || 'with_ignored_param' == $csv_line[4] || 'without_param' == $csv_line[4]) { $csv_type_redirects[4] = $csv_line[4]; } else { $csv_type_redirects[4] = 'exact_match'; } } //Seventh column: redirect categories if ( ! empty($csv_line[6])) { $cats = array_values(explode(',', $csv_line[6])); $cats = array_map('intval', $cats); $cats = array_unique($cats); } $regex_enable = ''; //regex enabled $csv_line[7]= strtolower($csv_line[7]); if ('yes' === $csv_line[7]) { $regex_enable = 'yes'; } //logged status $logged_status = 'both'; $csv_line[8]= strtolower($csv_line[8]); if (!empty($csv_line[8])) { $logged_status = $csv_line[8]; } if ( ! empty($csv_line[0])) { $count = null; if ( ! empty($csv_line[5])) { $count = $csv_line[5]; } $id = wp_insert_post([ 'post_title' => rawurldecode($csv_line[0]), 'post_type' => 'siteseo_404', 'post_status' => 'publish', 'meta_input' => [ '_siteseo_redirections_value' => rawurldecode($csv_line[1]), '_siteseo_redirections_type' => $csv_type_redirects[2], '_siteseo_redirections_enabled' => $csv_type_redirects[3], '_siteseo_redirections_enabled_regex' => $regex_enable, '_siteseo_redirections_logged_status' => $logged_status, '_siteseo_redirections_param' => $csv_type_redirects[4], 'siteseo_404_count' => $count, ], ] ); //Assign terms if ( ! empty($csv_line[6])) { wp_set_object_terms($id, $cats, 'siteseo_404_cat'); } } } wp_safe_redirect(admin_url('edit.php?post_type=siteseo_404')); exit; } add_action('admin_init', 'siteseo_import_redirections_settings'); //Import Redirections from Yoast Premium (CSV) function siteseo_import_yoast_redirections(){ if (empty($_POST['siteseo_action']) || 'import_yoast_redirections' != $_POST['siteseo_action']) { return; } if ( ! wp_verify_nonce(siteseo_opt_post('siteseo_import_yoast_redirections_nonce'), 'siteseo_import_yoast_redirections_nonce')) { return; } if ( ! current_user_can(siteseo_capability('manage_options', 'import_settings'))) { return; } $extension = !empty($_FILES['import_file']['name']) ? pathinfo(sanitize_file_name($_FILES['import_file']['name']), PATHINFO_EXTENSION) : ''; if ('csv' != $extension) { wp_die(esc_html__('Please upload a valid .csv file')); } $import_file = !empty($_FILES['import_file']['tmp_name']) ? sanitize_file_name($_FILES['import_file']['tmp_name']) : ''; if (empty($import_file)) { wp_die(esc_html__('Please upload a file to import')); } $csv = array_map('str_getcsv', file($import_file)); foreach (array_slice($csv, 1) as $_key => $_value) { $csv_line = $_value; //Third column: redirections type if ('301' == $csv_line[2] || '302' == $csv_line[2] || '307' == $csv_line[2] || '410' == $csv_line[2] || '451' == $csv_line[2]) { $csv_type_redirects[2] = $csv_line[2]; } //Fourth column: redirections enabled $csv_type_redirects[3] = 'yes'; //Fifth column: redirections query param $csv_type_redirects[4] = 'exact_match'; if ( ! empty($csv_line[0])) { $csv_line[0] = substr($csv_line[0], 1); if ( ! empty($csv_line[1])) { if ('//' === $csv_line[1]) { $csv_line[1] = '/'; } else { $csv_line[1] = home_url() . $csv_line[1]; } } $id = wp_insert_post([ 'post_title' => urldecode($csv_line[0]), 'post_type' => 'siteseo_404', 'post_status' => 'publish', 'meta_input' => [ '_siteseo_redirections_value' => urldecode($csv_line[1]), '_siteseo_redirections_type' => $csv_type_redirects[2], '_siteseo_redirections_enabled' => $csv_type_redirects[3], '_siteseo_redirections_enabled_regex' => '', '_siteseo_redirections_logged_status' => 'both', '_siteseo_redirections_param' => $csv_type_redirects[4], ], ]); } } wp_safe_redirect(admin_url('edit.php?post_type=siteseo_404')); exit; } add_action('admin_init', 'siteseo_import_yoast_redirections'); //Export Redirections to CSV file function siteseo_export_redirections_settings() { if (empty($_POST['siteseo_action']) || 'export_redirections' != $_POST['siteseo_action']) { return; } if ( ! wp_verify_nonce(siteseo_opt_post('siteseo_export_redirections_nonce'), 'siteseo_export_redirections_nonce')) { return; } if ( ! current_user_can(siteseo_capability('manage_options', 'export_settings'))) { return; } //Init $redirects_html = ''; $args = [ 'post_type' => 'siteseo_404', 'posts_per_page' => '-1', 'meta_query' => [ [ 'key' => '_siteseo_redirections_type', 'value' => ['301', '302', '307', '410', '451'], 'compare' => 'IN', ], ], ]; $args = apply_filters('siteseo_export_redirections_query', $args); $siteseo_redirects_query = new WP_Query($args); if ($siteseo_redirects_query->have_posts()) { while ($siteseo_redirects_query->have_posts()) { $siteseo_redirects_query->the_post(); $redirect_categories = get_the_terms(get_the_ID(), 'siteseo_404_cat'); if(!empty($redirect_categories)){ $redirect_categories = join(', ', wp_list_pluck($redirect_categories, 'term_id')); } else{ $redirect_categories = ""; } $redirects_html .= html_entity_decode(urldecode(urlencode(esc_attr(wp_filter_nohtml_kses(get_the_title()))))); $redirects_html .= ';'; $redirects_html .= html_entity_decode(urldecode(urlencode(esc_attr(wp_filter_nohtml_kses(get_post_meta(get_the_ID(), '_siteseo_redirections_value', true)))))); $redirects_html .= ';'; $redirects_html .= get_post_meta(get_the_ID(), '_siteseo_redirections_type', true); $redirects_html .= ';'; $redirects_html .= get_post_meta(get_the_ID(), '_siteseo_redirections_enabled', true); $redirects_html .= ';'; $redirects_html .= get_post_meta(get_the_ID(), '_siteseo_redirections_param', true); $redirects_html .= ';'; $redirects_html .= get_post_meta(get_the_ID(), 'siteseo_404_count', true); $redirects_html .= ';'; $redirects_html .= $redirect_categories; $redirects_html .= ';'; $redirects_html .= get_post_meta(get_the_ID(), '_siteseo_redirections_enabled_regex', true); $redirects_html .= ';'; $redirects_html .= get_post_meta(get_the_ID(), '_siteseo_redirections_logged_status', true); $redirects_html .= "\n"; } wp_reset_postdata(); } ignore_user_abort(true); nocache_headers(); header('Content-Type: application/csv; charset=utf-8'); header('Content-Disposition: attachment; filename=siteseo-redirections-export-' . date('m-d-Y') . '.csv'); header('Expires: 0'); echo wp_kses_post($redirects_html); exit; } add_action('admin_init', 'siteseo_export_redirections_settings'); // Export Redirections to txt file for .htaccess function siteseo_export_redirections_htaccess_settings(){ if (empty($_POST['siteseo_action']) || 'export_redirections_htaccess' != $_POST['siteseo_action']) { return; } if ( ! wp_verify_nonce(siteseo_opt_post('siteseo_export_redirections_htaccess_nonce'), 'siteseo_export_redirections_htaccess_nonce')) { return; } if ( ! current_user_can(siteseo_capability('manage_options', 'export_settings'))) { return; } //Init $redirects_html = ''; $args = [ 'post_type' => 'siteseo_404', 'posts_per_page' => '-1', 'meta_query' => [ [ 'key' => '_siteseo_redirections_type', 'value' => ['301', '302', '307', '410', '451'], 'compare' => 'IN', ], [ 'key' => '_siteseo_redirections_enabled', 'value' => 'yes', ], ], ]; $siteseo_redirects_query = new WP_Query($args); if ($siteseo_redirects_query->have_posts()) { while ($siteseo_redirects_query->have_posts()) { $siteseo_redirects_query->the_post(); switch (get_post_meta(get_the_ID(), '_siteseo_redirections_type', true)) { case '301': $type = 'redirect 301 '; break; case '302': $type = 'redirect 302 '; break; case '307': $type = 'redirect 307 '; break; case '410': $type = 'redirect 410 '; break; case '451': $type = 'redirect 451 '; break; } $redirects_html .= $type . ' /' . untrailingslashit(urldecode(urlencode(esc_attr(wp_filter_nohtml_kses(get_the_title()))))) . ' '; $redirects_html .= urldecode(urlencode(esc_attr(wp_filter_nohtml_kses(get_post_meta(get_the_ID(), '_siteseo_redirections_value', true))))); $redirects_html .= "\n"; } wp_reset_postdata(); } ignore_user_abort(true); echo wp_kses_post($redirects_html); nocache_headers(); header('Content-Type: text/plain; charset=utf-8'); header('Content-Disposition: attachment; filename=siteseo-redirections-htaccess-export-' . date('m-d-Y') . '.txt'); header('Expires: 0'); exit; } add_action('admin_init', 'siteseo_export_redirections_htaccess_settings'); // Import Redirections from Redirections plugin JSON file function siteseo_import_redirections_plugin_settings() { if (empty($_POST['siteseo_action']) || 'import_redirections_plugin_settings' != $_POST['siteseo_action']) { return; } if ( ! wp_verify_nonce(siteseo_opt_post('siteseo_import_redirections_plugin_nonce'), 'siteseo_import_redirections_plugin_nonce')) { return; } if ( ! current_user_can(siteseo_capability('manage_options', 'import_settings'))) { return; } $extension = !empty($_FILES['import_file']['name']) ? pathinfo(sanitize_file_name($_FILES['import_file']['name']), PATHINFO_EXTENSION) : ''; if ('json' != $extension) { wp_die(esc_html__('Please upload a valid .json file')); } $import_file = !empty($_FILES['import_file']['tmp_name']) ? sanitize_file_name($_FILES['import_file']['tmp_name']) : ''; if (empty($import_file)) { wp_die(esc_html__('Please upload a file to import')); } $settings = (array) json_decode(file_get_contents($import_file), true); foreach ($settings['redirects'] as $redirect_key => $redirect_value) { $type = ''; if ( ! empty($redirect_value['action_code'])) { $type = $redirect_value['action_code']; } else { $type = '301'; } $param = ''; if ( ! empty($redirect_value['match_data']['source']['flag_query'])) { $flag_query = $redirect_value['match_data']['source']['flag_query']; if ('pass' == $flag_query) { $param = 'with_ignored_param'; } elseif ('ignore' == $flag_query) { $param = 'without_param'; } else { $param = 'exact_match'; } } $enabled =''; if ( ! empty(true == $redirect_value['enabled'])) { $enabled ='yes'; } $regex_enable =''; if ( ! empty($redirect_value['regex'])) { $regex_enable ='yes'; } wp_insert_post([ 'post_title' => ltrim(urldecode($redirect_value['url']), '/'), 'post_type' => 'siteseo_404', 'post_status' => 'publish', 'meta_input' => [ '_siteseo_redirections_value' => urldecode($redirect_value['action_data']['url']), '_siteseo_redirections_type' => $type, '_siteseo_redirections_enabled' => $enabled, '_siteseo_redirections_enabled_regex' => $regex_enable, '_siteseo_redirections_logged_status' => 'both', '_siteseo_redirections_param' => $param, ], ]); } wp_safe_redirect(admin_url('edit.php?post_type=siteseo_404')); exit; } add_action('admin_init', 'siteseo_import_redirections_plugin_settings'); // Import Redirections from Rank Math plugin JSON file function siteseo_import_rk_redirections(){ if (empty($_POST['siteseo_action']) || 'import_rk_redirections' != $_POST['siteseo_action']) { return; } if ( ! wp_verify_nonce(siteseo_opt_post('siteseo_import_rk_redirections_nonce'), 'siteseo_import_rk_redirections_nonce')) { return; } if ( ! current_user_can(siteseo_capability('manage_options', 'import_settings'))) { return; } $extension = !empty($_FILES['import_file']['name']) ? pathinfo(sanitize_file_name($_FILES['import_file']['name']), PATHINFO_EXTENSION) : ''; if ('json' != $extension) { wp_die(esc_html__('Please upload a valid .json file')); } $import_file = !empty($_FILES['import_file']['tmp_name']) ? sanitize_file_name($_FILES['import_file']['tmp_name']) : ''; if (empty($import_file)) { wp_die(esc_html__('Please upload a file to import')); } $settings = (array) json_decode(file_get_contents($import_file), true); foreach ($settings['redirections'] as $redirect_key => $redirect_value) { $type = ''; if ( ! empty($redirect_value['header_code'])) { $type = $redirect_value['header_code']; } $source = ''; if ( ! empty($redirect_value['sources'])) { $source = maybe_unserialize($redirect_value['sources']); $source = ltrim(urldecode($source[0]['pattern']), '/'); } $param = 'exact_match'; $enabled = ''; if ( ! empty('active' == $redirect_value['status'])) { $enabled ='yes'; } $redirect = ''; if ( ! empty($redirect_value['url_to'])) { $redirect = urldecode($redirect_value['url_to']); } $count = ''; if ( ! empty($redirect_value['hits'])) { $count = (int)$redirect_value['hits']; } $regex = ''; if ( ! empty($redirect_value['sources'])) { $sources = maybe_unserialize($redirect_value['sources']); if(in_array("regex", array_column($sources, 'comparison'))) { $regex = 'yes'; } } wp_insert_post( [ 'post_title' => $source, 'post_type' => 'siteseo_404', 'post_status' => 'publish', 'meta_input' => [ '_siteseo_redirections_value' => $redirect, '_siteseo_redirections_type' => $type, '_siteseo_redirections_enabled' => $enabled, '_siteseo_redirections_enabled_regex' => $regex, '_siteseo_redirections_logged_status' => 'both', 'siteseo_404_count' => $count, '_siteseo_redirections_param' => $param, ], ] ); } wp_safe_redirect(admin_url('edit.php?post_type=siteseo_404')); exit; } add_action('admin_init', 'siteseo_import_rk_redirections'); // Clean all 404 function siteseo_clean_404_query_hook($args) { unset($args['date_query']); return $args; } function siteseo_clean_404() { if (empty($_POST['siteseo_action']) || 'clean_404' != $_POST['siteseo_action']) { return; } if ( ! wp_verify_nonce(siteseo_opt_post('siteseo_clean_404_nonce'), 'siteseo_clean_404_nonce')) { return; } if ( ! current_user_can(siteseo_capability('manage_options', '404'))) { return; } add_filter('siteseo_404_cleaning_query', 'siteseo_clean_404_query_hook'); do_action('siteseo_404_cron_cleaning', true); wp_safe_redirect(admin_url('edit.php?post_type=siteseo_404')); exit; } add_action('admin_init', 'siteseo_clean_404'); // Reset Count column function siteseo_clean_counters() { if (empty($_POST['siteseo_action']) || 'clean_counters' != $_POST['siteseo_action']) { return; } if ( ! wp_verify_nonce(siteseo_opt_post('siteseo_clean_counters_nonce'), 'siteseo_clean_counters_nonce')) { return; } if ( ! current_user_can(siteseo_capability('manage_options', '404'))) { return; } global $wpdb; $wpdb->query('DELETE FROM `' . $wpdb->prefix . 'postmeta` WHERE `meta_key` = \'siteseo_404_count\''); wp_safe_redirect(admin_url('edit.php?post_type=siteseo_404')); exit; } add_action('admin_init', 'siteseo_clean_counters'); // Clean all (redirects / 404 errors) function siteseo_clean_all() { if (empty($_POST['siteseo_action']) || 'clean_all' != $_POST['siteseo_action']) { return; } if ( ! wp_verify_nonce(siteseo_opt_post('siteseo_clean_all_nonce'), 'siteseo_clean_all_nonce')) { return; } if ( ! current_user_can(siteseo_capability('manage_options', '404'))) { return; } global $wpdb; $wpdb->query('DELETE `posts`, `pm` FROM `' . $wpdb->prefix . 'posts` AS `posts` LEFT JOIN `' . $wpdb->prefix . 'postmeta` AS `pm` ON `pm`.`post_id` = `posts`.`ID` WHERE `posts`.`post_type` = \'siteseo_404\''); wp_safe_redirect(admin_url('edit.php?post_type=siteseo_404')); exit; } add_action('admin_init', 'siteseo_clean_all'); // Reset SiteSEO Notices Settings function siteseo_reset_notices_settings() { if (empty($_POST['siteseo_action']) || 'reset_notices_settings' != $_POST['siteseo_action']) { return; } if ( ! wp_verify_nonce(siteseo_opt_post('siteseo_reset_notices_nonce'), 'siteseo_reset_notices_nonce')) { return; } if ( ! current_user_can(siteseo_capability('manage_options', 'reset_settings'))) { return; } global $wpdb; $wpdb->query("DELETE FROM $wpdb->options WHERE option_name LIKE 'siteseo_notices' "); wp_safe_redirect(admin_url('admin.php?page=siteseo-import-export')); exit; } add_action('admin_init', 'siteseo_reset_notices_settings'); // Reset SiteSEO Settings function siteseo_reset_settings() { if (empty($_POST['siteseo_action']) || 'reset_settings' != $_POST['siteseo_action']) { return; } if ( ! wp_verify_nonce(siteseo_opt_post('siteseo_reset_nonce'), 'siteseo_reset_nonce')) { return; } if ( ! current_user_can(siteseo_capability('manage_options', 'reset_settings'))) { return; } global $wpdb; $wpdb->query("DELETE FROM $wpdb->options WHERE option_name LIKE 'siteseo_%' "); wp_safe_redirect(admin_url('admin.php?page=siteseo-import-export')); exit; } add_action('admin_init', 'siteseo_reset_settings'); // Export SiteSEO BOT Links to CSV function siteseo_bot_links_export_settings() { if (empty($_POST['siteseo_action']) || 'export_csv_links_settings' != $_POST['siteseo_action']) { return; } if ( ! wp_verify_nonce(siteseo_opt_post('siteseo_export_csv_links_nonce'), 'siteseo_export_csv_links_nonce')) { return; } if ( ! current_user_can(siteseo_capability('manage_options', 'export_settings'))) { return; } $args = [ 'post_type' => 'siteseo_bot', 'posts_per_page' => 1000, 'post_status' => 'publish', 'order' => 'DESC', 'orderby' => 'date', ]; $the_query = new WP_Query($args); $settings['URL'] = []; $settings['Source'] = []; $settings['Source_Url'] = []; $settings['Status'] = []; $settings['Type'] = []; $csv_fields = []; $csv_fields[] = 'URL'; $csv_fields[] = 'Source'; $csv_fields[] = 'Source URL'; $csv_fields[] = 'Status'; $csv_fields[] = 'Type'; $output_handle = @fopen('php://output', 'w'); //Header ignore_user_abort(true); nocache_headers(); header('Content-Type: text/csv; charset=utf-8'); header('Content-Disposition: attachment; filename=siteseo-links-export-' . date('m-d-Y') . '.csv'); header('Expires: 0'); header('Pragma: public'); //Insert header row fputcsv($output_handle, $csv_fields); // The Loop if ($the_query->have_posts()) { while ($the_query->have_posts()) { $the_query->the_post(); array_push($settings['URL'], get_the_title()); array_push($settings['Source'], get_post_meta(get_the_ID(), 'siteseo_bot_source_title', true)); array_push($settings['Source_Url'], get_post_meta(get_the_ID(), 'siteseo_bot_source_url', true)); array_push($settings['Status'], get_post_meta(get_the_ID(), 'siteseo_bot_status', true)); array_push($settings['Type'], get_post_meta(get_the_ID(), 'siteseo_bot_type', true)); fputcsv($output_handle, array_merge($settings['URL'], $settings['Source'], $settings['Source_Url'], $settings['Status'], $settings['Type'])); //Clean arrays $settings['URL'] = []; $settings['Source'] = []; $settings['Source_Url'] = []; $settings['Status'] = []; $settings['Type'] = []; } wp_reset_postdata(); } // Close output file stream fclose($output_handle); exit; } add_action('admin_init', 'siteseo_bot_links_export_settings'); // Export metadata function siteseo_download_batch_export() { if (empty($_GET['siteseo_action']) || 'siteseo_download_batch_export' != $_GET['siteseo_action']) { return; } if ( ! wp_verify_nonce(siteseo_opt_get('nonce'), 'siteseo_csv_batch_export_nonce')) { return; } if (current_user_can(siteseo_capability('manage_options', 'export_settings')) && is_admin()) { if ('' != get_option('siteseo_metadata_csv')) { $csv = get_option('siteseo_metadata_csv'); $csv_fields = []; $csv_fields[] = 'id'; $csv_fields[] = 'post_title'; $csv_fields[] = 'url'; $csv_fields[] = 'meta_title'; $csv_fields[] = 'meta_desc'; $csv_fields[] = 'fb_title'; $csv_fields[] = 'fb_desc'; $csv_fields[] = 'fb_img'; $csv_fields[] = 'tw_title'; $csv_fields[] = 'tw_desc'; $csv_fields[] = 'tw_img'; $csv_fields[] = 'noindex'; $csv_fields[] = 'nofollow'; $csv_fields[] = 'noimageindex'; $csv_fields[] = 'noarchive'; $csv_fields[] = 'nosnippet'; $csv_fields[] = 'canonical_url'; $csv_fields[] = 'primary_cat'; $csv_fields[] = 'redirect_active'; $csv_fields[] = 'redirect_status'; $csv_fields[] = 'redirect_type'; $csv_fields[] = 'redirect_url'; $csv_fields[] = 'target_kw'; ob_start(); $output_handle = @fopen('php://output', 'w'); //Insert header row fputcsv($output_handle, $csv_fields, ';'); //Header ignore_user_abort(true); nocache_headers(); header('Content-Type: text/csv; charset=utf-8'); header('Content-Disposition: attachment; filename=siteseo-metadata-export-' . date('m-d-Y') . '.csv'); header('Expires: 0'); header('Pragma: public'); if ( ! empty($csv)) { foreach ($csv as $value) { fputcsv($output_handle, $value, ';'); } } // Close output file stream fclose($output_handle); //Clean database delete_option('siteseo_metadata_csv'); exit; } } } add_action('admin_init', 'siteseo_download_batch_export');