Pull to refresh

Кастомизация Woocommerce — страница продукта (кастомные поля)

С чего начать?


Для того, чтобы иметь возможность менять какие-либо стандартные шаблоны WC нужно скопировать папку «templates» из папки плагина в папку шаблона, который используется как основной, и переименовать её в «woocommerce». Выполнение этого шага необходимо для большинства шаблонных решений.

Решения, которые вы можете использовать на странице товара


Кнопка добавления в корзину


По скольку WC имеет несколько доступных разновидностей товаров, для каждого вида с учетом его специфики создана отдельная функция.

1. Простой товар (simple)

woocommerce_simple_add_to_cart();

2. Внешний товар (external)

woocommerce_external_add_to_cart();

3. Вариативный товар

woocommerce_variable_add_to_cart();

Добавление полей в карточку товара


Кажется, что это просто. Я тоже так думал, пока мне не пришлось на практике применять данную технику. Я столкнулся с проблемой — форма товара ( я использовал simple ) никак не хотела передавать данные. Увы, только через неделю я догадался посмотреть на код исходников карточки и открыл, что форма товара обернута вокруг кнопки «Добавить в корзину» и на этом мы ничего сделать не сможем.

Теперь к решению:

Переходим в папку woocommerce в корне нашей темы (как ее сделать см. выше) и открываем файл single-product.php. В нем после подключения хэдера вставляем следующий код формы:

<form id="cart_fenster" class="cart" method="post" enctype="multipart/form-data">

Поясню:

  1. id: обычный id формы, понадобится далее
  2. class: честно, я не уверен, что он нужен, но в оригинальной форме так, поэтому оставим его
  3. method: тип передачи данных — для формы WC это POST
  4. enctype: позволяет производить передачу файлов (с помощью input[type=«file»])

Далее переходим в woocommerce/single-product/add-to-cart/ и открываем файл, соответствующий вашему типу продукта (variable,simple,grouped). В нем для кнопки добавить в корзину прописываем следующее:

<button form="cart_fenster" type="submit" class="single_add_to_cart_button button alt">

где новым является атрибут form, который говорит нашей кнопке, что теперь она связана с формой с id «cart_fenster» (можете заменить на свой). Это позволяет использовать данные из этой формы, то есть со всей страницы товара.

Надеюсь, я помог вам. В ближайшее время постараюсь написать про свою сортировку товаров по мета полю, сохранение и обработку значений кастомных полей, которые мы добавили и много чего интересного.
Tags:
Hubs:
You can’t comment this publication because its author is not yet a full member of the community. You will be able to contact the author only after he or she has been invited by someone in the community. Until then, author’s username will be hidden by an alias.