Глобальная переменная Front Matter на всех страницах в теме BigCommerce

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

Я использую трафарет /Cornerstone. Я пытался объявить объект Front Matter на page.html с помощью

---
customer: 
    orders: 
        limit 5
--- 

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

Меню-bar.html

(Фрагмент)

{{#if customer}}
    <li class="nav-page"><a href="/account.php">My Account</a>
        <div class="sub-menu">
            <div class="nav-col">
                <h4>Hello, {{customer.name}}</h4>
            </div>
            <div class="nav-col">
                <!-- orders -->
                <h5>Orders</h5>
                <ul class="account-order-list">
                    {{#if customer.orders}} {{#each customer.orders}}
                    <li><a href="{{details_url}}"><i class="fa fa-tag" aria-hidden="true"></i> Order #{{id}}</a>
                        <div class="order-details-list">
                            <a class="details" href="{{details_url}}">
                                <span><strong>Date:</strong> {{date}} </span>
                                <span><strong>Amount:</strong> {{total.formatted}} </span>
                                <span><strong>Status:</strong> {{status}}</a></span>

                        </div>
                    </li>
                    {{/each}} {{else}}
                    <span>You have no orders.</span> {{/if}}
                </ul>
            </div>
            <div class="nav-col">
                <h5></h5>
            </div>
        </div>
    </li>
    {{else}}
    <li class="nav-page"><a href="/login.php">Sign In</a></li>
    {{/if}}
</ul>

1 ответ

С точки зрения jekyll/liquid, если вы хотите глобальную переменную, вы можете объявить ее:

1 - в _config.yml

customer: 
    orders: 
        limit: 5 # and not "limit 5"

и используйте это так: {{ site.customer.orders.limit }}

2 - или в общем (для всех страниц) макете, например _layouts/default.html

Он будет доступен на любой странице с: {{ page.customer.orders.limit }}

Другие вопросы по тегам