You are here

function webform_test_third_party_settings_webform_submission_form_alter in Webform 6.x

Same name and namespace in other branches
  1. 8.5 tests/modules/webform_test_third_party_settings/webform_test_third_party_settings.webform.inc \webform_test_third_party_settings_webform_submission_form_alter()

Implements hook_webform_submission_form_alter().

File

tests/modules/webform_test_third_party_settings/webform_test_third_party_settings.webform.inc, line 89
Integrates third party settings for the Webform module.

Code

function webform_test_third_party_settings_webform_submission_form_alter(&$form, FormStateInterface $form_state, $form_id) {
  if (!empty($_POST)) {
    return;
  }

  /** @var \Drupal\webform\WebformThirdPartySettingsManagerInterface $third_party_settings_manager */
  $third_party_settings_manager = \Drupal::service('webform.third_party_settings_manager');

  /** @var \Drupal\webform\WebformSubmissionInterface $webform_submission */
  $webform_submission = $form_state
    ->getFormObject()
    ->getEntity();
  $webform = $webform_submission
    ->getWebform();

  // Get message from the webform settings or the webform admin settings.
  $message = $webform
    ->getThirdPartySetting('webform_test_third_party_settings', 'message') ?: $third_party_settings_manager
    ->getThirdPartySetting('webform_test_third_party_settings', 'message');
  $error = $webform
    ->getThirdPartySetting('webform_test_third_party_settings', 'error') ?: $third_party_settings_manager
    ->getThirdPartySetting('webform_test_third_party_settings', 'error');

  // If a message is set, display it.
  if ($message) {
    \Drupal::messenger()
      ->addMessage($message, $error ? MessengerInterface::TYPE_ERROR : MessengerInterface::TYPE_STATUS);
  }
}