Как убрать ссылку из меню клиента, если группа клиентов общая? Я знаю о теге ifconfig, но он не дает мне возможности скрыть пользовательскую ссылку, когда клиент находится в общей группе. Я использую Magento 2.2.4.
Как убрать ссылку из меню клиента, если клиент в общей группе?
Ответы (2)
class Current extends \Magento\Framework\View\Element\Html\Link\Current //block
{
/**
* @return string
*/
public function toHtml()
{
if (SOME CONDITION HERE) {
return parent::toHtml(); //show link
}
return ''; //hide link
}
//Макет
<referenceBlock name="customer_account_navigation">
<block class="...\Current" name="customer-account-navigation-product">
<arguments>
<argument name="path" xsi:type="string">.../index</argument>
<argument name="label" xsi:type="string">Product</argument>
</arguments>
</block>
</referenceBlock>
person
Andry
schedule
24.07.2018
Шаг 1: Прежде всего, вам нужно создать файл customer_account.xml в вашей теме в:
app/design/frontend/_YOUR_VENDOR_/_YOUR_THEME_/Magento_Customer/layout/customer_account.xml
Шаг 2: Добавить Удалить ссылку на файл:
Чтобы сократить и упростить рассказ, в примере ниже я сразу покажу, как удалить все ссылки из навигации по одной.
<!-- Store credit -->
<referenceBlock name="customer-account-navigation-customer-balance-link" remove="true"/>
<!-- Downloadable product link -->
<referenceBlock name="customer-account-navigation-downloadable-products-link" remove="true"/>
<!-- Subscription link -->
<referenceBlock name="customer-account-navigation-newsletter-subscriptions-link" remove="true"/>
<!-- Billing agreement link -->
<referenceBlock name="customer-account-navigation-billing-agreements-link" remove="true"/>
<!-- Product review link -->
<referenceBlock name="customer-account-navigation-product-reviews-link" remove="true"/>
<!-- My credit card link -->
<referenceBlock name="customer-account-navigation-my-credit-cards-link" remove="true"/>
<!-- Account link -->
<referenceBlock name="customer-account-navigation-account-link" remove="true"/>
<!-- Account edit link -->
<referenceBlock name="customer-account-navigation-account-edit-link" remove="true"/>
<!-- Address link -->
<referenceBlock name="customer-account-navigation-address-link" remove="true"/>
<!-- Orders link -->
<referenceBlock name="customer-account-navigation-orders-link" remove="true"/>
<!-- Wish list link -->
<referenceBlock name="customer-account-navigation-wish-list-link" remove="true"/>
<!-- Gift card link -->
<referenceBlock name="customer-account-navigation-gift-card-link" remove="true"/>
<!-- Gift registry -->
<referenceBlock name="customer-account-navigation-giftregistry-link" remove="true"/>
<!-- Reward points -->
<referenceBlock name="customer-account-navigation-reward-link" remove="true"/>
<!-- Order by SKU -->
<referenceBlock name="customer-account-navigation-checkout-sku-link" remove="true"/>
Более подробную информацию см. на странице https://inchoo.net/magento-2/managing-my-account-navigation-links-magento-2/
person
Mage Wet
schedule
20.07.2018
этот код удаляет ссылку для всех групп клиентов, и мне нужно удалить ссылку только для одной группы клиентов.
- person Andry; 20.07.2018
Я думаю, вам нужно перезаписать пространство имен Magento\Customer\Block\Account; В этом пространстве имен есть функция getLinks. вы можете проверить if/else в цикле foreach, чтобы напечатать или удалить ссылку.
- person Mage Wet; 20.07.2018