我想限制每个会话的视频和照片显示。例如,访客观看3个视频,当他试图观看第四个视频时,他被重定向到订阅页面。我将使用JWPlayer或原生HTML5,无关紧要,这可以在WP中使用,但是可以用任何方式使用PHP(我不是任何专家)。
所以,理想情况下,这将是工作流程: 1)访客观看视频1 - >可选消息 - >你还剩2个视频 2)访客观看视频2 - >可选消息 - >你还剩1个视频 3)访客观看视频3 - >可选消息 - >你还剩0个视频 4)访客试图观看视频4 - >重定向
到目前为止,我找到了限制每个带宽或每次时间的方法(仅限1个视频然后重定向),但无论时间或大小,我都需要提供3个视频,因此这些解决方案无效。有关如何实现这一点的任何想法?
编辑:这里有一些重定向的代码,我真的没有添加任何东西,因为我不需要什么,但看看:
<script src="text/javascript">
function vidplay(){
var video = document.getElementById('video');
video.play();
video.addEventListener('ended',function(){
window.location = 'http://SUBSCRIBE_PAGE';
});
}
</script>
<video controls id="video" width="640" height="360" onclick="vidplay()">
<source src="video/video.mp4" type="video/mp4" />
</video>
答案 0 :(得分:3)
在会话中存储一个计数(理想情况下是一个视频ID列表,以便他们可以在一个会话中多次观看同一个视频),这可能会被用户清除cookie无效。否则,如果您的用户拥有他们必须登录的帐户,请存储他们在数据库表中观看的内容的历史记录。
编辑:现在我注意到你在这里使用wordpress,所以我不能&#39;帮助将其添加到其中,但这是基于会话的批准的示例
<?php
// Obviously use your variable here
$ID_OF_VIDEO_HERE = $_REQUEST['video'];
if(isset($_SESSION) === false)
session_start(); // Start PHP session management
if(isset($_SESSION['videos_viewed']) === false)
$_SESSION['videos_viewed'] = array();
if(isset($_SESSION['videos_viewed'][$ID_OF_VIDEO_HERE]) === FALSE AND count($_SESSION['videos_viewed']) >= 3)
{
// Redirect the User
header('location: http://SUBSCRIBE_PAGE');
exit();
}
else
{
// Add current video ID to list
$_SESSION['videos_viewed'][$ID_OF_VIDEO_HERE] = true;
}
// JUST FOR TESTING
var_dump($_SESSION['videos_viewed']);
?>