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:
@@ -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;
|
||||
|
||||
}
|
||||
@@ -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;
|
||||
}
|
||||
}
|
||||
@@ -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();
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
@@ -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
|
||||
);
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user