添加到购物车选项以具有6的倍数

时间:2013-10-03 作者:user2844394

我正在用wordpress和woocommerce建立一个批发商店,但在需求方面有一个奇怪的问题。

客户希望以6/12/18/24的倍数销售产品,因此当用户到达产品页面时,他可以选择6/12/18/24作为产品数量。

我尝试过产品的变化,但问题是这将隐藏产品的原始价格,并将显示至少6种产品的价格。

例如:我为定价为1美元、倍数为6的产品创建了变体,然后它将显示“从6美元开始”的价格,而不是产品的原始价格,而且手动添加500多个产品的变体似乎工作量太大。

如何在添加到购物车数量选择中仅添加6的倍数?

4 个回复
SO网友:helgatheviking

在WooCommerce 2.1的前沿,您可以过滤woocommerce_quantity_input_minwoocommerce_quantity_input_step 直接地这应该会得到6、12、18等等。我不知道这些过滤器是否在WC2中。0。?。请注意,$product对象会传递给过滤器,以防您不希望这是一个通用的更改。您可以获得WooCommerce from github, 虽然在生产中使用它可能还不可取。

function wpa116693_filter_min_quantity( $min, $product ){
    return 6;
}
add_filter( \'woocommerce_quantity_input_min\', \'wpa116693_filter_min_quantity\', 10, 2 );

function wpa116693_filter_quantity_step( $step, $product ){
    return 6;
}
add_filter( \'woocommerce_quantity_input_step\', \'wpa116693_filter_quantity_step\', 10, 2 );

SO网友:Nicolai Grossherr

我曾经调查过这个问题,但最后的决定是以8包的形式销售,我从来没有真正解决过这个问题。也许这是最简单的解决方案?

我被一个关于stackoverflow的问题绊倒了https://stackoverflow.com/a/17762213/2505105 解释如何操作:

add_filter( \'woocommerce_quantity_input_args\', \'pkg_wc_quantity_input_args\', 10, 2 );
function pkg_wc_quantity_input_args( $args, $product ) {
    $args[\'input_value\'] = 8;
    $args[\'max_value\'] = 64;
    $args[\'min_value\'] = 8;
    $args[\'step\'] = 8;
    return $args;
}
那个写答案的人补充了更多的信息,所以最好是自己去那里<但是在你兴奋之前,这并不是完美的。

<小时>

Update:

这种方法和helgatheviking建议的方法一样有效,但只适用于简单的产品。可变产品的问题仍然存在,请参见我在@helgatheviking的回答中的评论。此外,这不会处理购物车内输入的数量。

<小时>

2nd Update:

清理我再次发现了这段代码,它涉及到实现购物车页面上的步骤,为此您必须使用$_product.

function wpse116693_filter_min_quantity_cart( $min, $_product ){
    return 6;
}
add_filter( \'woocommerce_quantity_input_min\', \'wpse116693_filter_min_quantity_cart\', 10, 2 );

function wpse116693_filter_quantity_step_cart( $step, $_product ){
    return 6;
}
add_filter( \'woocommerce_quantity_input_step\', \'wpse116693_filter_quantity_step_cart\', 10, 2 );

SO网友:tbone1000

这是一个很好的解决方案,但它不适用于可变产品,因为这些产品的输入值是使用javascript覆盖的。我花了一段时间组装了一个插件,现在它支持各种值得一试的产品。它允许您为产品设置最小值/最大值/步长值,并且非常容易使用。

WooCommerce高级产品数量

http://wordpress.org/plugins/woocommerce-incremental-product-quantities/

SO网友:K. Tromp

我在执行类似任务时发现了你的问题。至少在WooCommerce 3+中,有两种方法需要调整产品的输入编号:

// Add quantity limit for simple products & on cart page
add_filter( \'woocommerce_quantity_input_args\', my_woocommerce_max_quantity\', 10, 2 );
function my_woocommerce_max_quantity( $args, $product ) {
    $args[\'max_value\'] = 10; // Max quantity
    return $args;
}

// Add quantity limit for variable products
add_filter( \'woocommerce_available_variation\', \'my_woocommerce_max_quantity_variations\' );
function my_woocommerce_max_quantity_variations( $args ) {
    $args[\'max_qty\'] = 10;      // Max quantity
    return $args;
}
现在您已经完全控制了输入参数,可以将$args[\'....\']添加到函数中,比如:

$args[\'input_value\'] = 1;   // Starting value
$args[\'max_value\'] = 10;    // Maximum value
$args[\'min_value\'] = 1;   // Minimum value
$args[\'step\']    = 6;   // Quantity steps
这是一个古老的话题,但也许有人仍然可以使用它。

结束