Узкий неразрывный пробел https://symbl.cc/ru/202F/ особенно полезен когда нужно вставить перед знаком рубль, после цены.
Узкий неразрывный пробел https://symbl.cc/ru/202F/ особенно полезен когда нужно вставить перед знаком рубль, после цены.
Нужно было на сайте поменять title на свой, чтобы в нем брались данные с переменных в ссылке вида мой.сайт/page/?hash=suvorov-naprimer_1_1_1876_63d51d8a170de Для этого в сниппете пишем код: В настройках блока Yoast SEO вставляем свои переменные %%nameuser%% и %%dateuser%%
Иногда место на хостинге заканчивается, и тогда встает вопрос, как посмотреть кто виновник. Особенно это актуально, когда проектов много, и некоторые уже забыты, а место они занимают. Я поступаю так: захожу в консоль, или PuTTy или прям в панели управления хостингом ввожу команду du -hma --threshold=50M *| sort -nr копирую результат и закидываю его в […]
На одном из сайтов потребовалось менять номер телефона если переход идет с Яндекс Директа, и есть ссылка с UTM параметром. Попробовал несколько скриптов, но остановился на этом, так как он не критичен к тому если один из селекторов не находит. Поэтому можно прописать кучу селекторов, которые есть на сайте. И он будет работать. Вставляя его […]
Слайдер с превью через кастомные поля в Oxygen. Самый простой вариант для записей выводимых через шаблон.
Необходимо было сделать, чтобы модальное окно открывалось на смартфоне во всю ширину экрана. Поэтому пользователи чтобы закрыть его использовали кнопку НАЗАД, на своем смартфоне. Но это приводило к переходу на одну страницу назад. Шаблон сверстан в Oxygen, такой функции по умолчанию нет, поэтому прописал в сниппете следующий код: Этот код делает следующие действия, когда нажимаю […]
Необходимо было сделать чтобы переключалки слайдера были внизу и показывалось количество слайдов и номер слайда. Для этого добавляем вот такой код в сниппет, и всё работает.
Столкнулся с такой проблемой, что созданные атрибуты в Woocommerce не выводятся в карточке товаров которая сверстана в Oxygen. Вернее если применен стандартный вывод информации товара. Так же атрибуты не выводятся в модальном окне через плагин yith-woocommerce-quick-view. Решение нашел такое: С помощью хуков вывел атрибуты и в большой карточке товаров и в модальном окне. Так же […]
На одном проекте было необходимо по ссылке сохранять переменные в файл CSV. Реализовал это средствами PHP, через сниппеты в WordPress. Для этого завел сниппет, как шорткод. Сам шорткод [save_csv] вставил на страницу, на которую ссылается форма с перемеными передаваемые GET запросом. URL имеет вот такой вид: Код самого сниппета вот: Файл сохраняется по адресу /wp-content/uploads/base.csv […]
Чтобы разрешить хеш-ссылки (hash links) для открытия вкладок (tabs) в Oxygen нужно проделать следующее. Так как по умолчанию это не работает.
Чтобы на сайте сделать современный, красивый скроллбар (он же scrollbar) необходимо минимум кода CSS. Меняя цвета на своё усмотрение можно на своем сайте показывать красивый скролл. И не нужно его прятать и избегать, так как он вписывается в общий дизайн сайта. Код CSS для стилизации srollbar
На одном из проектов стояла задача разместить камеры наблюдения на сайте. Чтобы посетители могли наблюдать за объектом. Камеры были подключены и выданы ссылки с протоколом RTSP, с помощью VLC плеера можно было к ним подключится. Но чтобы их разместить на сайте — нужен сервер который поток RTSP преобразует в другой формат и который можно транслировать […]
Столкнулся с такой задачей. Для пункта в Max Mega Menu нужно было повесить своё событие через JQuery. Но оно не хотело работать. Причина оказалось в том, что maxmegamenu.js выводится в самом конце страницы. Поэтому чтобы запустить свое событие, его нужно инициализировать после запуска всех скриптов. Я поступил так: Данный код по клику открывает меню 3-его […]
Сегодня, в мае 2022 года я для себя открыл супер инструмент. Ранее которого мне не хватало. А именно как изменить цвет SVG иконке не вставляя её как код? А вот как. Вставляем картинку СВГ (чёрно-белую иконку) как обычную картинку через тег IMG SRC И присваиваем ей стиль через CSS: Получится из черного цвета, зеленый цвет. […]
Как-то на одном проекте возникла необходимость стилизовать тег <select> и его пункты. Как известно с помощью простого CSS он не стилизуется так, как бы этого хотелось. В сети нашел решение. Решение реализовано на CSS и jQuery, взял его на этом сайте. Здесь выложу уже рабочий код, который применил для своих нужд, для плагина Contact Form, […]
Открыл для себя плагин WP Grid Builder. Попробовал его в Oxygen применить для EasyPosts и Repeater element, результат огонь. Можно выводить список записей в Oxygen, через EasyPosts или Repeater, или Woocomerce и применять к нему Facet (фильтр). Для этого я использую такие настройки: А также установил плагин-дополнение WP Grid Builder - Oxygen для удобства, чтобы […]
Довольно часто необходимо скачать сразу много файлов по списку. Есть несколько способов, первоначально я это делал через Download master, но потом я попробовал это сделать через консольную утилиту Wget. Мне очень понравилось, так как нечего лишнего, и список может быть довольно большой. Для начала я подготавливаю список с URL. И сохраняю его в текстовый файл […]
Нашел плагин Advanced Product Fields (Product Addons) for WooCommerce но еще не пробовал. Думаю, это альтернатива подобному-платному плагину. Чтобы не забыть.
Для того, что бы вывести Re-usable part в любом месте на сайте через шорткод, нужно в сниппете, через Code Snippets добавить код: Для этого в нужно в Code Snippets выбрать: Запускать только на публичной части сайта Затем нужно в том месте, где необходимо вывести этот шаблон вставить шорткод: Где 627 это ID шаблона Oxygen. Только […]
Нужно было с помощью Repeater создать рандомный вывод статей через Oxygen. Это делается через advanced Но нужно было вывести всего 5 постов и убрать пагинацию в конце постов. Это делается следующим методом. Заходим в настройки и добавляем параметры. Параетры: post_per_page = 5 - выведет всего пять постов no_found_rows = true - убирает строку пагинации в […]
При установке плагина Плагин расчёта стоимости доставки СДЭК для WooCommerce от WooDev. И если стоит плагин редактирования полей оформления заказа, такой как Checkout Fields Manager for WooCommerce или от Saphali. То при оформлении заказа вылетает ошибка: «Невозможно создать заказ, так как город получатель не определён.» Для устранения этой ошибки, нужно добавить скрытое поле в платежный […]
Для добавления Google Tag Manager я использовал раньше на сайтах плагин Head, Footer and Post Injections. Так как нужно было разместить код сразу за тегом <body>. В WordPress версии 5.2 и выше появился хук для этого wp_body_open() . Но я использую билдер Oxygen и для него тоже есть решение, вот оно. Нужно в сниппетах прописать […]
Чтобы на странице оформления заказа убрать итоговую таблицу, это иногда надо, когда совмещается корзина и оформление заказа на одной странице. Нужно вставить следующий код.
На одном из проектов, необходимо было реализовать фотогалерею по разделам. Она была реализована с помощью кастомных записей и плагина Search & Filter. Но при переводе проекта на Oxygen, плагин Search & Filter отказался работать. Поэтому переделали фильтр на основе кастомных записей и библиотеки Isotope.
При оформлении заказа, часто нужно вставить свои поля, но по умолчанию они не попадают в шаблон письма. Есть решение, добавляем код, который добавит нужные нам поля в письмо.
Понадобилось на одном сайте, на WordPress сделать переключение городов и разный контент для каждого города. Реализовал просто, установил плагин WT GeoTargeting — https://wordpress.org/plugins/wt-geotargeting/ В настройках прописал только город по умолчанию, в шапке сайта поставил шорткод:
1 |
[wt_geotargeting get="city"] |
Который выводил город, на этот блок повесил событие по клику, которое выводило модальное окно с выбором городов, в нем […]
Для товаров без указанной цены выводим сообщение «Цена по запросу»
1 2 3 4 |
add_filter('woocommerce_empty_price_html', 'empty_price_message'); function empty_price_message() { return 'Цена по запросу'; } |
Для товаров с нулевой ценой выводим «Цена по запросу» вместо «Бесплатно»
1 2 3 4 5 |
function my_price_replace($price, $product) { if ($price == 0) return __( 'Цена по запросу' ); return $price; } add_filter( 'woocommerce_get_price_html', 'my_price_replace', 1, 2 ); |
И отключаем возможность покупки товара с нулевой ценой
1 2 3 4 5 6 |
function make_not_purchasable( $purchasable, $product ){ if( $product->get_price() == 0 ) $purchasable = false; return $purchasable; } add_filter( 'woocommerce_is_purchasable', 'make_not_purchasable', 10, |
Взято тут: https://conotes.ru/sajtostroj/wordpress/woocommerce/woocommerce-tsena-po-zaprosu.html
Столкнулся с такой проблемой. Woocommerce не сортирует товары у которого стоит статус "в наличии" или "нет в наличии". Он только сортирует по остаткам на складе. Поэтому вышел из положения так. На странице вывел все товары и те у кого статус "нет в наличии" скриптом перекинул вниз.
1 2 3 4 5 6 7 8 9 10 11 12 |
add_action( 'wp_footer', function () { ?> <?php if (is_woocommerce() && is_product_category()) : ?> <script> jQuery(document).ready(function() { jQuery('.outofstock').each(function(index, item) { var $this = jQuery(item); $this.appendTo($this.parent()); }); }); </script> <?php endif; ?> <?php } ); |
Если заменить на $this.prependTo($this.parent()); то все товары не […]
Записываем в functions.php следующий код
1 2 3 4 5 6 7 |
// Удаляем URL из формы отправки комментариев add_filter('comment_form_default_fields', 'sheens_unset_url_field'); function sheens_unset_url_field ( $fields ) { if ( isset($fields['url'] )) unset ( $fields['url'] ); return $fields; } |
Если не сработает, то, скорее всего, в теме есть файл шаблонов комментариев — comments.php. Тогда нужно в нем править. Закомментировать это поле с name="url".
Иногда нужно создать копию сайта, и когда размер папки с сайтом занимает большой объем, то возникают трудности с работой по ФТП через панель управления хостингом — не всё копируется. А работать через ФТП-клиент тоже не удобно, так как большой объем файлов. Поэтому гораздо проще и быстрее это сделать через SSH-консоль командой рекурсивного копирования всего содержимого […]
Восстановить базу данных из дампа можно несколькими способами, это и через панель хостинга, и через MyPhpAdmin. Но иногда импорт через MyPhpAdmin завершается ошибкой, особенно когда база большого объема. Поэтому гораздо проще и быстрее развернуть дамп базы через консоль SSH. Это можно сделать с помощью следующей команды: mysql -h имя_хоста_DB -u имя_пользователя_DB -pпароль_DB имя_DB < путь_к_файлу_дампа_базы […]
Ultimate Member — плагин для создания сообществ и пользовательских профилей в WordPress. https://ultimatemember.com/ и https://wordpress.org/plugins/ultimate-member/. Альтернатива: плагин WP-Recall https://wordpress.org/plugins/wp-recall/ (Ultimate Member проще и понятнее) Search & Filter — плагин для организации своего поиска на сайте и фильтра рубрик и кастомных записей. https://ru.wordpress.org/plugins/search-filter/ WPC Variations Radio Buttons for WooCommerce — плагин для удобного выбора вариативных товаров. https://ru.wordpress.org/plugins/wpc-variations-radio-buttons/
Чтобы изменить URL адрес WordPress, Вы должны прописать этот код в файл wp-config.php:
1 2 |
define('WP_HOME','http://example.com'); define('WP_SITEURL','http://example.com'); |
В файле functions.php прописываем следующий код:
1 2 3 4 5 6 7 8 9 |
// отключим Гутенберг if( 'disable_gutenberg' ){ add_filter( 'use_block_editor_for_post_type', '__return_false', 100 ); remove_action( 'wp_enqueue_scripts', 'wp_common_block_scripts_and_styles' ); add_action( 'admin_init', function(){ remove_action( 'admin_notices', [ 'WP_Privacy_Policy_Content', 'notice' ] ); add_action( 'edit_form_after_title', [ 'WP_Privacy_Policy_Content', 'notice' ] ); } ); } |
При работе с плагином Woocommerce на сайте часто требуется изменять вид отображения карточек товара, корзины и многое другое. Для этих целей можно править шаблоны, применять плагины и использовать хуки. В этом посте я буду собирать полезные хуки для вукомерц. Хуки (hooks)
На сайте часто нужно вывести информацию в шапке о режиме работы или контактах. Чтобы не нагромождать информацию, её можно разместить во всплавающем окне, которое выводится по клику на какой нибудь элемент. Простое всплывающее окошко можно сделать с помощью CSS и jQuery. Для это добавляем код html на сайт:
1 2 3 4 5 6 |
<div class="wrap"> <div class="modal"></div> <div class="header"> <a href="#">режим работы</a> </div> </div> |
Скрипт вставляем в шапку или футер: […]
Если с сайта нужно выгрузить фид для Яндекса или для другого сервиса. То есть два способа. Первый это всевозможные плагины, но они почти все работаю с Woocommerce. Второй вариант, написать выгрузку вручную. С такой проблемой я столкнулся на сайте застройщика, квартиры были выполнены кастомными записями. А нужно было несколько фидов в XML-формате для разных сервисов. […]
Для WordPress плагин Elementor выполняет большинство задач не прибегая к ковырянию в коде. Но всё же есть моменты, которые Elementor не выполняет без Хуков. Так виджет AE Post Blocks от плагина AnyWhere Elementor Pro выводит записи именно те которые прописываются в фильтре И если этот виджет применить для шаблона архива в Elementor, то при переходе по таксономиям (рубрики, […]
Чтобы блок с меню (или шапка сайта целиком) при прокрутке страницы вниз — скрывался, а потом прилипал сверху сайта, нужно присвоив блоку стиль и задать ему свойство position: fixed;.
1 2 3 4 |
.menu.fixed { position: fixed; top: 0px; } |
И прописать, код который при прокрутке на несколько пикселей вниз (в нашем случае на 135px) будет блоку со стилем .menu присваивать стиль .fixed.
1 2 3 4 5 6 7 8 9 10 11 |
<script type="text/javascript"> jQuery(window).scroll(function() { var the_top = jQuery(document).scrollTop(); if (the_top > 135) { jQuery('.menu').addClass('fixed'); } else { jQuery('.menu').removeClass('fixed'); } }); </script> |
Так […]
Если необходимо на сайте в div подгрузить какой нибудь html контент, это можно сделать следующим образом. Положить html файл на сервер, через FTP-клиент. И прописать скрипт.
1 2 3 4 5 6 7 8 9 10 11 12 13 |
$(document).ready(function(){ $.get('/readme.html',function(data){ //указываешь урл от корня папки $('#content_file_html').html(data); //тут после # пишешь ID слоя куда подгрузить текст }); }); Для WordPress если вставлять код через админку, то этот код: jQuery(document).ready(function(){ jQuery.get('/readme.html',function(data){ //указываешь урл от корня папки jQuery('#content_file_html').html(data); //тут после # пишешь ID слоя куда подгрузить текст }); }); |
Когда нужно сделать простой слайдер фотографий или слайдер текста. То можно применить bxslider. При вставке стандартной галереи в Wordpres на страницу, из этих картинок можно сделать слайдер, если подключить bxslider. Подключается он очень просто. Достаточно прописать код в шапке или футере сайта.
Часто требуется выводить блоки, чтобы они были одинаковой высоты и сами подстраивались под содержимое. Для этого вставляем следующий код Код HTML
1 2 3 4 5 6 |
<ul class="products"> <li class="box height_fix">Содержимое блока 1</li> <li class="box height_fix">Содержимое блока 2</li> <li class="box height_fix">Содержимое блока 3</li> <li class="box height_fix">Содержимое блока 4</li> </ul> |
Код скрипта
1 2 3 4 5 6 7 8 9 10 11 |
<script type="text/javascript"> jQuery(function($){ var max_col_height = 80; // максимальная высота, первоначально 80 $('ul.products li.box.height_fix').each(function(){ // цикл "для каждой из колонок" if ($(this).height() > max_col_height) { // если высота колонки больше значения максимальной высоты, max_col_height = $(this).height(); // то она сама становится новой максимальной высотой } }); $('ul.products li.box.height_fix').height(max_col_height); // устанавливаем высоту каждой колонки равной значению максимальной высоты }); </script> |
Тэги могут быть разными, вместо списков li могут, могут быть div.