![](/img/trans.png)
[英]Only allow logged in WordPress Admin to access page (outside of WordPress core)
[英]How to allow page access ONLY by form in Wordpress
我在wordpress中有一個頁面,里面有一個表單,用戶可以通過該表單傳遞電子郵件和姓名。 完成注冊后,對於我而言,我將在MailChimp上捕獲您的數據,然后將其重定向到另一個頁面,該頁面將可以訪問模擬。
但是,我只想通過上述表格訪問此重定向頁面。
我不想直接在URL中輸入重定向頁面的地址。 示例:domain.com.br/simulado
如果他這樣做了,他會再次進入家中,或者其他。 無論如何,如何限制呢?
在表單中添加以下內容:
<?php
$_SESSION['keyphrase'] = substr( md5(rand()), 0, 20)
?>
<input type="hidden" name="keyphrase" value="<?php echo $_SESSION['keyphrase"; ?>">
然后在您的鎖定頁面中:
<?php
if (!isset($_SESSION['keyphrase']) || !isset($_POST['keyphrase']) || $_POST['keyphrase'] != $_SESSION['keyphrase'])
{
unset($_SESSION['keyphrase']);
header("location: ".KICKBACK.URL);
exit;
}
// UNSET IF YOU ONLY WANT TO ALLOW ACCESS ONCE
unset($_SESSION['keyphrase']);
// WELCOME
首先,您需要在WordPress上啟用PHP會話,然后將以下內容添加到主題的functions.php
function start_session() {
if(!session_id()) {
session_start();
}
}
add_action('init', 'start_session', 1);
接下來,您需要掛鈎到Contact Form 7,並設置一個$_SESSION
變量以授權查看重定向頁面,我們將使用掛鈎wpcf7_mail_sent
function set_session_auth(){
$_SESSION["auth"] = "authorized";
}
add_action('wpcf7_mail_sent', 'set_session_auth');
最后,在您的重定向頁面上,我們需要檢查授權。 最簡單的方法是為您的頁面設置一個自定義PHP文件,即page-siumulado.php
,其中將包含:
if(isset($_SESSION["auth"]) && $_SESSION["auth"] == "authorized"){
//Output your page content
} else {
echo "Sorry you do not have authorization to view this page.";
//or something to that effect.
}
請記住,這將在Contact Form 7發送郵件時隨時設置$_SESSION
變量,因此,如果您將其用於其他表單,它們也會解鎖頁面。 您可能需要設置一些條件。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.