WordPress setcookie()在if/else语句中不起作用


WordPress setcookie() not work in if/else statement

我在if/else语句中尝试setcookie,但根本不起作用。

如果没有if/else语句,set_user_cookie函数可以正常工作

add_action('woocommerce_checkout_process', 'my_custom_checkout_field_process');

    function my_custom_checkout_field_process() {
    // Check if set, if its not set add an error.
    $exists = email_exists($_POST['my_field_name'] );
    $email = ($_POST['my_field_name']) ;
    if ( !$exists ){
        wc_add_notice( __('ایمیل وارد شده برای معرف اشتباه می باشد' ), 'error' );
    }
            else{
function set_user_cookie() {
    $school = "vvvvvvvvvvvvvvvvvvvvv";
    setcookie('default_school', $school, time()+3600);
}
}}

您需要使用wc_setcookie函数

wc_setcookie('name', 'value', 'expire', 'secure' );

没有必要使用init钩子,您可以在else部分设置cookie

if ( !$exists ) {
    wc_add_notice( __('ایمیل وارد شده برای معرف اشتباه می باشد' ), 'error' );
} else {
    wc_setcookie(.......) ; //set you cookie params
}