commerce_license-8.x-2.x-dev/src/Plugin/Commerce/EntityTrait/ProductVariationLicensed.php

src/Plugin/Commerce/EntityTrait/ProductVariationLicensed.php
<?php

namespace Drupal\commerce_license\Plugin\Commerce\EntityTrait;

use Drupal\commerce\Plugin\Commerce\EntityTrait\EntityTraitBase;
use Drupal\entity\BundleFieldDefinition;

/**
 * Provides an entity trait for Commerce Product Variation entities.
 *
 * Product variations that sell a license must use this trait. This adds fields
 * to the product variation type for storing the configuration of the licenses
 * that will be created when the product is purchased.
 *
 * @CommerceEntityTrait(
 *  id = "commerce_license",
 *  label = @Translation("Provides a license"),
 *  entity_types = {"commerce_product_variation"}
 * )
 */
class ProductVariationLicensed extends EntityTraitBase {

  /**
   * {@inheritdoc}
   */
  public function buildFieldDefinitions() {
    // Builds the field definitions.
    $fields = [];
    $fields['license_type'] = BundleFieldDefinition::create('commerce_plugin_item:commerce_license_type')
      ->setLabel($this->t('License Type'))
      ->setCardinality(1)
      ->setRequired(TRUE)
      ->setDisplayOptions('form', [
        'type' => 'commerce_plugin_select',
        'weight' => 20,
      ]);
    $fields['license_expiration'] = BundleFieldDefinition::create('commerce_plugin_item:commerce_license_period')
      ->setLabel($this->t('License Expiration'))
      ->setCardinality(1)
      ->setRequired(TRUE)
      ->setDisplayOptions('form', [
        'type' => 'commerce_plugin_select',
        'weight' => 21,
      ]);
    return $fields;
  }

}

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

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