programing

워드프레스:사용자용 새 사용자 이름 필드 만들기

madecode 2023. 3. 14. 22:05
반응형

워드프레스:사용자용 새 사용자 이름 필드 만들기

드롭다운 선택 값을 사용하여 새 사용자 이름 필드를 작성하려면 어떻게 해야 합니까?

원하는 새 사용자 지정 필드의 특정 값을 가진 모든 사용자에 대한 조건문을 작성하려고 합니다.

예를들면,

[ Approved ]드롭다운 값은 [Yes]와 [No]입니다.

조건문은 Approved 필드 값이 Yes인 모든 사용자를 인식합니다.그러면 코드가 게시됩니다.

wp_get_current_user function()을 사용하고 있습니다.이 함수는 제가 필요로 하는 바로 그 기능을 수행하는데, 새로운 커스텀 유저메타 필드가 필요합니다.이 예에서는 새로운 usermeta 필드가 "artwork_approved"가 됩니다.

예:

wp_get_current_user();
if ($current_user->artwork_approved == 'Yes'){
    echo 'Thank you for approving your artwork!';
}

플러그인이 없는 것 같아서 이 기능이 꼭 필요합니다.드롭 다운 옵션이 있는 새로운 유저메타를 만드는 방법에 대해 조언해 주시면 감사하겠습니다.

* 갱신:

Register Plus Redux를 사용하여 "Artwork Approved"라는 새로운 사용자 이름 필드를 만들었습니다.드롭다운 옵션으로 "아니오"와 "예" 옵션을 지정했습니다.[아니오(No)]옵션은 기본값으로 설정되어 있습니다.

이를 통해 "Artwork Approved" 사용자 이름 필드가 생성되었습니다.사용자 계정을 관리하고 예 또는 아니요를 선택합니다.이 새로운 usermeta 필드에서는 현재 사용자가 "Yes"의 값을 가진 "Artwork Approved"가 있는지 확인해야 하는 기능을 사용하고 있습니다.그러면 특정 코드를 보여주게 됩니다.

다음은 Im이 새로운 usermeta 필드와 함께 사용하는 if 문을 나타냅니다.

<?php global $current_user; get_currentuserinfo(); if ($current_user->artwork_approved == 'Yes') { ?>

echo 'Your artwork is approved';

<?php } else { ?>         

echo 'Your artwork is not approved';

<?php } ?> 

하지만 if 문장의 첫 부분을 인식하지 못하고 있습니다.아트워크가 승인된 계정에 로그인하면 아트워크 승인 옵션인 "예"가 있더라도 if 문에 "else" 부분만 표시됩니다.

성명서에 Yes Option이 있는데 왜 인식이 안 되는지 모르겠어요.

감사해요.

간단한 플러그인을 생성하여 사용자 프로파일 작업에 연결하고 새 필드를 추가할 수 있습니다.

필드를 양식에 추가하려면show_user_profile그리고.edit_user_profile[ actions ]를 선택하여 폼필드 HTML을 출력합니다.아래는 드롭다운이 아닌 체크박스를 사용합니다.

add_action('show_user_profile', 'my_user_profile_edit_action');
add_action('edit_user_profile', 'my_user_profile_edit_action');
function my_user_profile_edit_action($user) {
  $checked = (isset($user->artwork_approved) && $user->artwork_approved) ? ' checked="checked"' : '';
?>
  <h3>Other</h3>
  <label for="artwork_approved">
    <input name="artwork_approved" type="checkbox" id="artwork_approved" value="1"<?php echo $checked; ?>>
    Artwork approved
  </label>
<?php 
}

그리고 나서 그 안에 접속할 필요가 있습니다.personal_options_update그리고.edit_user_profile_updateactions, 필드의 값을 가져와 사용자 메타로 저장합니다.

add_action('personal_options_update', 'my_user_profile_update_action');
add_action('edit_user_profile_update', 'my_user_profile_update_action');
function my_user_profile_update_action($user_id) {
  update_user_meta($user_id, 'artwork_approved', isset($_POST['artwork_approved']));
}

당신의 상태는 다음과 같습니다.

if (get_user_meta($current_user->ID, 'artwork_approved', true)) {

두 번째 코드 블록은 다음과 같이 표시되어야 합니다.

add_action('personal_options_update', 'my_user_profile_update_action');
add_action('edit_user_profile_update', 'my_user_profile_update_action');
function my_user_profile_update_action($user_id) {
  update_user_meta($user_id, 'artwork_approved', $_POST['artwork_approved']);
}

에 의해 된 값update_user_meta$_POST['artwork_approved']isset($_POST['artwork_approved']).

언급URL : https://stackoverflow.com/questions/6141502/wordpress-create-a-new-usermeta-field-for-users

반응형