haiku-atelier-2024/web/app/themes/haiku-atelier-2024/taxonomy-product_cat.php
2025-06-19 16:10:12 +02:00

57 lines
2 KiB
PHP
Executable file

<?php
/**
* Le modèle de la Page d'Archive d'une Catégorie de Produits.
*/
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 array<WC_Product> $informations_produits Les informations brutes des Produits. */
$informations_produits = wc_get_products([
"category" => [get_queried_object()?->slug],
"limit" => 12,
"order" => "DESC",
"orderby" => "date",
"status" => "publish",
]);
/** @var InformationsProduitShop $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;
$id_categorie_produits = array_shift($informations_produits)?->get_category_ids()[0] ?? "";
$contexte["id_categorie_produits"] = $id_categorie_produits;
/**
* Charge les Scripts nécessaires pour la page d'Archive.
*/
function charge_scripts_page_archive_produits(): 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_archive_produits");
// Rendu
Timber::render(filenames: $modeles, data: $contexte);