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;
}
}
