Задать вопрос
foxayb
@foxayb
newbie

Как реализовать новое случайное число в контенте каждый день?

Добрый день.

Есть задача: Каждый день обновлять прайс-лист. Например есть число 1500 и к нему каждый день прибавлять случайное число из диапазона 100 - 300. Всё на уровне контента (не псевдо, не через js).

spoiler

Я сначала пытался сделать через js, псевдо-значением, но понял, что это мне не подходит, однако, может кому-то понадобится:
https://jsfiddle.net/7h0vsrp9/
function pseudo_random( _date, min, max ){ 
  current_date = _date.toISOString().slice(0, 10);
  var lms_constant = String(current_date);
  var lms_b1 = min + ( parseInt(lms_constant, 16) % ((max + 1) - min))
  return lms_b1;
}

function roundTo5(num) {
 return Math.round(num/5)*5;
}


var lms_bb = pseudo_random( new Date(), 100, 300);
var lms_bbb = roundTo5(lms_bb);
var addend = lms_bbb;

jQuery('.tablecool tr[class*="black-block"] .title_center:nth-last-child(2)').each(function () {
    var jQuerythis = jQuery(this);
    var price = jQuerythis.text();
    var sum = parseInt(price) + lms_bbb;
    jQuerythis.text(sum);
});


alert( lms_bbb );

  • Вопрос задан
  • 68 просмотров
Подписаться 1 Простой Комментировать
Пригласить эксперта
Ответы на вопрос 1
@deadnice
Если у вас woocommerce то примерно так:
add_action('admin_head', 'acivate_update_price_event');
function acivate_update_price_event() {
	if (!wp_next_scheduled('daily_update_price_event')) {
		wp_schedule_event(time(), 'daily', 'daily_update_price_event');
	}
}

add_action('daily_update_price_event', 'update_price');
function update_price() {
	$args = array('post_type' => 'product');
	$loop = new WP_Query($args);
	while ($loop->have_posts()) {
		$loop->the_post(); 
		global $product;
		$productPrice = get_post_meta($product->id, '_price');
		$priceAdditives = mt_rand(100, 300);
		$finalPrice = $productPrice + $priceAdditives;
		update_post_meta($product->id, '_price', (float) $finalPrice);
	}
}


Код работает на основе https://wp-kama.ru/id_10872/wp-cron.html
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы