У woocommerce есть встроенная система сообщений: при добавлении товара в корзину, при удалении товара из корзины, при различных ошибках. Но они появляются перед основным контентом, нарушая исходную верстку. Сделаем их всплывающими и исчезающими.
Скрипт исчезновения
Так как сообщения могут возникать при различных обстоятельствах, скрипт будет в процессе дополнятся
$(document).ready(function() { setTimeout(function(){ $('.woocommerce-message, .woocommerce-error').addClass("hidden"); }, 4000); setTimeout(function(){ $('.woocommerce-message, .woocommerce-error').hide(); }, 5000); $('.button').click(function() { setTimeout(function(){ $('.woocommerce-message, .woocommerce-error').addClass("hidden"); }, 4000); setTimeout(function(){ $('.woocommerce-message, .woocommerce-error').hide(); }, 5000); }); });
Таймеры нужны, чтобы сообщение некоторое время «висело», потом становилось прозрачным, а после исчезало. Исчезновение происходит за счет добавления класса .hidden {opacity: 0;} и после этого hide.
Стили сообщений
Все родные стили woocommerce я отключаю!
/* Сообщения woocommerce */ .woocommerce-info, .woocommerce-message, .woocommerce-error { position: fixed; z-index: 999; background-color: rgba(3,169,244,0.9); padding: 15px; top: 5%; right: 3%; width: 300px; text-align: center; margin-bottom: 15px; display: table; border-radius: 3px; border: 2px solid #fff; box-shadow: 1px 1px 6px rgba(0, 0, 0, 0.2); -o-transition: opacity 0.9s; transition: opacity 0.9s ease; -webkit-transition: opacity 0.9s ease 0s; } .woocommerce-message a, .woocommerce-error a { color: #000; position: absolute; width: 200px; left: 50%; margin-left: -100px; bottom: -100%; padding: 7px 15px; border: 1px solid #fff; background-color: #ffeb3b; } .woocommerce-message a:hover, .woocommerce-error a:hover {background-color: #499800; color: #fff !important;} .woocommerce-info a {color: #fff !important;} .woocommerce-message {background-color: rgba(148, 225, 0, 0.9);} .woocommerce-error {background-color: rgba(244, 67, 54, 0.9);} .woocommerce-error li {list-style: none;} .woocommerce-error:before, .woocommerce-info:before, .woocommerce-message:before { font-family: WooCommerce; content: "\e028"; position: relative; display: table-cell; vertical-align: middle; width: 25px; color: #fff; } .woocommerce-error:before {content: "\e016";}[site-socialshare]
есть ли пример работы данного скрипта ?
Данный функционал еще в разработке, это предварительные варианты (эксперименты) кода и стилей. Требуется доработка! Посмотреть работу в виде примера можно здесь
Подскажите куда поместить код скрипта?
Да в принципе куда угодно: в подвал, в подключаемый файл скрипта.
Но я пока отказался от данного решения (Исчезающие сообщения woocommerce) в целом — надо его дорабатывать.