commerce-8.x-2.8/modules/checkout/src/Plugin/Commerce/CheckoutPane/CheckoutPaneBase.php
modules/checkout/src/Plugin/Commerce/CheckoutPane/CheckoutPaneBase.php
<?php namespace Drupal\commerce_checkout\Plugin\Commerce\CheckoutPane; use Drupal\commerce_checkout\Plugin\Commerce\CheckoutFlow\CheckoutFlowInterface; use Drupal\commerce_order\Entity\OrderInterface; use Drupal\Component\Utility\NestedArray; use Drupal\Core\Entity\EntityTypeManagerInterface; use Drupal\Core\Form\FormStateInterface; use Drupal\Core\Plugin\ContainerFactoryPluginInterface; use Drupal\Core\Plugin\PluginBase; use Symfony\Component\DependencyInjection\ContainerInterface; /** * Provides the base checkout pane class. */ abstract class CheckoutPaneBase extends PluginBase implements CheckoutPaneInterface, ContainerFactoryPluginInterface { /** * The entity type manager. * * @var \Drupal\Core\Entity\EntityTypeManagerInterface */ protected $entityTypeManager; /** * The parent checkout flow. * * @var \Drupal\commerce_checkout\Plugin\Commerce\CheckoutFlow\CheckoutFlowWithPanesInterface */ protected $checkoutFlow; /** * The current order. * * @var \Drupal\commerce_order\Entity\OrderInterface */ protected $order; /** * Constructs a new CheckoutPaneBase object. * * @param array $configuration * A configuration array containing information about the plugin instance. * @param string $plugin_id * The plugin_id for the plugin instance. * @param mixed $plugin_definition * The plugin implementation definition. * @param \Drupal\commerce_checkout\Plugin\Commerce\CheckoutFlow\CheckoutFlowInterface $checkout_flow * The parent checkout flow. * @param \Drupal\Core\Entity\EntityTypeManagerInterface $entity_type_manager * The entity type manager. */ public function __construct(array $configuration, $plugin_id, $plugin_definition, CheckoutFlowInterface $checkout_flow, EntityTypeManagerInterface $entity_type_manager) { parent::__construct($configuration, $plugin_id, $plugin_definition); $this->checkoutFlow = $checkout_flow; $this->order = $checkout_flow->getOrder(); $this->setConfiguration($configuration); $this->entityTypeManager = $entity_type_manager; } /** * {@inheritdoc} */ public static function create(ContainerInterface $container, array $configuration, $plugin_id, $plugin_definition, CheckoutFlowInterface $checkout_flow = NULL) { return new static( $configuration, $plugin_id, $plugin_definition, $checkout_flow, $container->get('entity_type.manager') ); } /** * {@inheritdoc} */ public function calculateDependencies() { return [ 'module' => [$this->pluginDefinition['provider']], ]; } /** * {@inheritdoc} */ public function getConfiguration() { return $this->configuration; } /** * {@inheritdoc} */ public function setConfiguration(array $configuration) { $this->configuration = NestedArray::mergeDeep($this->defaultConfiguration(), $configuration); } /** * {@inheritdoc} */ public function defaultConfiguration() { $available_steps = array_keys($this->checkoutFlow->getSteps()); $available_steps[] = '_sidebar'; $default_step = $this->pluginDefinition['default_step']; if (!$default_step || !in_array($default_step, $available_steps)) { // The specified default step isn't available on the parent checkout flow. $default_step = '_disabled'; } return [ 'step' => $default_step, 'weight' => 10, ]; } /** * {@inheritdoc} */ public function buildConfigurationSummary() { return ''; } /** * {@inheritdoc} */ public function buildConfigurationForm(array $form, FormStateInterface $form_state) { return $form; } /** * {@inheritdoc} */ public function validateConfigurationForm(array &$form, FormStateInterface $form_state) {} /** * {@inheritdoc} */ public function submitConfigurationForm(array &$form, FormStateInterface $form_state) {} /** * {@inheritdoc} */ public function setOrder(OrderInterface $order) { $this->order = $order; return $this; } /** * {@inheritdoc} */ public function getId() { return $this->pluginId; } /** * {@inheritdoc} */ public function getLabel() { return $this->pluginDefinition['label']; } /** * {@inheritdoc} */ public function getDisplayLabel() { return $this->pluginDefinition['display_label']; } /** * {@inheritdoc} */ public function getWrapperElement() { return $this->pluginDefinition['wrapper_element']; } /** * {@inheritdoc} */ public function getStepId() { return $this->configuration['step']; } /** * {@inheritdoc} */ public function setStepId($step_id) { $this->configuration['step'] = $step_id; } /** * {@inheritdoc} */ public function getWeight() { return $this->configuration['weight']; } /** * {@inheritdoc} */ public function setWeight($weight) { $this->configuration['weight'] = $weight; } /** * {@inheritdoc} */ public function isVisible() { return TRUE; } /** * {@inheritdoc} */ public function buildPaneSummary() { return []; } /** * {@inheritdoc} */ public function validatePaneForm(array &$pane_form, FormStateInterface $form_state, array &$complete_form) {} /** * {@inheritdoc} */ public function submitPaneForm(array &$pane_form, FormStateInterface $form_state, array &$complete_form) {} }