-1

我正在创建一个受密码保护的 wordpress 页面。它包含一个需要在 3 小时后提交的表单。在那段时间之后,用户应该退出,无论他是否填写了表格。他应该无法再次登录。

到目前为止,我已经设置了一个计时器,之后页面的内容就会消失。现在我需要一个工具来阻止特定用户重新登录并重新提交表单。用户不会在我的网站上注册。我想通过电子邮件向他们发送受保护页面的密码。

我不能在登录后简单地更改密码,因为到目前为止,该页面受每个潜在用户都需要使用的密码保护。

对我来说,避免重新登录的最简单方法似乎是为这个特定页面颁发一次性密码,因此每个用户都可以根据要求获得自己的 OTP。

我正在寻找一个为特定 wp 页面生成 OTP 列表的插件。非常感谢简单的解决方案,因为我不擅长编码!

感谢您的帮助。每个人都从某个地方开始...

4

1 回答 1

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并分享 url,比如example.com/myformpage?token=98751328475.

我可能会创建一个确认页面来启动计时器,这样它就不会在第一次调用时启动。

于 2018-03-12T12:43:53.163 回答