4 ) { include_once( ABSPATH . 'wp-admin/includes/plugin-install.php' ); //for plugins_api.. } require_once trailingslashit( dirname( __FILE__ ) ) . 'sitemap-core.php'; require_once trailingslashit( dirname( __FILE__ ) ) . 'class-googlesitemapgeneratorindexnow.php'; //add class indexNow file include_once( ABSPATH . 'wp-admin/includes/file.php' ); include_once( ABSPATH . 'wp-admin/includes/misc.php' ); include_once( ABSPATH . 'wp-admin/includes/class-wp-upgrader.php' ); define( 'SM_SUPPORTFEED_URL', 'https://wordpress.org/support/plugin/google-sitemap-generator/feed/' ); define( 'SM_BETA_USER_INFO_URL', 'https://api.auctollo.com/beta/consent' ); define( 'SM_LEARN_MORE_API_URL', 'https://api.auctollo.com/lp' ); define( 'SM_BANNER_HIDE_DURATION_IN_DAYS', 7 ); define( 'SM_CONFLICT_PLUGIN_LIST', 'All in One SEO,Yoast SEO, Jetpack, Wordpress Sitemap' ); add_action( 'admin_init', 'register_consent', 1 ); add_action( 'admin_head', 'ga_header' ); add_action( 'admin_footer', 'ga_footer' ); add_action( 'plugins_loaded', function() { load_plugin_textdomain( 'google-sitemap-generator', false, dirname( plugin_basename( __FILE__ ) ) . '/lang' ); }); add_action( 'transition_post_status', 'indexnow_after_post_save', 10, 3 ); //send to indexNow add_action('wpmu_new_blog', 'disable_conflict_sitemaps_on_new_blog', 10, 6); function disable_conflict_sitemaps_on_new_blog($blog_id, $user_id, $domain, $path, $site_id, $meta) { switch_to_blog($blog_id); $aioseo_option_key = 'aioseo_options'; if (get_option($aioseo_option_key) !== null) { $aioseo_options = get_option($aioseo_option_key); $aioseo_options = json_decode($aioseo_options, true); $aioseo_options['sitemap']['general']['enable'] = false; update_option($aioseo_option_key, json_encode($aioseo_options)); } restore_current_blog(); } add_action('parse_request', 'plugin_check_sitemap_request'); function plugin_check_sitemap_request($wp) { if(is_multisite()) { if(isset(get_blog_option( get_current_blog_id(), 'sm_options' )['sm_b_sitemap_name'])) { $sm_sitemap_name = get_blog_option( get_current_blog_id(), 'sm_options' )['sm_b_sitemap_name']; } } else if(isset(get_option('sm_options')['sm_b_sitemap_name'])) $sm_sitemap_name = get_option('sm_options')['sm_b_sitemap_name']; if(isset($wp->request) && $wp->request === 'wp-sitemap.xml' && $sm_sitemap_name !== 'sitemap') { status_header(404); nocache_headers(); include( get_query_template( '404' ) ); exit; } } /** * Google analytics . */ function ga_header() { if ( ! ( defined( 'DOING_AJAX' ) && DOING_AJAX ) ) { global $wp_version; $window_url = 'http://' . $_SERVER[ 'HTTP_HOST' ] . $_SERVER[ 'REQUEST_URI' ]; $parts = wp_parse_url( $window_url ); $current_page = ''; $window_url = home_url() . $_SERVER[ 'REQUEST_URI' ]; $parts = wp_parse_url( $window_url ); $current_page = ''; $current_url = $_SERVER['REQUEST_URI']; if ( isset( $parts['query'] ) ) { parse_str( $parts['query'], $query ); if ( isset( $query['page'] ) ) { $current_page = $query['page']; } } $plugin_version = GoogleSitemapGeneratorLoader::get_version(); $consent_value = get_option( 'sm_user_consent' ); echo ""; if ( 'yes' === $consent_value && 'google-sitemap-generator/sitemap.php' === $current_page ) { echo " "; } if ( isset( $parts['query'] ) ) { parse_str( $parts['query'], $query ); if ( isset( $query['page'] ) ) { $current_page = $query['page']; if ( strpos( $current_page, 'google-sitemap-generator' ) !== false ) { echo " "; } else { echo ''; } } else { echo ''; } } else { echo ""; return; } } } /** * Google analytics . */ function ga_footer() { if ( ! ( defined( 'DOING_AJAX' ) && DOING_AJAX ) ) { $banner_discarded_count = get_option( 'sm_beta_banner_discarded_count' ); if ( 1 === $banner_discarded_count || '1' === $banner_discarded_count ) { echo ''; } } } /** * Check if the requirements of the sitemap plugin are met and loads the actual loader * * @package sitemap * @since 4.0 */ function sm_setup() { $fail = false; // Check minimum PHP requirements, which is 5.2 at the moment. if ( version_compare( PHP_VERSION, '5.2', '<' ) ) { add_action( 'admin_notices', 'sm_add_php_version_error' ); $fail = true; } // Check minimum WP requirements, which is 3.3 at the moment. if ( version_compare( $GLOBALS['wp_version'], '3.3', '<' ) ) { add_action( 'admin_notices', 'sm_add_wp_version_error' ); $fail = true; } if ( ! $fail ) { require_once trailingslashit( dirname( __FILE__ ) ) . 'class-googlesitemapgeneratorloader.php'; } } /** * Adds a notice to the admin interface that the WordPress version is too old for the plugin * * @package sitemap * @since 4.0 */ function sm_add_wp_version_error() { /* translators: %s: search term */ echo '

' . esc_html( __( 'Your WordPress version is too old for XML Sitemaps.', 'google-sitemap-generator' ) ) . '
' . esc_html( sprintf( __( 'Unfortunately this release of Google XML Sitemaps requires at least WordPress %4$s. You are using WordPress %2$s, which is out-dated and insecure. Please upgrade or go to active plugins and deactivate the Google XML Sitemaps plugin to hide this message. You can download an older version of this plugin from the plugin website.', 'google-sitemap-generator' ), 'plugins.php?plugin_status=active', esc_html( $GLOBALS['wp_version'] ), 'http://www.arnebrachhold.de/redir/sitemap-home/', '3.3' ) ) . '

'; } /** * Adds a notice to the admin interface that the WordPress version is too old for the plugin * * @package sitemap * @since 4.0 */ function sm_add_php_version_error() { /* translators: %s: search term */ echo '

' . esc_html( __( 'Your PHP version is too old for XML Sitemaps.', 'google-sitemap-generator' ) ) . '
' . esc_html( sprintf( __( 'Unfortunately this release of Google XML Sitemaps requires at least PHP %4$s. You are using PHP %2$s, which is out-dated and insecure. Please ask your web host to update your PHP installation or go to active plugins and deactivate the Google XML Sitemaps plugin to hide this message. You can download an older version of this plugin from the plugin website.', 'google-sitemap-generator' ), 'plugins.php?plugin_status=active', PHP_VERSION, 'http://www.arnebrachhold.de/redir/sitemap-home/', '5.2' ) ) . '

'; } /** * Returns the file used to load the sitemap plugin * * @package sitemap * @since 4.0 * @return string The path and file of the sitemap plugin entry point */ function sm_get_init_file() { return __FILE__; } /** * Register beta user consent function. */ function register_consent() { if ( ! ( defined( 'DOING_AJAX' ) && DOING_AJAX ) ) { if ( is_user_logged_in() && current_user_can( 'manage_options' ) ) { if ( isset( $_POST['user_consent_yes'] ) ) { if (isset($_POST['user_consent_yesno_nonce_token']) && check_admin_referer('user_consent_yesno_nonce', 'user_consent_yesno_nonce_token')){ update_option( 'sm_user_consent', 'yes' ); } } if ( isset( $_POST['user_consent_no'] ) ) { if (isset($_POST['user_consent_yesno_nonce_token']) && check_admin_referer('user_consent_yesno_nonce', 'user_consent_yesno_nonce_token')){ update_option( 'sm_user_consent', 'no' ); } } if ( isset( $_GET['action'] ) ) { if ( 'no' === $_GET['action'] ) { if ( $_SERVER['QUERY_STRING'] ) { if( strpos( $_SERVER['QUERY_STRING'], 'google-sitemap-generator' ) ) { update_option( 'sm_show_beta_banner', 'false' ); $count = get_option( 'sm_beta_banner_discarded_count' ); if ( gettype( $count ) !== 'boolean' ) { update_option( 'sm_beta_banner_discarded_count', (int) $count + 1 ); } else { add_option( 'sm_beta_banner_discarded_on', gmdate( 'Y/m/d' ) ); update_option( 'sm_beta_banner_discarded_count', (int) 1 ); } GoogleSitemapGeneratorLoader::setup_rewrite_hooks(); GoogleSitemapGeneratorLoader::activate_rewrite(); } else { add_option( 'sm_beta_notice_dismissed_from_wp_admin', 'true' ); } } else { add_option( 'sm_beta_notice_dismissed_from_wp_admin', 'true' ); } } } if ( isset( $_POST['enable_updates'] ) ) { if (isset($_POST['enable_updates_nonce_token']) && check_admin_referer('enable_updates_nonce', 'enable_updates_nonce_token')){ if ( 'true' === $_POST['enable_updates'] ) { $auto_update_plugins = get_option( 'auto_update_plugins' ); if ( ! is_array( $auto_update_plugins ) ) { $auto_update_plugins = array(); } array_push( $auto_update_plugins, 'google-sitemap-generator/sitemap.php' ); update_option( 'auto_update_plugins', $auto_update_plugins ); } elseif ( 'false' === $_POST['enable_updates'] ) { update_option( 'sm_hide_auto_update_banner', 'yes' ); } } } /* if ( isset( $_POST['disable_plugin'] ) ) { if (isset($_POST['disable_plugin_sitemap_nonce_token']) && check_admin_referer('disable_plugin_sitemap_nonce', 'disable_plugin_sitemap_nonce_token')){ if ( strpos( $_POST['disable_plugin'], 'all_in_one' ) !== false ) { $default_value = 'default'; $aio_seo_options = get_option( 'aioseo_options', $default_value ); if ( $aio_seo_options !== $default_value ) { $aio_seo_options = json_decode( $aio_seo_options ); $aio_seo_options->sitemap->general->enable = 0; update_option( 'aioseo_options', json_encode( $aio_seo_options ) ); } } elseif( strpos( $_POST['disable_plugin'], 'wp-seo' ) !== false ) { $yoast_options = get_option( 'wpseo' ); $yoast_options['enable_xml_sitemap'] = false; update_option( 'wpseo', $yoast_options ); } } } */ } } $updateUrlRules = get_option('sm_options'); if(!isset($updateUrlRules['sm_b_rewrites2']) || $updateUrlRules['sm_b_rewrites2'] == false){ GoogleSitemapGeneratorLoader::setup_rewrite_hooks(); GoogleSitemapGeneratorLoader::activate_rewrite(); GoogleSitemapGeneratorLoader::activation_indexnow_setup(); if (isset($updateUrlRules['sm_b_rewrites2'])) { $updateUrlRules['sm_b_rewrites2'] = true; update_option('sm_options', $updateUrlRules); } else { $updateUrlRules['sm_b_rewrites2'] = true; add_option('sm_options', $updateUrlRules); update_option('sm_options', $updateUrlRules); } } if(isset($updateUrlRules['sm_links_page'] )){ $sm_links_page = intval($updateUrlRules['sm_links_page']); if($sm_links_page < 1000) { $updateUrlRules['sm_links_page'] = 1000; update_option('sm_options', $updateUrlRules); } } if(!isset($updateUrlRules['sm_b_activate_indexnow']) || $updateUrlRules['sm_b_activate_indexnow'] == false){ $updateUrlRules['sm_b_activate_indexnow'] = true; $updateUrlRules['sm_b_indexnow'] = true; update_option('sm_options', $updateUrlRules); } } function disable_plugins_callback(){ if (current_user_can('manage_options')) { check_ajax_referer('disable_plugin_sitemap_nonce', 'nonce'); $pluginList = sanitize_text_field($_POST['pluginList']); $pluginsToDisable = explode(',', $pluginList); foreach ($pluginsToDisable as $plugin) { if ($plugin === 'all-in-one-seo-pack/all_in_one_seo_pack.php') { /* all in one seo deactivation */ $aioseo_option_key = 'aioseo_options'; if ($aioseo_options = get_option($aioseo_option_key)) { $aioseo_options = json_decode($aioseo_options, true); $aioseo_options['sitemap']['general']['enable'] = false; update_option($aioseo_option_key, json_encode($aioseo_options)); } } if ($plugin === 'wordpress-seo/wp-seo.php') { /* yoast sitemap deactivation */ if ($yoast_options = get_option('wpseo')) { $yoast_options['enable_xml_sitemap'] = false; update_option('wpseo', $yoast_options); } } if ($plugin === 'jetpack/jetpack.php') { /* jetpack sitemap deactivation */ $modules_array = get_option('jetpack_active_modules'); if(is_array($modules_array)) { if (in_array('sitemaps', $modules_array)) { $key = array_search('sitemaps', $modules_array); unset($modules_array[$key]); update_option('jetpack_active_modules', $modules_array); } } } if ($plugin === 'wordpress-sitemap') { /* Wordpress sitemap deactivation */ $options = get_option('sm_options', array()); if (isset($options['sm_wp_sitemap_status'])) $options['sm_wp_sitemap_status'] = false; else $options['sm_wp_sitemap_status'] = false; update_option('sm_options', $options); } } echo 'Plugins sitemaps disabled successfully'; wp_die(); } } function conflict_plugins_admin_notice(){ GoogleSitemapGeneratorLoader::create_notice_conflict_plugin(); } /* send to index updated url */ function indexnow_after_post_save($new_status, $old_status, $post) { $indexnow = get_option('sm_options'); $indexNowStatus = isset($indexnow['sm_b_indexnow']) ? $indexnow['sm_b_indexnow'] : false; if ($indexNowStatus === true) { $newUrlToIndex = new GoogleSitemapGeneratorIndexNow(); $is_changed = false; $type = "add"; if ($old_status === 'publish' && $new_status === 'publish') { $is_changed = true; $type = "update"; } else if ($old_status != 'publish' && $new_status === 'publish') { $is_changed = true; $type = "add"; } else if ($old_status === 'publish' && $new_status === 'trash') { $is_changed = true; $type = "delete"; } if ($is_changed) $newUrlToIndex->start(get_permalink($post)); } } // Don't do anything if this file was called directly. if ( defined( 'ABSPATH' ) && defined( 'WPINC' ) && ! class_exists( 'GoogleSitemapGeneratorLoader', false ) ) { sm_setup(); if(isset(get_option('sm_options')['sm_wp_sitemap_status']) ) $wp_sitemap_status = get_option('sm_options')['sm_wp_sitemap_status']; else $wp_sitemap_status = true; if($wp_sitemap_status = true) $wp_sitemap_status = '__return_true'; else $wp_sitemap_status = '__return_false'; add_filter( 'wp_sitemaps_enabled', $wp_sitemap_status ); add_action('wp_ajax_disable_plugins', 'disable_plugins_callback'); add_action('admin_notices', 'conflict_plugins_admin_notice'); }