微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

Woocommerce - 一次将多个产品添加到购物车

如何解决Woocommerce - 一次将多个产品添加到购物车

我们有 woocommerce 网站,其中包含所有虚拟和可下载产品。我们有多个与每个产品相关联的票证。我们进行了一些研究,并了解到 woocommerce 将购物车中的每件商品都视为单独的预订。我们想对购物车中的所有商品进行单一预订。

例如, 我们想在 2021 年 5 月 6 日的某个日期参观一个博物馆,那里有成人、儿童和老年人的门票。假设用户选择了 5 名成人、2 名儿童和 1 名老年人。根据我们的研究,我们了解到 woocommerce 将进行 3 次预订

  1. 5 位成人
  2. 2 个孩子
  3. 1 位老年人。

我们希望只保留 5 名成人、2 名儿童和 1 名老年人的单次预订。

有没有办法在woocommerce中做这样的事情?

解决方法

那里可能有插件,但最简单的方法是构建您自己的函数来处理这个问题。

例如,您可以添加自己的按钮或编写一些触发 AJAX 请求的 JavaScript,而不是使用默认的添加到购物车按钮。然后,该请求将以编程方式将相关商品添加到购物车。完成后,您可以将用户带到购物车页面。所以像这样,请注意,这是一个非常粗略的未经测试的示例,有很多关于如何执行此操作的信息

在加入购物车时触发

    addToCart: function(e) {
        e.preventDefault();
        var item_id = $(e.target).data('something');

        $.ajax({
            url: ajaxurl,type: "POST",data: {
                'action': 'add_to_cart','item_id': item_id
            },success:function(data) {
                // send to cart
            }
        });
    }

在你的functions.php 文件中(或者在一个单独的functions-ajax.php 文件中更好)

<?php
    function customAddToCart(){
        global $woocommerce;
        // you should  do some checking against the values sent over along with a nonce

        // then do something with the item id you sent over and add products to the cart as required,so for example:

        if($_POST['item_id'] == "98765") {
            $woocommerce->cart->add_to_cart(10,5); // 5 adult tickets 
            $woocommerce->cart->add_to_cart(4,2); // 2 child tickets 
            $woocommerce->cart->add_to_cart(11); // 1 senior tickets 
        }

        // obviously needs more logic and that

        echo "1";
        die();
    }
    add_action('wp_ajax_add_to_cart','customAddToCart');
    add_action('wp_ajax_nopriv_add_to_cart','customAddToCart');    
,

是的,您不必将成人、儿童和老年人视为单独的项目,但您需要将其视为订单的元数据。

假设您有一个 product A,现在当有人访问产品页面时,它是参观博物馆,那么 adultskids 和 {{1} 应该有 3 个数字字段}.每当必须预订产品时,他/她必须确保他/她至少确保三个字段中的任何一个至少有 1 个值。

这些字段将负责更新产品的价格,一旦添加了产品,成人、儿童和老年人的值将保存在订单中。

谷歌搜索后我找到了这个插件 - Advanced Product Fields

  1. 9 种不同的表单元素可供选择 - [使用它来创建表单]
  2. 动态产品价格:根据字段值更改价格

我认为这不会按顺序保存订单元数据(成人、儿童和老年人的数量)。使用此 answer 使用代码更新元数据。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐


Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其他元素将获得点击?
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。)
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbcDriver发生异常。为什么?
这是用Java进行XML解析的最佳库。
Java的PriorityQueue的内置迭代器不会以任何特定顺序遍历数据结构。为什么?
如何在Java中聆听按键时移动图像。
Java“Program to an interface”。这是什么意思?