基本上,我是出售活动门票,让客户选择他们想参加的日期以及他们想要的水瓶的颜色。我想限制我在每个日期发送的票的数量。(但这并不取决于水瓶的颜色)。比如第一天最多100张票,第二天最多100张票,如果有意义的话
好了,开始吧
我有一个活动,我正在销售门票,使用woocommerce之前,客户可以添加产品到购物车,他们需要从两个下拉菜单中选择,1个用于水瓶的颜色,第二个菜单用于选择活动日期(这是一个为期两天的活动,客户可以支付其中一个或另一个)我为水瓶的颜色和事件的日期创建了属性,然后在variation选项卡下为它们创建了变体。这两项赛事最多只能售出100张门票。我如何设置两个活动日期的门票限制为100张?这很有挑战性,因为当我为变量下的日期设置库存数量时,它也会影响水瓶的颜色。
红色-第1 Azure -第1天绿色-第1天
红色-第2 Azure -第2天绿色-第2天
如果我将每个变化的数量限制设置为100张,这意味着它实际上将能够为每个事件出售300张门票,因为客户可以简单地选择另一种颜色的水瓶。
这样更有意义吗
第一个月
// Add filter to manage stock quantity for date variations on product #6239
add_filter('woocommerce_variation_sale_price', 'custom_manage_date_stock_quantity_product_6239', 10, 3 );
add_filter('woocommerce_variation_price', 'custom_manage_date_stock_quantity_product_6239', 10, 3 );
add_filter('woocommerce_product_variation_get_regular_price', 'custom_manage_date_stock_quantity_product_6239', 10, 3 );
add_filter('woocommerce_product_variation_get_sale_price', 'custom_manage_date_stock_quantity_product_6239', 10, 3 );
function custom_manage_date_stock_quantity_product_6239( $price, $variation, $product ) {
// Check if the variation belongs to product #6239
if ( $product->get_id() === 6239 ) {
$date_attribute = $variation['attributes']['Date']; // Replace 'attribute_date' with the actual slug of the Date attribute
// Set stock quantity based on the date attribute
switch ( $date_attribute ) {
case 'Saturday':
$stock_quantity = 100; // Set the stock limit for this specific date
break;
case 'Sunday':
$stock_quantity = 100;
break;
// Add more cases for other date options and their respective stock limits
default:
$stock_quantity = 0; // No stock for other date options
}
// Apply the stock quantity only for Date variations
if ( isset($variation['attributes']['Date']) ) {
$variation['max_qty'] = $stock_quantity;
$variation['stock_quantity'] = $stock_quantity;
}
}
return $price;
}
字符串
1条答案
按热度按时间brqmpdu11#
我不确定这是正确的方法,如果瓶子的颜色不需要改变价格或数量,我会考虑添加瓶子的颜色以外的变化,作为一些自定义选择框,如here(例如)