diff --git a/commerce_coupon.module b/commerce_coupon.module index 5adb5f8..09eadda 100644 --- a/commerce_coupon.module +++ b/commerce_coupon.module @@ -835,8 +835,20 @@ function commerce_coupon_code_is_active($code) { */ function commerce_coupon_commerce_price_component_type_info() { $components = array(); + $active_types = array(); + $filter = array('is_active' => TRUE); - $coupons = commerce_coupon_load_multiple(array(), array('is_active' => TRUE)); + foreach (variable_get('commerce_coupon_disable_price_components_by_type', null) as $key => $value) { + if ($value !== 0) { + $active_types[] = $key; + } + } + + if (count($active_types) > 0) { + $filter['type'] = 'NOT IN (\'' . implode($active_types, '\',\'') . '\')'; + } + + $coupons = commerce_coupon_load_multiple(array(), $filter); // Add a price component type per each coupon. foreach ($coupons as $coupon) { diff --git a/includes/commerce_coupon_ui.settings.inc b/includes/commerce_coupon_ui.settings.inc index 3c5ddb3..8dac27c 100644 --- a/includes/commerce_coupon_ui.settings.inc +++ b/includes/commerce_coupon_ui.settings.inc @@ -16,6 +16,21 @@ function commerce_coupon_ui_settings_form($form, &$form_state) { '#description' => t('Set the coupon code length for auto generated codes.'), ); + $coupon_types = commerce_coupon_get_types(); + $options = array(); + foreach ($coupon_types as $coupon_type) { + $options[$coupon_type->type] = $coupon_type->label; + } + $form['commerce_coupon_disable_price_components_by_type'] = array( + '#type' => 'checkboxes', + '#title' => t('Disable Price Components By Type'), + '#description' => t('Set the types that will have price components disabled.'), + //'#header' => $header, + '#options' => $options, + '#empty' => t('No content available.'), + '#default_value' => variable_get('commerce_coupon_disable_price_components_by_type', null), + ); + $form['commerce_coupon_coupon_upgrade_types'] = array( '#type' => 'fieldset', '#title' => t('Upgrade basic coupons'),