marketo_suite-1.0.x-dev/src/Plugin/SubmissionBehavior/ReplaceWithConfirmation.php

src/Plugin/SubmissionBehavior/ReplaceWithConfirmation.php
<?php

namespace Drupal\e3_marketo\Plugin\SubmissionBehavior;

use Drupal\e3_marketo\Entity\MarketoFormEntityInterface;
use Drupal\e3_marketo\Plugin\SubmissionBehaviorBase;

/**
 * Replace with confirmation submission behavior.
 *
 * @SubmissionBehavior(
 *   id = "msb_replace",
 *   label = @Translation("Replace with a confirmation message"),
 *   description = @Translation("Replaces the form with a confirmation message."),
 *   weight = 2,
 * )
 */
class ReplaceWithConfirmation extends SubmissionBehaviorBase {

  /**
   * {@inheritdoc}
   */
  public function getSubmissionCallbacks(MarketoFormEntityInterface $marketo_form = NULL, array $extra_data = []) : array {
    // Check if replacement value has already been directly provided.
    if (!empty($extra_data['replacement'])) {
      $submission_confirmation = $extra_data['replacement'];
    }

    // Check for confirmation on the parent entity.
    if (empty($submission_confirmation) && !empty($marketo_form->_referringItem)) {
      $parent_entity = $marketo_form->_referringItem->getEntity();

      if ($parent_entity && $parent_entity->hasField('field_submission_confirmation')) {
        $submission_confirmation = $parent_entity->get('field_submission_confirmation')->getValue();
        $submission_confirmation = $submission_confirmation[0]['value'] ?? '';
      }
    }

    // If confirmation wasn't provided on placement, look for the one on form.
    if (empty($submission_confirmation) && $marketo_form->hasField('field_submission_confirmation')) {
      $submission_confirmation = $marketo_form->get('field_submission_confirmation')->getValue();
      $submission_confirmation = $submission_confirmation[0]['value'] ?? '';
    }

    return [
      'replaceWithConfirmation' => $submission_confirmation ?? '',
    ];
  }

}

Главная | Обратная связь

drupal hosting | друпал хостинг | it patrol .inc