Восстановить переходные процессы для определенных $product or $Варианты объектов в WooCommerce

Aug 19 2020

Мне действительно интересно, есть ли способ восстановить все собственные переходные процессы для данного продукта или объекта вариации.

У меня такой случай, когда я показываю динамические цены, и все нормально. Но мне нужно обновить переходные процессы, например 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, чтобы вызвать его для объекта продукта или варианта.

Вы знаете, как решить эту задачу?

С уважением.

Ответы

1 LoicTheAztec Aug 20 2020 at 04:13

В вариациях кешированных цен задействованы 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фильтр