2017-04-12 1 views
1

Je suis en train de mettre en œuvre la solution suivante:Comment ajouter un produit au panier woocomerce par hook?

add_action('woocommerce_calculate_totals' , 'buy3'); 
function buy3(WC_Cart $cart){ 
global $woocommerce; 
$woocommerce->cart->add_to_cart(6373,1,7444); 
} 

mais le problème après l'exécution du code tout quantité du produit Ajouter au panier pas une quantité

+0

sinon un, combien? – Reigel

+0

tout le stock disponible dans le produit http://imgur.com/a/kWRZD –

+0

c'est une boucle récursive :) pourquoi voulez-vous ajouter après avoir calculé le total? Pouvez-vous décrire le scénario/la logique métier? – Alice

Répondre

0

Les WooCommerce fonctions « add_to_cart » exécuter le crochet " woocommerce_add_to_cart ". Donc, dans votre code "add_to_cart" est exécuté, qui exécute "woocommerce_add_to_cart" qui exécute votre code, qui exécute "add_to_cart", etcetera etcetera ... Vous avez créé une boucle récursive.

Vous devez trouver une solution alternative, ou arrêtez d'appeler $woocommerce->cart->add_to_cart($p_id, 1); dans votre propre code.

0

Sold Individually

Pouvez-vous confirmer que Vendu individuellement est décochée? Parce que WooCommere add_to_cart() Forcer la quantité à 1 si elles sont vendues individuellement et vérifier également un élément existant dans le panier

également les paramètres pour add_to_cart() fonction sont comme ci-dessous:

global $woocommerce; 
$woocommerce->cart->add_to_cart($product_id,$quantity,$variation_id, $variation,$cart_item_data); 

Selon le code que vous avez fourni, vous avez fourni quantity = 1;

+0

ok mais le problème ici je ne peux pas ajouter plus 1 après activer Vendu individuellement –

+0

Vous ne devez pas activer Vendu individuellement. Vendu à l'unité, les utilisateurs n'achèteront qu'une seule quantité par commande. Laisser Vendu individuellement non coché si vous voulez ajouter plus d'une quantité de ce produit au panier – Aryan

+0

ok l'option est non-cochée mais le même problème est la fonction non ajouter un imgur.com/a/kWRZD –