搜索

首页  >  问答  >  正文

在 WooCommerce 中根据重量更改简单产品的输入数量步骤值

<p>我希望数量选择器值根据我们在“运输”>“产品重量”中为简单产品设置的重量进行更改。 如下图所示,当我们将产品的重量设置为0.5公斤时,产品数量选择器从0.5开始,如果我们设置为1公斤,则从1开始。最后当我们将重量设置为每个数字时,数量选择器应该根据我们定义的权重数字启动。 我修改了代码,但它不适用于小于 1 的值。</p> <pre class="brush:php;toolbar:false;">/*Quantity Selector Based On Simple*/ function custom_quantity_selector_min_value( $min, $product ) { $weight = $product->get_weight(); if ( $weight > 0 ) { $min = $weight; } return $min; } add_filter( 'woocommerce_quantity_input_min', 'custom_quantity_selector_min_value', 10, 2 ); //Modify the quantity selector step value. function custom_quantity_selector_step( $step, $product ) { $weight = $product->get_weight(); if ( $weight > 0 ) { $step = $weight; } return $step; } add_filter( 'woocommerce_quantity_input_step', 'custom_quantity_selector_step', 10, 2 ); //Update the quantity selector value dynamically. function custom_quantity_selector_value( $input_value, $product ) { $weight = $product->get_weight(); if ( $weight > 0 ) { $input_value = $weight; } return $input_value; } add_filter( 'woocommerce_quantity_input_value', 'custom_quantity_selector_value', 10, 2 );</pre></p>
P粉351138462P粉351138462440 天前548

全部回复(1)我来回复

  • P粉613735289

    P粉6137352892023-09-05 13:56:13

    要使用的正确代码替换(更新):

    • 简单的产品,
    • 或可变产品(及其变体)。

    它将按预期顺利工作:

    • 单一产品页面,
    • 还有购物车页面。
    add_filter( 'woocommerce_quantity_input_args', 'cart_variation_quantity_input_args', 10, 2 );
    function cart_variation_quantity_input_args( $args, $product ){
        $product_weight = $product->get_weight();
        
        if( $product_weight > 0 ) {
            if ( ! is_cart()) {
                $args['input_value'] = $product_weight;
            } 
            $args['step'] = $args['min_value'] = $product_weight;
        }
        return $args;
    }
    

    请确保您也添加了(用于库存管理):

    remove_filter('woocommerce_stock_amount', 'intval');
    add_filter('woocommerce_stock_amount', 'floatval');
    

    代码位于活动子主题(或活动主题)的functions.php 文件中。经过测试并有效。


    加载包含 0.5 重量的产品的页面时:

    在产品上设置正确的数量输入,并以 0.5 的步长增加(正常步长也是 1)

    在购物车页面上,一切都按预期进行,步长为 0.5(正常步长也是 1)

    相关(针对变体):根据 WooCommerce 中选定的变化权重更改输入数量步骤值

    回复
    0
  • 取消回复