Thương mại điện tử - Thêm một sản phẩm vào giỏ hàng theo chương trình thông qua JS hoặc PHP [đã đóng]


32

Tôi đang sử dụng plugin Wooc Commerce để tạo điều kiện cho một phần thương mại điện tử nhỏ của trang web và cần thêm sản phẩm vào giỏ hàng của mình thông qua một số cuộc gọi hoặc chức năng thay vì sử dụng các nút 'add-to-cart' của chính nó.

Về cơ bản, tôi có nghĩa là gửi cho Wooc Commerce một SKU và số lượng chẳng hạn và có bản cập nhật giỏ hàng.

sendToCart('123456', 55);

v.v.

Tôi đã xem qua các tài liệu và dường như không thể tìm thấy một tài liệu tham khảo cho loại điều này. Bất cứ ai có thể đề nghị làm thế nào tôi có thể đạt được điều này?


Bỏ phiếu gần như quá địa phương hóa . Bạn đã thử hỗ trợ WooTheme chưa?
Chip Bennett

3
@Chip Bennett Tôi có, họ tính phí $ 125 chỉ để tham gia một cách đáng tiếc. Điều này xuất hiện dưới khung của cả Wordpress và Wooc Commerce - bản thân nó là một thẻ hợp lệ ở đây, vậy chắc chắn là hợp lệ? Trừ khi tôi hiểu nhầm 'quá cục bộ'?
Larry B

Câu hỏi này không liên quan gì đến WordPress . Nó chỉ liên quan đến chính Plugin WooC Commerce - Chức năng Plugin và chức năng / mã Plugin tùy chỉnh. Tôi có thể đã bỏ phiếu gần như là lạc đề , nhưng tôi thường sử dụng quá cục bộ cho các câu hỏi về sản phẩm thương mại hoặc sản phẩm có các tùy chọn hỗ trợ thương mại.
Chip Bennett

12
@ChipBennett Wooc Commerce chỉ dành cho Wordpress nên có vẻ kỳ quặc đối với catagorise như không liên quan gì đến wordpress. Làm thế nào một người sẽ sử dụng thẻ Wooc Commerce nếu không đăng câu hỏi về Wooc Commerce? Bằng mọi giá tôi đã tìm thấy câu trả lời mà tôi sẽ đăng ngay bây giờ trong trường hợp bất kỳ ai khác có cùng vấn đề.
Larry B

11
@GHarping Cảm ơn bạn đã hỏi câu hỏi này, mặc dù bạn có một đống tào lao cho nó. :)
Ryan

Câu trả lời:


35

OK, đây là cách tôi giải quyết nó cuối cùng. Một ví dụ nhanh và bẩn, sử dụng 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>

Điều này chỉ tạo một yêu cầu AJAX GET cho url giỏ hàng

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

7
cái này không hoạt động nữa (wc v2.1.12). tìm thấy một giải pháp và chia sẻ nó ở đây
honk31

30

Trong PHP tôi đã quản lý để làm theo cách này:

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

Phương thức này nằm trong wooc Commerce / class / 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
Làm thế nào tôi có thể gọi phương thức đó thông qua ajax?
Luca Reghellin

1
@Stratboy bằng cách sử dụng cách được đề xuất để thêm các hàm AJAX trong Wordpress: codex.wordpress.org/AJAX_in_Plugins - về cơ bản, bạn chỉ cần chèn 3 dòng từ câu trả lời trong ví dụ php đầu tiên từ codex wordpress.
CodeBrauer
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.