Woocommerce Agregue un producto de variación al carrito desde un enlace personalizado [cerrado]

15

Estoy tratando de agregar un producto de variación a mi carrito directamente a través de un enlace. Estoy configurando la variación_id con la cadena de consulta. Hasta donde puedo decir, estoy enviando los datos exactamente de la misma manera que lo hace el formulario de variación por defecto.

Aquí está el código dentro de mi página de producto único:

<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>

Por el contrario, el producto simple funciona bien. He establecido precios para las variaciones de mi producto en el administrador. No estoy seguro de por qué no es tan simple como enviar los datos. Cualquier ayuda sería muy apreciada.

ezekielDFM
fuente

Respuestas:

10

Actualmente trabajo en una tienda v2.1.12 de woocommerce y parece que cambiaron ese comportamiento.

mi url ajax para agregar artículos al carrito debe tener este aspecto:

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

ejemplo:

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

esto agrega un producto específico al carrito y también establece los atributos de variación en el carrito. incluso puede establecer la cantidad simplemente agregando&quantity=[VALUE]

al final esto es útil ya que todos estos valores se establecen dentro de los campos de envío / selección, solo tiene que buscarlos.

honk31
fuente
2
Nota rápida: inspeccione el campo de selección de variaciones para el nombre de atributo adecuado. Por lo general, utiliza guiones, por lo que obtiene: & attribute_my-attribute-name = value
Ideas imperativas
9

Me di cuenta de esto. Me faltaban un par de parámetros necesarios para agregar un producto variable a mi carrito. Los parámetros que faltan son el variation_idy el tipo de atributo al que variation_idse refiere. La identificación de la variación se puede encontrar en admin> woocomerce> productos y en la pestaña de variaciones junto a la variación del producto que ha creado.

El parámetro param se forma a partir del prefijo attribute_y luego el nombre del atributo desinfectado. Por ejemplo, mi atributo se llama Stock Colors, por lo que mi parámetro de tipo de atributo es attribute_stock-colors. Por lo que puedo decir, solo configuraste attribute_stock-colors=1porque el método de agregar al carrito solo verifica si existe.

Aquí hay un ejemplo simple de un enlace que agrega un producto a mi carrito con un ID de variación 261 de colores de stock:

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

Para usar esto en una situación real, necesitaría establecer el tipo de atributo y la identificación de variación dinámicamente a partir de las opciones que el usuario seleccionó en un menú desplegable o algo así (a menos que cada producto tenga la misma variación, lo que básicamente lo convertiría en un producto simple) )

ezekielDFM
fuente