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/confirmation.php
<?php
  /**
   * 仮登録したユーザを本登録する処理
   * 仮登録完了時に送られるメール内のリンクをクリックした場合に表示される
   */

  $result = ganryujima_register_user();

  function ganryujima_register_user() {
    global $wpdb;

    if(!isset($_GET['confirmation_token']) || $_GET['confirmation_token'] =='') {
      return array(
        'success' => false,
        'message' => '確認用メールアドレスのリンクから<br/>表示されませんでした'
      );
    }
    $token = $_GET['confirmation_token'];

    // 仮登録データベースからユーザ情報を取得
    $data = $wpdb->get_row('SELECT * FROM ' . $wpdb->prefix . 'interim_user WHERE token="' . $token . '"', ARRAY_A);

    // 仮登録データベースに該当ユーザが存在しない
    if($data == null) {
      return array(
        'success' => false,
        'message' => 'このリンクは既に無効になっています。<br/><br/>お手数をおかけいたしますが、<br/>再度ご登録をお願い致します。'
      );
    }

    $datas = json_decode($data['datas'], true);
    $new_user_fields = $datas['new_user_fields'];
    $wpmem_fields = $datas['wpmem_fields'];
    $fields = $datas['fields'];
    $new_user_fields_meta = $datas['new_user_fields_meta'];

    // 本番用にユーザ登録
    $fields['ID'] = wp_insert_user( $new_user_fields );
    if(is_wp_error($fields['ID'])) {
      return array(
        'success' => false,
        'message' => 'ユーザ登録に失敗しました。<br/><br/>このユーザは既に存在しているか、<br/>入力されたデータが誤っています。'
      );
    }

    // ユーザ登録でデフォルトで必要なデータ以外をメタデータとして保存する
    // set remaining fields to wp_usermeta table
    $excluded_meta = wpmem_get_excluded_meta( 'register' );
    foreach( $wpmem_fields as $meta ) {
      // if the field is not excluded, update accordingly
      if( ! in_array( $meta[2], $excluded_meta ) && ! in_array( $meta[2], $new_user_fields_meta ) ) {
        if( $meta[4] == 'y' && $meta[2] == 'profile_image' ) {
          // プロフィール画像
          if($fields['profile_image'] == '') {
            $image = ABSPATH . '/assets/images/avatar/avatar1.svg';
          } else {
            rename($fields['profile_image'], ABSPATH . 'assets/img/user/' . $fields['ID'] . '-' . $fields['profile_image_name']);
            $image = home_url() . '/assets/img/user/' . $fields['ID'] . '-' . $fields['profile_image_name'];
            $fields['profile_image'] = $image;
          }
          update_user_meta($fields['ID'], 'profile_image', $image);
        } else if( $meta[4] == 'y' && $meta[2] != 'user_email' ) {
          update_user_meta( $fields['ID'], $meta[2], $fields[$meta[2]] );
        }
      }
    }

    // capture IP address of user at registration
    update_user_meta( $fields['ID'], 'wpmem_reg_ip', $fields['wpmem_reg_ip'] );

    // store the registration url
    update_user_meta( $fields['ID'], 'wpmem_reg_url', $fields['wpmem_reg_url'] );

    // set user expiration, if used
    if( WPMEM_USE_EXP == 1 && WPMEM_MOD_REG != 1 ) { wpmem_set_exp( $fields['ID'] ); }

    // notify admin of new reg, if needed;
    // if( WPMEM_NOTIFY_ADMIN == 1 ) { wpmem_notify_admin( $fields['ID'], $wpmem_fields ); }
    if($wpdb->delete($wpdb->prefix . 'interim_user', array('token' => $token)) == false) {
      return array(
        'result' => false,
        'message' => '仮登録テーブルから<br/>ユーザを削除できませんでした'
      );
    }

    // 自動ログイン
    wp_signon(array(
      'user_login' => $new_user_fields['user_login'],
      'user_password' => $new_user_fields['user_pass'],
      'remember' => true
    ));

    return array(
      'success' => true,
      'message' => '会員登録が完了しました'
    );
  }
?>
<!-- Content Area -->
<div class="error-page m-coming">
  <?php
  if($result['success']) {
    echo '<h3>Thank you</h3><h4>会員登録完了</h4>';
  } else {
    echo '<h3>Sorry..</h3><h4>会員登録失敗</h4>';
  }
  ?>
  <p class="note"><?= $result['message'] ?></p>
  <p><a href="<?= home_url() ?>" class="button tiny">ホームへ戻る</a></p>
</div>