• WooCommerce полезная информация

 #10416   IgorA100
 12 июл 2021, 19:08
Ускорение импорта большого количества товаров
Вначале импорта выполнить:
Код: Выделить всёwp_defer_term_counting( true );
wp_defer_comment_counting( true );


После выполнения импорта выполнить:
Код: Выделить всёwp_defer_term_counting( false );
wp_defer_comment_counting( false );

И немного подводных камней:
https://www.wordpressask.com/814.html

Так-же перед импортом нужно отключить кеширование
Код: Выделить всёwp_suspend_cache_addition( true );   

После импорта, не забываем включить кеширование
Код: Выделить всёwp_suspend_cache_addition( false );


Есть еще вариант перед импортов выклчить запись данных на диск и хранить их в памяти выполнив:
Код: Выделить всё$wpdb->query( 'SET autocommit = 0;' );

Произвести импорт и выполнить:
Код: Выделить всё$wpdb->query( 'COMMIT;' );

https://qastack.ru/wordpress/102349/fas ... ta-in-bulk
Но у меня это не повлияло на скорость записи данных.
Данный трюк опсен потерей данных, если произойдет сбой и не выполнится код $wpdb->query( 'COMMIT;' );[


Ускорение импорта WP All Import с помощью Scalability Pro
https://www.kobzarev.com/wordpress/spee ... ility-pro/
 #10422   IgorA100
 22 июл 2021, 23:42
Все хуки ядра WordPress
https://wp-kama.ru/hooks/hooks-db

Хуки и очереди выполнения их перехваченных функций в Wordpress и Woocommerce
https://web-answers.ru/php/huki-i-ocher ... ennyh.html

WC_Query::get_layered_nav_chosen_attributes()
https://wp-kama.ru/plugin/woocommerce/f ... attributes

Remove query_arg from url
Код: Выделить всё$url = preg_replace('/\?.*/', '', $url);

https://stackoverflow.com/questions/209 ... g-from-url

remove_query_arg()
Удаляет указанные параметры GET запроса из URL: ?parametr=value&param2=val2.
https://wp-kama.ru/function/remove_query_arg

Решение для проверки, фильтруются ли продукты в настоящее время?
Благодаря Дэвиду Чандру Пурнаме, который подтолкнул меня в правильном направлении, здесь очень простая функция использования:
Код: Выделить всёfunction active_woocommerce_filters() {

    // for older WC versions
    // global $_chosen_attributes;

    $_chosen_attributes = WC_Query::get_layered_nav_chosen_attributes();

    return count( $_chosen_attributes );

}

Функция возвращает количество активных фильтров, поэтому ее можно использовать следующим образом:
Код: Выделить всёif( active_woocommerce_filters() ) {

    echo str_replace( '%s', active_woocommerce_filters(), 'There are %s filters active' );

} else {

    echo 'There are no filters active';

}

Как отметила Artur Czyewskski oake {{{x0}} глобальная переменная не доступна в его установке. Это, скорее всего, из-за изменений в Woocommerce и, вероятно, влияет на все новые версии, поэтому я обновил {{x1}}

https://question-it.com/questions/19725 ... -produktov

ПЕРЕОПРЕДЕЛИТЬ ФУНКЦИЮ ПЛАГИНА В WORDPRESS, переопределить функцию класса родительской темы в дочерней теме
https://web-answers.ru/php/pereopredeli ... press.html
https://stackru.com/questions/1721022/w ... ernej-teme
https://ru.wordpress.org/support/topic/ ... %B8%D1%8E/