// Define steps by category
function ccom_get_step_by_product_category( $product_id ) {
// Categories in priority order
if( has_term( 'wheels', 'product_cat', $product_id ) ) {
return 2;
}
if( has_term( 'tires', 'product_cat', $product_id ) ) {
return 2;
}
if( has_term( 'fabrics', 'product_cat', $product_id ) ) {
return 0.25;
}
// Default to one
return 1;
}
// Update min value to the quantity field
add_filter( 'woocommerce_quantity_input_min',
function( $default, $product ) {
$product_id = $product->get_id();
return ccom_get_step_by_product_category( $product_id );
}, 10, 2 );
// Update step value to the quantity field
add_filter( 'woocommerce_quantity_input_step',
function( $default, $product ) {
$product_id = $product->get_id();
return ccom_get_step_by_product_category( $product_id );
}, 10, 2 );
// Replace the WooCommerce filter that is validating the quantity
remove_filter( 'woocommerce_stock_amount', 'intval' );
add_filter( 'woocommerce_stock_amount', 'floatval' );
Fractional quantities or custom quantities by product category
Changes quantity steps by specific product categories. Must be activated on both front and back ends (run everywhere setting).
How to use
- Log into a staging, development, or locally hosted clone of your site
- Install and activate Code Snippets
- WP Admin > Snippets > Add New
- Copy and paste the code from the Description tab above
- Check to ensure formatting came over properly and no syntax errors show up in the editor
- Customize the code as desired
- Add a meaningful title
- Select whether to run on front-end or back-end (or both)
- Click “Save and Activate”
- Test your site to ensure it works
- Disable if any problems, or recover
- Repeat for live environment
License
All code snippets are licensed GPLv2 (or later) matching WordPress licensing.
Disclaimer of warranty:
Except when otherwise stated in writing the copyright holders and/or other parties provide the program as-is without warranty of any kind, either expressed or implied, including, but not limited to, the implied warranties of merchantability and fitness for a particular purpose.
Support
- Describe the issue and what you’ve observed.
- Describe your expected outcome(s).
- List steps to reproduce the issue.
- Optionally provide screen-shot or video URLs.
