WordPressのユーザー情報にチェックボックス項目を追加する際、複数選択が反映されません。
下記コードの場合、追加-Aと追加-Cにチェックを入れても追加-Cしかcheckedが付与されません。
複数選択を反映させるためにはどのようにしたらよいでしょうか。
テキストフィールドやラジオボタンの場合は複数選択ではないので問題なく実装できました。
PHP
1//ユーザーのプロフィール情報に項目を追加 2function set_user_profile($bool) { 3 global $profileuser; 4 5 echo '<tr><th><label for="user_tuika">追加</th><td>'; 6 echo '<input type="checkbox" name="user_tuika" value="追加-A"'.(($profileuser->user_tuika == '追加-A') ? ' checked' : '').'>追加-A '; 7 echo '<input type="checkbox" name="user_tuika" value="追加-B"'.(($profileuser->user_tuika == '追加-B') ? ' checked' : '').'>追加-B '; 8 echo '<input type="checkbox" name="user_tuika" value="追加-C"'.(($profileuser->user_tuika == '追加-C') ? ' checked' : '').'>追加-C'; 9 echo '</td></tr>'; 10 11 return $bool; 12} 13add_action('show_password_fields', 'set_user_profile'); 14 15//更新 16function update_user_profile($user_id, $old_user_data) { 17 if ( isset( $_POST['user_tuika'] ) && $old_user_data->user_tuika != $_POST['user_tuika'] ) { 18 $user_tuika = sanitize_text_field( $_POST['user_tuika'] ); 19 $user_tuika = wp_filter_kses( $user_tuika ); 20 $user_tuika = _wp_specialchars( $user_tuika ); 21 update_user_meta( $user_id, 'user_tuika', $user_tuika ); 22 } 23} 24add_action('profile_update', 'update_user_profile', 10, 2); 25 26//ユーザーを削除したらユーザーメタ情報も削除 27function delete_user_profile($user_id){ 28 delete_user_meta($user_id, 'user_tuika'); 29} 30add_action('delete_user', 'delete_user_profile');
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2018/10/02 10:20
2018/10/02 11:32
2018/10/03 09:40