我正在尝试设置一个cookie,当页面加载一个从小部件后端的用户输入中获取的数字时,我似乎无法使其工作。
这是我的简化代码:
class my_class extends WP_Widget {
## get variable from the backend form settings of widget
function form($instance) {
global $instance;
$title = ! empty( $instance['variableiwant'] ) ? $instance['title'] : __( 'variableiwant' );
}
##update save of widget
function update($new_instance, $old_instance) {
$instance = $old_instance;
$instance['variableiwant'] = strip_tags($new_instance[ 'variableiwant']);
return $instance;
}
function widget($args, $instance) {
}
##here I try and set the cookie from the backend variable before headers are sent.
function set_newuser_cookie() {
global $instance;
global $variableiwant;
if (isset($_COOKIE["variablesave"]))
;
else
{
setcookie("variablesave", $variableiwant, time()+3600);
}
}
add_action( 'send_headers', 'set_newuser_cookie');
现在我遇到的问题是只能在发送标题之前设置cookie,我在" send_headers"之前尝试了其他挂钩。但没有任何作用。显然,如果你在标题之后添加了钩子,它会抛出一个错误,说“"警告标题已经发送了”#34;有没有办法从后端输入中获取该变量并在发送标题之前将其设置为cookie?我已经尝试了一切,似乎没有任何工作,只需将cookie设置为NULL。