function commerce_payment_form_rules_ui_edit_element_alter in Commerce Core 7
Implements hook_form_FORM_ID_alter().
Disable payment method settings form elements that are overridden.
File
- modules/
payment/ commerce_payment.module, line 1297 - Defines the payment system and checkout integration.
Code
function commerce_payment_form_rules_ui_edit_element_alter(&$form, &$form_state) {
if (!isset($form['parameter']['payment_method'])) {
return;
}
// Retrieve the Rule from the $form_state.
$rule = reset($form_state['build_info']['args']);
$payment_method =& $form['parameter']['payment_method']['settings']['payment_method'];
$instance_id = commerce_payment_method_instance_id($payment_method['method_id']['#value'], $rule);
$settings = variable_get($instance_id, array());
if (!empty($settings) && is_array($settings)) {
$display_override_message = FALSE;
foreach (element_get_visible_children($payment_method['settings']) as $key) {
if (isset($settings[$key]) && isset($payment_method['settings'][$key])) {
$payment_method['settings'][$key]['#disabled'] = TRUE;
$payment_method['settings'][$key]['#required'] = FALSE;
$display_override_message = TRUE;
}
}
// Display a warning message to warn the user about the settings
// that are overridden.
if ($display_override_message) {
drupal_set_message(t('Disabled fields below have been configured in code and cannot be changed here.'), 'warning');
}
}
}