Woocommerce - Adicione um produto ao carrinho de forma programada via JS ou PHP [closed]

31

Estou usando o plug-in Woocommerce para facilitar uma pequena parte de um site de comércio eletrônico e preciso adicionar produtos ao carrinho por meio de alguma chamada ou função, em vez de usar seus próprios botões "adicionar ao carrinho".

Por isso, basicamente, quero enviar ao Woocommerce um SKU e quantidade, por exemplo, e atualizar o carrinho.

sendToCart('123456', 55);

etc

Examinei a documentação e não consigo encontrar uma referência para esse tipo de coisa. Alguém pode sugerir como eu poderia conseguir isso?

    
por Larry B 25.05.2012 / 15:44
fonte

2 respostas

33

OK, então aqui está como eu resolvi isso no final. Um exemplo rápido e sujo, usa o 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>

Isso só faz uma solicitação AJAX GET para o URL do carrinho

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

Em PHP eu consegui fazer assim:

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

O método está em 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() ) {
    
por jarnoan 30.08.2013 / 13:41
fonte