为 WooCommerce 产品启用十进制数量和库存
Enable decimal quantities and stock for WooCommerce products
我想将产品的默认数量从 1 更改为 0,1,但我似乎无法弄明白。
我尝试了以下方法:
function custom_quantity_input_args($args, $product) {
$args['input_value'] = 0.10;
$args['min_value'] = 0.10;
$args['step'] = 0.10;
$args['pattern'] = '[0-9.]*';
$args['inputmode'] = 'numeric';
return $args;
}
问题在于它也修改了购物车输入的数量,这不是我想要的。
更具体地说,我想要以下内容:
- 当我转到产品页面时,我想显示 0,1;
- 当我转到购物车页面时,我想显示当前数量;
我上面提到的解决方案在产品页面和购物车页面中都显示 0,1。
我找到了另一个解决方案,但它显示了产品和购物车中的当前数量,这又不是我想要的。
有什么想法吗?
基于 答案代码,尝试以下重新访问的代码:
// Defined quantity arguments
add_filter( 'woocommerce_quantity_input_args', 'custom_quantity_input_args', 9000, 2 );
function custom_quantity_input_args( $args, $product ) {
if( ! is_cart() ) {
$args['input_value'] = 0.1; // Starting value
}
$args['min_value'] = 0.1; // Minimum value
$args['step'] = 0.1; // Quantity steps
return $args;
}
// For Ajax add to cart button (define the min value)
add_filter( 'woocommerce_loop_add_to_cart_args', 'custom_loop_add_to_cart_quantity_arg', 10, 2 );
function custom_loop_add_to_cart_quantity_arg( $args, $product ) {
$args['quantity'] = 0.1; // Min value
return $args;
}
// For product variations (define the min value)
add_filter( 'woocommerce_available_variation', 'filter_wc_available_variation_price_html', 10, 3);
function filter_wc_available_variation_price_html( $data, $product, $variation ) {
$data['min_qty'] = 0.1;
return $data;
}
// Enable decimal quantities (in frontend and backend)
remove_filter('woocommerce_stock_amount', 'intval');
add_filter('woocommerce_stock_amount', 'floatval');
代码进入活动子主题(或活动主题)的 functions.php 文件。已测试并有效。
我想将产品的默认数量从 1 更改为 0,1,但我似乎无法弄明白。
我尝试了以下方法:
function custom_quantity_input_args($args, $product) {
$args['input_value'] = 0.10;
$args['min_value'] = 0.10;
$args['step'] = 0.10;
$args['pattern'] = '[0-9.]*';
$args['inputmode'] = 'numeric';
return $args;
}
问题在于它也修改了购物车输入的数量,这不是我想要的。
更具体地说,我想要以下内容:
- 当我转到产品页面时,我想显示 0,1;
- 当我转到购物车页面时,我想显示当前数量;
我上面提到的解决方案在产品页面和购物车页面中都显示 0,1。
我找到了另一个解决方案,但它显示了产品和购物车中的当前数量,这又不是我想要的。
有什么想法吗?
基于
// Defined quantity arguments
add_filter( 'woocommerce_quantity_input_args', 'custom_quantity_input_args', 9000, 2 );
function custom_quantity_input_args( $args, $product ) {
if( ! is_cart() ) {
$args['input_value'] = 0.1; // Starting value
}
$args['min_value'] = 0.1; // Minimum value
$args['step'] = 0.1; // Quantity steps
return $args;
}
// For Ajax add to cart button (define the min value)
add_filter( 'woocommerce_loop_add_to_cart_args', 'custom_loop_add_to_cart_quantity_arg', 10, 2 );
function custom_loop_add_to_cart_quantity_arg( $args, $product ) {
$args['quantity'] = 0.1; // Min value
return $args;
}
// For product variations (define the min value)
add_filter( 'woocommerce_available_variation', 'filter_wc_available_variation_price_html', 10, 3);
function filter_wc_available_variation_price_html( $data, $product, $variation ) {
$data['min_qty'] = 0.1;
return $data;
}
// Enable decimal quantities (in frontend and backend)
remove_filter('woocommerce_stock_amount', 'intval');
add_filter('woocommerce_stock_amount', 'floatval');
代码进入活动子主题(或活动主题)的 functions.php 文件。已测试并有效。