Type
Represents a discount type.
Tags
Table of Contents
- ORDER = 0
- $discount : Discount
- The discount object.
- $processing_order : bool
- Whether the discount type is processing a WooCommerce order.
- $total_discounted_products : int
- The total number of discounted products in the cart|order.
- $total_order_discount : float
- The total discount that needs to be applied to the order.
- decrease_total_discounted_products() : self
- Decrease the total number of discounted products in the cart|order.
- decrease_total_order_discount() : self
- Decrease the total discount that needs to be applied to the order.
- generate_virtual_coupon_for_order() : void
- Generate a virtual coupon for the order.
- get_cart_quantity_of_relevant_products() : int
- Return the total quantity of relevant products in the cart.
- get_default_settings_values() : array<string|int, mixed>
- Get the default settings values for this discount type.
- get_discount() : Discount
- Get the discount object.
- get_name() : string
- Get the name for this discount type.
- get_order_quantity_of_relevant_products() : int
- Return the total quantity of relevant products in the order.
- get_settings() : array<string|int, mixed>
- Get the settings for this discount type.
- get_slug() : string
- Get the slug for this discount type.
- get_tooltip() : string
- Get the tooltip for this discount type.
- get_total_discounted_products() : int
- Return the total number of discounted products in the cart|order.
- get_total_order_discount() : float
- Return the total discount that needs to be applied to the order.
- increase_total_discounted_products() : self
- Increase the total number of discounted products in the cart|order.
- increase_total_order_discount() : self
- Increase the total discount that needs to be applied to the order.
- is_processing_order() : bool
- Return whether the discount type is being applied to a WooCommerce order.
- make() : static
- Make a new discount type.
- reset_total_discounted_products() : self
- Reset the total number of discounted products in the cart|order.
- reset_total_order_discount() : self
- Reset the total discount that needs to be applied to the order.
- set_discount() : self
- Set the discount object.
- set_proccesing_order() : self
- Flag whether the discount type is being applied to a WooCommerce order.
- set_total_discounted_products() : self
- Set the total number of discounted products in the cart|order.
- set_total_order_discount() : self
- Set the total discount that needs to be applied to the order.
Constants
ORDER
public
mixed
ORDER
= 0
Properties
$discount
The discount object.
protected
Discount
$discount
$processing_order
Whether the discount type is processing a WooCommerce order.
protected
bool
$processing_order
= false
This is used so that we prevent applying discounts at a order line level due to the multitude of issues in how taxes are calculated in WooCommerce.
$total_discounted_products
The total number of discounted products in the cart|order.
protected
int
$total_discounted_products
= 0
This is used to track the number of discounted products in the cart|order but not all types will use this.
Not all discount types need to track the number of discounted products.
$total_order_discount
The total discount that needs to be applied to the order.
protected
float
$total_order_discount
= 0
Methods
decrease_total_discounted_products()
Decrease the total number of discounted products in the cart|order.
public
decrease_total_discounted_products(int $amount) : self
Parameters
- $amount : int
-
The amount to decrease the total number of discounted products by.
Return values
self —The discount type.
decrease_total_order_discount()
Decrease the total discount that needs to be applied to the order.
public
decrease_total_order_discount(float $amount) : self
Parameters
- $amount : float
-
The amount to decrease the total discount by.
Return values
self —The discount type.
generate_virtual_coupon_for_order()
Generate a virtual coupon for the order.
public
generate_virtual_coupon_for_order(WC_Order $order) : void
This is used to apply the discount to the order and is not a real coupon.
This is mainly used during the creating of manual orders.
Parameters
- $order : WC_Order
-
The order object.
Return values
void —get_cart_quantity_of_relevant_products()
Return the total quantity of relevant products in the cart.
public
get_cart_quantity_of_relevant_products(WC_Cart $cart) : int
Parameters
- $cart : WC_Cart
-
The cart object.
Return values
int —get_default_settings_values()
Get the default settings values for this discount type.
public
abstract static get_default_settings_values() : array<string|int, mixed>
Return values
array<string|int, mixed> —get_discount()
Get the discount object.
public
get_discount() : Discount
Return values
Discount —get_name()
Get the name for this discount type.
public
abstract static get_name() : string
Return values
string —get_order_quantity_of_relevant_products()
Return the total quantity of relevant products in the order.
public
get_order_quantity_of_relevant_products(WC_Order $order) : int
Parameters
- $order : WC_Order
-
The order object.
Return values
int —get_settings()
Get the settings for this discount type.
public
abstract static get_settings() : array<string|int, mixed>
Return values
array<string|int, mixed> —get_slug()
Get the slug for this discount type.
public
abstract static get_slug() : string
Return values
string —get_tooltip()
Get the tooltip for this discount type.
public
abstract static get_tooltip() : string
Return values
string —get_total_discounted_products()
Return the total number of discounted products in the cart|order.
public
get_total_discounted_products() : int
Return values
int —get_total_order_discount()
Return the total discount that needs to be applied to the order.
public
get_total_order_discount() : float
Return values
float —increase_total_discounted_products()
Increase the total number of discounted products in the cart|order.
public
increase_total_discounted_products(int $amount) : self
Parameters
- $amount : int
-
The amount to increase the total number of discounted products by.
Return values
self —The discount type.
increase_total_order_discount()
Increase the total discount that needs to be applied to the order.
public
increase_total_order_discount(float $amount) : self
Parameters
- $amount : float
-
The amount to increase the total discount by.
Return values
self —The discount type.
is_processing_order()
Return whether the discount type is being applied to a WooCommerce order.
public
is_processing_order() : bool
Return values
bool —make()
Make a new discount type.
public
static make(Discount $discount) : static
Parameters
- $discount : Discount
-
The discount object.
Return values
static —The new discount type.
reset_total_discounted_products()
Reset the total number of discounted products in the cart|order.
public
reset_total_discounted_products() : self
Return values
self —The discount type.
reset_total_order_discount()
Reset the total discount that needs to be applied to the order.
public
reset_total_order_discount() : self
Return values
self —The discount type.
set_discount()
Set the discount object.
public
set_discount(Discount $discount) : self
Parameters
- $discount : Discount
-
The discount object.
Return values
self —set_proccesing_order()
Flag whether the discount type is being applied to a WooCommerce order.
public
set_proccesing_order(bool $processing_order) : self
Parameters
- $processing_order : bool
-
Whether the discount type is processing a WooCommerce order.
Return values
self —The discount type.
set_total_discounted_products()
Set the total number of discounted products in the cart|order.
public
set_total_discounted_products(int $total_discounted_products) : self
Parameters
- $total_discounted_products : int
-
The total number of discounted products in the cart|order.
Return values
self —The discount type.
set_total_order_discount()
Set the total discount that needs to be applied to the order.
public
set_total_order_discount(float $total_order_discount) : self
Parameters
- $total_order_discount : float
-
The total discount that needs to be applied to the order.
Return values
self —The discount type.