• DONATE to NULLED!
    Вы можете помочь Форуму и команде, поддержать финансово.
    starwanderer - модератор этого раздела будет Вам благодарен!

Помощь Поменять местами блоки в Checkout Page (страница оформления заказа)

lawko

Постоялец
Регистрация
16 Янв 2010
Сообщения
157
Реакции
120
Тема WoodMart.
В силу осообенностей оформления заказа под разных перевозчиков, нужно поменять местами один из блоков, указанных на скриншоте. Или блок методов доставки переместить куда показано стрелкой, или кнопку оформления заказа. Плагинов перепробовал кучу, пробовал создавать макеты страницы - безуспешно. Все макеты дают блок checkout в "неделимом" виде. Единственное, что могу сделать, это с помощью создания нового макета поменять местами две колонки, но тогда нужно переносить кнопку подтверждения заказа.
Может есть какие-то штатные или нештатные настройки вукоммерса (разработчик WoodMart клянётся, что тема только подхватывает функционал вукоммерса)? Если нет, то какие файлы в нём отвечают за этот макет и в какую сторону копнуть? Ну, или может какой-то волшебный плагин есть, до которого я ещё не добрался...

Скрін.png
 
Это все делается через хуки в functions.php (или в другом удобном месте)
На каждой странице woocommerce расположены хуки, к которым и добавляются элементы.
Чтобы переместить элемент смотришь карту хуков, например здесь - Для просмотра ссылки Войди или Зарегистрируйся или Для просмотра ссылки Войди или Зарегистрируйся
Удаляешь элемент который тебе нужно перенести из старого хука remove_action()
И добавляешь к новому хуку - add_action()
Как-то так
 
Спасибо, что направил в нужное русло. Но, поскольку там ещё совсем немножко нужно программить, то сам я не разобрался :)
Очень удобно этими хуками добавлять свой контент, а вот некоторые элементы как-то не сильно с наскока получается. Например, блок вариантов доставки так и не вычислил, какой функцией вызывается. С комментами, авторизацией, кодом купона всё легко и просто вроде.
В общем, вопрос решил с помощью гугла. Кнопку перенёс. Если кому нужно, вот работающий код, который нужно вставить в functions.php:
PHP:
add_action( 'woocommerce_after_order_notes', 'newplacefor_orderbutton', 5 );
function newplacefor_orderbutton() {
    $order_button_text = apply_filters( 'woocommerce_order_button_text', __( "Place order", "woocommerce" ) );
    echo apply_filters( 'woocommerce_order_button_html', '<br><button type="submit" class="button wc-backward btn btn-secondary" name="woocommerce_checkout_place_order" id="place_order" value="' . esc_attr( $order_button_text ) . '" data-value="' . esc_attr( $order_button_text ) . '">' . esc_html( $order_button_text ) . '</button></br>' );
}
 
Очень удобно этими хуками добавлять свой контент, а вот некоторые элементы как-то не сильно с наскока получается. Например, блок вариантов доставки так и не вычислил, какой функцией вызывается.

Функция - wc_cart_totals_shipping_html(), но ее через хук не отключить. Там чуть сложнее, нужно скопировать из плагина файл
\woocommerce\templates\checkout\review-order.php в папку с темой [твоя тема]\woocommerce\templates\checkout\review-order.php
и там перенести куда нужно.

Вот здесь вроде все подробно описано - Для просмотра ссылки Войди или Зарегистрируйся
 
Функция - wc_cart_totals_shipping_html(), но ее через хук не отключить. Там чуть сложнее, нужно скопировать из плагина файл
\woocommerce\templates\checkout\review-order.php в папку с темой [твоя тема]\woocommerce\templates\checkout\review-order.php
и там перенести куда нужно.

Вот здесь вроде все подробно описано - Для просмотра ссылки Войди или Зарегистрируйся
Да, я "мимо неё" проходил, она между woocommerce_review_order_before_shipping и woocommerce_review_order_after_shipping расположена))
Но с наскоку, как и говорил, ничего не вышло, поэтому сфокусировался на кнопке. Для моих целей вышло ещё более эстетично и практично.

Посмотрел твою ссылку, понял, что совершил ещё одну ошибку - искал решение в гугле не на английском языке)

Да, и review-order.php нужно вставлять не совсем туда, куда ты указал. Я уже другого понапхал туда)) И в теме этот путь выглядит вот так:
[твоя тема]\woocommerce\checkout\review-order.php

Ещё раз спасибо за информацию, мне она существенно расширила кругозор в отношении вукомерса))
 
Назад
Сверху