2026-04-05
This commit is contained in:
parent
5f835ca4e6
commit
2971f5516d
62 changed files with 439 additions and 497 deletions
|
|
@ -8,7 +8,6 @@ declare(strict_types=1);
|
|||
|
||||
namespace HaikuAtelier;
|
||||
|
||||
use Exception;
|
||||
use HaikuAtelier\Data\Product;
|
||||
use HaikuAtelier\WP\Resource;
|
||||
use Illuminate\Support\Arr;
|
||||
|
|
@ -16,38 +15,36 @@ use Timber\Timber;
|
|||
use WC_Product;
|
||||
use WP_Term;
|
||||
|
||||
require_once __DIR__ . '/src/inc/TraitementInformations.php';
|
||||
use function add_action;
|
||||
use function assert;
|
||||
use function get_queried_object;
|
||||
use function is_array;
|
||||
use function wc_get_products;
|
||||
|
||||
$context = Timber::context();
|
||||
$templates = ['boutique.twig'];
|
||||
|
||||
/** @var WP_Term */
|
||||
/** @var WP_Term La Catégorie affichée. */
|
||||
$current_term = get_queried_object();
|
||||
$category_slug = $current_term->slug;
|
||||
|
||||
/** @var list<WC_Product> $raw_products Les informations brutes des Produits. */
|
||||
$raw_products = wc_get_products([
|
||||
'category' => [$category_slug],
|
||||
/** @var list<Product> 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<WC_Product>|stdClass */ mixed $products): array {
|
||||
assert(is_array($products), 'Les Produits de la Catégorie doivent être un tableau.');
|
||||
return $products;
|
||||
}
|
||||
|> (static fn(/** @var list<WC_Product> */ array $products): array => Arr::map($products, Product::new(...)));
|
||||
|
||||
/** @var list<Product> */
|
||||
$products = Arr::map($raw_products, Product::new(...));
|
||||
$context['products'] = $products;
|
||||
$context['category_id'] = $current_term->term_id;
|
||||
|
||||
/** @var string */
|
||||
$products_category_id = array_shift($raw_products)?->get_category_ids()[0] ?? '';
|
||||
$context['products_category_id'] = $products_category_id;
|
||||
|
||||
/**
|
||||
* Charge les scripts et styles de la page.
|
||||
*
|
||||
* @throws Exception une exception est levée s'il est impossible d'obtenir la date de modification du fichier à charger
|
||||
*/
|
||||
function load_page_resources(): void {
|
||||
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',
|
||||
|
|
@ -60,9 +57,7 @@ function load_page_resources(): void {
|
|||
id: 'haiku-atelier-2024-scripts-menu-categories',
|
||||
path: '/assets/js/scripts-menu-categories.js',
|
||||
);
|
||||
}
|
||||
|
||||
add_action('wp_enqueue_scripts', load_page_resources(...));
|
||||
});
|
||||
|
||||
// Rendu
|
||||
Timber::render(
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue