%PDF- %PDF-
Mini Shell

Mini Shell

Direktori : /home/l/a/n/langpiergz/www/wp-content/plugins/wp-seopress/inc/admin/
Upload File :
Create Path :
Current File : /home/l/a/n/langpiergz/www/wp-content/plugins/wp-seopress/inc/admin/ajax.php

<?php
defined( 'ABSPATH' ) or die( 'Please don&rsquo;t call the plugin directly. Thanks :)' );

///////////////////////////////////////////////////////////////////////////////////////////////////
//Get real preview + content analysis
///////////////////////////////////////////////////////////////////////////////////////////////////
function seopress_do_real_preview() {            
    check_ajax_referer( 'seopress_real_preview_nonce', $_GET['_ajax_nonce'], true );

    if (current_user_can('edit_posts') && is_admin()) {

        //Get cookies
        if (isset($_COOKIE)) { 
            $cookies = array();
    
            foreach ( $_COOKIE as $name => $value ) {
                if ( 'PHPSESSID' !== $name ) {
                    $cookies[] = new WP_Http_Cookie( array( 'name' => $name, 'value' => $value ) );
                }
            }
        }
           
        //Get post id
        if ( isset( $_GET['post_id'] ) ) {
            $seopress_get_the_id = $_GET['post_id'];
        }

        //Get post type
        if ( isset( $_GET['post_type'] ) ) {
            $seopress_get_post_type = $_GET['post_type'];
        }

        //Origin
        if ( isset( $_GET['origin'] ) ) {
            $seopress_origin = $_GET['origin'];
        }

        //Tax name
        if ( isset( $_GET['tax_name'] ) ) {
            $seopress_tax_name = $_GET['tax_name'];
        }

        //Get post content (used for Words counter)
        $seopress_get_the_content = apply_filters('the_content', get_post_field('post_content', $seopress_get_the_id));
        
            //Themify compatibility
            if ( defined( 'THEMIFY_DIR' ) ) {
                $seopress_get_the_content = get_post_field('post_content', $seopress_get_the_id);
            }

        $seopress_get_the_content = apply_filters('seopress_content_analysis_content', $seopress_get_the_content, $seopress_get_the_id);

        //Init
        $title = '';
        $meta_desc = '';
        $data = array();

        //Save Target KWs
        if(isset($_GET['seopress_analysis_target_kw'])) {
            delete_post_meta($seopress_get_the_id, '_seopress_analysis_target_kw');
            update_post_meta($seopress_get_the_id, '_seopress_analysis_target_kw', esc_html($_GET['seopress_analysis_target_kw']));
        }

        //DOM
        $dom = new DOMDocument();
        $internalErrors = libxml_use_internal_errors(true);
        $dom->preserveWhiteSpace = false;
        
        //Get source code
        $args = array(
            'blocking' => true,
            'timeout'  => 30,
            'sslverify'   => false,
        );

        if (isset($cookies) && !empty($cookies)) {
            $args['cookies'] = $cookies;
        }

        $args = apply_filters('seopress_real_preview_remote', $args);

        $data['title'] = $cookies;

        if ($seopress_origin =='post') { //Default: post type
            $response = wp_remote_get(get_preview_post_link((int)$seopress_get_the_id,array('no_admin_bar' => 1)), $args);
        } else { //Term taxonomy
            $response = wp_remote_get(get_term_link((int)$seopress_get_the_id, $seopress_tax_name), $args);
        }
        //Check for error
        if ( is_wp_error( $response ) || wp_remote_retrieve_response_code($response) =='404' ) {
            $data['title'] = __('To get your Google snippet preview, publish your post!', 'wp-seopress');
        } else {
            $response = wp_remote_retrieve_body($response);

            if($dom->loadHTML('<?xml encoding="utf-8" ?>' .$response)) {
                //Get Target Keywords
                if(isset($_GET['seopress_analysis_target_kw']) && !empty($_GET['seopress_analysis_target_kw'])) {
                    $data['target_kws'] = $_GET['seopress_analysis_target_kw'];
                    $seopress_analysis_target_kw = array_filter(explode(',', get_post_meta($seopress_get_the_id,'_seopress_analysis_target_kw',true)));
                }
                $xpath = new DOMXPath($dom);

                //Title
                $list = $dom->getElementsByTagName("title");
                if ($list->length > 0) {
                    $title = $list->item(0)->textContent;
                    $data['title'] = esc_attr(stripslashes_deep(wp_filter_nohtml_kses($title)));
                    if(isset($_GET['seopress_analysis_target_kw']) && !empty($_GET['seopress_analysis_target_kw'])) {
                        foreach ($seopress_analysis_target_kw as $kw) {
                            if (preg_match_all('#\b('.$kw.')\b#iu', $data['title'], $m)) {
                                $data['meta_title']['matches'][$kw][] = $m[0];
                            }
                        }
                    }
                }

                //Meta desc
                $meta_description = $xpath->query('//meta[@name="description"]/@content');

                foreach ($meta_description as $key=>$mdesc) {
                    $data['meta_desc'] = esc_attr(stripslashes_deep(wp_filter_nohtml_kses(wp_strip_all_tags($mdesc->nodeValue))));
                }

                if(isset($_GET['seopress_analysis_target_kw']) && !empty($_GET['seopress_analysis_target_kw'])) {
                    if (!empty($meta_description)) {
                        foreach ($meta_description as $meta_desc) {
                            foreach ($seopress_analysis_target_kw as $kw) {
                                if (preg_match_all('#\b('.$kw.')\b#iu', $meta_desc->nodeValue, $m)) {
                                    $data['meta_description']['matches'][$kw][] = $m[0];
                                }
                            }
                        }
                    }
                }

                //OG:title
                $og_title = $xpath->query('//meta[@property="og:title"]/@content');
                
                if (!empty($og_title)) {
                    $data['og_title']['count'] = count($og_title);
                    foreach ($og_title as $key=>$mogtitle) {
                        $data['og_title']['values'][] = esc_attr(stripslashes_deep(wp_filter_nohtml_kses($mogtitle->nodeValue)));
                    }
                }

                //OG:description
                $og_desc = $xpath->query('//meta[@property="og:description"]/@content');

                if (!empty($og_desc)) {
                    $data['og_desc']['count'] = count($og_desc);
                    foreach ($og_desc as $key=>$mog_desc) {
                        $data['og_desc']['values'][] = esc_attr(stripslashes_deep(wp_filter_nohtml_kses($mog_desc->nodeValue)));
                    }
                }

                //OG:image
                $og_img = $xpath->query('//meta[@property="og:image"]/@content');

                if (!empty($og_img)) {
                    $data['og_img']['count'] = count($og_img);
                    foreach ($og_img as $key=>$mog_img) {
                        $data['og_img']['values'][] = esc_attr(stripslashes_deep(wp_filter_nohtml_kses($mog_img->nodeValue)));
                    }
                }

                //OG:url
                $og_url = $xpath->query('//meta[@property="og:url"]/@content');

                if (!empty($og_url)) {
                    $data['og_url']['count'] = count($og_url);
                    foreach ($og_url as $key=>$mog_url) {
                        $url = esc_attr(stripslashes_deep(wp_filter_nohtml_kses($mog_url->nodeValue)));
                        $data['og_url']['values'][] = $url;
                        $url = wp_parse_url($url);
                        $data['og_url']['host'] = $url['host'];
                    }
                }

                //OG:site_name
                $og_site_name = $xpath->query('//meta[@property="og:site_name"]/@content');

                if (!empty($og_site_name)) {
                    $data['og_site_name']['count'] = count($og_site_name);
                    foreach ($og_site_name as $key=>$mog_site_name) {
                        $data['og_site_name']['values'][] = esc_attr(stripslashes_deep(wp_filter_nohtml_kses($mog_site_name->nodeValue)));
                    }
                }

                //Twitter:title
                $tw_title = $xpath->query('//meta[@name="twitter:title"]/@content');

                if (!empty($tw_title)) {
                    $data['tw_title']['count'] = count($tw_title);
                    foreach ($tw_title as $key=>$mtw_title) {
                        $data['tw_title']['values'][] = esc_attr(stripslashes_deep(wp_filter_nohtml_kses($mtw_title->nodeValue)));
                    }
                }

                //Twitter:description
                $tw_desc = $xpath->query('//meta[@name="twitter:description"]/@content');

                if (!empty($tw_desc)) {
                    $data['tw_desc']['count'] = count($tw_desc);
                    foreach ($tw_desc as $key=>$mtw_desc) {
                        $data['tw_desc']['values'][] = esc_attr(stripslashes_deep(wp_filter_nohtml_kses($mtw_desc->nodeValue)));
                    }
                }

                //Twitter:image
                $tw_img = $xpath->query('//meta[@name="twitter:image"]/@content');

                if (!empty($tw_img)) {
                    $data['tw_img']['count'] = count($tw_img);
                    foreach ($tw_img as $key=>$mtw_img) {
                        $data['tw_img']['values'][] = esc_attr(stripslashes_deep(wp_filter_nohtml_kses($mtw_img->nodeValue)));
                    }
                }

                //Canonical
                $canonical = $xpath->query('//link[@rel="canonical"]/@href');

                foreach ($canonical as $key=>$mcanonical) {
                    $data['canonical'] = esc_attr(stripslashes_deep(wp_filter_nohtml_kses($mcanonical->nodeValue)));
                }

                if(isset($_GET['seopress_analysis_target_kw']) && !empty($_GET['seopress_analysis_target_kw'])) {
                    //h1
                    $h1 = $xpath->query("//h1");
                    if (!empty($h1)) {
                        $data['h1']['nomatches']['count'] = count($h1);
                        foreach ($h1 as $heading1) {
                            foreach ($seopress_analysis_target_kw as $kw) {
                                if (preg_match_all('#\b('.$kw.')\b#iu', $heading1->nodeValue, $m)) {
                                    $data['h1']['matches'][$kw][] = $m[0];
                                }
                            }
                            $data['h1']['values'][] = esc_attr($heading1->nodeValue);
                        }
                    }

                    //h2
                    $h2 = $xpath->query("//h2");
                    if (!empty($h2)) {
                        foreach ($h2 as $heading2) {
                            foreach ($seopress_analysis_target_kw as $kw) {
                                if (preg_match_all('#\b('.$kw.')\b#iu', $heading2->nodeValue, $m)) {
                                    $data['h2']['matches'][$kw][] = $m[0];
                                }
                            }
                        }
                    }

                    //h3
                    $h3 = $xpath->query("//h3");
                    if (!empty($h3)) {
                        foreach ($h3 as $heading3) {
                            foreach ($seopress_analysis_target_kw as $kw) {
                                if (preg_match_all('#\b('.$kw.')\b#iu', $heading3->nodeValue, $m)) {
                                    $data['h3']['matches'][$kw][] = $m[0];
                                }
                            }
                        }
                    }

                    //Keywords density
                    foreach ($seopress_analysis_target_kw as $kw) {
                        if (preg_match_all('#\b('.$kw.')\b#iu', strip_tags(wp_filter_nohtml_kses($seopress_get_the_content)), $m)) {
                            $data['kws_density']['matches'][$kw][] = $m[0];
                        }
                    }

                    //Keywords in permalink
                    $post = get_post($seopress_get_the_id);
                    $kw_slug = array_filter(explode('-', $post->post_name));

                    if (!empty($kw_slug)) {
                        foreach ($seopress_analysis_target_kw as $kw) {
                            if (in_array(strtolower($kw), $kw_slug)) {
                                $data['kws_permalink']['matches'][$kw][] = $kw;
                            }
                        }
                    }
                }

                //Images
                /*Standard images*/
                $imgs = $xpath->query("//img");
                
                if (!empty($imgs) && $imgs !=NULL) {
                    //init
                    $data_img = array();
                    foreach ($imgs as $img) {
                        if ($img->getAttribute('alt') =='') {
                            $data_img[] .= $img->getAttribute('src');
                        }
                    }
                    $data['img']['images'] = $data_img;
                }

                //Meta robots
                $meta_robots = $xpath->query('//meta[@name="robots"]/@content');
                if (!empty($meta_robots)) {
                    foreach ($meta_robots as $key=>$value) {
                        $data['meta_robots'][$key][] = esc_attr($value->nodeValue);
                    }
                }

                //Meta google noimageindex / nositelinkssearchbox
                $meta_google = $xpath->query('//meta[@name="google"]/@content');
                if (!empty($meta_google)) {
                    foreach ($meta_google as $key=>$mgnoimg) {
                        $data['meta_google'][$key][] = esc_attr($mgnoimg->nodeValue);
                    }
                }

                //nofollow links
                $nofollow_links = $xpath->query("//a[contains(@rel, 'nofollow')]");
                if (!empty($nofollow_links)) {
                    foreach ($nofollow_links as $key=>$link) {
                        $data['nofollow_links'][$key][$link->getAttribute('href')] = esc_attr($link->nodeValue);
                    }
                }
                
                //outbound links
                $outbound_links = $xpath->query("//a[contains(@target, '_blank')]");
                if (!empty($outbound_links)) {
                    foreach ($outbound_links as $key=>$link) {
                        $data['outbound_links'][$key][$link->getAttribute('href')] = esc_attr($link->nodeValue);
                    }
                }

                //Words Counter
                if ($seopress_get_the_content !='') {
                    $data['words_counter'] = preg_match_all("/\p{L}[\p{L}\p{Mn}\p{Pd}'\x{2019}]*/u", strip_tags(wp_filter_nohtml_kses($seopress_get_the_content)), $matches);

                    $words_counter_unique = count(array_unique($matches[0]));
                    $data['words_counter_unique'] = $words_counter_unique;
                }
            }
        }
        
        libxml_use_internal_errors($internalErrors);

        //Send data
        if(isset($data)){
            update_post_meta($seopress_get_the_id, '_seopress_analysis_data', $data);
        }

        //Return
        wp_send_json_success($data);
    }
}
add_action('wp_ajax_seopress_do_real_preview', 'seopress_do_real_preview');

///////////////////////////////////////////////////////////////////////////////////////////////////
//Flush permalinks
///////////////////////////////////////////////////////////////////////////////////////////////////
function seopress_flush_permalinks() {
    check_ajax_referer( 'seopress_flush_permalinks_nonce', $_GET['_ajax_nonce'], true ); 
    flush_rewrite_rules();
	die();
}
add_action('wp_ajax_seopress_flush_permalinks', 'seopress_flush_permalinks');

///////////////////////////////////////////////////////////////////////////////////////////////////
//Dashboard toggle features
///////////////////////////////////////////////////////////////////////////////////////////////////
function seopress_toggle_features() {
    check_ajax_referer( 'seopress_toggle_features_nonce', $_POST['_ajax_nonce'], true );

	if ( isset( $_POST['feature']) && isset( $_POST['feature_value'] )) {
		$seopress_toggle_options = get_option('seopress_toggle');
		$seopress_toggle_options[$_POST['feature']] = $_POST['feature_value'];
		update_option('seopress_toggle', $seopress_toggle_options, 'yes');
	}
	die();
}
add_action('wp_ajax_seopress_toggle_features', 'seopress_toggle_features');

///////////////////////////////////////////////////////////////////////////////////////////////////
//Dashboard hide notices
///////////////////////////////////////////////////////////////////////////////////////////////////
function seopress_hide_notices() {
    check_ajax_referer( 'seopress_hide_notices_nonce', $_POST['_ajax_nonce'], true );

    if ( isset( $_POST['notice']) && isset( $_POST['notice_value'] )) {
        $seopress_notices_options = get_option('seopress_notices');
        $seopress_notices_options[$_POST['notice']] = $_POST['notice_value'];
        update_option('seopress_notices', $seopress_notices_options, 'yes');
    }
    die();
}
add_action('wp_ajax_seopress_hide_notices', 'seopress_hide_notices');

///////////////////////////////////////////////////////////////////////////////////////////////////
//Yoast migration
///////////////////////////////////////////////////////////////////////////////////////////////////
function seopress_yoast_migration() {
    check_ajax_referer( 'seopress_yoast_migrate_nonce', $_POST['_ajax_nonce'], true );

    if (current_user_can('manage_options') && is_admin()) { 

        if ( isset( $_POST['offset']) && isset( $_POST['offset'] )) {
            $offset = absint($_POST['offset']);
        }
        
        global $wpdb;

        $total_count_posts = (int)$wpdb->get_var( "SELECT count(*) FROM {$wpdb->posts}" );
        
        $increment = 200;
        global $post;
    	
        if ($offset > $total_count_posts) {
            wp_reset_query();

            $yoast_query_terms = get_option('wpseo_taxonomy_meta');

            if ($yoast_query_terms) { 
            
                foreach ($yoast_query_terms as $taxonomies => $taxonomie) {
                    foreach ($taxonomie as $term_id => $term_value) {
                        if ($term_value['wpseo_title'] !='') { //Import title tag
                            update_term_meta($term_id, '_seopress_titles_title', $term_value['wpseo_title']);
                        }
                        if ($term_value['wpseo_desc'] !='') { //Import meta desc
                            update_term_meta($term_id, '_seopress_titles_desc', $term_value['wpseo_desc']);
                        }
                        if ($term_value['wpseo_opengraph-title'] !='') { //Import Facebook Title
                            update_term_meta($term_id, '_seopress_social_fb_title', $term_value['wpseo_opengraph-title']);
                        }            
                        if ($term_value['wpseo_opengraph-description'] !='') { //Import Facebook Desc
                            update_term_meta($term_id, '_seopress_social_fb_desc', $term_value['wpseo_opengraph-description']);
                        }            
                        if ($term_value['wpseo_opengraph-image'] !='') { //Import Facebook Image
                            update_term_meta($term_id, '_seopress_social_fb_img', $term_value['wpseo_opengraph-image']);
                        }            
                        if ($term_value['wpseo_twitter-title'] !='') { //Import Twitter Title
                            update_term_meta($term_id, '_seopress_social_twitter_title', $term_value['wpseo_twitter-title']);
                        }            
                        if ($term_value['wpseo_twitter-description'] !='') { //Import Twitter Desc
                            update_term_meta($term_id, '_seopress_social_twitter_desc', $term_value['wpseo_twitter-description']);
                        }            
                        if ($term_value['wpseo_twitter-image'] !='') { //Import Twitter Image
                            update_term_meta($term_id, '_seopress_social_twitter_img', $term_value['wpseo_twitter-image']);
                        }            
                        if ($term_value['wpseo_noindex'] =='noindex') { //Import Robots NoIndex
                            update_term_meta($term_id, '_seopress_robots_index', "yes");
                        }           
                        if ($term_value['wpseo_canonical'] !='') { //Import Canonical URL
                            update_term_meta($term_id, '_seopress_robots_canonical', $term_value['wpseo_canonical']);
                        }
                    }
                }
            }
            $offset = 'done';
            wp_reset_query();
        } else {
            $args = array(  
                'posts_per_page' => $increment,  
                'post_type' => 'any',
                'post_status' => 'any',
                'offset' => $offset, 
            );
            
            $yoast_query = get_posts( $args );
            
            if ($yoast_query) {  
                foreach ($yoast_query as $post) {
                    if (get_post_meta($post->ID, '_yoast_wpseo_title', true) !='') { //Import title tag
                        update_post_meta($post->ID, '_seopress_titles_title', get_post_meta($post->ID, '_yoast_wpseo_title', true));
                    }
                    if (get_post_meta($post->ID, '_yoast_wpseo_metadesc', true) !='') { //Import meta desc
                        update_post_meta($post->ID, '_seopress_titles_desc', get_post_meta($post->ID, '_yoast_wpseo_metadesc', true));
                    }
                    if (get_post_meta($post->ID, '_yoast_wpseo_opengraph-title', true) !='') { //Import Facebook Title
                        update_post_meta($post->ID, '_seopress_social_fb_title', get_post_meta($post->ID, '_yoast_wpseo_opengraph-title', true));
                    }            
                    if (get_post_meta($post->ID, '_yoast_wpseo_opengraph-description', true) !='') { //Import Facebook Desc
                        update_post_meta($post->ID, '_seopress_social_fb_desc', get_post_meta($post->ID, '_yoast_wpseo_opengraph-description', true));
                    }            
                    if (get_post_meta($post->ID, '_yoast_wpseo_opengraph-image', true) !='') { //Import Facebook Image
                        update_post_meta($post->ID, '_seopress_social_fb_img', get_post_meta($post->ID, '_yoast_wpseo_opengraph-image', true));
                    }            
                    if (get_post_meta($post->ID, '_yoast_wpseo_twitter-title', true) !='') { //Import Twitter Title
                        update_post_meta($post->ID, '_seopress_social_twitter_title', get_post_meta($post->ID, '_yoast_wpseo_twitter-title', true));
                    }            
                    if (get_post_meta($post->ID, '_yoast_wpseo_twitter-description', true) !='') { //Import Twitter Desc
                        update_post_meta($post->ID, '_seopress_social_twitter_desc', get_post_meta($post->ID, '_yoast_wpseo_twitter-description', true));
                    }            
                    if (get_post_meta($post->ID, '_yoast_wpseo_twitter-image', true) !='') { //Import Twitter Image
                        update_post_meta($post->ID, '_seopress_social_twitter_img', get_post_meta($post->ID, '_yoast_wpseo_twitter-image', true));
                    }            
                    if (get_post_meta($post->ID, '_yoast_wpseo_meta-robots-noindex', true) =='1') { //Import Robots NoIndex
                        update_post_meta($post->ID, '_seopress_robots_index', "yes");
                    }             
                    if (get_post_meta($post->ID, '_yoast_wpseo_meta-robots-nofollow', true) =='1') { //Import Robots NoFollow
                        update_post_meta($post->ID, '_seopress_robots_follow', "yes");
                    }             
                    if (get_post_meta($post->ID, '_yoast_wpseo_meta-robots-adv', true) !='') { //Import Robots NoOdp, NoImageIndex, NoArchive, NoSnippet
                        $yoast_wpseo_meta_robots_adv = get_post_meta($post->ID, '_yoast_wpseo_meta-robots-adv', true);
                        
                        if (strpos($yoast_wpseo_meta_robots_adv, 'noodp') !== false) {
                        	update_post_meta($post->ID, '_seopress_robots_odp', "yes");
                    	}
                    	if (strpos($yoast_wpseo_meta_robots_adv, 'noimageindex') !== false) {
                        	update_post_meta($post->ID, '_seopress_robots_imageindex', "yes");
                        }
                        if (strpos($yoast_wpseo_meta_robots_adv, 'noarchive') !== false) {
                        	update_post_meta($post->ID, '_seopress_robots_archive', "yes");
                        }
                        if (strpos($yoast_wpseo_meta_robots_adv, 'nosnippet') !== false) {
                        	update_post_meta($post->ID, '_seopress_robots_snippet', "yes");
                        }
                    }            
                    if (get_post_meta($post->ID, '_yoast_wpseo_canonical', true) !='') { //Import Canonical URL
                        update_post_meta($post->ID, '_seopress_robots_canonical', get_post_meta($post->ID, '_yoast_wpseo_canonical', true));
                    }
                    if (get_post_meta($post->ID, '_yoast_wpseo_focuskw', true) !='' || get_post_meta($post->ID, '_yoast_wpseo_focuskeywords', true) !='') { //Import Focus Keywords
                        $y_fkws_clean = array(); //reset array

                        $y_fkws = get_post_meta($post->ID, '_yoast_wpseo_focuskeywords', false);
                        
                        foreach ($y_fkws as $value) {
                            foreach (json_decode($value) as $key => $value) {
                                $y_fkws_clean[] .= $value->keyword;
                            }
                        }

                        $y_fkws_clean[] .= get_post_meta($post->ID, '_yoast_wpseo_focuskw', true);

                        update_post_meta($post->ID, '_seopress_analysis_target_kw', implode(',',$y_fkws_clean));
                    }
                }
            }
            $offset += $increment;
        }
        $data = array();
        $data['offset'] = $offset;
        wp_send_json_success($data);
    	die();
    }
}
add_action('wp_ajax_seopress_yoast_migration', 'seopress_yoast_migration');

///////////////////////////////////////////////////////////////////////////////////////////////////
//AIO migration
///////////////////////////////////////////////////////////////////////////////////////////////////
function seopress_aio_migration() {
    check_ajax_referer( 'seopress_aio_migrate_nonce', $_POST['_ajax_nonce'], true );

    if (current_user_can('manage_options') && is_admin()) { 

        if ( isset( $_POST['offset2']) && isset( $_POST['offset2'] )) {
            $offset2 = absint($_POST['offset2']);
        }
        
        global $wpdb;
        $total_count_posts = (int)$wpdb->get_var( "SELECT count(*) FROM {$wpdb->posts}" );
        
        $increment = 200;
        global $post;
        
        if ($offset2 > $total_count_posts) {
            wp_reset_query();

            $args = array(
                //'number' => $increment,  
                'hide_empty' => false,
                //'offset' => $offset2,
                'fields' => 'ids',
            );
            $aio_query_terms = get_terms($args);

            if ($aio_query_terms) { 
                foreach ($aio_query_terms as $term_id) {
                    if (get_term_meta($term_id, '_aioseop_title', true) !='') { //Import title tag
                        update_term_meta($term_id, '_seopress_titles_title', get_term_meta($term_id, '_aioseop_title', true));
                    }
                    if (get_term_meta($term_id, '_aioseop_description', true) !='') { //Import meta desc
                        update_term_meta($term_id, '_seopress_titles_desc', get_term_meta($term_id, '_aioseop_description', true));
                    }
                    if (get_term_meta($term_id, '_aioseop_opengraph_settings', true) !='') { //Import Facebook / Twitter Title
                        $_aioseop_opengraph_settings = get_term_meta($term_id, '_aioseop_opengraph_settings', true);
                        if (isset($_aioseop_opengraph_settings['aioseop_opengraph_settings_title'])) {
                            update_term_meta($term_id, '_seopress_social_fb_title', $_aioseop_opengraph_settings['aioseop_opengraph_settings_title']);
                            update_term_meta($term_id, '_seopress_social_twitter_title', $_aioseop_opengraph_settings['aioseop_opengraph_settings_title']);
                        }
                    }
                    if (get_term_meta($term_id, '_aioseop_opengraph_settings', true) !='') { //Import Facebook / Twitter Title
                        $_aioseop_opengraph_settings = get_term_meta($term_id, '_aioseop_opengraph_settings', true);
                        if (isset($_aioseop_opengraph_settings['aioseop_opengraph_settings_desc'])) {
                            update_term_meta($term_id, '_seopress_social_fb_desc', $_aioseop_opengraph_settings['aioseop_opengraph_settings_desc']);
                            update_term_meta($term_id, '_seopress_social_twitter_desc', $_aioseop_opengraph_settings['aioseop_opengraph_settings_desc']);
                        }
                    }
                    if (get_term_meta($term_id, '_aioseop_opengraph_settings', true) !='') { //Import Facebook Image
                        $_aioseop_opengraph_settings = get_term_meta($term_id, '_aioseop_opengraph_settings', true);
                        if (isset($_aioseop_opengraph_settings['aioseop_opengraph_settings_image'])) {
                            update_term_meta($term_id, '_seopress_social_fb_img', $_aioseop_opengraph_settings['aioseop_opengraph_settings_customimg']);
                        }
                    }
                    if (get_term_meta($term_id, '_aioseop_opengraph_settings', true) !='') { //Import Twitter Image
                        $_aioseop_opengraph_settings = get_term_meta($term_id, '_aioseop_opengraph_settings', true);
                        if (isset($_aioseop_opengraph_settings['aioseop_opengraph_settings_image'])) {
                            update_term_meta($term_id, '_seopress_social_twitter_img', $_aioseop_opengraph_settings['aioseop_opengraph_settings_customimg_twitter']);
                        }
                    }
                    if (get_term_meta($term_id, '_aioseop_noindex', true) =='on') { //Import Robots NoIndex
                        update_term_meta($term_id, '_seopress_robots_index', "yes");
                    }           
                    if (get_term_meta($term_id, '_aioseop_nofollow', true) =='on') { //Import Robots NoIndex
                        update_term_meta($term_id, '_seopress_robots_follow', "yes");
                    }
                }
            }
            $offset2 = 'done';
            wp_reset_query();
        } else {
            $args = array(  
                'posts_per_page' => $increment,  
                'post_type' => 'any',
                'post_status' => 'any',
                'offset' => $offset2, 
            );
            
            $aio_query = get_posts( $args );
            
            if ($aio_query) {
                foreach ($aio_query as $post) {
                    if (get_post_meta($post->ID, '_aioseop_title', true) !='') { //Import title tag
                        update_post_meta($post->ID, '_seopress_titles_title', get_post_meta($post->ID, '_aioseop_title', true));
                    }
                    if (get_post_meta($post->ID, '_aioseop_description', true) !='') { //Import meta desc
                        update_post_meta($post->ID, '_seopress_titles_desc', get_post_meta($post->ID, '_aioseop_description', true));
                    }
                    if (get_post_meta($post->ID, '_aioseop_opengraph_settings', true) !='') { //Import Facebook / Twitter Title
                        $_aioseop_opengraph_settings = get_post_meta($post->ID, '_aioseop_opengraph_settings', true);
                        if (isset($_aioseop_opengraph_settings['aioseop_opengraph_settings_title'])) {
                            update_post_meta($post->ID, '_seopress_social_fb_title', $_aioseop_opengraph_settings['aioseop_opengraph_settings_title']);
                            update_post_meta($post->ID, '_seopress_social_twitter_title', $_aioseop_opengraph_settings['aioseop_opengraph_settings_title']);
                        }
                    }
                    if (get_post_meta($post->ID, '_aioseop_opengraph_settings', true) !='') { //Import Facebook / Twitter Desc
                        $_aioseop_opengraph_settings = get_post_meta($post->ID, '_aioseop_opengraph_settings', true);
                        if (isset($_aioseop_opengraph_settings['aioseop_opengraph_settings_desc'])) {
                            update_post_meta($post->ID, '_seopress_social_fb_desc', $_aioseop_opengraph_settings['aioseop_opengraph_settings_desc']);
                            update_post_meta($post->ID, '_seopress_social_twitter_desc', $_aioseop_opengraph_settings['aioseop_opengraph_settings_desc']);
                        }
                    }
                    if (get_post_meta($post->ID, '_aioseop_opengraph_settings', true) !='') { //Import Facebook Image
                        $_aioseop_opengraph_settings = get_post_meta($post->ID, '_aioseop_opengraph_settings', true);
                        if (isset($_aioseop_opengraph_settings['aioseop_opengraph_settings_image'])) {
                            update_post_meta($post->ID, '_seopress_social_fb_img', $_aioseop_opengraph_settings['aioseop_opengraph_settings_customimg']);
                        }
                    }
                    if (get_post_meta($post->ID, '_aioseop_opengraph_settings', true) !='') { //Import Twitter Image
                        $_aioseop_opengraph_settings = get_post_meta($post->ID, '_aioseop_opengraph_settings', true);
                        if (isset($_aioseop_opengraph_settings['aioseop_opengraph_settings_customimg_twitter'])) {
                            update_post_meta($post->ID, '_seopress_social_twitter_img', $_aioseop_opengraph_settings['aioseop_opengraph_settings_customimg_twitter']);
                        }
                    }
                    if (get_post_meta($post->ID, '_aioseop_noindex', true) =='on') { //Import Robots NoIndex
                        update_post_meta($post->ID, '_seopress_robots_index', "yes");
                    }
                    if (get_post_meta($post->ID, '_aioseop_nofollow', true) =='on') { //Import Robots NoFollow
                        update_post_meta($post->ID, '_seopress_robots_follow', "yes");
                    }
                }
            }
            $offset2 += $increment;
        }
        $data = array();
        $data['offset2'] = $offset2;
        wp_send_json_success($data);
        die();
    }
}
add_action('wp_ajax_seopress_aio_migration', 'seopress_aio_migration');

///////////////////////////////////////////////////////////////////////////////////////////////////
//SEO Framework migration
///////////////////////////////////////////////////////////////////////////////////////////////////
function seopress_seo_framework_migration() {
    check_ajax_referer( 'seopress_seo_framework_migrate_nonce', $_POST['_ajax_nonce'], true );
    
    if (current_user_can('manage_options') && is_admin()) { 

        if ( isset( $_POST['offset3']) && isset( $_POST['offset3'] )) {
            $offset3 = absint($_POST['offset3']);
        }
        
        global $wpdb;
        $total_count_posts = (int)$wpdb->get_var( "SELECT count(*) FROM {$wpdb->posts}" );
        
        $increment = 200;
        global $post;
        
        if ($offset3 > $total_count_posts) {
            wp_reset_query();

            $args = array(
                //'number' => $increment,  
                'hide_empty' => false,
                //'offset' => $offset3,
                'fields' => 'ids',
            );
            $seo_framework_query_terms = get_terms($args);

            if ($seo_framework_query_terms) { 
                foreach ($seo_framework_query_terms as $term_id) {
                    if (get_term_meta($term_id, 'autodescription-term-settings', true) !='') {
                        $term_settings = get_term_meta($term_id, 'autodescription-term-settings', true);

                        if (!empty($term_settings['doctitle'])) { //Import title tag
                            update_term_meta($term_id, '_seopress_titles_title', $term_settings['doctitle']);
                        }
                        if (!empty($term_settings['description'])) { //Import meta desc
                            update_term_meta($term_id, '_seopress_titles_desc', $term_settings['description']);
                        }
                        if (!empty($term_settings['noindex'])) { //Import Robots NoIndex
                            update_term_meta($term_id, '_seopress_robots_index', "yes");
                        }           
                        if (!empty($term_settings['nofollow'])) { //Import Robots NoFollow
                            update_term_meta($term_id, '_seopress_robots_follow', "yes");
                        }
                        if (!empty($term_settings['noarchive'])) { //Import Robots NoArchive
                            update_term_meta($term_id, '_seopress_robots_archive', "yes");
                        }
                    }
                }
            }
            $offset3 = 'done';
            wp_reset_query();
        } else {
            $args = array(  
                'posts_per_page' => $increment,  
                'post_type' => 'any',
                'post_status' => 'any',
                'offset' => $offset3, 
            );
            
            $seo_framework_query = get_posts( $args );
            
            if ($seo_framework_query) {
                foreach ($seo_framework_query as $post) {
                    if (get_post_meta($post->ID, '_genesis_title', true) !='') { //Import title tag
                        update_post_meta($post->ID, '_seopress_titles_title', get_post_meta($post->ID, '_genesis_title', true));
                    }
                    if (get_post_meta($post->ID, '_genesis_description', true) !='') { //Import meta desc
                        update_post_meta($post->ID, '_seopress_titles_desc', get_post_meta($post->ID, '_genesis_description', true));
                    }
                    if (get_post_meta($post->ID, '_open_graph_title', true) !='') { //Import Facebook Title
                        update_post_meta($post->ID, '_seopress_social_fb_title', get_post_meta($post->ID, '_open_graph_title', true));
                    }            
                    if (get_post_meta($post->ID, '_open_graph_description', true) !='') { //Import Facebook Desc
                        update_post_meta($post->ID, '_seopress_social_fb_desc', get_post_meta($post->ID, '_open_graph_description', true));
                    }            
                    if (get_post_meta($post->ID, '_social_image_url', true) !='') { //Import Facebook Image
                        update_post_meta($post->ID, '_seopress_social_fb_img', get_post_meta($post->ID, '_social_image_url', true));
                    }            
                    if (get_post_meta($post->ID, '_twitter_title', true) !='') { //Import Twitter Title
                        update_post_meta($post->ID, '_seopress_social_twitter_title', get_post_meta($post->ID, '_twitter_title', true));
                    }            
                    if (get_post_meta($post->ID, '_twitter_description', true) !='') { //Import Twitter Desc
                        update_post_meta($post->ID, '_seopress_social_twitter_desc', get_post_meta($post->ID, '_twitter_description', true));
                    }            
                    if (get_post_meta($post->ID, '_social_image_url', true) !='') { //Import Twitter Image
                        update_post_meta($post->ID, '_seopress_social_twitter_img', get_post_meta($post->ID, '_social_image_url', true));
                    }            
                    if (get_post_meta($post->ID, '_genesis_noindex', true) =='1') { //Import Robots NoIndex
                        update_post_meta($post->ID, '_seopress_robots_index', "yes");
                    }             
                    if (get_post_meta($post->ID, '_genesis_nofollow', true) =='1') { //Import Robots NoFollow
                        update_post_meta($post->ID, '_seopress_robots_follow', "yes");
                    }             
                    if (get_post_meta($post->ID, '_genesis_noarchive', true) =='1') { //Import Robots NoArchive
                        update_post_meta($post->ID, '_seopress_robots_archive', "yes");
                    }            
                    if (get_post_meta($post->ID, '_genesis_canonical_uri', true) !='') { //Import Canonical URL
                        update_post_meta($post->ID, '_seopress_robots_canonical', get_post_meta($post->ID, '_genesis_canonical_uri', true));
                    }
                    if (get_post_meta($post->ID, 'redirect', true) !='') { //Import Redirect URL
                        update_post_meta($post->ID, '_seopress_redirections_enabled', 'yes');
                        update_post_meta($post->ID, '_seopress_redirections_type', '301');
                        update_post_meta($post->ID, '_seopress_redirections_value', get_post_meta($post->ID, 'redirect', true));
                    }
                }
            }
            $offset3 += $increment;
        }
        $data = array();
        $data['offset3'] = $offset3;
        wp_send_json_success($data);
        die();
    }
}
add_action('wp_ajax_seopress_seo_framework_migration', 'seopress_seo_framework_migration');

///////////////////////////////////////////////////////////////////////////////////////////////////
//RK migration
///////////////////////////////////////////////////////////////////////////////////////////////////
function seopress_rk_migration() {
    check_ajax_referer( 'seopress_rk_migrate_nonce', $_POST['_ajax_nonce'], true );

    if (current_user_can('manage_options') && is_admin()) { 

        if ( isset( $_POST['offset4']) && isset( $_POST['offset4'] )) {
            $offset4 = absint($_POST['offset4']);
        }
        
        global $wpdb;
        $total_count_posts = (int)$wpdb->get_var( "SELECT count(*) FROM {$wpdb->posts}" );
        
        $increment = 200;
        global $post;
        
        if ($offset4 > $total_count_posts) {
            wp_reset_query();

            $args = array(
                //'number' => $increment,  
                'hide_empty' => false,
                //'offset' => $offset4,
                'fields' => 'ids',
            );
            $rk_query_terms = get_terms($args);

            if ($rk_query_terms) { 
                foreach ($rk_query_terms as $term_id) {
                    if (get_term_meta($term_id, 'rank_math_title', true) !='') { //Import title tag
                        update_term_meta($term_id, '_seopress_titles_title', get_term_meta($term_id, 'rank_math_title', true));
                    }
                    if (get_term_meta($term_id, 'rank_math_description', true) !='') { //Import title desc
                        update_term_meta($term_id, '_seopress_titles_desc', get_term_meta($term_id, 'rank_math_description', true));
                    }
                    if (get_term_meta($term_id, 'rank_math_facebook_title', true) !='') { //Import Facebook Title
                        update_term_meta($term_id, '_seopress_social_fb_title', get_term_meta($term_id, 'rank_math_facebook_title', true));
                    }            
                    if (get_term_meta($term_id, 'rank_math_facebook_description', true) !='') { //Import Facebook Desc
                        update_term_meta($term_id, '_seopress_social_fb_desc', get_term_meta($term_id, 'rank_math_facebook_description', true));
                    }            
                    if (get_term_meta($term_id, 'rank_math_facebook_image', true) !='') { //Import Facebook Image
                        update_term_meta($term_id, '_seopress_social_fb_img', get_term_meta($term_id, 'rank_math_facebook_image', true));
                    }            
                    if (get_term_meta($term_id, 'rank_math_twitter_title', true) !='') { //Import Twitter Title
                        update_term_meta($term_id, '_seopress_social_twitter_title', get_term_meta($term_id, 'rank_math_twitter_title', true));
                    }            
                    if (get_term_meta($term_id, 'rank_math_twitter_description', true) !='') { //Import Twitter Desc
                        update_term_meta($term_id, '_seopress_social_twitter_desc', get_term_meta($term_id, 'rank_math_twitter_description', true));
                    }            
                    if (get_term_meta($term_id, 'rank_math_twitter_image', true) !='') { //Import Twitter Image
                        update_term_meta($term_id, '_seopress_social_twitter_img', get_term_meta($term_id, 'rank_math_twitter_image', true));
                    }                      
                    if (get_term_meta($term_id, 'rank_math_robots', true) !='') { //Import Robots NoIndex, NoFollow, NoOdp, NoImageIndex, NoArchive, NoSnippet
                        $rank_math_robots = get_term_meta($term_id, 'rank_math_robots', true);
                        
                        if (in_array('noindex', $rank_math_robots)) {
                            update_term_meta($term_id, '_seopress_robots_index', "yes");
                        }
                        if (in_array('nofollow', $rank_math_robots)) {
                            update_term_meta($term_id, '_seopress_robots_follow', "yes");
                        }
                        if (in_array('noodp', $rank_math_robots)) {
                            update_term_meta($term_id, '_seopress_robots_odp', "yes");
                        }
                        if (in_array('noimageindex', $rank_math_robots)) {
                            update_term_meta($term_id, '_seopress_robots_imageindex', "yes");
                        }
                        if (in_array('noarchive', $rank_math_robots)) {
                            update_term_meta($term_id, '_seopress_robots_archive', "yes");
                        }
                        if (in_array('nosnippet', $rank_math_robots)) {
                            update_term_meta($term_id, '_seopress_robots_snippet', "yes");
                        }
                    }            
                    if (get_term_meta($term_id, 'rank_math_canonical_url', true) !='') { //Import Canonical URL
                        update_term_meta($term_id, '_seopress_robots_canonical', get_term_meta($term_id, 'rank_math_canonical_url', true));
                    }
                    if (get_term_meta($term_id, 'rank_math_focus_keyword', true) !='') { //Import Focus Keywords
                        update_term_meta($term_id, '_seopress_analysis_target_kw', get_term_meta($term_id, 'rank_math_focus_keyword', true));
                    }
                   
                    
                }
            }
            $offset4 = 'done';
            wp_reset_query();
        } else {
            $args = array(  
                'posts_per_page' => $increment,
                'post_type' => 'any',
                'post_status' => 'any',
                'offset' => $offset4,
            );
            
            $rk_query = get_posts( $args );
            
            if ($rk_query) {  
                foreach ($rk_query as $post) {
                    if (get_post_meta($post->ID, 'rank_math_title', true) !='') { //Import title tag
                        update_post_meta($post->ID, '_seopress_titles_title', get_post_meta($post->ID, 'rank_math_title', true));
                    }
                    if (get_post_meta($post->ID, 'rank_math_description', true) !='') { //Import meta desc
                        update_post_meta($post->ID, '_seopress_titles_desc', get_post_meta($post->ID, 'rank_math_description', true));
                    }
                    if (get_post_meta($post->ID, 'rank_math_facebook_title', true) !='') { //Import Facebook Title
                        update_post_meta($post->ID, '_seopress_social_fb_title', get_post_meta($post->ID, 'rank_math_facebook_title', true));
                    }            
                    if (get_post_meta($post->ID, 'rank_math_facebook_description', true) !='') { //Import Facebook Desc
                        update_post_meta($post->ID, '_seopress_social_fb_desc', get_post_meta($post->ID, 'rank_math_facebook_description', true));
                    }            
                    if (get_post_meta($post->ID, 'rank_math_facebook_image', true) !='') { //Import Facebook Image
                        update_post_meta($post->ID, '_seopress_social_fb_img', get_post_meta($post->ID, 'rank_math_facebook_image', true));
                    }            
                    if (get_post_meta($post->ID, 'rank_math_twitter_title', true) !='') { //Import Twitter Title
                        update_post_meta($post->ID, '_seopress_social_twitter_title', get_post_meta($post->ID, 'rank_math_twitter_title', true));
                    }            
                    if (get_post_meta($post->ID, 'rank_math_twitter_description', true) !='') { //Import Twitter Desc
                        update_post_meta($post->ID, '_seopress_social_twitter_desc', get_post_meta($post->ID, 'rank_math_twitter_description', true));
                    }            
                    if (get_post_meta($post->ID, 'rank_math_twitter_image', true) !='') { //Import Twitter Image
                        update_post_meta($post->ID, '_seopress_social_twitter_img', get_post_meta($post->ID, 'rank_math_twitter_image', true));
                    }                      
                    if (get_post_meta($post->ID, 'rank_math_robots', true) !='') { //Import Robots NoIndex, NoFollow, NoOdp, NoImageIndex, NoArchive, NoSnippet
                        $rank_math_robots = get_post_meta($post->ID, 'rank_math_robots', true);
                        
                        if (in_array('noindex', $rank_math_robots)) {
                            update_post_meta($post->ID, '_seopress_robots_index', "yes");
                        }
                        if (in_array('nofollow', $rank_math_robots)) {
                            update_post_meta($post->ID, '_seopress_robots_follow', "yes");
                        }
                        if (in_array('noodp', $rank_math_robots)) {
                            update_post_meta($post->ID, '_seopress_robots_odp', "yes");
                        }
                        if (in_array('noimageindex', $rank_math_robots)) {
                            update_post_meta($post->ID, '_seopress_robots_imageindex', "yes");
                        }
                        if (in_array('noarchive', $rank_math_robots)) {
                            update_post_meta($post->ID, '_seopress_robots_archive', "yes");
                        }
                        if (in_array('nosnippet', $rank_math_robots)) {
                            update_post_meta($post->ID, '_seopress_robots_snippet', "yes");
                        }
                    }            
                    if (get_post_meta($post->ID, 'rank_math_canonical_url', true) !='') { //Import Canonical URL
                        update_post_meta($post->ID, '_seopress_robots_canonical', get_post_meta($post->ID, 'rank_math_canonical_url', true));
                    }
                    if (get_post_meta($post->ID, 'rank_math_focus_keyword', true) !='') { //Import Focus Keywords
                        update_post_meta($post->ID, '_seopress_analysis_target_kw', get_post_meta($post->ID, 'rank_math_focus_keyword', true));
                    }
                }
            }
            $offset4 += $increment;
        }
        $data = array();
        $data['offset4'] = $offset4;
        wp_send_json_success($data);
        die();
    }
}
add_action('wp_ajax_seopress_rk_migration', 'seopress_rk_migration');

///////////////////////////////////////////////////////////////////////////////////////////////////
//Squirrly migration
///////////////////////////////////////////////////////////////////////////////////////////////////
function seopress_squirrly_migration() {
    check_ajax_referer( 'seopress_squirrly_migrate_nonce', $_POST['_ajax_nonce'], true );

    if (current_user_can('manage_options') && is_admin()) { 

        if ( isset( $_POST['offset5']) && isset( $_POST['offset5'] )) {
            $offset5 = absint($_POST['offset5']);
        }
        
        global $wpdb;
        $table_name = $wpdb->prefix . 'qss';
        $blog_id = get_current_blog_id();

        $count_query = $wpdb->get_results( "SELECT * FROM $table_name WHERE blog_id = $blog_id", ARRAY_A );

        if (!empty($count_query)) {
            foreach($count_query as $value) {
                $post_id = url_to_postid($value['URL']);

                if ($post_id !=0 && !empty($value['seo'])) {
                    $seo = maybe_unserialize($value['seo']);

                    if ($seo['title'] !='') { //Import title tag
                        update_post_meta($post_id, '_seopress_titles_title', $seo['title']);
                    }
                    if ($seo['description'] !='') { //Import description tag
                        update_post_meta($post_id, '_seopress_titles_desc', $seo['description']);
                    }
                    if ($seo['og_title'] !='') { //Import Facebook Title
                        update_post_meta($post_id, '_seopress_social_fb_title', $seo['og_title']);
                    }
                    if ($seo['og_description'] !='') { //Import Facebook Desc
                        update_post_meta($post_id, '_seopress_social_fb_desc', $seo['og_description']);
                    }
                    if ($seo['og_media'] !='') { //Import Facebook Image
                        update_post_meta($post_id, '_seopress_social_fb_img', $seo['og_media']);
                    }
                    if ($seo['tw_title'] !='') { //Import Twitter Title
                        update_post_meta($post_id, '_seopress_social_twitter_title', $seo['tw_title']);
                    }
                    if ($seo['tw_description'] !='') { //Import Twitter Desc
                        update_post_meta($post_id, '_seopress_social_twitter_desc', $seo['tw_description']);
                    }
                    if ($seo['tw_media'] !='') { //Import Twitter Image
                        update_post_meta($post_id, '_seopress_social_twitter_img', $seo['tw_media']);
                    }
                    if ($seo['noindex'] === 1) { //Import noindex
                        update_post_meta($post_id, '_seopress_robots_index', 'yes');
                    }
                    if ($seo['nofollow'] === 1) { //Import nofollow
                        update_post_meta($post_id, '_seopress_robots_follow', 'yes');
                    }
                    if ($seo['canonical'] !='') { //Import canonical
                        update_post_meta($post_id, '_seopress_robots_canonical', $seo['canonical']);
                    }
                }
            }
            $offset5 = 'done';
        }
        $data = array();
        $data['offset5'] = $offset5;
        wp_send_json_success($data);
        die();
    }
}
add_action('wp_ajax_seopress_squirrly_migration', 'seopress_squirrly_migration');

///////////////////////////////////////////////////////////////////////////////////////////////////
//Export SEOPress metadata to CSV
///////////////////////////////////////////////////////////////////////////////////////////////////
function seopress_metadata_export() {
    check_ajax_referer( 'seopress_export_csv_metadata_nonce', $_POST['_ajax_nonce'], true );

    if (current_user_can('manage_options') && is_admin()) {

        if ( isset( $_POST['offset6']) && isset( $_POST['offset6'] )) {
            $offset6 = absint($_POST['offset6']);
        }

        $seopress_get_post_types = array();
        foreach (seopress_get_post_types() as $seopress_cpt_key => $seopress_cpt_value) {
            $seopress_get_post_types[] = $seopress_cpt_key;
        }

        global $wpdb;
        global $post;

        $total_count_posts = (int)$wpdb->get_var( "SELECT count(*) FROM {$wpdb->posts}" );

        $increment = 200;

        $csv = '';
        $csv = get_option('seopress_metadata_csv');
        $download_url = '';

        $settings["id"] = array();
        $settings["post_title"] = array();
        $settings["url"] = array();
        $settings["meta_title"] = array();
        $settings["meta_desc"] = array();
        $settings["fb_title"] = array();
        $settings["fb_desc"] = array();
        $settings["fb_img"] = array();
        $settings["tw_title"] = array();
        $settings["tw_desc"] = array();
        $settings["tw_img"] = array();
        $settings["noindex"] = array();
        $settings["nofollow"] = array();
        $settings["noodp"] = array();
        $settings["noimageindex"] = array();
        $settings["noarchive"] = array();
        $settings["nosnippet"] = array();
        $settings["canonical_url"] = array();
        $settings["target_kw"] = array();

        if ($offset6 > $total_count_posts) {
            wp_reset_query();
            
            update_option('seopress_metadata_csv', $csv);

            $args = array_merge( $_POST, array(
                'nonce'      => wp_create_nonce( 'seopress_csv_batch_export_nonce' ),
                'page' => 'seopress-import-export',
                'seopress_action' => 'seopress_download_batch_export',
            ) );

            $download_url = add_query_arg( $args, admin_url('admin.php') );

            $offset6 = 'done';
        } else {
            $args = array(
                'post_type' => $seopress_get_post_types,
                'posts_per_page' => $increment,
                'offset' => $offset6,
                'post_status' => 'any',
                'order' => 'DESC',
                'orderby' => 'date',
            );
            $args = apply_filters( 'seopress_metadata_query_args', $args, $seopress_get_post_types, $increment, $offset6 );
            $meta_query = get_posts( $args );

            if ($meta_query) {
                // The Loop
                foreach ($meta_query as $post) {
                    array_push($settings["id"], $post->ID);
                    
                    array_push($settings["post_title"], $post->post_title);
                    
                    array_push($settings["url"], get_permalink($post));

                    array_push($settings["meta_title"], get_post_meta( $post->ID, '_seopress_titles_title', true ));
                    
                    array_push($settings["meta_desc"], get_post_meta( $post->ID, '_seopress_titles_desc', true ));
                    
                    array_push($settings["fb_title"], get_post_meta( $post->ID, '_seopress_social_fb_title', true ));

                    array_push($settings["fb_desc"], get_post_meta( $post->ID, '_seopress_social_fb_desc', true ));

                    array_push($settings["fb_img"], get_post_meta( $post->ID, '_seopress_social_fb_img', true ));

                    array_push($settings["tw_title"], get_post_meta( $post->ID, '_seopress_social_twitter_title', true ));
                    
                    array_push($settings["tw_desc"], get_post_meta( $post->ID, '_seopress_social_twitter_desc', true ));
                    
                    array_push($settings["tw_img"], get_post_meta( $post->ID, '_seopress_social_twitter_img', true ));
                    
                    array_push($settings["noindex"], get_post_meta( $post->ID, '_seopress_robots_index', true ));

                    array_push($settings["nofollow"], get_post_meta( $post->ID, '_seopress_robots_follow', true ));

                    array_push($settings["noodp"], get_post_meta( $post->ID, '_seopress_robots_odp', true ));

                    array_push($settings["noimageindex"], get_post_meta( $post->ID, '_seopress_robots_imageindex', true ));

                    array_push($settings["noarchive"], get_post_meta( $post->ID, '_seopress_robots_archive', true ));

                    array_push($settings["nosnippet"], get_post_meta( $post->ID, '_seopress_robots_snippet', true ));

                    array_push($settings["canonical_url"], get_post_meta( $post->ID, '_seopress_robots_canonical', true ));

                    array_push($settings["target_kw"], get_post_meta( $post->ID, '_seopress_analysis_target_kw', true ));

                    $csv[] = array_merge($settings["id"],$settings["post_title"],$settings["url"],$settings["meta_title"],$settings["meta_desc"],$settings["fb_title"],$settings["fb_desc"],$settings["fb_img"],$settings["tw_title"],$settings["tw_desc"],$settings["tw_img"],$settings["noindex"],$settings["nofollow"],$settings["noodp"],$settings["noimageindex"],$settings["noarchive"],$settings["nosnippet"],$settings["canonical_url"],$settings["target_kw"]);

                    //Clean arrays
                    $settings["id"] = array();
                    $settings["post_title"] = array();
                    $settings["url"] = array();
                    $settings["meta_title"] = array();
                    $settings["meta_desc"] = array();
                    $settings["fb_title"] = array();
                    $settings["fb_desc"] = array();
                    $settings["fb_img"] = array();
                    $settings["tw_title"] = array();
                    $settings["tw_desc"] = array();
                    $settings["tw_img"] = array();
                    $settings["noindex"] = array();
                    $settings["nofollow"] = array();
                    $settings["noodp"] = array();
                    $settings["noimageindex"] = array();
                    $settings["noarchive"] = array();
                    $settings["nosnippet"] = array();
                    $settings["canonical_url"] = array();
                    $settings["target_kw"] = array();

                }
            }
            $offset6 += $increment;
            update_option('seopress_metadata_csv', $csv);
        }

        $data = array();
        $data['offset6'] = $offset6;
        $data['url'] = $download_url;
        wp_send_json_success($data);

        die();
    }
}
add_action('wp_ajax_seopress_metadata_export', 'seopress_metadata_export');

Zerion Mini Shell 1.0