Сворачивание сводки заказа/таблицы примечаний на странице оформления заказа Woocommerce

Я пытаюсь воспроизвести функцию «сводка заказа» на Shopify, где все детали заказа скрыты внутри кнопки-переключателя/эффекта аккордеона, чтобы сделать процесс оформления заказа быстрее и проще.

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

Я пытался использовать различные плагины, такие как Collapse-O-Matic и CSS, но не смог добиться желаемого эффекта на моей странице оформления заказа WooCommerce.

Я ищу решение для создания кнопки переключения или эффекта аккордеона для сводной таблицы заказа на странице оформления заказа в WooCommerce.

Любая помощь или руководство будет принята с благодарностью!

Вложения:

Как это должно выглядеть

Shopify сводка заказа внутри оформления заказа

введите сюда описание изображения, как оно выглядит сейчас

Предоставьте достаточно кода, чтобы другие могли лучше понять или воспроизвести проблему.

Community 23.01.2023 06:21

что ты уже испробовал? Где ты застрял? Можете ли вы поделиться своими попытками, чтобы другие могли лучше понять проблему?

Nico Haase 23.01.2023 10:50
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
В настоящее время производительность загрузки веб-сайта имеет решающее значение не только для удобства пользователей, но и для ранжирования в...
Безумие обратных вызовов в javascript [JS]
Безумие обратных вызовов в javascript [JS]
Здравствуйте! Юный падаван 🚀. Присоединяйся ко мне, чтобы разобраться в одной из самых запутанных концепций, когда вы начинаете изучать мир...
Система управления парковками с использованием HTML, CSS и JavaScript
Система управления парковками с использованием HTML, CSS и JavaScript
Веб-сайт по управлению парковками был создан с использованием HTML, CSS и JavaScript. Это простой сайт, ничего вычурного. Основная цель -...
JavaScript Вопросы с множественным выбором и ответы
JavaScript Вопросы с множественным выбором и ответы
Если вы ищете платформу, которая предоставляет вам бесплатный тест JavaScript MCQ (Multiple Choice Questions With Answers) для оценки ваших знаний,...
0
2
55
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Если вам нужен полный контроль, вам следует создать собственный шаблон для шаблона form-checkout.php (woocommerce/templates/checkout/form-checkout.php).

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

Единственное, что еще делает фрагмент, — это добавляет отдельную строку со значком корзины и кнопками-переключателями, немного CSS и немного jQuery, чтобы скрыть и показать соответствующие элементы.

add_action( 'woocommerce_checkout_order_review', function() {
    ?>
    <style>
        #order_review_heading {
            display: none; 
        }
        #order_review_toggle {
            display: inline-block;
            padding: 1em;
            font-size: 18px;
            line-height: 1;
            width: 100%;
        }
        #order_review_toggle .dashicons {
            font-size: 18px;
        }
        #order_review_toggle .dashicons-cart {
            margin-right: 0.5em;
        }
        #order_review_toggle .dashicons-arrow-up-alt2,
        #order_review_toggle .dashicons-arrow-down-alt2 {
            float: right;
            cursor: pointer;
        }
        #order_review_toggle .dashicons-arrow-up-alt2 {
            display: none;
        }
        .woocommerce-checkout-review-order-table tr:not(.order-total) {
            display: none;
        }
    </style>

    <script>
        jQuery( function( $ ) {
            $('#order_review_toggle .dashicons-arrow-down-alt2').on( 'click', function() {
                let $orderReviewTable = $(this).closest('#order_review').find( '.woocommerce-checkout-review-order-table' );
                $orderReviewTable.find('tr').show();
                $(this).siblings('.dashicons-arrow-up-alt2').show();
                $(this).hide();
            });
            $('#order_review_toggle .dashicons-arrow-up-alt2').on( 'click', function() {
                let $orderReviewTable = $(this).closest('#order_review').find( '.woocommerce-checkout-review-order-table' );
                $orderReviewTable.find('tr').not('.order-total').hide();
                $(this).siblings('.dashicons-arrow-down-alt2').show();
                $(this).hide();
            });
        });
    </script>
    <?php
    printf( '<div id = "order_review_toggle"><span class = "dashicons dashicons-cart"></span><span>%s</span><span class = "dashicons dashicons-arrow-up-alt2"></span><span class = "dashicons dashicons-arrow-down-alt2"></span></div>', __( 'Your order', 'woocommerce' ) );
}, 1 );

add_action( 'wp_enqueue_scripts', function() {
    if ( is_checkout() ) {
        wp_enqueue_style('dashicons');
    }
} );

Этот фрагмент кода следует добавить в functions.php вашей дочерней темы (или через плагин, например Code Snippets).

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

Код ошибки Laravel Sanctum Angular Authentication 419
Как добавить условные операторы if..else в построитель запросов к базе данных Laravel
Много проблем с поставщиком после создания проекта laravel
Как сохранить контактную информацию с веб-сайта на Android или iPhone с помощью кнопки HTML с интеграцией JS или PHP?
Сортировка и группировка двумерного массива по двум столбцам для формирования иерархического трехмерного массива, а затем отображение данных в виде списков HTML
Ни один файл PHP не распознается как файл PHP в PhpStorm
Почему я не могу получить доступ к защищенному методу из частного метода, если защищенные наследуются подклассами?
Удалить необходимое из поля в дочерней модели yii2
Неопределенный ключ массива только для первого ключа в массиве, любой другой ключ работает нормально. Кодигнитер 4
Как получить токен доступа с помощью токена обновления в DocuSign и PHP?