Skip to main content

Accéder aux champs personnalisés des items panier

More
13 years 1 month ago #118513 by Flooder
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.

More
13 years 1 month ago #118532 by Xavier
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.

More
13 years 3 weeks ago #121789 by Flooder
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.

More
13 years 3 weeks ago #121844 by nicolas
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.

More
13 years 3 weeks ago #121853 by Flooder
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.

More
13 years 3 weeks ago #121857 by nicolas
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.

More
13 years 3 weeks ago #121861 by Flooder
Dieu vous bénisse!

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

More
12 years 7 months ago - 12 years 7 months ago #141481 by Flooder
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: 12 years 7 months ago by Flooder.

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

More
12 years 7 months ago #141508 by nicolas
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.282 seconds
Powered by Kunena Forum