Невозможно изменить разметку на странице моего аккаунта
Шаблон 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 ответ
Вот объяснение о шаблоне страницы моей учетной записи WooCommerce и о том, как переопределить 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>
И если вам нужно изменить другой шаблон подстраниц, вам нужно перейти к конкретному шаблону, который вы хотите, и написать свою модификацию разметки там.
Я надеюсь, что это достаточно ясно для вас.