任何方式,我可以设置数量限制的woocommerce为WordPress的每个属性(不变异)

bvjveswy  于 2023-08-03  发布在  WordPress
关注(0)|答案(1)|浏览(138)

基本上,我是出售活动门票,让客户选择他们想参加的日期以及他们想要的水瓶的颜色。我想限制我在每个日期发送的票的数量。(但这并不取决于水瓶的颜色)。比如第一天最多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;
}

字符串

brqmpdu1

brqmpdu11#

我不确定这是正确的方法,如果瓶子的颜色不需要改变价格或数量,我会考虑添加瓶子的颜色以外的变化,作为一些自定义选择框,如here(例如)

相关问题