Я создаю плагин, который будет задерживать конкретную c активацию плагина на определенное c время загрузки веб-сайта.
Итак, вы можете выбрать, какой плагин вы хотите отложить и на сколько секунд . С этого момента плагин будет деактивирован, а результат будет сохранен в базе данных.
База данных:
CREATE TABLE `wp_wdl` (
`id` int(255) NOT NULL,
`plugin_name` varchar(255) COLLATE utf8mb4_unicode_520_ci NOT NULL,
`plugin_path` varchar(255) COLLATE utf8mb4_unicode_520_ci NOT NULL,
`plugin_time_delay` varchar(20) COLLATE utf8mb4_unicode_520_ci NOT NULL,
`plugin_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_520_ci;
Структура базы данных:
id | plugin_name | plugin_path | plugin_time_delay | plugin_time
----------------------------------------------------------------------------------------------------------
1 | Contact Form 7 | contact-form-7/wp-contact-form-7.php | 3 | 2020-07-10 00:42:46
----------------------------------------------------------------------------------------------------------
2 | Akismet Anti-Spam | akismet/akismet.php | 7 | 2020-07-10 00:43:13
Мой вопрос: как отложить активацию на указанные c числа секунд, когда пользователь посещает страницу?
У меня есть способ активации плагина:
public function activatePlugin($plugin_path) // i.e. /akismet/akismet.php
{
$current = get_option('active_plugins');
$plugin = plugin_basename(trim($plugin));
if (!in_array($plugin, $current)) {
$current[] = $plugin;
sort($current);
do_action('activate_plugin', trim($plugin));
update_option('active_plugins', $current);
do_action('activate_' . trim($plugin));
do_action('activated_plugin', trim($plugin));
}
return null;
}
И с этим я пробовал что-то вроде это (но не успешно):
$time = date("h:i:s", time() + 30);
if ($time == date('h:i:s')) {
$delay->activatePlugin($path);
}
Может ли кто-нибудь намекнуть мне, как я могу справиться с этим?
Я не уверен, нужно ли мне отправлять результат $time = date("h:i:s", time() + 30);
в базу данных и работать в этом направлении, нужно ли мне работать с cronjob
или чем-то еще.
Любая помощь приветствуется.