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
/
Helpers
/
/home/ophq1335/www/wp-content/plugins/wp-seopress/src/Helpers/VersionCompatibility.php
<?php namespace SEOPress\Helpers; if ( ! defined( 'ABSPATH' ) ) { exit; } /** * Version Compatibility Helper * * Centralized version checking for cross-plugin features that require * both FREE and PRO versions to meet minimum requirements. * * @since 9.4.0 */ abstract class VersionCompatibility { /** * Check if both FREE and PRO meet minimum version requirements. * * @since 9.4.0 * * @param string $min_free_version Minimum FREE version required. * @param string $min_pro_version Minimum PRO version required. * @return array Array with 'compatible' (bool) and 'message' (string) keys. */ public static function checkVersions( $min_free_version, $min_pro_version ) { $free_version = defined( 'SEOPRESS_VERSION' ) ? SEOPRESS_VERSION : '0'; $pro_version = defined( 'SEOPRESS_PRO_VERSION' ) ? SEOPRESS_PRO_VERSION : '0'; // Dev mode bypass - versions are {VERSION} in development. if ( '{VERSION}' === $free_version || '{VERSION}' === $pro_version ) { return array( 'compatible' => true, 'message' => '', ); } // Check FREE version. if ( version_compare( $free_version, $min_free_version, '<' ) ) { return array( 'compatible' => false, 'message' => sprintf( /* translators: 1: required version, 2: current version */ __( 'This feature requires SEOPress (free) version %1$s or higher. Current version: %2$s. Please update SEOPress.', 'wp-seopress' ), $min_free_version, $free_version ), ); } // Check PRO version. if ( version_compare( $pro_version, $min_pro_version, '<' ) ) { return array( 'compatible' => false, 'message' => sprintf( /* translators: 1: required version, 2: current version */ __( 'This feature requires SEOPress PRO version %1$s or higher. Current version: %2$s. Please update SEOPress PRO.', 'wp-seopress-pro' ), $min_pro_version, $pro_version ), ); } return array( 'compatible' => true, 'message' => '', ); } /** * Get version check response for REST API. * * Convenience method for REST API endpoints to check version compatibility * and return an error response if versions don't meet requirements. * * @since 9.4.0 * * @param string $min_free_version Minimum FREE version required. * @param string $min_pro_version Minimum PRO version required. * @return \WP_REST_Response|null Returns error response if incompatible, null if compatible. */ public static function getRestErrorResponse( $min_free_version, $min_pro_version ) { $check = self::checkVersions( $min_free_version, $min_pro_version ); if ( ! $check['compatible'] ) { return new \WP_REST_Response( array( 'message' => $check['message'], 'content' => '', ), 400 ); } return null; } }