Jump to content

[Prestashop 1.7.6.4] checkout_session_data


acrob
 Share

Recommended Posts

Bonjour, est-il possible de lire les données contenus dans checkout_session_data (table ps_cart) pour extraire les valeurs step_is_reachable ?

Merci énormément pour votre aide.

Belle journée à vous

Share this post


Link to post
Share on other sites

1 minute ago, acrob said:

ndiaga, merci pour ta réponse, j'ai déjà tenté cette manip mais je n'arrive pas a accéder aux valeurs step_is_reachable 😒

Et  vous  êtes  sur  que  ce  champs  est  dans  le  tableau  ps_cart?

Share this post


Link to post
Share on other sites

Oui, c'est le dernier champ de la table

Si je dump la variable, j'obtiens ce code

array:1 [
  0 => array:1 [
    "checkout_session_data" => "{"checkout-personal-information-step":{"step_is_reachable":true,"step_is_complete":true},"checkout-addresses-step":{"step_is_reachable":true,"step_is_complete":true,"use_same_address":true},"checkout-delivery-step":{"step_is_reachable":true,"step_is_complete":false},"checkout-payment-step":{"step_is_reachable":false,"step_is_complete":false},"checksum":"e9e39f0e030766d389993757a57dd334017fc7fc"}"
  ]
]

 

Share this post


Link to post
Share on other sites

$cart= $this->context->cart->checkout_session_data;

Si je fais par exemple :

$cart= $this->context->cart->checkout_session_data->checkout-personal-information-step->step_is_reachable;

j'ai une erreur

Share this post


Link to post
Share on other sites

Merci pour ton aide, mais les données rapportées dans $this->context->cart ne comprennent pas le champ checkout_session_data, donc je vais tenter de créer un hook.

Mais comme c'est pas un jour avec, bah ça fonctionne pas 😡

Dans la fonction install de mon module j'ai enregistré mon hook ! $this -> registerHook ( 'displayPersoContact' )

Dans le même fichier j'ai créer la fonction public hookDisplayPersoContact (){...}

J'ai ensuite dans le dossier views/templates/hook j'ai créer un fichier displayPersoContact.tpl

En dans mon theme enfant j'ai ajouté { hook h = 'displayPersoContact' mod='nb_persoContact'}

Ensuite j'ai réinstallé mon module et vérifié dans position que nom module est bien greffé et vlannnnn rien sur ma page !!!

Pourtant les tutos que j'ai consulté n'indique pas d'autre action à effectuer. Je craque

 

Merci en tout cas pour votre aide

Share this post


Link to post
Share on other sites

Quand  est  il   du  cache  il est  désactivé ? 

Et  l'option "  Force  recompile  templates"  ?

Il  faut  retourner  du  texte  brute  histoire  de  tester  le  hook  d'abord.

Est  ce  que  vous pouvez  partagez  la php  function  du hook?

Share this post


Link to post
Share on other sites

cache désactivé et force recompile templates en place.

Voici ma function :

    /**
     * @param array $params
     * @return string
     */
    public function hookDisplayAdherentActif($params)
    {
        $this->context = Context::getContext();
        // Récupération id du customer
        $id_customer = $this->context->customer->id;
        // Récupération date de fin adhesion
        $DateFinAdhesion = Db::getInstance()->ExecuteS("SELECT date_fin FROM "._DB_PREFIX_."adherent WHERE id_customer = ".$id_customer);

        if(isset($DateFinAdhesion)) {
            $this->context->smarty->assign([
                'DateFinAdhesion' => $DateFinAdhesion
            ]);
        } else {
            $this->context->smarty->assign([
                'DateFinAdhesion' => 'toto'
            ]);
        }

        return $this->display(__FILE__, '/views/templates/hook/displayAdherentActif.tpl');
    }

Dans le fichier displayAdherentActif.tpl

    <div class="card-block">
        {$DateFinAdhesion}
    </div>

Et dans le theme enfant =

    {block name='hook_display_adherent_actif'}
        {hook h='displayAdherentActif' mod='nb_clientadherent'}
    {/block}

 

Share this post


Link to post
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
 Share

×
×
  • Create New...

Important Information

Cookies ensure the smooth running of our services. Using these, you accept the use of cookies. Learn More