You are here

function commerce_option_build_option_set_fields in Commerce Product Option 7.2

Helper function to attach the fields defined in an option set to the option.

2 calls to commerce_option_build_option_set_fields()
commerce_option_form in ./commerce_option.admin.inc
Commerce Option create/edit form
commerce_option_get_option_set_fields in ./commerce_option.admin.inc
Ajax callback that replaces the fields-part of the form with the fields defined in the Commerce Option Set (type).

File

./commerce_option.admin.inc, line 79

Code

function commerce_option_build_option_set_fields(&$form, &$form_state, $op, $option) {
  $subform = array(
    '#prefix' => '<div id="commerce-option-fields">',
    '#suffix' => '</div>',
  );

  // Get fields attached to this option.
  $fields = field_info_instances('commerce_option', $option->set_id);
  foreach ($fields as $key => $field) {
    $info = field_info_field($key);
    $langcode = field_language('commerce_option', $option, $key);
    $items = array();

    // Provide default value in case we're editing.
    if ($op != 'add' && !empty($option->{$key}[$langcode])) {
      $items = $option->{$key}[$langcode];
    }
    $subform[$key] = field_default_form('commerce_option', $option, $info, $field, $langcode, $items, $form, $form_state);
  }
  return $subform;
}