Как заменить кнопку?

Я написал следующий код, чтобы заменить кнопку «Добавить в корзину» (Ajouter au panier) на кнопку «Автономные продажи».

Это не работает. Вместо того, чтобы заменить кнопку, он добавляет новую.

Как заменить кнопку «В корзину»?

<?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.
    unset ($form['submit'])
    $form['submit'] = [
      '#type' => 'inline_template',
      '#template' => '<button type="button" class="btn btn-success" disabled="disabled">Offline sales</button>',
    ];
  }
}

https://www.s1biose.com/produit/savon-artisanal-bio-la-cannelle

введите описание изображения здесь

Я нашел небольшое руководство по изменению формы Drupal Здесь. Надеюсь, это поможет вам немного решить вашу проблему. Также, насколько я понимаю, commerce_add_to_cart_access_form_commerce_order_item_add_to_‌​cart_form_alter должен быть чем-то вроде commerce-order-item-add-to-cart-form_alter, но здесь я могу ошибаться

Eugene Anisiutkin 31.10.2018 13:15

@EugeneAnisiutkin Я считаю эту часть кода правильной. Вы должны указать имя модуля, настроить в начале

553aa08930 31.10.2018 13:40

Я внимательно посмотрел с помощью Inspector, и на загружаемой странице нет модуля commerce_add_to_cart_access_form_commerce_order_item_add_to_‌​cart_form или даже чего-то похожего на название. Но страница действительно имеет commerce-order-item-add-to-cart-form_alter как часть свойства class формы.

Eugene Anisiutkin 31.10.2018 13:54

@EugeneAnisiutkin Я плохо знаю php-код, можете ли вы ответить полным кодом? Спасибо

553aa08930 31.10.2018 15:21

За две недели, а может, и больше, я ни разу не работал с Drupal. Мне придется это прочитать, как и вам. Кроме того, мой ответ в любом случае не будет полным, потому что я не смогу воссоздать ваш сайт на локальном хосте. Я могу дать вам рекомендацию только на основе того, что я вижу в Inspector, и того, что я нашел об именовании функций Drupal примерно за 5 минут. Предлагаю вам изучить ссылку в моем первом комментарии, она может вам помочь. Также читайте о Drupal в целом.

Eugene Anisiutkin 31.10.2018 15:36
0
5
41
0

Другие вопросы по теме