function commerce_customer_profile_pane_settings_form in Commerce Core 7
Checkout pane callback: returns the customer profile pane's settings form.
File
- modules/
customer/ includes/ commerce_customer.checkout_pane.inc, line 12 - Checkout pane callback functions for the customer module.
Code
function commerce_customer_profile_pane_settings_form($checkout_pane) {
$form = array();
// Extract the type of profile represented by this pane from its ID.
$type = substr($checkout_pane['pane_id'], 17);
// Removes 'customer_profile_'
// Build an options array of customer profile reference fields available for
// the data from this customer profile pane.
$options = array();
foreach (commerce_info_fields('commerce_customer_profile_reference', 'commerce_order') as $name => $field) {
if ($type == $field['settings']['profile_type']) {
$instance = field_info_instance('commerce_order', $name, 'commerce_order');
$translated_instance = commerce_i18n_object('field_instance', $instance);
$options[$name] = $translated_instance['label'];
}
}
$form['commerce_' . $checkout_pane['pane_id'] . '_field'] = array(
'#type' => 'select',
'#title' => t('Related customer profile reference field'),
'#description' => t('Specify the customer profile reference field on the order to populate with profile data from this checkout pane.'),
'#options' => $options,
'#empty_value' => '',
'#default_value' => variable_get('commerce_' . $checkout_pane['pane_id'] . '_field', ''),
'#required' => TRUE,
);
// Provide the option to copy values from other profile types if they exist.
$profile_types = commerce_customer_profile_type_options_list();
unset($profile_types[$type]);
if (count($profile_types)) {
$form['commerce_' . $checkout_pane['pane_id'] . '_profile_copy'] = array(
'#type' => 'checkbox',
'#title' => t('Enable profile copying on this checkout pane, helping customers avoid having to enter the same address twice.'),
'#default_value' => variable_get('commerce_' . $checkout_pane['pane_id'] . '_profile_copy', FALSE),
);
$form['commerce_' . $checkout_pane['pane_id'] . '_profile_copy_wrapper'] = array(
'#type' => 'fieldset',
'#title' => t('Profile copy options'),
'#states' => array(
'visible' => array(
':input[name="commerce_' . $checkout_pane['pane_id'] . '_profile_copy"]' => array(
'checked' => TRUE,
),
),
),
);
$form['commerce_' . $checkout_pane['pane_id'] . '_profile_copy_wrapper']['commerce_' . $checkout_pane['pane_id'] . '_profile_copy_source'] = array(
'#type' => 'select',
'#title' => t('Profile to copy from'),
'#options' => $profile_types,
'#default_value' => variable_get('commerce_' . $checkout_pane['pane_id'] . '_profile_copy_source', NULL),
);
$form['commerce_' . $checkout_pane['pane_id'] . '_profile_copy_wrapper']['commerce_' . $checkout_pane['pane_id'] . '_profile_copy_default'] = array(
'#type' => 'checkbox',
'#title' => t('Make copying information from this profile the default action, requiring users to uncheck a box on the checkout pane to enter a different address.'),
'#default_value' => variable_get('commerce_' . $checkout_pane['pane_id'] . '_profile_copy_default', TRUE),
);
}
return $form;
}