добавить конечную точку под-страницы в woocommerce - PullRequest
0 голосов
/ 12 июня 2019

Я хочу добавить дополнительную конечную точку к пользовательской конечной точке, определенной для моего шаблона myaccount woocommerce. Например:

пользовательская конечная точка - my-account / alumni
subendpoint - мой аккаунт / выпускники / индекс

Я добавил функциональность для добавления пользовательской конечной точки, но когда я пытаюсь добавить дополнительную конечную точку, она перенаправляет меня на мою учетную запись / и не загружает шаблон

Я уже пытался обновить постоянные ссылки. и изменение положения определений конечной точки и подконечной точки. Я написал этот код в functions.php

add_action( 'init', 'add_alumni_index_account_endpoint' );
function add_alumni_index_account_endpoint() {
    add_rewrite_endpoint( 'alumni-portal/alumni-index', EP_PAGES );
}

add_action( 'woocommerce_account_alumni-index_endpoint', 'alumni_index_account_endpoint_content' );
function alumni_index_account_endpoint_content() {
    //if ( current_user_can('administrator') ) {
        wc_get_template( 'myaccount/alumni-index.php' );
    //}
}

add_action( 'init', 'add_alumni_portal_account_endpoint' );
function add_alumni_portal_account_endpoint() {
    add_rewrite_endpoint( 'alumni-portal', EP_PAGES );
}

add_filter ( 'woocommerce_account_menu_items', 'custom_account_menu_items', 10 );
function custom_account_menu_items( $menu_links ){
    //if ( current_user_can('administrator') ) {
        $menu_links = array_slice( $menu_links, 0,3 , true )
        + array( 'alumni-portal' => __('Alumni Portal') )
        + array_slice( $menu_links, 3, NULL, true );
    //}
    return $menu_links;
}

add_action( 'woocommerce_account_alumni-portal_endpoint', 'alumni_portal_account_endpoint_content' );
function alumni_portal_account_endpoint_content() {
    //if ( current_user_can('administrator') ) {
        wc_get_template( 'myaccount/alumni-portal.php' );
    //}
}

add_filter("woocommerce_get_query_vars", function ($vars) {
    foreach (["alumni-portal/alumni-index","alumni-portal"] as $e) {
        $vars[$e] = $e;
    }
    return $vars;
});

В результате моя подчиненная точка должна загружать соответствующий шаблон, а не перенаправлять на мою учетную запись.

alumni-index.php имеет простой код приветствия

<?php
    if ( ! defined( 'ABSPATH' ) ) {
        exit;
    }
?>
<p>hello</p>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...