get_date_created()); $email = [ 'adresses' => ['facturation' => $commande->get_address('billing'), 'livraison' => $commande->get_address('shipping')], 'commande' => ['date' => $date->toDateString(), 'id' => $commande->get_id()], 'livraison' => [ 'methode' => $commande->get_shipping_method(), 'numero_suivi' => $commande->get_meta('tracking_number'), ], 'paiement' => ['methode' => ''], 'produits' => collect($commande->get_items())->map(static function (WC_Order_Item_Product $article) { $produit = $article->get_product(); if (is_bool($produit) || $produit === null) { return []; } return [ // Récupère l'Attribut d'un Produit variable ou renvoie un tableau vide 'attribut' => $produit->is_type('variable') ? collect($produit->get_attributes()) ->mapWithKeys(static fn($_atr, $cle): array => [ 'nom' => Str::lower(wc_attribute_label($cle, $produit)), 'valeur' => $produit->get_attribute($cle), ]) ->toArray() : [], 'lien' => $produit->get_permalink(), 'nom' => $produit->get_title(), 'prix_total' => $article->get_total(), 'quantite' => $article->get_quantity(), ]; }), 'totaux' => [ 'sous_total_livraison' => '0' === $commande->get_shipping_total() ? 'Free' : $commande->get_shipping_total() . '€', 'sous_total_produits' => $commande->get_subtotal() . '€', 'sous_total_reduction' => '0.00' === $commande->get_discount_total() ? '0' : Number::format((float) $commande->get_discount_total(), maxPrecision: 2) . '€', 'total' => Number::format((float) $commande->get_total(), maxPrecision: 2) . '€', ], ]; // Transforme les codes de pays en noms de pays $email['adresses']['livraison']['country'] = WC()->countries->countries[$commande->get_shipping_country()]; $email['adresses']['facturation']['country'] = WC()->countries->countries[$commande->get_billing_country()]; $context['commande'] = $email; // Rendu Timber::render( filenames: $templates, data: $context, );