php - 如何在 WooCommerce 中使用 add_to_cart() 方法?

标签 php wordpress woocommerce

我目前正在将产品添加到购物车,如下所示:

$woocommerce->cart->add_to_cart( $product_id, $quantity );
我注意到 add_to_cart()方法实际上接受 5 个参数。请参阅以下内容(取自 WooCommerce 文档):
add_to_cart( string $product_id, string $quantity = 1, integer $variation_id = '', array $variation = '', array $cart_item_data = array() )
有人可以举例说明最后三个参数的用途吗?
  • $variation_id
  • $variation
  • $cart_item_data [包含此产品的任何其他购物车项目数据的数组。]

  • 方法文档中有对这些内容的一些描述,但并没有太多的解释:

    int $variation_id

    array $variation attribute values

    array $cart_item_data extra cart item data we want to pass into the item


    引用: http://docs.woothemes.com/wc-apidocs/class-WC_Cart.html#_add_to_cart

    最佳答案

    对于最后 3 个参数,您可以像这样使用它们:
    $variation_id :如果产品是变体,这将是变体的特定帖子 ID。如果您添加的产品是简单产品或不是可变产品,您可以将此留空或将其设置为 0。
    $variation :当您选择可变产品的变体时,此数组包含变体属性和客户选择的值。
    $cart_item_data :这是一个数据数组,允许您将自定义数据存储到购物车中的产品。例如,如果您想存储一些稍后有用的产品元数据,您可以在此处添加它。当您遍历购物车项目时,它将可用。

    这是我为插件编写的代码片段中的一个示例:

    $gift_item = \wc_get_product($gift_item_id);
    $gift_variation_id = 0;
    $variation_data    = [];
    // The Gift is a variation, so get the variation options that are associated with this product variation.
    if ($gift_item->is_type('variation')) {
        $gift_variation_id = $gift_item->get_id();
        $variation_data    = wc_get_product_variation_attributes($gift_variation_id);              
    }
    
    //Check to see if the product is already in our cart and has an item meta of being a gift item
    $gift_item_hash = $cart->generate_cart_id($gift_item->get_parent_id() ?: $gift_item->get_id(), $gift_variation_id, $variation_data, [
        'gift'     => true
    ]);
    
    if ($cart->find_product_in_cart($gift_item_hash) === false) {
        // Add the Gift to our cart. Add some meta data to the item so we can change it's price at checkout.
        $gift_cart_item_key = $cart->add_to_cart($gift_item_id, $new_gift_quantity, $gift_variation_id, $variation_data, ['gift' => true]);
    }
    
    

    关于php - 如何在 WooCommerce 中使用 add_to_cart() 方法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25181805/

    相关文章:

    javascript - 未捕获的类型错误 : no method 'responsiveSlides'

    php - 为 WooCommerce 中的每种运输方式添加单独的图标

    php - 如何在 Woocommerce 产品中获取变体 ID

    php - 如何在 Woocommerce 中的“添加到购物车”按钮上显示加载图标

    php - 如何在 single.php 上的上一个/下一个导航中使用特色图像

    java - 使用 Volley 将图像上传到 Android 中的服务器而无需编码为 Base64

    php - 如何使图标在左侧对齐的中心图标列表小部件(Elementor)?

    php - WordPress 登录(用户 ID)和特定表数据

    php - 从数据库值填充数组的最有效方法?

    php - 如何手动翻译我下载的模板?