web-dev-qa-db-fra.com

Woocommerce Ajouter un produit de variante au panier à partir d'un lien personnalisé

J'essaie d'ajouter un produit de variante à mon panier directement via un lien. Je mets la variation_id avec la chaîne de requête. Autant que je sache, j'envoie les données exactement de la même manière que le produit de variante par défaut.

Voici le code à l'intérieur de ma page produit unique:

<a href="<?php echo esc_url( $product->add_to_cart_url() ); ?>&variation_id=262" class="rounded-rect-button add-to-cart">Add to Cart</a>

Inversement, le produit simple fonctionne bien. J'ai fixé les prix pour mes variations de produit dans l'admin. Vous ne savez pas pourquoi ce n'est pas aussi simple que d'envoyer les données. Toute aide serait grandement appréciée.

15
ezekielDFM

Compris celui-ci. Il me manquait quelques paramètres nécessaires pour ajouter un produit variable à mon panier. Les paramètres manquants sont le variation_id et le type d'attribut auquel le variation_id fait référence. L'ID de la variante se trouve dans les produits admin> woocomerce> et sous l'onglet Variations à côté de la variante de produit que vous avez créée.

L'attribut param est formé du préfixe attribute_, puis du nom d'attribut assaini. Par exemple, mon attribut s'appelle Stock Colors. Mon type d'attribut param est donc attribute_stock-colors. D'après ce que je peux dire, vous venez de définir attribute_stock-colors=1 car la méthode d'ajout au panier vérifie simplement si elle existe.

Voici un exemple simple de lien qui ajoute un produit à mon panier avec la variante id 261 de couleurs en stock:

<a href="<?php echo esc_url( $product->add_to_cart_url() ); ?>&variation_id=261&attribute_stock-colors=1">Add to Cart</a>

Pour l'utiliser dans une situation réelle, vous devez définir le type d'attribut et l'identifiant de variante de manière dynamique à partir des options choisies par l'utilisateur dans un menu déroulant ou quelque chose du genre (à moins que chaque produit ait la même variation, ce qui en ferait fondamentalement un produit similaire. ).

9
ezekielDFM

je travaille actuellement sur un magasin v2.1.12 de woocommerce et il semble qu'ils aient changé ce comportement.

mon URL ajax pour ajouter des articles au panier doit ressembler à ceci:

?add-to-cart=[PRODUCT-ID]&variation_id=[VARIATION-ID]&attribute_[ATTRIBUTE-NAME]=[ATTRIBUTE-SLUG]&attribute_[ATTRIBUTE-NAME]=[ATTRIBUTE-SLUG]

exemple:

http://example.com/store/category/product/?add-to-cart=239&variation_id=240&attribute_pa_size=48-2&attribute_pa_color=gold

cela ajoute un produit spécifique au panier et définit également les attributs de variation dans le panier. vous pouvez même définir la quantité en ajoutant simplement &quantity=[VALUE]

en fin de compte, cela est pratique puisque toutes ces valeurs sont définies dans les champs de formulaire/sélection de soumission, il vous suffit de les rechercher.

10
honk31