Woocommerce-通过JS或PHP以编程方式将产品添加到购物车[关闭]


32

我正在使用Woocommerce插件来促进网站的小型电子商务部分,并且需要通过一些调用或功能将产品添加到购物车中,而不是使用其自己的“添加到购物车”按钮。

我基本上是指,例如,向Woocommerce发送SKU和数量,并进行购物车更新。

sendToCart('123456', 55);

等等

我浏览了文档,似乎找不到对这种东西的引用。有人可以建议我如何实现这一目标吗?


投票过多,因为过于本地化。您是否尝试过WooThemes支持?
Chip Bennett

3
@Chip Bennett我有,很遗憾,他们收取125美元。这是在Wordpress和Woocommerce的支持下-本身在这里是有效标签,因此肯定有效吗?除非我误会“太本地化”?
拉里·B

这个问题与WordPress无关。它仅涉及WooCommerce插件本身-插件功能和自定义插件功能/代码。我本来可以投票否定主题,但是对于有关商业产品或具有商业支持选项的产品,我通常会过于局限
Chip Bennett 2012年

12
@ChipBennett Woocommerce仅适用于Wordpress,因此与wordpress无关,似乎奇怪。如果不发布有关Woocommerce的问题,人们将如何使用Woocommerce标签?无论如何,我已经找到了答案,以防万一其他人遇到同样的问题。
拉里·B

11
@GHarping谢谢您提出这个问题,尽管您对此一无所知。:)
瑞安

Answers:


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

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

3
我如何通过ajax调用该方法?
卡·雷格尔林

1
@Stratboy通过使用在Wordpress中添加AJAX函数的推荐方法:codex.wordpress.org/AJAX_in_Plugins-基本上,您只需在wordpress Codex的第一个php示例中从答案中插入3行。
CodeBrauer
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.