66 lines
2.1 KiB
PHP
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);
|