Woocommerce: agregue un producto al carrito mediante programación JS o PHP [cerrado]

31

Estoy usando el complemento Woocommerce para facilitar una pequeña parte de comercio electrónico de un sitio y necesito agregar productos a su carrito a través de alguna llamada o función en lugar de usar sus propios botones 'agregar al carrito'.

Por esto, básicamente, me refiero a enviar a Woocommerce un SKU y una cantidad, por ejemplo, y actualizar el carrito.

sendToCart('123456', 55);

etc

He revisado la documentación y parece que no puedo encontrar una referencia a este tipo de cosas. ¿Alguien puede sugerir cómo podría lograr esto?

    
pregunta Larry B 25.05.2012 - 15:44

2 respuestas

33

Bien, así es como lo resolví al final. Un ejemplo rápido y sucio, utiliza JQuery.

<a id="buy" href="#">Buy this!</a>
    <script>    
       $('#buy').click(function(e) {
          e.preventDefault();
          addToCart(19);
          return false;
       });    

       function addToCart(p_id) {
          $.get('/wp/?post_type=product&add-to-cart=' + p_id, function() {
             // call back
          });
       }
    </script>

Esto simplemente hace una solicitud GET de AJAX a la URL del carrito

/wp/?post_type=product&add-to-cart=[PRODUCT_ID]
    
respondido por el Larry B 28.05.2012 - 17:54
28

En PHP logré hacerlo de esta manera:

global $woocommerce;
$woocommerce->cart->add_to_cart($product_id);

El método está en woocommerce / classes / class-wc-cart.php:

    /**
     * Add a product to the cart.
     *
     * @param string $product_id contains the id of the product to add to the cart
     * @param string $quantity contains the quantity of the item to add
     * @param int $variation_id
     * @param array $variation attribute values
     * @param array $cart_item_data extra cart item data we want to pass into the item
     * @return bool
     */
    public function add_to_cart( $product_id, $quantity = 1, $variation_id = '', $variation = '', $cart_item_data = array() ) {
    
respondido por el jarnoan 30.08.2013 - 13:41

Lea otras preguntas en las etiquetas