Конечные точки (Endpoints) WooCommerce 2.1+
WooCommerce 2.1 использует конечные точки для того чтоб показывать определенный контент в пользовательской части сайта. Этот документ объясняет, как их использовать, зачем это нужно разработчикам, и чему на смену они пришли после обновления WC 2.0.
Что такое конечные точки (Endpoints)?
По существу конечные точки – это всего лишь дополнительные звенья URL веб-сайта, которые мы опознаем и показываем разный контент, когда возникает такая необходимость. Например, у вас есть страница ‘my account’, которая открывается по ссылке yoursite.com/my-account. Когда конечная точка приобретает значение ‘edit-account’, то оно добавляется к этой URL, преображая ссылку в ‘yoursite.com/my-account/edit-account‘, и соответственно мы покажем страницу редактирования профиля вместо страницы «Мой профиль». По сути, это позволяет вам показывать разный контент, без необходимости создавать множество страниц и шорткодов, что приводит к сокращению количества контента, который необходимо установить.
На смену чему версии WC 2.0 пришли конечные точки?
В старых версиях WooCommerce вместо конечных точек, ведущих к контенту, использовались страницы и шрткоды. В качестве примеров конечных точек в WooCommerce можно привести:
- Страницы редактирования профилей (раньше страница с шорткодом [woocommerce_edit_account])
- Страницы смены адреса (раньше страница с шорткодом [woocommerce_edit_address])
- Страницы смены пароля (раньше страница с шорткодом [woocommerce_change_password])
- Страницы восстановления пароля (раньше страница с шорткодом [woocommerce_lost_password])
- Страницы выхода (раньше страница с шорткодом [woocommerce_logout])
- Страницы просмотра заказа (раньше страница с шорткодом [woocommerce_view_order])
- Страница оплаты заказа (раньше страница с шорткодом [woocommerce_pay])
- Страница благодарности за покупку (раньше страница с шорткодом [woocommerce_thankyou])
Если вы обновляете WooCommerce и удивляетесь, почему эти шорткоды больше не работают, то это все потому, что их больше не существует. Хотя WooCommerce пытается удалить эти страницы во время обновления, ели они были изменены, то могут и не удалиться.
Почему мы заменили шорткоды конечными точками?
Все очень просто. Это делает установку WooCommerce более простой и сводит к минимуму пользовательские ошибки. Со страницами и конечными точками мы должны были установить страницу, затем загрузить контент и убедиться в том, что WooCommerce знает, где именно эти страницы были установлены. Если пользователь редактировал одну из этих страниц, переносил ее или удалял, то возникал риск того, что что-то прекратит работать.
Конечные точки страниц профиля
Представленные ниже конечные точки используются для расширения функциональности всего, что связано с пользовательскими профилями, и добавляются URL к странице «my-account»
- Заказа – /orders/
- Просмотр заказа – /view-order/{ORDER_ID}
- Загрузки – /downloads/
- редактировать аккаунт(and change password – /edit-account/
- Адреса – /addresses/
- Метод оплаты – /payment-methods/
- Потеря пароля – /lost-password/
- Выход– /customer-logout/
Конечные точки страницы «Оформление заказа»
Представленные ниже конечные точки добавляются к URL страницы «Оформление заказа» и позволяют расширить ее функциональность:
- Страница оплаты – /order-pay/{ORDER_ID}
- Заказ принят (благодарность) – /order-received/
- Добавить способ оплаты– /add-payment-method/
Настройка URLов конечных точек
Используя меню «Настройки», можно настроить URL любой конечной точки. Для того, чтоб настроить конечные точки профиля, идем в WooCommerce > Настройки > Accounts и настраиваем конечные точки:
Для того, чтоб настроить конечные точки, отвечающие за страницы оформления заказа, идем в WooCommerce > Настройки > Оформление заказа (Checkout) и изменяем их:
Чтоб избежать конфликтов, убедитесь в том, что их значения не повторяются, а в случае возникновения ошибки 404, открываем Настройки > Постоянные ссылки и сохраняем, чтоб сбросить изменения и вернуть все в первоначальное положение.
Использование конечных точек в меню
Если вы хотите включить конечные точки в ваши меню, то, если раньше вы могли просто перетянуть страницу в меню, то теперь вы должны использовать поле «ссылки»:
Добавьте полный текст ссылки к конечной точке, а затем вклейте полученный результат в ваше меню. Помните: для работы некоторых конечных точек, например «Просмотр заказа», требуется указать ID, и мы не советуем вам добавлять эти конечные точки в меню, Доступ к данным страницам может быть получен через страницу «my-account».
Использование конечных точек в плагинах платежных шлюзов
Раньше разработчики могли использовать функцию get_permalink для URLов страниц оплаты и благодарности за покупку, теперь же они должны использовать конечные точки. К счастью, WooCommerce снабжает нас функциями-помошниками для получения подобных ссылок. Вот они:
Код:
$order->get_checkout_payment_url( $on_checkout = false );
и:
Код:
$order->get_checkout_order_received_url();
Эти методы должны быть использованы для полной совместимости платежных шлюзов с версией 2.1
Устранение неполадок
Конечные точки (Endpoints) показывают ошибку 404
1. Если вы видите ошибку 404 (после обновления, например), идите в Настройки > Постоянные ссылки в консоли управления вашим WordPress и жмите «Сохранить». Это гарантировано перепишет задачи для существующих конечных точек и сделает их готовыми к использованию.
2. Если вы используете конечную точку, типа «просмотр заказа», убедитесь в том, что вы установили номер заказа. /view-order/ - не работает, /view-order/10/ - работает. Эти виды конечных точек не должны присутствовать в меню навигации.