programing

Word press 새 사용자 후크

lastmoon 2023. 3. 23. 23:04
반응형

Word press 새 사용자 후크

Wordpress에서 새 사용자를 추가하기 위해 몇 가지 사용자 지정 필드를 추가하고 싶습니다. 다음 후크를 사용하고 있습니다.

  • show_user_profile
  • edit_user_profile

이 후크는 프로파일 편집 페이지에 새로운 커스텀필드를 표시하지만 새로운 커스텀필드는 Add New User 페이지에 표시되도록 합니다.

또한 wp_usermeta 테이블에 값을 삽입하고 싶습니다.이 경우 다음 훅을 사용합니다.

  • personal_options_update
  • edit_user_profile_update

이러한 훅은 편집 또는 업데이트 프로파일에서도 정상적으로 동작하지만 프로파일 업데이트 시간이 아닌 새로운 사용자 추가 시 wp_usermeta tabe에 레코드를 삽입해야 합니다.

ADD New User에서 b를 사용할 훅 힌트를 주세요.

잘 부탁드립니다.

이 갈고리를 사용하다

add_action('user_new_form', 'xxxx');

네, 여기 사용자 추가/편집 시 사용자 mailChimp 등록 권한 체크박스를 추가하기 위한 전체 코드입니다.

    //Add a mailchimp permission field, on user creation, user profile update
    add_action('user_new_form', 'mailchimp_permission_field');
    add_action('show_user_profile', 'mailchimp_permission_field');
    add_action('edit_user_profile', 'mailchimp_permission_field');

    function mailchimp_permission_field($user) {
        ?>
        <table class="form-table">
            <tr class="form-field">
                <th scope="row"><label for="mail_chimp">Mail Chimp </label></th>
                <td>
                    <label for="mail_chimp">
                        <input style="width: auto;" type="checkbox" name="mail_chimp" id="mail_chimp" 
                            <?php if(current_filter() == 'user_new_form' || get_the_author_meta('mail_chimp', $user->ID )): ?>
                            checked = "checked"
                            <?php endif; ?> />
                        Subscribe to MailChimp.
                    </label>
                </td>
            </tr>
        </table>
    <?php }

// handle mailchimp registrations on user creation
    add_action( 'user_register', 'subscribe_to_mailchimp_after_registration', 10, 1 );

    function subscribe_to_mailchimp_after_registration( $user_id ) {
        if (isset($_POST['email']) && isset($_POST['mail_chimp']) && $_POST['mail_chimp'] == 'on') {
            mailchimp_subscribe($_POST['email']);
        }
    }

//Save new field for user in users_meta table
    add_action('user_register', 'save_mailchimp_permission_field');
    add_action('edit_user_profile_update', 'save_mailchimp_permission_field');

    function save_mailchimp_permission_field($user_id) {

        if (!current_user_can('edit_user', $user_id)) {
            return false;
        }

        if (isset($_POST['mail_chimp']) && $_POST['mail_chimp'] == 'on') {
            update_usermeta($user_id, 'mail_chimp', true);
            mailchimp_subscribe(get_userdata($user_id)->user_email);
        }
        else {
            update_usermeta($user_id, 'mail_chimp', false);
            mailchimp_unsubscribe(get_userdata($user_id)->user_email);
        }
    }

내가 볼 수 있는 한 새 사용자 페이지에서 트리거되는 작업 후크는 없습니다.user-new.php에서 검색.do_action.

설명서에 따르면 hook에게user_new_form액션은 물론 WordPress 버전이 3.7.0보다 높아야 합니다.

이 후크는 새로운 사용자 폼의 마지막에 기동됩니다.컨텍스트 스트링을 전달하여 두 가지 유형의 새 사용자 양식을 모두 고유한 대상으로 지정할 수 있도록 합니다.콘텍스트는add-existing-user(멀티 사이트)및add-new-user(단일 사이트 및 네트워크 관리자).

  add_action('user_new_form', 'your_function_name');

에서 이 코드를 사용해 보세요.wp-includes/user.php:

do_action('profile_update', XXXX);
do_action('user_register', XXXX);

새 사용자 양식의 사용자 지정 필드 값을 저장하기 위한 올바른 후크는 다음과 같습니다.

add_action('edit_user_created_user', 'your_callback');

매뉴얼 참조

user_register후크만 동작/ 를 통해 삽입된 사용자에 대해 호출됩니다.wp_insert_user()기능.

user_register그리고.edit_user_created_user설명은 같지만 다른 컨텍스트에서 호출된2개의 훅입니다

폼에 필드를 추가하여 새 사용자 사용을 생성할 수 있습니다.

add_action('user_new_form', 'your_callback');

언급URL : https://stackoverflow.com/questions/9139614/wordpress-add-new-user-hooks

반응형