Создаю сайт на заказ интернет-магазин домашней парфюмерии на 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