Woocommerce 如何设置每件商品的最大订单限额&;每用户及;每个日期

Woocommerce 如何设置每件商品的最大订单限额&;每用户及;每个日期,woocommerce,Woocommerce,我需要限制用户在WooCommerce中的订单,使每个用户每天都能够以有限的金额订购某些特定的产品。这样的限制是“每个用户”/“每个产品”/“每天” 例如,每个用户每天只能购买10件产品,第二天他可以再购买10件 我已经检查了几乎所有与限制订单相关的插件,但没有一个插件具有所有这些条件。我还阅读了一些示例代码,如。但由于我对php和wordpress编码还不熟悉,所以我不知道如何根据自己的喜好进行更改 非常感谢您的帮助首先,我会在woocommerce\u add\u to\u cart钩子中添

我需要限制用户在WooCommerce中的订单,使每个用户每天都能够以有限的金额订购某些特定的产品。这样的限制是“每个用户”/“每个产品”/“每天”

例如,每个用户每天只能购买10件产品,第二天他可以再购买10件

我已经检查了几乎所有与限制订单相关的插件,但没有一个插件具有所有这些条件。我还阅读了一些示例代码,如。但由于我对php和wordpress编码还不熟悉,所以我不知道如何根据自己的喜好进行更改


非常感谢您的帮助

首先,我会在
woocommerce\u add\u to\u cart
钩子中添加一个函数。这基本上是一个钩子,在将新产品添加到购物车时会调用它。然后我将与用户元一起工作,在那里我将检查用户是否已经购买了该产品。如果没有这样的数据,我会将其添加到用户元中

请注意,这里有两种情况-第一种情况是,产品只是添加到购物车中而不是购买,第二种情况是购买产品时。这一点很重要,因为当用户从购物车中删除产品时,您也会遇到这种情况,您还需要一个钩子,以便更新用户元数据。在这里,您可以使用
woocmerce\u remove\u cart\u item
woocmerce\u after\u cart\u item\u quantity\u update
(查看参考资料)

最后,您需要钩住订单完成->检查钩子

但是,最重要的部分之一是如何为用户元构建数组。我建议创建一个带有键值->产品id的关联数组。作为数组的值,您可以创建另一个带有购买日期和产品数量的数组。大概是这样的:

$users_products = [
  product_id1 => [ 
    'date' => timestamp,
    'quantity' => 3
  ],
  product_id2 => [ 
    'date' => timestamp,
    'quantity' => 3
  ]
];
其中,
product_id1
product_id2
是实际的产品ID。通过这种方式,您可以更轻松地遍历用户元并检查当前产品是否在列表中。此外,为了避免使此用户元数据过大,请检查每个项目的日期是否过期,如果是,请从数组中删除(取消设置)此元素,并使用刷新的数据更新用户元数据


您还需要编写更多的代码,但我认为这将是一个良好的开端。

很抱歉,您的问题过于宽泛和真实的开发。@LoicTheAztec如果可能,至少为我指出正确的方向。难道没有一段代码是我可以编辑的,而不是从一开始就编写的吗?因为我不知道从哪里开始。我很抱歉,但是你最好雇佣一个精通woocommerce开发的人…你可以在其他地方查看或搜索,比如…