You are here

class DownloadFile in Commerce File 8.2

Provides the file download checkout pane.

Plugin annotation


@CommerceCheckoutPane(
  id = "commerce_file_download",
  label = @Translation("Files download"),
  default_step = "complete",
)

Hierarchy

Expanded class hierarchy of DownloadFile

File

src/Plugin/Commerce/CheckoutPane/DownloadFile.php, line 18

Namespace

Drupal\commerce_file\Plugin\Commerce\CheckoutPane
View source
class DownloadFile extends CheckoutPaneBase implements CheckoutPaneInterface {

  /**
   * {@inheritdoc}
   */
  public function buildPaneForm(array $pane_form, FormStateInterface $form_state, array &$complete_form) {
    $pane_form = [];

    // Create an array that will hold all the active file licenses found.
    $license_ids = [];

    // Get all licenced products with file download.
    foreach ($this->order
      ->getItems() as $order_item) {
      if (!$order_item
        ->hasField('license') || $order_item
        ->get('license')
        ->isEmpty()) {
        continue;
      }

      /** @var \Drupal\commerce_license\Entity\LicenseInterface $license */
      $license = $order_item
        ->get('license')->entity;

      // Only show download links for activated file licenses.
      if ($license
        ->bundle() !== 'commerce_file' || $license
        ->getState()
        ->getId() !== 'active') {
        continue;
      }
      $purchased_entity = $order_item
        ->getPurchasedEntity();
      if (!$purchased_entity
        ->hasField('commerce_file') || $purchased_entity
        ->get('commerce_file')
        ->isEmpty()) {
        continue;
      }
      $license_ids[] = $license
        ->id();
    }
    if ($license_ids) {
      $pane_form['files'] = [
        '#type' => 'view',
        '#name' => 'commerce_file_my_files',
        '#display_id' => 'checkout_complete',
        '#arguments' => [
          implode('+', $license_ids),
        ],
        '#embed' => TRUE,
      ];
    }
    return $pane_form;
  }

}

Members

Namesort descending Modifiers Type Description Overrides
CheckoutPaneBase::$checkoutFlow protected property The parent checkout flow.
CheckoutPaneBase::$entityTypeManager protected property The entity type manager.
CheckoutPaneBase::$order protected property The current order.
CheckoutPaneBase::buildConfigurationForm public function Form constructor. Overrides PluginFormInterface::buildConfigurationForm 6
CheckoutPaneBase::buildConfigurationSummary public function Builds a summary of the pane configuration. Overrides CheckoutPaneInterface::buildConfigurationSummary 5
CheckoutPaneBase::buildPaneSummary public function Builds a summary of the pane values. Overrides CheckoutPaneInterface::buildPaneSummary 3
CheckoutPaneBase::calculateDependencies public function Calculates dependencies for the configured plugin. Overrides DependentPluginInterface::calculateDependencies
CheckoutPaneBase::create public static function Creates an instance of the plugin. Overrides ContainerFactoryPluginInterface::create 7
CheckoutPaneBase::defaultConfiguration public function Gets default configuration for this plugin. Overrides ConfigurableInterface::defaultConfiguration 6
CheckoutPaneBase::getConfiguration public function Gets this plugin's configuration. Overrides ConfigurableInterface::getConfiguration
CheckoutPaneBase::getDisplayLabel public function Gets the pane display label. Overrides CheckoutPaneInterface::getDisplayLabel
CheckoutPaneBase::getId public function Gets the pane ID. Overrides CheckoutPaneInterface::getId
CheckoutPaneBase::getLabel public function Gets the pane label. Overrides CheckoutPaneInterface::getLabel
CheckoutPaneBase::getStepId public function Gets the pane step ID. Overrides CheckoutPaneInterface::getStepId
CheckoutPaneBase::getWeight public function Gets the pane weight. Overrides CheckoutPaneInterface::getWeight
CheckoutPaneBase::getWrapperElement public function Gets the pane wrapper element. Overrides CheckoutPaneInterface::getWrapperElement
CheckoutPaneBase::isVisible public function Determines whether the pane is visible. Overrides CheckoutPaneInterface::isVisible 4
CheckoutPaneBase::setConfiguration public function Sets the configuration for this plugin instance. Overrides ConfigurableInterface::setConfiguration
CheckoutPaneBase::setOrder public function Sets the current order. Overrides CheckoutPaneInterface::setOrder
CheckoutPaneBase::setStepId public function Sets the pane step ID. Overrides CheckoutPaneInterface::setStepId
CheckoutPaneBase::setWeight public function Sets the pane weight. Overrides CheckoutPaneInterface::setWeight
CheckoutPaneBase::submitConfigurationForm public function Form submission handler. Overrides PluginFormInterface::submitConfigurationForm 6
CheckoutPaneBase::submitPaneForm public function Handles the submission of an pane form. Overrides CheckoutPaneInterface::submitPaneForm 7
CheckoutPaneBase::validateConfigurationForm public function Form validation handler. Overrides PluginFormInterface::validateConfigurationForm
CheckoutPaneBase::validatePaneForm public function Validates the pane form. Overrides CheckoutPaneInterface::validatePaneForm 4
CheckoutPaneBase::__construct public function Constructs a new CheckoutPaneBase object. Overrides PluginBase::__construct 6
DependencySerializationTrait::$_entityStorages protected property An array of entity type IDs keyed by the property name of their storages.
DependencySerializationTrait::$_serviceIds protected property An array of service IDs keyed by property name used for serialization.
DependencySerializationTrait::__sleep public function 1
DependencySerializationTrait::__wakeup public function 2
DownloadFile::buildPaneForm public function Builds the pane form. Overrides CheckoutPaneInterface::buildPaneForm
MessengerTrait::$messenger protected property The messenger. 29
MessengerTrait::messenger public function Gets the messenger. 29
MessengerTrait::setMessenger public function Sets the messenger.
PluginBase::$configuration protected property Configuration information passed into the plugin. 1
PluginBase::$pluginDefinition protected property The plugin implementation definition. 1
PluginBase::$pluginId protected property The plugin_id.
PluginBase::DERIVATIVE_SEPARATOR constant A string which is used to separate base plugin IDs from the derivative ID.
PluginBase::getBaseId public function Gets the base_plugin_id of the plugin instance. Overrides DerivativeInspectionInterface::getBaseId
PluginBase::getDerivativeId public function Gets the derivative_id of the plugin instance. Overrides DerivativeInspectionInterface::getDerivativeId
PluginBase::getPluginDefinition public function Gets the definition of the plugin implementation. Overrides PluginInspectionInterface::getPluginDefinition 3
PluginBase::getPluginId public function Gets the plugin_id of the plugin instance. Overrides PluginInspectionInterface::getPluginId
PluginBase::isConfigurable public function Determines if the plugin is configurable.
StringTranslationTrait::$stringTranslation protected property The string translation service. 1
StringTranslationTrait::formatPlural protected function Formats a string containing a count of items.
StringTranslationTrait::getNumberOfPlurals protected function Returns the number of plurals supported by a given language.
StringTranslationTrait::getStringTranslation protected function Gets the string translation service.
StringTranslationTrait::setStringTranslation public function Sets the string translation service to use. 2
StringTranslationTrait::t protected function Translates a string to the current language or to a given language.