问题描述
我正在使用 Woocommerce 插件来方便一个站点的小型 e-commerce 部分,并且需要通过一些呼叫或功能将产品添加到它的购物车,而不是使用它自己的’add-to-cart’ 按钮。
通过这个我基本上是指发送 Woocommerce 一个 SKU 和数量,并有购物车更新。
sendToCart('123456', 55);
等等
我已经看过文档,似乎找不到这种事情的参考。任何人都可以建议我如何实现这一点?
最佳解决方案
好的,所以这里是我最后解决的。一个快速而肮脏的例子,使用 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]
次佳解决方案
在 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() ) {
参考文献
注:本文内容整合自 Google/Baidu/Bing 辅助翻译的英文资料结果。如果您对结果不满意,可以加入我们改善翻译效果:薇晓朵技术论坛。