【发布时间】:2014-04-08 14:19:38
【问题描述】:
我想为 WordPress 站点中的会话或 cookie 添加一些值。我正在尝试在 AJAX 中执行此操作。但它不起作用。通常我的会话或 cookies 变量不工作/创建。我找到了一些教程并尝试了,但仍然没有任何改进。
http://stackoverflow.com/questions/6183162/how-can-i-set-get-and-destroy-cookies-in-wordpress
http://blog.ginchen.de/en/2008/08/15/session-variablen-in-wordpress/
http://devondev.com/2012/02/03/using-the-php-session-in-wordpress/
http://www.thinkingoutloud.co.za/content/20091012/php_wordpress_and_session
当我使用 htaccess 注册全局变量时,如果我创建 php.ini 文件,我得到 500 内部错误。
感谢您阅读本文..
我在functions.php中的代码
function register_session(){
if( !session_id() )
session_start();
}
add_action('init','register_session',1);
function enquiry_ajax_request() {
if ( isset($_REQUEST) ) {
if(isset($_REQUEST['product'])){
$_SESSION['product'] = "Some data I need later";
setcookie('my_cookie', 'some default value', strtotime('+1 day'));
}
}
}
add_action( 'wp_ajax_enquiry_ajax_request', 'enquiry_ajax_request' );
add_action( 'wp_ajax_nopriv_enquiry_ajax_request', 'enquiry_ajax_request' );
jquery
jQuery(document).ready(function($) {
$( "#add-enquiry" ).click(function() {
$.ajax({
url: '<?php echo admin_url( 'admin-ajax.php' ); ?>',
data: {
'action':'enquiry_ajax_request',
'product' : '<?php echo get_the_ID(); ?>'
},
success:function(data) {
console.log(data);
},
error: function(errorThrown){
console.log(errorThrown);
}
});
});
});
这是网站 http://davidrossfurniture.com/the-collection/product-one/another-chair/
当您单击“添加到查询”按钮时,它会调用带有产品 ID 的 ajax,必须将其添加到会话或 cookie 中。这是我必须做的。
ajax 链接: http://davidrossfurniture.com/wp-admin/admin-ajax.php?action=enquiry_ajax_request&product=524
【问题讨论】:
-
请发布您自己的代码,这会产生 500 错误
-
我的代码不会产生 500 错误,我只有在使用 htaccess 做某事时才会得到
-
无论如何,代码对于了解您在做什么并发现问题是必要的。也发布您的
.htaccess -
代码已添加,请检查
-
您不必设置
register_globals- 对于像$_SESSION这样的超全局变量没有意义。自 PHP 4.2.0 起默认为off,自 PHP 5.3.0 起弃用并在 PHP 5.4.0 中删除:php.net/manual/en/security.globals.php