Как я могу указать ход оформления заказа на странице экспресс-проверки Paypal?

16

Хорошо, я разбил это на шаги, и вы можете увидеть, где я застрял:

Шаг 1 - изменить номер столбца

Страница экспресс-проверки PayPal (наша страница, на которую PayPal отправляет покупателя для проверки и, наконец, отправки своего заказа) - это страница с одним столбцом. Конечно, мы можем изменить количество столбцов, переопределив макет в XML-файле пользовательского модуля:

<paypal_express_review>
   <!-- maybe other references here -->
   <reference name="root">
      <action method="setTemplate"><template>page/2columns-right.phtml</template></action>
   </reference>
   <!-- maybe other references here -->
</paypal_express_review>

Шаг 2 - удалить код, ограничивающий содержимое правой колонки

Теперь будет присутствовать правая колонка, но она будет пустой - это из-за следующей строки, app/design/frontend/base/default/layout/paypal.xmlкоторую мы удаляем:

<remove name="right"/>

Шаг 3 - добавить контент в XML-файл

Очистка кеша и обновление страницы покажет содержимое правой колонки по умолчанию. Поэтому, если оттуда мы добавим следующие строки (заимствованные из app/design/frontend/base/default/layout/checkout.xml) в XML-файл пользовательского модуля, мы снова получим пробел.

<reference name="right">
    <action method="unsetChildren"></action>
    <block type="page/html_wrapper" name="checkout.progress.wrapper" translate="label">
        <label>Checkout Progress Wrapper</label>
        <action method="setElementId"><value>checkout-progress-wrapper</value></action>
        <block type="checkout/onepage_progress" name="checkout.progress" before="-" template="checkout/onepage/progress.phtml"/>
    </block>
</reference>

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

<reference name="right">
    <action method="unsetChildren"></action>
    <block type="page/html" name="custom" template="custom_module/custom.phtml" />
</reference>

Немного неуверен в block typeэтом. Также я знаю, что есть следующий блок, app/design/frontend/base/default/layout/checkout.xmlкоторый не используется:

<block type="checkout/onepage_progress" name="root" output="toHtml" template="checkout/onepage/progress.phtml">
    <block type="checkout/onepage_payment_info" name="payment_info">
        <action method="setInfoTemplate"><method></method><template></template></action>
    </block>
</block>

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

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

иисус g_force харрис
источник

Ответы:

1

Да, это возможно.

введите описание изображения здесь

Это то, что вам нужно для этого.

В вашем случае module.xmlудалите все ссылки <remove name="right" />из paypal_express_reviewдескриптора и обновите шаблон так же, как вы делали это на шаге 1 и 2.

Далее вы можете добавить блок-упаковку checkout.progress в rightссылку. Этот блок можно найти вapp/design/frontend/base/default/layout/checkout.xml

<reference name="right">
            <action method="unsetChildren"></action>
            <block type="page/html_wrapper" name="checkout.progress.wrapper" translate="label">
                <label>Checkout Progress Wrapper</label>
                <action method="setElementId"><value>checkout-progress-wrapper</value></action>
                <block type="checkout/onepage_progress" name="checkout.progress" before="-" template="checkout/onepage/progress.phtml">
                    <block type="checkout/onepage_progress" name="billing.progress" template="checkout/onepage/progress/billing.phtml"></block>
                    <block type="checkout/onepage_progress" name="shipping.progress" template="checkout/onepage/progress/shipping.phtml"></block>
                    <block type="checkout/onepage_progress" name="shippingmethod.progress" template="checkout/onepage/progress/shipping_method.phtml"></block>
                    <block type="checkout/onepage_progress" name="payment.progress" template="checkout/onepage/progress/payment.phtml"></block>
                </block>
            </block>
        </reference>

Как только вы попали на paypal/express/review/страницу, вы должны увидеть, что есть пустой столбец? Почему вы не блокируете показ? Если вы осмотрите страницу в правом столбце, вы должны увидеть opactity: 0;. Обновите ваши стили, opacity:1;и блок должен быть там.

введите описание изображения здесь

Единственная проблема, с которой вы можете столкнуться - заставить работать ссылки изменений, поскольку они ожидают, что контейнер уже будет там. Если нет, вы можете посмотреть на создание собственного шаблона для прогресса и удаления ссылок. Надеюсь, это поможет: D

rob3000
источник