web-dev-qa-db-ja.com

Woocommerce - JSを介してプログラムでカートに商品を追加する PHP

私はWoocommerceプラグインを使用してサイトの小さなeコマース部分を容易にし、独自の「カートに追加」ボタンを使用するのではなく、何らかの電話または機能を介して商品をカートに追加する必要があります。

これによって私は基本的に例えばWoocommerceにSKUと数量を送ってカートを更新することを意味します。

sendToCart('123456', 55);

私はドキュメントを調べましたが、この種のことへの参照を見つけることができないようです。これを達成する方法を誰かが提案できますか?

31
Larry B

これで私は最後にそれを解決しました。簡単で汚い例では、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>

これは、カートのURLにAJAX GETリクエストを送信するだけです。

/wp/?post_type=product&add-to-cart=[PRODUCT_ID]
34
Larry B

PHPでは、私はこんなやり方でそれをすることができました:

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

このメソッドは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() ) {
28
jarnoan