2. 7 ユーザー新規追加・編集のカスタマイズ

ニックネーム, 部署, HTML編集可否

ユーザー新規追加のカスタマイズ

 ユーザー新規追加の入力画面に次の項目の入力欄を設置します。
   ・ニックネーム
   ・部署
   ・HTML編集可否

コード

// --------------------------------
// ユーザー新規追加
//   ニックネーム入力欄設置
//   部署入力欄設置
//   HTML編集可否入力欄設置
// --------------------------------
function hk_functions_user_new_form() {
    // ニックネーム
    echo '<table class="form-table">'."\n";
    echo '  <tr class="user-nickname-wrap">'."\n";
    echo '    <th><label for="nickname">ニックネーム</label></th>'."\n";
    echo '    <td><input type="text" name="nickname" id="nickname" value="" /></td>'."\n";
    echo '  </tr>'."\n";
    // 部署
    echo '  <tr>'."\n";
    echo '    <th><label for="hk_section">部署</label></th>'."\n";
    echo '    <td><input type="text" name="hk_section" id="hk_section" value="" /></td>'."\n";
    echo '  </tr>'."\n";
    // HTML編集可否
    echo '  <tr>'."\n";
    echo '    <th scope="row">HTML編集可否</th>'."\n";
    echo '    <td>'."\n";
    echo '<input type="radio" name="hk_can_html" value="yes" /> HTML編集可  '."\n";
    echo '<input type="radio" name="hk_can_html" value="no" checked="checked" /> HTML編集不可'."\n";
    echo '    </td>'."\n";
    echo '  </tr>'."\n";
    echo '</table>'."\n";
    return;
}
add_action( 'user_new_form', 'hk_functions_user_new_form' );

ユーザーの編集のカスタマイズ

 ユーザーの編集とプロフィールの入力画面に次の項目の入力欄を設置します。
   ・部署
   ・HTML編集可否

コード

// --------------------------------
// ユーザーの編集
// プロフィール
//   部署入力欄設置
//   HTML編集可否入力欄設置
// --------------------------------
function hk_functions_personal_options( $profileuser ) {
    $user_id = $profileuser->ID;
    // 部署
    $section = get_user_meta( $user_id, 'hk_section', true );
    $section = htmlspecialchars( $section );
    echo '  <tr>'."\n";
    echo '    <th scope="row">部署</th>'."\n";
    echo '    <td><input type="text" name="hk_section" value="'.$section.'" /></td>'."\n";
    echo '  </tr>'."\n";
    // HTML編集可否
    $can_html = get_user_meta( $user_id, 'hk_can_html', true );
    echo '  <tr>'."\n";
    echo '    <th scope="row">HTML編集可否</th>'."\n";
    echo '    <td>'."\n";
    echo '<input type="radio" name="hk_can_html" value="yes"';
    if ( $can_html == 'yes' )    echo ' checked="checked"';
    echo ' /> HTML編集可  '."\n";
    echo '<input type="radio" name="hk_can_html" value="no"';
    if ( $can_html != 'yes' )    echo ' checked="checked"';
    echo ' /> HTML編集不可'."\n";
    echo '    </td>'."\n";
    echo '  </tr>'."\n";
    return;
}
add_action( 'personal_options', 'hk_functions_personal_options' );

DB書き込み

 次の項目の入力データを取り込みDBに書き込みます。
   ・部署
   ・HTML編集可否

コード

// --------------------------------
// ユーザー新規追加
// ユーザーの編集
// プロフィール
//   部署DB書き込み
//   HTML編集可否DB書き込み
// --------------------------------
function hk_functions_save_user_data( $user_id ) {
    if ( isset( $_REQUEST['hk_section'] ) ) {
        $section = $_REQUEST['hk_section'];
        update_user_meta( $user_id, 'hk_section', $section );
    }
    if ( isset( $_REQUEST['hk_can_html'] ) ) {
        if ( $_REQUEST['hk_can_html'] == 'yes')
            update_user_meta( $user_id, 'hk_can_html', 'yes' );
        else
            update_user_meta( $user_id, 'hk_can_html', 'no' );
    }
    return;
}
add_action( 'profile_update', 'hk_functions_save_user_data' );
add_action( 'user_register' , 'hk_functions_save_user_data' );

 このプログラムをお使いになる場合は、お使いになる方の自己責任でお願いします。

更新日:2016/03/21
掲載日:2015/11/15