WordPress WooCommerce — добавление переменного продукта в корзину с помощью класса WC_Cart

Я пытаюсь добавить переменный продукт в корзину плагина WordPress, WooCommerce.

До сих пор мне удавалось добавлять одиночные/простые продукты с помощью:

$woocommerce->cart->add_to_cart( [product_id], [quantity] );

Однако, глядя в WC_Class на сигнатуру функций:

function add_to_cart( $product_id, $quantity = 1, $variation_id = '', $variation = '', $cart_item_data = array() ) {

мы ясно видим, что функция разрешает ввод Variation_id.

У меня есть пробовал каждую комбинацию нулей и целых чисел в строках:

$woocommerce->cart->add_to_cart( 24, 1, 28, null, null ); 

и т. д. безрезультатно.

Я также попробовал свой собственный хакерский подход, который пытается воссоздать события публикации, выполняемые собственной страницей продукта WooCommerce, но снова безуспешно.

<a id="buy_v" href="#">Buy Variable Product !</a>    
<script>    
   $('#buy_v').click(function(e) {
      e.preventDefault();
      addToCartV(24,26,'Red',1);
      return false;
   });    
   function addToCartV(p_id, v_id, c, q) {    
    $.ajax({
      type: 'POST',
      url: '/wp/?product=tee1&add-to-cart=variation&product_id='+p_id,
      data: { 'attribute_colour': c,
              'variation_id':  v_id,
              'quantity':  q,
              'product_id':  p_id},
      success: function(response, textStatus, jqXHR){
            // log a message to the console
            console.log("It worked!");
        }/*,
      dataType: 'JSON'*/
    });    
   }   
</script>

Кто-нибудь может подсказать, где я ошибаюсь? Спасибо.

9
задан Maxime 31 October 2019 в 14:35
поделиться