presto-8.x-2.2/src/Plugin/Presto/OptionalDependency/InstallPrestoCommerceCurrency.php

src/Plugin/Presto/OptionalDependency/InstallPrestoCommerceCurrency.php
<?php

namespace Drupal\presto\Plugin\Presto\OptionalDependency;

use Drupal\Core\Form\FormStateInterface;

/**
 * Installs Presto Commerce Currency if possible.
 *
 * @PrestoOptionalDependency(
 *     id = "install_presto_commerce_currency",
 *     label = @Translation("Install Presto Commerce Currency"),
 *     weight = 1
 * )
 */
class InstallPrestoCommerceCurrency extends AbstractOptionalDependency {

  /**
   * {@inheritdoc}
   */
  public function defaultConfiguration() {
    return [];
  }

  /**
   * {@inheritdoc}
   */
  public function shouldInstall(array $installState) {
    return !empty($installState['presto_ecommerce_enabled']);
  }

  /**
   * Get any required Batch API install operations for this dependency.
   *
   * @return array
   *   Batch operation definitions.
   */
  public function getInstallOperations() {
    return [
      [
        [static::class, 'createCurrency'],
        [],
      ],
    ];
  }

  /**
   * {@inheritdoc}
   */
  public function buildConfigurationForm(
    array $form,
    FormStateInterface $form_state
  ) {
    // No configuration required for this dependency.
    return $form;
  }

  /**
   * {@inheritdoc}
   */
  public function submitConfigurationForm(
    array &$form,
    FormStateInterface $form_state
  ) {
    // Nothing to do, we don't have a form.
  }

  /**
   * Create currency.
   *
   * We do a manual currency create if the site country is not Australia as
   * the shop is setup for Australia.
   *
   * @throws \Drupal\Core\Entity\EntityStorageException
   */
  public static function createCurrency() {
    // If default country is Australia do not import the AUD Dollar.
    $default_country = \Drupal::config('system.date')->get('country.default');
    if ($default_country !== 'AU') {
      $currency_importer = \Drupal::service('commerce_price.currency_importer');
      $currency_importer->importByCountry('AU');
    }
  }

}

Главная | Обратная связь

drupal hosting | друпал хостинг | it patrol .inc