OwlCyberSecurity - MANAGER
Edit File: class-compatibility.php
<?php /** * The Compatibility wizard step. * * @since 0.9.0 * @package RankMath * @subpackage RankMath\Wizard * @author Rank Math <support@rankmath.com> */ namespace RankMath\Wizard; use RankMath\Helper; defined( 'ABSPATH' ) || exit; /** * Step class. */ class Compatibility implements Wizard_Step { /** * Get Localized data to be used in the Compatibility step. * * @return array */ public static function get_localized_data() { $php_version = phpversion(); return [ 'conflictingPlugins' => self::get_conflicting_plugins(), 'phpVersion' => phpversion(), 'phpVersionOk' => version_compare( $php_version, rank_math()->php_version, '>' ), 'phpVersionRecommended' => version_compare( $php_version, '7.4', '<' ), 'extensions' => [ 'dom' => extension_loaded( 'dom' ), 'simpleXml' => extension_loaded( 'SimpleXML' ), 'image' => extension_loaded( 'gd' ) || extension_loaded( 'imagick' ), 'mbString' => extension_loaded( 'mbstring' ), 'openSsl' => extension_loaded( 'openssl' ), 'base64Func' => function_exists( 'base64_encode' ) && function_exists( 'base64_decode' ) && (bool) base64_decode( base64_encode( '1' ) ), // phpcs:ignore -- Verified as safe usage. ], ]; } /** * Save handler for step. * * @param array $values Values to save. * * @return bool */ public static function save( $values ) { $settings = wp_parse_args( rank_math()->settings->all_raw(), [ 'general' => '' ] ); $settings['general']['setup_mode'] = ! empty( $values['setup_mode'] ) ? sanitize_text_field( $values['setup_mode'] ) : 'easy'; if ( 'custom' === $settings['general']['setup_mode'] ) { // Don't change, use custom imported value. return true; } Helper::update_all_settings( $settings['general'], null, null ); return true; } /** * Get conflicting plugins. * * @return array */ private static function get_conflicting_plugins() { $plugins_found = []; $active_plugins = get_option( 'active_plugins' ); $conflicting_plugins = self::get_conflicting_plugins_list(); foreach ( $conflicting_plugins as $plugin_slug => $plugin_name ) { if ( in_array( $plugin_slug, $active_plugins, true ) !== false ) { $plugins_found[ $plugin_slug ] = $plugin_name; } } return $plugins_found; } /** * Return list of conflicting plugins. * * @return array List of plugins in path => name format. */ private static function get_conflicting_plugins_list() { $plugins = [ '2-click-socialmedia-buttons/2-click-socialmedia-buttons.php' => '2 Click Social Media Buttons.', 'add-link-to-facebook/add-link-to-facebook.php' => 'Add Link to Facebook.', 'extended-wp-reset/extended-wp-reset.php' => 'Extended WP Reset.', 'add-meta-tags/add-meta-tags.php' => 'Add Meta Tags.', 'all-in-one-seo-pack/all_in_one_seo_pack.php' => 'All In One SEO Pack', 'easy-facebook-share-thumbnails/esft.php' => 'Easy Facebook Share Thumbnail.', 'facebook/facebook.php' => 'Facebook (official plugin).', 'facebook-awd/AWD_facebook.php' => 'Facebook AWD All in one.', 'facebook-featured-image-and-open-graph-meta-tags/fb-featured-image.php' => 'Facebook Featured Image & OG Meta Tags.', 'facebook-meta-tags/facebook-metatags.php' => 'Facebook Meta Tags.', 'wonderm00ns-simple-facebook-open-graph-tags/wonderm00n-open-graph.php' => 'Facebook Open Graph Meta Tags for WordPress.', 'facebook-revised-open-graph-meta-tag/index.php' => 'Facebook Revised Open Graph Meta Tag.', 'facebook-thumb-fixer/_facebook-thumb-fixer.php' => 'Facebook Thumb Fixer.', 'facebook-and-digg-thumbnail-generator/facebook-and-digg-thumbnail-generator.php' => 'Fedmich\'s Facebook Open Graph Meta.', 'network-publisher/networkpub.php' => 'Network Publisher.', 'nextgen-facebook/nextgen-facebook.php' => 'NextGEN Facebook OG.', 'opengraph/opengraph.php' => 'Open Graph.', 'open-graph-protocol-framework/open-graph-protocol-framework.php' => 'Open Graph Protocol Framework.', 'seo-facebook-comments/seofacebook.php' => 'SEO Facebook Comments.', 'seo-ultimate/seo-ultimate.php' => 'SEO Ultimate.', 'sexybookmarks/sexy-bookmarks.php' => 'Shareaholic.', 'shareaholic/sexy-bookmarks.php' => 'Shareaholic.', 'sharepress/sharepress.php' => 'SharePress.', 'simple-facebook-connect/sfc.php' => 'Simple Facebook Connect.', 'social-discussions/social-discussions.php' => 'Social Discussions.', 'social-sharing-toolkit/social_sharing_toolkit.php' => 'Social Sharing Toolkit.', 'socialize/socialize.php' => 'Socialize.', 'only-tweet-like-share-and-google-1/tweet-like-plusone.php' => 'Tweet, Like, Google +1 and Share.', 'wordbooker/wordbooker.php' => 'Wordbooker.', 'wordpress-seo/wp-seo.php' => 'Yoast SEO', 'wordpress-seo-premium/wp-seo-premium.php' => 'Yoast SEO Premium', 'wp-seopress/seopress.php' => 'SEOPress', 'wp-seopress-pro/seopress-pro.php' => 'SEOPress Pro', 'wpsso/wpsso.php' => 'WordPress Social Sharing Optimization.', 'wp-caregiver/wp-caregiver.php' => 'WP Caregiver.', 'wp-facebook-like-send-open-graph-meta/wp-facebook-like-send-open-graph-meta.php' => 'WP Facebook Like Send & Open Graph Meta.', 'wp-facebook-open-graph-protocol/wp-facebook-ogp.php' => 'WP Facebook Open Graph protocol.', 'wp-ogp/wp-ogp.php' => 'WP-OGP.', 'zoltonorg-social-plugin/zosp.php' => 'Zolton.org Social Plugin.', 'all-in-one-schemaorg-rich-snippets/index.php' => 'All In One Schema Rich Snippets.', 'wp-schema-pro/wp-schema-pro.php' => 'Schema Pro', 'no-category-base-wpml/no-category-base-wpml.php' => 'No Category Base (WPML)', 'all-404-redirect-to-homepage/all-404-redirect-to-homepage.php' => 'All 404 Redirect to Homepage', 'remove-category-url/remove-category-url.php' => 'Remove Category URL', ]; $plugins = Helper::is_module_active( 'redirections' ) ? array_merge( $plugins, self::get_redirection_conflicting_plugins() ) : $plugins; $plugins = Helper::is_module_active( 'sitemap' ) ? array_merge( $plugins, self::get_sitemap_conflicting_plugins() ) : $plugins; return $plugins; } /** * Redirection: conflicting plugins. * * @return array */ private static function get_redirection_conflicting_plugins() { return [ 'redirection/redirection.php' => 'Redirection', ]; } /** * Sitemap: conflicting plugins. * * @return array */ private static function get_sitemap_conflicting_plugins() { return [ 'google-sitemap-plugin/google-sitemap-plugin.php' => 'Google Sitemap (BestWebSoft).', 'xml-sitemaps/xml-sitemaps.php' => 'XML Sitemaps (Denis de Bernardy and Mike Koepke).', 'bwp-google-xml-sitemaps/bwp-simple-gxs.php' => 'Better WordPress Google XML Sitemaps (Khang Minh).', 'google-sitemap-generator/sitemap.php' => 'Google XML Sitemaps (Arne Brachhold).', 'xml-sitemap-feed/xml-sitemap.php' => 'XML Sitemap & Google News feeds (RavanH).', 'google-monthly-xml-sitemap/monthly-xml-sitemap.php' => 'Google Monthly XML Sitemap (Andrea Pernici).', 'simple-google-sitemap-xml/simple-google-sitemap-xml.php' => 'Simple Google Sitemap XML (iTx Technologies).', 'another-simple-xml-sitemap/another-simple-xml-sitemap.php' => 'Another Simple XML Sitemap.', 'xml-maps/google-sitemap.php' => 'Xml Sitemap (Jason Martens).', 'google-xml-sitemap-generator-by-anton-dachauer/adachauer-google-xml-sitemap.php' => 'Google XML Sitemap Generator by Anton Dachauer (Anton Dachauer).', 'wp-xml-sitemap/wp-xml-sitemap.php' => 'WP XML Sitemap (Team Vivacity).', 'sitemap-generator-for-webmasters/sitemap.php' => 'Sitemap Generator for Webmasters (iwebslogtech).', 'xml-sitemap-xml-sitemapcouk/xmls.php' => 'XML Sitemap - XML-Sitemap.co.uk (Simon Hancox).', 'sewn-in-xml-sitemap/sewn-xml-sitemap.php' => 'Sewn In XML Sitemap (jcow).', 'rps-sitemap-generator/rps-sitemap-generator.php' => 'RPS Sitemap Generator (redpixelstudios).', ]; } }