WordPress, получение идентификатора страницы профиля пользователя, редактируемой в данный момент. - PullRequest
0 голосов
/ 29 мая 2018

Я нахожусь в процессе разработки плагина WordPress.При редактировании страницы профиля пользователя мне нужно иметь возможность получить идентификатор этого пользователя (, а не зарегистрированный в данный момент пользователь ).

Я использую плагин Advanced Custom fields,и использование загрузочного фильтра для рассматриваемой функции.

add_filter( 'acf/load_field/name=funbotic_parents', 'funbotic_load_parents' );

function funbotic_load_parents( $field ) {

    $args = array(
        'role'      => 'customer',
        'orderby'   => 'display_name',
        'order'     => 'ASC',
    );

    $parent_data_array = get_users( $args );

    // Clear choices array in case it was previously set.
    $field['choices'] = array();

    foreach ( $parent_data_array as $parent ) {
        $parent_ID = $parent->ID;
        $parent_display_name = $parent->display_name;
        $field['choices'][$parent_ID] = $parent_display_name;
    }

    $current_user = (int) $_GET['user_id'];

    $previously_associated_parents = get_user_meta( $current_user_id, 'funbotic_parents' );

    if ( empty( $previously_associated_parents ) || is_null( $previously_associated_parents ) ) {
        update_user_meta( $current_user_id, 'funbotic_previously_associated_parents', $previously_associated_parents );
    } else {
        $new_meta = funbotic_clean_array( $previously_associated_parents );
        update_user_meta( $current_user_id, 'funbotic_previously_associated_parents', $new_meta );
    }

    return $field;

}

Строка $current_user = (int) $_GET['user_id']; возвращает null.Есть ли способ извлечь 'user_id' из URL?Это не идеальное решение, но в этот момент я начинаю впадать в отчаяние.URL выглядит так:

http://dev-funbotic.local/wp-admin/user-edit.php?user_id=115&wp_http_referer=%2Fwp-admin%2Fusers.php%3Fs%3Dtest%26action%3D-1%26new_role%26course_id%26group_id%26paged%3D1%26action2%3D-1%26new_role2

1 Ответ

0 голосов
/ 30 мая 2018

Вы можете попытаться получить текущий URL-адрес и разбить его на параметры запроса следующим образом:

$query  = explode('&', $_SERVER['QUERY_STRING']);
                $params = array();
                if(!empty($query[0])){
                    foreach( $query as $param ){
                    list($name, $value) = explode('=', $param, 2);
                    $params[urldecode($name)][] = urldecode($value);
                    }
                }


, затем вы можете получить доступ к user_id с помощью $params['user_id'][0]

...