- WordPress 6.9.4 (es_ES) with Kadence theme - Homepage: Hero, La Asociación, Pilares, Beneficios, Eventos, Miembros, Hazte Miembro, Contacto - Brand identity: #13294b navy, #a12932 burgundy, #c69c48 gold - Fonts: Raleway (headings) + Source Sans 3 (body) + Lato (UI) - Plugins: Kadence Blocks, Polylang, Contact Form 7 - Custom CSS with full brand styling and responsive layout - HTTPS enforced via wp-config.php proxy detection
37 lines
1.0 KiB
PHP
37 lines
1.0 KiB
PHP
<?php declare( strict_types=1 );
|
|
|
|
namespace KadenceWP\KadenceBlocks\Optimizer\Request;
|
|
|
|
use KadenceWP\KadenceBlocks\StellarWP\SuperGlobals\SuperGlobals as SG;
|
|
|
|
final class Request {
|
|
|
|
public const QUERY_NOCACHE = 'nocache';
|
|
public const QUERY_TOKEN = 'perf_token';
|
|
public const QUERY_OPTIMIZER_PREVIEW = 'kb_optimizer_preview';
|
|
public const MIN_LENGTH = 5;
|
|
|
|
/**
|
|
* Check if this request is an optimizer request.
|
|
*
|
|
* @return bool
|
|
*/
|
|
public function is_optimizer_request(): bool {
|
|
$no_cache = SG::get_get_var( self::QUERY_NOCACHE );
|
|
$token = SG::get_get_var( self::QUERY_TOKEN );
|
|
|
|
return $this->is_valid_param( $no_cache ) && $this->is_valid_param( $token );
|
|
}
|
|
|
|
/**
|
|
* Validate a request parameter: must be an alphanumeric string and a minimum length.
|
|
*
|
|
* @param mixed $value The query parameter value.
|
|
*
|
|
* @return bool
|
|
*/
|
|
private function is_valid_param( $value ): bool {
|
|
return is_string( $value ) && strlen( $value ) >= self::MIN_LENGTH && ctype_alnum( $value );
|
|
}
|
|
}
|