From 8c71a69c1bf5d0586ed93509b5b7e4383d86aa39 Mon Sep 17 00:00:00 2001 From: gcch Date: Sat, 13 Dec 2025 17:37:47 +0100 Subject: [PATCH] =?UTF-8?q?fonc(stock)=20impl=C3=A9mente=20gestion=20basiq?= =?UTF-8?q?ue=20du=20stock?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- compose.yaml | 1 - cspell.json | 12 ++++++--- .../haiku-atelier-2024/single-product.php | 2 +- .../src/inc/TraitementInformations.php | 12 ++++----- .../pages/produit/informations-produit.twig | 27 +++++++++++++------ 5 files changed, 35 insertions(+), 19 deletions(-) diff --git a/compose.yaml b/compose.yaml index ac119961..2e19d78b 100755 --- a/compose.yaml +++ b/compose.yaml @@ -124,7 +124,6 @@ services: - "net.core.somaxconn=512" volumes: - "./containers/conf/valkey.conf:/usr/local/etc/valkey/valkey.conf:ro" - - "./containers/data/valkey:/data:rw" wordpress: container_name: "haikuatelier.fr-wordpress" depends_on: diff --git a/cspell.json b/cspell.json index af99fda9..0ed8adde 100644 --- a/cspell.json +++ b/cspell.json @@ -1,5 +1,8 @@ { - "dictionaries": ["fr-fr", "en-gb"], + "dictionaries": [ + "fr-fr", + "en-gb" + ], "words": [ "GLITCHTIP", "Vali", @@ -38,6 +41,9 @@ "wpautop", "ERRMODE", "laravel", - "multishipping" + "multishipping", + "multiformats", + "curryfication", + "giftcard" ] -} +} \ No newline at end of file diff --git a/web/app/themes/haiku-atelier-2024/single-product.php b/web/app/themes/haiku-atelier-2024/single-product.php index aadd315c..cdc4a319 100755 --- a/web/app/themes/haiku-atelier-2024/single-product.php +++ b/web/app/themes/haiku-atelier-2024/single-product.php @@ -27,7 +27,7 @@ $donnees_produit = recupere_informations_produit_page_produit(wc_get_product()); /** @var bool $est_variation Le Produit est-il Variable (possède-t-il des variations ?) */ $est_produit_variable = 'variable' === $produit->get_type(); -/** @var InformationsVariation[] $variations_produit Un tableau des informations d'affichage de chaque Variation du Produit */ +/** @var array $variations_produit Un tableau des informations d'affichage de chaque Variation du Produit */ $variations_produit = pipe( // Récupère les IDs des Enfants (Variations) wc_get_product()->get_children(), diff --git a/web/app/themes/haiku-atelier-2024/src/inc/TraitementInformations.php b/web/app/themes/haiku-atelier-2024/src/inc/TraitementInformations.php index 91f30e7c..d9d706d6 100755 --- a/web/app/themes/haiku-atelier-2024/src/inc/TraitementInformations.php +++ b/web/app/themes/haiku-atelier-2024/src/inc/TraitementInformations.php @@ -23,7 +23,7 @@ function genere_balise_img_multiformats($id, $lazy = false) { } $url = wp_get_attachment_image_url($id, 'full'); - $chemin = realpath(get_attached_file($id)) ? realpath(get_attached_file($id)) : ''; + $chemin = realpath(get_attached_file($id)) ?: realpath(get_attached_file($id)); $alt = get_post_meta($id, '_wp_attachment_image_alt', true); $dimensions = $chemin ? getimagesize($chemin) : ['', '']; @@ -104,7 +104,7 @@ function tri_variations_par_prix_descendant($a, $b) { * * @param WC_Product $produit * - * @return InformationsProduitShop un tableau avec uniquement les informations pour la Grille de Produits + * @return mixed un tableau avec uniquement les informations pour la Grille de Produits */ function recupere_informations_produit_shop($produit) { /** @var int $prix_maximal Le prix maximal du Produit. */ @@ -124,9 +124,7 @@ function recupere_informations_produit_shop($produit) { // Récupère le Prix de la Variation la plus chère fn($prix) => collect($prix)->max(), // Récupère le Prix pour la Variation la plus chère OU le prix du Produit simple - fn($prix_variation_maximale) => isset($prix_variation_maximale) - ? $prix_variation_maximale - : $produit->get_price(), + fn($prix_variation_maximale) => $prix_variation_maximale ?? $produit->get_price(), ); // TEMP: Cas de la Carte Cadeau où aucun prix ne doit être affiché. Idéalement utiliser un système d'étiquettes pour ces cas là. @@ -161,7 +159,7 @@ function recupere_informations_produit_shop($produit) { /** * Retourne un tableau associatif des informations affichées sur la page Produit depuis les données brutes d'un Produit. * - * @param mixed $donnees_produit + * @param WC_Product $donnees_produit */ function recupere_informations_produit_page_produit($donnees_produit): mixed { return [ @@ -197,6 +195,8 @@ function recupere_informations_produit_page_produit($donnees_produit): mixed { ), // Slug du Produit 'slug' => $donnees_produit->get_slug(), + // Quantité de Produit en stock + 'stock' => $donnees_produit->get_stock_quantity() ?? 1, // Variations du Produit 'variations_ids' => $donnees_produit->get_children(), // URL du Produit diff --git a/web/app/themes/haiku-atelier-2024/views/parts/pages/produit/informations-produit.twig b/web/app/themes/haiku-atelier-2024/views/parts/pages/produit/informations-produit.twig index e3ce30b8..78013053 100755 --- a/web/app/themes/haiku-atelier-2024/views/parts/pages/produit/informations-produit.twig +++ b/web/app/themes/haiku-atelier-2024/views/parts/pages/produit/informations-produit.twig @@ -107,13 +107,24 @@
- + {% if produit.stock > 0 %} + + {% else %} + + {% endif %}