Домой Каталог: Дополнения WP-Recall WP Access Ultimate Снятие тарифа через определенное время
17ответ(ов) в теме
fenix6391
не в сети 6 лет
На сайте с 08.10.2018
Участник
Тем 5
Сообщения 31
1
15:15
Версия WP-Recall: 16.16.0
Версия дополнения: 1.3.1

Здравствуйте.

К примеру создана запись, установлена отметка о том что запись доступна только владельцам према, и запись закрыта все хорошо.

Но через 24 часа запись надо что бы была уже доступна всем, можно ли что то вроде отложенной публикации только отложенное выключение закрытия доступа сделать при создании записи?

0
Андрей CS
не в сети 10 часов
На сайте с 30.11.-0001
Администратор
Тем 71
Сообщения 16996
2
15:49

теоретически это возможно, надо на крон повесить проверку времени публикации и если 24 часа уже исполнилось снимать доступ, если таковой имеется

0
fenix6391
не в сети 6 лет
На сайте с 08.10.2018
Участник
Тем 5
Сообщения 31
3
02:21

не желаете эту функцию добавить? ) что бы в месте создания тарифа это можно было к тарифу прикрепить, мол таймер по умолчанию через сколько доступ будет открыт с момента публикации, если значения оставить пустым то таймер не активен, в итоге можно будет создать тариф в котором можно указать через сколько снимать прем доступ.

0
fenix6391
не в сети 6 лет
На сайте с 08.10.2018
Участник
Тем 5
Сообщения 31
4
04:42

или можете рассказать как это в cron сделать? я в этом не силен

0
Андрей CS
не в сети 10 часов
На сайте с 30.11.-0001
Администратор
Тем 71
Сообщения 16996
5
07:41

fenix6391 сказал(а)
я в этом не силен

к сожалению, заниматься кастомными доработками у меня сейчас времени нет, найдите специалиста, вам все сделают

0
fenix6391
не в сети 6 лет
На сайте с 08.10.2018
Участник
Тем 5
Сообщения 31
6
08:01

Можете посоветовать специалиста который сделает это?

0
Андрей CS
не в сети 10 часов
На сайте с 30.11.-0001
Администратор
Тем 71
Сообщения 16996
7
08:52

опубликуйте задание

Вы не можете просматривать опубликованные ссылки

кого нибудь оно обязательно заинтересует

1
fenix6391
не в сети 6 лет
На сайте с 08.10.2018
Участник
Тем 5
Сообщения 31
8
15:04

пока жду кто возьмется сам буду пробовать его составить, предполагаю только что понадобится название этой функции для составления в cron что бы указать что отменять, можете написать как эта функция называется или хотя бы подсказать где ее в плагине увидеть?

0
Андрей CS
не в сети 10 часов
На сайте с 30.11.-0001
Администратор
Тем 71
Сообщения 16996
9
15:28

понадобится функция

delete_post_meta($post_id, 'wau-access');

первым аргументом передается ИД публикации у которой хотим удалить доступ

1
fenix6391
не в сети 6 лет
На сайте с 08.10.2018
Участник
Тем 5
Сообщения 31
10
07:45

Друг помог создать запрос в mysql

delete from *****_postmeta where meta_id in (select hui.meta_id from *****_posts join (select * from *****_postmeta) as hui on hui.post_id=*****_posts.ID and hui.meta_key='wau-access' and *****_posts.post_date <= (now() - interval 1 day))

где ***** имя префикса таблицы.
данный запрос удаляет прем с записей у которых срок выше 24 часов.

Теперь осталось понять как это в php завернуть и добавить в cron.

Можете чего подсказать еще?

0
Андрей CS
не в сети 10 часов
На сайте с 30.11.-0001
Администратор
Тем 71
Сообщения 16996
11
08:08

add_action('rcl_cron_hourly', 'delete_old_posts');
function delete_old_posts(){
	global $wpdb;
	
	$wpdb->query("delete from *****_postmeta where meta_id in (select hui.meta_id from *****_posts join (select * from *****_postmeta) as hui on hui.post_id=*****_posts.ID and hui.meta_key='wau-access' and *****_posts.post_date <= (now() - interval 1 day))");

}

1
fenix6391
не в сети 6 лет
На сайте с 08.10.2018
Участник
Тем 5
Сообщения 31
12
08:39

Как понимаю это уже готовый вариант который можно добавить в cron? Спасибо!! буду пробовать!

0
Андрей CS
не в сети 10 часов
На сайте с 30.11.-0001
Администратор
Тем 71
Сообщения 16996
13
09:02

если ваш запрос верный, то это готовый код, который надо разместить в файле функций

1
fenix6391
не в сети 6 лет
На сайте с 08.10.2018
Участник
Тем 5
Сообщения 31
14
11:18

а можно ли этот код добавить в cron в ISPmanager? будет ли там выполнятся? или он должен быть немного в другой обертке?

0
fenix6391
не в сети 6 лет
На сайте с 08.10.2018
Участник
Тем 5
Сообщения 31
15
11:30

суть в том что если в файле функций разместить то код будет срабатывать при каждом посещении сайта каждого посетителя как понимаю, техподдержка на нашем сервере сможет реализовать cron по расписанию .... а может ли какой плагин cron для wp работать с этим кодом? в котором можно было бы расписание указать, как часто ему запускаться?

0
Андрей CS
не в сети 10 часов
На сайте с 30.11.-0001
Администратор
Тем 71
Сообщения 16996
16
11:35

я же указал, что это готовый код, просто разместите его в файле функций, вот и все

0
fenix6391
не в сети 6 лет
На сайте с 08.10.2018
Участник
Тем 5
Сообщения 31
17
15:55

Решил проблему создав файл php со следующим содержимым, (где ***** префикс таблицы)

<?php

/* Подключение к серверу MySQL */ 
$mysqli = new mysqli('host', 'user', 'pass', 'base'); 

if (mysqli_connect_errno()) { 
   printf("Подключение к серверу MySQL невозможно. Код ошибки: %sn", mysqli_connect_error()); 
   exit; 
} 

/* Посылаем запрос серверу */
$result = $mysqli->query(
	"delete from *****_postmeta where meta_id in (select hui.meta_id from *****_posts join (select * from *****_postmeta) as hui on hui.post_id=*****_posts.ID and hui.meta_key='wau-access' and *****_posts.post_date <= (now() - interval 1 day))"
	);
	
return $result;

/* Освобождаем память */ 
$result->close(); 

/* Закрываем соединение */ 
$mysqli->close(); 

?>

и запустив cron в isp панели по нужному расписанию.

Теперь прем снимается с у записей у которых срок публикации превышает 24 часа, в кроне настроил запуск раз в 2 часа этого вполне хватит.

Тему можно закрывать.

Редакции сообщения
14.10.2018 15:56fenix6391Причина: не указано
0
Тема закрыта. Публикация новых сообщений запрещена.