Добавление блока отзывов в слайдер
Подскажите, как сделать блок отзывов на странице товара отдельным слайдером?
Я долго искал несколько примеров, но пока не нашел, надеюсь, вы сможете помочь
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
Надеюсь, это поможет вам!!