haiku-atelier-2024/web/app/themes/haiku-atelier-2024/archive-product.php
2025-12-17 16:23:40 +01:00

63 lines
1.8 KiB
PHP
Executable file

<?php
/**
* Le modèle de la Page Boutique (« E-Shop »).
*/
declare(strict_types=1);
use Timber\Timber;
require_once __DIR__ . '/src/inc/TraitementInformations.php';
// Contexte et modèles
$contexte = Timber::context();
$modeles = ['boutique.twig'];
/** @var list<WC_Product> $informations_produits Les informations brutes des Produits. */
$informations_produits = wc_get_products([
'limit' => 12,
'order' => 'DESC',
'orderby' => 'date',
'status' => 'publish',
]);
/** @var mixed $produits Les informations strictement nécessaires pour la grille des Produits. */
$produits = array_map(
callback: recupere_informations_produit_shop(...),
array: $informations_produits,
);
$contexte['produits'] = $produits;
/**
* Charge les Scripts nécessaires pour la page Boutique.
*/
function charge_scripts_page_boutique(): void {
wp_enqueue_style(
handle: 'haiku-atelier-2024-styles-page-boutique',
src: get_template_directory_uri() . '/assets/css/pages/page-boutique.css',
deps: [],
ver: filemtime(get_template_directory() . '/assets/css/pages/page-boutique.css'),
media: 'all',
);
wp_enqueue_script_module(
id: 'haiku-atelier-2024-scripts-page-boutique',
src: get_template_directory_uri() . '/assets/js/scripts-page-boutique.js',
deps: [],
version: filemtime(get_template_directory() . '/assets/js/scripts-page-boutique.js'),
);
wp_enqueue_script_module(
id: 'haiku-atelier-2024-scripts-menu-categories',
src: get_template_directory_uri() . '/assets/js/scripts-menu-categories.js',
deps: [],
version: filemtime(get_template_directory() . '/assets/js/scripts-menu-categories.js'),
);
}
add_action('wp_enqueue_scripts', 'charge_scripts_page_boutique');
// Rendu
Timber::render(
filenames: $modeles,
data: $contexte,
);