You are here

protected function ProductVariationWidgetBase::getDefaultVariation in Commerce Core 8.2

Gets the default variation for the widget.

Parameters

\Drupal\commerce_product\Entity\ProductInterface $product: The product.

array $variations: An array of available variations.

Return value

\Drupal\commerce_product\Entity\ProductVariationInterface The default variation.

2 calls to ProductVariationWidgetBase::getDefaultVariation()
ProductVariationAttributesWidget::formElement in modules/product/src/Plugin/Field/FieldWidget/ProductVariationAttributesWidget.php
Returns the form for a single field widget.
ProductVariationTitleWidget::formElement in modules/product/src/Plugin/Field/FieldWidget/ProductVariationTitleWidget.php
Returns the form for a single field widget.

File

modules/product/src/Plugin/Field/FieldWidget/ProductVariationWidgetBase.php, line 147

Class

ProductVariationWidgetBase
Provides the base structure for product variation widgets.

Namespace

Drupal\commerce_product\Plugin\Field\FieldWidget

Code

protected function getDefaultVariation(ProductInterface $product, array $variations) {
  $langcode = $product
    ->language()
    ->getId();
  $selected_variation = $this->variationStorage
    ->loadFromContext($product);
  $selected_variation = $this->entityRepository
    ->getTranslationFromContext($selected_variation, $langcode);

  // The returned variation must also be enabled.
  if (!in_array($selected_variation, $variations)) {
    $selected_variation = reset($variations);
  }
  return $selected_variation;
}