Это мой первый пост в этом замечательном сообществе. Обычно я нахожу все ответы на свои маленькие и большие проблемы, но это, к сожалению, для меня загадка 🙁
Мне нужно создать какую-то автоматическую функцию, которая бы каждый день, один раз в день выбирала 3 случайных продукта и помечала их как показанные в моем магазине Woocommerce. А на следующий день удаляет эти 3 и выбирает 3 новых один раз.
К сожалению, из-за сложности задачи (для моей), у меня нет кода, чтобы показать / начать с.
Единственное, что я могу найти, это то, что это должно быть определено в некоторой метаинформации:
$args = array(
'post_type' => 'product',
'meta_key' => '_featured',
'meta_value' => 'yes',
)
Искренне надеюсь, что кто-то может мне помочь 🙂
Я думаю, что самым простым решением было бы использовать переходные процессы.
Вот предложение, но сначала пара предостережений.
если никто не посещает ваш сайт, переходные процессы не всегда очищаются в нужное время, но если это проблема, вы можете настроить службу ping для автоматического посещения вашего сайта каждый день.
у вас нет точного контроля, когда переходный процесс очищается … например: каждый день в 3 часа дня.
Это предложение требует, чтобы вы переделали, как ваша тема отображает эти 3 рекомендуемых продукта. так как мы на самом деле не ищем _featured
мета.
код для functions.php
:
function so_35312355_get_daily_featured_products(){
// Get any existing copy of our transient data
if ( false === ( $daily_featured_products = get_transient( 'daily_featured_products' ) ) ) {
// It wasn't there, so regenerate the data and save the transient
$args = array(
'post_type' => 'product',
'post_status' => 'publish',
'orderby' => 'rand',
'posts_per_page' => '3',
);
$daily_featured_products = new WP_Query( $args );
set_transient( 'daily_featured_products', $daily_featured_products, 24 * HOUR_IN_SECONDS );
}
return $daily_featured_products;
}
В качестве альтернативы, вы можете выполнить 2 запроса … один для сброса всех метаданных ключей, а второй для обновления мета-ключей для каждого из трех случайных продуктов.
Более продвинутый и полный Метод будет использовать задания cron. Посмотрите в Кодексе, как запланировать событие, но в зависимости от ваших потребностей переходный процесс может быть достаточным.
Других решений пока нет …