У меня есть сайт Drupal 8 с торговой площадкой (несколько магазинов).
Я хочу отобразить на шаге «Просмотр» панели «Оформить заказ» флажок с условиями продажи.
В настоящее время, если я закажу в 2 магазинах, это создаст 2 корзины покупок (1 на магазин).
Условия продажи доступны для каждого магазина по адресу:
/store/ID/cgv
Код ниже работает, но мне нужно заменить ['commerce_store' => 3]
с идентификатором текущего магазина (магазина, в котором размещен заказ).
Как это сделать?
ПРИМЕР :
Если я закажу товар в магазине А, он создаст корзину покупок.
Если я закажу товар в магазине 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;
}
}
Задача ещё не решена.
Других решений пока нет …