Как убрать кнопку «Добавить в корзину» и количество, если у владельца магазина есть роль «Премиум мерчант»? - PullRequest
0 голосов
/ 30 октября 2018

РАБОТА С ПЕРСОНАЛИЗИРОВАННЫМ МОДУЛЕМ

У меня есть 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

Когда владелец магазина не имеет премиальной роли продавца

Селектор вариантов отсутствует

Модуль должен скрывать только количество и кнопку «Добавить в корзину»

enter image description here

...