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>