403Webshell
Server IP : 35.201.19.92  /  Your IP : 216.73.216.212
Web Server : nginx
System : Linux pod-200961 6.8.0-1055-gke #61-Ubuntu SMP Tue May 26 22:57:42 UTC 2026 x86_64
User : fpm200098 ( 200098)
PHP Version : 8.2.34
Disable Function : apache_child_terminate,apache_get_modules,apache_get_version,apache_getenv,apache_note,apache_setenv,disk_free_space,disk_total_space,diskfreespace,dl,exec,fastcgi_finish_request,link,opcache_compile_file,opcache_get_configuration,opcache_invalidate,opcache_is_script_cached,opcache_reset,passthru,pclose,pcntl_exec,popen,posix_getpid,posix_getppid,posix_getpwuid,posix_kill,posix_mkfifo,posix_setegid,posix_seteuid,posix_setgid,posix_setpgid,posix_setsid,posix_setuid,posix_uname,proc_close,proc_get_status,proc_nice,proc_open,proc_terminate,realpath_cache_get,shell_exec,show_source,symlink,system
MySQL : OFF  |  cURL : ON  |  WGET : OFF  |  Perl : ON  |  Python : OFF  |  Sudo : OFF  |  Pkexec : OFF
Directory :  /nas/content/live/questfamilyday/wp-content/plugins/wp-seopress-pro/

Upload File :
current_dir [ Writeable ] document_root [ Writeable ]

 

Command :


[ Back ]     

Current File : /nas/content/live/questfamilyday/wp-content/plugins/wp-seopress-pro/seopress-pro-functions.php
<?php

defined('ABSPATH') or exit('Please don&rsquo;t call the plugin directly. Thanks :)');

use SEOPressPro\Core\Kernel;

/**
 * Get a service.
 *
 * @since 4.3.0
 *
 * @param string $service
 *
 * @return object
 */
function seopress_pro_get_service($service)
{
    return Kernel::getContainer()->getServiceByName($service);
}

/**
 * Enable Google Suggestions
 *
 * @since 5.0
 *
 * @param boolean true
 *
 * @return boolean
 */
add_filter('seopress_ui_metabox_google_suggest', '__return_true');

/**
 * Get Page Speed Mobile Score
 *
 * @since 5.3
 *
 * @return string
 * @param mixed $json
 * @param mixed $mobile
 * @param mixed $is_mobile
 */
function seopress_pro_get_ps_score($json, $is_mobile = false)
{
    if ( ! is_array($json)) {
        return;
    }
    if (array_key_first($json) === 'error') {
        return;
    }

    $ps_score = $json['lighthouseResult']['categories']['performance']['score'] ? ($json['lighthouseResult']['categories']['performance']['score']) * 100 : '';
    if ($is_mobile === true) {
        $i18n = __('Mobile', 'wp-seopress-pro');
    } else {
        $i18n = __('Desktop', 'wp-seopress-pro');
    }

    if ($ps_score >= 0 && $ps_score < 49) {
        $class_score = 'red';
    } elseif ($ps_score >= 50 && $ps_score < 90) {
        $class_score = 'yellow';
    } elseif ($ps_score >= 90 && $ps_score <= 100) {
        $class_score = 'green';
    } else {
        $class_score = 'grey';
    }

    $perf_score = '<div class="wrap-chart">
    <p>' . $i18n . '</p>
        <div class="ps-score ' . $class_score . '">
            <svg role="img" aria-hidden="true" focusable="false" width="100%" height="100%" viewBox="0 0 36 36" version="1.1" xmlns="http://www.w3.org/2000/svg">
                <path stroke-dasharray="100, 100" d="M18 2.0845 a 15.9155 15.9155 0 0 1 0 31.831 a 15.9155 15.9155 0 0 1 0 -31.831"></path>
                <path id="bar" stroke-dasharray="' . $ps_score . ', 100" d="M18 2.0845 a 15.9155 15.9155 0 0 1 0 31.831 a 15.9155 15.9155 0 0 1 0 -31.831"></path>
            </svg>
            <span>' . $ps_score . '%</span>
        </div>
    </div>';

    return $perf_score;
}

/**
 * Get Core Web Vitals Score
 *
 * @since 5.3
 *
 * @return string
 * @param mixed $json
 */
function seopress_pro_get_cwv_score($json)
{
    if (array_key_first($json) === 'error') {
        return;
    }
    $core_web_vitals_score = false;

    if ( ! isset($json['loadingExperience']['metrics'])) {
        return $core_web_vitals_score = null;
    }

    if (
        (isset($json['loadingExperience']['metrics']['FIRST_INPUT_DELAY_MS']['category']) && $json['loadingExperience']['metrics']['FIRST_INPUT_DELAY_MS']['category'] === 'FAST') &&
                (isset($json['loadingExperience']['metrics']['LARGEST_CONTENTFUL_PAINT_MS']['category']) && $json['loadingExperience']['metrics']['LARGEST_CONTENTFUL_PAINT_MS']['category'] === 'FAST') &&
                (isset($json['loadingExperience']['metrics']['CUMULATIVE_LAYOUT_SHIFT_SCORE']['category']) && $json['loadingExperience']['metrics']['CUMULATIVE_LAYOUT_SHIFT_SCORE']['category'] === 'FAST')) {
        $core_web_vitals_score = true;
    } elseif (
        (isset($json['loadingExperience']['metrics']['LARGEST_CONTENTFUL_PAINT_MS']['category']) && $json['loadingExperience']['metrics']['LARGEST_CONTENTFUL_PAINT_MS']['category'] === 'FAST') &&
        (isset($json['loadingExperience']['metrics']['CUMULATIVE_LAYOUT_SHIFT_SCORE']['category']) && $json['loadingExperience']['metrics']['CUMULATIVE_LAYOUT_SHIFT_SCORE']['category'] === 'FAST')
    ) {
        $core_web_vitals_score = true;
    }

    return $core_web_vitals_score;
}

/**
 * Get GA Dashboard widget role option
 *
 * @return string
 */
function seopress_advanced_security_ga_widget_role_option()
{
    $service = seopress_get_service('AdvancedOption');

    if ( ! empty($service) || ! method_exists($service, 'getSecurityGaWidgetRole')) {
        $data = get_option('seopress_advanced_option_name');
        if (isset($data['seopress_advanced_security_ga_widget_role'])) {
            return $data['seopress_advanced_security_ga_widget_role'];
        }
    }

    return $service->getSecurityGaWidgetRole();
}

/**
 * Check GA Dashboard widget capability
 *
 * @return boolean
 */
function seopress_advanced_security_ga_widget_check()
{
    if (empty(seopress_advanced_security_ga_widget_role_option())) {
        $seopress_ga_dashboard_widget_cap = 'edit_dashboard';
        $seopress_ga_dashboard_widget_cap = apply_filters('seopress_ga_dashboard_widget_cap', $seopress_ga_dashboard_widget_cap);

        return current_user_can($seopress_ga_dashboard_widget_cap);
    }

    global $wp_roles;

    //Get current user role
    if ( ! isset(wp_get_current_user()->roles[0])) {
        return;
    }
    $seopress_user_role = wp_get_current_user()->roles[0];

    if (array_key_exists($seopress_user_role, seopress_advanced_security_ga_widget_role_option())) {
        return true;
    }

    return;
}

/**
 * Get Matomo Dashboard widget role option
 *
 * @since 6.0
 *
 * @return string
 */
function seopress_advanced_security_matomo_widget_role_option()
{
    $service = seopress_get_service('AdvancedOption');

    if ( ! empty($service) || ! method_exists($service, 'getSecurityMatomoWidgetRole')) {
        $data = get_option('seopress_advanced_option_name');
        if (isset($data['seopress_advanced_security_matomo_widget_role'])) {
            return $data['seopress_advanced_security_matomo_widget_role'];
        }
    }

    return $service->getSecurityMatomoWidgetRole();
}

/**
 * Check Matomo Dashboard widget capability
 *
 * @since 6.0
 *
 * @return boolean
 */
function seopress_advanced_security_matomo_widget_check()
{
    if (empty(seopress_advanced_security_matomo_widget_role_option())) {
        $cap = 'edit_dashboard';
        $cap = apply_filters('seopress_matomo_dashboard_widget_cap', $cap);

        return current_user_can($cap);
    }

    global $wp_roles;

    //Get current user role
    if ( ! isset(wp_get_current_user()->roles[0])) {
        return;
    }
    $seopress_user_role = wp_get_current_user()->roles[0];

    if (array_key_exists($seopress_user_role, seopress_advanced_security_matomo_widget_role_option())) {
        return true;
    }

    return;
}

/**
 * Retrocompatibility for PHP < 8.0
 */
if ( ! function_exists('str_starts_with')) {
    function str_starts_with($haystack, $needle)
    {
        return (string)$needle !== '' && strncmp($haystack, $needle, strlen($needle)) === 0;
    }
}

/**
 * Get LB types list
 */
function seopress_lb_types_list()
{
    $seopress_lb_types = [
        'LocalBusiness' => __('Local Business (default)', 'wp-seopress-pro'),
        'AnimalShelter' => __('Animal Shelter', 'wp-seopress-pro'),
        'AutomotiveBusiness' => __('Automotive Business', 'wp-seopress-pro'),
        'AutoBodyShop' => __('|-Auto Body Shop', 'wp-seopress-pro'),
        'AutoDealer' => __('|-Auto Dealer', 'wp-seopress-pro'),
        'AutoPartsStore' => __('|-Auto Parts Store', 'wp-seopress-pro'),
        'AutoRental' => __('|-Auto Rental', 'wp-seopress-pro'),
        'AutoRepair' => __('|-Auto Repair', 'wp-seopress-pro'),
        'AutoWash' => __('|-AutoWash', 'wp-seopress-pro'),
        'GasStation' => __('|-Gas Station', 'wp-seopress-pro'),
        'MotorcycleDealer' => __('|-Motorcycle Dealer', 'wp-seopress-pro'),
        'MotorcycleRepair' => __('|-Motorcycle Repair', 'wp-seopress-pro'),
        'ChildCare' => __('Child Care', 'wp-seopress-pro'),
        'DryCleaningOrLaundry' => __('Dry Cleaning Or Laundry', 'wp-seopress-pro'),
        'EmergencyService' => __('Emergency Service', 'wp-seopress-pro'),
        'FireStation' => __('|-Fire Station', 'wp-seopress-pro'),
        'Hospital' => __('|-Hospital', 'wp-seopress-pro'),
        'PoliceStation' => __('|-Police Station', 'wp-seopress-pro'),
        'EmploymentAgency' => __('Employment Agency', 'wp-seopress-pro'),
        'EntertainmentBusiness' => __('Entertainment Business', 'wp-seopress-pro'),
        'AdultEntertainment' => __('|-Adult Entertainment', 'wp-seopress-pro'),
        'AmusementPark' => __('|-Amusement Park', 'wp-seopress-pro'),
        'ArtGallery' => __('|-Art Gallery', 'wp-seopress-pro'),
        'Casino' => __('|-Casino', 'wp-seopress-pro'),
        'ComedyClub' => __('|-Comedy Club', 'wp-seopress-pro'),
        'MovieTheater' => __('|-Movie Theater', 'wp-seopress-pro'),
        'NightClub' => __('|-Night Club', 'wp-seopress-pro'),
        'FinancialService' => __('Financial Service', 'wp-seopress-pro'),
        'AccountingService' => __('|-Accounting Service', 'wp-seopress-pro'),
        'AutomatedTeller' => __('|-Automated Teller', 'wp-seopress-pro'),
        'BankOrCreditUnion' => __('|-Bank Or Credit Union', 'wp-seopress-pro'),
        'InsuranceAgency' => __('|-Insurance Agency', 'wp-seopress-pro'),
        'FoodEstablishment' => __('Food Establishment', 'wp-seopress-pro'),
        'Bakery' => __('|-Bakery', 'wp-seopress-pro'),
        'BarOrPub' => __('|-Bar Or Pub', 'wp-seopress-pro'),
        'Brewery' => __('|-Brewery', 'wp-seopress-pro'),
        'CafeOrCoffeeShop' => __('|-Cafe Or Coffee Shop', 'wp-seopress-pro'),
        'FastFoodRestaurant' => __('|-Fast Food Restaurant', 'wp-seopress-pro'),
        'IceCreamShop' => __('|-Ice Cream Shop', 'wp-seopress-pro'),
        'Restaurant' => __('|-Restaurant', 'wp-seopress-pro'),
        'Winery' => __('|-Winery', 'wp-seopress-pro'),
        'GovernmentOffice' => __('Government Office', 'wp-seopress-pro'),
        'PostOffice' => __('|-PostOffice', 'wp-seopress-pro'),
        'HealthAndBeautyBusiness' => __('Health And Beauty Business', 'wp-seopress-pro'),
        'BeautySalon' => __('|-Beauty Salon', 'wp-seopress-pro'),
        'DaySpa' => __('|-Day Spa', 'wp-seopress-pro'),
        'HairSalon' => __('|-Hair Salon', 'wp-seopress-pro'),
        'HealthClub' => __('|-Health Club', 'wp-seopress-pro'),
        'NailSalon' => __('|-Nail Salon', 'wp-seopress-pro'),
        'TattooParlor' => __('|-Tattoo Parlor', 'wp-seopress-pro'),
        'HomeAndConstructionBusiness' => __('Home And Construction Business', 'wp-seopress-pro'),
        'Electrician' => __('|-Electrician', 'wp-seopress-pro'),
        'HVACBusiness' => __('|-HVAC Business', 'wp-seopress-pro'),
        'HousePainter' => __('|-House Painter', 'wp-seopress-pro'),
        'Locksmith' => __('|-Locksmith', 'wp-seopress-pro'),
        'MovingCompany' => __('|-Moving Company', 'wp-seopress-pro'),
        'Plumber' => __('|-Plumber', 'wp-seopress-pro'),
        'RoofingContractor' => __('|-Roofing Contractor', 'wp-seopress-pro'),
        'InternetCafe' => __('Internet Cafe', 'wp-seopress-pro'),
        'MedicalBusiness' => __('Medical Business', 'wp-seopress-pro'),
        'CommunityHealth' => __('|-Community Health', 'wp-seopress-pro'),
        'Dentist' => __('|-Dentist', 'wp-seopress-pro'),
        'Dermatology' => __('|-Dermatology', 'wp-seopress-pro'),
        'DietNutrition' => __('|-Diet Nutrition', 'wp-seopress-pro'),
        'Emergency' => __('|-Emergency', 'wp-seopress-pro'),
        'Gynecologic' => __('|-Gynecologic', 'wp-seopress-pro'),
        'MedicalClinic' => __('|-Medical Clinic', 'wp-seopress-pro'),
        'Midwifery' => __('|-Midwifery', 'wp-seopress-pro'),
        'Nursing' => __('|-Nursing', 'wp-seopress-pro'),
        'Obstetric' => __('|-Obstetric', 'wp-seopress-pro'),
        'Oncologic' => __('|-Oncologic', 'wp-seopress-pro'),
        'Optician' => __('|-Optician', 'wp-seopress-pro'),
        'Optometric' => __('|-Optometric', 'wp-seopress-pro'),
        'Otolaryngologic' => __('|-Otolaryngologic', 'wp-seopress-pro'),
        'Pediatric' => __('|-Pediatric', 'wp-seopress-pro'),
        'Pharmacy' => __('|-Pharmacy', 'wp-seopress-pro'),
        'Physician' => __('|-Physician', 'wp-seopress-pro'),
        'Physiotherapy' => __('|-Physiotherapy', 'wp-seopress-pro'),
        'PlasticSurgery' => __('|-Plastic Surgery', 'wp-seopress-pro'),
        'Podiatric' => __('|-Podiatric', 'wp-seopress-pro'),
        'PrimaryCare' => __('|-Primary Care', 'wp-seopress-pro'),
        'Psychiatric' => __('|-Psychiatric', 'wp-seopress-pro'),
        'PublicHealth' => __('|-Public Health', 'wp-seopress-pro'),
        'VeterinaryCare' => __('|-Veterinary Care', 'wp-seopress-pro'),
        'LegalService' => __('Legal Service', 'wp-seopress-pro'),
        'Attorney' => __('|-Attorney', 'wp-seopress-pro'),
        'Notary' => __('|-Notary', 'wp-seopress-pro'),
        'Library' => __('Library', 'wp-seopress-pro'),
        'LodgingBusiness' => __('Lodging Business', 'wp-seopress-pro'),
        'BedAndBreakfast' => __('|-Bed And Breakfast', 'wp-seopress-pro'),
        'Campground' => __('|-Campground', 'wp-seopress-pro'),
        'Hostel' => __('|-Hostel', 'wp-seopress-pro'),
        'Hotel' => __('|-Hotel', 'wp-seopress-pro'),
        'Motel' => __('|-Motel', 'wp-seopress-pro'),
        'Resort' => __('|-Resort', 'wp-seopress-pro'),
        'ProfessionalService' => __('Professional Service', 'wp-seopress-pro'),
        'RadioStation' => __('Radio Station', 'wp-seopress-pro'),
        'RealEstateAgent' => __('Real Estate Agent', 'wp-seopress-pro'),
        'RecyclingCenter' => __('Recycling Center', 'wp-seopress-pro'),
        'SelfStorage' => __('Real Self Storage', 'wp-seopress-pro'),
        'ShoppingCenter' => __('Shopping Center', 'wp-seopress-pro'),
        'SportsActivityLocation' => __('Sports Activity Location', 'wp-seopress-pro'),
        'BowlingAlley' => __('|-Bowling Alley', 'wp-seopress-pro'),
        'ExerciseGym' => __('|-Exercise Gym', 'wp-seopress-pro'),
        'GolfCourse' => __('|-Golf Course', 'wp-seopress-pro'),
        'HealthClub' => __('|-Health Club', 'wp-seopress-pro'),
        'PublicSwimmingPool' => __('|-Public Swimming Pool', 'wp-seopress-pro'),
        'SkiResort' => __('|-Ski Resort', 'wp-seopress-pro'),
        'SportsClub' => __('|-Sports Club', 'wp-seopress-pro'),
        'StadiumOrArena' => __('|-Stadium Or Arena', 'wp-seopress-pro'),
        'TennisComplex' => __('|-Tennis Complex', 'wp-seopress-pro'),
        'Store' => __('Store', 'wp-seopress-pro'),
        'AutoPartsStore' => __('|-Auto Parts Store', 'wp-seopress-pro'),
        'BikeStore' => __('|-Bike Store', 'wp-seopress-pro'),
        'BookStore' => __('|-Book Store', 'wp-seopress-pro'),
        'ClothingStore' => __('|-Clothing Store', 'wp-seopress-pro'),
        'ComputerStore' => __('|-Computer Store', 'wp-seopress-pro'),
        'ConvenienceStore' => __('|-Convenience Store', 'wp-seopress-pro'),
        'DepartmentStore' => __('|-Department Store', 'wp-seopress-pro'),
        'ElectronicsStore' => __('|-Electronics Store', 'wp-seopress-pro'),
        'Florist' => __('|-Florist', 'wp-seopress-pro'),
        'FurnitureStore' => __('|-Furniture Store', 'wp-seopress-pro'),
        'GardenStore' => __('|-Garden Store', 'wp-seopress-pro'),
        'GroceryStore' => __('|-Grocery Store', 'wp-seopress-pro'),
        'HardwareStore' => __('|-Hardware Store', 'wp-seopress-pro'),
        'HobbyShop' => __('|-Hobby Shop', 'wp-seopress-pro'),
        'HomeGoodsStore' => __('|-Home Goods Store', 'wp-seopress-pro'),
        'JewelryStore' => __('|-Jewelry Store', 'wp-seopress-pro'),
        'LiquorStore' => __('|-Liquor Store', 'wp-seopress-pro'),
        'MensClothingStore' => __('|-Mens Clothing Store', 'wp-seopress-pro'),
        'MobilePhoneStore' => __('|-Mobile Phone Store', 'wp-seopress-pro'),
        'MovieRentalStore' => __('|-Movie Rental Store', 'wp-seopress-pro'),
        'MusicStore' => __('|-Music Store', 'wp-seopress-pro'),
        'OfficeEquipmentStore' => __('|-Office Equipment Store', 'wp-seopress-pro'),
        'OutletStore' => __('|-Outlet Store', 'wp-seopress-pro'),
        'PawnShop' => __('|-Pawn Shop', 'wp-seopress-pro'),
        'PetStore' => __('|-Pet Store', 'wp-seopress-pro'),
        'ShoeStore' => __('|-Shoe Store', 'wp-seopress-pro'),
        'SportingGoodsStore' => __('|-Sporting Goods Store', 'wp-seopress-pro'),
        'TireShop' => __('|-Tire Shop', 'wp-seopress-pro'),
        'ToyStore' => __('|-Toy Store', 'wp-seopress-pro'),
        'WholesaleStore' => __('|-Wholesale Store', 'wp-seopress-pro'),
        'TelevisionStation' => __('|-Wholesale Store', 'wp-seopress-pro'),
        'TouristInformationCenter' => __('Tourist Information Center', 'wp-seopress-pro'),
        'TravelAgency' => __('Travel Agency', 'wp-seopress-pro'),
    ];

    $seopress_lb_types = apply_filters('seopress_schemas_lb_types', $seopress_lb_types);

    return $seopress_lb_types;
}

/*
 * Filter Notifications manager
 * @since 6.7
 * @return array
 */
$versions = get_option('seopress_versions');
$actual_version = isset($versions['free']) ? $versions['free'] : 0;

if (version_compare($actual_version, '6.7', '>=') || (defined('SCRIPT_DEBUG') && SCRIPT_DEBUG === true)) {
    add_filter('seopress_notifications_center_item', 'seopress_pro_notifications_list', 10, 5);
    function seopress_pro_notifications_list($args, $alerts_info, $alerts_low, $alerts_medium, $alerts_high)
    {
        $optionProService = seopress_pro_get_service('OptionPro');

        if ($optionProService !== null && method_exists($optionProService, 'get404Cleaning')) {
            if ($optionProService->get404Cleaning() === '1' && ! wp_next_scheduled('seopress_404_cron_cleaning')) {

                $args[] = [
                    'id' => 'notice-title-tag',
                    'title' => __('You have enabled 404 cleaning BUT the scheduled task is not running.', 'wp-seopress-pro'),
                    'desc' => __('To solve this, please disable and re-enable SEOPress PRO. No data will be lost.', 'wp-seopress-pro'),
                    'impact' => [
                        'medium' => __('Medium impact', 'wp-seopress-pro'),
                    ],
                    'deleteable' => false,
                    'status' => true,
                ];
            }
        }
        if ('1' === seopress_get_toggle_option('rich-snippets')) {
            if ('1' !== seopress_pro_get_service('OptionPro')->getRichSnippetEnable()) {
                $alerts_high++;
                $args[] = [
                    'id' => 'notice-schemas-metabox',
                    'title' => __('Structured data types is not correctly enabled', 'wp-seopress-pro'),
                    'desc' => __('Please enable <strong>Structured Data Types metabox for your posts, pages and custom post types</strong> option in order to use automatic and manual schemas. (SEO > PRO > Structured Data Types (schema.org)', 'wp-seopress-pro'),
                    'impact' => [
                        'high' => __('High impact', 'wp-seopress-pro'),
                    ],
                    'link' => [
                        'en' => esc_url(admin_url('admin.php?page=seopress-pro-page#tab=tab_seopress_rich_snippets')),
                        'title' => __('Fix this!', 'wp-seopress-pro'),
                        'external' => false,
                    ],
                    'deleteable' => false,
                    'status' => true,
                ];
            }
        }

        if ('valid' != get_option('seopress_pro_license_status')) {
            $alerts_info++;

            $args[] = [
                'id' => 'notice-license',
                'title' => __('You have to enter your licence key to get updates and support', 'wp-seopress-pro'),
                'desc' => __('Please activate the SEOPress PRO license key to automatically receive updates to guarantee you the best user experience possible.', 'wp-seopress-pro'),
                'impact' => [
                    'info' => __('License', 'wp-seopress-pro'),
                ],
                'link' => [
                    'en' => admin_url('admin.php?page=seopress-license'),
                    'title' => __('Fix this!', 'wp-seopress-pro'),
                    'external' => false,
                ],
                'deleteable' => false,
                'status' => true,
            ];
        }

        $status = false;
        if (file_exists(ABSPATH . 'robots.txt') && '1' !== seopress_pro_get_service('NoticeOption')->getNoticeRobotsTxt()) {
            $alerts_high++;
            $status = true;

            $args[] = [
                'id' => 'notice-robots-txt',
                'title' => __('A physical robots.txt file has been found', 'wp-seopress-pro'),
                'desc' => __('A robots.txt file already exists at the root of your site. We invite you to remove it so we can handle it virtually.', 'wp-seopress-pro'),
                'impact' => [
                    'high' => __('High impact', 'wp-seopress-pro'),
                ],
                'deleteable' => true,
                'status' => $status ? $status : false,
            ];
        }

        //GA4: property ID === measurement
        if ('1' === seopress_get_toggle_option('google-analytics')) {
            if (!empty(seopress_get_service('GoogleAnalyticsOption')->getGA4PropertId()) && !empty(seopress_get_service('GoogleAnalyticsOption')->getGA4())) {
                $status = false;
                if (seopress_get_service('GoogleAnalyticsOption')->getGA4PropertId() === seopress_get_service('GoogleAnalyticsOption')->getGA4()) {
                    $alerts_info++;
                    $status = true;
                    $args[] = [
                        'id'     => 'notice-ga4-property-id',
                        'title'  => __('Your GA4 property ID is incorrectly set!', 'wp-seopress-pro'),
                        'desc'   => __('To get your Google Analytics stats in dashboard, your GA4 property ID must NOT be equals to your GA4 measurement ID.', 'wp-seopress-pro'),
                        'impact' => [
                            'high' => __('High impact', 'wp-seopress-pro'),
                        ],
                        'link' => [
                            'en'       => admin_url('admin.php?page=seopress-google-analytics#seopress-analytics-stats'),
                            'title' => __('Fix this!', 'wp-seopress-pro'),
                            'external' => false,
                        ],
                        'deleteable' => false,
                        'status' => $status ? $status : false,
                    ];
                }
            }
        }

        $args['impact']['high'] = $alerts_high;
        $args['impact']['medium'] = $alerts_medium;
        $args['impact']['low'] = $alerts_low;
        $args['impact']['info'] = $alerts_info;

        return $args;
    }
}

/**
 * Get IP address.
 *
 * @return (string) $ip
 **/
function seopress_pro_get_ip_address() {
	foreach (['HTTP_CLIENT_IP', 'HTTP_CF_CONNECTING_IP', 'HTTP_VIA', 'HTTP_X_FORWARDED_FOR', 'HTTP_X_FORWARDED', 'HTTP_X_CLUSTER_CLIENT_IP', 'HTTP_FORWARDED_FOR', 'HTTP_FORWARDED', 'REMOTE_ADDR'] as $key) {
		if (true === array_key_exists($key, $_SERVER)) {
			foreach (explode(',', $_SERVER[$key]) as $ip) {
				$ip = trim($ip); // just to be safe

				return apply_filters('seopress_404_ip', $ip ? $ip : '');
			}
		}
	}
}

Youez - 2016 - github.com/yon3zu
LinuXploit