Злой полицейский
1.61K subscribers
1.42K photos
98 videos
7 files
3.28K links
Тимлид/разработчик/SOER. Делюсь мыслями про веб, программирование, инструменты, #WordPress, Joomla, Laravel, MoonShine, мотивацию, психологию, фильмы, сериалы.

Сайт - https://kobzarev.com

Администратор - @mihdan.
Download Telegram
Forwarded from Финты WordPress (Artem)
🛒 WooCommerce. Замена HTML полей на странице оформления заказа

Тут в одном чате вопрос встретил, на мой взгляд довольно частый вопрос, при натяжке верстки на WP, а тем более на WooCommerce: Как изменить HTML полей на странице оформления заказа?

Ответ кроется в самом ответе. Никак не надо менять. Проблема замены происходит из-за верстальщиков. Так как сначала делают верстку, а потом пытаются натянуть сову на глобус. В идеале надо делать стили по тому хтмл что дает WooCommerce, вот тогда никаких проблем. Все прекрасно получается.

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

Хорошая новость - функция является pluggable функцией, то есть её можно просто подменить как есть.
Плохая новость, функция повсеместно используется, соответственно можно наменять так, что где-то, что-то сломается.

Феншуйный вариант - использовать одноименный фильтр woocommerce_form_field.

Решение может быть таким (использовано в реальном кейсе, так что код рабочий)

Как добавлять код:
- в файл functions.php темы/дочерней темы
- через пустой плагин
- специальным плагином, например Code Snippets

#snippet #woocommerce
Forwarded from Финты WordPress (Artem)
📎 High-Performance Order Storage (HPOS) в WooCommerce

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

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

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

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

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

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

#новости #woocommerce
Forwarded from Финты WordPress (Artem)
О как!

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

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

Источник

#woocommerce #news

Подписаться
🔥2
Forwarded from Финты WordPress (Artem)
🛒 WooCommerce. Фигасе че нашел!

1. Блок-схема создания заказа, с хуками, где какой срабатывает.
2. Файлы страницы Оформления заказа.

Три года прошло, с создания картинок, а до сих пор актуально.

Ну если блоки не учитывать)))

ПЫСЫ. У меня еще видосы есть, на эту тему, старые, но актуальные

#woocommerce #checkout
👍62🔥2
Как удалить все атрибуты товаров в WooCommerce через WP-CLI?

wp wc product_attribute list --context='edit'  --field=id --user=bigdick --skip-plugins=redis-cache | xargs -n1 -I % sh -c 'echo "Removing attribute %"; wp wc product_attribute delete % --user=bigdick --skip-plugins=redis-cache'


👉 https://github.com/woocommerce/woocommerce/wiki/WC-CLI-Commands#wc-product_attribute-delete-id

#wordpress #woocommerce #wpcli #attributes #cli

Источник: @mihdan_dev
🔥4👍3
Как удалить все посты определённого типа записей в WordPress через WP-CLI

wp post list --field=ID --post_type=product --posts_per_page=10000 | xargs wp post delete --force


#wordpress #wpcli #attributes #cli #woocommerce

Источник: @mihdan_dev
👍3🔥2
Как скрыть товары с нулевой ценой из каталога WooCommerce

/**
* Скрывает товары с нулевой ценой.
*
* @author Mikhail Kobzarev <[email protected]>
*/
add_action(
'pre_get_posts',
static function ( WP_Query $query ): void {
if ( is_admin() || ! $query->is_main_query() ) {
return;
}

if ( is_shop() || is_product_category() || is_product_tag() ) {
$query->set(
'meta_query',
array(
array(
'key' => '_regular_price',
'value' => 0,
'compare' => '>',
'type' => 'NUMERIC',
)
)
);

}
},
25
);


#wordpress #php #woocommerce #development #hooks

Источник: @mihdan_dev
👍4
Как добавить логотипы брендов в фильтрах плагина Filter Everything Pro

add_filter(
'wpc_filters_checkbox_term_html',
function ( string $html, string $link_attributes, WP_Term $term, $filter ): string {
if ( $term->taxonomy === 'pa_brand' ) {
$img = '<img src="' . plugin_dir_url( __FILE__ ) . '/img/' . $term->slug . '.svg" width="15" height="15" />';
$html = '<a ' . $link_attributes . '>' . $img . ' ' . $term->name . '</a>';
}

return $html;
},
10,
4
);


👉 https://filtereverything.pro/resources/hooks/

#wordpress #woocommerce #plugins #hooks #filters #FilterEverythingPro

Источник: @mihdan_dev
🔥3👍1
Очистка корзины WooCommerce

Быстрый способ полностью удалить все товары из корзины WooCommerce при помощи WP-CLI:

wp post delete $(wp post list --post_type='product' --post_status='trash' --format=ids) --force


Актуально, когда у вас тысячи товаров и при удалении через админку вы ловите 500-ю ошибку.

#wordpress #woo #woocommerce #wpcli #cli

🕹 Злой полицейский — Подписаться
🔥5