如果商店所有者具有“ Premium Merchant”角色,如何删除“添加到购物车”按钮和数量?

时间:2018-10-30 16:39:16

标签: php drupal drupal-modules drupal-8 drupal-theming

个性化模块的操作

我有Drupal 8和Commerce2。我创建了角色“ Merchant”和“ Premium Merchant”。默认情况下,创建商店的用户的角色为“商人”。

  • 如果商店的所有者具有“商人”角色,则所有用户和访问者都将禁用其产品的“添加到购物车”按钮。
  • 如果商店的所有者具有“ Premium Merchant”的角色,则将为所有用户和访客激活其产品的“添加到购物车”按钮。

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

0 个答案:

没有答案