У меня есть веб-сайт Wordpress, и я добавил форму для захвата электронной почты пользователя перед просмотром видео с помощью плагина «до» и «после». файлы cookie не очищаются, чтобы пользователь мог ввести адрес электронной почты перед просмотром видео.
Я изменил следующий код, но не уверен, что он работает.
Мне нужно удалить файлы cookie после установки время, например, 5 часов, как мне этого добиться?
function clear_goal_cookies()
{
// clear session
foreach ($_SESSION as $key => $value)
{
// test if $key starts with 'goal_'
if (strpos($key, 'goal_') === 0) {
// it does! so delete it
unset($_SESSION[$key]);
}
}
// clear cookies
foreach ($_COOKIE as $key => $value)
{
// delete cookie if it starts with 'b_a_a_g_'
if (strpos($key, 'b_a_a_g_') === 0) {
unset($_COOKIE[$key]);
// set a new cookie with its expiration in the past
// so it will be deleted on next page load
//setcookie($key, '', time() - 3600, '/'); COMMENTED THIS OUT
// let the cookie be deleted after 24 hours
setcookie($key, '', time() + 86400, '/'); // 86400 = 1 day I ADDED THIS
}
}
// delete all goal completion post meta values for the current user
$browser_hash = md5($_SERVER['REMOTE_ADDR'] . $_SERVER['HTTP_USER_AGENT']);
$meta_key = 'b_a_goal_complete_' . $browser_hash;
$args = array(
'post_type' => 'b_a_goal',
'posts_per_page' => -1,
'post_status' => 'any',
'meta_key' => $meta_key
);
$goals_completed = get_posts($args);
if ( !empty($goals_completed) && is_array($goals_completed) ) {
foreach($goals_completed as $goal) {
delete_post_meta($goal->ID, $meta_key);
}
}
}