From 4b5cadbc6ebe2dfae9663cd7f6873c099cdb23e8 Mon Sep 17 00:00:00 2001 From: gcch Date: Wed, 29 Apr 2026 10:45:49 +0200 Subject: [PATCH] =?UTF-8?q?ref(boutique)=20injecte=20les=20=C3=A9tats=20da?= =?UTF-8?q?ns=20la=20page=20sous=20forme=20de=20JSON?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../haiku-atelier-2024/archive-product.php | 17 +++++++++++++++++ .../haiku-atelier-2024/taxonomy-product_cat.php | 16 ++++++++++++++++ .../haiku-atelier-2024/views/boutique.twig | 14 ++++++-------- 3 files changed, 39 insertions(+), 8 deletions(-) diff --git a/web/app/themes/haiku-atelier-2024/archive-product.php b/web/app/themes/haiku-atelier-2024/archive-product.php index 235f751e..2a97be56 100755 --- a/web/app/themes/haiku-atelier-2024/archive-product.php +++ b/web/app/themes/haiku-atelier-2024/archive-product.php @@ -10,12 +10,18 @@ namespace HaikuAtelier; use HaikuAtelier\Data\Product; use HaikuAtelier\WP\Resource; +use Roots\WPConfig\Config; use Timber\Timber; use WC_Product; use function add_action; use function array_map; +use function assert; +use function base64_encode; +use function is_string; use function wc_get_products; +use function wp_create_nonce; +use function wp_json_encode; $context = Timber::context(); $templates = ['boutique.twig']; @@ -26,6 +32,17 @@ $wc_products = wc_get_products(['limit' => 12, 'order' => 'DESC', 'orderby' => ' $products = array_map(callback: Product::from_wc_product(...), array: $wc_products); $context['products'] = $products; +// Injecte les états initiaux des données du Produit sous forme de JSON dans le contexte. +$page_states = [ + 'nonce' => wp_create_nonce('wc_store_api'), + 'authString' => base64_encode( + Config::get('WOOCOMMERCE_API_CONSUMER_KEY') . ':' . Config::get('WOOCOMMERCE_API_CONSUMER_SECRET'), + ), +] + |> wp_json_encode(...); +assert(is_string($page_states)); +$context['page_states'] = $page_states; + add_action('wp_enqueue_scripts', function (): void { Resource::enqueue_style_file( handle: 'haiku-atelier-2024-styles-page-boutique', diff --git a/web/app/themes/haiku-atelier-2024/taxonomy-product_cat.php b/web/app/themes/haiku-atelier-2024/taxonomy-product_cat.php index 1e61c152..a589bd00 100755 --- a/web/app/themes/haiku-atelier-2024/taxonomy-product_cat.php +++ b/web/app/themes/haiku-atelier-2024/taxonomy-product_cat.php @@ -11,15 +11,20 @@ namespace HaikuAtelier; use HaikuAtelier\Data\Product; use HaikuAtelier\WP\Resource; use Illuminate\Support\Arr; +use Roots\WPConfig\Config; use Timber\Timber; use WC_Product; use WP_Term; use function add_action; use function assert; +use function base64_encode; use function get_queried_object; use function is_array; +use function is_string; use function wc_get_products; +use function wp_create_nonce; +use function wp_json_encode; $context = Timber::context(); $templates = ['boutique.twig']; @@ -48,6 +53,17 @@ $products = wc_get_products([ $context['products'] = $products; $context['category_id'] = $current_term->term_id; +// Injecte les états initiaux des données du Produit sous forme de JSON dans le contexte. +$page_states = [ + 'nonce' => wp_create_nonce('wc_store_api'), + 'authString' => base64_encode( + Config::get('WOOCOMMERCE_API_CONSUMER_KEY') . ':' . Config::get('WOOCOMMERCE_API_CONSUMER_SECRET'), + ), +] + |> wp_json_encode(...); +assert(is_string($page_states)); +$context['page_states'] = $page_states; + add_action('wp_enqueue_scripts', function (): void { Resource::enqueue_style_file( handle: 'haiku-atelier-2024-styles-page-boutique', diff --git a/web/app/themes/haiku-atelier-2024/views/boutique.twig b/web/app/themes/haiku-atelier-2024/views/boutique.twig index 39f87d9c..96c07369 100755 --- a/web/app/themes/haiku-atelier-2024/views/boutique.twig +++ b/web/app/themes/haiku-atelier-2024/views/boutique.twig @@ -3,14 +3,12 @@ {% block head %} {{ include('parts/en-tetes-backend.twig') }} - {% endblock head %}