You are here

private function AdminForm::getFieldsToDelete in Webform CiviCRM Integration 8.5

Search for fields that should be deleted

Parameters

array $fields:

Return value

array

1 call to AdminForm::getFieldsToDelete()
AdminForm::postProcess in src/AdminForm.php
Submission handler, saves CiviCRM options for a Webform node

File

src/AdminForm.php, line 2173
Webform CiviCRM module's admin form.

Class

AdminForm
@file Webform CiviCRM module's admin form.

Namespace

Drupal\webform_civicrm

Code

private function getFieldsToDelete($fields) {
  $utils = \Drupal::service('webform_civicrm.utils');

  // Find fields to delete
  foreach ($fields as $key => $val) {
    $val = (array) wf_crm_aval($this->settings, $key);
    if (in_array('create_civicrm_webform_element', $val, TRUE) && $this->settings['nid'] || strpos($key, 'fieldset') !== FALSE) {
      unset($fields[$key]);
    }
    elseif (substr($key, -11) === '_createmode') {
      unset($fields[$key]);
    }
    else {
      $field = $utils
        ->wf_crm_get_field($key);
      if ($field['type'] == 'hidden' && (!empty($val[0]) || $field['name'] == 'Payment Processor Mode')) {
        unset($fields[$key]);
      }
    }
  }
  return $fields;
}