見出し画像

MW WP FORMで取得した会員情報を照会するためのフォームを作成する。

前提として、WordPressで構築したサイトに、MW WP FORMでメールフォームを設定していて、そこでお名前とメールアドレス、会員IDがデータベースに保存されているものとします。

会員IDを参照するためのフォームの構築はMW WP FORMを使わずに、HTMLで行います。フォームを作成するページに以下のコードを記載。

<!DOCTYPE html>
<html lang="ja">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>会員ID参照フォーム</title>
    <script>
        function submitForm(e) {
            e.preventDefault();
            const formData = new FormData(e.target);
            const searchParams = new URLSearchParams();

            for (const pair of formData.entries()) {
                searchParams.append(pair[0], pair[1]);
            }

            window.open('https://●●●/find_member.php?' + searchParams.toString(), '_blank', 'width=600,height=400');
        }
    </script>
</head>
<body>
    <form onsubmit="submitForm(event)">
        <label for="name">名前:</label>
        <input type="text" id="name" name="name" required><br>
        <label for="email">メールアドレス:</label>
        <input type="email" id="email" name="email" required><br>
        <button type="submit">会員IDを取得</button>
    </form>
</body>
</html>

次に、データベースからデータを取得する以下のPHP(find_member.php)をサーバーに置きます。

<?php
header('Content-Type: application/json');

$name = $_POST['name'];
$email = $_POST['email'];

// Database connection settings
$servername = "localhost";
$username = "your_username";
$password = "your_password";
$dbname = "your_database";

$conn = new mysqli($servername, $username, $password, $dbname);

if ($conn->connect_error) {
    echo json_encode(['error' => 'Connection failed: ' . $conn->connect_error]);
    exit;
}

$stmt = $conn->prepare("SELECT member_id FROM members WHERE name=? AND email=?");
$stmt->bind_param("ss", $name, $email);
$stmt->execute();
$result = $stmt->get_result();
$member_id = $result->fetch_assoc();

$stmt->close();
$conn->close();

if ($member_id) {
    echo json_encode(['member_id' => $member_id["member_id"]]);
} else {
    echo json_encode(['error' => 'No matching member found']);
}
?>


この記事が気に入ったらサポートをしてみませんか?