我正在创建一个受密码保护的wordpress页面。它持有一个需要在3小时的定时后提交的表格。在此期间之后,用户应该退出,无论他是否填写了表格。他不应该再次登录了。
截至目前,我已经实现了设置计时器,之后页面内容消失。现在我需要一个工具来阻止特定用户重新登录并重新提交表单。用户未在我的网站上注册。我想通过电子邮件向他们发送受保护页面的密码。
我无法在登录后更改密码,因为截至目前,该页面受到每个潜在用户需要使用的一个密码的保护。
对我而言,避免重新登录的最简单方法似乎是为此特定页面发出一次性密码,因此根据要求,每个用户都可以获得自己的OTP。
我正在寻找一个插件,它会为特定的wp页面生成一个OTP列表。 非常感谢简单的解决方案,因为我没有经验丰富的编码!
感谢您的帮助。每个人都从某处开始......
答案 0 :(得分:0)
像这样(未经测试):
$token = $_GET[ 'token' ];
if( is_numeric( $token ) AND metadata_exists( 'post', get_the_ID(), 'token_' . $token ) ):
if( empty( get_metadata( 'post', get_the_ID(), 'token_' . $token, true ) ) )
update_metadata( 'post', get_the_ID(), 'token_' . $token, time() + ( HOUR_IN_SECONDS * 3 );
if( $stamp = get_metadata( 'post', get_the_ID(), 'token_' . $token, true ) < time() ):
echo 'Here goes your form';
echo 'You have ' . $stamp - time() . ' seconds.';
else:
echo 'nope';
delete_metadata( 'post', get_the_ID(), 'token_' . $token )
endif;
else:
echo 'nope';
endif;
因此,您只需要创建一个空的postmeta字段,例如token_98751328475
,并分享example.com/myformpage?token=98751328475
之类的网址。
我可能会创建一个确认页面来启动计时器,这样它就不会在第一次通话时启动。