WooCommerce Code Reference

WC_Abstract_Order extends WC_Abstract_Legacy_Order
in package
Uses WC_Item_Totals

WC_Abstract_Order class.

Legacy and deprecated functions are here to keep the WC_Abstract_Order clean. This class will be removed in future versions.

Table of Contents

$cache_group  : string
Stores meta in cache for future reads.
$changes  : array
Core data changes for this object.
$data  : array
Order Data array. This is the core order data exposed in APIs since 3.0.0.
$data_store  : object
Contains a reference to the data store for this class.
$data_store_name  : string
Which data store to load.
$default_data  : array
Set to _data on construct so we can track and reset data if needed.
$extra_data  : array
Extra data for this object. Name value pairs (name + default value).
$id  : int
ID for this object.
$items  : array
Order items will be stored here, sometimes before they persist in the DB.
$items_to_delete  : array
Order items that need deleting are stored here.
$meta_data  : array
Stores additional meta data.
$object_read  : bool
This is false until the object is read from the DB.
$object_type  : string
This is the name of this object type.
__clone()  : mixed
When the object is cloned, make sure meta is duplicated correctly.
__construct()  : mixed
Get the order if ID is passed, otherwise the order is new and empty.
__get()  : mixed
Magic __get method for backwards compatibility.
__isset()  : bool
Magic __isset method for backwards compatibility. Handles legacy properties which could be accessed directly in the past.
__sleep()  : array
Only store the object ID to avoid serializing the data object instance.
__toString()  : string
Change data to JSON format.
__wakeup()  : mixed
Re-run the constructor with the object ID.
add_coupon()  : int
Add coupon code to the order.
add_fee()  : int
Add a fee to the order.
add_item()  : false|void
Adds an order item to this order. The order item will not persist until save.
add_meta_data()  : mixed
Add meta data.
add_payment_token()  : bool|int
Add a payment token to an order
add_product()  : int
Add a product line item to the order. This is the only line item type with its own method because it saves looking up order amounts (costs are added up for you).
add_shipping()  : int
Add a shipping row to the order.
add_tax()  : int
Add a tax row to the order.
apply_changes()  : mixed
Merge changes with data and clear.
apply_coupon()  : true|WP_Error
Apply a coupon to the order and recalculate totals.
calculate_shipping()  : float
Calculate shipping total.
calculate_taxes()  : mixed
Calculate taxes for all line items and shipping, and store the totals and tax rows.
calculate_totals()  : float
Calculate totals by looking at the contents of the order. Stores the totals and returns the orders final total.
cancel_order()  : mixed
Cancel the order and restore the cart (before payment).
decrease_coupon_usage_counts()  : mixed
Decrease applied coupon counts.
delete()  : bool
Delete an object, set the ID to 0, and return result.
delete_meta_data()  : mixed
Delete meta data.
delete_meta_data_by_mid()  : mixed
Delete meta data.
display_item_downloads()  : mixed
Display download links for an order item.
display_item_meta()  : mixed
Display meta data belonging to an item.
email_order_items_table()  : string
Output items for display in html emails.
expand_item_meta()  : array
Expand item meta into the $item array.
get_cart_tax()  : float
Gets cart tax amount.
get_changes()  : array
Return data changes only.
get_coupon_codes()  : array
Get used coupon codes only.
get_coupons()  : \WC_Order_Item_Coupon[]
Return an array of coupons within this order.
get_currency()  : string
Gets order currency.
get_data()  : array
Get all class data in array format.
get_data_keys()  : array
Returns array of expected data keys for this object.
get_data_store()  : object
Get the data store.
get_date_created()  : WC_DateTime|null
Get date_created.
get_date_modified()  : WC_DateTime|null
Get date_modified.
get_discount_tax()  : string
Get discount_tax.
get_discount_to_display()  : string
Get the discount amount (formatted).
get_discount_total()  : string
Get discount_total.
get_download_url()  : string
Get the Download URL.
get_extra_data_keys()  : array
Returns all "extra" data keys for an object (for sub objects like product types).
get_fees()  : \WC_Order_item_Fee[]
Return an array of fees within this order.
get_formatted_line_subtotal()  : string
Gets line subtotal - formatted for display.
get_formatted_order_total()  : string
Gets order total - formatted for display.
get_id()  : int
Returns the unique ID for this object.
get_item()  : WC_Order_Item|false
Get an order item object, based on its type.
get_item_count()  : int|string
Gets the count of order items of a certain type.
get_item_downloads()  : array
Get the downloadable files for an item in this order.
get_item_meta()  : array|string
Get order item meta.
get_item_meta_array()  : array
Get all item meta data in array format in the order it was saved. Does not group meta by key like get_item_meta().
get_item_subtotal()  : float
Get item subtotal - this is the cost before discount.
get_item_tax()  : float
Get item tax - useful for gateways.
get_item_total()  : float
Calculate item cost - useful for gateways.
get_items()  : \WC_Order_Item[]
Return an array of items/products within this order.
get_items_tax_classes()  : array
Get all tax classes for items in the order.
get_line_subtotal()  : float
Get line subtotal - this is the cost before discount.
get_line_tax()  : float
Get line tax - useful for gateways.
get_line_total()  : float
Calculate line total - useful for gateways.
get_meta()  : mixed
Get Meta Data by Key.
get_meta_data()  : array
Get All Meta Data.
get_object_read()  : bool
Get object read property.
get_order()  : bool
Gets an order from the database.
get_order_currency()  : mixed
Get currency.
get_order_item_totals()  : array
Get totals for display on pages and in emails.
get_parent_id()  : int
Get parent order ID.
get_payment_tokens()  : array
Returns a list of all payment tokens associated with the current order
get_prices_include_tax()  : bool
Get prices_include_tax.
get_product_from_item()  : WC_Product|bool
Get a product (either product or variation).
get_rounded_items_total()  : float|int
Return rounded total based on settings. Will be used by Cart and Orders.
get_shipping_method()  : string
Gets formatted shipping method title.
get_shipping_methods()  : \WC_Order_Item_Shipping[]
Return an array of shipping costs within this order.
get_shipping_tax()  : string
Get shipping_tax.
get_shipping_to_display()  : string
Gets shipping (formatted).
get_shipping_total()  : string
Get shipping_total.
get_status()  : string
Return the order statuses without wc- internal prefix.
get_subtotal()  : float
Gets order subtotal.
get_subtotal_to_display()  : string
Gets subtotal - subtotal is shown before discounts, but with localised taxes.
get_tax_totals()  : array
Get taxes, merged by code, formatted ready for output.
get_taxes()  : \WC_Order_Item_Tax[]
Return an array of taxes within this order.
get_total()  : float
Gets order grand total. incl. taxes. Used in gateways.
get_total_discount()  : float
Gets the total discount amount.
get_total_fees()  : float
Calculate fees for all line items.
get_total_shipping()  : float
Gets shipping total. Alias of WC_Order::get_shipping_total().
get_total_tax()  : float
Get total tax amount. Alias for get_order_tax().
get_type()  : string
Get internal type.
get_used_coupons()  : array
Get coupon codes only.
get_user()  : WP_User|false
Get user. Used by orders, not other order types like refunds.
get_user_id()  : int
Get user ID. Used by orders, not other order types like refunds.
get_version()  : string
Get order_version.
has_free_item()  : bool
Returns true if the order contains a free product.
has_meta()  : array
has_meta function for order items. This is different to the WC_Data version and should be removed in future versions.
has_shipping_method()  : bool
Check whether this order has a specific shipping method or not.
has_status()  : bool
Checks the order status against a passed in status.
hold_applied_coupons()  : mixed
Check and records coupon usage tentatively so that counts validation is correct. Display an error if coupon usage limit has been reached.
increase_coupon_usage_counts()  : mixed
Increase applied coupon counts.
legacy_set_total()  : bool
Set an order total.
meta_exists()  : bool
See if meta data exists, since get_meta always returns a '' or array().
populate()  : mixed
Populates an order from the loaded post data.
read_meta_data()  : mixed
Read Meta Data from the database. Ignore any internal properties.
recalculate_coupons()  : mixed
Apply all coupons in this order again to all line items.
record_product_sales()  : mixed
Record sales.
reduce_order_stock()  : mixed
Reduce stock levels for all line items in the order.
remove_coupon()  : void
Remove a coupon from the order and recalculate totals.
remove_item()  : false|void
Remove item from the order.
remove_order_items()  : mixed
Remove all line items (products, coupons, shipping, taxes) from the order.
round_item_subtotal()  : float
Apply rounding to item subtotal before summing.
save()  : int
Save data to the database.
save_meta_data()  : mixed
Update Meta Data in the database.
send_stock_notifications()  : mixed
Send the stock notifications.
set_address()  : mixed
Set the customer address.
set_cart_tax()  : mixed
Set cart tax.
set_currency()  : mixed
Set order_currency.
set_date_created()  : mixed
Set date_created.
set_date_modified()  : mixed
Set date_modified.
set_defaults()  : mixed
Set all props to default values.
set_discount_tax()  : mixed
Set discount_tax.
set_discount_total()  : mixed
Set discount_total.
set_id()  : mixed
Set ID.
set_meta_data()  : mixed
Set all meta data from array.
set_object_read()  : mixed
Set object read property.
set_parent_id()  : mixed
Set parent order ID.
set_prices_include_tax()  : mixed
Set prices_include_tax.
set_props()  : bool|WP_Error
Set a collection of props in one go, collect any errors, and return the result.
set_shipping_tax()  : mixed
Set shipping_tax.
set_shipping_total()  : mixed
Set shipping_total.
set_status()  : array
Set order status.
set_total()  : bool|void
Set total.
set_version()  : mixed
Set order_version.
update_coupon()  : int
Update coupon for order. Note this does not update order totals.
update_fee()  : int
Update fee for order.
update_meta_data()  : mixed
Update meta data by key or ID, if provided.
update_product()  : int
Update a line item for the order.
update_shipping()  : int
Update shipping method for order.
update_tax()  : int
Update tax line on order.
update_taxes()  : mixed
Update tax lines for the order based on the line item taxes themselves.
add_order_item_totals_discount_row()  : mixed
Add total row for discounts.
add_order_item_totals_fee_rows()  : mixed
Add total row for fees.
add_order_item_totals_shipping_row()  : mixed
Add total row for shipping.
add_order_item_totals_subtotal_row()  : mixed
Add total row for subtotal.
add_order_item_totals_tax_rows()  : mixed
Add total row for taxes.
add_order_item_totals_total_row()  : mixed
Add total row for grand total.
error()  : mixed
When invalid data is found, throw an exception unless reading from the DB.
filter_null_meta()  : bool
Filter null meta values from array.
get_cart_subtotal_for_order()  : float
Helper function.
get_cart_total_for_order()  : float
Helper function.
get_hook_prefix()  : string
Prefix for action and filter hooks on data.
get_items_key()  : string
Get key for where a certain item type is stored in _items.
get_prop()  : mixed
Gets a prop for a getter method.
get_tax_location()  : array
Get tax location for this order.
get_valid_statuses()  : array
Get all valid statuses for this order
get_values_for_total()  : array
Return array of values for calculations.
handle_exception()  : mixed
Log an error about this order is exception is encountered.
init()  : mixed
Load the order object. Called from the constructor.
is_internal_meta_key()  : bool
Check if the key is an internal one.
maybe_read_meta_data()  : mixed
Read meta data if null.
round_at_subtotal()  : bool
Should always round at subtotal?
round_line_tax()  : float
Apply rounding to an array of taxes before summing. Rounds to store DP setting, ignoring precision.
save_items()  : mixed
Save all order items which are part of this order.
set_coupon_discount_amounts()  : mixed
After applying coupons via the WC_Discounts class, update or create coupon items.
set_date_prop()  : mixed
Sets a date prop whilst handling formatting and datetime objects.
set_item_discount_amounts()  : mixed
After applying coupons via the WC_Discounts class, update line items.
set_prop()  : mixed
Sets a prop for a setter method.
set_total_tax()  : mixed
Sets order tax (sum of cart and shipping tax). Used internally only.
type_to_group()  : string
Convert a type to a types group.
get_billing_and_current_user_aliases()  : array
Helper method to get all aliases for current user and provide billing email.
hold_coupon()  : string
Hold coupon if a global usage limit is defined.
hold_coupon_for_users()  : string
Hold coupon if usage limit per customer is defined.

Properties

$data

Order Data array. This is the core order data exposed in APIs since 3.0.0.

protected array $data = array('parent_id' => 0, 'status' => '', 'currency' => '', 'version' => '', 'prices_include_tax' => alse, 'date_created' => ull, 'date_modified' => ull, 'discount_total' => 0, 'discount_tax' => 0, 'shipping_total' => 0, 'shipping_tax' => 0, 'cart_tax' => 0, 'total' => 0, 'total_tax' => 0)

Notes: cart_tax = cart_tax is the new name for the legacy 'order_tax' which is the tax for items only, not shipping.

Tags
since
3.0.0

$extra_data

Extra data for this object. Name value pairs (name + default value).

protected array $extra_data = array()

Used as a standard way for sub classes (like product types) to add additional information to an inherited class.

Tags
since
3.0.0

Methods

__construct()

Get the order if ID is passed, otherwise the order is new and empty.

public __construct(int|object|WC_Order $order) : mixed

This class should NOT be instantiated, but the wc_get_order function or new WC_Order_Factory should be used. It is possible, but the aforementioned are preferred and are the only methods that will be maintained going forward.

Parameters
$order : int|object|WC_Order

Order to read.

Return values
mixed

__isset()

Magic __isset method for backwards compatibility. Handles legacy properties which could be accessed directly in the past.

public __isset(string $key) : bool
Parameters
$key : string
Return values
bool

add_coupon()

Add coupon code to the order.

public add_coupon([string|array $code = array() ], int $discount, int $discount_tax) : int
Parameters
$code : string|array = array()
$discount : int

tax amount.

$discount_tax : int

amount.

Tags
throws
WC_Data_Exception
Return values
intorder item ID

add_fee()

Add a fee to the order.

public add_fee(object $fee) : int

Order must be saved prior to adding items.

Fee is an amount of money charged for a particular piece of work or for a particular right or service, and not supposed to be negative.

Parameters
$fee : object

Fee data.

Tags
throws
WC_Data_Exception
Return values
intUpdated order item ID.

add_meta_data()

Add meta data.

public add_meta_data(string $key, string|array $value[, bool $unique = false ]) : mixed
Parameters
$key : string

Meta key.

$value : string|array

Meta value.

$unique : bool = false

Should this be a unique key?.

Tags
since
2.6.0
Return values
mixed

add_product()

Add a product line item to the order. This is the only line item type with its own method because it saves looking up order amounts (costs are added up for you).

public add_product(WC_Product $product[, int $qty = 1 ][, array $args = array() ]) : int
Parameters
$product : WC_Product

Product object.

$qty : int = 1

Quantity to add.

$args : array = array()

Args for the added product.

Tags
throws
WC_Data_Exception

Exception thrown if the item cannot be added to the cart.

Return values
int

add_tax()

Add a tax row to the order.

public add_tax(int $tax_rate_id, int $tax_amount, int $shipping_tax_amount) : int
Parameters
$tax_rate_id : int
$tax_amount : int

amount of tax.

$shipping_tax_amount : int

shipping amount.

Tags
throws
WC_Data_Exception
Return values
intorder item ID

apply_coupon()

Apply a coupon to the order and recalculate totals.

public apply_coupon(string|WC_Coupon $raw_coupon) : true|WP_Error
Parameters
$raw_coupon : string|WC_Coupon

Coupon code or object.

Tags
since
3.2.0
Return values
true|WP_ErrorTrue if applied, error if not.

calculate_taxes()

Calculate taxes for all line items and shipping, and store the totals and tax rows.

public calculate_taxes([array $args = array() ]) : mixed

If by default the taxes are based on the shipping address and the current order doesn't have any, it would use the billing address rather than using the Shopping base location.

Will use the base country unless customer addresses are set.

Parameters
$args : array = array()

Added in 3.0.0 to pass things like location.

Return values
mixed

calculate_totals()

Calculate totals by looking at the contents of the order. Stores the totals and returns the orders final total.

public calculate_totals([bool $and_taxes = true ]) : float
Parameters
$and_taxes : bool = true

Calc taxes if true.

Tags
since
2.2
Return values
floatcalculated grand total.

cancel_order()

Cancel the order and restore the cart (before payment).

public cancel_order([string $note = '' ]) : mixed
Parameters
$note : string = ''

(default: '') Optional note to add.

Tags
deprecated
3.0.0

Moved to event handler.

Return values
mixed

delete()

Delete an object, set the ID to 0, and return result.

public delete([bool $force_delete = false ]) : bool
Parameters
$force_delete : bool = false

Should the date be deleted permanently.

Tags
since
2.6.0
Return values
boolresult

delete_meta_data()

Delete meta data.

public delete_meta_data(string $key) : mixed
Parameters
$key : string

Meta key.

Tags
since
2.6.0
Return values
mixed

delete_meta_data_by_mid()

Delete meta data.

public delete_meta_data_by_mid(int $mid) : mixed
Parameters
$mid : int

Meta ID.

Tags
since
2.6.0
Return values
mixed

email_order_items_table()

Output items for display in html emails.

public email_order_items_table([array $args = array() ]) : string
Parameters
$args : array = array()

Items args.

Tags
deprecated
3.0.0

Moved to template functions.

Return values
string

expand_item_meta()

Expand item meta into the $item array.

public expand_item_meta(array $item) : array
Parameters
$item : array

before expansion.

Tags
deprecated
3.0.0

Item meta no longer expanded due to new order item classes. This function now does nothing to avoid data breakage.

Return values
array

get_cart_tax()

Gets cart tax amount.

public get_cart_tax([string $context = 'view' ]) : float
Parameters
$context : string = 'view'

View or edit context.

Return values
float

get_coupons()

Return an array of coupons within this order.

public get_coupons() : \WC_Order_Item_Coupon[]
Tags
since
3.7.0
Return values
\WC_Order_Item_Coupon[]

get_currency()

Gets order currency.

public get_currency([string $context = 'view' ]) : string
Parameters
$context : string = 'view'

View or edit context.

Return values
string

get_date_modified()

Get date_modified.

public get_date_modified([string $context = 'view' ]) : WC_DateTime|null
Parameters
$context : string = 'view'

View or edit context.

Return values
WC_DateTime|nullobject if the date is set or null if there is no date.

get_discount_tax()

Get discount_tax.

public get_discount_tax([string $context = 'view' ]) : string
Parameters
$context : string = 'view'

View or edit context.

Return values
string

get_discount_to_display()

Get the discount amount (formatted).

public get_discount_to_display([string $tax_display = '' ]) : string
Parameters
$tax_display : string = ''

Excl or incl tax display mode.

Tags
since
2.3.0
Return values
string

get_discount_total()

Get discount_total.

public get_discount_total([string $context = 'view' ]) : string
Parameters
$context : string = 'view'

View or edit context.

Return values
string

get_download_url()

Get the Download URL.

public get_download_url(int $product_id, int $download_id) : string
Parameters
$product_id : int
$download_id : int
Return values
string

get_extra_data_keys()

Returns all "extra" data keys for an object (for sub objects like product types).

public get_extra_data_keys() : array
Tags
since
3.0.0
Return values
array

get_formatted_line_subtotal()

Gets line subtotal - formatted for display.

public get_formatted_line_subtotal(object $item[, string $tax_display = '' ]) : string
Parameters
$item : object

Item to get total from.

$tax_display : string = ''

Incl or excl tax display mode.

Return values
string

get_item()

Get an order item object, based on its type.

public get_item(int $item_id[, bool $load_from_db = true ]) : WC_Order_Item|false
Parameters
$item_id : int

ID of item to get.

$load_from_db : bool = true

Prior to 3.2 this item was loaded direct from WC_Order_Factory, not this object. This param is here for backwards compatility with that. If false, uses the local items variable instead.

Tags
since
3.0.0
Return values
WC_Order_Item|false

get_item_count()

Gets the count of order items of a certain type.

public get_item_count([string $item_type = '' ]) : int|string
Parameters
$item_type : string = ''

Item type to lookup.

Return values
int|string

get_item_downloads()

Get the downloadable files for an item in this order.

public get_item_downloads(array $item) : array
Parameters
$item : array
Return values
array

get_item_meta()

Get order item meta.

public get_item_meta(mixed $order_item_id[, string $key = '' ][, bool $single = false ]) : array|string
Parameters
$order_item_id : mixed
$key : string = ''

(default: '')

$single : bool = false

(default: false)

Tags
deprecated
3.0.0
Return values
array|string

get_item_meta_array()

Get all item meta data in array format in the order it was saved. Does not group meta by key like get_item_meta().

public get_item_meta_array(mixed $order_item_id) : array
Parameters
$order_item_id : mixed
Return values
arrayof objects

get_item_subtotal()

Get item subtotal - this is the cost before discount.

public get_item_subtotal(object $item[, bool $inc_tax = false ][, bool $round = true ]) : float
Parameters
$item : object

Item to get total from.

$inc_tax : bool = false

(default: false).

$round : bool = true

(default: true).

Return values
float

get_item_tax()

Get item tax - useful for gateways.

public get_item_tax(mixed $item[, bool $round = true ]) : float
Parameters
$item : mixed

Item to get total from.

$round : bool = true

(default: true).

Return values
float

get_item_total()

Calculate item cost - useful for gateways.

public get_item_total(object $item[, bool $inc_tax = false ][, bool $round = true ]) : float
Parameters
$item : object

Item to get total from.

$inc_tax : bool = false

(default: false).

$round : bool = true

(default: true).

Return values
float

get_items()

Return an array of items/products within this order.

public get_items([string|array $types = 'line_item' ]) : \WC_Order_Item[]
Parameters
$types : string|array = 'line_item'

Types of line items to get (array or string).

Return values
\WC_Order_Item[]

get_line_subtotal()

Get line subtotal - this is the cost before discount.

public get_line_subtotal(object $item[, bool $inc_tax = false ][, bool $round = true ]) : float
Parameters
$item : object

Item to get total from.

$inc_tax : bool = false

(default: false).

$round : bool = true

(default: true).

Return values
float

get_line_tax()

Get line tax - useful for gateways.

public get_line_tax(mixed $item) : float
Parameters
$item : mixed

Item to get total from.

Return values
float

get_line_total()

Calculate line total - useful for gateways.

public get_line_total(object $item[, bool $inc_tax = false ][, bool $round = true ]) : float
Parameters
$item : object

Item to get total from.

$inc_tax : bool = false

(default: false).

$round : bool = true

(default: true).

Return values
float

get_meta()

Get Meta Data by Key.

public get_meta([string $key = '' ][, bool $single = true ][, string $context = 'view' ]) : mixed
Parameters
$key : string = ''

Meta Key.

$single : bool = true

return first found meta with key, or all with $key.

$context : string = 'view'

What the value is for. Valid values are view and edit.

Tags
since
2.6.0
Return values
mixed

get_order_item_totals()

Get totals for display on pages and in emails.

public get_order_item_totals([mixed $tax_display = '' ]) : array
Parameters
$tax_display : mixed = ''

Excl or incl tax display mode.

Return values
array

get_parent_id()

Get parent order ID.

public get_parent_id([string $context = 'view' ]) : int
Parameters
$context : string = 'view'

View or edit context.

Tags
since
3.0.0
Return values
int

get_payment_tokens()

Returns a list of all payment tokens associated with the current order

public get_payment_tokens() : array
Tags
since
2.6
Return values
arrayAn array of payment token objects

get_prices_include_tax()

Get prices_include_tax.

public get_prices_include_tax([string $context = 'view' ]) : bool
Parameters
$context : string = 'view'

View or edit context.

Return values
bool

get_rounded_items_total()

Return rounded total based on settings. Will be used by Cart and Orders.

public static get_rounded_items_total(array $values) : float|int
Parameters
$values : array

Values to round. Should be with precision.

Tags
since
3.9.0
Return values
float|intAppropriately rounded value.

get_shipping_methods()

Return an array of shipping costs within this order.

public get_shipping_methods() : \WC_Order_Item_Shipping[]
Return values
\WC_Order_Item_Shipping[]

get_shipping_tax()

Get shipping_tax.

public get_shipping_tax([string $context = 'view' ]) : string
Parameters
$context : string = 'view'

View or edit context.

Return values
string

get_shipping_to_display()

Gets shipping (formatted).

public get_shipping_to_display([string $tax_display = '' ]) : string
Parameters
$tax_display : string = ''

Excl or incl tax display mode.

Return values
string

get_shipping_total()

Get shipping_total.

public get_shipping_total([string $context = 'view' ]) : string
Parameters
$context : string = 'view'

View or edit context.

Return values
string

get_status()

Return the order statuses without wc- internal prefix.

public get_status([string $context = 'view' ]) : string
Parameters
$context : string = 'view'

View or edit context.

Return values
string

get_subtotal_to_display()

Gets subtotal - subtotal is shown before discounts, but with localised taxes.

public get_subtotal_to_display([bool $compound = false ][, string $tax_display = '' ]) : string
Parameters
$compound : bool = false

(default: false).

$tax_display : string = ''

(default: the tax_display_cart value).

Return values
string

get_total()

Gets order grand total. incl. taxes. Used in gateways.

public get_total([string $context = 'view' ]) : float
Parameters
$context : string = 'view'

View or edit context.

Return values
float

get_total_discount()

Gets the total discount amount.

public get_total_discount([bool $ex_tax = true ]) : float
Parameters
$ex_tax : bool = true

Show discount excl any tax.

Return values
float

get_total_shipping()

Gets shipping total. Alias of WC_Order::get_shipping_total().

public get_total_shipping() : float
Tags
deprecated
3.0.0

since this is an alias only.

Return values
float

get_total_tax()

Get total tax amount. Alias for get_order_tax().

public get_total_tax([string $context = 'view' ]) : float
Parameters
$context : string = 'view'

View or edit context.

Return values
float

get_used_coupons()

Get coupon codes only.

public get_used_coupons() : array
Tags
deprecated
3.7.0
  • Replaced with better named method to reflect the actual data being returned.
Return values
array

get_user_id()

Get user ID. Used by orders, not other order types like refunds.

public get_user_id([string $context = 'view' ]) : int
Parameters
$context : string = 'view'

View or edit context.

Return values
int

get_version()

Get order_version.

public get_version([string $context = 'view' ]) : string
Parameters
$context : string = 'view'

View or edit context.

Return values
string

has_meta()

has_meta function for order items. This is different to the WC_Data version and should be removed in future versions.

public has_meta(int $order_item_id) : array
Parameters
$order_item_id : int
Tags
deprecated
3.0
Return values
arrayof meta data.

has_shipping_method()

Check whether this order has a specific shipping method or not.

public has_shipping_method(string $method_id) : bool
Parameters
$method_id : string

Method ID to check.

Return values
bool

has_status()

Checks the order status against a passed in status.

public has_status(array|string $status) : bool
Parameters
$status : array|string

Status to check.

Return values
bool

hold_applied_coupons()

Check and records coupon usage tentatively so that counts validation is correct. Display an error if coupon usage limit has been reached.

public hold_applied_coupons(string $billing_email) : mixed

If you are using this method, make sure to release_held_coupons in case an Exception is thrown.

Parameters
$billing_email : string

Billing email of order.

Tags
throws
Exception

When not able to apply coupon.

Return values
mixed

legacy_set_total()

Set an order total.

public legacy_set_total(float $amount[, string $total_type = 'total' ]) : bool
Parameters
$amount : float
$total_type : string = 'total'
Return values
bool

meta_exists()

See if meta data exists, since get_meta always returns a '' or array().

public meta_exists([string $key = '' ]) : bool
Parameters
$key : string = ''

Meta Key.

Tags
since
3.0.0
Return values
bool

read_meta_data()

Read Meta Data from the database. Ignore any internal properties.

public read_meta_data([bool $force_read = false ]) : mixed

Uses it's own caches because get_metadata does not provide meta_ids.

Parameters
$force_read : bool = false

True to force a new DB read (and update cache).

Tags
since
2.6.0
Return values
mixed

recalculate_coupons()

Apply all coupons in this order again to all line items.

public recalculate_coupons() : mixed

This method is public since WooCommerce 3.8.0.

Tags
since
3.2.0
Return values
mixed

remove_coupon()

Remove a coupon from the order and recalculate totals.

public remove_coupon(string $code) : void

Coupons affect line item totals, but there is no relationship between coupon and line total, so to remove a coupon we need to work from the line subtotal (price before discount) and re-apply all coupons in this order.

Manual discounts are not affected; those are separate and do not affect stored line totals.

Parameters
$code : string

Coupon code.

Tags
since
3.2.0

remove_item()

Remove item from the order.

public remove_item(int $item_id) : false|void
Parameters
$item_id : int

Item ID to delete.

Return values
false|void

remove_order_items()

Remove all line items (products, coupons, shipping, taxes) from the order.

public remove_order_items([string $type = null ]) : mixed
Parameters
$type : string = null

Order item type. Default null.

Return values
mixed

round_item_subtotal()

Apply rounding to item subtotal before summing.

public static round_item_subtotal(float $value) : float
Parameters
$value : float

Item subtotal value.

Tags
since
3.9.0
Return values
float

send_stock_notifications()

Send the stock notifications.

public send_stock_notifications( $product,  $new_stock,  $qty_ordered) : mixed
Parameters
$product :
$new_stock :
$qty_ordered :
Tags
deprecated
3.0.0

No longer needs to be called directly.

Return values
mixed

set_address()

Set the customer address.

public set_address(array $address[, string $type = 'billing' ]) : mixed
Parameters
$address : array

Address data.

$type : string = 'billing'

billing or shipping.

Return values
mixed

set_date_created()

Set date_created.

public set_date_created([string|int|null $date = null ]) : mixed
Parameters
$date : string|int|null = null

UTC timestamp, or ISO 8601 DateTime. If the DateTime string has no timezone or offset, WordPress site timezone will be assumed. Null if there is no date.

Tags
throws
WC_Data_Exception

Exception may be thrown if value is invalid.

Return values
mixed

set_date_modified()

Set date_modified.

public set_date_modified([string|int|null $date = null ]) : mixed
Parameters
$date : string|int|null = null

UTC timestamp, or ISO 8601 DateTime. If the DateTime string has no timezone or offset, WordPress site timezone will be assumed. Null if there is no date.

Tags
throws
WC_Data_Exception

Exception may be thrown if value is invalid.

Return values
mixed

set_meta_data()

Set all meta data from array.

public set_meta_data(array $data) : mixed
Parameters
$data : array

Key/Value pairs.

Tags
since
2.6.0
Return values
mixed

set_object_read()

Set object read property.

public set_object_read([bool $read = true ]) : mixed
Parameters
$read : bool = true

Should read?.

Tags
since
3.0.0
Return values
mixed

set_parent_id()

Set parent order ID.

public set_parent_id(int $value) : mixed
Parameters
$value : int

Value to set.

Tags
since
3.0.0
throws
WC_Data_Exception

Exception thrown if parent ID does not exist or is invalid.

Return values
mixed

set_props()

Set a collection of props in one go, collect any errors, and return the result.

public set_props(array $props[, string $context = 'set' ]) : bool|WP_Error

Only sets using public methods.

Parameters
$props : array

Key value pairs to set. Key is the prop and should map to a setter function name.

$context : string = 'set'

In what context to run this.

Tags
since
3.0.0
Return values
bool|WP_Error

set_status()

Set order status.

public set_status(string $new_status) : array
Parameters
$new_status : string

Status to change the order to. No internal wc- prefix is required.

Tags
since
3.0.0
Return values
arraydetails of change

set_total()

Set total.

public set_total(string $value[, string $deprecated = '' ]) : bool|void
Parameters
$value : string

Value to set.

$deprecated : string = ''

Function used to set different totals based on this.

Tags
throws
WC_Data_Exception

Exception may be thrown if value is invalid.

Return values
bool|void

update_coupon()

Update coupon for order. Note this does not update order totals.

public update_coupon(object|int $item, array $args) : int
Parameters
$item : object|int
$args : array
Tags
throws
WC_Data_Exception
Return values
intupdated order item ID

update_meta_data()

Update meta data by key or ID, if provided.

public update_meta_data(string $key, string|array $value, int $meta_id) : mixed
Parameters
$key : string

Meta key.

$value : string|array

Meta value.

$meta_id : int

Meta ID.

Tags
since
2.6.0
Return values
mixed

update_product()

Update a line item for the order.

public update_product(object|int $item, WC_Product $product, array $args) : int

Note this does not update order totals.

Parameters
$item : object|int

order item ID or item object.

$product : WC_Product
$args : array

data to update.

Tags
throws
WC_Data_Exception
Return values
intupdated order item ID

update_shipping()

Update shipping method for order.

public update_shipping(object|int $item, array $args) : int

Note this does not update the order total.

Parameters
$item : object|int
$args : array
Tags
throws
WC_Data_Exception
Return values
intupdated order item ID

update_tax()

Update tax line on order.

public update_tax(object|int $item, array $args) : int

Note this does not update order totals.

Parameters
$item : object|int
$args : array
Tags
since
3.0
throws
WC_Data_Exception
Return values
intupdated order item ID

add_order_item_totals_discount_row()

Add total row for discounts.

protected add_order_item_totals_discount_row(array &$total_rows, string $tax_display) : mixed
Parameters
$total_rows : array

Reference to total rows array.

$tax_display : string

Excl or incl tax display mode.

Return values
mixed

add_order_item_totals_fee_rows()

Add total row for fees.

protected add_order_item_totals_fee_rows(array &$total_rows, string $tax_display) : mixed
Parameters
$total_rows : array

Reference to total rows array.

$tax_display : string

Excl or incl tax display mode.

Return values
mixed

add_order_item_totals_shipping_row()

Add total row for shipping.

protected add_order_item_totals_shipping_row(array &$total_rows, string $tax_display) : mixed
Parameters
$total_rows : array

Reference to total rows array.

$tax_display : string

Excl or incl tax display mode.

Return values
mixed

add_order_item_totals_subtotal_row()

Add total row for subtotal.

protected add_order_item_totals_subtotal_row(array &$total_rows, string $tax_display) : mixed
Parameters
$total_rows : array

Reference to total rows array.

$tax_display : string

Excl or incl tax display mode.

Return values
mixed

add_order_item_totals_tax_rows()

Add total row for taxes.

protected add_order_item_totals_tax_rows(array &$total_rows, string $tax_display) : mixed
Parameters
$total_rows : array

Reference to total rows array.

$tax_display : string

Excl or incl tax display mode.

Return values
mixed

add_order_item_totals_total_row()

Add total row for grand total.

protected add_order_item_totals_total_row(array &$total_rows, string $tax_display) : mixed
Parameters
$total_rows : array

Reference to total rows array.

$tax_display : string

Excl or incl tax display mode.

Return values
mixed

error()

When invalid data is found, throw an exception unless reading from the DB.

protected error(string $code, string $message[, int $http_status_code = 400 ][, array $data = array() ]) : mixed
Parameters
$code : string

Error code.

$message : string

Error message.

$http_status_code : int = 400

HTTP status code.

$data : array = array()

Extra error data.

Tags
throws
WC_Data_Exception

Data Exception.

since
3.0.0
Return values
mixed

filter_null_meta()

Filter null meta values from array.

protected filter_null_meta(mixed $meta) : bool
Parameters
$meta : mixed

Meta value to check.

Tags
since
3.0.0
Return values
bool

get_cart_subtotal_for_order()

Helper function.

protected get_cart_subtotal_for_order() : float

If you add all items in this order in cart again, this would be the cart subtotal (assuming all other settings are same).

Return values
floatCart subtotal.

get_cart_total_for_order()

Helper function.

protected get_cart_total_for_order() : float

If you add all items in this order in cart again, this would be the cart total (assuming all other settings are same).

Return values
floatCart total.

get_items_key()

Get key for where a certain item type is stored in _items.

protected get_items_key(string $item) : string
Parameters
$item : string

object Order item (product, shipping, fee, coupon, tax).

Tags
since
3.0.0
Return values
string

get_prop()

Gets a prop for a getter method.

protected get_prop(string $prop[, string $context = 'view' ]) : mixed

Gets the value from either current pending changes, or the data itself. Context controls what happens to the value before it's returned.

Parameters
$prop : string

Name of prop to get.

$context : string = 'view'

What the value is for. Valid values are view and edit.

Tags
since
3.0.0
Return values
mixed

get_tax_location()

Get tax location for this order.

protected get_tax_location([array $args = array() ]) : array
Parameters
$args : array = array()

array Override the location.

Tags
since
3.2.0
Return values
array

get_valid_statuses()

Get all valid statuses for this order

protected get_valid_statuses() : array
Tags
since
3.0.0
Return values
arrayInternal status keys e.g. 'wc-processing'

get_values_for_total()

Return array of values for calculations.

protected get_values_for_total(string $field) : array
Parameters
$field : string

Field name to return.

Return values
arrayArray of values.

handle_exception()

Log an error about this order is exception is encountered.

protected handle_exception(Exception $e[, string $message = 'Error' ]) : mixed
Parameters
$e : Exception

Exception object.

$message : string = 'Error'

Message regarding exception thrown.

Tags
since
3.7.0
Return values
mixed

is_internal_meta_key()

Check if the key is an internal one.

protected is_internal_meta_key(string $key) : bool
Parameters
$key : string

Key to check.

Tags
since
3.2.0
Return values
booltrue if it's an internal key, false otherwise

round_line_tax()

Apply rounding to an array of taxes before summing. Rounds to store DP setting, ignoring precision.

protected static round_line_tax(float $value[, bool $in_cents = true ]) : float
Parameters
$value : float

Tax value.

$in_cents : bool = true

Whether precision of value is in cents.

Tags
since
3.2.6
Return values
float

set_coupon_discount_amounts()

After applying coupons via the WC_Discounts class, update or create coupon items.

protected set_coupon_discount_amounts(WC_Discounts $discounts) : mixed
Parameters
$discounts : WC_Discounts

Discounts class.

Tags
since
3.2.0
Return values
mixed

set_date_prop()

Sets a date prop whilst handling formatting and datetime objects.

protected set_date_prop(string $prop, string|int $value) : mixed
Parameters
$prop : string

Name of prop to set.

$value : string|int

Value of the prop.

Tags
since
3.0.0
Return values
mixed

set_prop()

Sets a prop for a setter method.

protected set_prop(string $prop, mixed $value) : mixed

This stores changes in a special array so we can track what needs saving the the DB later.

Parameters
$prop : string

Name of prop to set.

$value : mixed

Value of the prop.

Tags
since
3.0.0
Return values
mixed

set_total_tax()

Sets order tax (sum of cart and shipping tax). Used internally only.

protected set_total_tax(string $value) : mixed
Parameters
$value : string

Value to set.

Tags
throws
WC_Data_Exception

Exception may be thrown if value is invalid.

Return values
mixed

type_to_group()

Convert a type to a types group.

protected type_to_group(string $type) : string
Parameters
$type : string

type to lookup.

Return values
string

get_billing_and_current_user_aliases()

Helper method to get all aliases for current user and provide billing email.

private get_billing_and_current_user_aliases(string $billing_email) : array
Parameters
$billing_email : string

Billing email provided in form.

Tags
throws
Exception

When validation fails.

Return values
arrayArray of all aliases.

hold_coupon()

Hold coupon if a global usage limit is defined.

private hold_coupon(WC_Coupon $coupon) : string
Parameters
$coupon : WC_Coupon

Coupon object.

Tags
throws
Exception

When can't be held.

Return values
stringMeta key which indicates held coupon.

hold_coupon_for_users()

Hold coupon if usage limit per customer is defined.

private hold_coupon_for_users(WC_Coupon $coupon, array $user_ids_and_emails, string $user_alias) : string
Parameters
$coupon : WC_Coupon

Coupon object.

$user_ids_and_emails : array

Array of user Id and emails to check for usage limit.

$user_alias : string

User ID or email to use to record current usage.

Tags
throws
Exception

When coupon can't be held.

Return values
stringMeta key which indicates held coupon.