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 hook,可以在else部分设置cookie

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