Les Produits de la Catégorie affichée. */ $products = wc_get_products([ 'category' => [$current_term->slug], 'limit' => 12, 'order' => 'DESC', 'orderby' => 'date', 'status' => 'publish', ]) |> function (/** @var list|stdClass */ mixed $products): array { assert(is_array($products), 'Les Produits de la Catégorie doivent être un tableau.'); return $products; } |> (static fn(/** @var list */ array $products): array => Arr::map( $products, Product::from_wc_product(...), )); $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', path: '/assets/css/pages/page-boutique.css', ); Resource::enqueue_script_module_file( id: 'haiku-atelier-2024-scripts-page-boutique', path: '/assets/js/scripts-page-boutique.js', ); Resource::enqueue_script_module_file( id: 'haiku-atelier-2024-scripts-menu-categories', path: '/assets/js/scripts-menu-categories.js', ); }); // Rendu Timber::render(filenames: $templates, data: $context);