Calculation fields allow you to make calculations using formulas. The formulas can include values inputted by the user through other fields, as well as fixed values, the product price, product properties like dimensions and weight, and other variables that you can set.
There’s a video at the bottom of this page that will give you an overview of the calculation field.
Calculation fields are available with the Pro version of the licence.

Creating a calculation field
Choose ‘Calculation’ as the field type. You can give the field a label if you wish.
In the ‘Formula’ field, enter the formula that will be used to make the calculation. You can use the following tags:
Field tags, e.g. {field_101}
In the image above, you can see that the formula contains the tag {field_960}
. This means that the calculation will use the value from the field with the ID 960.
Note that when using field tags:
- Fields must be in the same product
- Fields can be either number fields or other calculation fields
Product price tags, {product_price}
You can include the product price in your formula, e.g.:
{field_960} + {product_price}
This will return the sum of the value of field ID 960 and the price of the product.
Global variables, e.g. {variable_1}
There is scope to set three global variables that can be used in your calculation fields. These are represented as {variable_1}
, {variable_2}
and {variable_3}
.
You can set values for global variables from WooCommerce > Settings > Product Add-Ons.
Extending global variables
If the three global variables available to you aren’t enough, you can create as many unique variables as you like.
Set name / value pairs as in the snippet below:
<?php | |
/** | |
* Create multiple variables for calculation fields | |
*/ | |
function prefix_calculation_global_calculation_vars( $vars ) { | |
return array( | |
'my_first_variable' => 50, | |
'price_modifier_1' => 150 | |
); | |
} | |
add_filter( 'pewc_calculation_global_calculation_vars', 'prefix_calculation_global_calculation_vars' ); |
You can follow the steps here to add a snippet to your site.
Field price, e.g. {field_999_field_price}
To get the price value of a field, use:
{field_999_field_price}
Option price tags, e.g. {field_999_option_price}
You can get the value of selected options for radio and select fields, eg:
{field_999_option_price}
This will give you the value of the selected option for field 999.
Number of uploads
You can get the number of uploaded files by field, e.g:
{field_999_number_uploads}
This will return the number of files uploaded to field ID #999.
Pages in an uploaded PDF
Use the following tag to get the number of pages in an uploaded PDF:
{field_xxx_pdf_count}
See this article for a fuller explanation.
Quantity
You can get the value of the product quantity field to use in your calculation:
{quantity}
Look up tables
Look up tables allow you to pull prices from a pricing grid, based on user inputs. There is a dedicated article here on how to use them.
Dimensions and weight
Use the following tags in your formula for dimensions and weight:
{product_weight} {product_length} {product_width} {product_height}
Attributes
If you have applied a single attribute term to your product that has a numerical value, you can use this in a calculation. For instance, if you have an attribute called ‘Pattern’ with the term ’10’ then you can pull this value into your calculations like this:
{pa_pattern}
Please note that this will only work when your attribute terms have numerical values; and it will only get the first term applied to the product.
Operators
You can use the following operators: +, -, *, /
You can use parentheses to determine the order of operations within the calculation.
For example:
( ( {field_950} * {field_951} ) + {product_price} ) / {variable_1}
You will need to ensure that your parentheses balance correctly otherwise the formula won’t evaluate.
Hide Calculation
Select this option to hide the calculation from the page, while still allowing it to function.
Rounding
You can choose to round up or round down to the nearest whole number. Just select the desired option from the ‘Round Result’ field.
Decimal Places
Set how many decimal places you’d like to return your result to.
Action
The ‘Action’ setting allows you to define how the calculation result might affect your product page.
- Choose ‘Display As Cost’ if the calculation result will affect the cost of the product
- Choose ‘Set Product Price’ to set the result of the calculation as the total product price
- Choose ‘Update Quantity’ if the calculation result will change the quantity selected
- Choose ‘Update Child Product Quantity’ to update the quantity field of a specific ‘Products’ field (radio images and radio list only). See this tutorial for more details
- Choose ‘Add to Product Weight’ to add the result of the calculation to the weight of the product
- Choose ‘Add to Product Length’ to add the result of the calculation to the length of the product
- Choose ‘Add to Product Width’ to add the result of the calculation to the width of the product
- Choose ‘Add to Product Height’ to add the result of the calculation to the height of the product
Zero value for missing fields
If you include a tag in your calculation formula for a field that doesn’t exist on the page, the calculation will normally return an empty value.
This means that if you have a formula like {field_123} + {field_456}
you’ll only get a result if you have fields with the IDs 123 and 456 present on the page.
However, you might prefer the calculation to ignore a field if it’s not present and still return a value for those fields that are present. To enable this, go to WooCommerce > Settings > Product Add-Ons > Calculations and check the ‘Zero value for missing fields’ option.
The benefit of this option is that it allows you to create a single global calculation field which includes values for multiple fields, not all of which might be present on a single product.
Add/show currency symbol on calculation fields in the cart
By default, the calculation, and number field values don’t have a currency symbol in the cart/cart page. If you’d like the values to have your set currency symbol, then here’s a snippet you can use:
<?php | |
/** Add the default currency field to calculation values in cart **/ | |
add_filter( 'pewc_filter_item_value_in_cart', function( $field_value, $field ) { | |
if ( $field['type'] == "calculation" ) { | |
$field_value = get_woocommerce_currency_symbol() . $field_value; | |
} | |
return $field_value; | |
}, 10, 2 ); |
Here’s how to add your snippet: How to add a code snippet to your site
Calculation fields with other plugins
Better Variations
If you are using the grid layout in Better Variations, you can get the total number of variations selected by the user with this:
{total_variations}
Bookings for WooCommerce
There are two parameters specifically for the Bookings for WooCommerce plugin:
{calculated_booking_cost}
– this will return the total cost of the selected booking
{num_units_int}
– this will return the number of selected units (e.g. days, weeks)
{num_bookings}
– this will return the quantity selected
Advanced Custom Fields
If you are using the Advanced Calculations extension for Add-Ons Ultimate, you can include the value of fields created using ACF in your calculations.
To use ACF fields in your calculations:
- Create your ACF fields for products. Only ‘Number’ fields will work with calculations
- Any ACF fields on a product page will be automatically made available for calculations
- To use an ACF field in a calculation, you will need to use the ACF field name, e.g.
my_number
, prefix it withacf_
, and wrap it in curly braces – e.g.{acf_my_number}
– in your formula
Remember: you’ll need the Advanced Calculations extension to use ACF fields in calculations.
More information
There are several example products using calculation fields in this article.
You can also check out this video for an overview.