Woocommerce - เพิ่มผลิตภัณฑ์เข้าสู่ตะกร้าโดยใช้โปรแกรมผ่าน JS หรือ PHP [ปิด]


32

ฉันใช้ปลั๊กอิน Woocommerce เพื่ออำนวยความสะดวกในส่วนเล็ก ๆ ของอีคอมเมิร์ซและจำเป็นต้องเพิ่มผลิตภัณฑ์ลงในรถเข็นผ่านการโทรหรือฟังก์ชั่นมากกว่าที่จะใช้ปุ่ม 'add-to-cart' ของตัวเอง

โดยพื้นฐานแล้วฉันหมายถึงส่ง Woocommerce a SKU และจำนวนตัวอย่างและมีการอัปเดตรถเข็น

sendToCart('123456', 55);

ฯลฯ

ฉันได้อ่านเอกสารแล้วดูเหมือนจะไม่สามารถหาข้อมูลอ้างอิงเกี่ยวกับเรื่องแบบนี้ได้ มีใครแนะนำว่าฉันจะทำสิ่งนี้ได้อย่างไร


ปิดการโหวตให้เป็นภาษาท้องถิ่นมากเกินไป คุณลองใช้ WooThemes แล้วหรือยัง
Chip Bennett

3
@ ชิปเบนเน็ตต์ฉันมีใช่พวกเขาเรียกเก็บเงิน $ 125 ดอลลาร์เพื่อเข้าร่วมโชคไม่ดี สิ่งนี้อยู่ภายใต้วงเล็บของทั้ง Wordpress และ Woocommerce ซึ่งเป็นแท็กที่ถูกต้องที่นี่ดังนั้นจึงใช้ได้จริงหรือ ถ้าฉันแปลความเข้าใจผิดว่า
Larry B

คำถามนี้ไม่มีส่วนเกี่ยวข้องกับWordPressโดยเฉพาะ มันเกี่ยวข้องกับปลั๊กอิน WooCommerce เท่านั้น - ฟังก์ชั่นปลั๊กอินและฟังก์ชั่นปลั๊กอิน / รหัสที่กำหนดเอง ฉันอาจได้รับการโหวตอย่างใกล้ชิดว่าเป็นหัวข้อนอกเรื่อง แต่โดยปกติฉันจะใช้ภาษาท้องถิ่นมากเกินไปสำหรับคำถามเกี่ยวกับผลิตภัณฑ์เชิงพาณิชย์หรือผลิตภัณฑ์ที่มีตัวเลือกการสนับสนุนเชิงพาณิชย์
Chip Bennett

12
@ChipBennett Woocommerce เป็นเพียงสำหรับ Wordpress ดังนั้นจึงแปลกที่หมวดหมู่ไม่เกี่ยวข้องกับ wordpress เราจะใช้แท็ก Woocommerce ได้อย่างไรหากไม่โพสต์คำถามเกี่ยวกับ Woocommerce ฉันได้พบคำตอบที่ฉันจะโพสต์ตอนนี้ในกรณีใด ๆ ในกรณีที่คนอื่นมีปัญหาเดียวกัน
Larry B

11
@GHarping ขอบคุณที่ถามคำถามนี้แม้ว่าคุณจะได้รับอึมากมายก็ตาม :)
Ryan

คำตอบ:


35

ตกลงดังนั้นนี่คือวิธีที่ฉันจะแก้ไขมันในที่สุด ตัวอย่างที่รวดเร็วและสกปรกใช้ 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>

นี่เป็นเพียงการขอ AJAX GET ไปยัง URL ของรถเข็น

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

7
มันไม่ทำงานอีกต่อไป (wc v2.1.12) พบวิธีแก้ไขและแบ่งปันได้ที่นี่
honk31

30

ใน PHP ฉันจัดการเพื่อทำเช่นนี้:

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

วิธีการอยู่ใน woocommerce / คลาส / 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() ) {

3
ฉันจะเรียกวิธีดังกล่าวผ่าน ajax ได้อย่างไร
Luca Reghellin

1
@Stratboy โดยใช้วิธีที่แนะนำในการเพิ่มฟังก์ชั่น AJAX ใน Wordpress: codex.wordpress.org/AJAX_in_Plugins - โดยทั่วไปคุณเพียงแค่แทรก 3 บรรทัดจากคำตอบในตัวอย่าง php แรกจาก wordpress codex
CodeBrauer
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.