Здравствуйте.
К примеру создана запись, установлена отметка о том что запись доступна только владельцам према, и запись закрыта все хорошо.
Но через 24 часа запись надо что бы была уже доступна всем, можно ли что то вроде отложенной публикации только отложенное выключение закрытия доступа сделать при создании записи?
не желаете эту функцию добавить? ) что бы в месте создания тарифа это можно было к тарифу прикрепить, мол таймер по умолчанию через сколько доступ будет открыт с момента публикации, если значения оставить пустым то таймер не активен, в итоге можно будет создать тариф в котором можно указать через сколько снимать прем доступ.
Друг помог создать запрос в 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.
Можете чего подсказать еще?
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))"); }
суть в том что если в файле функций разместить то код будет срабатывать при каждом посещении сайта каждого посетителя как понимаю, техподдержка на нашем сервере сможет реализовать cron по расписанию .... а может ли какой плагин cron для wp работать с этим кодом? в котором можно было бы расписание указать, как часто ему запускаться?
Решил проблему создав файл 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 часа этого вполне хватит.
Тему можно закрывать.