View source
<?php
function commerce_pricing_attributes_field_schema($field) {
return array(
'columns' => array(
'set_id' => array(
'type' => 'varchar',
'length' => 255,
'not null' => FALSE,
),
'set_details' => array(
'type' => 'blob',
'not null' => FALSE,
'size' => 'big',
'serialize' => TRUE,
'description' => 'A serialized array of additional data.',
),
),
'indexes' => array(
'set_id' => array(
'set_id',
),
),
'foreign keys' => array(
'set_id' => array(
'table' => 'commerce_option_set',
'columns' => array(
'set_id' => 'set_id',
),
),
),
);
}
function commerce_pricing_attributes_update_7100(&$sandbox) {
$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);
}
}
}
}
}
function commerce_pricing_attributes_update_7101(&$sandbox) {
$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') {
$options = list_allowed_values($field, $instance);
foreach ($options as $option_value => $option_label) {
$instance['settings']['commerce_pricing_attributes'][$option_value]['calculate'] = 'per_item';
}
field_update_instance($instance);
}
}
}
}