Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/271.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 在Wordpress中存储和返回自定义用户元数据_Javascript_Php_Wordpress_Variables_Persistence - Fatal编程技术网

Javascript 在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

我正在建立一个简单的Wordpress“课程”网站。每个用户都必须完全观看一个视频,视频完成后,会打开下一个视频

目前,我有一个
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>&#9745;</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>&#9745;</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);
          }
         }
   });
  });