Jump to content

exploiter la variable $order dans un tpl


Recommended Posts

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

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

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 by Didie (see edit history)
Link to comment
Share on other sites

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 account

Sign in

Already have an account? Sign in here.

Sign In Now
×
×
  • Create New...