РАБОТА С ПЕРСОНАЛИЗИРОВАННЫМ МОДУЛЕМ
У меня есть Drupal 8 и Commerce 2. Я создал роли "Торговец" и "Премиум Торговец". По умолчанию пользователи, создающие магазин, имеют роль «Торговец».
- Если владелец магазина имеет роль «Продавец», кнопка «Добавить в корзину» для его товаров отключена для всех пользователей и посетителей.
- Если владелец магазина играет роль «Премиум мерчант», кнопка «Добавить в корзину» для его товаров активируется для всех пользователей и посетителей.
1) В настоящее время модуль отключает селектор вариантов, количество и кнопку «Добавить в корзину». Как отключить только кнопку «Добавить в корзину» и количество? Селектор вариантов должен отображаться, чтобы посетитель имел доступ к другой цене.
2) Как видно на скриншоте, кнопка замены не отображается. Есть только текст. Как отобразить кнопку замены?
<?php
/**
* @file
* Hook implementations of commerce_add_to_cart_access module.
*/
use Drupal\commerce_product\Entity\ProductType;
use Drupal\commerce_product\Entity\ProductVariationType;
use Drupal\Core\Entity\Display\EntityViewDisplayInterface;
use Drupal\Core\Entity\EntityInterface;
use Drupal\Core\Url;
function commerce_add_to_cart_access_form_commerce_order_item_add_to_cart_form_alter(&$form, \Drupal\Core\Form\FormStateInterface $form_state, $form_id) {
// Code to get store owner.
$current_store = \Drupal::service('commerce_store.current_store');
$owner = $current_store->getStore()->getOwner();
if (!$owner->hasRole('marchand_premium')) {
// Overwrite the whole form markup!
$form = ['#markup' => '<button type="button" class="btn btn-success" disabled="disabled">Offline sales</button>'];
}
}
![enter image description here](https://i.stack.imgur.com/7hJgl.png)
Когда владелец магазина не имеет премиальной роли продавца
Селектор вариантов отсутствует
Модуль должен скрывать только количество и кнопку «Добавить в корзину»
![enter image description here](https://i.stack.imgur.com/pDNWK.png)