Server IP : 162.0.217.223 / Your IP : 216.73.216.153 Web Server : LiteSpeed System : Linux premium269.web-hosting.com 4.18.0-553.lve.el8.x86_64 #1 SMP Mon May 27 15:27:34 UTC 2024 x86_64 User : mypckeys ( 1539) PHP Version : 8.1.33 Disable Function : NONE MySQL : OFF | cURL : ON | WGET : ON | Perl : ON | Python : ON | Sudo : OFF | Pkexec : OFF Directory : /home/mypckeys/yeslicense.org/wp-content/plugins/squirrly-seo/models/ |
Upload File : |
<?php defined( 'ABSPATH' ) || die( 'Cheatin\' uh?' ); class SQ_Models_ImportExport { public function __construct() { add_filter( 'sq_themes', array( $this, 'getAvailableThemes' ), 10, 1 ); add_filter( 'sq_importList', array( $this, 'importList' ) ); } public function importList() { if ( $list = SQ_Classes_Helpers_Tools::getOption( 'importList' ) ) { return $list; } $themes = array( 'builder' => array( 'title' => '_builder_seo_title', 'description' => '_builder_seo_description', 'keywords' => '_builder_seo_keywords', ), 'catalyst' => array( 'title' => '_catalyst_title', 'description' => '_catalyst_description', 'keywords' => '_catalyst_keywords', 'noindex' => '_catalyst_noindex', 'nofollow' => '_catalyst_nofollow', 'noarchive' => '_catalyst_noarchive', ), 'frugal' => array( 'title' => '_title', 'description' => '_description', 'keywords' => '_keywords', 'noindex' => '_noindex', 'nofollow' => '_nofollow', ), 'genesis' => array( 'title' => '_genesis_title', 'description' => '_genesis_description', 'keywords' => '_genesis_keywords', 'noindex' => '_genesis_noindex', 'nofollow' => '_genesis_nofollow', 'noarchive' => '_genesis_noarchive', 'canonical' => '_genesis_canonical_uri', 'redirect' => 'redirect', ), 'headway' => array( 'title' => '_title', 'description' => '_description', 'keywords' => '_keywords', ), 'hybrid' => array( 'title' => 'Title', 'description' => 'Description', 'keywords' => 'Keywords', ), 'thesis' => array( 'title' => 'thesis_title', 'description' => 'thesis_description', 'keywords' => 'thesis_keywords', 'redirect' => 'thesis_redirect', ), 'wooframework' => array( 'title' => 'seo_title', 'description' => 'seo_description', 'keywords' => 'seo_keywords', ), ); $plugins = array( 'add-meta-tags' => array( 'title' => '_amt_title', 'description' => '_amt_description', 'keywords' => '_amt_keywords', ), 'gregs-high-performance-seo' => array( 'title' => '_ghpseo_secondary_title', 'description' => '_ghpseo_alternative_description', 'keywords' => '_ghpseo_keywords', ), 'headspace2' => array( 'title' => '_headspace_page_title', 'description' => '_headspace_description', 'keywords' => '_headspace_keywords', ), 'platinum-seo-pack' => array( 'title' => 'title', 'description' => 'description', 'keywords' => 'keywords', ), 'seo-pressor' => array( 'title' => '_seopressor_meta_title', 'description' => '_seopressor_meta_description', ), 'wp-seopress' => array( 'title' => '_seopress_titles_title', 'description' => '_seopress_titles_desc', 'keywords' => '_seopress_analysis_target_kw', 'canonical' => '_seopress_robots_canonical', 'og_title' => '_seopress_social_fb_title', 'og_description' => '_seopress_social_fb_desc', 'og_media' => '_seopress_social_fb_img', 'tw_title' => '_seopress_social_twitter_title', 'tw_description' => '_seopress_social_twitter_desc', 'tw_media' => '_seopress_social_twitter_img', 'redirect' => '_seopress_redirections_value', 'redirect_type' => '_seopress_redirections_type', 'noindex' => '_seopress_robots_index', 'nofollow' => '_seopress_robots_follow', ), 'seo-title-tag' => array( 'Custom Doctitle' => 'title_tag', 'META Description' => 'meta_description', ), 'seo-ultimate' => array( 'title' => '_su_title', 'description' => '_su_description', 'keywords' => '_su_keywords', 'noindex' => '_su_meta_robots_noindex', 'nofollow' => '_su_meta_robots_nofollow', ), 'seo-by-rank-math' => array( 'title' => 'rank_math_title', 'description' => 'rank_math_description', 'keywords' => 'rank_math_focus_keyword', 'canonical' => 'rank_math_canonical_url', 'og_title' => 'rank_math_facebook_title', 'og_description' => 'rank_math_facebook_description', 'og_media' => 'rank_math_facebook_image', 'tw_title' => 'rank_math_twitter_title', 'tw_description' => 'rank_math_twitter_description', 'tw_media' => 'rank_math_twitter_image', 'robots' => 'rank_math_robots' ), 'wordpress-seo' => array( 'title' => '_yoast_wpseo_title', 'description' => '_yoast_wpseo_metadesc', 'keywords' => '_yoast_wpseo_focuskw', 'noindex' => '_yoast_wpseo_meta-robots-noindex', 'nofollow' => '_yoast_wpseo_meta-robots-nofollow', 'robots' => '_yoast_wpseo_meta-robots-adv', 'canonical' => '_yoast_wpseo_canonical', 'redirect' => '_yoast_wpseo_redirect', 'focuspage' => 'yst_is_cornerstone', 'og_title' => '_yoast_wpseo_opengraph-title', 'og_description' => '_yoast_wpseo_opengraph-description', 'og_media' => '_yoast_wpseo_opengraph-image', 'tw_title' => '_yoast_wpseo_twitter-title', 'tw_description' => '_yoast_wpseo_twitter-description', 'tw_media' => '_yoast_wpseo_twitter-image', 'primary_category' => '_yoast_wpseo_primary_category', ), 'all-in-one-seo-pack' => array( 'title' => '_aioseo_title', 'description' => '_aioseo_description', 'keywords' => '_aioseo_keywords', 'noindex' => '_aioseo_noindex', 'nofollow' => '_aioseo_nofollow', 'canonical' => '_aioseo_custom_link', 'og_title' => '_aioseo_og_title', 'og_description' => '_aioseo_og_description', 'tw_title' => '_aioseo_twitter_title', 'tw_description' => '_aioseo_twitter_description', ), 'autodescription' => array( 'title' => '_genesis_title', 'description' => '_genesis_description', 'noindex' => '_genesis_noindex', 'nofollow' => '_genesis_nofollow', 'canonical' => '_genesis_canonical_uri', 'og_title' => '_open_graph_title', 'og_description' => '_open_graph_description', 'og_media' => '_social_image_url', 'tw_title' => '_twitter_title', 'tw_description' => '_twitter_description', 'redirect' => 'redirect', 'redirect_type' => '301', ), ); $themes = apply_filters( 'sq_themes', $themes ); $plugins = apply_filters( 'sq_plugins', $plugins ); $list = array_merge( (array) $plugins, (array) $themes ); return $list; } /** * Get the actual name of the plugin/theme * * @param $path * * @return string */ public function getName( $path ) { switch ( $path ) { case 'wordpress-seo': return 'Yoast SEO'; case 'wp-seopress': return 'SEO Press'; case 'seo-by-rank-math': return 'Rank Math'; case 'autodescription': return 'SEO Framework'; default: return ucwords( str_replace( '-', ' ', $path ) ); } } /** * Rename all the plugin names with a hash */ public function getAvailablePlugins( $plugins ) { $found = array(); $all_plugins = (array) get_option( 'active_plugins', array() ); $plugins = array_keys( $plugins ); if ( is_multisite() ) { $all_plugins = array_merge( $all_plugins, array_keys( (array) get_site_option( 'active_sitewide_plugins' ) ) ); } foreach ( $all_plugins as $plugin ) { if ( strpos( $plugin, '/' ) !== false ) { $plugin = substr( $plugin, 0, strpos( $plugin, '/' ) ); } if ( in_array( $plugin, $plugins ) ) { $found[ $plugin ] = $plugin; } } return $found; } public function getActivePlugins( $plugins ) { $found = array(); $all_plugins = get_option( 'active_plugins' ); foreach ( $all_plugins as $plugin ) { if ( strpos( $plugin, '/' ) !== false ) { $plugin = substr( $plugin, 0, strpos( $plugin, '/' ) ); } if ( isset( $plugins[ $plugin ] ) ) { $found[ $plugin ] = $plugins[ $plugin ]; } } return $found; } /** * Rename all the themes name with a hash */ public function getAvailableThemes( $themes ) { $found = array(); $all_themes = search_theme_directories(); foreach ( $all_themes as $theme => $value ) { if ( isset( $themes[ $theme ] ) ) { $found[] = $themes[ $theme ]; } } return $found; } /** * @param $platform * * @return boolean */ public function importDBSettings( $platform ) { $imported = false; $platforms = apply_filters( 'sq_importList', false ); if ( $platform <> '' && isset( $platforms[ $platform ] ) ) { if ( $platform == 'wordpress-seo' ) { if ( $yoast_socials = get_option( 'wpseo_social' ) ) { $socials = SQ_Classes_Helpers_Tools::getOption( 'socials' ); $codes = SQ_Classes_Helpers_Tools::getOption( 'codes' ); foreach ( $yoast_socials as $key => $yoast_social ) { if ( $yoast_social <> '' && isset( $socials[ $key ] ) ) { $socials[ $key ] = $yoast_social; } } if ( ! empty( $socials ) ) { if ( isset( $yoast_socials['plus-publisher'] ) && $yoast_socials['plus-publisher'] <> '' ) { $socials['plus_publisher'] = $yoast_socials['plus-publisher']; } if ( isset( $yoast_socials['pinterestverify'] ) && $yoast_socials['pinterestverify'] <> '' ) { $codes['pinterest_verify'] = $yoast_socials['pinterestverify']; } SQ_Classes_Helpers_Tools::saveOptions( 'socials', $socials ); SQ_Classes_Helpers_Tools::saveOptions( 'codes', $codes ); $imported = true; } } if ( $yoast_titles = get_option( 'wpseo_titles' ) ) { $jsonld = SQ_Classes_Helpers_Tools::getOption( 'sq_jsonld' ); if ( isset( $yoast_titles['company_logo'] ) && $yoast_titles['company_logo'] <> '' ) { $jsonld['Organization']['logo'] = $yoast_titles['company_logo']; } if ( isset( $yoast_titles['person_logo'] ) && $yoast_titles['person_logo'] <> '' ) { $jsonld['Person']['image']['url'] = $yoast_titles['person_logo']; } if ( isset( $yoast_titles['company_name'] ) && $yoast_titles['company_name'] <> '' ) { $jsonld['Organization']['name'] = $yoast_titles['company_name']; } if ( isset( $yoast_titles['company_or_person'] ) && $yoast_titles['company_or_person'] == 'person' ) { SQ_Classes_Helpers_Tools::saveOptions( 'sq_jsonld_type', 'Person' ); if ( isset( $yoast_titles['company_or_person_user_id'] ) && (int) $yoast_titles['company_or_person_user_id'] > 0 ) { $user = get_userdata( (int) $yoast_titles['company_or_person_user_id'] ); if ( $user && isset( $user->display_name ) ) { $jsonld['Person']['name'] = $user->display_name; } } } SQ_Classes_Helpers_Tools::saveOptions( 'sq_jsonld', $jsonld ); } if ( $yoast_codes = get_option( 'wpseo' ) ) { $codes = SQ_Classes_Helpers_Tools::getOption( 'codes' ); if ( ! empty( $codes ) ) { if ( isset( $yoast_codes['msverify'] ) && $yoast_codes['msverify'] <> '' ) { $codes['bing_wt'] = $yoast_codes['msverify']; } if ( isset( $yoast_codes['googleverify'] ) && $yoast_codes['googleverify'] <> '' ) { $codes['google_wt'] = $yoast_codes['googleverify']; } SQ_Classes_Helpers_Tools::saveOptions( 'codes', $codes ); $imported = true; } } } if ( $platform == 'all-in-one-seo-pack' ) { if ( $options = get_option( 'aioseo_options' ) ) { $options = json_decode( $options, true ); $socials = SQ_Classes_Helpers_Tools::getOption( 'socials' ); $codes = SQ_Classes_Helpers_Tools::getOption( 'codes' ); if ( isset( $options['social']['profiles']['urls']['facebookPageUrl'] ) && $options['social']['profiles']['urls']['facebookPageUrl'] <> '' ) { $socials['facebook_site'] = $options['social']['profiles']['urls']['facebookPageUrl']; } if ( isset( $options['social']['profiles']['urls']['twitterUrl'] ) && $options['social']['profiles']['urls']['twitterUrl'] <> '' ) { $socials['twitter_site'] = $options['social']['profiles']['urls']['twitterUrl']; } if ( isset( $options['social']['profiles']['urls']['instagramUrl'] ) && $options['social']['profiles']['urls']['instagramUrl'] <> '' ) { $socials['instagram_url'] = $options['social']['profiles']['urls']['instagramUrl']; } if ( isset( $options['social']['profiles']['urls']['pinterestUrl'] ) && $options['social']['profiles']['urls']['pinterestUrl'] <> '' ) { $socials['pinterest_url'] = $options['social']['profiles']['urls']['pinterestUrl']; } if ( isset( $options['social']['profiles']['urls']['youtubeUrl'] ) && $options['social']['profiles']['urls']['youtubeUrl'] <> '' ) { $socials['youtube_url'] = $options['social']['profiles']['urls']['youtubeUrl']; } if ( isset( $options['social']['profiles']['urls']['linkedinUrl'] ) && $options['social']['profiles']['urls']['linkedinUrl'] <> '' ) { $socials['linkedin_url'] = $options['social']['profiles']['urls']['linkedinUrl']; } if ( isset( $options['social']['profiles']['urls']['myspace_url'] ) && $options['social']['profiles']['urls']['myspace_url'] <> '' ) { $socials['myspaceUrl'] = $options['social']['profiles']['urls']['myspace_url']; } if ( isset( $options['social']['facebook']['general']['defaultImagePosts'] ) && $options['social']['facebook']['general']['defaultImagePosts'] <> '' ) { SQ_Classes_Helpers_Tools::saveOptions( 'sq_og_image', $options['social']['facebook']['general']['defaultImagePosts'] ); } if ( isset( $options['social']['twitter']['general']['defaultImagePosts'] ) && $options['social']['twitter']['general']['defaultImagePosts'] <> '' ) { SQ_Classes_Helpers_Tools::saveOptions( 'sq_og_image', $options['social']['twitter']['general']['defaultImagePosts'] ); } $jsonld = SQ_Classes_Helpers_Tools::getOption( 'sq_jsonld' ); if ( isset( $options['searchAppearance']['global']['schema']['organizationName'] ) && $options['searchAppearance']['global']['schema']['organizationName'] <> '' ) { $jsonld['Organization']['name'] = $options['searchAppearance']['global']['schema']['organizationName']; } if ( isset( $options['searchAppearance']['global']['schema']['organizationLogo'] ) && $options['searchAppearance']['global']['schema']['organizationLogo'] <> '' ) { $jsonld['Organization']['logo'] = $options['searchAppearance']['global']['schema']['organizationLogo']; } if ( isset( $options['searchAppearance']['global']['schema']['phone'] ) && $options['searchAppearance']['global']['schema']['phone'] <> '' ) { $jsonld['Organization']['contactPoint']['telephone'] = $options['searchAppearance']['global']['schema']['phone']; } if ( isset( $options['searchAppearance']['global']['schema']['contactType'] ) && $options['searchAppearance']['global']['schema']['contactType'] <> '' ) { $jsonld['Organization']['contactPoint']['contactType'] = $options['searchAppearance']['global']['schema']['contactType']; } if ( isset( $options['searchAppearance']['global']['schema']['personName'] ) && $options['searchAppearance']['global']['schema']['personName'] <> '' ) { $jsonld['Person']['name'] = $options['searchAppearance']['global']['schema']['personName']; } if ( isset( $options['searchAppearance']['global']['schema']['personLogo'] ) && $options['searchAppearance']['global']['schema']['personLogo'] <> '' ) { $jsonld['Person']['image']['url'] = $options['searchAppearance']['global']['schema']['personLogo']; } if ( isset( $options['webmasterTools']['bing'] ) && $options['webmasterTools']['bing'] <> '' ) { $codes['bing_wt'] = $options['webmasterTools']['bing']; } if ( isset( $options['webmasterTools']['pinterest'] ) && $options['webmasterTools']['pinterest'] <> '' ) { $codes['pinterest_verify'] = $options['webmasterTools']['pinterest']; } if ( isset( $options['webmasterTools']['google'] ) && $options['webmasterTools']['google'] <> '' ) { $codes['google_analytics'] = $options['webmasterTools']['google']; } if ( isset( $options['webmasterTools']['yandex'] ) && $options['webmasterTools']['yandex'] <> '' ) { $codes['yandex_wt'] = $options['webmasterTools']['yandex']; } if ( isset( $options['webmasterTools']['baidu'] ) && $options['webmasterTools']['baidu'] <> '' ) { $codes['baidu_wt'] = $options['webmasterTools']['baidu']; } if ( isset( $options['webmasterTools']['norton'] ) && $options['webmasterTools']['norton'] <> '' ) { $codes['norton_verify'] = $options['webmasterTools']['norton']; } SQ_Classes_Helpers_Tools::saveOptions( 'socials', $socials ); SQ_Classes_Helpers_Tools::saveOptions( 'codes', $codes ); SQ_Classes_Helpers_Tools::saveOptions( 'sq_jsonld', $jsonld ); $imported = true; } } if ( $platform == 'seo-by-rank-math' ) { if ( $options = get_option( 'rank-math-options-general' ) ) { $codes = SQ_Classes_Helpers_Tools::getOption( 'codes' ); if ( isset( $options['attachment_redirect_urls'] ) ) { SQ_Classes_Helpers_Tools::saveOptions( 'sq_attachment_redirect', ( $options['attachment_redirect_urls'] == 'on' ) ); } if ( isset( $options['nofollow_external_links'] ) ) { SQ_Classes_Helpers_Tools::saveOptions( 'sq_external_nofollow', ( $options['nofollow_external_links'] == 'on' ) ); } if ( isset( $options['new_window_external_links'] ) ) { SQ_Classes_Helpers_Tools::saveOptions( 'sq_external_blank', ( $options['new_window_external_links'] == 'on' ) ); } if ( isset( $options['breadcrumbs'] ) ) { SQ_Classes_Helpers_Tools::saveOptions( 'sq_jsonld_breadcrumbs', ( $options['breadcrumbs'] == 'on' ) ); } if ( isset( $options['product_brand'] ) ) { SQ_Classes_Helpers_Tools::saveOptions( 'sq_jsonld_product_custom', ( $options['product_brand'] == 'on' ) ); } if ( isset( $options['google_verify'] ) && $options['google_verify'] <> '' ) { $codes['google_wt'] = $options['google_verify']; } if ( isset( $options['bing_verify'] ) && $options['bing_verify'] <> '' ) { $codes['bing_wt'] = $options['bing_verify']; } if ( isset( $options['pinterest_verify'] ) && $options['pinterest_verify'] <> '' ) { $codes['pinterest_verify'] = $options['pinterest_verify']; } if ( isset( $options['yandex_verify'] ) && $options['yandex_verify'] <> '' ) { $codes['yandex_wt'] = $options['yandex_verify']; } if ( isset( $options['baidu_verify'] ) && $options['baidu_verify'] <> '' ) { $codes['baidu_wt'] = $options['baidu_verify']; } if ( isset( $options['norton_verify'] ) && $options['norton_verify'] <> '' ) { $codes['norton_verify'] = $options['norton_verify']; } SQ_Classes_Helpers_Tools::saveOptions( 'codes', $codes ); $imported = true; } if ( $options = get_option( 'rank-math-options-titles' ) ) { $jsonld = SQ_Classes_Helpers_Tools::getOption( 'sq_jsonld' ); $socials = SQ_Classes_Helpers_Tools::getOption( 'socials' ); if ( isset( $options['price_range'] ) && $options['price_range'] <> '' ) { $jsonld['sq_jsonld_local']['priceRange'] = $options['price_range']; } if ( isset( $options['local_address']['streetAddress'] ) && $options['local_address']['streetAddress'] <> '' ) { $jsonld['Organization']['address']['streetAddress'] = $options['local_address']['streetAddress']; } if ( isset( $options['local_address']['addressLocality'] ) && $options['local_address']['addressLocality'] <> '' ) { $jsonld['Organization']['address']['addressLocality'] = $options['local_address']['addressLocality']; } if ( isset( $options['local_address']['addressRegion'] ) && $options['local_address']['addressRegion'] <> '' ) { $jsonld['Organization']['address']['addressRegion'] = $options['local_address']['addressRegion']; } if ( isset( $options['local_address']['addressCountry'] ) && $options['local_address']['addressCountry'] <> '' ) { $jsonld['Organization']['address']['addressCountry'] = $options['local_address']['addressCountry']; } if ( isset( $options['local_address']['postalCode'] ) && $options['local_address']['postalCode'] <> '' ) { $jsonld['Organization']['address']['postalCode'] = $options['local_address']['postalCode']; } if ( isset( $options['knowledgegraph_logo'] ) && $options['knowledgegraph_logo'] <> '' ) { $jsonld['Organization']['logo'] = $options['knowledgegraph_logo']; } if ( isset( $options['knowledgegraph_name'] ) && $options['knowledgegraph_name'] <> '' ) { $jsonld['Organization']['name'] = $options['knowledgegraph_name']; } if ( isset( $options['social_url_facebook'] ) && $options['social_url_facebook'] <> '' ) { $socials['facebook_site'] = $options['social_url_facebook']; } if ( isset( $options['twitter_author_names'] ) && $options['twitter_author_names'] <> '' ) { $socials['twitter_site'] = $options['twitter_author_names']; } if ( isset( $options['facebook_admin_id'] ) && $options['facebook_admin_id'] <> '' ) { $socials['fb_admins'] = array( $options['facebook_admin_id'] ); } if ( isset( $options['facebook_app_id'] ) && $options['facebook_app_id'] <> '' ) { $socials['fbadminapp'] = $options['facebook_app_id']; } SQ_Classes_Helpers_Tools::saveOptions( 'sq_jsonld', $jsonld ); SQ_Classes_Helpers_Tools::saveOptions( 'socials', $socials ); } } if ( $platform == 'autodescription' ) { if ( $options = get_option( 'autodescription-site-settings' ) ) { $jsonld = SQ_Classes_Helpers_Tools::getOption( 'sq_jsonld' ); $socials = SQ_Classes_Helpers_Tools::getOption( 'socials' ); $codes = SQ_Classes_Helpers_Tools::getOption( 'codes' ); if ( isset( $options['attachment_redirect_urls'] ) ) { SQ_Classes_Helpers_Tools::saveOptions( 'sq_attachment_redirect', ( $options['attachment_redirect_urls'] == 'on' ) ); } if ( isset( $options['facebook_appid'] ) && $options['facebook_appid'] <> '' ) { $socials['fbadminapp'] = $options['facebook_appid']; } if ( isset( $options['facebook_publisher'] ) && $options['facebook_publisher'] <> '' ) { $socials['facebook_site'] = $options['facebook_publisher']; } if ( isset( $options['twitter_site'] ) && $options['twitter_site'] <> '' ) { $socials['twitter_site'] = $options['twitter_site']; } if ( isset( $options['knowledge_name'] ) && $options['knowledge_name'] <> '' ) { $jsonld['Organization']['name'] = $options['knowledge_name']; } if ( isset( $options['knowledge_logo_url'] ) && $options['knowledge_logo_url'] <> '' ) { $jsonld['Organization']['logo'] = $options['knowledge_logo_url']; } if ( isset( $options['google_verification'] ) && $options['google_verification'] <> '' ) { $codes['google_wt'] = $options['google_verification']; } if ( isset( $options['bing_verification'] ) && $options['bing_verification'] <> '' ) { $codes['bing_wt'] = $options['bing_verification']; } if ( isset( $options['pint_verification'] ) && $options['pint_verification'] <> '' ) { $codes['pinterest_verify'] = $options['pint_verification']; } SQ_Classes_Helpers_Tools::saveOptions( 'codes', $codes ); SQ_Classes_Helpers_Tools::saveOptions( 'socials', $socials ); SQ_Classes_Helpers_Tools::saveOptions( 'sq_jsonld', $jsonld ); $imported = true; } } if ( $platform == 'premium-seo-pack' ) { if ( $options = json_decode( get_option( '_psp_options' ), true ) ) { $socials = $options['socials']; $codes = $options['codes']; $jsonld = $options['psp_jsonld']; SQ_Classes_Helpers_Tools::saveOptions( 'socials', $socials ); SQ_Classes_Helpers_Tools::saveOptions( 'codes', $codes ); SQ_Classes_Helpers_Tools::saveOptions( 'sq_jsonld', $jsonld ); $imported = true; } } if ( $platform == 'wp-seopress' ) { if ( $options = get_option( 'seopress_social_option_name' ) ) { $jsonld = SQ_Classes_Helpers_Tools::getOption( 'sq_jsonld' ); $socials = SQ_Classes_Helpers_Tools::getOption( 'socials' ); if ( isset( $options['seopress_social_knowledge_name'] ) && $options['seopress_social_knowledge_name'] <> '' ) { $jsonld['Organization']['name'] = $options['seopress_social_knowledge_name']; } if ( isset( $options['seopress_social_knowledge_img'] ) && $options['seopress_social_knowledge_img'] <> '' ) { $jsonld['Organization']['logo'] = $options['seopress_social_knowledge_img']; } if ( isset( $options['seopress_social_knowledge_phone'] ) && $options['seopress_social_knowledge_phone'] <> '' ) { $jsonld['Organization']['contactPoint']['telephone'] = $options['seopress_social_knowledge_phone']; } if ( isset( $options['seopress_social_knowledge_contact_type'] ) && $options['seopress_social_knowledge_contact_type'] <> '' ) { $jsonld['Organization']['contactPoint']['contactType'] = $options['seopress_social_knowledge_contact_type']; } if ( isset( $options['seopress_social_accounts_facebook'] ) && $options['seopress_social_accounts_facebook'] <> '' ) { $socials['facebook_site'] = $options['seopress_social_accounts_facebook']; } if ( isset( $options['seopress_social_accounts_twitter'] ) && $options['seopress_social_accounts_twitter'] <> '' ) { $socials['twitter_site'] = $options['seopress_social_accounts_twitter']; } if ( isset( $options['seopress_social_accounts_pinterest'] ) && $options['seopress_social_accounts_pinterest'] <> '' ) { $socials['pinterest_url'] = $options['seopress_social_accounts_pinterest']; } if ( isset( $options['seopress_social_accounts_instagram'] ) && $options['seopress_social_accounts_instagram'] <> '' ) { $socials['instagram_url'] = $options['seopress_social_accounts_instagram']; } if ( isset( $options['seopress_social_accounts_youtube'] ) && $options['seopress_social_accounts_youtube'] <> '' ) { $socials['youtube_url'] = $options['seopress_social_accounts_youtube']; } if ( isset( $options['seopress_social_accounts_linkedin'] ) && $options['seopress_social_accounts_linkedin'] <> '' ) { $socials['linkedin_url'] = $options['seopress_social_accounts_linkedin']; } if ( isset( $options['seopress_social_facebook_img'] ) && $options['seopress_social_facebook_img'] <> '' ) { SQ_Classes_Helpers_Tools::saveOptions( 'sq_og_image', $options['seopress_social_facebook_img'] ); } if ( isset( $options['seopress_social_twitter_card_img'] ) && $options['seopress_social_twitter_card_img'] <> '' ) { SQ_Classes_Helpers_Tools::saveOptions( 'sq_tc_image', $options['seopress_social_twitter_card_img'] ); } if ( isset( $options['seopress_social_facebook_admin_id'] ) && $options['seopress_social_facebook_admin_id'] <> '' ) { $socials['fb_admins'] = array( $options['seopress_social_facebook_admin_id'] ); } if ( isset( $options['seopress_social_facebook_app_id'] ) && $options['seopress_social_facebook_app_id'] <> '' ) { $socials['fbadminapp'] = $options['seopress_social_facebook_app_id']; } SQ_Classes_Helpers_Tools::saveOptions( 'socials', $socials ); SQ_Classes_Helpers_Tools::saveOptions( 'sq_jsonld', $jsonld ); $imported = true; } if ( $options = get_option( 'seopress_google_analytics_option_name' ) ) { $codes = SQ_Classes_Helpers_Tools::getOption( 'codes' ); if ( isset( $options['seopress_google_analytics_ua'] ) && $options['seopress_google_analytics_ua'] <> '' ) { $codes['google_analytics'] = $options['seopress_google_analytics_ua']; } if ( isset( $options['seopress_google_analytics_ga4'] ) && $options['seopress_google_analytics_ga4'] <> '' ) { $codes['google_analytics'] = $options['seopress_google_analytics_ga4']; } SQ_Classes_Helpers_Tools::saveOptions( 'codes', $codes ); } } } return $imported; } public function importDBSeo( $platform ) { global $wpdb; $platforms = apply_filters( 'sq_importList', false ); if ( $platform <> '' && isset( $platforms[ $platform ] ) ) { $meta_keys = $platforms[ $platform ]; $metas = array(); if ( ! empty( $meta_keys ) ) { $placeholders = array_fill( 0, count( $meta_keys ), '%s' ); $meta_keys = array_flip( $meta_keys ); $query = "SELECT * FROM `$wpdb->postmeta` WHERE meta_key IN (" . join( ",", $placeholders ) . ");"; if ( $rows = $wpdb->get_results( $wpdb->prepare( $query, array_keys( $meta_keys ) ), OBJECT ) ) { foreach ( $rows as $row ) { if ( isset( $meta_keys[ $row->meta_key ] ) && $row->meta_value <> '' ) { if ( $post = get_post( $row->post_id ) ) { //set the hash for each post type if ( in_array( $post->post_type, array( 'post', 'page', 'product', 'cartflows_step' ) ) ) { $hash = md5( $post->ID ); } else { $hash = md5( $post->post_type . $post->ID ); } $metas[ $hash ]['post_id'] = $post->ID; $metas[ $hash ]['post_type'] = $post->post_type; $metas[ $hash ]['url'] = get_permalink( $post->ID ); $value = $row->meta_value; //encode the emoji to prevent unserialize errors $value = wp_encode_emoji( $value ); if ( strpos( $value, '%%' ) !== false ) { $value = preg_replace( '/%%([^\%]+)%%/', '{{$1}}', $value ); } if ( function_exists( 'mb_detect_encoding' ) && function_exists( 'iconv' ) ) { if ( $encoding = mb_detect_encoding( $value ) ) { if ( $encoding <> 'UTF-8' ) { //support for international languages if ( function_exists( 'iconv' ) && SQ_Classes_Helpers_Tools::getOption( 'sq_non_utf8_support' ) ) { if ( strpos( get_bloginfo( "language" ), 'en' ) === false ) { $value = iconv( $encoding, 'UTF-8', $value ); } } } } } if ( $row->meta_key == 'rank_math_robots' ) { $value = unserialize( $value ); $metas[ $hash ]['noindex'] = in_array( 'noindex', (array) $value ); $metas[ $hash ]['nofollow'] = in_array( 'nofollow', (array) $value ); } else { $metas[ $hash ][ $meta_keys[ $row->meta_key ] ] = stripslashes( $value ); } } } } } if ( $platform == 'seo-by-rank-math' ) { $query = "SELECT * FROM `$wpdb->termmeta` WHERE meta_key IN (" . join( ",", $placeholders ) . ");"; if ( $rows = $wpdb->get_results( $wpdb->prepare( $query, array_keys( $meta_keys ) ), OBJECT ) ) { foreach ( $rows as $row ) { if ( isset( $meta_keys[ $row->meta_key ] ) && $row->meta_value <> '' ) { if ( $term = get_term( $row->term_id ) ) { //set the hash for each post type $hash = md5( $term->taxonomy . $term->term_id ); $metas[ $hash ]['term_id'] = $term->term_id; $metas[ $hash ]['taxonomy'] = $term->taxonomy; $metas[ $hash ]['url'] = get_term_link( $term->term_id, $term->taxonomy ); $value = $row->meta_value; //encode the emoji to prevent unserialize errors $value = wp_encode_emoji( $value ); if ( strpos( $value, '%%' ) !== false ) { $value = preg_replace( '/%%([^\%]+)%%/', '{{$1}}', $value ); } if ( function_exists( 'mb_detect_encoding' ) && function_exists( 'iconv' ) ) { if ( $encoding = mb_detect_encoding( $value ) ) { if ( $encoding <> 'UTF-8' ) { //support for international languages if ( function_exists( 'iconv' ) && SQ_Classes_Helpers_Tools::getOption( 'sq_non_utf8_support' ) ) { if ( strpos( get_bloginfo( "language" ), 'en' ) === false ) { $value = iconv( $encoding, 'UTF-8', $value ); } } } } } if ( $row->meta_key == 'rank_math_robots' ) { $value = unserialize( $value ); $metas[ $hash ]['noindex'] = in_array( 'noindex', (array) $value ); $metas[ $hash ]['nofollow'] = in_array( 'nofollow', (array) $value ); } else { $metas[ $hash ][ $meta_keys[ $row->meta_key ] ] = stripslashes( $value ); } } } } } } } if ( $platform == 'wordpress-seo' ) { $meta_keys = array( 'title' => 'wpseo_title', 'description' => 'wpseo_metadesc', 'noindex' => 'wpseo_noindex_author', ); $placeholders = array_fill( 0, count( $meta_keys ), '%s' ); // get the users data $query = "SELECT * FROM `$wpdb->usermeta` WHERE meta_key IN (" . join( ",", $placeholders ) . ");"; $meta_keys = array_flip( $meta_keys ); if ( $rows = $wpdb->get_results( $wpdb->prepare( $query, array_keys( $meta_keys ) ), OBJECT ) ) { foreach ( $rows as $row ) { if ( isset( $meta_keys[ $row->meta_key ] ) && $row->meta_value <> '' ) { //set the hash for each profile $hash = md5( 'profile' . $row->user_id ); $metas[ $hash ]['post_id'] = (int) $row->user_id; $metas[ $hash ]['post_type'] = 'profile'; if ( function_exists( 'bp_core_get_user_domain' ) ) { $metas[ $hash ]['url'] = bp_core_get_user_domain( $row->user_id ); } else { $metas[ $hash ]['url'] = get_author_posts_url( $row->user_id ); } $value = $row->meta_value; //encode the emoji to prevent unserialize errors $value = wp_encode_emoji( $value ); if ( strpos( $value, '%%' ) !== false ) { $value = preg_replace( '/%%([^\%]+)%%/', '{{$1}}', $value ); } if ( function_exists( 'mb_detect_encoding' ) && function_exists( 'iconv' ) ) { if ( $encoding = mb_detect_encoding( $value ) ) { if ( $encoding <> 'UTF-8' ) { //support for international languages if ( function_exists( 'iconv' ) && SQ_Classes_Helpers_Tools::getOption( 'sq_non_utf8_support' ) ) { if ( strpos( get_bloginfo( "language" ), 'en' ) === false ) { $value = iconv( $encoding, 'UTF-8', $value ); } } } } } if ( $meta_keys[ $row->meta_key ] == 'noindex' ) { $metas[ $hash ][ $meta_keys[ $row->meta_key ] ] = ( $value == 'on' ); } else { $metas[ $hash ][ $meta_keys[ $row->meta_key ] ] = stripslashes( $value ); } } } } //get taxonomies if ( $taxonomies = get_option( 'wpseo_taxonomy_meta' ) ) { if ( ! empty( $taxonomies ) ) { foreach ( $taxonomies as $taxonomie => $terms ) { if ( ! empty( $terms ) ) { if ( $taxonomie <> 'category' ) { $taxonomie = 'tax-' . $taxonomie; } foreach ( $terms as $term_id => $taxmetas ) { if ( ! empty( $taxmetas ) ) { if ( ! is_wp_error( get_term_link( $term_id ) ) ) { $metas[ md5( $taxonomie . $term_id ) ]['url'] = get_term_link( $term_id ); $metas[ md5( $taxonomie . $term_id ) ]['term_id'] = $term_id; $metas[ md5( $taxonomie . $term_id ) ]['taxonomie'] = $taxonomie; foreach ( $taxmetas as $meta_key => $meta_value ) { if ( $meta_key == 'wpseo_desc' ) { $meta_key = '_yoast_wpseo_metadesc'; } else { $meta_key = '_yoast_' . $meta_key; } if ( isset( $meta_keys[ $meta_key ] ) ) { $metas[ md5( $taxonomie . $term_id ) ][ $meta_keys[ $meta_key ] ] = stripslashes( $meta_value ); } } } } } } } } } //get all patterns from Yoast if ( $yoast_patterns = get_option( 'wpseo_titles' ) ) { if ( ! empty( $yoast_patterns ) ) { $patterns = SQ_Classes_Helpers_Tools::getOption( 'patterns' ); foreach ( $patterns as $path => &$values ) { switch ( $path ) { case 'profile': $path = 'author'; break; case 'category': $path = 'tax-category'; break; case 'tag': $path = 'tax-post_tag'; break; } if ( isset( $yoast_patterns["title-pt$path"] ) && $yoast_patterns["title-pt$path"] <> '' ) { $values['title'] = $yoast_patterns["title-pt$path"]; } if ( isset( $yoast_patterns["metadesc-pt$path"] ) && $yoast_patterns["metadesc-pt$path"] <> '' ) { $values['description'] = $yoast_patterns["metadesc-pt$path"]; } if ( isset( $yoast_patterns["noindex-pt$path"] ) && $yoast_patterns["noindex-pt$path"] <> '' ) { $values['noindex'] = $yoast_patterns["noindex-pt$path"]; } if ( isset( $yoast_patterns['separator'] ) && $yoast_patterns['separator'] <> '' ) { $values['sep'] = $yoast_patterns['separator']; } if ( isset( $yoast_patterns["title-$path-wpseo"] ) && $yoast_patterns["title-$path-wpseo"] <> '' ) { $values['title'] = $yoast_patterns["title-$path-wpseo"]; } if ( isset( $yoast_patterns["metadesc-$path-wpseo"] ) && $yoast_patterns["metadesc-$path-wpseo"] <> '' ) { $values['description'] = $yoast_patterns["metadesc-$path-wpseo"]; } if ( isset( $yoast_patterns["noindex-$path-wpseo"] ) ) { $values['noindex'] = (int) $yoast_patterns["noindex-$path-wpseo"]; } if ( isset( $yoast_patterns["disable-$path-wpseo"] ) ) { $values['disable'] = (int) $yoast_patterns["disable-$path-wpseo"]; } if ( isset( $yoast_patterns["title-$path"] ) && $yoast_patterns["title-$path"] <> '' ) { $values['title'] = $yoast_patterns["title-$path"]; } if ( isset( $yoast_patterns["metadesc-$path"] ) && $yoast_patterns["metadesc-$path"] <> '' ) { $values['description'] = $yoast_patterns["metadesc-$path"]; } if ( isset( $yoast_patterns["noindex-$path"] ) ) { $values['noindex'] = (int) $yoast_patterns["noindex-$path"]; } if ( isset( $yoast_patterns["disable-$path"] ) ) { $values['disable'] = (int) $yoast_patterns["disable-$path"]; } foreach ( $values as &$value ) { if ( is_string( $value ) && strpos( $value, '%%' ) !== false ) { //encode the emoji to prevent unserialize errors $value = wp_encode_emoji( $value ); $value = preg_replace( '/%%([^\%]+)%%/', '{{$1}}', $value ); } } //Replace all patterns for imported metas if ( ! empty( $metas ) ) { foreach ( $metas as &$meta ) { if ( is_array( $meta ) ) { foreach ( $meta as &$field ) { $field = preg_replace( '/%%([^\%]+)%%/', '{{$1}}', $field ); } } } } } SQ_Classes_Helpers_Tools::saveOptions( 'patterns', $patterns ); } } // get the woocommerce seo data $posts = $wpdb->get_results( 'SELECT `post_id`,`meta_value` FROM `' . $wpdb->postmeta . '` WHERE `meta_key` = "wpseo_global_identifier_values";', OBJECT ); if ( ! empty( $posts ) ) { $wc_fields = array( 'mpn' => 'mpn', 'gtin' => 'gtin8', 'ean' => 'gtin13', 'upc' => 'gtin12', 'isbn' => 'isbn' ); foreach ( $posts as $post ) { if ( $post->meta_value <> '' ) { $sq_woocommerce = array(); $data = unserialize( $post->meta_value ); foreach ( $wc_fields as $field => $value ) { if ( isset( $data[ $value ] ) && $data[ $value ] <> '' ) { $sq_woocommerce[ $field ] = $data[ $value ]; } } if ( ! empty( $sq_woocommerce ) ) { update_post_meta( $post->post_id, '_sq_woocommerce', $sq_woocommerce ); } } } } } if ( $platform == 'all-in-one-seo-pack' ) { if ( $options = get_option( 'aioseo_options' ) ) { $options = json_decode( $options, true ); if ( isset( $options['searchAppearance']['dynamic'] ) ) { $options = $options['searchAppearance']['dynamic']; } $patterns = SQ_Classes_Helpers_Tools::getOption( 'patterns' ); $findreplace = array( 'page_title' => 'title', 'post_title' => 'title', 'post_excerpt' => 'excerpt', 'post_content' => 'excerpt', 'page_excerpt' => 'excerpt', 'page_content' => 'excerpt', 'post_date' => 'date', 'page_date' => 'date', 'archive_title' => 'title', 'site_title' => 'sitename', 'tagline' => 'sitedesc', 'blog_description' => 'sitedesc', 'category_title' => 'category', 'author_name' => 'name', 'author_first_name' => 'name', 'author_last_name' => 'name', 'categories' => 'category', 'tax_name' => 'term_title', 'taxonomy_title' => 'term_title', 'page_author_nicename' => 'name', 'description' => 'excerpt', 'request_words' => 'searchphrase', 'search' => 'searchphrase', 'current_date' => 'currentdate', 'current_day' => 'currentday', 'current_month' => 'currentmonth', 'current_year' => 'currentyear', 'separator_sa' => 'sep', 'permalink' => 'guid', ); //Replace all patterns for imported metas if ( ! empty( $metas ) ) { foreach ( $metas as &$meta ) { if ( is_array( $meta ) ) { foreach ( $meta as &$field ) { $field = preg_replace( '/#([a-z_]+)/', '{{$1}}', str_replace( array_keys( $findreplace ), array_values( $findreplace ), $field ) ); } } } } //replace the patterns automation if ( isset( $options['postTypes']['post']['title'] ) && $options['postTypes']['post']['title'] <> '' ) { $patterns['post']['title'] = preg_replace( '/#([a-z_]+)/', '{{$1}}', str_replace( array_keys( $findreplace ), array_values( $findreplace ), $options['postTypes']['post']['title'] ) ); } if ( isset( $options['postTypes']['post']['metaDescription'] ) && $options['postTypes']['post']['metaDescription'] <> '' ) { $patterns['post']['description'] = preg_replace( '/#([a-z_]+)/', '{{$1}}', str_replace( array_keys( $findreplace ), array_values( $findreplace ), $options['postTypes']['post']['metaDescription'] ) ); } if ( isset( $options['postTypes']['page']['title'] ) && $options['postTypes']['page']['title'] <> '' ) { $patterns['page']['title'] = preg_replace( '/#([a-z_]+)\s/', '{{$1}} ', str_replace( array_keys( $findreplace ), array_values( $findreplace ), $options['postTypes']['page']['title'] ) ); } if ( isset( $options['postTypes']['page']['metaDescription'] ) && $options['postTypes']['page']['metaDescription'] <> '' ) { $patterns['page']['description'] = preg_replace( '/#([a-z_]+)/', '{{$1}}', str_replace( array_keys( $findreplace ), array_values( $findreplace ), $options['postTypes']['page']['metaDescription'] ) ); } if ( isset( $options['postTypes']['attachment']['title'] ) && $options['postTypes']['attachment']['title'] <> '' ) { $patterns['attachment']['title'] = preg_replace( '/#([a-z_]+)/', '{{$1}}', str_replace( array_keys( $findreplace ), array_values( $findreplace ), $options['postTypes']['attachment']['title'] ) ); } if ( isset( $options['postTypes']['attachment']['metaDescription'] ) && $options['postTypes']['attachment']['metaDescription'] <> '' ) { $patterns['attachment']['description'] = preg_replace( '/#([a-z_]+)/', '{{$1}}', str_replace( array_keys( $findreplace ), array_values( $findreplace ), $options['postTypes']['attachment']['metaDescription'] ) ); } if ( isset( $options['postTypes']['product']['title'] ) && $options['postTypes']['product']['title'] <> '' ) { $patterns['product']['title'] = preg_replace( '/#([a-z_]+)/', '{{$1}}', str_replace( array_keys( $findreplace ), array_values( $findreplace ), $options['postTypes']['product']['title'] ) ); } if ( isset( $options['postTypes']['product']['metaDescription'] ) && $options['postTypes']['product']['metaDescription'] <> '' ) { $patterns['product']['description'] = preg_replace( '/#([a-z_]+)/', '{{$1}}', str_replace( array_keys( $findreplace ), array_values( $findreplace ), $options['postTypes']['product']['metaDescription'] ) ); } if ( isset( $options['postTypes']['product']['title'] ) && $options['postTypes']['product']['title'] <> '' ) { $patterns['product']['title'] = preg_replace( '/#([a-z_]+)/', '{{$1}}', str_replace( array_keys( $findreplace ), array_values( $findreplace ), $options['postTypes']['product']['title'] ) ); } if ( isset( $options['postTypes']['product']['metaDescription'] ) && $options['postTypes']['product']['metaDescription'] <> '' ) { $patterns['product']['description'] = preg_replace( '/#([a-z_]+)/', '{{$1}}', str_replace( array_keys( $findreplace ), array_values( $findreplace ), $options['postTypes']['product']['metaDescription'] ) ); } if ( isset( $options['taxonomies']['category']['title'] ) && $options['taxonomies']['category']['title'] <> '' ) { $patterns['category']['title'] = preg_replace( '/#([a-z_]+)/', '{{$1}}', str_replace( array_keys( $findreplace ), array_values( $findreplace ), $options['taxonomies']['category']['title'] ) ); } if ( isset( $options['taxonomies']['category']['metaDescription'] ) && $options['taxonomies']['category']['metaDescription'] <> '' ) { $patterns['category']['description'] = preg_replace( '/#([a-z_]+)/', '{{$1}}', str_replace( array_keys( $findreplace ), array_values( $findreplace ), $options['taxonomies']['category']['metaDescription'] ) ); } if ( isset( $options['taxonomies']['post_tag']['title'] ) && $options['taxonomies']['post_tag']['title'] <> '' ) { $patterns['tag']['title'] = preg_replace( '/#([a-z_]+)/', '{{$1}}', str_replace( array_keys( $findreplace ), array_values( $findreplace ), $options['taxonomies']['post_tag']['title'] ) ); } if ( isset( $options['taxonomies']['post_tag']['metaDescription'] ) && $options['taxonomies']['post_tag']['metaDescription'] <> '' ) { $patterns['tag']['description'] = preg_replace( '/#([a-z_]+)/', '{{$1}}', str_replace( array_keys( $findreplace ), array_values( $findreplace ), $options['taxonomies']['post_tag']['metaDescription'] ) ); } if ( isset( $options['taxonomies']['product_cat']['title'] ) && $options['taxonomies']['product_cat']['title'] <> '' ) { $patterns['tax-product_cat']['title'] = preg_replace( '/#([a-z_]+)/', '{{$1}}', str_replace( array_keys( $findreplace ), array_values( $findreplace ), $options['taxonomies']['product_cat']['title'] ) ); } if ( isset( $options['taxonomies']['product_cat']['metaDescription'] ) && $options['taxonomies']['product_cat']['metaDescription'] <> '' ) { $patterns['tax-product_cat']['description'] = preg_replace( '/#([a-z_]+)/', '{{$1}}', str_replace( array_keys( $findreplace ), array_values( $findreplace ), $options['taxonomies']['product_cat']['metaDescription'] ) ); } if ( isset( $options['taxonomies']['product_tag']['title'] ) && $options['taxonomies']['product_tag']['title'] <> '' ) { $patterns['tax-product_tag']['title'] = preg_replace( '/#([a-z_]+)/', '{{$1}}', str_replace( array_keys( $findreplace ), array_values( $findreplace ), $options['taxonomies']['product_tag']['title'] ) ); } if ( isset( $options['taxonomies']['product_tag']['metaDescription'] ) && $options['taxonomies']['product_tag']['metaDescription'] <> '' ) { $patterns['tax-product_tag']['description'] = preg_replace( '/#([a-z_]+)/', '{{$1}}', str_replace( array_keys( $findreplace ), array_values( $findreplace ), $options['taxonomies']['product_tag']['metaDescription'] ) ); } if ( isset( $options['postTypes']['post']['advanced']['robotsMeta']['noindex'] ) ) { $patterns['post']['noindex'] = (int) $options['postTypes']['post']['advanced']['robotsMeta']['noindex']; } if ( isset( $options['postTypes']['post']['advanced']['robotsMeta']['nofollow'] ) ) { $patterns['post']['nofollow'] = (int) $options['postTypes']['post']['advanced']['robotsMeta']['nofollow']; } if ( isset( $options['postTypes']['page']['advanced']['robotsMeta']['noindex'] ) ) { $patterns['page']['noindex'] = (int) $options['postTypes']['page']['advanced']['robotsMeta']['noindex']; } if ( isset( $options['postTypes']['page']['advanced']['robotsMeta']['nofollow'] ) ) { $patterns['page']['nofollow'] = (int) $options['postTypes']['page']['advanced']['robotsMeta']['nofollow']; } if ( isset( $options['postTypes']['attachment']['advanced']['robotsMeta']['noindex'] ) ) { $patterns['attachment']['noindex'] = (int) $options['postTypes']['attachment']['advanced']['robotsMeta']['noindex']; } if ( isset( $options['postTypes']['attachment']['advanced']['robotsMeta']['nofollow'] ) ) { $patterns['attachment']['nofollow'] = (int) $options['postTypes']['attachment']['advanced']['robotsMeta']['nofollow']; } if ( isset( $options['postTypes']['product']['advanced']['robotsMeta']['noindex'] ) ) { $patterns['product']['noindex'] = (int) $options['postTypes']['product']['advanced']['robotsMeta']['noindex']; } if ( isset( $options['postTypes']['product']['advanced']['robotsMeta']['nofollow'] ) ) { $patterns['product']['nofollow'] = (int) $options['postTypes']['product']['advanced']['robotsMeta']['nofollow']; } if ( isset( $options['taxonomies']['category']['advanced']['robotsMeta']['noindex'] ) ) { $patterns['category']['noindex'] = (int) $options['taxonomies']['category']['advanced']['robotsMeta']['noindex']; } if ( isset( $options['taxonomies']['category']['advanced']['robotsMeta']['nofollow'] ) ) { $patterns['category']['nofollow'] = (int) $options['taxonomies']['category']['advanced']['robotsMeta']['nofollow']; } if ( isset( $options['taxonomies']['post_tag']['advanced']['robotsMeta']['noindex'] ) ) { $patterns['tag']['noindex'] = (int) $options['taxonomies']['post_tag']['advanced']['robotsMeta']['noindex']; } if ( isset( $options['taxonomies']['post_tag']['advanced']['robotsMeta']['nofollow'] ) ) { $patterns['tag']['nofollow'] = (int) $options['taxonomies']['post_tag']['advanced']['robotsMeta']['nofollow']; } if ( isset( $options['taxonomies']['product_cat']['advanced']['robotsMeta']['noindex'] ) ) { $patterns['tax-product_cat']['noindex'] = (int) $options['taxonomies']['product_cat']['advanced']['robotsMeta']['noindex']; } if ( isset( $options['taxonomies']['product_cat']['advanced']['robotsMeta']['nofollow'] ) ) { $patterns['tax-product_cat']['nofollow'] = (int) $options['taxonomies']['product_cat']['advanced']['robotsMeta']['nofollow']; } if ( isset( $options['taxonomies']['product_tag']['advanced']['robotsMeta']['noindex'] ) ) { $patterns['tax-product_tag']['noindex'] = (int) $options['taxonomies']['product_tag']['advanced']['robotsMeta']['noindex']; } if ( isset( $options['taxonomies']['product_tag']['advanced']['robotsMeta']['nofollow'] ) ) { $patterns['tax-product_tag']['nofollow'] = (int) $options['taxonomies']['product_tag']['advanced']['robotsMeta']['nofollow']; } SQ_Classes_Helpers_Tools::saveOptions( 'patterns', $patterns ); } } if ( $platform == 'wp-seopress' ) { if ( $options = get_option( 'seopress_titles_option_name' ) ) { $patterns = SQ_Classes_Helpers_Tools::getOption( 'patterns' ); $findreplace = array( 'sitetitle' => 'sitename', 'tagline' => 'sitedesc', 'post_title' => 'title', 'post_excerpt' => 'excerpt', 'post_date' => 'date', 'post_modified_date' => 'modified', 'post_author' => 'name', 'post_category' => 'category', 'post_tag' => 'tag', '_category_title' => 'title', '_category_description' => 'category_description', 'tag_title' => 'title', 'tag_description' => 'tag_description', 'term_title' => 'term_title', 'term_description' => 'term_description', 'search_keywords' => 'searchphrase', 'current_pagination' => 'page', 'cpt_plural' => 'title', 'archive_title' => 'title', 'archive_date' => 'date', 'archive_date_day' => 'date', 'archive_date_month' => 'date', 'archive_date_year' => 'date', 'author_bio' => 'excerpt', 'wc_single_cat' => 'primary_category', 'wc_single_tag' => 'tag', 'wc_single_short_desc' => 'excerpt', 'wc_single_price' => 'product_price', ); //Replace all patterns for imported metas if ( ! empty( $metas ) ) { foreach ( $metas as &$meta ) { if ( is_array( $meta ) ) { foreach ( $meta as $name => &$field ) { if ( $name == 'title' || $name == 'description' ) { $field = preg_replace( '/%%([^\%]+)%%/', '{{$1}}', str_replace( array_keys( $findreplace ), array_values( $findreplace ), $field ) ); } } } } } if ( isset( $options['seopress_titles_home_site_title'] ) && $options['seopress_titles_home_site_title'] <> '' ) { $patterns['home']['title'] = preg_replace( '/%%([^\%]+)%%/', '{{$1}}', str_replace( array_keys( $findreplace ), array_values( $findreplace ), $options['seopress_titles_home_site_title'] ) ); } if ( isset( $options['seopress_titles_home_site_desc'] ) && $options['seopress_titles_home_site_desc'] <> '' ) { $patterns['home']['description'] = preg_replace( '/%%([^\%]+)%%/', '{{$1}}', str_replace( array_keys( $findreplace ), array_values( $findreplace ), $options['seopress_titles_home_site_desc'] ) ); } if ( isset( $options['seopress_titles_single_titles']['post']['title'] ) && $options['seopress_titles_single_titles']['post']['title'] <> '' ) { $patterns['post']['title'] = preg_replace( '/%%([^\%]+)%%/', '{{$1}}', str_replace( array_keys( $findreplace ), array_values( $findreplace ), $options['seopress_titles_single_titles']['post']['title'] ) ); } if ( isset( $options['seopress_titles_single_titles']['post']['description'] ) && $options['seopress_titles_single_titles']['post']['description'] <> '' ) { $patterns['post']['description'] = preg_replace( '/%%([^\%]+)%%/', '{{$1}}', str_replace( array_keys( $findreplace ), array_values( $findreplace ), $options['seopress_titles_single_titles']['post']['description'] ) ); } if ( isset( $options['seopress_titles_single_titles']['page']['title'] ) && $options['seopress_titles_single_titles']['page']['title'] <> '' ) { $patterns['page']['title'] = preg_replace( '/%%([^\%]+)%%/', '{{$1}}', str_replace( array_keys( $findreplace ), array_values( $findreplace ), $options['seopress_titles_single_titles']['page']['title'] ) ); } if ( isset( $options['seopress_titles_single_titles']['page']['description'] ) && $options['seopress_titles_single_titles']['page']['description'] <> '' ) { $patterns['page']['description'] = preg_replace( '/%%([^\%]+)%%/', '{{$1}}', str_replace( array_keys( $findreplace ), array_values( $findreplace ), $options['seopress_titles_single_titles']['page']['description'] ) ); } if ( isset( $options['seopress_titles_single_titles']['product']['title'] ) && $options['seopress_titles_single_titles']['product']['title'] <> '' ) { $patterns['product']['title'] = preg_replace( '/%%([^\%]+)%%/', '{{$1}}', str_replace( array_keys( $findreplace ), array_values( $findreplace ), $options['seopress_titles_single_titles']['product']['title'] ) ); } if ( isset( $options['seopress_titles_single_titles']['product']['description'] ) && $options['seopress_titles_single_titles']['product']['description'] <> '' ) { $patterns['product']['description'] = preg_replace( '/%%([^\%]+)%%/', '{{$1}}', str_replace( array_keys( $findreplace ), array_values( $findreplace ), $options['seopress_titles_single_titles']['product']['description'] ) ); } if ( isset( $options['seopress_titles_tax_titles']['category']['title'] ) && $options['seopress_titles_tax_titles']['category']['title'] <> '' ) { $patterns['category']['title'] = preg_replace( '/%%([^\%]+)%%/', '{{$1}}', str_replace( array_keys( $findreplace ), array_values( $findreplace ), $options['seopress_titles_tax_titles']['category']['title'] ) ); } if ( isset( $options['seopress_titles_tax_titles']['category']['description'] ) && $options['seopress_titles_tax_titles']['category']['description'] <> '' ) { $patterns['category']['description'] = preg_replace( '/%%([^\%]+)%%/', '{{$1}}', str_replace( array_keys( $findreplace ), array_values( $findreplace ), $options['seopress_titles_tax_titles']['category']['description'] ) ); } if ( isset( $options['seopress_titles_tax_titles']['post_tag']['title'] ) && $options['seopress_titles_tax_titles']['post_tag']['title'] <> '' ) { $patterns['tax-post_tag']['title'] = preg_replace( '/%%([^\%]+)%%/', '{{$1}}', str_replace( array_keys( $findreplace ), array_values( $findreplace ), $options['seopress_titles_tax_titles']['post_tag']['title'] ) ); } if ( isset( $options['seopress_titles_tax_titles']['post_tag']['description'] ) && $options['seopress_titles_tax_titles']['post_tag']['description'] <> '' ) { $patterns['tax-post_tag']['description'] = preg_replace( '/%%([^\%]+)%%/', '{{$1}}', str_replace( array_keys( $findreplace ), array_values( $findreplace ), $options['seopress_titles_tax_titles']['post_tag']['description'] ) ); } if ( isset( $options['seopress_titles_tax_titles']['product_cat']['title'] ) && $options['seopress_titles_tax_titles']['product_cat']['title'] <> '' ) { $patterns['tax-product_cat']['title'] = preg_replace( '/%%([^\%]+)%%/', '{{$1}}', str_replace( array_keys( $findreplace ), array_values( $findreplace ), $options['seopress_titles_tax_titles']['product_cat']['title'] ) ); } if ( isset( $options['seopress_titles_tax_titles']['product_cat']['description'] ) && $options['seopress_titles_tax_titles']['product_cat']['description'] <> '' ) { $patterns['tax-product_cat']['description'] = preg_replace( '/%%([^\%]+)%%/', '{{$1}}', str_replace( array_keys( $findreplace ), array_values( $findreplace ), $options['seopress_titles_tax_titles']['product_cat']['description'] ) ); } if ( isset( $options['seopress_titles_tax_titles']['product_tag']['title'] ) && $options['seopress_titles_tax_titles']['product_tag']['title'] <> '' ) { $patterns['tax-product_tag']['title'] = preg_replace( '/%%([^\%]+)%%/', '{{$1}}', str_replace( array_keys( $findreplace ), array_values( $findreplace ), $options['seopress_titles_tax_titles']['product_tag']['title'] ) ); } if ( isset( $options['seopress_titles_tax_titles']['product_tag']['description'] ) && $options['seopress_titles_tax_titles']['product_tag']['description'] <> '' ) { $patterns['tax-product_tag']['description'] = preg_replace( '/%%([^\%]+)%%/', '{{$1}}', str_replace( array_keys( $findreplace ), array_values( $findreplace ), $options['seopress_titles_tax_titles']['product_tag']['description'] ) ); } if ( isset( $options['seopress_titles_archive_titles']['post']['title'] ) && $options['seopress_titles_archive_titles']['post']['title'] <> '' ) { $patterns['archive']['title'] = preg_replace( '/%%([^\%]+)%%/', '{{$1}}', str_replace( array_keys( $findreplace ), array_values( $findreplace ), $options['seopress_titles_archive_titles']['post']['title'] ) ); } if ( isset( $options['seopress_titles_archives_author_title'] ) && $options['seopress_titles_archives_author_title'] <> '' ) { $patterns['profile']['title'] = preg_replace( '/%%([^\%]+)%%/', '{{$1}}', str_replace( array_keys( $findreplace ), array_values( $findreplace ), $options['seopress_titles_archives_author_title'] ) ); } if ( isset( $options['seopress_titles_archives_search_title'] ) && $options['seopress_titles_archives_search_title'] <> '' ) { $patterns['search']['title'] = preg_replace( '/%%([^\%]+)%%/', '{{$1}}', str_replace( array_keys( $findreplace ), array_values( $findreplace ), $options['seopress_titles_archives_search_title'] ) ); } if ( isset( $options['seopress_titles_archives_404_title'] ) && $options['seopress_titles_archives_404_title'] <> '' ) { $patterns['404']['title'] = preg_replace( '/%%([^\%]+)%%/', '{{$1}}', str_replace( array_keys( $findreplace ), array_values( $findreplace ), $options['seopress_titles_archives_404_title'] ) ); } SQ_Classes_Helpers_Tools::saveOptions( 'patterns', $patterns ); } } if ( $platform == 'seo-by-rank-math' ) { if ( $options = get_option( 'rank-math-options-titles' ) ) { $patterns = SQ_Classes_Helpers_Tools::getOption( 'patterns' ); $findreplace = array( 'search_query' => 'searchphrase', 'term' => 'term_title', 'category' => 'primary_category', 'categories' => 'category', 'term_title_description' => 'term_description', ); //Replace all patterns for imported metas if ( ! empty( $metas ) ) { foreach ( $metas as &$meta ) { if ( is_array( $meta ) ) { foreach ( $meta as $name => &$field ) { if ( $name == 'title' || $name == 'description' ) { $field = preg_replace( '/%([^\%]+)%/', '{{$1}}', str_replace( array_keys( $findreplace ), array_values( $findreplace ), $field ) ); } } } } } if ( isset( $options['homepage_title'] ) && $options['homepage_title'] <> '' ) { $patterns['home']['title'] = preg_replace( '/%([^\%]+)%/', '{{$1}}', str_replace( array_keys( $findreplace ), array_values( $findreplace ), $options['homepage_title'] ) ); } if ( isset( $options['homepage_description'] ) && $options['homepage_description'] <> '' ) { $patterns['home']['description'] = preg_replace( '/%([^\%]+)%/', '{{$1}}', str_replace( array_keys( $findreplace ), array_values( $findreplace ), $options['homepage_description'] ) ); } if ( isset( $options['pt_post_title'] ) && $options['pt_post_title'] <> '' ) { $patterns['post']['title'] = preg_replace( '/%([^\%]+)%/', '{{$1}}', str_replace( array_keys( $findreplace ), array_values( $findreplace ), $options['pt_post_title'] ) ); } if ( isset( $options['pt_post_description'] ) && $options['pt_post_description'] <> '' ) { $patterns['post']['description'] = preg_replace( '/%([^\%]+)%/', '{{$1}}', str_replace( array_keys( $findreplace ), array_values( $findreplace ), $options['pt_post_description'] ) ); } if ( isset( $options['pt_page_title'] ) && $options['pt_page_title'] <> '' ) { $patterns['page']['title'] = preg_replace( '/%([^\%]+)%/', '{{$1}}', str_replace( array_keys( $findreplace ), array_values( $findreplace ), $options['pt_page_title'] ) ); } if ( isset( $options['pt_page_description'] ) && $options['pt_page_description'] <> '' ) { $patterns['page']['description'] = preg_replace( '/%([^\%]+)%/', '{{$1}}', str_replace( array_keys( $findreplace ), array_values( $findreplace ), $options['pt_page_description'] ) ); } if ( isset( $options['pt_attachment_title'] ) && $options['pt_attachment_title'] <> '' ) { $patterns['attachment']['title'] = preg_replace( '/%([^\%]+)%/', '{{$1}}', str_replace( array_keys( $findreplace ), array_values( $findreplace ), $options['pt_attachment_title'] ) ); } if ( isset( $options['pt_attachment_description'] ) && $options['pt_attachment_description'] <> '' ) { $patterns['attachment']['description'] = preg_replace( '/%([^\%]+)%/', '{{$1}}', str_replace( array_keys( $findreplace ), array_values( $findreplace ), $options['pt_attachment_description'] ) ); } if ( isset( $options['pt_product_title'] ) && $options['pt_product_title'] <> '' ) { $patterns['product']['title'] = preg_replace( '/%([^\%]+)%/', '{{$1}}', str_replace( array_keys( $findreplace ), array_values( $findreplace ), $options['pt_product_title'] ) ); } if ( isset( $options['pt_product_description'] ) && $options['pt_product_description'] <> '' ) { $patterns['product']['description'] = preg_replace( '/%([^\%]+)%/', '{{$1}}', str_replace( array_keys( $findreplace ), array_values( $findreplace ), $options['pt_product_description'] ) ); } if ( isset( $options['tax_category_title'] ) && $options['tax_category_title'] <> '' ) { $patterns['category']['title'] = preg_replace( '/%([^\%]+)%/', '{{$1}}', str_replace( array_keys( $findreplace ), array_values( $findreplace ), $options['tax_category_title'] ) ); } if ( isset( $options['tax_category_description'] ) && $options['tax_category_description'] <> '' ) { $patterns['category']['description'] = preg_replace( '/%([^\%]+)%/', '{{$1}}', str_replace( array_keys( $findreplace ), array_values( $findreplace ), $options['tax_category_description'] ) ); } if ( isset( $options['tax_post_tag_title'] ) && $options['tax_post_tag_title'] <> '' ) { $patterns['tag']['title'] = preg_replace( '/%([^\%]+)%/', '{{$1}}', str_replace( array_keys( $findreplace ), array_values( $findreplace ), $options['tax_post_tag_title'] ) ); } if ( isset( $options['tax_post_tag_description'] ) && $options['tax_post_tag_description'] <> '' ) { $patterns['tag']['description'] = preg_replace( '/%([^\%]+)%/', '{{$1}}', str_replace( array_keys( $findreplace ), array_values( $findreplace ), $options['tax_post_tag_description'] ) ); } if ( isset( $options['tax_post_format_title'] ) && $options['tax_post_format_title'] <> '' ) { $patterns['tax-post_format']['title'] = preg_replace( '/%([^\%]+)%/', '{{$1}}', str_replace( array_keys( $findreplace ), array_values( $findreplace ), $options['tax_post_format_title'] ) ); } if ( isset( $options['tax_product_cat_title'] ) && $options['tax_product_cat_title'] <> '' ) { $patterns['tax-product_cat']['title'] = preg_replace( '/%([^\%]+)%/', '{{$1}}', str_replace( array_keys( $findreplace ), array_values( $findreplace ), $options['tax_product_cat_title'] ) ); } if ( isset( $options['tax_product_cat_description'] ) && $options['tax_product_cat_description'] <> '' ) { $patterns['tax-product_cat']['description'] = preg_replace( '/%([^\%]+)%/', '{{$1}}', str_replace( array_keys( $findreplace ), array_values( $findreplace ), $options['tax_product_cat_description'] ) ); } if ( isset( $options['tax_product_tag_title'] ) && $options['tax_product_tag_title'] <> '' ) { $patterns['tax-product_tag']['title'] = preg_replace( '/%([^\%]+)%/', '{{$1}}', str_replace( array_keys( $findreplace ), array_values( $findreplace ), $options['tax_product_tag_title'] ) ); } if ( isset( $options['tax_product_tag_description'] ) && $options['tax_product_tag_description'] <> '' ) { $patterns['tax-product_tag']['description'] = preg_replace( '/%([^\%]+)%/', '{{$1}}', str_replace( array_keys( $findreplace ), array_values( $findreplace ), $options['tax_product_tag_description'] ) ); } SQ_Classes_Helpers_Tools::saveOptions( 'patterns', $patterns ); if ( ( isset( $options['homepage_title'] ) && $options['homepage_title'] <> '' ) || isset( $options['homepage_description'] ) && $options['homepage_description'] <> '' ) { $url = home_url(); $post = SQ_Classes_ObjController::getClass( 'SQ_Models_Snippet' )->setHomePage(); $post->sq->doseo = 1; $post->sq->title = preg_replace( '/%([^\%]+)%/', '{{$1}}', str_replace( array_keys( $findreplace ), array_values( $findreplace ), $options['homepage_title'] ) ); $post->sq->description = preg_replace( '/%([^\%]+)%/', '{{$1}}', str_replace( array_keys( $findreplace ), array_values( $findreplace ), $options['homepage_description'] ) ); $post->sq->og_title = preg_replace( '/%([^\%]+)%/', '{{$1}}', str_replace( array_keys( $findreplace ), array_values( $findreplace ), $options['homepage_facebook_title'] ) ); $post->sq->og_description = preg_replace( '/%([^\%]+)%/', '{{$1}}', str_replace( array_keys( $findreplace ), array_values( $findreplace ), $options['homepage_facebook_description'] ) ); if ( isset( $options['homepage_facebook_image'] ) && $options['homepage_facebook_image'] <> '' ) { $post->sq->og_media = $options['homepage_facebook_image']; } SQ_Classes_ObjController::getClass( 'SQ_Models_Qss' )->saveSqSEO( $url, $post->hash, maybe_serialize( array( 'ID' => 0, 'post_type' => 'home', 'term_id' => 0, 'taxonomy' => '', ) ), maybe_serialize( $post->sq->toArray() ), gmdate( 'Y-m-d H:i:s' ) ); } } } if ( $platform == 'premium-seo-pack' ) { global $wpdb; $tables = $wpdb->get_col( 'SHOW TABLES' ); foreach ( $tables as $table ) { if ( $table == $wpdb->prefix . strtolower( 'psp' ) ) { $table = $wpdb->prefix . "psp"; if ( $rows = $wpdb->get_results( "SELECT * FROM `$table`", OBJECT ) ) { foreach ( $rows as $row ) { $metas[ $row->url_hash ]['post_id'] = $row->post_id; $metas[ $row->url_hash ]['url'] = $row->URL; $metas[ $row->url_hash ]['seo'] = $row->seo; } } break; } } return $metas; } if ( $platform == 'autodescription' ) { if ( $options = get_option( 'autodescription-site-settings' ) ) { /////////////////////////////////////////// /////////////////////////////FIRST PAGE OPTIMIZATION if ( ( isset( $options['homepage_title'] ) && $options['homepage_title'] <> '' ) || isset( $options['homepage_description'] ) && $options['homepage_description'] <> '' ) { $url = home_url(); $post = SQ_Classes_ObjController::getClass( 'SQ_Models_Snippet' )->setHomePage(); $post->sq->doseo = 1; $post->sq->title = $options['homepage_title']; $post->sq->description = $options['homepage_description']; if ( isset( $options['homepage_social_image_url'] ) && $options['homepage_social_image_url'] <> '' ) { $post->sq->og_media = $options['homepage_social_image_url']; } SQ_Classes_ObjController::getClass( 'SQ_Models_Qss' )->saveSqSEO( $url, $post->hash, maybe_serialize( array( 'ID' => 0, 'post_type' => 'home', 'term_id' => 0, 'taxonomy' => '', ) ), maybe_serialize( $post->sq->toArray() ), gmdate( 'Y-m-d H:i:s' ) ); } } } } return $metas; } /** * Create a Squirrly SEO export jsonld * * @return string */ function exportTableData() { global $wpdb; $tables = $wpdb->get_col( 'SHOW TABLES' ); $output = array(); $keys = array( 'title', 'description', 'keywords', 'canonical', 'tw_media', 'tw_title', 'tw_description', 'tw_type', 'og_title', 'og_description', 'og_author', 'og_type', 'og_media', 'optimizations', 'redirect' ); foreach ( $tables as $table ) { if ( $table == $wpdb->prefix . _SQ_DB_ ) { $results = $wpdb->get_results( "SELECT post,seo FROM `$table`" ); foreach ( $results as $row ) { $post = (array) unserialize( $row->post ); $seo = (array) unserialize( $row->seo ); $seo = array_intersect_key( $seo, array_flip( $keys ) ); $output[] = array_merge( $post, $seo ); } break; } } $wpdb->flush(); return json_encode( $output ); } /** * Create a Squirrly SEO Backup * * @return string */ function createTableBackup() { global $wpdb; $tables = $wpdb->get_col( 'SHOW TABLES' ); $output = ''; foreach ( $tables as $table ) { if ( $table == $wpdb->prefix . _SQ_DB_ ) { $result = $wpdb->get_results( "SELECT * FROM `$table`", ARRAY_N ); $columns = $wpdb->get_results( "SHOW COLUMNS FROM `$table`", ARRAY_N ); for ( $i = 0; $i < count( (array) $result ); $i ++ ) { $row = $result[ $i ]; $output .= "INSERT INTO `$table` ("; for ( $col = 0; $col < count( (array) $columns ); $col ++ ) { $output .= ( isset( $columns[ $col ][0] ) ? $columns[ $col ][0] : "''" ); if ( $col < ( count( (array) $columns ) - 1 ) ) { $output .= ','; } } $output .= ') VALUES('; for ( $j = 0; $j < count( (array) $result[0] ); $j ++ ) { $row[ $j ] = str_replace( array( "\'", "'" ), array( "'", "\'" ), $row[ $j ] ); $output .= ( isset( $row[ $j ] ) ? "'" . $row[ $j ] . "'" : "''" ); if ( $j < ( count( (array) $result[0] ) - 1 ) ) { $output .= ','; } } $output .= ")\n"; } $output .= "\n"; break; } } $wpdb->flush(); return $output; } /** * Restore a Squirrly SEO backup * * @param $queries * @param bool $overwrite * * @return bool */ public function executeSql( $queries, $overwrite = true ) { global $wpdb; if ( is_array( $queries ) && ! empty( $queries ) ) { foreach ( (array) $queries as $query ) { $query = trim( $query, PHP_EOL ); if ( ! empty( $query ) && strlen( $query ) > 1 ) { if ( strpos( $query, 'CREATE TABLE' ) !== false ) { continue; } //get each row from query if ( strpos( $query, '(' ) !== false && strpos( $query, ')' ) !== false && strpos( $query, 'VALUES' ) !== false ) { $fields = substr( $query, strpos( $query, '(' ) + 1 ); $fields = substr( $fields, 0, strpos( $fields, ')' ) ); $fields = explode( ",", trim( $fields ) ); $values = substr( $query, strpos( $query, 'VALUES' ) + 6 ); if ( strpos( $query, 'ON DUPLICATE' ) !== false ) { $values = substr( $values, 0, strpos( $values, 'ON DUPLICATE' ) ); } $values = explode( "','", trim( trim( $values ), '();' ) ); $values = array_map( function ( $value ) { return trim( $value, "'" ); }, $values ); //Correct the old backups if ( in_array( 'post_id', $fields ) ) { foreach ( $fields as $index => $field ) { if ( $field == 'post_id' ) { unset( $fields[ $index ] ); unset( $values[ $index ] ); } } } //Make sure the values match with the fields if ( ! empty( $fields ) && ! empty( $values ) && count( $fields ) == count( $values ) ) { $placeholders = array_fill( 0, count( $values ), '%s' ); if ( $overwrite ) { $query = "INSERT INTO `" . $wpdb->prefix . _SQ_DB_ . "` (" . join( ",", $fields ) . ") VALUES (" . join( ",", $placeholders ) . ") ON DUPLICATE KEY UPDATE " . join( " = %s,", $fields ) . " = %s"; } else { $query = "INSERT INTO `" . $wpdb->prefix . _SQ_DB_ . "` (" . join( ",", $fields ) . ") VALUES (" . join( ",", $placeholders ) . ") "; } $wpdb->query( $wpdb->prepare( $query, array_merge( $values, $values ) ) ); } } } } return true; } return false; } }