Javascript 在Wordpress中存储和返回自定义用户元数据
我正在建立一个简单的Wordpress“课程”网站。每个用户都必须完全观看一个视频,视频完成后,会打开下一个视频 目前,我有一个Javascript 在Wordpress中存储和返回自定义用户元数据,javascript,php,wordpress,variables,persistence,Javascript,Php,Wordpress,Variables,Persistence,我正在建立一个简单的Wordpress“课程”网站。每个用户都必须完全观看一个视频,视频完成后,会打开下一个视频 目前,我有一个update\u user\u meta绑定到我的视频end()函数,但在我将该信息输入数据库后,我不确定如何使用get\u user\u meta将其拉出,以便将其视为用户特定的持久会话。有人有什么想法吗?还是我的方法错了 这是我迄今为止基于此得出的结论: html: 然后javascript: video1 = Wistia.embed(""); video
update\u user\u meta
绑定到我的视频end()
函数,但在我将该信息输入数据库后,我不确定如何使用get\u user\u meta
将其拉出,以便将其视为用户特定的持久会话。有人有什么想法吗?还是我的方法错了
这是我迄今为止基于此得出的结论:
html:
然后javascript:
video1 = Wistia.embed("");
video2 = Wistia.embed("");
jQuery(document).ready(function($) {
var response;
var allPanels = $('.accordion > dd').hide();
$('.accordion > dt > a').click(function() {
allPanels.slideUp();
$(this).parent().next().slideDown();
if(this)
return false;
});
var watched = '<span>☑</span>',
visible1 = false,
visible2 = false,
$("#dd-1").show();
video1.bind("end", function () {
$( "#video-2").removeClass("hidden");
$( "#video-2fake").hide();
allPanels.slideUp();
$("#dd-2").slideDown();
if(!visible1) {
$( "#video-1" ).append( watched );
visible1 = true;
}
else {
if(visible1) {
$( "#video-1" ).remove( watched );
visible1 = false;
}
}
$.post( video.ajaxurl, {
action : 'video_end',
nonce : video.nonce,
post : $(this).serialize()
},
function(response) {
console.log(response);
responseSuccess(response);
});
return false;
function responseSuccess(data) {
response = JSON.parse(data);
if(response.status === 'success') {
$('#video-message').text(response.message);
} else {
$('#video-message').text(response.message);
}
}
});
video2.bind("end", function () {
$( "#video-3").removeClass("hidden");
$( "#video-3fake").hide();
allPanels.slideUp();
$("#dd-3").slideDown();
position = "2";
alert(position);
if(!visible2) {
$( "#video-2" ).append( watched );
visible2 = true;
}
else {
if(visible2) {
$( "#video-2" ).remove( watched );
visible2 = false;
}
}
$.post( video.ajaxurl, {
action : 'video_end',
nonce : video.nonce,
post : $(this).serialize()
},
function(response) {
console.log(response);
responseSuccess(response);
});
return false;
function responseSuccess(data) {
response = JSON.parse(data);
if(response.status === 'success') {
$('#video-message').text(response.message);
} else {
$('#video-message').text(response.message);
}
}
});
});
video1=Wistia.embed(“”);
video2=Wistia.embed(“”);
jQuery(文档).ready(函数($){
var反应;
var allPanels=$('.accordion>dd').hide();
$('.accordion>dt>a')。单击(函数(){
allPanels.slideUp();
$(this.parent().next().slideDown();
如果(这个)
返回false;
});
var watched='☑;',
visible1=false,
visible2=错误,
$(“#dd-1”).show();
video1.绑定(“结束”,函数(){
$(“#video-2”).removeClass(“隐藏”);
$(“#video-2fake”).hide();
allPanels.slideUp();
$(“#dd-2”).slideDown();
如果(!visible1){
$(“#视频-1”)。追加(观看);
visible1=真;
}
否则{
如果(可访问1){
$(“#视频-1”)。删除(已观看);
visible1=假;
}
}
$.post(video.ajaxurl{
行动:"录像结束",,
nonce:video.nonce,
post:$(this.serialize())
},
功能(响应){
控制台日志(响应);
responseSuccess(response);
});
返回false;
功能响应成功(数据){
response=JSON.parse(数据);
如果(response.status==“success”){
$(“#视频消息”).text(response.message);
}否则{
$(“#视频消息”).text(response.message);
}
}
});
video2.绑定(“结束”,函数(){
$(“#video-3”).removeClass(“隐藏”);
$(“#video-3fake”).hide();
allPanels.slideUp();
$(“#dd-3”).slideDown();
position=“2”;
警戒(位置);
如果(!visible2){
$(“#视频-2”)。追加(观看);
visible2=真;
}
否则{
如果(可访问2){
$(“#视频-2”)。删除(已观看);
visible2=假;
}
}
$.post(video.ajaxurl{
行动:"录像结束",,
nonce:video.nonce,
post:$(this.serialize())
},
功能(响应){
控制台日志(响应);
responseSuccess(response);
});
返回false;
功能响应成功(数据){
response=JSON.parse(数据);
如果(response.status==“success”){
$(“#视频消息”).text(response.message);
}否则{
$(“#视频消息”).text(response.message);
}
}
});
});
你能发布你尝试过的吗?发布我尝试过的代码。
add_action( 'wp_ajax_video_end', 'updateVideo' );
function video_scripts() {
$parameters = array(
'ajaxurl' => admin_url('admin-ajax.php'),
'nonce' => wp_create_nonce('video')
);
wp_enqueue_script('video-ajax', get_template_directory_uri().'/js/ajax.js', array('jquery'), null, true);
wp_localize_script('video-ajax', 'video', $parameters );
}
add_action('wp_enqueue_scripts', 'video_scripts');
function ajaxStatus($status, $message, $data = NULL) {
$response = array (
'status' => $status,
'message' => $message,
'data' => $data
);
$output = json_encode($response);
exit($output);
}
function updateVideo() {
if(empty($_POST) || !isset($_POST)) {
ajaxStatus('error', 'Nothing to update.');
} else {
$data = $_POST;
$dataString = $data['post'];
parse_str($dataString, $dataArray);
$nonce = $data['nonce'];
if(wp_verify_nonce($nonce, 'video') !== false) {
$user_ID = get_current_user_id();
$dataArray['watched'] = isset($dataArray['watched']) ? true : false;
if($user_ID != NULL) {
foreach($dataArray as $key=>$value) {
$status = update_user_meta($user_ID, $key, $value);
}
ajaxStatus('success', 'updated', $dataArray);
} else {
ajaxStatus('error', 'You are unauthorized to perform this action.', $dataArray);
}
} else {
ajaxStatus('error', 'Nonce check cannot fail.');
}
}
}
video1 = Wistia.embed("");
video2 = Wistia.embed("");
jQuery(document).ready(function($) {
var response;
var allPanels = $('.accordion > dd').hide();
$('.accordion > dt > a').click(function() {
allPanels.slideUp();
$(this).parent().next().slideDown();
if(this)
return false;
});
var watched = '<span>☑</span>',
visible1 = false,
visible2 = false,
$("#dd-1").show();
video1.bind("end", function () {
$( "#video-2").removeClass("hidden");
$( "#video-2fake").hide();
allPanels.slideUp();
$("#dd-2").slideDown();
if(!visible1) {
$( "#video-1" ).append( watched );
visible1 = true;
}
else {
if(visible1) {
$( "#video-1" ).remove( watched );
visible1 = false;
}
}
$.post( video.ajaxurl, {
action : 'video_end',
nonce : video.nonce,
post : $(this).serialize()
},
function(response) {
console.log(response);
responseSuccess(response);
});
return false;
function responseSuccess(data) {
response = JSON.parse(data);
if(response.status === 'success') {
$('#video-message').text(response.message);
} else {
$('#video-message').text(response.message);
}
}
});
video2.bind("end", function () {
$( "#video-3").removeClass("hidden");
$( "#video-3fake").hide();
allPanels.slideUp();
$("#dd-3").slideDown();
position = "2";
alert(position);
if(!visible2) {
$( "#video-2" ).append( watched );
visible2 = true;
}
else {
if(visible2) {
$( "#video-2" ).remove( watched );
visible2 = false;
}
}
$.post( video.ajaxurl, {
action : 'video_end',
nonce : video.nonce,
post : $(this).serialize()
},
function(response) {
console.log(response);
responseSuccess(response);
});
return false;
function responseSuccess(data) {
response = JSON.parse(data);
if(response.status === 'success') {
$('#video-message').text(response.message);
} else {
$('#video-message').text(response.message);
}
}
});
});