abstract class CommerceLicenseBase in Commerce License 7
License base class.
Remote license types should inherit CommerceLicenseRemoteBase instead.
Hierarchy
- class \Entity implements EntityInterface
- class \CommerceLicenseBase implements CommerceLicenseInterface, EntityBundlePluginValidableInterface
Expanded class hierarchy of CommerceLicenseBase
File
- includes/
plugins/ license_type/ base.inc, line 155 - Abstract and interface plugin implementation.
View source
abstract class CommerceLicenseBase extends Entity implements CommerceLicenseInterface, EntityBundlePluginValidableInterface {
/**
* The license id.
*
* @var integer
*/
public $license_id;
/**
* The revision id.
*
* @var integer
*/
public $revision_id;
/**
* The license type (bundle).
*
* @var string
*/
public $type;
/**
* The uid of the license owner.
*
* @var integer
*/
public $uid;
/**
* The product_id of the licensed product.
*
* @var integer
*/
public $product_id;
/**
* The license status.
*
* @var integer
*/
public $status = COMMERCE_LICENSE_CREATED;
/**
* The date (unix timestamp) when the license was granted.
*
* @var integer
*/
public $granted = 0;
/**
* The date (unix timestamp) when the license expires. 0 for never.
*
* @var integer
*/
public $expires = 0;
/**
* Whether the module should expire the license automatically.
*
* If TRUE, the license that has expired according to its 'expires' timestamp
* will be processed on cron and its status set to COMMERCE_LICENSE_EXPIRED.
* If FALSE, the license will be left alone, usually because it is already
* being handled by a recurring billing module.
*
* @var bool
*/
public $expires_automatically = TRUE;
/**
* License metadata wrapper.
*
* @var EntityDrupalWrapper
*/
public $wrapper;
/**
* Constructor.
*
* @see Entity::__construct()
*/
public function __construct(array $values = array(), $entityType = NULL) {
parent::__construct($values, 'commerce_license');
$this->wrapper = entity_metadata_wrapper($this->entityType, $this);
}
/**
* Implements EntityBundlePluginProvideFieldsInterface::fields().
*/
static function fields() {
$fields = array();
$fields['num_renewals']['field'] = array(
'type' => 'number_integer',
'cardinality' => 1,
);
$fields['num_renewals']['instance'] = array(
'label' => t('Number of renewals'),
);
return $fields;
}
/**
* Implements CommerceLicenseInterface::accessDetails().
*/
public function accessDetails() {
}
/**
* Implements CommerceLicenseInterface::isConfigurable().
*/
public function isConfigurable() {
return FALSE;
}
/**
* Implements CommerceLicenseInterface::form().
*/
public function form(&$form, &$form_state) {
field_attach_form('commerce_license', $this, $form, $form_state, LANGUAGE_NONE);
// The num_renewals field should not be editable by the customer.
$form['num_renewals']['#access'] = FALSE;
}
/**
* Implements CommerceLicenseInterface::formValidate().
*/
public function formValidate($form, &$form_state) {
field_attach_form_validate('commerce_license', $this, $form, $form_state);
}
/**
* Implements CommerceLicenseInterface::formSubmit().
*/
public function formSubmit(&$form, $form_state) {
field_attach_submit('commerce_license', $this, $form, $form_state);
}
/**
* Implements CommerceLicenseInterface::checkoutCompletionMessage().
*/
public function checkoutCompletionMessage() {
}
/**
* Implements CommerceLicenseInterface::activate().
*/
public function activate() {
$this->status = COMMERCE_LICENSE_ACTIVE;
$this
->save();
}
/**
* Implements CommerceLicenseInterface::expire().
*/
public function expire() {
$this->status = COMMERCE_LICENSE_EXPIRED;
$this
->save();
}
/**
* Implements CommerceLicenseInterface::suspend().
*/
public function suspend() {
$this->status = COMMERCE_LICENSE_SUSPENDED;
$this
->save();
}
/**
* Implements CommerceLicenseInterface::revoke().
*/
public function revoke() {
$this->status = COMMERCE_LICENSE_REVOKED;
$this
->save();
}
/**
* Implements CommerceLicenseInterface::renew().
*/
public function renew($expires) {
$num_renewals = (int) $this->wrapper->num_renewals
->value();
$this->wrapper->num_renewals = $num_renewals + 1;
$this->expires = $expires;
$this
->save();
}
/**
* Overrides Entity::save().
*/
public function save() {
$granted = FALSE;
if (!empty($this->license_id)) {
$this->original = entity_load_unchanged('commerce_license', $this->license_id);
if ($this->status > $this->original->status && $this->status == COMMERCE_LICENSE_ACTIVE) {
// The license was updated, and its status was changed to active.
$granted = TRUE;
}
}
else {
$this->wrapper->num_renewals = 0;
if ($this->status == COMMERCE_LICENSE_ACTIVE) {
// The license was created with an active status.
$granted = TRUE;
}
}
// The license was just activated, set the granted timestamp and calculate
// the expiration timestamp. Only do that if the timestamps are currently
// empty (they might be set already, for example during a migration).
if ($granted && empty($this->granted)) {
$this->granted = commerce_license_get_time();
$duration = $this->wrapper->product->commerce_license_duration
->value();
if ($duration > 0 && empty($this->expires)) {
$this->expires = $this->granted + $duration;
}
}
parent::save();
}
/**
* Implements EntityBundlePluginValidableInterface::isValid().
*/
public static function isValid() {
return TRUE;
}
}
Members
Name | Modifiers | Type | Description | Overrides |
---|---|---|---|---|
CommerceLicenseBase:: |
public | property | The date (unix timestamp) when the license expires. 0 for never. | |
CommerceLicenseBase:: |
public | property | Whether the module should expire the license automatically. | |
CommerceLicenseBase:: |
public | property | The date (unix timestamp) when the license was granted. | |
CommerceLicenseBase:: |
public | property | The license id. | |
CommerceLicenseBase:: |
public | property | The product_id of the licensed product. | |
CommerceLicenseBase:: |
public | property | The revision id. | |
CommerceLicenseBase:: |
public | property | The license status. | |
CommerceLicenseBase:: |
public | property | The license type (bundle). | |
CommerceLicenseBase:: |
public | property | The uid of the license owner. | |
CommerceLicenseBase:: |
public | property |
License metadata wrapper. Overrides Entity:: |
|
CommerceLicenseBase:: |
public | function |
Implements CommerceLicenseInterface::accessDetails(). Overrides CommerceLicenseInterface:: |
2 |
CommerceLicenseBase:: |
public | function |
Implements CommerceLicenseInterface::activate(). Overrides CommerceLicenseInterface:: |
1 |
CommerceLicenseBase:: |
public | function |
Implements CommerceLicenseInterface::checkoutCompletionMessage(). Overrides CommerceLicenseInterface:: |
2 |
CommerceLicenseBase:: |
public | function |
Implements CommerceLicenseInterface::expire(). Overrides CommerceLicenseInterface:: |
1 |
CommerceLicenseBase:: |
static | function |
Implements EntityBundlePluginProvideFieldsInterface::fields(). Overrides EntityBundlePluginProvideFieldsInterface:: |
2 |
CommerceLicenseBase:: |
public | function |
Implements CommerceLicenseInterface::form(). Overrides CommerceLicenseInterface:: |
1 |
CommerceLicenseBase:: |
public | function |
Implements CommerceLicenseInterface::formSubmit(). Overrides CommerceLicenseInterface:: |
|
CommerceLicenseBase:: |
public | function |
Implements CommerceLicenseInterface::formValidate(). Overrides CommerceLicenseInterface:: |
1 |
CommerceLicenseBase:: |
public | function |
Implements CommerceLicenseInterface::isConfigurable(). Overrides CommerceLicenseInterface:: |
3 |
CommerceLicenseBase:: |
public static | function |
Implements EntityBundlePluginValidableInterface::isValid(). Overrides EntityBundlePluginValidableInterface:: |
2 |
CommerceLicenseBase:: |
public | function |
Implements CommerceLicenseInterface::renew(). Overrides CommerceLicenseInterface:: |
|
CommerceLicenseBase:: |
public | function |
Implements CommerceLicenseInterface::revoke(). Overrides CommerceLicenseInterface:: |
1 |
CommerceLicenseBase:: |
public | function |
Overrides Entity::save(). Overrides Entity:: |
2 |
CommerceLicenseBase:: |
public | function |
Implements CommerceLicenseInterface::suspend(). Overrides CommerceLicenseInterface:: |
1 |
CommerceLicenseBase:: |
public | function |
Constructor. Overrides Entity:: |
2 |
Entity:: |
protected | property | 1 | |
Entity:: |
protected | property | ||
Entity:: |
protected | property | ||
Entity:: |
protected | property | ||
Entity:: |
public | function |
Builds a structured array representing the entity's content. Overrides EntityInterface:: |
1 |
Entity:: |
public | function |
Returns the bundle of the entity. Overrides EntityInterface:: |
|
Entity:: |
protected | function | Defines the entity label if the 'entity_class_label' callback is used. | 1 |
Entity:: |
protected | function | Override this in order to implement a custom default URI and specify 'entity_class_uri' as 'uri callback' hook_entity_info(). | |
Entity:: |
public | function |
Permanently deletes the entity. Overrides EntityInterface:: |
|
Entity:: |
public | function |
Returns the info of the type of the entity. Overrides EntityInterface:: |
|
Entity:: |
public | function |
Returns the type of the entity. Overrides EntityInterface:: |
|
Entity:: |
public | function |
Exports the entity. Overrides EntityInterface:: |
|
Entity:: |
public | function |
Gets the raw, translated value of a property or field. Overrides EntityInterface:: |
|
Entity:: |
public | function |
Checks if the entity has a certain exportable status. Overrides EntityInterface:: |
|
Entity:: |
public | function |
Returns the entity identifier, i.e. the entities name or numeric id. Overrides EntityInterface:: |
|
Entity:: |
public | function |
Returns the internal, numeric identifier. Overrides EntityInterface:: |
|
Entity:: |
public | function |
Checks whether the entity is the default revision. Overrides EntityInterface:: |
|
Entity:: |
public | function |
Returns the label of the entity. Overrides EntityInterface:: |
|
Entity:: |
protected | function | Set up the object instance on construction or unserializiation. | |
Entity:: |
public | function |
Returns the uri of the entity just as entity_uri(). Overrides EntityInterface:: |
|
Entity:: |
public | function |
Generate an array for rendering the entity. Overrides EntityInterface:: |
|
Entity:: |
public | function |
Returns the EntityMetadataWrapper of the entity. Overrides EntityInterface:: |
|
Entity:: |
public | function | Magic method to only serialize what's necessary. | |
Entity:: |
public | function | Magic method to invoke setUp() on unserialization. |