Восстановить переходные процессы для определенных $product or $Варианты объектов в WooCommerce
Мне действительно интересно, есть ли способ восстановить все собственные переходные процессы для данного продукта или объекта вариации.
У меня такой случай, когда я показываю динамические цены, и все нормально. Но мне нужно обновить переходные процессы, например wc_prices_{id}
, чтобы учесть эту новую настраиваемую цену. В противном случае загрузка первой страницы ужасна (особенно на странице магазина, отображающей несколько товаров одновременно).
Я закреплять в woocommerce_product_variation_get_price
, woocommerce_product_variation_get_regular_price
, woocommerce_variation_prices_price
и woocommerce_variation_prices_regular_price
(в общем, этом изменение на лету КАЖДОГО SINGLE ЦЕНЕ страницы, а если родитель , содержащие ребенок, это изменение цен для детей тоже для того , чтобы рассчитать цены диапазона (мин / макс) родителя).
Изучая код Woocommerce, я обнаружил, какой метод генерирует переходные цены: он read_price_data()
находится в wp-content/plugins/woocommerce/includes/data-stores/class-wc-product-variable-data-store-cpt.php
. Но я не могу найти способ назвать это моим скриптом Cron Job, чтобы вызвать его для объекта продукта или варианта.
Вы знаете, как решить эту задачу?
С уважением.
Ответы
В вариациях кешированных цен задействованы 3 перехватчика фильтров:
woocommerce_variation_prices_price
woocommerce_variation_prices_regular_price
woocommerce_variation_prices_sale_price
Чтобы восстановить кешированные цены, вы можете использовать эти хуки:
wc_delete_product_transients( $variation->get_id() );
Но это замедлит работу вашего веб-сайта.
Введенный с Woocommerce 3,
woocommerce_get_variation_prices_hash
ловушка фильтра позволит обновлять вариации кешированных цен гораздо более эффективным способом, не удаляя связанные переходные процессы в любое время, когда эти ловушки запускаются.
Документация и связанная ветка:
- Кеширование и динамическое ценообразование - предстоящие изменения в методе get_variation_prices
- Изменение цен на товары с помощью крючка в WooCommerce 3
- Все связанные темы, использующие woocommerce_get_variation_prices_hashфильтр