function commerce_discount_extra_update_7001 in Commerce Discount Extra 7
Change per-qty discount product fields to multivalue.
File
- ./
commerce_discount_extra.install, line 384 - Installs necessary fields for extra discounts.
Code
function commerce_discount_extra_update_7001() {
field_info_cache_clear();
$fields = field_info_fields();
$instances = field_info_instances();
foreach (array(
'commerce_discount_product',
'commerce_trigger_product',
) as $field_name) {
foreach (array(
'per_quantity_fixed',
'per_quantity_percentage',
) as $offer_type) {
if (!empty($instances['commerce_discount_offer'][$offer_type][$field_name])) {
// Delete instances.
field_delete_instance($instances['commerce_discount_offer'][$offer_type][$field_name]);
}
}
// Delete fields.
if (isset($fields[$field_name])) {
field_delete_field($field_name);
}
}
// Create multivalue discount products field.
$field = array(
'entity_types' => array(
'commerce_discount_offer',
),
'field_name' => 'commerce_discount_products',
'type' => 'commerce_product_reference',
'locked' => TRUE,
'cardinality' => FIELD_CARDINALITY_UNLIMITED,
);
field_create_field($field);
// Create multivalue trigger products field.
$field = array(
'entity_types' => array(
'commerce_discount_offer',
),
'field_name' => 'commerce_trigger_products',
'type' => 'commerce_product_reference',
'locked' => TRUE,
'cardinality' => FIELD_CARDINALITY_UNLIMITED,
);
field_create_field($field);
// Create instances.
foreach (array(
'per_quantity_fixed',
'per_quantity_percentage',
) as $offer_type) {
// Trigger products.
$instance = array(
'field_name' => 'commerce_trigger_products',
'entity_type' => 'commerce_discount_offer',
'bundle' => $offer_type,
'label' => t('product(s)'),
'required' => TRUE,
'widget' => array(
'type' => 'commerce_product_reference_autocomplete',
'weight' => 1,
),
);
field_create_instance($instance);
// Offer products.
$instance = array(
'field_name' => 'commerce_discount_products',
'entity_type' => 'commerce_discount_offer',
'bundle' => $offer_type,
'label' => t('product(s)'),
'required' => TRUE,
'widget' => array(
'type' => 'commerce_product_reference_autocomplete',
'weight' => 3,
),
);
field_create_instance($instance);
}
}