Используйте AJAX, чтобы проверить значение переменной PHP в Wordpress - PullRequest
0 голосов
/ 19 марта 2020

Я пробовал различные неудачные подходы и хотел бы знать, делал ли это кто-то раньше.

У меня есть собственный тип записи, который будет генерировать страницы Publi c. Однако я хочу, чтобы к определенной информации можно было получить доступ только путем ввода пароля.

То, что я хочу: пользователь вводит код в поле формы, если он совпадает с кодом, хранящимся в базе данных (мета-значение в CPT ), тогда будет отображаться личное содержимое. Если оно не совпадает, то оно не будет отображаться.

Я попытался использовать wp_localize_script (), но, похоже, он не работает на внешнем интерфейсе. Мысль об использовании данных сеанса, но это не кажется лучшим решением. Мой AJAX довольно слабый, так что тоже не очень хорошо.

Есть мысли?

1 Ответ

1 голос
/ 19 марта 2020

Поместите это в PHP файл с именем testpage. php и посмотрите, работает ли он. Он использует PHP сессий ($ _SESSION):

<!DOCTYPE html>
<html>
<head>
    <script src="https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js"></script>
</head>
<body>
<?php if ($_SESSION["authorized"] == true || $_POST["SecretCode"] == "12345") {
    $_SESSION["authorized"] = true;
    ?>
    …
    …
    …
    TOP SECRET CONTENT
    …
    …
    …
<?php } else if (!empty($_POST["SecretCode"])) { ?>
    Invalid Secret Code
<?php } else { ?>
    <button>Test Secret Code</button>
    <input type="text" id="code"/>
    <script>
        var PostPackage = {
            SecretCode: document.getElementById("code").value
        };
        var CallbackFunction = function () {
            location.reload();
        };
        var OnClickFunction = function () {
            $.post("testpage.php", PostPackage, CallbackFunction);
        };
        $("button").click(OnClickFunction);
    </script>
<?php } ?>
</body>
</html>
...