trinion_suo-1.0.x-dev/src/EventSubscriber/TrinionSuoSubscriber.php

src/EventSubscriber/TrinionSuoSubscriber.php
<?php

namespace Drupal\trinion_suo\EventSubscriber;

use Drupal\trinion_cart\Event\PaymentEvent;
use Drupal\user\Entity\User;
use Symfony\Component\EventDispatcher\EventSubscriberInterface;
use Symfony\Component\HttpKernel\Event\RequestEvent;
use Symfony\Component\HttpKernel\Event\ResponseEvent;
use Symfony\Component\HttpKernel\KernelEvents;

/**
 * TrinionCourse event subscriber.
 */
class TrinionSuoSubscriber implements EventSubscriberInterface {

  /**
   * Kernel request event handler.
   *
   * @param \Symfony\Component\HttpKernel\Event\RequestEvent $event
   *   Response event.
   */
  public function onPaymentSuccess(PaymentEvent $event) {
    $zakaz = $event->getOrder();
    foreach ($zakaz->get('field_tp_stroki') as $stroka) {
      $tovar = $stroka->entity->get('field_tp_tovar')->first()->entity;
      if ($tovar->bundle() == 'kurs_obucheniya') {
        \Drupal::service('trinion_main.mails')->uvedomleniePolzovateliaObOplateKursa($zakaz, $tovar);
        $user = User::load($zakaz->get('uid')->getString());
        $user->field_ts_course_access[] = $tovar->get('field_ts_kategoriya_kursa')->getString();
        $user->field_ts_uchenik = 1;
        $user->field_tb_erp_user = 1;
        $user->save();
      }
    }
  }

  /**
   * {@inheritdoc}
   */
  public static function getSubscribedEvents() {
    return [
      PaymentEvent::PAYMENT_SUCCESS => ['onPaymentSuccess'],
    ];
  }

}

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

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