diff --git a/commerce_coupon.module b/commerce_coupon.module index 9f9050d1ee25829d79d08f316a2e9970aae10d56..5adb5f8db1f915c20f144ca3ba39f003862bfd81 100644 --- a/commerce_coupon.module +++ b/commerce_coupon.module @@ -1071,3 +1071,36 @@ function commerce_coupon_commerce_cart_order_refresh($order_wrapper) { } } } + +/** + * Returns the number of uses for this coupon. + * + * @param $coupon_id + * Coupon id to check. + * + * @return integer + * Returns number of uses of the coupon in all orders. + */ +function commerce_coupon_get_coupons_in_order($order_id) { + $order_wrapper = entity_metadata_wrapper('commerce_order', $order_id); + $coupons = array(); + foreach ($order_wrapper->commerce_coupon_order_reference as $coupon_wrapper) { + if ($coupon_wrapper->value()->is_active == 1) { + $coupons[] = $coupon_wrapper->value(); + } + } + return $coupons; +} + +/** + * Returns a list of coupons that have been attached to the order. + * + * @param $commerce_order + * The order which is to be checked. + */ +function commerce_coupon_action_get_coupons_for_order($commerce_order) { + if (!$commerce_order) { + return array(); + } + return array('order_coupons' => commerce_coupon_get_coupons_in_order($commerce_order->order_id)); +} diff --git a/commerce_coupon.rules.inc b/commerce_coupon.rules.inc index 7d7cd65e1325de4fae822a8d452ae2657e477b13..579a54adece1150095910c70a0120bb0295cc3dd 100644 --- a/commerce_coupon.rules.inc +++ b/commerce_coupon.rules.inc @@ -117,6 +117,24 @@ function commerce_coupon_rules_action_info() { ), ); + $actions['commerce_coupon_action_get_coupons_for_order'] = array( + 'label' => t('Get coupons for order'), + 'parameter' => array( + 'commerce_order' => array( + 'type' => 'commerce_order', + 'label' => t('Commerce order'), + ), + ), + 'provides' => array( + 'order_coupons' => array( + 'type' => 'list', + 'label' => t('Coupons attached to this order'), + ), + ), + 'group' => t('Commerce Coupon'), + 'base' => 'commerce_coupon_action_get_coupons_for_order', + ); + $actions['commerce_coupon_action_get_coupon_uses'] = array( 'label' => t('Get the redemption number of a coupon'), 'parameter' => array(