在 WooCommerce 中根据重量更改简单产品的输入数量步骤值
P粉351138462
P粉351138462 2023-09-04 21:55:45
0
1
482

我希望数量选择器值根据我们在“运输”>“产品重量”中为简单产品设置的重量进行更改。 如下图所示,当我们将产品的重量设置为0.5公斤时,产品数量选择器从0.5开始,如果我们设置为1公斤,则从1开始。最后当我们将重量设置为每个数字时,数量选择器应该根据我们定义的权重数字启动。 我修改了代码,但它不适用于小于 1 的值。

/*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 );

P粉351138462
P粉351138462

全部回复 (1)
P粉613735289

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

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

它将按预期顺利工作:

  • 单一产品页面,
  • 还有购物车页面。
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 中选定的变化权重更改输入数量步骤值

    最新下载
    更多>
    网站特效
    网站源码
    网站素材
    前端模板
    关于我们 免责声明 Sitemap
    PHP中文网:公益在线PHP培训,帮助PHP学习者快速成长!