How to let customers choose product dimensions in WooCommerce

WooCommerce featured image

Custom product dimensions let customers order exactly the size they need, at the right price, with accurate shipping details. In this tutorial, we’ll set up a timber product where customers choose a wood species and section size, enter the length they need and see the price update straight away.

After completing this tutorial:

  • Users will be able to:
    • Choose a timber species, thickness and width
    • Enter the length they need and see the price update as they type
  • As the store owner or admin, you’ll be able to:
    • Charge by volume, length, area or perimeter using simple formulas
    • Set the product’s length, width, height and weight from the customer’s choices, so shipping is calculated correctly
    • See the customer’s dimensions on every order
  • As a bonus, we’ll also look at how to:
    • Add a minimum charge and a cutting fee
    • Charge for edge profiles using a lookup table

There’s a demo product here so you can see it in action. There’s also a config file available from within the add-ons library you can use to import these exact fields directly into your own product.

WooCommerce product page for custom timber cut to size

Building supplies are increasingly bought online. Kingfisher, which owns B&Q and Screwfix, reported that e-commerce made up 22% of its group sales in the six months to July 2026, up from 20% a year earlier.

What’s the difference between WooCommerce’s dimensions and customer dimensions?

WooCommerce’s built-in length, width, height and weight are set once per product on the ‘Shipping’ tab. They’re used to calculate shipping and customers can’t usually change them.

WooCommerce shipping tab for product dimensions

In this article, we’ll see how to set these dimensions dynamically. Customers will enter their required measurements and the price, shipping dimensions and weight will then be calculated.

Which products can you sell with custom dimensions?

You can use custom dimensions for any product you cut, measure or mix to order. We’ll use timber in this tutorial, but the same setup works for all of these:

  • Fabric and upholstery: charge per meter for the length the customer orders from a roll
  • Flooring and carpet: charge per square meter from the room’s width and length, with an optional wastage allowance
  • Worktops and countertops: charge by length and depth, plus a fee for each cut-out or edge profile
  • Sheet materials: price plywood, MDF, acrylic and polycarbonate by area and thickness
  • Metal bar, tube and pipe: charge per meter by diameter, with the weight calculated from the length
  • Rope, chain and cable: charge per meter and calculate the weight, so heavy orders pay the right shipping
  • Topsoil, gravel and decorative stone: calculate the volume from area and depth, then the weight for delivery
  • Foam cut to size: price cushions and mattress toppers by volume
  • Picture frames: price custom frames by the perimeter of the artwork

What do you need to let customers choose product dimensions?

By itself, WooCommerce doesn’t customers specify product dimensions so you’ll need an extra plugin. WooCommerce Product Add-Ons Ultimate lets you add fields to your product pages, including calculation fields that set the price and the product’s dimensions.

WooCommerce Product Add-Ons Ultimate featured image

WooCommerce Product Add-Ons Ultimate

Customize products with extra fields and options

Find Out More

If you want to go a step further, you can also set prices from a lookup table using the Advanced Calculations extension. We’ll look at that in the bonus section.

How do you set up custom dimensions for timber in WooCommerce?

Here’s a quick overview of how to sell timber cut to length, priced by volume, in WooCommerce

  1. Install Product Add-Ons Ultimate:

    Install and activate the plugin.

  2. Create your timber product

    Add a simple product for your timber.

  3. Add fields for species, thickness and measurements

    Add fields for the customer’s choices. These can be select fields with a limited number of options or a number field where the user can enter a numeric value.

  4. Add calculation fields for the volume and price

    Work out the volume, then multiply it by the species’ price.

  5. Set the product’s dimensions and weight

    Add calculation fields that update the product’s length, width, height and weight.

Here’s each step in more detail.

In this tutorial, we’ll assume that you already have WordPress and WooCommerce installed and ready to go.

Step #1: Install Product Add-Ons Ultimate

Product Add-Ons Ultimate lets you add custom fields to any WooCommerce product. It’s compatible with all themes and page builders, so it works with your existing store.

Once you’ve purchased Product Add-Ons Ultimate:

  • Download the plugin’s zip file by clicking on the link on your order confirmation screen or in your welcome email. You’ll receive the email automatically a few seconds after you’ve completed the purchase
  • Go to Plugins > Add New in your WordPress dashboard
  • Click on the ‘Upload Plugin’ button
  • Drag and drop the plugin’s downloaded zip file into the ‘Choose File’ area and click ‘Install Now’
  • When the plugin has uploaded, click the ‘Activate Now’ button

You now have Product Add-Ons Ultimate installed and activated. Next, let’s create the product.

Step #2: Create your timber product

Go to Products > Add New and create a simple product for your timber. Add a title, description and images in the same way you would for any other product.

Leave the regular price at zero (or set it to a minimum value) since your calculation field will determine the overall price. On the ‘Shipping’ tab, leave the length, width, height and weight empty. We’ll set these dynamically using the customer’s choices in Step #6.

Now let’s add the fields where customers make their choices.

Step #3: Add fields for species, thickness and width

Click on the ‘Product Add-Ons’ tab on the ‘Product data’ panel. Add a select field labeled ‘Species’ with these options:

  • Pine: 450
  • Larch: 650
  • Oak: 1800
Select field options for user to select type of wood

The number next to each option is its price per cubic meter, entered in the option’s ‘Price’ column. Set ‘Option Price Visibility’ to ‘Value only’ on the field’s ‘Pricing’ tab, so the value can be used in your calculations but won’t be added to the cart.

Setting to hide option prices in add-on field

Add two more select fields in the same way:

  • Thickness (mm): 22, 47 and 75, with each option’s price set to the same number
  • Width (mm): 100, 150 and 200, with each option’s price set to the same number

Set ‘Option Price Visibility’ to ‘Value only’ on both. Your calculations can then use the thickness and width in millimeters.

Your product now has fields for species, thickness and width. Next, let’s add the length.

Step #4: Add a length field

Add a number field labeled ‘Length (m)’. Set a minimum value of 0.5, a maximum of 6 (or whatever upper and lower limits work best for you) and allow one decimal place, so customers can order lengths like 2.4m.

Field settings for number field

The plugin is unit agnostic, so you can use meters, feet, inches, muggles – anything you like. The plugin just works with the numbers. We cover imperial measurements in the FAQs.

Customers can now enter the length they need.

Now, let’s work out the price.

Step #5: Add calculation fields for the volume and price

Add a calculation field labeled ‘Volume’. Click on the ‘Calculations’ tab.

Below the ‘Formula’ field, there’s a formula builder. This features a set of buttons that allow you to start building your formula. The ‘Fields’ row shows a button for each field you’ve added to the product, labeled with the field’s name and ID. In this example, you’ll see buttons for each of the fields you added above, such as ‘Length (m) (#4786)’.

Formula builder panel for custom dimensions calculation

The volume is the length multiplied by the width and the thickness. The length is already in meters, but the width and thickness are in millimeters, so each of those is divided by 1,000 to convert it to meters. The result is the volume in cubic meters.

In plain English, the formula is: length × (width option price ÷ 1,000) × (thickness option price ÷ 1,000).

Click a button to insert that field’s placeholder into the formula. Use the buttons to build this formula:

{field_4786} * ({field_4785_option_price} / 1000) * ({field_4784_option_price} / 1000)

Here, {field_4786} is the length, {field_4785_option_price} is the width and {field_4784_option_price} is the thickness. Your field IDs will be different, which is why it’s best to insert them with the buttons.

Note that directly under the ‘Formula’ field, you’ll see a preview of the formula in more natural language. This makes it easy to check that you’ve used the right fields.

Formula builder panel for custom dimensions calculation showing validator and natural language preview

Enter ‘m³’ as the field’s suffix so customers can see the units. Set ‘Decimal Places’ to 5.

As you build your formula, the plugin will automatically check it and let you know if it’s valid or if there are any errors.

Next, add a second calculation field labeled ‘Price’, with this formula:

{field_4788} * {field_4783_option_price}

This multiplies the volume by the species’ price per cubic meter. Set the ‘Action’ field to ‘Display As Cost’ so the result becomes the product price.

For example, a customer who orders 2.4m of 47 x 150mm pine gets a volume of 0.01692 m³ and a price of $7.61.

You now have a product that prices timber by volume. Next, let’s make sure shipping uses the right dimensions.

Step #6: Set the product’s dimensions and weight

Add four more calculation fields to set the product’s dimensions from the customer’s choices. Each one uses an ‘Action’ that adds its result to the product’s dimensions:

  • Length: {field_4786} * 100, with the ‘Action’ set to ‘Add to Product Length’
  • Width: {field_4785_option_price} / 10, with the ‘Action’ set to ‘Add to Product Width’
  • Height: {field_4784_option_price} / 10, with the ‘Action’ set to ‘Add to Product Height’
  • Weight: {field_4788} * 550, with the ‘Action’ set to ‘Add to Product Weight’
Field to set product's dimensions dynamically

These formulas assume your store uses centimeters and kilograms, which you can check at WooCommerce > Settings > Products. If your store uses different units, change the formulas to match.

The weight formula uses 550 kg per cubic meter as an average density for timber. Use the right density for the materials you sell.

Add a suffix to each field, such as ‘cm’ or ‘kg’. If you don’t want customers to see these values, check ‘Hide Calculation’.

Your product’s length, width, height and weight now update as the customer makes their choices, so your shipping rates are based on what they actually order.

Step #7: Publish and test your product

Publish your product and view it on the front end. Choose a species, thickness and width, then enter a length.

That’s how to let customers choose product dimensions in WooCommerce. Now let’s look at some other ways to calculate prices.

How do you price by area, perimeter or volume?

Use the same setup with a different formula. For example:

  • Area: {width} * {length} * {rate} for flooring, worktops and sheet materials priced per square meter
  • Perimeter: ({width} + {height}) * 2 * {rate} for picture frames and edging priced per meter
  • Volume: {length} * {width} * {depth} * {rate} for foam, beams and sleepers priced per cubic meter
  • Weight from volume: {area} * {depth} * {density} for topsoil and gravel, with the ‘Action’ set to ‘Add to Product Weight’

Replace each name in braces with the placeholder for your own field.

How do you use existing product dimensions in a formula?

You can also reference values of product dimensions directly in a formula using four reserved tags:

  • {product_length}
  • {product_width}
  • {product_height}
  • {product_weight}

To add them to your formula, just click on one of the buttons in the ‘Variables’ row in the formula builder.

Formula builder buttons for product dimensions

These tags always pull the value originally saved on the product itself, not anything set dynamically by the customer. For example, if you sell a storage box and want to calculate its volume automatically, you could add a Calculation field with this formula:

{product_length} * {product_width} * {product_height}

Set the field’s ‘Suffix’ to something like “cm³” so the result displays clearly, and set ‘Display As Cost’ to ‘No action’ if you only want to show the figure rather than add it to the price.

You can combine these tags with customer input too. For example, to charge a per-unit rate based on a product’s existing weight and the quantity ordered:

{product_weight} * {quantity} * 2.5

This charges $2.50 for every kg of the product’s base weight, multiplied by how many the customer orders.

Bonus #1: How do you add a minimum charge or cutting fee?

Use max() in your price formula to set a minimum charge. This formula charges at least $5, however short the length:

max({field_4788} * {field_4783_option_price}, 5)
Set the minimum product price using an add-on calculation field

Use min() in the same way to cap a charge. For example, you could cap a delivery surcharge on long lengths.

To add a cutting fee, add a number field labeled ‘Number of cuts’ and a calculation field that multiplies it by your fee. Set its ‘Action’ to ‘Display As Cost’ as well.

Bonus #2: How do you charge for profiles with a lookup table?

You can use a lookup table when a charge doesn’t follow a simple formula and when you have a more complex set of variables. For custom timber, then profiles are a good example.

Many timber merchants let customers choose a profile, such as a rounded or chamfered edge, which is machined onto the timber after it’s cut. The cost of machining depends on the profile and the section size, so it’s easier to keep in a table than to work out with a formula.

Advanced Calculations lets you import a lookup table from CSV or build it in your dashboard.

Step #1: Create a flat table of profile charges

Go to Product Add-Ons > Lookup Tables and create a flat table with a column for the profile, the thickness and the width, and a final ‘Return’ column for the charge per meter:

ProfileThicknessWidthReturn
Square edge221000
Pencil round221000.80
Bullnose221001.20
Chamfered221001.00
Square edge471500
Pencil round471501.10
Bullnose471501.60
Chamfered471501.40

Add a row for every combination of profile and section size you sell.

Lookup table to return a cost per meter for different timber finishes

Step #2: Add a profile field

Add a select field labeled ‘Profile’ to your timber product, with the options Square edge, Pencil round, Bullnose and Chamfered. Make sure each option’s text matches your table exactly.

Select field options for different timber cutting finishes

Step #3: Look up the profile charge

Add a calculation field labeled ‘Profile charge’ and enter {look_up_table} in the ‘Formula’ box. Select your profile table, then choose the ‘Profile’, ‘Thickness (mm)’ and ‘Width (mm)’ fields under ‘Axis Fields (in column order)’, using the ‘(option label)’ version of each.

Settings for calculation field to get lookup table values for custom timber product

Leave its ‘Action’ empty, since we’ll use the result in the price formula.

Step #4: Add the profile charge to the price

The profile charge is per meter, so multiply it by the length and add it to the price of the timber. Change the formula in your ‘Price’ field to:

{field_4788} * {field_4783_option_price} + {field_4786} * {field_4798}

Here, {field_4798} is the ‘Profile charge’ field. For example, 2.4m of 47 x 150mm pine with a bullnose edge costs $7.61 for the timber plus $3.84 for the profile.

Our guide to lookup table pricing in WooCommerce covers lookup tables in more detail.

How do customers’ dimensions appear in the cart and orders?

Product Add-Ons Ultimate shows the customer’s choices in the cart, at checkout, on the order screen and in order emails. You can see the species, thickness, width and length for every item, so you know exactly what to cut.

Director, Nu Image Design ★★★★★

We were working on a site for a local glass company to implement a cut-to-size glass ordering system and needed to figure out how to implement a system in WooCommerce that would be able to deal with so many variables such as height, width, area, perimeter, price per square metre for over 60 products. Also additional patterns or finish types for those products such as cornering, processing, toughening, etc needed to be incorporated. We considered Gravity Forms but needed something that was much more user friendly. The ability to use global add-ons and to then be able to select which specific products can make use of the add-ons has been invaluable.

FAQs

Can I use size attributes instead of custom dimensions?

Yes, if you only sell a few fixed sizes. Create a variation for each size and set its dimensions and weight on the variation. Custom dimensions work better when customers need any size within a range, since you’d otherwise need a variation for every possible length.

Can customers enter measurements in feet and inches?

Yes. Product Add-Ons Ultimate is unit agnostic, so customers can enter measurements in any unit. There are two common approaches:
– Fractions of an inch: add a number field for whole inches and a select field for the fraction. See our guide to using fractions in measurements
– Feet or meters: add a radio group where customers choose their unit, with the conversion factor in each option’s price, such as 0.3048 for feet to meters. See our guide to converting between feet and meters

How do I set a minimum and maximum size?

Set a minimum and maximum value on each number field. Customers can’t add the product to their cart with a value outside that range.

Does changing the product’s dimensions affect shipping rates?

Yes. The ‘Add to Product’ actions update the product’s length, width, height and weight in the cart. Any shipping method that uses dimensions or weight then calculates its rate from the customer’s choices.

Why are my product’s dimensions larger than the customer entered?

Check the ‘Shipping’ tab on your product. The ‘Add to Product’ actions add to any length, width, height or weight already set there, so leave those values empty.

Can I sell sheet materials by the square meter or foot?

Yes. Add number fields for the width and length, then a calculation field that multiplies them by your price per square meter or square foot. Use a select field for the thickness if your price depends on it.

Custom product dimensions in WooCommerce – recap

In this article, we looked at how to let customers choose product dimensions in WooCommerce. We set up a timber product priced by volume, then set its length, width, height and weight from the customer’s choices so shipping is calculated correctly.

WooCommerce Product Add-Ons Ultimate lets you add number, select and calculation fields to any product. Use Advanced Calculations if you’d like to set prices from a lookup table.

Product Add-Ons Ultimate is compatible with all themes and page builders, including Astra, Flatsome and Woodmart, and page builders like Elementor and Divi. If you have any questions, our world-class support team is on hand to help. And the plugin is backed by a 14-day money-back guarantee, so you can try it risk-free.

WooCommerce Product Add-Ons Ultimate featured image

WooCommerce Product Add-Ons Ultimate

Customize products with extra fields and options

Find Out More

Two comments

    • User image

      Hi Yoki

      The Advanced Calculations plugin requires the Pro version of Product Add-Ons Ultimate. You cannot run Advanced Calculations without the Pro version of Add-Ons Ultimate.

      To achieve all the features discussed in this article, you’ll need both plugins.

      Thanks.

Leave a Reply

Your email address will not be published. All fields are required.

✖