Additional Order Costs for WooCommerce

by TheRiteSites


Whether it’s an extra invoice, or a credit from a merchant related to an order. Sometimes you just need a couple extra cost fields for your store’s reporting. Dynamically add as many costs to your order as you would like!

After installing this plugin youll be able to manually add or adjust and label additional costs for each order on the WooCommerce Edit Order page. This starts with 5 additional cost fields that can be changed in the settings page with the plugin. 5 fields too much? Set it to 2! Not enough, set it to 9!
In the future we will be looking at making these a repeatable field rather than a set number, but we wanted to get users thinking of other expansions as well!

Once you start tracking the additional order costs you associate, youll want to use our WooCommerce Net Profit plugin that will give you beautiful, functional reports to fully analyze your profitability.
This also pairs well with our other cost tracking plugin, WooCommerce Cost of Shipping.
While using the WooCommerce Net Profit plugin, you will individually be able to track Additional Costs, Cost of Shipping, and Cost of Goods. The Net Profit plugin has recently been expanded to allow for custom costs to be associated from any other third party plugin as well, though coding is necessary.

This plugin also serves as the first ever example of how to integrate with WooCommerce Net Profit in a dynamic fashion.
WooCommerce Net Profit as of version 1.5 now has an active filter

add_filter( 'trs_wc_np_order_cost_extension', 'callback_function', 10, 1 )

How the filter is implemented can be found in additional-oprder-costs-for-woocommerce/includes/class-aoc-wc.php
The filter allows for a PHP array of objects to be modified. Each object in the array represents a plugin that needs to extend to a cost calculation. The key in the array should be the meta_key found in the database. The rest of the object should be structured as follows:

$array[$meta_key] = new StdClass();
$array[$meta_key]->key = $meta_key;
$array[$meta_key]->category = 'additional_costs'; // could be cost_of_goods, additional_costs, cost_of_shipping
$array[$meta_key]->function = 'aoc_wc_calculate_addition_costs_on_order'; // This should be a callable non-class protected function.

The function listed above should be found in a file of similar structure to functions.php in themes. This function is called when doing data/reporting queries. The function is only applied to the individual meta keys value.
For example: this plugin stores multiple order cost lines with associated labels. The “function” portion of the filter plucks out the important values and returns a singular non-scalar (non-complex) value. This value can then be subtracted from any other simple (float, integer, double) data format.


Last updated:
Active installations:
WordPress Version:
4.0 or higher
Tested up to:
PHP Version:
5.6 or higher