Accéder aux champs personnalisés des items panier

  • Posts: 263
  • Thank you received: 11
11 years 3 months ago #118513

Bonjour à vous,

J'ai créé un plugin qui lance le trigger onBeforeCartUpdate(&$cartClass,&$cart,$product_id,$quantity,$add,$type,$resetCartWhenUpdate,$force,&$do). Cela fonctionne bien.

Dans le code de ce trigger, à partir de ces paramètres, comment fait-on pour accéder aux valeurs des champs personnalisés de chaque item du panier?

Merci

Please Log in or Create an account to join the conversation.

  • Posts: 13201
  • Thank you received: 2322
11 years 3 months ago #118532

Bonjour,

Ces valeurs sont sûrement stockées dans l'objet "$cart", il faut le parcourir avec un "var_dump($cart);" par exemple.
Sinon, à partir de l'id de chaque produits recharger le produit complet avec:
$productClass = hikashop_get('class.product');
$fullProduct = $productClass->get($cart->product_id);

ps: le code donné est à titre d'exemple, il nécessite sûrement quelques adaptations.

The following user(s) said Thank You: Flooder

Please Log in or Create an account to join the conversation.

  • Posts: 263
  • Thank you received: 11
11 years 2 months ago #121789

Quand je copie votre code dans ma fonction onBeforeCartUpdate(&$cartClass,&$cart,$product_id,$quantity,$add,$type,$resetCartWhenUpdate,$force,&$do). Ça ne fonctionne pas comme je voudrais. J'explique.

Le paramètre $product_id de la fonction onBeforeCartUpdate semble transporter des valeurs du champ cart_product_id que des product_id.

Quand j'utilise votre fonction $productClass->get($cart->product_id), je dois mettre un product_id et non un cart_product_id pour que ça fonctionne. En plus, ça retourne les champs personnalisés de la table 'produit'.

Je veux accéder aux champs personnalisés de la table 'item' moi... Des champs que le client doit remplir pour avoir un produit personnalisé.

Quelqu'un aurait la ligne ou la fonction magique?

J'espère que vous comprenez.

Please Log in or Create an account to join the conversation.

  • Posts: 82909
  • Thank you received: 13379
  • MODERATOR
11 years 2 months ago #121844

C'était juste un exemple.

Dans votre cas, le plus simple c'est de taper directement dans $_REQUEST pour avoir les valeurs des custom item fields du produit en cours d'ajout.
Pour les custom item fields des produits déjà dans le panier, faites cela:
$products = $cartClass->loadCart($cart->cart_id);

Ca vous donnera un array des produits avec les custom item fields aussi.

Please Log in or Create an account to join the conversation.

  • Posts: 263
  • Thank you received: 11
11 years 2 months ago #121853

Vous me voyez bien désolé de vous dire ça, mais la fonction loadCart semble retourner une ligne de la table #__hikashop_cart.

N'aurions-nous pas une autre fonction qui elle retournerait plutôt une ligne de #__hikashop_cart_product?

Please Log in or Create an account to join the conversation.

  • Posts: 82909
  • Thank you received: 13379
  • MODERATOR
11 years 2 months ago #121857

En effet, je voulais dire:
$products = $cartClass->get($cart->cart_id);

The following user(s) said Thank You: Flooder

Please Log in or Create an account to join the conversation.

  • Posts: 263
  • Thank you received: 11
11 years 2 months ago #121861

Dieu vous bénisse!

Please Log in or Create an account to join the conversation.

  • Posts: 263
  • Thank you received: 11
10 years 10 months ago #141481

Un petit up ici….

Ma fonction onBeforeCartUpdate fonctionne dans mon plug-in.

Mes produits ont des champs personnalisés de la table Article de type texte et fichier.

Dans cette fonction onBeforeCartUpdate, je fais un dump de la variable $_REQUEST et je vois les valeurs de mes champs de type Text qui sont envoyées au panier avant son update. Mais pourquoi dans le dump je ne vois pas les valeurs des champs personnalisés de type fichier ou image?

Si je travaille dans onBeforeCartUpdate, c'est justement parce que je veux modifier (selon certaines conditions) la valeurs d'un champ personnalisé de type fichier ou image AVANT de l'ajouter au panier…

dans onBeforeCartUpdate, je suis capable de modifier la valeur d'un champ personnalisé de type texte mais pas de type image ou fichier…

Merci

Last edit: 10 years 10 months ago by Flooder.

Please Log in or Create an account to join the conversation.

  • Posts: 82909
  • Thank you received: 13379
  • MODERATOR
10 years 10 months ago #141508

Bonjour,

Vous pouvez aussi modifier les images/fichiers.
Je vous rapelle que PHP stocke les uploads de données dans la variable $_FILES et non dans $_REQUEST. Vous trouverez donc vos champs personnalisés de type image/fichier dans $_FILES.

The following user(s) said Thank You: Flooder

Please Log in or Create an account to join the conversation.

Time to create page: 0.084 seconds
Powered by Kunena Forum