WooCommerce Code Reference

WC_Order extends WC_Abstract_Order
in package

Order Class.

These are regular WooCommerce orders, which extend the abstract order class.

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.
$status_transition  : bool|array
Stores data about status changes so relevant hooks can be fired.
__clone()  : mixed
When the object is cloned, make sure meta is duplicated correctly.
__construct()  : mixed
Default constructor.
__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_order_note()  : int
Adds a note (comment) to the order. Order must exist.
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_address()  : array
Returns the requested address in raw, non-formatted way.
get_base_data()  : array
Get basic order data in array format.
get_billing_address_1()  : string
Get billing address line 1.
get_billing_address_2()  : string
Get billing address line 2.
get_billing_city()  : string
Get billing city.
get_billing_company()  : string
Get billing company.
get_billing_country()  : string
Get billing country.
get_billing_email()  : string
Get billing email.
get_billing_first_name()  : string
Get billing first name.
get_billing_last_name()  : string
Get billing last name.
get_billing_phone()  : string
Get billing phone.
get_billing_postcode()  : string
Get billing postcode.
get_billing_state()  : string
Get billing state.
get_cancel_endpoint()  : string
Helper method to return the cancel endpoint.
get_cancel_order_url()  : string
Generates a URL so that a customer can cancel their (unpaid - pending) order.
get_cancel_order_url_raw()  : string
Generates a raw (unescaped) cancel-order URL for use by payment gateways.
get_cart_hash()  : string
Get cart hash.
get_cart_tax()  : float
Gets cart tax amount.
get_changes()  : mixed
Expands the shipping and billing information in the changes array.
get_checkout_order_received_url()  : string
Generates a URL for the thanks page (order received).
get_checkout_payment_url()  : string
Generates a URL so that a customer can pay for their (unpaid - pending) order. Pass 'true' for the checkout version which doesn't offer gateway choices.
get_coupon_codes()  : array
Get used coupon codes only.
get_coupons()  : \WC_Order_Item_Coupon[]
Return an array of coupons within this order.
get_created_via()  : string
Get created via.
get_currency()  : string
Gets order currency.
get_customer_id()  : int
Get customer_id.
get_customer_ip_address()  : string
Get customer ip address.
get_customer_note()  : string
Get customer note.
get_customer_order_notes()  : array
List order notes (public) for the customer.
get_customer_user_agent()  : string
Get customer user agent.
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_completed()  : WC_DateTime|null
Get date completed.
get_date_created()  : WC_DateTime|null
Get date_created.
get_date_modified()  : WC_DateTime|null
Get date_modified.
get_date_paid()  : WC_DateTime|null
Get date paid.
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_downloadable_items()  : array
Get downloads from all line items for this order.
get_edit_order_url()  : string
Get's the URL to edit the order in the backend.
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_billing_address()  : string
Get a formatted billing address for the order.
get_formatted_billing_full_name()  : string
Get a formatted billing full name.
get_formatted_line_subtotal()  : string
Gets line subtotal - formatted for display.
get_formatted_order_total()  : string
Gets order total - formatted for display.
get_formatted_shipping_address()  : string
Get a formatted shipping address for the order.
get_formatted_shipping_full_name()  : string
Get a formatted shipping full name.
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_count_refunded()  : string
Gets the count of order items of a certain type that have been refunded.
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_order_key()  : string
Get order key.
get_order_number()  : string
Gets the order number for display (by default, order ID).
get_parent_id()  : int
Get parent order ID.
get_payment_method()  : string
Get the payment method.
get_payment_method_title()  : string
Get payment method title.
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_qty_refunded_for_item()  : int
Get the refunded amount for a line item.
get_refunds()  : array
Get order refunds.
get_remaining_refund_amount()  : string
How much money is left to refund?
get_remaining_refund_items()  : int
How many items are left to refund?
get_rounded_items_total()  : float|int
Return rounded total based on settings. Will be used by Cart and Orders.
get_shipping_address_1()  : string
Get shipping address line 1.
get_shipping_address_2()  : string
Get shipping address line 2.
get_shipping_address_map_url()  : string
Get a formatted shipping address for the order.
get_shipping_city()  : string
Get shipping city.
get_shipping_company()  : string
Get shipping company.
get_shipping_country()  : string
Get shipping country.
get_shipping_first_name()  : string
Get shipping first name.
get_shipping_last_name()  : string
Get shipping_last_name.
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_postcode()  : string
Get shipping postcode.
get_shipping_state()  : string
Get shipping state.
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_refunded_for_item()  : float
Get the refunded tax amount for a line item.
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_qty_refunded()  : int
Get the total number of items refunded.
get_total_refunded()  : string
Get amount already refunded.
get_total_refunded_for_item()  : int
Get the refunded amount for a line item.
get_total_shipping()  : float
Gets shipping total. Alias of WC_Order::get_shipping_total().
get_total_shipping_refunded()  : float
Get the total shipping refunded.
get_total_tax()  : float
Get total tax amount. Alias for get_order_tax().
get_total_tax_refunded()  : float
Get the total tax refunded.
get_total_tax_refunded_by_rate_id()  : float
Get total tax refunded by rate ID.
get_transaction_id()  : string
Get transaction d.
get_type()  : string
Get internal type.
get_used_coupons()  : array
Get coupon codes only.
get_user()  : WP_User|false
Get the user associated with the order. False for guests.
get_user_id()  : int
Alias for get_customer_id().
get_version()  : string
Get order_version.
get_view_order_url()  : string
Generates a URL to view an order from the my account page.
has_billing_address()  : bool
Returns true if the order has a billing address.
has_cart_hash()  : bool
See if order matches cart_hash.
has_downloadable_item()  : bool
Returns true if the order contains a downloadable product.
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_address()  : bool
Returns true if the order has a shipping address.
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.
is_created_via()  : bool
Check if order has been created via admin, checkout, or in another way.
is_download_permitted()  : bool
Checks if product download is permitted.
is_editable()  : bool
Checks if an order can be edited, specifically for use on the Edit Order screen.
is_paid()  : bool
Returns if an order has been paid for based on the order status.
key_is_valid()  : bool
Check if an order key is valid.
legacy_set_total()  : bool
Set an order total.
maybe_set_date_paid()  : mixed
Maybe set date paid.
meta_exists()  : bool
See if meta data exists, since get_meta always returns a '' or array().
needs_payment()  : bool
Checks if an order needs payment, based on status and order total.
needs_processing()  : bool
See if the order needs processing before it can be completed.
needs_shipping_address()  : bool
Checks if an order needs display the shipping address, based on shipping method.
payment_complete()  : bool
When a payment is complete this function is called.
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_billing_address_1()  : mixed
Set billing address line 1.
set_billing_address_2()  : mixed
Set billing address line 2.
set_billing_city()  : mixed
Set billing city.
set_billing_company()  : mixed
Set billing company.
set_billing_country()  : mixed
Set billing country.
set_billing_email()  : mixed
Set billing email.
set_billing_first_name()  : mixed
Set billing first name.
set_billing_last_name()  : mixed
Set billing last name.
set_billing_phone()  : mixed
Set billing phone.
set_billing_postcode()  : mixed
Set billing postcode.
set_billing_state()  : mixed
Set billing state.
set_cart_hash()  : mixed
Set cart hash.
set_cart_tax()  : mixed
Set cart tax.
set_created_via()  : mixed
Set created via.
set_currency()  : mixed
Set order_currency.
set_customer_id()  : mixed
Set customer id.
set_customer_ip_address()  : mixed
Set customer ip address.
set_customer_note()  : mixed
Set customer note.
set_customer_user_agent()  : mixed
Set customer user agent.
set_date_completed()  : mixed
Set date completed.
set_date_created()  : mixed
Set date_created.
set_date_modified()  : mixed
Set date_modified.
set_date_paid()  : mixed
Set date paid.
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_order_key()  : mixed
Set order key.
set_parent_id()  : mixed
Set parent order ID.
set_payment_method()  : mixed
Set the payment method.
set_payment_method_title()  : mixed
Set payment method title.
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_address_1()  : mixed
Set shipping address line 1.
set_shipping_address_2()  : mixed
Set shipping address line 2.
set_shipping_city()  : mixed
Set shipping city.
set_shipping_company()  : mixed
Set shipping company.
set_shipping_country()  : mixed
Set shipping country.
set_shipping_first_name()  : mixed
Set shipping first name.
set_shipping_last_name()  : mixed
Set shipping last name.
set_shipping_postcode()  : mixed
Set shipping postcode.
set_shipping_state()  : mixed
Set shipping state.
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_transaction_id()  : mixed
Set transaction id.
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_status()  : bool
Updates status of order immediately.
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_payment_method_row()  : mixed
Add total row for the payment method.
add_order_item_totals_refund_rows()  : mixed
Add total row for refunds.
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_address_prop()  : mixed
Gets a prop for a getter method.
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
Line items to calculate. Define in child class.
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.
maybe_set_date_completed()  : mixed
Maybe set date completed.
maybe_set_user_billing_email()  : mixed
Maybe set empty billing email to that of the user who owns the order.
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_address_prop()  : mixed
Sets a prop for a setter method.
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.
status_transition()  : mixed
Handle the status transition.
type_to_group()  : string
Convert a type to a types group.
add_status_transition_note()  : int
Add an order note for status transition
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( // Abstract order props. '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, // Order props. 'customer_id' => 0, 'order_key' => '', 'billing' => array('first_name' => '', 'last_name' => '', 'company' => '', 'address_1' => '', 'address_2' => '', 'city' => '', 'state' => '', 'postcode' => '', 'country' => '', 'email' => '', 'phone' => ''), 'shipping' => array('first_name' => '', 'last_name' => '', 'company' => '', 'address_1' => '', 'address_2' => '', 'city' => '', 'state' => '', 'postcode' => '', 'country' => ''), 'payment_method' => '', 'payment_method_title' => '', 'transaction_id' => '', 'customer_ip_address' => '', 'customer_user_agent' => '', 'created_via' => '', 'customer_note' => '', 'date_completed' => ull, 'date_paid' => ull, 'cart_hash' => '', )

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

$status_transition

Stores data about status changes so relevant hooks can be fired.

protected bool|array $status_transition = alse

Methods

__construct()

Default constructor.

public __construct(int|object|array $read) : mixed
Parameters
$read : int|object|array

ID to load from the DB (optional) or already queried data.

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_order_note()

Adds a note (comment) to the order. Order must exist.

public add_order_note(string $note, int $is_customer_note[, bool $added_by_user = false ]) : int
Parameters
$note : string

Note to add.

$is_customer_note : int

Is this a note for the customer?.

$added_by_user : bool = false

Was the note added by a user?.

Return values
intComment ID.

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_address()

Returns the requested address in raw, non-formatted way.

public get_address([string $type = 'billing' ]) : array

Note: Merges raw data with get_prop data so changes are returned too.

Parameters
$type : string = 'billing'

Billing or shipping. Anything else besides 'billing' will return shipping address.

Tags
since
2.4.0
Return values
arrayThe stored address after filter.

get_base_data()

Get basic order data in array format.

public get_base_data() : array
Return values
array

get_billing_address_1()

Get billing address line 1.

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

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

Return values
string

get_billing_address_2()

Get billing address line 2.

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

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

Return values
string

get_billing_city()

Get billing city.

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

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

Return values
string

get_billing_company()

Get billing company.

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

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

Return values
string

get_billing_country()

Get billing country.

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

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

Return values
string

get_billing_email()

Get billing email.

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

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

Return values
string

get_billing_first_name()

Get billing first name.

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

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

Return values
string

get_billing_last_name()

Get billing last name.

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

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

Return values
string

get_billing_phone()

Get billing phone.

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

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

Return values
string

get_billing_postcode()

Get billing postcode.

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

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

Return values
string

get_billing_state()

Get billing state.

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

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

Return values
string

get_cancel_endpoint()

Helper method to return the cancel endpoint.

public get_cancel_endpoint() : string
Return values
stringthe cancel endpoint; either the cart page or the home page.

get_cancel_order_url()

Generates a URL so that a customer can cancel their (unpaid - pending) order.

public get_cancel_order_url([string $redirect = '' ]) : string
Parameters
$redirect : string = ''

Redirect URL.

Return values
string

get_cancel_order_url_raw()

Generates a raw (unescaped) cancel-order URL for use by payment gateways.

public get_cancel_order_url_raw([string $redirect = '' ]) : string
Parameters
$redirect : string = ''

Redirect URL.

Return values
stringThe unescaped cancel-order URL.

get_cart_hash()

Get cart hash.

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

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

Return values
string

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_changes()

Expands the shipping and billing information in the changes array.

public get_changes() : mixed
Return values
mixed

get_checkout_order_received_url()

Generates a URL for the thanks page (order received).

public get_checkout_order_received_url() : string
Return values
string

get_checkout_payment_url()

Generates a URL so that a customer can pay for their (unpaid - pending) order. Pass 'true' for the checkout version which doesn't offer gateway choices.

public get_checkout_payment_url([bool $on_checkout = false ]) : string
Parameters
$on_checkout : bool = false

If on checkout.

Return values
string

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_created_via()

Get created via.

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

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

Return values
string

get_currency()

Gets order currency.

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

View or edit context.

Return values
string

get_customer_id()

Get customer_id.

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

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

Return values
int

get_customer_ip_address()

Get customer ip address.

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

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

Return values
string

get_customer_note()

Get customer note.

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

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

Return values
string

get_customer_order_notes()

List order notes (public) for the customer.

public get_customer_order_notes() : array
Return values
array

get_customer_user_agent()

Get customer user agent.

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

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

Return values
string

get_data()

Get all class data in array format.

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

get_date_completed()

Get date completed.

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

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

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

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_date_paid()

Get date paid.

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

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

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_downloadable_items()

Get downloads from all line items for this order.

public get_downloadable_items() : array
Tags
since
3.2.0
Return values
array

get_edit_order_url()

Get's the URL to edit the order in the backend.

public get_edit_order_url() : string
Tags
since
3.3.0
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_billing_address()

Get a formatted billing address for the order.

public get_formatted_billing_address([string $empty_content = '' ]) : string
Parameters
$empty_content : string = ''

Content to show if no address is present. @since 3.3.0.

Return values
string

get_formatted_billing_full_name()

Get a formatted billing full name.

public get_formatted_billing_full_name() : string
Return values
string

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_formatted_order_total()

Gets order total - formatted for display.

public get_formatted_order_total([string $tax_display = '' ][, bool $display_refunded = true ]) : string
Parameters
$tax_display : string = ''

Type of tax display.

$display_refunded : bool = true

If should include refunded value.

Return values
string

get_formatted_shipping_address()

Get a formatted shipping address for the order.

public get_formatted_shipping_address([string $empty_content = '' ]) : string
Parameters
$empty_content : string = ''

Content to show if no address is present. @since 3.3.0.

Return values
string

get_formatted_shipping_full_name()

Get a formatted shipping full name.

public get_formatted_shipping_full_name() : string
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_count_refunded()

Gets the count of order items of a certain type that have been refunded.

public get_item_count_refunded([string $item_type = '' ]) : string
Parameters
$item_type : string = ''

Item type.

Tags
since
2.4.0
Return values
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([string $tax_display = '' ]) : array
Parameters
$tax_display : string = ''

Tax to display.

Return values
array

get_order_key()

Get order key.

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

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

Tags
since
3.0.0
Return values
string

get_order_number()

Gets the order number for display (by default, order ID).

public get_order_number() : string
Return values
string

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_method()

Get the payment method.

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

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

Return values
string

get_payment_method_title()

Get payment method title.

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

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

Return values
string

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_qty_refunded_for_item()

Get the refunded amount for a line item.

public get_qty_refunded_for_item(int $item_id[, string $item_type = 'line_item' ]) : int
Parameters
$item_id : int

ID of the item we're checking.

$item_type : string = 'line_item'

Type of the item we're checking, if not a line_item.

Return values
int

get_refunds()

Get order refunds.

public get_refunds() : array
Tags
since
2.2
Return values
arrayof WC_Order_Refund objects

get_remaining_refund_amount()

How much money is left to refund?

public get_remaining_refund_amount() : string
Return values
string

get_remaining_refund_items()

How many items are left to refund?

public get_remaining_refund_items() : int
Return values
int

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_address_1()

Get shipping address line 1.

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

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

Return values
string

get_shipping_address_2()

Get shipping address line 2.

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

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

Return values
string

get_shipping_address_map_url()

Get a formatted shipping address for the order.

public get_shipping_address_map_url() : string
Return values
string

get_shipping_city()

Get shipping city.

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

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

Return values
string

get_shipping_company()

Get shipping company.

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

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

Return values
string

get_shipping_country()

Get shipping country.

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

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

Return values
string

get_shipping_first_name()

Get shipping first name.

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

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

Return values
string

get_shipping_last_name()

Get shipping_last_name.

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

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

Return values
string

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_postcode()

Get shipping postcode.

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

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

Return values
string

get_shipping_state()

Get shipping state.

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

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

Return values
string

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_tax_refunded_for_item()

Get the refunded tax amount for a line item.

public get_tax_refunded_for_item(int $item_id, int $tax_id[, string $item_type = 'line_item' ]) : float
Parameters
$item_id : int

ID of the item we're checking.

$tax_id : int

ID of the tax we're checking.

$item_type : string = 'line_item'

Type of the item we're checking, if not a line_item.

Return values
float

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_qty_refunded()

Get the total number of items refunded.

public get_total_qty_refunded([string $item_type = 'line_item' ]) : int
Parameters
$item_type : string = 'line_item'

Type of the item we're checking, if not a line_item.

Tags
since
2.4.0
Return values
int

get_total_refunded()

Get amount already refunded.

public get_total_refunded() : string
Tags
since
2.2
Return values
string

get_total_refunded_for_item()

Get the refunded amount for a line item.

public get_total_refunded_for_item(int $item_id[, string $item_type = 'line_item' ]) : int
Parameters
$item_id : int

ID of the item we're checking.

$item_type : string = 'line_item'

Type of the item we're checking, if not a line_item.

Return values
int

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_shipping_refunded()

Get the total shipping refunded.

public get_total_shipping_refunded() : float
Tags
since
2.4
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_total_tax_refunded()

Get the total tax refunded.

public get_total_tax_refunded() : float
Tags
since
2.3
Return values
float

get_total_tax_refunded_by_rate_id()

Get total tax refunded by rate ID.

public get_total_tax_refunded_by_rate_id(int $rate_id) : float
Parameters
$rate_id : int

Rate ID.

Return values
float

get_transaction_id()

Get transaction d.

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

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

Return values
string

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()

Get the user associated with the order. False for guests.

public get_user() : WP_User|false
Return values
WP_User|false

get_user_id()

Alias for get_customer_id().

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

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

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

get_view_order_url()

Generates a URL to view an order from the my account page.

public get_view_order_url() : string
Return values
string

has_billing_address()

Returns true if the order has a billing address.

public has_billing_address() : bool
Tags
since
3.0.4
Return values
bool

has_cart_hash()

See if order matches cart_hash.

public has_cart_hash([string $cart_hash = '' ]) : bool
Parameters
$cart_hash : string = ''

Cart hash.

Return values
bool

has_downloadable_item()

Returns true if the order contains a downloadable product.

public has_downloadable_item() : bool
Return values
bool

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_address()

Returns true if the order has a shipping address.

public has_shipping_address() : bool
Tags
since
3.0.4
Return values
bool

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

is_created_via()

Check if order has been created via admin, checkout, or in another way.

public is_created_via(string $modus) : bool
Parameters
$modus : string

Way of creating the order to test for.

Tags
since
4.0.0
Return values
bool

is_download_permitted()

Checks if product download is permitted.

public is_download_permitted() : bool
Return values
bool

is_editable()

Checks if an order can be edited, specifically for use on the Edit Order screen.

public is_editable() : bool
Return values
bool

is_paid()

Returns if an order has been paid for based on the order status.

public is_paid() : bool
Tags
since
2.5.0
Return values
bool

key_is_valid()

Check if an order key is valid.

public key_is_valid(string $key) : bool
Parameters
$key : string

Order key.

Return values
bool

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

maybe_set_date_paid()

Maybe set date paid.

public maybe_set_date_paid() : mixed

Sets the date paid variable when transitioning to the payment complete order status. This is either processing or completed. This is not filtered to avoid infinite loops e.g. if loading an order via the filter.

Date paid is set once in this manner - only when it is not already set. This ensures the data exists even if a gateway does not use the payment_complete method.

Tags
since
3.0.0
Return values
mixed

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

needs_payment()

Checks if an order needs payment, based on status and order total.

public needs_payment() : bool
Return values
bool

needs_processing()

See if the order needs processing before it can be completed.

public needs_processing() : bool

Orders which only contain virtual, downloadable items do not need admin intervention.

Uses a transient so these calls are not repeated multiple times, and because once the order is processed this code/transient does not need to persist.

Tags
since
3.0.0
Return values
bool

needs_shipping_address()

Checks if an order needs display the shipping address, based on shipping method.

public needs_shipping_address() : bool
Return values
bool

payment_complete()

When a payment is complete this function is called.

public payment_complete([string $transaction_id = '' ]) : bool

Most of the time this should mark an order as 'processing' so that admin can process/post the items. If the cart contains only downloadable items then the order is 'completed' since the admin needs to take no action. Stock levels are reduced at this point. Sales are also recorded for products. Finally, record the date of payment.

Parameters
$transaction_id : string = ''

Optional transaction id to store in post meta.

Return values
boolsuccess

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

save()

Save data to the database.

public save() : int
Tags
since
3.0.0
Return values
intorder ID

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_billing_address_1()

Set billing address line 1.

public set_billing_address_1(string $value) : mixed
Parameters
$value : string

Billing address line 1.

Tags
throws
WC_Data_Exception

Throws exception when invalid data is found.

Return values
mixed

set_billing_address_2()

Set billing address line 2.

public set_billing_address_2(string $value) : mixed
Parameters
$value : string

Billing address line 2.

Tags
throws
WC_Data_Exception

Throws exception when invalid data is found.

Return values
mixed

set_billing_city()

Set billing city.

public set_billing_city(string $value) : mixed
Parameters
$value : string

Billing city.

Tags
throws
WC_Data_Exception

Throws exception when invalid data is found.

Return values
mixed

set_billing_company()

Set billing company.

public set_billing_company(string $value) : mixed
Parameters
$value : string

Billing company.

Tags
throws
WC_Data_Exception

Throws exception when invalid data is found.

Return values
mixed

set_billing_country()

Set billing country.

public set_billing_country(string $value) : mixed
Parameters
$value : string

Billing country.

Tags
throws
WC_Data_Exception

Throws exception when invalid data is found.

Return values
mixed

set_billing_email()

Set billing email.

public set_billing_email(string $value) : mixed
Parameters
$value : string

Billing email.

Tags
throws
WC_Data_Exception

Throws exception when invalid data is found.

Return values
mixed

set_billing_first_name()

Set billing first name.

public set_billing_first_name(string $value) : mixed
Parameters
$value : string

Billing first name.

Tags
throws
WC_Data_Exception

Throws exception when invalid data is found.

Return values
mixed

set_billing_last_name()

Set billing last name.

public set_billing_last_name(string $value) : mixed
Parameters
$value : string

Billing last name.

Tags
throws
WC_Data_Exception

Throws exception when invalid data is found.

Return values
mixed

set_billing_phone()

Set billing phone.

public set_billing_phone(string $value) : mixed
Parameters
$value : string

Billing phone.

Tags
throws
WC_Data_Exception

Throws exception when invalid data is found.

Return values
mixed

set_billing_postcode()

Set billing postcode.

public set_billing_postcode(string $value) : mixed
Parameters
$value : string

Billing postcode.

Tags
throws
WC_Data_Exception

Throws exception when invalid data is found.

Return values
mixed

set_billing_state()

Set billing state.

public set_billing_state(string $value) : mixed
Parameters
$value : string

Billing state.

Tags
throws
WC_Data_Exception

Throws exception when invalid data is found.

Return values
mixed

set_cart_hash()

Set cart hash.

public set_cart_hash(string $value) : mixed
Parameters
$value : string

Cart hash.

Tags
throws
WC_Data_Exception

Throws exception when invalid data is found.

Return values
mixed

set_created_via()

Set created via.

public set_created_via(string $value) : mixed
Parameters
$value : string

Created via.

Tags
throws
WC_Data_Exception

Throws exception when invalid data is found.

Return values
mixed

set_customer_id()

Set customer id.

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

Customer ID.

Tags
throws
WC_Data_Exception

Throws exception when invalid data is found.

Return values
mixed

set_customer_ip_address()

Set customer ip address.

public set_customer_ip_address(string $value) : mixed
Parameters
$value : string

Customer ip address.

Tags
throws
WC_Data_Exception

Throws exception when invalid data is found.

Return values
mixed

set_customer_note()

Set customer note.

public set_customer_note(string $value) : mixed
Parameters
$value : string

Customer note.

Tags
throws
WC_Data_Exception

Throws exception when invalid data is found.

Return values
mixed

set_customer_user_agent()

Set customer user agent.

public set_customer_user_agent(string $value) : mixed
Parameters
$value : string

Customer user agent.

Tags
throws
WC_Data_Exception

Throws exception when invalid data is found.

Return values
mixed

set_date_completed()

Set date completed.

public set_date_completed([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 their is no date.

Tags
throws
WC_Data_Exception

Throws exception when invalid data is found.

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_date_paid()

Set date paid.

public set_date_paid([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 their is no date.

Tags
throws
WC_Data_Exception

Throws exception when invalid data is found.

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_order_key()

Set order key.

public set_order_key(string $value) : mixed
Parameters
$value : string

Max length 22 chars.

Tags
throws
WC_Data_Exception

Throws exception when invalid data is found.

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_payment_method()

Set the payment method.

public set_payment_method([string $payment_method = '' ]) : mixed
Parameters
$payment_method : string = ''

Supports WC_Payment_Gateway for bw compatibility with < 3.0.

Tags
throws
WC_Data_Exception

Throws exception when invalid data is found.

Return values
mixed

set_payment_method_title()

Set payment method title.

public set_payment_method_title(string $value) : mixed
Parameters
$value : string

Payment method title.

Tags
throws
WC_Data_Exception

Throws exception when invalid data is found.

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_shipping_address_1()

Set shipping address line 1.

public set_shipping_address_1(string $value) : mixed
Parameters
$value : string

Shipping address line 1.

Tags
throws
WC_Data_Exception

Throws exception when invalid data is found.

Return values
mixed

set_shipping_address_2()

Set shipping address line 2.

public set_shipping_address_2(string $value) : mixed
Parameters
$value : string

Shipping address line 2.

Tags
throws
WC_Data_Exception

Throws exception when invalid data is found.

Return values
mixed

set_shipping_city()

Set shipping city.

public set_shipping_city(string $value) : mixed
Parameters
$value : string

Shipping city.

Tags
throws
WC_Data_Exception

Throws exception when invalid data is found.

Return values
mixed

set_shipping_company()

Set shipping company.

public set_shipping_company(string $value) : mixed
Parameters
$value : string

Shipping company.

Tags
throws
WC_Data_Exception

Throws exception when invalid data is found.

Return values
mixed

set_shipping_country()

Set shipping country.

public set_shipping_country(string $value) : mixed
Parameters
$value : string

Shipping country.

Tags
throws
WC_Data_Exception

Throws exception when invalid data is found.

Return values
mixed

set_shipping_first_name()

Set shipping first name.

public set_shipping_first_name(string $value) : mixed
Parameters
$value : string

Shipping first name.

Tags
throws
WC_Data_Exception

Throws exception when invalid data is found.

Return values
mixed

set_shipping_last_name()

Set shipping last name.

public set_shipping_last_name(string $value) : mixed
Parameters
$value : string

Shipping last name.

Tags
throws
WC_Data_Exception

Throws exception when invalid data is found.

Return values
mixed

set_shipping_postcode()

Set shipping postcode.

public set_shipping_postcode(string $value) : mixed
Parameters
$value : string

Shipping postcode.

Tags
throws
WC_Data_Exception

Throws exception when invalid data is found.

Return values
mixed

set_shipping_state()

Set shipping state.

public set_shipping_state(string $value) : mixed
Parameters
$value : string

Shipping state.

Tags
throws
WC_Data_Exception

Throws exception when invalid data is found.

Return values
mixed

set_status()

Set order status.

public set_status(string $new_status[, string $note = '' ][, bool $manual_update = false ]) : array
Parameters
$new_status : string

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

$note : string = ''

Optional note to add.

$manual_update : bool = false

Is this a manual order status change?.

Tags
since
3.0.0
Return values
array

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

set_transaction_id()

Set transaction id.

public set_transaction_id(string $value) : mixed
Parameters
$value : string

Transaction id.

Tags
throws
WC_Data_Exception

Throws exception when invalid data is found.

Return values
mixed

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_status()

Updates status of order immediately.

public update_status(string $new_status[, string $note = '' ][, bool $manual = false ]) : bool
Parameters
$new_status : string

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

$note : string = ''

Optional note to add.

$manual : bool = false

Is this a manual order status change?.

Tags
uses
WC_Order::set_status()
Return values
bool

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_payment_method_row()

Add total row for the payment method.

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

Total rows.

$tax_display : string

Tax to display.

Return values
mixed

add_order_item_totals_refund_rows()

Add total row for refunds.

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

Total rows.

$tax_display : string

Tax to display.

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_address_prop()

Gets a prop for a getter method.

protected get_address_prop(string $prop[, string $address = 'billing' ][, string $context = 'view' ]) : mixed
Parameters
$prop : string

Name of prop to get.

$address : string = 'billing'

billing or shipping.

$context : string = 'view'

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

Tags
since
3.0.0
Return values
mixed

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()

Line items to calculate. Define in child class.

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

Field name to calculate upon.

Tags
since
3.9.0
Return values
arrayhaving `total`|`subtotal` property.

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

maybe_set_date_completed()

Maybe set date completed.

protected maybe_set_date_completed() : mixed

Sets the date completed variable when transitioning to completed status.

Tags
since
3.0.0
Return values
mixed

maybe_set_user_billing_email()

Maybe set empty billing email to that of the user who owns the order.

protected maybe_set_user_billing_email() : mixed
Return values
mixed

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_address_prop()

Sets a prop for a setter method.

protected set_address_prop(string $prop[, string $address = 'billing' ], mixed $value) : mixed
Parameters
$prop : string

Name of prop to set.

$address : string = 'billing'

Name of address to set. billing or shipping.

$value : mixed

Value of the prop.

Tags
since
3.0.0
Return values
mixed

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

status_transition()

Handle the status transition.

protected status_transition() : mixed
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

add_status_transition_note()

Add an order note for status transition

private add_status_transition_note(string $note, bool $transition) : int
Parameters
$note : string

Note to be added giving status transition from and to details.

$transition : bool

Details of the status transition.

Tags
since
3.9.0
uses
WC_Order::add_order_note()
Return values
intComment ID.

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.