Forwarded from Финты WordPress (Artem)
🛒 WooCommerce. Замена HTML полей на странице оформления заказа
Тут в одном чате вопрос встретил, на мой взгляд довольно частый вопрос, при натяжке верстки на WP, а тем более на WooCommerce: Как изменить HTML полей на странице оформления заказа?
Ответ кроется в самом ответе. Никак не надо менять. Проблема замены происходит из-за верстальщиков. Так как сначала делают верстку, а потом пытаются натянуть сову на глобус. В идеале надо делать стили по тому хтмл что дает WooCommerce, вот тогда никаких проблем. Все прекрасно получается.
Но, есть моменты когда замена или подмена хтмл действительно нужна. Например, когда дизайнеры придумывают элементы в полях, которых нет, тултипы и тд. Вот тут конечно придется конкретно менять. И простой подменой файлов не обойтись, так как поля формы сидят не в файлах, а в функции
Плохая новость, функция повсеместно используется, соответственно можно наменять так, что где-то, что-то сломается.
Феншуйный вариант - использовать одноименный фильтр
Решение может быть таким (использовано в реальном кейсе, так что код рабочий)
Как добавлять код:
- в файл functions.php темы/дочерней темы
- через пустой плагин
- специальным плагином, например Code Snippets
#snippet #woocommerce
Тут в одном чате вопрос встретил, на мой взгляд довольно частый вопрос, при натяжке верстки на 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
Высокопроизводительные таблицы заказов - функционал появился в WooCommerce 7.1 как экспериментальный. Вся работа с заказами переносится в отдельные таблицы, в том числе и вся мета.
Все находится еще на стадии тестирования. Но уже можно включить у себя и поюзать.
Есть несколько нюансов
1. Прирост производительности будет примерно в 1,5 раза, по утверждениям разработчиков, но это если у вас много заказов
2. Еще не встречал ни одного плагина, который бы был совместим с HPOS. А это должен быть любой плагин, который создает заказы. Формально при использовании API WooCommerce все должно работать, но практически, если совместимость не объявлена то функционал не работает и ругается постоянно.
3. При включении HPOS спросят удалять ли старые таблицы, так вот это у меня не получилось нормально запустить, то ли я криворукий то ли функционал не доделан. Но функционал такой есть.
В общем и целом, дождались переезда данных на собственные таблицы. Заказы по сути уже работают и при первом разворачивании можно уже спокойно включать этот функционал. Теперь ждем когда товары переедут...
❗️На почитать
1️⃣ Документация по HPOS
2️⃣ Часто задаваемые вопросы
3️⃣ Обратная совместимость и синхронизация
4️⃣ Объявление совместимости расширений
#новости #woocommerce
WooCommerce
High-Performance Order Storage
High-Performance Order Storage (HPOS) (previously known as Custom Order Tables) is a solution specifically designed for ecommerce needs that provides a simple-to-understand, solid database structure. It uses Woo’s Create, Read, Update, Delete (CRUD) design…
Forwarded from Финты WordPress (Artem)
О как!
C 8.0 WooCommerce (релиз ожидается в августе) окончательно переводит заказы на отдельные таблицы и High-Performance Order Storage
Так что все, кто разрабатывает решения под WooCommerce имеет смысл проверить и допилить поддержку HPOS
Источник
#woocommerce #news
Подписаться
C 8.0 WooCommerce (релиз ожидается в августе) окончательно переводит заказы на отдельные таблицы и High-Performance Order Storage
Так что все, кто разрабатывает решения под WooCommerce имеет смысл проверить и допилить поддержку HPOS
Источник
#woocommerce #news
Подписаться
🔥2
Forwarded from Финты WordPress (Artem)
🛒 WooCommerce. Фигасе че нашел!
1. Блок-схема создания заказа, с хуками, где какой срабатывает.
2. Файлы страницы Оформления заказа.
Три года прошло, с создания картинок, а до сих пор актуально.
Ну если блоки не учитывать)))
ПЫСЫ. У меня еще видосы есть, на эту тему, старые, но актуальные
#woocommerce #checkout
1. Блок-схема создания заказа, с хуками, где какой срабатывает.
2. Файлы страницы Оформления заказа.
Три года прошло, с создания картинок, а до сих пор актуально.
Ну если блоки не учитывать)))
ПЫСЫ. У меня еще видосы есть, на эту тему, старые, но актуальные
#woocommerce #checkout
👍6❤2🔥2
Как удалить все атрибуты товаров в WooCommerce через WP-CLI?
👉 https://github.com/woocommerce/woocommerce/wiki/WC-CLI-Commands#wc-product_attribute-delete-id
#wordpress #woocommerce #wpcli #attributes #cli
Источник: @mihdan_dev
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
#wordpress #wpcli #attributes #cli #woocommerce
Источник: @mihdan_dev
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
#wordpress #php #woocommerce #development #hooks
Источник: @mihdan_dev
/**
* Скрывает товары с нулевой ценой.
*
* @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
👉 https://filtereverything.pro/resources/hooks/
#wordpress #woocommerce #plugins #hooks #filters #FilterEverythingPro
Источник: @mihdan_dev
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:
Актуально, когда у вас тысячи товаров и при удалении через админку вы ловите 500-ю ошибку.
#wordpress #woo #woocommerce #wpcli #cli
🕹 Злой полицейский — Подписаться
Быстрый способ полностью удалить все товары из корзины 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