admin管理员组

文章数量:1202374

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);
            
        }
    }
    
}

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);
            
        }
    }
    
}
Share Improve this question asked May 31, 2022 at 21:31 Sarequl BasarSarequl Basar 236 bronze badges 0
Add a comment  | 

1 Answer 1

Reset to default 0

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.

本文标签: themessetcookie on WordPress Page Template