Didie Posted April 13, 2022 Share Posted April 13, 2022 Bonjour, Je sollicite votre aide pour une question technique car j'ai quelques notions mais pas suffisantes pour récupérer certaines données. Dans l'un de mes fichiers tpl, j'ai une variable $order dans laquelle figure une donnée id_address_delivery. Je souhaitais savoir comment accéder aux données de cette adresse. Lorsque je fais un print_r de $order, voici ce que j'ai: Order Object ( [id_address_delivery] => 867 [id_address_invoice] => 867 [id_shop_group] => 1 [id_shop] => 1 [id_cart] => 6103 [id_currency] => 1 [id_lang] => 1 [id_customer] => 7........ Afin de gérer une condition par rapport au pays de livraison, j'aurais besoin d'accéder au contenu de address_delivery pour l'id 867 afin de récupérer le contenu du champ pays. Mais je ne sais pas comment y accéder à partir de la variable $order. Si quelqu'un pouvait m'aiguiller, ce serait super. Merci Link to comment Share on other sites More sharing options...
JulienPct Posted April 13, 2022 Share Posted April 13, 2022 Bonjour, Vous voulez faire votre traitement en PHP ou vous désirez seulement mettre une condition dans votre TPL ? Link to comment Share on other sites More sharing options...
Didie Posted April 13, 2022 Author Share Posted April 13, 2022 merci pour votre réponse. Je souhaiterais mettre une condition dans mon fichier tpl donc en smarty uniquement si possible. Link to comment Share on other sites More sharing options...
Mediacom87 Posted April 13, 2022 Share Posted April 13, 2022 Bonjour, j'explique comment utiliser en smarty une méthode définie comme static dans une classe PrestaShop dans cet article https://www.mediacom87.fr/comment-truncate-proprement-une-chaine-html/ Analysez la classe Address.php pour savoir si vous avez à disposition des méthodes en static pouvant répondre à votre besoin Link to comment Share on other sites More sharing options...
Didie Posted April 13, 2022 Author Share Posted April 13, 2022 Merci, je vais regarder Link to comment Share on other sites More sharing options...
JulienPct Posted April 13, 2022 Share Posted April 13, 2022 (edited) Si c'est juste une condition smarty, vous pouvez simplement faire quelques chose du type : {if $order->id_address_delivery === 867} // Code exécuté dans le cas échéant {/if} Edited April 13, 2022 by JulienPct (see edit history) Link to comment Share on other sites More sharing options...
Mediacom87 Posted April 13, 2022 Share Posted April 13, 2022 il y a 4 minutes, JulienPct a dit : Si c'est juste une condition smarty, vous pouvez simplement faire quelques chose du type : Il y a 3 heures, Didie a dit : gérer une condition par rapport au pays de livraison Cela ne suffira donc pas. Link to comment Share on other sites More sharing options...
Didie Posted April 13, 2022 Author Share Posted April 13, 2022 8 minutes ago, JulienPct said: Si c'est juste une condition smarty, vous pouvez simplement faire quelques chose du type : {if $order->id_address_delivery === 867} // Code exécuté dans le cas échéant {/if} Merci pour cette réponse. Malheureusement, je souhaiterais faire le meme genre de condition mais basé sur le pays de livraison ce qui semble plus complexe Link to comment Share on other sites More sharing options...
Didie Posted April 13, 2022 Author Share Posted April 13, 2022 (edited) 3 hours ago, Mediacom87 said: Bonjour, j'explique comment utiliser en smarty une méthode définie comme static dans une classe PrestaShop dans cet article https://www.mediacom87.fr/comment-truncate-proprement-une-chaine-html/ Analysez la classe Address.php pour savoir si vous avez à disposition des méthodes en static pouvant répondre à votre besoin Si je reprends l'exemple de votre article, j'ai dans la classe address.php, la fonction suivante: public static function getCountryAndState($id_address) { if (isset(self::$_idCountries[$id_address])) { return self::$_idCountries[$id_address]; } if ($id_address) { $result = Db::getInstance(_PS_USE_SQL_SLAVE_)->getRow(' SELECT `id_country`, `id_state`, `vat_number`, `postcode` FROM `' . _DB_PREFIX_ . 'address` WHERE `id_address` = ' . (int) $id_address); } else { $result = false; } self::$_idCountries[$id_address] = $result; return $result; } Cela voudrait dire que je peux utiliser cette fonction dans n'importe quel tpl de mon prestashop ? De la manière suivante: {Tools::getCountryAndState($order->id_address_delivery)} J'ai du louper un truc car j'ai une erreur 500 ^^ Edited April 13, 2022 by Didie (see edit history) Link to comment Share on other sites More sharing options...
Mediacom87 Posted April 13, 2022 Share Posted April 13, 2022 Ce n'est pas la classe Tools que vous souhaitez utiliser donc normal que cela ne fonctionne pas. Link to comment Share on other sites More sharing options...
Recommended Posts
Create an account or sign in to comment
You need to be a member in order to leave a comment
Create an account
Sign up for a new account in our community. It's easy!
Register a new accountSign in
Already have an account? Sign in here.
Sign In Now