Добавление блока отзывов в слайдер


Подскажите, как сделать блок отзывов на странице товара отдельным слайдером?

Я долго искал несколько примеров, но пока не нашел, надеюсь, вы сможете помочь

Author: Faisal Sheikh, 2019-09-26

1 answers

В вашей пользовательской теме добавьте:

app\design\frontend\CustomVendor\theme-custom\Magento_Catalog\layout\catalog_product_view.xml

В этом файле мы собираемся указать Magento переместить блок отзывов следующим образом:

<?xml version="1.0"?>
<page layout="1column" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="urn:magento:framework:View/Layout/etc/page_configuration.xsd">
    <body>
        <move element="reviews.tab" destination="content" after="product.info.details" />
    </body>
</page>

Для Magento 2.2.x только эта команда создаст "ошибку", при которой отзывы о продукте не будут отображаться, но форма будет отображаться. Чтобы устранить эту проблему, мы скопируем следующий файл:

vendor\magento\module-review\view\frontend\web\js\process-review.js

И поместите его в свою пользовательскую тему по следующему пути:

app\design\frontend\CustomVendor\theme-custom\Magento_Review\web\js\process-review.js

В этом файле перейдите к строке и прокомментируйте те, которые указаны в 40-43 и 44-49, это должно выглядит следующим образом:

return function (config) {
    // var reviewTab = $(config.reviewsTabSelector),
    //     requiredReviewTabRole = 'tab';

    // if (reviewTab.attr('role') === requiredReviewTabRole && reviewTab.hasClass('active')) {
        processReviews(config.productReviewUrl);
    // } else {
    //     reviewTab.one('beforeOpen', function () {
    //         processReviews(config.productReviewUrl);
    //     });
    // }

    $(function () {
        $('.product-info-main .reviews-actions a').click(function (event) {
            var acnchor;

            event.preventDefault();
            acnchor = $(this).attr('href').replace(/^.*?(#|$)/, '');
            $('.product.data.items [data-role="content"]').each(function (index) { //eslint-disable-line
                if (this.id == 'reviews') { //eslint-disable-line eqeqeq
                    $('.product.data.items').tabs('activate', index);
                    $('html, body').animate({
                        scrollTop: $('#' + acnchor).offset().top - 50
                    }, 300);
                }
            });
        });
    });
};

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

Выполните команды Магнето по умолчанию:

php bin/magento s:up && php bin/magento s:d:c && php bin/magento s:s:d -f && php bin/magento c:c && php bin/magento c:f

Надеюсь, это поможет вам!!

 4
Author: Oscprofessionals, 2019-09-26 08:18:52