feat: initial ACRIB WordPress deployment

- 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
This commit is contained in:
Malin
2026-05-19 19:25:59 +02:00
commit f3ff7b7186
6119 changed files with 1984255 additions and 0 deletions

View File

@@ -0,0 +1,25 @@
<?php declare( strict_types=1 );
namespace KadenceWP\KadenceBlocks\Shutdown\Contracts;
use KadenceWP\KadenceBlocks\Shutdown\Shutdown_Provider;
/**
* Any class that utilizes the Shutdown Handler to perform
* a task should implement this contract and be added to
* the collection.
*
* @see Shutdown_Provider::register()
*/
interface Terminable {
/**
* Perform a task on shutdown.
*
* @action shutdown
*
* @return void
*/
public function terminate(): void;
}

View File

@@ -0,0 +1,30 @@
<?php declare( strict_types=1 );
namespace KadenceWP\KadenceBlocks\Shutdown;
use KadenceWP\KadenceBlocks\Shutdown\Contracts\Terminable;
/**
* A collection of tasks that will run on the WordPress shutdown action.
*/
final class Shutdown_Collection {
/**
* @var Terminable[]
*/
private array $tasks;
/**
* @param Terminable[] $tasks The tasks to process.
*/
public function __construct( array $tasks = [] ) {
$this->tasks = $tasks;
}
/**
* @return Terminable[]
*/
public function all(): array {
return $this->tasks;
}
}

View File

@@ -0,0 +1,47 @@
<?php declare( strict_types=1 );
namespace KadenceWP\KadenceBlocks\Shutdown;
/**
* Process different tasks during the WordPress shutdown action.
*
* @see Shutdown_Provider::register()
*/
final class Shutdown_Handler {
/**
* @var Shutdown_Collection
*/
private $collection;
public function __construct( Shutdown_Collection $collection ) {
$this->collection = $collection;
}
/**
* If running on PHP-FPM, this will return the request, but continue processing
* any code after in the same thread, which means it instantly sends the request back
* to the browser without needing to wait for the code after it to process.
*
* @action shutdown
*
* @return void
*/
public function handle(): void {
// So far, there is no reason to process this unless this is a REST request.
if ( ! defined( 'REST_REQUEST' ) || ! REST_REQUEST ) {
return;
}
// Return request early, if possible.
if ( function_exists( 'fastcgi_finish_request' ) ) {
fastcgi_finish_request();
}
// Process all Terminable tasks in the background.
foreach ( $this->collection->all() as $task ) {
$task->terminate();
}
}
}

View File

@@ -0,0 +1,39 @@
<?php declare( strict_types=1 );
namespace KadenceWP\KadenceBlocks\Shutdown;
use KadenceWP\KadenceBlocks\Cache\Ai_Cache;
use KadenceWP\KadenceBlocks\Cache\Block_Library_Cache;
use KadenceWP\KadenceBlocks\Image_Downloader\Cache_Primer;
use KadenceWP\KadenceBlocks\StellarWP\ProphecyMonorepo\Container\Contracts\Provider;
final class Shutdown_Provider extends Provider {
/**
* @inheritDoc
*/
public function register(): void {
$this->container->when( Shutdown_Collection::class )
->needs( '$tasks' )
->give(
[
// Add any terminable tasks to the collection to run on shutdown.
// Important: these will run in the order provided.
$this->container->get( Cache_Primer::class ),
$this->container->get( Block_Library_Cache::class ),
$this->container->get( Ai_Cache::class ),
]
);
// Don't register shutdown hooks if we're uninstalling or WordPress is installing.
if ( defined( 'WP_UNINSTALL_PLUGIN' ) || wp_installing() ) {
return;
}
add_action(
'shutdown',
$this->container->callback( Shutdown_Handler::class, 'handle' ),
1
);
}
}