Пользовательский шаблон конечной точки Wordpress не загружается - PullRequest
0 голосов
/ 17 октября 2018

Я пытаюсь добавить пользовательский шаблон account-details.php к моей новой конечной точке в области моего аккаунта.

Сначала я добавил новую конечную точку с данными учетной записи:

add_action( 'init', 'co_add_my_account_endpoint' );

function co_add_my_account_endpoint() {
    add_rewrite_endpoint( 'account-details', EP_ROOT | EP_PAGES );
}

и здесь я добавляю пользовательский шаблон:

add_filter( 'wc_get_template', 'co_custom_endpoint', 10, 5 );
/**
* Add account details custom template
*
* @param $located
* @param $template_name
* @param $args
* @param $template_path
* @param $default_path
* @since 2.0
* @return string $located
*/
function co_custom_endpoint($located, $template_name, $args, $template_path, $default_path) {
    global $wp;

    if( 'myaccount/my-account.php' == $template_name ) {
        $located = wc_locate_template( 'myaccount/account-details.php', $template_path, JGTB_PATH . 'templates/' );
    }

    return $located;
}

В конце я вручную сбрасываю правила перезаписи, но мой шаблон все еще не загружается во внешнем интерфейсе.Кто-нибудь может увидеть, что я делаю не так?Я нашел другие сообщения о переполнении стека относительно этого, но если я повторяю точно так же, это тоже не работает для меня ... какие-нибудь идеи?

Любая помощь очень ценится!

1 Ответ

0 голосов
/ 18 октября 2018

используйте код ниже для вашей активной темы function.php.

function custom_account_details_page_endpoints() {
    add_rewrite_endpoint( 'account-details', EP_ROOT | EP_PAGES );
}

add_action( 'init', 'custom_account_details_page_endpoints' );

function custom_account_details_query_vars( $vars ) {
    $vars[] = 'account-details';

    return $vars;
}

add_filter( 'query_vars', 'custom_account_details_query_vars', 0 );

function custom_account_details_query_vars_flush_rewrite_rules() {
    flush_rewrite_rules();
}

add_action( 'wp_loaded', 'custom_account_details_query_vars_flush_rewrite_rules' );

Обязательно поместите файл account-details.php в папку myaccount.

function custom_account_details_endpoint_content() {
    include 'woocommerce/myaccount/account-details.php'; 
}

add_action( 'woocommerce_account_account-details_endpoint', 'custom_account_details_endpoint_content' );

Делаяпри этом обязательно обновите постоянные ссылки, перейдя в Dashboard -> settings -> permalinks and clik на save settings

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