HEX
Server: Apache
System: Linux 4485441ca2e2 6.8.0-1039-aws #41~22.04.1-Ubuntu SMP Thu Sep 11 11:03:07 UTC 2025 aarch64
User: (1000)
PHP: 8.2.24
Disabled: NONE
Upload Files
File: /var/www/html/wp-content/themes/ganryujima_new_1602/_member_scripts.php
<?php
if (is_page('members-password-edit')) {
  /**
   * パスワード再設定画面
   * リセットのためにはメール送信されるトークンが必要
   * リセット成功したらトップページへリダイレクト
   */
  if(isset($_POST['state']) && $_POST['state'] == 'commit') {
  	// パスワード再設定
  	$password = $_POST['password'];
  	$user_id = $_POST['user_id'];
  	$user = get_user_by('id', $user_id);
  	wp_set_password($password, $user_id);
  	wp_signon(array(
  		'user_login' => $user->user_login,
  		'user_password' => $password,
  		'remember' => true
  	));
  	$wpdb->delete($wpdb->prefix . 'reset_password', array('user_id' => $user_id));
    wp_safe_redirect(home_url() . '/members-password-edit-complete');
  	exit;

  } else {
  	// パスワード再設定用トークンが渡されていなければトップページへリダイレクト
  	if(!isset($_GET['reset_password_token']) || $_GET['reset_password_token'] == '') {
      wp_safe_redirect(home_url());
      exit;
    } else {
      $token = $_GET['reset_password_token'];
      $row = $wpdb->get_row('SELECT * FROM `' . $wpdb->prefix . 'reset_password` WHERE `token`="' . $token . '"');
      if($row == null) {
        wp_safe_redirect(home_url());
        exit;
      }
      $user_id = $row->user_id;
    }
  }
} else if (is_page('members-reset-password')) {
  /**
   * フォームの送り先はこのページ自体
   */
  $condition = '';
  $error = '';
  if(isset($_POST['state']) && $_POST['state'] == 'commit') {
    // 入力されたメールアドレスが存在するかどうか
    $email = $_POST['email'];
    $user = get_user_by('email', $email);
    if($user == false) {
      $error = 'メールアドレスは見つかりませんでした。<br>';
    } else {
      // パスワードリセット用トークン
      $token = uniqid(rand());
      // パスワード変更リクエストをDBに保存する
      $wpdb->insert($wpdb->prefix . 'reset_password', array(
        'token' => $token,
        'user_id' => $user->ID
      ));
      // メール本文の作成
      $message = <<<EOD
{{USER_NAME}} 様<br><br>
いつもご利用いただき誠にありがとうございます。<br>巌流島 運営局です。<br><br>
お客様のパスワード再設定のリクエストを受け付けました。<br><br>
下記のリンクからパスワードを再設定することができます。<br>
<a href="{{RESET_URL}}">パスワードを再設定する</a><br><br>
※パスワードを再設定しない場合はこのメールを破棄して下さい。<br>
上記のリンクをクリックしなければ、元のパスワードがご利用いただけます。<br><br>
尚、ご不明な点や何かお困りのことがございましたら、下記の<お問い合わせ窓口>までお気軽にご相談ください。<br>
今後とも 巌流島 をよろしくお願いいたします。<br><br>
本メールは 巌流島 でユーザー登録された方へ送信されるメールです。<br>
万が一このメールの内容にお心当たりがない場合は、下記の<お問い合わせ窓口>までご連絡ください。<br><br>
**************************************************<br><br>
巌流島 運営局<br><br>
<お問い合わせ窓口><br>
info@ganryujima.jp<br><br>
**************************************************<br>
EOD;

      $message = str_replace('{{USER_NAME}}', $user->display_name, $message);
      $message = str_replace('{{RESET_URL}}', home_url() . '/members-password-edit?reset_password_token=' . $token, $message);

      // メールを送信
      wp_mail($email, 'パスワードの再設定について', $message, array('From: 巌流島 <info@ganryujima.jp>'));

      $condition = 'done';
    }
  }
}
?>