Woocommerce - Programlı bir şekilde JS veya PHP yoluyla alışveriş yapmak için bir ürün ekleyin [kapalı]


32

Bir sitenin küçük bir e-ticaret bölümünü kolaylaştırmak için Woocommerce eklentisini kullanıyorum ve kendi 'sepete ekle' düğmelerini kullanmak yerine, bir çağrı veya işlev aracılığıyla ürünlerini sepetine eklemeliyim.

Bununla, temel olarak Woocommerce'a bir SKU ve miktar göndermeyi ve alışveriş sepetini güncellemeyi kastediyorum.

sendToCart('123456', 55);

vb

Dokümantasyona baktım ve bu tür bir şeye referans bulamıyorum. Birisi bunu nasıl başarabileceğimi önerebilir mi?


Yerelleştirildiği için yakın oy kullandı . WooThemes desteğini denediniz mi?
Chip Bennett

3
@Chip Bennett Evet, maalesef katılmak için 125 dolar alıyorlar. Bu, hem Wordpress hem de Woocommerce'in desteğinin altında geliyor - burada kendisi geçerli bir etiket, bu yüzden kesinlikle geçerli mi? 'Çok yerelleştirilmiş' olarak yanlış anlamadığım sürece mi?
Larry B

Bu sorunun özellikle WordPress ile ilgisi yok . Yalnızca WooCommerce Plugin'in kendisini içerir - Eklenti işlevi ve özel Eklenti işlevleri / kodu. Konu dışı olarak yakın oy kullanabilirdim, ancak genellikle ticari ürünler veya ticari destek seçeneklerine sahip ürünlerle ilgili sorular için çok fazla yerelleştirilmiş kullanıyorum .
Chip Bennett

12
@ChipBennett Woocommerce sadece Wordpress içindir, bu yüzden wordpress ile hiçbir şey yapmadan kategoriye girmek tuhaf görünüyor. Woocommerce ile ilgili bir soru göndermemek için Woocommerce etiketi nasıl kullanılır? Her halükarda, başka birinin de aynı problemi olması durumunda, şimdi göndereceğim cevabı buldum.
Larry B

11
@GHarping Bu soruyu sorduğun için teşekkür ederim, bunun için bir sürü saçmalık olmasına rağmen. :)
Ryan

Yanıtlar:


35

Tamam, işte sonunda nasıl çözdüğüm. Hızlı ve kirli bir örnek, JQuery kullanıyor.

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

Bu sadece alışveriş sepetinin URL'sine bir AJAX GET isteği yapar

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

7
bu artık çalışmıyor (wc v2.1.12). bir çözüm buldu ve burada
honk31

30

PHP'de bu şekilde yapmayı başardım:

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

Yöntem, woocommerce / classes / class-wc-cart.php içindedir:

    /**
     * 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() ) {

3
Bu yöntemi ajax ile nasıl çağırabilirim?
Luca Reghellin

1
@Stratboy, WordPress'te AJAX işlevlerini önerilen şekilde ekleyerek: codex.wordpress.org/AJAX_in_Plugins - temel olarak, ilk php örneğindeki cevaptan 3 satırı wordpress kodeksinden eklemelisiniz.
CodeBrauer
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.