contacts_subscriptions-1.x-dev/src/EventSubscriber/DefaultSubscriptionProductsSubscriber.php

src/EventSubscriber/DefaultSubscriptionProductsSubscriber.php
<?php

namespace Drupal\contacts_subscriptions\EventSubscriber;

use Drupal\contacts_subscriptions\Event\SubscriptionProductVariationsEvent;
use Drupal\Core\Entity\EntityTypeManagerInterface;
use Symfony\Component\EventDispatcher\EventSubscriberInterface;

/**
 * The default subscription product subscriber.
 */
class DefaultSubscriptionProductsSubscriber implements EventSubscriberInterface {

  /**
   * The entity type manager.
   *
   * @var \Drupal\Core\Entity\EntityTypeManagerInterface
   */
  protected EntityTypeManagerInterface $entityTypeManager;

  /**
   * Constructs event subscriber.
   *
   * @param \Drupal\Core\Entity\EntityTypeManagerInterface $entity_type_manager
   *   The entity type manager.
   */
  public function __construct(EntityTypeManagerInterface $entity_type_manager) {
    $this->entityTypeManager = $entity_type_manager;
  }

  /**
   * Add all subscription products as default.
   *
   * @param \Drupal\contacts_subscriptions\Event\SubscriptionProductVariationsEvent $event
   *   The job product variation event.
   */
  public function getAllSubscriptions(SubscriptionProductVariationsEvent $event) {
    $event->allowProducts(
      $this->entityTypeManager
        ->getStorage('commerce_product')
        ->getQuery()
        ->condition('type', 'subscription')
        ->condition('status', TRUE)
        ->execute()
    );
  }

  /**
   * {@inheritdoc}
   */
  public static function getSubscribedEvents() {
    return [
      // Get the default, running last.
      SubscriptionProductVariationsEvent::NAME => ['getAllSubscriptions', -999],
    ];
  }

}

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

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