function commerce_cart_expiration_get_expired_carts in Commerce Cart Expiration 7
Retrieves expired cart orders.
Parameters
int $interval: Time span (in seconds) until shopping carts are considered expired.
int $limit: Number of expired carts to get.
string $ignore_status: (optional) Orders in this status will never be considered expired. Defaults to NULL.
Return value
array An array of commerce order IDs. When no results are found, an empty array is returned.
2 calls to commerce_cart_expiration_get_expired_carts()
- commerce_cart_expiration_delete_orders in ./
commerce_cart_expiration.rules.inc - Rules action: deletes expired cart orders based on the provided interval and limit.
- commerce_cart_expiration_reset_orders in ./
commerce_cart_expiration.rules.inc - Rules action: resets status of expired cart orders based on the provided interval and limit.
File
- ./
commerce_cart_expiration.module, line 96 - Provides a time-based cart expiration feature.
Code
function commerce_cart_expiration_get_expired_carts($interval, $limit = 0, $ignore_status = NULL) {
// If we're resetting order statuses (instead of deleting orders), ignore
// orders already in the desired status, to make sure we process as many
// orders that need resetting as possible.
$statuses = array_keys(commerce_order_statuses(array(
'cart' => TRUE,
)));
if ($ignore_status && ($key = array_search($ignore_status, $statuses)) !== FALSE) {
unset($statuses[$key]);
}
$query = new EntityFieldQuery();
$query
->entityCondition('entity_type', 'commerce_order', '=')
->propertyCondition('status', $statuses, 'IN')
->propertyCondition('changed', REQUEST_TIME - $interval, '<');
$query
->addTag('skip_payment_transaction');
if ($limit) {
$query
->range(0, $limit);
}
$result = $query
->execute();
return !empty($result) ? array_keys(reset($result)) : array();
}