Linux heracles.o2switch.net 4.18.0-553.62.1.lve.el8.x86_64 #1 SMP Mon Jul 21 17:50:35 UTC 2025 x86_64
/
home
/
ophq1335
/
www
/
wp-content
/
plugins
/
wp-seopress
/
src
/
Thirds
/
MainWP
/
/home/ophq1335/www/wp-content/plugins/wp-seopress/src/Thirds/MainWP/MainWPFunctions.php
<?php // phpcs:ignore /** * This file is used to sync SEOPress settings with MainWP. * * @package SEOPress * @subpackage Thirds * @since 5.4 * @updated 9.4.0 */ if ( ! defined( 'ABSPATH' ) ) { exit; } // Skip MainWP functions if SEOPress PRO < 5.4 to prevent fatal errors. if ( ! is_plugin_active( 'wp-seopress-pro/seopress-pro.php' ) || ! defined( 'SEOPRESS_PRO_VERSION' ) || version_compare( SEOPRESS_PRO_VERSION, '5.4', '>=' ) ) { /** * Get list of SEOPress option names for MainWP sync * * @return array List of option names. */ function seopress_mainwp_get_option_names() { return array( 'seopress_activated', 'seopress_titles_option_name', 'seopress_social_option_name', 'seopress_google_analytics_option_name', 'seopress_instant_indexing_option_name', 'seopress_advanced_option_name', 'seopress_xml_sitemap_option_name', 'seopress_pro_option_name', 'seopress_pro_mu_option_name', 'seopress_pro_license_key', 'seopress_pro_license_status', 'seopress_bot_option_name', 'seopress_toggle', 'seopress_google_analytics_lock_option_name', 'seopress_tools_option_name', 'seopress_dashboard_option_name', ); } /** * Return settings * * @return array */ function seopress_return_settings() { $settings = array(); foreach ( seopress_mainwp_get_option_names() as $option_name ) { $settings[ $option_name ] = get_option( $option_name ); } return $settings; } /** * Seopress do import settings * * @param array $settings The settings to be saved. * * @return void */ function seopress_do_import_settings( $settings ) { // Validate and sanitize settings to prevent type errors. $settings = seopress_validate_import_settings( $settings ); foreach ( seopress_mainwp_get_option_names() as $option_name ) { if ( isset( $settings[ $option_name ] ) && false !== $settings[ $option_name ] ) { update_option( $option_name, $settings[ $option_name ], false ); } } } /** * Validate and sanitize import settings to prevent type errors * * @param array $settings The settings to validate. * * @return array Validated settings. */ function seopress_validate_import_settings( $settings ) { if ( ! is_array( $settings ) ) { return array(); } // Recursively fix double-encoded or malformed serialized data. $settings = array_map( 'seopress_fix_serialized_data', $settings ); return $settings; } /** * Fix serialized data that may have been double-encoded or corrupted during MainWP transmission * * @param mixed $value The value to fix. * * @return mixed Fixed value. */ function seopress_fix_serialized_data( $value ) { // If it's not a string, return as-is. if ( ! is_string( $value ) ) { return $value; } // Check if the string is double-serialized (common MainWP issue). if ( is_serialized( $value ) ) { $unserialized = @unserialize( $value ); // phpcs:ignore WordPress.PHP.NoSilencedErrors.Discouraged, WordPress.PHP.DiscouragedPHPFunctions.serialize_unserialize if ( false !== $unserialized ) { return $unserialized; } } return $value; } /** * Save settings for given option * * @param array $settings The settings to be saved. * @param string $option The option name. * * @return void */ function seopress_mainwp_save_settings( $settings, $option ) { update_option( $option, $settings ); } /** * Flush rewrite rules. * * @return void */ function seopress_flush_rewrite_rules() { flush_rewrite_rules( false ); } }