レッスン予約プラグインについてのメモです。
前回、「講師」ユーザーの編集ページに項目を追加しましたが、同じ要領で「会員」ユーザーの編集ページに「有効期限」という項目を追加します。会員登録をし入金を済ませると、入金確認後に管理者が「有効期限」を更新する、という流れです。
「会員」ユーザー自身はプロフィールページで「有効期限」の確認はできるが、変更はできない、というようにします。
ユーザー編集ページに項目を追加する
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 |
/** * ユーザー編集ページに項目追加(管理者用) */ add_action('edit_user_profile', 'addMetaTerm'); function addMetaTerm(){ $user_id = $_GET['user_id']; $user_query = new WP_User_Query(array('include' => array($user_id))); $user = $user_query->results[0]; // 権限グループ「購読者」の場合 if(in_array('subscriber', $user->roles)){ $term = get_user_meta($user->ID, 'term', true); $format = <<<EOD <h3>有効期限</h3> <table class="form-table"> <tr> <th><label for="term">有効期限</label></th> <td><input type="text" name="term" id="term" value="%s" /></td> </tr> </table> EOD; printf($format, $term); } } |
プロフィールページに項目を追加する
「有効期限」は "readonly" にします。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 |
/** * プロフィール追加項目の表示 */ add_action('show_user_profile', 'showMetaTerm'); function showMetaTerm(){ $user = wp_get_current_user(); // 権限グループ「購読者」の場合 if(in_array('subscriber', $user->roles)){ $term = get_user_meta($user->ID, 'term', true); $format = <<<EOD <h3>有効期限</h3> <table class="form-table"> <tr> <th><label for="term">有効期限</label></th> <td><input type="text" name="term" id="term" value="%s" readonly /> 有効期限はご入金の確認後に更新されます。</td> </tr> </table> EOD; printf($format, $term, $description); } } |
追加した項目をユーザー情報更新時に保存する
1 2 3 4 5 6 7 8 9 10 11 12 13 14 |
/** * ユーザー情報追加項目の保存 */ add_action('profile_update', 'updateMetaTerm'); function updateMetaTerm(){ $user_id = $_POST['user_id']; // 講師 if (!empty($_POST['term'])){ update_user_meta($user_id, 'term', $_POST['term']); } else { delete_user_meta($user_id, 'term', ''); } } |
ユーザーを削除したらユーザーメタ情報も削除する
1 2 3 4 5 6 7 |
/** * ユーザー情報追加項目の削除 */ add_action('delete_user', 'deleteMetaTerm'); function deleteMetaTerm($user_id){ delete_user_meta($user_id, 'term'); } |
スクリーンショット
ユーザー編集ページ(管理者用)に項目を追加します。
プロフィールページ(ユーザー自身ログイン時)に項目を追加します。
有効期限の確認はできますが、変更はできません。
コメントを残す