Создаю сайт на заказ интернет-магазин домашней парфюмерии на WordPress и плагине WooCommerce. В магазине использую плагин для добавления товаров в избранные. У плагина есть shortcode для вывода списка избранных. Задача вывести этот список избранных на странице Мой аккаунт в отдельной вкладке. Сам список можно вывести с помощью шорткода.
Также необходимо поменять порядок вкладок, переименовать вкладку Консоль и удалить не нужные вкладки (в моем случае это была вкладка Загрузки).
1. Регистрация нового endpoint
* В коде заменить wishlist на свое название.
add_action( 'init', 'register_wishlist_tab_endpoint');
/**
* Регистрация нового endpoint.
*
* @return void.
*/
function register_wishlist_tab_endpoint() {
add_rewrite_endpoint( 'wishlist', EP_ROOT | EP_PAGES );
}
2. Добавить фильтр Query Vars
* В коде заменить wishlist на свое название.
add_filter( 'query_vars', 'wishlist_query_vars' );
/**
* Добавить новый query_vars.
*
* @param array $vars vars.
*
* @return array An array of items.
*/
function wishlist_query_vars( $vars ) {
$vars[] = 'wishlist';
return $vars;
}
3. Добавить новую вкладку
* В коде заменить wishlist на свое название.
add_filter( 'woocommerce_account_menu_items', 'add_wishlist_tab' );
/**
* Добавляем новую вкладку Список избранных на страницу Мой аккаунт.
*
* @param array $items myaccount Items.
*
* @return array Items including Wishlist.
*/
function add_wishlist_tab( $items ) {
$items['wishlist'] = 'Cписок избранных';
return $items;
}
4. Добавить контент в новую вкладку
* В коде заменить wishlist на свое название и «сюда вставляем шорткод списка избранных» на шорткод или любой другой контент.
add_action( 'woocommerce_account_wishlist_endpoint', 'add_wishlist_content' );
/**
* Add content to the wishlist.
*
* @return string.
*/
function add_wishlist_content() {
echo do_shortcode(' сюда вставляем шорткод списка избранных ');
}
5. Изменить порядок, название и удалить вкладку
Новая вкладка появится автоматически в самом низу. Теперь нужно
1. поменять местами (переместить вкладку Список избранных) перед orders,
2. переименовать вкладку Dashboard в Панель управления
3. удалить вкладку downloads
вот так код выглядит до изменений:
/**
* Меняем местами и переименовываем и удаляем вкладки.
*/
function reorder_account_menu( $items ) {
return array(
'dashboard' => __( 'Dashboard', 'woocommerce' ),
'orders' => __( 'Orders', 'woocommerce' ),
'downloads' => __( 'Downloads', 'woocommerce' ),
'edit-account' => __( 'Edit Account', 'woocommerce' ),
'edit-address' => __( 'Addresses', 'woocommerce' ),
'customer-logout' => __( 'Logout', 'woocommerce' ),
'wishlist' => __( 'Список избранных', 'woocommerce' ),
);
}
add_filter ( 'woocommerce_account_menu_items', 'reorder_account_menu' );
А вот так после:
/**
* Меняем местами и переименовываем и удаляем вкладки.
*/
function reorder_account_menu( $items ) {
return array(
'dashboard' => __( 'Панель управления', 'woocommerce' ),
'wishlist' => __( 'Список избранных', 'woocommerce' ),
'orders' => __( 'Orders', 'woocommerce' ),
'edit-account' => __( 'Edit Account', 'woocommerce' ),
'edit-address' => __( 'Addresses', 'woocommerce' ),
'customer-logout' => __( 'Logout', 'woocommerce' ),
);
}
add_filter ( 'woocommerce_account_menu_items', 'reorder_account_menu' );
6. Исправить ошибку 404
И последний шаг. Чтобы контент отобразился во вкладке вместо 404 ошибки, необходимо зайти в раздел Настройки -> постоянные ссылки и нажать на кнопку Сохранить изменения
С вопросами и за помощью обращайтесь в нашу службу поддержки 24/7
Нужен качественный хостинг для сайта на WordPress?
Рекомендую, проверенные годами, хостинг Timeweb:

а также, хостинг Beget:

Средняя оценка: 5 из 5





