function commerce_recurring_configure_product_type in Commerce Recurring Framework 7.2
Ensures that the price and interval fields are created.
1 call to commerce_recurring_configure_product_type()
- commerce_recurring_enable in ./
commerce_recurring.install - Implements hook_enable().
File
- ./
commerce_recurring.module, line 71 - Commerce recurring module file.
Code
function commerce_recurring_configure_product_type() {
// Create the price instances for the recurring product type.
commerce_recurring_price_create_instance('commerce_price', 'commerce_product', 'recurring', t('Price'), 0, 'calculated_sell_price');
// Set the formatter display as hidden by default for the additional price
// fields.
commerce_recurring_price_create_instance('commerce_recurring_ini_price', 'commerce_product', 'recurring', t('Initial price'), 0, 'calculated_sell_price', array(
'type' => 'hidden',
));
commerce_recurring_price_create_instance('commerce_recurring_rec_price', 'commerce_product', 'recurring', t('Recurring price'), 0, 'calculated_sell_price', array(
'type' => 'hidden',
));
// Create interval fields.
$fields = array(
'commerce_recurring_ini_period' => array(
'field_name' => 'commerce_recurring_ini_period',
'cardinality' => 1,
'type' => 'interval',
),
'commerce_recurring_rec_period' => array(
'field_name' => 'commerce_recurring_rec_period',
'cardinality' => 1,
'type' => 'interval',
),
'commerce_recurring_end_period' => array(
'field_name' => 'commerce_recurring_end_period',
'cardinality' => 1,
'type' => 'interval',
),
);
// Set instance settings for the interval fields.
$basic_interval_instance = array(
'entity_type' => 'commerce_product',
'bundle' => 'recurring',
'widget' => array(
'type' => 'interval_default',
),
'display' => array(
'default' => array(
'label' => 'hidden',
'type' => 'interval_default',
),
),
'settings' => array(
'allowed_periods' => array(
'day' => 'day',
'week' => 'week',
'month' => 'month',
'year' => 'year',
),
),
'weight' => 0,
);
$instances = array(
'commerce_recurring_ini_period' => $basic_interval_instance,
'commerce_recurring_rec_period' => $basic_interval_instance,
'commerce_recurring_end_period' => $basic_interval_instance,
);
$instances['commerce_recurring_ini_period']['label'] = t('Initial period');
$instances['commerce_recurring_rec_period']['label'] = t('Recurring period');
$instances['commerce_recurring_end_period']['label'] = t('End period');
// Create fields & instances if necessary.
foreach ($fields as $field_name => $field) {
$info_field = field_info_field($field_name);
$instance = field_info_instance('commerce_product', $field_name, 'recurring');
if (empty($info_field)) {
field_create_field($field);
}
if (empty($instance)) {
$instance = $instances[$field_name];
$instance['field_name'] = $field_name;
field_create_instance($instance);
}
}
}