Как восстановить идентификатор магазина, в котором был размещен заказ? - PullRequest
0 голосов
/ 03 ноября 2018

У меня есть сайт Drupal 8 с торговой площадкой (несколько магазинов).

Я хочу отобразить на шаге «Обзор» панели «Оформить заказ» флажок с условиями продажи.

В настоящее время, если я закажу в 2 магазинах, будет создано 2 корзины (1 на магазин).

Условия продажи доступны для каждого магазина по адресу:

/store/ID/cgv

Код ниже работает, но мне нужно заменить ['commerce_store' => 3] на Id текущего магазина (магазина, в котором размещен заказ).

Как это сделать?

ПРИМЕР:

Если я закажу товар в магазине A, он создаст корзину покупок.

Если я закажу товар в магазине B, будет создана вторая корзина.

Каждая корзина должна отображать на шаге «просмотр» общие условия продажи магазина, к которому относится корзина.

<?php

namespace Drupal\commerce_agree_cgv\Plugin\Commerce\CheckoutPane;

use Drupal\Core\Form\FormStateInterface;
use Drupal\commerce_checkout\Plugin\Commerce\CheckoutPane\CheckoutPaneBase;
use Drupal\commerce_checkout\Plugin\Commerce\CheckoutPane\CheckoutPaneInterface;
use Drupal\Core\Link;

/**
 * Provides the completion message pane.
 *
 * @CommerceCheckoutPane(
 *   id = "agree_cgv",
 *   label = @Translation("Agree CGV"),
 *   default_step = "review",
 * )
 */
class AgreeCGV extends CheckoutPaneBase implements CheckoutPaneInterface {

  /**
   * {@inheritdoc}
   */
  public function buildPaneForm(array $pane_form, FormStateInterface $form_state, array &$complete_form) {
    $link = Link::createFromRoute('the general terms and conditions of business', 'entity.commerce_store.canonical', ['commerce_store' => 3], ['attributes' => ['target' => '_blank']])->toString();
    $pane_form['cgv'] = [
      '#type' => 'checkbox',
      '#default_value' => FALSE,
      '#title' => $this->t('I have read and accept @cgv.', ['@cgv' => $link]),
      '#required' => TRUE,
      '#weight' => $this->getWeight(),
    ];
    return $pane_form;
  }

}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...