Финты WordPress
777 subscribers
219 photos
12 videos
6 files
341 links
Авторский канал о WordPress. Новости, обзоры, код, решения и многое другое

Канал на YouTube https://www.youtube.com/@wpruse

Контакт админа @artikus13

6522ewm3kti85ia9
Download Telegram
📎 High-Performance Order Storage (HPOS) в WooCommerce

Высокопроизводительные таблицы заказов - функционал появился в WooCommerce 7.1 как экспериментальный. Вся работа с заказами переносится в отдельные таблицы, в том числе и вся мета.

Все находится еще на стадии тестирования. Но уже можно включить у себя и поюзать.

Есть несколько нюансов
1. Прирост производительности будет примерно в 1,5 раза, по утверждениям разработчиков, но это если у вас много заказов
2. Еще не встречал ни одного плагина, который бы был совместим с HPOS. А это должен быть любой плагин, который создает заказы. Формально при использовании API WooCommerce все должно работать, но практически, если совместимость не объявлена то функционал не работает и ругается постоянно.
3. При включении HPOS спросят удалять ли старые таблицы, так вот это у меня не получилось нормально запустить, то ли я криворукий то ли функционал не доделан. Но функционал такой есть.

В общем и целом, дождались переезда данных на собственные таблицы. Заказы по сути уже работают и при первом разворачивании можно уже спокойно включать этот функционал. Теперь ждем когда товары переедут...

❗️На почитать

1️⃣ Документация по HPOS
2️⃣ Часто задаваемые вопросы
3️⃣ Обратная совместимость и синхронизация
4️⃣ Объявление совместимости расширений

#новости #woocommerce
🔥6
Какая прелесть! Скоро в ACF будет возможность регистрировать произвольные типы и таксономии прямо из админки.

"We’re getting closer to the official release of one of our highly-requested features: the ability to register custom post types (CPTs) and taxonomies directly in ACF. "

Даже семинар проводить собираются https://wpengine.zoom.us/meeting/register/tJMrce2pqjMvHdTyZWKn-MxHYpO4BGyf0bqg

Интересно, как это все на фронте будет выводиться?

#новости #acf
👍121🔥1
Forwarded from Злой полицейский (Mikhail Kobzarev)
Как добавить свою переменную (плейсхолдер) в Yoast SEO для выбора её в шаблонах тайтлов и метатегов?

Регистрируем переменную %read_more%, которая выводит текст до тега <!--more-->:

add_action(
'wpseo_register_extra_replacements',
function () {
wpseo_register_var_replacement(
'%%read_more%%',
function () {
return wp_strip_all_tags( get_extended( get_post()->post_content )['main'] );
},
'advanced',
'Get content before read more tag'
);
}
);

#php #yoast #snippets
👍8
Плагин для изменения внешнего вида переключателей вариаций Variation Swatches for WooCommerce by CartFlows

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

Скачать Variation Swatches for WooCommerce by CartFlows

P.S. Я даже свой плагин Art WooCommerce Order One Click в версии 3.0.0 RC4 интегрировал с этим плагином

#woocommerce #product #plugins
👍121🔥1
Всем привет! Новая закупка. Наконец-то собираемся на WP Sheet Editor 🔥 https://wpsheeteditor.com/

WP Sheet Editor — это редактор электронных таблиц, встроенный в WordPress. Вы можете открыть электронную таблицу и просмотреть всю свою информацию, а также редактировать десятки, сотни или тысячи элементов в режиме реального времени, пользуясь всеми преимуществами редактора электронных таблиц.
Вы можете быстро редактировать тысячи строк одновременно. Автозаполнение ячеек, копирование значений из одного столбца в другой, сортировка по любому столбцу и многое другое. Вы можете выполнять математические формулы, удалять тысячи дубликатов, выполнять расширенные замены, выполнять обновления регулярных выражений и многое другое. Это очень просто, гибко и мощно. Вы можете выполнять поиск по любому полю, используя несколько условий поиска и любой оператор поиска. И много чего ещё, смотрите сайт 👀

Берём полный набор, безлимитка лайфтайм. Каждый плагин включает:

1) Множество интеграций с популярными плагинами: WooCommerce, Advanced Custom Fields, Paid Membership Pro, Metabox, JetEngine, Yoast, AIO SEO, RankMath, BBPress, BuddyPress, CMB2, IconicWP, Barn2, Pods, Redirection, Toolset, WPFusion и сотнями других.
2) Автоматическая поддержка всех полей, добавленных другими плагинами: т. е. в электронной таблице продуктов отображается вся информация о продукте, в электронной таблице пользователей отображаются все поля профиля и т.
3) Экспорт и импорт: вы можете редактировать все поля в Excel или Google Sheets.
4) WPML: наш редактор электронных таблиц имеет встроенную поддержку WPML, поэтому вы можете легко переводить продукты, сообщения, страницы, события, таксономии, медиафайлы с помощью нашей электронной таблицы. Поля будут синхронизированы в соответствии с настройками WPML, поэтому все будет вести себя так же, как при редактировании в обычном редакторе WordPress. Polylang: мы также поддерживаем PolyLang для переводов
5) Пользовательские столбцы: вы можете добавлять новые столбцы в каждую электронную таблицу для редактирования настраиваемых полей.
6) Мета: вы можете редактировать настраиваемые поля
7) Видимость столбцов: вы можете скрывать, отображать и сортировать столбцы.
8) Формулы: вы можете обновлять сотни строк одновременно с помощью формул.
9) Расширенные настраиваемые поля: метабоксы расширенных настраиваемых полей автоматически появляются в электронных таблицах.
10) Расширенный поиск: Вы можете найти информацию по любому полю, любому оператору и использовать сразу несколько параметров поиска.
11) Изменение размера столбцов: вы можете изменить размер столбцов
12) Переименование столбцов: вы можете переименовать столбец
13) Шаблоны и инструмент дублирования: вы можете создать множество копий одной строки. Т.е. создать 100 копий одного товара, создать 1000 копий купона и т.д.

и многое другое!
________________
Условия участия в закупке:
Берем тариф лайфтайм, безлимит All Access Plan 13 plugins for unlimited sites lifetime.
Самостоятельная активация по ключу и обновления из админки.

Взнос 3800 р. Для участия пишите в личку @Lutesa. Приоритет постоянным участникам. Спасибо.
🔥3👍1
Обновление WordPress 6.2

Обновилось ядро. Причем так, судя по описанию, разработчики хорошо поработали, не только с Гутенбергом и блоками возились, но и функционалом позанимались.

Подробно про обновление

Кратенько, что нового:
- обновился интерфейс Гутенберга;
- появились дополнительные вкладки;
- группировка паттернов по типам элементов;
- отдельная вкладка Медиа со встроенной библиотекой Openverse для загрузки бесплатных картинок;
- настройка глобалых стилей блока прямо в админке
для разрабов:
- экранирование имен таблиц и полей с помощью wpdb::prepare();
- функция get_page_by_title() устарела, вместо нее используте WP_Query;
- самая вкусняшка - новый аргумент search_columns для управления поиском по полям в поисковом запросе через WP_Query

Это далеко не все обновки, подробнее смотрите по ссылке.

P.S. На боевых сайтах не торопитесь обновляться, чтобы что-нибудь, где-нибудь не отвалилось)

#wordpress #update #core
👍20
🌐 С днем вебмастера всех!

У WPShop скидка 20% на все до 7 апреля!

Забрать скидку
🎉4
Forwarded from WordPress Digest (WordPress Digest Bot)
WP All Import: Атрибуты на русском языке в запросах XPath

XPath не позволяет делать запросы на кириллице вида {param[@name="Рулевая колонка"]}, но мы попробуем обойти это ограничение.

👉️ https://www.kobzarev.com/wordpress/wpai-cyrillic-attributes/

#PHP #wpdigest #WordPress #WPAI #XPath

Источник: @wordpress_digest
🔥5
Несколько видосов о нативной разработке блоков под Gutenberg и темы FSE

Первые два на английском, но по коду там все понятно что делается))

1️⃣ How to Create Custom eCommerce Theme with WordPress (FSE) and WooCommerce

2️⃣ WordPress Plugin Development: Gutenberg Blocks, React & More

3️⃣ Разработка Wordpress Gutenberg Blocks. Создание динамического блока с REST API.

Если знаете еще какие видео или статьи по нативной разработке блоков, то кидайте линки в коментах
🔥32👍1
Плагин пагинации и глоссариев от WPShop

Уже в релизе, можно купить, скачать и пользоваться

Поддерживает любые типы записей и любые таксономии. Работает через шорткод с кучей параметров.

Пример с городами

Купить плагин со скидкой 15%
👍5
Небольшой кейс.

Недавно тут с коллегой разбирали.

Задачка: Необходимо при создании поста произвольного типа, подчеркиваю, именно при создании поста, а не обновлении, отправлять данные из меты поста в CRM.
Произвольные поля создаются, сохраняют данные штатным функционалом ВП.

Вполне себе такая задачка, не особо эксклюзивная.

Решение: Все тривиально - вешаемся на хук save_post_{$post->post_type} собираем нужные данные, включая данные из меты и отправляем.

Что-то вроде такого

add_action( 'save_post_my_custom_post_type', function ( $post_id, $post ) {

/*
* тут код
*/
}, 100, 2 );

Тестируем: все работает, но с меты данные не собираются при создании поста, при обновлении все норм, при создании нет ничего. Фигня какая-то... И код верный, и хук верный, а нет данных.

Начинаем разбираться:
1. Проверяем ключ полей меты - это первое, что надо проверить, часто бывает так что в форме ключ поля меты одно, а в базу пишется с каким-нибудь префиксом.
Нет, в нашем случае, с ключом поля все четко
2. Код верный, ключи верные, в чем дело? Смотрим исходники, как в плагине который создает CPT и мету для них происходит сохранение значений меты.
Оказывается, что сохранение меты вешается на хук save_post с приоритетом 2.
Теперь смотрим исходники ядра, где вообще стоит хук save_post в функции wp_insert_post

Видим вот такое
do_action( "save_post_{$post->post_type}", $post_id, $post, $update );

/**
* Fires once a post has been saved.
*
* @since 1.5.0
*
* @param int $post_id Post ID.
* @param WP_Post $post Post object.
* @param bool $update Whether this is an existing post being updated.
*/
do_action( 'save_post', $post_id, $post, $update );

/**
* Fires once a post has been saved.
*
* @since 2.0.0
*
* @param int $post_id Post ID.
* @param WP_Post $post Post object.
* @param bool $update Whether this is an existing post being updated.
*/
do_action( 'wp_insert_post', $post_id, $post, $update );

if ( $fire_after_hooks ) {
wp_after_insert_post( $post, $update, $post_before );
}

return $post_id

Продолжение 👇
🔥2
Продолжение 👆

Получается, что хук save_post_{$post->post_type} при создании поста срабатывает раньше save_post. Именно поэтому, не можем получить мету.

Переписываем код

add_action( 'save_post', function ( $post_id, $post ) {

if ( $post->post_type !== 'my_custom_post_type' ) {
return;
}

if ( $post->post_status !== 'publish' ) {
return;
}
/*
* тут код
*/
}, 100, 2 );

Вот теперь работает как надо.

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

Так что, коллеги, изучайте исходники, благо ВП это позволяет делать без проблем)

Удачи!
👍8
Forwarded from WordPress Digest (Mikhail Kobzarev)
Вышла новая версия плагина Yandex Turbo Feed 1.6.0 от mihdan

Плагин создаёт RSS ленты для сервиса Яндекс.Турбо.

Что нового в версии 1.6.0

- Добавлена возможность удалить все турбо-страницы для определённой ленты
- Добавлена возможность массового редактирования настроек турбо-страниц
- Добавлена возможность быстрого редактирования настроек турбо-страницы
- Подняты минимальные подерживаемые версии PHP 7.4 и WordPress 5.0

🔥 https://wordpress.org/plugins/mihdan-yandex-turbo-feed/

#plugins #wordpress #yandexturbo
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥3💩1
⚠️ Повышение стоимости продуктов

У нас важная новость для всех текущих клиентов. На следующей неделе, 20 мая будет повышение стоимости лицензий.

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

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

Расширить лицензию можно только доплатив разницу в стоимости в Личном кабинете. Подробнее как расширять в документации.

Купить по старой цене
Новая стоимость на картинке ниже:
https://telegra.ph/file/98889aaf953f95647457d.png
💩4👍2
Forwarded from Злой полицейский (Mikhail Kobzarev)
Ребята из @wpkama, сложили все предложенные варианты воедино и на выходе получилось идеальное решение для полного запрета индексирования сайта во время его разработки, основываясь на окружении.

👉 https://wp-kama.ru/note/zapreshhaem-poiskovikam-indeksirovat-dev-versiyu-sajta
👍3
Фичи ядра

С версии ядра 6.2 в для поиска через WP_Query можно добавлять новый параметр search_columns через который указывать по каким колонкам в базе делать поиск.

Очень удобная штука, иногда надо отключить поиск по контенту или добавить что-то

Например так

$query = new WP_Query( [
'post_type' => 'post',
'post_status' => 'publish',
'no_found_rows' => true,
'cache_results' => false,
'posts_per_page' => 100,
's' => $term,
'search_columns' => [ 'post_title' ],

] );


Источник

#core
🔥5👍2
О как!

C 8.0 WooCommerce (релиз ожидается в августе) окончательно переводит заказы на отдельные таблицы и High-Performance Order Storage

Так что всем, кто разрабатывает решения под WooCommerce, имеет смысл проверить и допилить поддержку HPOS

Источник

#woocommerce #news

Подписаться
🔥6
Forwarded from Злой полицейский (Mikhail Kobzarev)
Ну наконец-то нормальные инструменты для прогнозирования деплоя, а не эта ваша бигдата!

Вашему вниманию предоставляется астрологический календарь деплоинга: deployhoroscope.ru

Полная таблица лучших и худших дней для деплоинга по вашему знаку зодиака теперь в ваших руках. Следуйте ей и прод больше никогда не упадёт.
👍6🤣3🔥1