Невозможно изменить разметку на странице моего аккаунта - PullRequest
0 голосов
/ 01 сентября 2018

В шаблоне woo commerce my-account.php содержится только такой код →

do_action( 'woocommerce_account_navigation' ); ?>

<div class="woocommerce-MyAccount-content">
    <?php
        /**
         * My Account content.
         * @since 2.6.0
         */
        do_action( 'woocommerce_account_content' );
    ?>
</div>

Я пошел дальше и немного больше искал об этом "woocommerce_account_content"

Я нашел этот

/**
     * My Account content output.
     */
    function woocommerce_account_content() {
        global $wp;

        if ( ! empty( $wp->query_vars ) ) {
            foreach ( $wp->query_vars as $key => $value ) {
                // Ignore pagename param.
                if ( 'pagename' === $key ) {
                    continue;
                }

                if ( has_action( 'woocommerce_account_' . $key . '_endpoint' ) ) {
                    do_action( 'woocommerce_account_' . $key . '_endpoint', $value );
                    return;
                }
            }
        }

        // No endpoint found? Default to dashboard.
        wc_get_template( 'myaccount/dashboard.php', array(
            'current_user' => get_user_by( 'id', get_current_user_id() ),
        ) );
    }

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

1 Ответ

0 голосов
/ 01 сентября 2018

Ниже приведено объяснение шаблона страницы WooCommerce My account и как переопределить html-разметку.

В моем примере я собираюсь использовать загрузчик Twitter.

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

Основная основная разметка состоит из двух элементов div, одного для навигации и одного для собственного содержимого.

Иерархия подстраниц моего аккаунта выглядит следующим образом:

My-account Main Page -> my-account.php : 
                  - dashboard.php 
                  - downloads.php 
                  - form-add-payment-method.php
                  - form-edit-account
                  - form-edit-address
                  - form-login.php
                  - form-lost-password.php
                  - form-reset-password.php
                  - list-password-confirmation.php
                  - my-address.php
                  - my-download.php
                  - navigation.php
                  - orders.php
                  - payment-methods.php
                  - view-order.php

Пример 1:

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

Чтобы достичь этого, вам нужно перейти на my-account.php и добавить требуемый div и классы следующим образом:

<div class="container-fluid">
    <div class="row">
        <div class="col-3">
        <?php do_action('woocommerce_account_navigation');?>
            </div>

            <div class="col-9">

            <?php
/**
 * My Account content.
 * @since 2.6.0
 */
do_action('woocommerce_account_content');
?>
        </div>
    </div>
</div>

Пример 2:

Допустим, вы хотите изменить навигацию, чтобы иметь возможность начальной загрузки nav-pills стиль:

Перейдите к navigation.php и добавьте необходимые классы следующим образом:

<ul class="nav flex-column nav-pills my_account_nav"  >
    <?php foreach (wc_get_account_menu_items() as $endpoint => $label):
     global $wp;
     $current = isset($wp->query_vars[$endpoint]);
      ?>
        <li class="nav-item <?php echo wc_get_account_menu_item_classes($endpoint); ?>">
        <a class="nav-link <?php echo ($current) ? 'active' : ''; ?>" href="<?php echo esc_url(wc_get_account_endpoint_url($endpoint)); ?>"> <?php echo esc_html($label); ?>
        </a>
        </li>
     <?php endforeach;?>
    </ul>

И если вам нужно изменить другой шаблон подстраниц, вам нужно перейти к нужному шаблону и написать там свою модификацию разметки.

Надеюсь, это достаточно ясно для вас.

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