/ Scripts & jquery / Срок действия записи

Срок действия записи

Рассмотрим функционал назначения для записи срока действия, т.е. даты после которой запись меняет статус.

WP Post Expires (2 000)

Простой плагин позволяющий назначать записям время, после которого будет выполнено одно из 3х действий: «Добавить префикс к заголовку». «Переместить в черновики», «Переместить в корзину».

Post Expirator (100 000)

Включает в записях блок настроек:

  • Активировать
  • Выставить дату и время
  • Что сделать с записью при наступлении даты (изменить статус, unstick, назначить категорию)

В общих настройках можно настроить:

  • Формат даты и времени
  • Автоматически включать срок в новых записях
  • Автоматическое уведомление по электронной почте
  • Назначить категорию для перемещения записей

Добавляем вывод отчета до окончания публикации

Добавим к плагину Post Expirator счетчик во фронтенде.

В настройках Post Expirator в поле Date Format прописываем так: Y/m/d. Поле Time Format делаем пустым.

Подключаем к сайту скрипт jQuery.countdown.

Данным скриптом можно выводить время с момента наступления даты. Пример ниже:
var fiveSeconds = new Date().getTime() + 5000;
$('#clock').countdown(fiveSeconds, {elapse: true})
.on('update.countdown', function(event) {
	var $this = $(this);
	if (event.elapsed) {
		$this.html(event.strftime('After end: <span>%H:%M:%S</span>'));
	} else {
		$this.html(event.strftime('To end: <span>%H:%M:%S</span>'));
	}
});

Вывод счетчика во фронтенде:

<?php $exdate = do_shortcode( '[postexpirator]' );
if (!empty($exdate)) { echo '<div class="getting-started">'.$exdate.'</div>'; } ?>

Скрипт множественного (записей с счетчиками может быть несколько) вывода счетчиков:

jQuery(document).ready(function($){
	$('.getting-started').each(function() {
		var date = $(this).text();
		$(this).countdown(date, function(event) {
			var numdaes = declOfNum('%D', ['день', 'дня', 'дней'])		
			$(this).text( event.strftime('%D ' + numdaes + ' %H:%M:%S') );	
		});
	});
});

Также в скриптах прописываем функцию регулярного выражения (день/дня/дней):

// Регулярное выражение
function declOfNum(n, text_forms) {  
    n = Math.abs(n) % 100; var n1 = n % 10;
    if (n > 10 && n < 20) { return text_forms[2]; }
    if (n1 > 1 && n1 < 5) { return text_forms[1]; }
    if (n1 == 1) { return text_forms[0]; }
    return text_forms[2];
}

т.к. скрипт выводится и инициируется во фронтенде, то вывод скрипта jQuery.countdown и библиотеки jquery должны быть раньше.

Акция окончена

Если срок записи подошел к концу, то произойдет действие выбранное в настройках записи. При этом счетчик не будет выводится. Если записи не нужно менять в статусе, то можно вывести текст «Акция окончена»:

<?php $exdate = do_shortcode( '[postexpirator]' );
if (!empty($exdate)) { echo '<div class="getting-started">'.$exdate.'</div>'; }
else { echo '<div class="getting-started">Окончена</div>'; } ?>

Поделиться в соц. сетях:

  • Комментарии
  • Вложения

Добавить комментарий

Пока нет комментариев. Будь первым!

Срок действия записи
Версия сайта для печати
Рекомендации для васВерсия сайта для печатиOpttour.ru
Спасибо! Наш менеджер свяжется с Вами в течении 5 минут.