function commerce_pricing_attributes_update_7100 in Commerce Pricing Attributes 7
Set default commerce_pricing_attributes settings for all commerce option (list) fields.
File
- ./
commerce_pricing_attributes.install, line 38
Code
function commerce_pricing_attributes_update_7100(&$sandbox) {
// Update all fields that have been created before commerce_pricing_attributes
// being installed. Default values must be set.
$bundles = field_info_instances('commerce_option');
foreach ($bundles as $bundle => $fields) {
foreach ($fields as $instance) {
$field = field_info_field($instance['field_name']);
if ($field['module'] == 'list') {
if (!isset($instance['settings']['commerce_pricing_attributes'])) {
$options = list_allowed_values($field, $instance);
$instance['settings']['commerce_pricing_attributes'] = array();
$i = 0;
$instance['settings']['commerce_pricing_attributes']['_none']['weight'] = -100;
foreach ($options as $option_value => $option_label) {
$instance['settings']['commerce_pricing_attributes'][$option_value] = array(
'enabled' => TRUE,
'price_op' => 'plus',
'price' => 0,
'weight' => $i - 99,
);
$i++;
}
field_update_instance($instance);
}
}
}
}
}