175 lines
4.8 KiB
PHP
175 lines
4.8 KiB
PHP
<?php
|
|
/**
|
|
* Order Status Functions.
|
|
*
|
|
* @package EDD
|
|
* @subpackage Orders
|
|
* @copyright Copyright (c) 2022, Easy Digital Downloads
|
|
* @license https://opensource.org/licenses/gpl-2.0.php GNU Public License
|
|
* @since 3.0
|
|
*/
|
|
|
|
/**
|
|
* Get the order status array keys that can be used to run reporting related to gross reporting.
|
|
*
|
|
* @since 3.0
|
|
*
|
|
* @return array An array of order status array keys that can be related to gross reporting.
|
|
*/
|
|
function edd_get_gross_order_statuses() {
|
|
$statuses = array(
|
|
'complete',
|
|
'refunded',
|
|
'partially_refunded',
|
|
'revoked',
|
|
);
|
|
|
|
/**
|
|
* Statuses that affect gross order statistics.
|
|
*
|
|
* This filter allows extensions and developers to alter the statuses that can affect the reporting of gross
|
|
* sales statistics.
|
|
*
|
|
* @since 3.0
|
|
*
|
|
* @param array $statuses {
|
|
* An array of order status array keys.
|
|
*
|
|
*/
|
|
return apply_filters( 'edd_gross_order_statuses', $statuses );
|
|
}
|
|
|
|
/**
|
|
* Get the order status array keys that can be used to run reporting related to net reporting.
|
|
*
|
|
* @since 3.0
|
|
*
|
|
* @return array An array of order status array keys that can be related to net reporting.
|
|
*/
|
|
function edd_get_net_order_statuses() {
|
|
$statuses = array(
|
|
'complete',
|
|
'partially_refunded',
|
|
'revoked',
|
|
);
|
|
|
|
/**
|
|
* Statuses that affect net order statistics.
|
|
*
|
|
* This filter allows extensions and developers to alter the statuses that can affect the reporting of net
|
|
* sales statistics.
|
|
*
|
|
* @since 3.0
|
|
*
|
|
* @param array $statuses {
|
|
* An array of order status array keys.
|
|
*
|
|
*/
|
|
return apply_filters( 'edd_net_order_statuses', $statuses );
|
|
}
|
|
|
|
/**
|
|
* Get the order status array keys which are considered recoverable.
|
|
*
|
|
* @since 3.0
|
|
* @param bool $include_labels Whether to return a multidimensional array including status labels.
|
|
* @return array An array of order status keys which are considered recoverable.
|
|
*/
|
|
function edd_recoverable_order_statuses( $include_labels = false ) {
|
|
$statuses = array( 'pending', 'abandoned', 'failed' );
|
|
|
|
/**
|
|
* Order statuses which are considered recoverable.
|
|
*
|
|
* @param $statuses {
|
|
* An array of order status array keys.
|
|
* }
|
|
*/
|
|
$statuses = apply_filters( 'edd_recoverable_payment_statuses', $statuses );
|
|
|
|
return $include_labels ? array_intersect_key( edd_get_payment_statuses(), array_flip( $statuses ) ) : $statuses;
|
|
}
|
|
|
|
/**
|
|
* Get the order status keys which are considered complete.
|
|
*
|
|
* @since 3.0
|
|
* @param bool $include_labels Whether to return a multidimensional array including status labels.
|
|
* @return array An array of order status keys which are considered completed.
|
|
*/
|
|
function edd_get_complete_order_statuses( $include_labels = false ) {
|
|
$statuses = array( 'publish', 'complete', 'completed', 'partially_refunded', 'revoked', 'refunded' );
|
|
|
|
/**
|
|
* Order statuses which are considered completed or at their final state.
|
|
*
|
|
* @param $statuses {
|
|
* An array of order status array keys.
|
|
* }
|
|
*/
|
|
$statuses = apply_filters( 'edd_complete_order_statuses', $statuses );
|
|
|
|
return $include_labels ? array_intersect_key( edd_get_payment_statuses(), array_flip( $statuses ) ) : $statuses;
|
|
}
|
|
|
|
/**
|
|
* Get the order status array keys which are considered incomplete.
|
|
*
|
|
* @since 3.0
|
|
* @param bool $include_labels Whether to return a multidimensional array including status labels.
|
|
* @return array An array of order status keys which are considered incomplete.
|
|
*/
|
|
function edd_get_incomplete_order_statuses( $include_labels = false ) {
|
|
$statuses = array( 'pending', 'abandoned', 'processing', 'failed', 'cancelled' );
|
|
|
|
/**
|
|
* Filters the payment key
|
|
* Order statuses which are considered incomplete.
|
|
*
|
|
* @param $statuses {
|
|
* An array of order status array keys.
|
|
* }
|
|
*/
|
|
$statuses = apply_filters( 'edd_incomplete_order_statuses', $statuses );
|
|
|
|
return $include_labels ? array_intersect_key( edd_get_payment_statuses(), array_flip( $statuses ) ) : $statuses;
|
|
}
|
|
|
|
/**
|
|
* Returns an array of order statuses that support refunds.
|
|
*
|
|
* @since 3.0
|
|
* @return array
|
|
*/
|
|
function edd_get_refundable_order_statuses() {
|
|
$refundable_order_statuses = array( 'complete', 'publish', 'partially_refunded' );
|
|
|
|
/**
|
|
* Filters the order statuses that are allowed to be refunded.
|
|
*
|
|
* @param array $refundable_order_statuses
|
|
*
|
|
* @since 3.0
|
|
*/
|
|
return (array) apply_filters( 'edd_refundable_order_statuses', $refundable_order_statuses );
|
|
}
|
|
|
|
/**
|
|
* Returns an array of order item statuses that allow assets to be delivvered.
|
|
*
|
|
* @since 3.0
|
|
* @return array
|
|
*/
|
|
function edd_get_deliverable_order_item_statuses() {
|
|
$deliverable_order_item_statuses = array( 'complete', 'partially_refunded' );
|
|
|
|
/**
|
|
* Filters the order item statuses that aallow assets to be delivered.
|
|
*
|
|
* @param array $refundable_order_statuses
|
|
*
|
|
* @since 3.0
|
|
*/
|
|
return (array) apply_filters( 'edd_deliverable_order_item_statuses', $deliverable_order_item_statuses );
|
|
}
|