setcookie on WordPress Page Template

I am having an issue with setcookie. I need to set a cookie on a page action (form).

I have tried on the template file, but not working.

then find out if I set it from functions.php with init hook, it's working.

then I put condition like

if(is_page_template('mytemplate.php')){...

then it's not working.

how can I do that?

here is my code.

add_action( 'init', 'hello_my_cookie' );

function hello_my_cookie() {
    if(is_page_template('mytemplate.php')){
        if(isset($_POST['GGmyCookie'])){
            setcookie( 'myCookie','Hello Cookie!', time()+3600);
            
        }
    }
    
}

Topic cookies themes Wordpress

Category Web


This fails because the init hook is far too early to call is_page_template. Conditionals such as this function use the main query to decide their value, but WordPress hasn't created the main query yet.

The earliest hook you can safely do this is template_redirect.

About

Geeks Mental is a community that publishes articles and tutorials about Web, Android, Data Science, new techniques and Linux security.