<?php add_action( 'wp_ajax_setmycookie' , 'callback_setmycookie' );
add_action('wp_ajax_setmycookie','callback_setmycookie');
add_action( 'wp_ajax_nopriv_setmycookie' , 'callback_setmycookie' );
add_action('wp_ajax_nopriv_setmycookie','callback_setmycookie');
add_action( 'wp_ajax_unsetmycookie' , 'callback_setmycookie' );
add_action('wp_ajax_unsetmycookie','callback_setmycookie');
add_action( 'wp_ajax_nopriv_unsetmycookie' , 'callback_setmycookie' );
add_action('wp_ajax_nopriv_unsetmycookie','callback_setmycookie');
function callback_setmycookie() {
函数callback_setmycookie(){
// first check if this ajax call is
//首先检查此ajax调用是否为
// done using the script belonging to the installation
//使用属于安装的脚本完成
//
//
if( ! check_ajax_referer( 'cookie-security-nonce' , 'security' ) ) {
if(!check_ajax_referer('cookie-security-nonce','security')){
wp_send_json_error( 'Invalid security token sent.' );
wp_send_json_error('无效的安全令牌已发送。');
wp_die();
wp_die();
}
}
// Check if visitor has accepted the cookies from Cookie Notice plugin
//检查访问者是否接受了Cookie Notice插件中的cookie
// If you're using another plugin, you should write your own check here
//如果您使用的是其他插件,则应在此处编写自己的支票
if ( !function_exists('cn_cookies_accepted') || !cn_cookies_accepted() ) {
如果(!function_exists('cn_cookies_accepted')||!cn_cookies_accepted()){
wp_die();
wp_die();
}
}
if ( !defined( 'DOING_AJAX' ) ) define( 'DOING_AJAX' , TRUE );
如果(!defined('DOING_AJAX'))define('DOING_AJAX',TRUE);
// set your cookie name here
//在此处设置您的Cookie名称
$cookie_name = 'mylanguage';
$ cookie_name ='mylanguage';
$default_validity = 60 * 60;
$ default_validity = 60 * 60;
// = 60 minutes
// = 60分钟
// try to get the cookie_value
//尝试获取cookie_value
$cookie_value = isset( $_GET['cv'] ) ?
$ cookie_value = isset($ _GET ['cv'])吗?
$_GET['cv'] : false;
$ _GET ['cv']:false;
// try to get the cookie validity period.
//尝试获取Cookie的有效期。
If not default to default validity
如果未默认为默认有效性
$cookie_valid = isset( $_GET['valid'] ) ?
$ cookie_valid = isset($ _GET ['valid'])吗?
$_GET['valid'] : $default_validity;
$ _GET ['valid']:$ default_validity;
// if the action is setmycookie we need a cookie_value (cv) because else it will fail.
//如果该操作是setmycookie,则我们需要一个cookie_value(cv),因为否则它将失败。
Check for it and return an error if there isn't one.
检查它,如果没有,则返回错误。
if ( ! $cookie_value && $_GET['action'] == 'setmycookie' ) {
如果(!$ cookie_value && $ _GET ['action'] =='setmycookie'){
wp_send_json_error( array( 'success' => false, 'error' => '402', 'message' => 'cookie not set, no value given. ( cv )' ) );
wp_send_json_error(array('success'=> false,'error'=>'402','message'=>'未设置cookie,没有给出值。(cv)'));
}
}
// check action parameter
//检查动作参数
// UNSET mycookie
//取消设置mycookie
if ( 'unsetmycookie' == $_GET['action'] ) {
如果('unsetmycookie'== $ _GET ['action']){
setcookie( $cookie_name , 'unset value' , time() - 1 , COOKIEPATH, COOKIE_DOMAIN , isset($_SERVER["HTTPS"]) );
setcookie($ cookie_name,'unset value',time()-1,COOKIEPATH,COOKIE_DOMAIN,isset($ _ SERVER [“ HTTPS”])));
wp_send_json( array( 'success' => true, 'message' => "Done unsetting cookie '{$cookie_name}'." ) );
wp_send_json(array('success'=> true,'message'=>“完成未设置cookie'{$ cookie_name}'。”));
} else if ( 'setmycookie' == $_GET['action'] ) {
} else if('setmycookie'== $ _GET ['action']){
setcookie( $cookie_name , $cookie_value , time() + $cookie_valid , COOKIEPATH, COOKIE_DOMAIN , isset($_SERVER["HTTPS"]), true );
setcookie($ cookie_name,$ cookie_value,time()+ $ cookie_valid,COOKIEPATH,COOKIE_DOMAIN,isset($ _ SERVER [“ HTTPS”]),true);
wp_send_json( array( 'success' => true, 'message' => "Done setting cookie '{$cookie_name}' to value '{$cookie_value}' with validity $cookie_valid seconds." ) );
wp_send_json(array('success'=> true,'message'=>“将cookie'{$ cookie_name}'设置为值'{$ cookie_value}'的有效期为$ cookie_valid秒。”));;
}
}
wp_die();
wp_die();
}
}