haiku-atelier-2024/web/app/themes/haiku-atelier-2024/page-cart.php
2024-09-24 23:20:34 +02:00

66 lines
2.1 KiB
PHP

<?php
/**
* Le modèle de la Page Panier (« Cart »).
*/
declare(strict_types=1);
use Timber\Timber;
use function Crell\fp\pipe;
// Importe la fonction pour récupérer les informations affichées des Produits dans le Panier
require_once __DIR__ . "/src/inc/TraitementInformations.php";
// Contexte et modèles
$contexte = Timber::context();
$modeles = ["panier.twig"];
// Récupère les informations affichés des Produits du Panier
$panier = [];
$sous_total_panier = WC()->cart->get_subtotal();
$total_panier = WC()->cart->get_total("");
foreach (WC()->cart->get_cart() as $cart_item_key => $cart_item) {
$panier[$cart_item_key] = [
"attributs" => recupere_et_formate_attributs_produit($cart_item["data"]?->get_attributes()),
"cle" => $cart_item_key,
"id_variation" => $cart_item["variation_id"],
"image" => pipe(
$cart_item["data"]?->get_image_id(),
fn($id) => wp_get_attachment_image($id, "medium", false, ["loading" => "lazy"]),
),
"prix" => $cart_item["data"]?->get_price(),
"quantite" => $cart_item["quantity"],
"titre" => $cart_item["data"]?->get_title(),
];
}
$contexte["total_panier"] = $total_panier;
$contexte["sous_total_panier"] = $sous_total_panier;
$contexte["produits_panier"] = $panier;
// echo "<br><br><br><pre>";
// echo "<pre>" . print_r($panier) . "</pre>";
// print_r(WC()->cart->get_cart());
// print_r($panier);
// echo "</pre>";
// Charge les scripts et styles de la page
function charge_scripts_styles_page_panier(): void {
wp_enqueue_style(
handle: "haiku-atelier-2024-styles-page-panier",
src: get_template_directory_uri() . "/assets/css/pages/page-panier.css",
deps: [],
ver: filemtime(get_template_directory() . "/assets/css/pages/page-panier.css"),
media: false,
);
wp_enqueue_script_module(
id: "haiku-atelier-2024-scripts-page-panier",
src: get_template_directory_uri() . "/assets/js/scripts-page-panier.js",
deps: [],
version: filemtime(get_template_directory() . "/assets/js/scripts-page-panier.js"),
);
}
add_action("wp_enqueue_scripts", "charge_scripts_styles_page_panier");
// Rendu
Timber::render(filenames: $modeles, data: $contexte);