Как добавить вкладку меню с выпадающим списком на страницу моего аккаунта - PullRequest
1 голос
/ 19 февраля 2020

Как добавить элемент раскрывающегося списка на страницу myaccount woo commerce. Вот мой код

add_action( 'init', 'loyalty_points_my_account_new_endpoints' );    

function loyalty_points_my_account_new_endpoints() {
    add_rewrite_endpoint( 'loyalty_points', EP_ROOT | EP_PAGES );
}   

add_filter( 'woocommerce_account_menu_items', 'loyalty_points_my_account_menu_items', 10, 1 );
function loyalty_points_my_account_menu_items( $items ) {    
    $items['loyalty_points'] = __( 'Loyalty Rewards', 'my account' );    
    return $items;    
}    

/**
* Get new endpoint content
*/    
add_action( 'woocommerce_account_loyalty_points_endpoint', 'loyalty_points_endpoint_content' );
function loyalty_points_endpoint_content() { 
    include( plugin_dir_path( __FILE__ ) . 'frontend/loyalty-reward-points.php');
}

Теперь я получаю вкладку «Награды за лояльность» на странице myaccount, но мне нужна вкладка «Награды за лояльность» с элементами выпадающего списка, и каждый элемент списка получает свой шаблон страницы при выборе этих ссылок.

Screenshot

Пожалуйста, проверьте изображение выше. Я хочу, чтобы так и каждый элемент списка с отдельным шаблоном вызывал

1 Ответ

0 голосов
/ 19 февраля 2020

Вы уже можете начать работу с этим

Если вы добавляете новый элемент меню через 'woocommerce_account_menu_items', то вы фактически добавляете его в массив, поэтому вам нужно будет предоставить дочерние элементы для 'loyalty_points'. В моем примере я показываю визуальное представление

function loyalty_points_my_account_menu_items( $items ) {   
    $items = array(
        'dashboard'          => __( 'Dashboard', 'woocommerce' ),
        'orders'             => __( 'Orders', 'woocommerce' ),
        'downloads'          => __( 'Download', 'woocommerce' ),
        'edit-address'       => __( 'Addresses', 'woocommerce' ),
        'edit-account'       => __( 'Account Details', 'woocommerce' ),
        'loyalty_points'     => __( 'Loyalty Rewards', 'woocommerce' ),
        'customer-logout'    => __( 'Logout', 'woocommerce' ),
    );

    // debug purposes, print the array to make it visual
    echo '', print_r($items, 1), '
'; вернуть $ предметов; } add_filter ('woocommerce_account_menu_items', 'loyalty_points_my_account_menu_items', 10, 1);

Вам также необходимо настроить файл шаблона, который обеспечивает вывод меню https://github.com/woocommerce/woocommerce/blob/3.8.0/templates/myaccount/navigation.php

и предоставить необходимые css (или jQuery) чтобы получить выпадающее меню

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...