Как добавить страницу ЛК в WooCommerce

  1. Главная
  2. Блог
  3. WooCommerce
  4. Как добавить страницу ЛК в WooCommerce

Без лишних слов, сделать нужно следующее:

  • Добавить новый endpoint (для хука woocommerce_account_(key)_endpoint)
  • Добавить ссылку на страницу в навигацию ЛК WooCommerce
  • Создать страницу при помощи хука
  • Обновить пермалинки

Для начала определимся с тем, какой слаг будет у страницы. Для учебного примера пусть будет «my-custom-page». Тогда ссылка будет «/my-account/my-custom-page». Запоминаем слаг и двигаемся дальше.

Добавить новый endpoint

Он необходим, чтобы хук woocommerce_account_(key)_endpoint отработал с нашей новой страницей. Используем хук init:

add_action( 'init', 'register_my_custom_page_endpoint' );
function register_my_custom_page_endpoint() {
    add_rewrite_endpoint( 'my-custom-page', EP_ROOT | EP_PAGES );
}

Добавить страницу в навигацию личного аккаунта WooCommerce

Тут используем хук woocommerce_account_menu_items

add_action( 'woocommerce_account_menu_items', 'account_menu_items', 10, 2 );
function account_menu_items( $items, $endpoints ) {
    $items['my-custom-page'] = 'Кастомная страница в ЛК';

    return $items;
}

Ссылка на страницу появилась, но при попытке ее открыть, мы получим ошибку 404. Поэтому страницу надо создать.

Создать страницу ЛК при помощи хука

Для этого используем хук woocommerce_account_(key)_endpoint. «(key)» тут заменяем на слаг (ключ) страницы, который мы придумали в начале. Получается такая штука:

add_action( 'woocommerce_account_my-custom-page_endpoint', 'my_custom_page_content', 10 );
function my_custom_page_content() {
    echo 'hello';
}

Обновить пермалинки

На этом шаге страница у вас уже могла появиться. Но если нет, то нужно просто нажать на кнопку «Обновить» в разделе «Постоянные ссылки» в админке. После этого всё заработает.