Пребацивање између корисника

Опис

Овај додатак вам омогућава да се једним притиском на дугме брзо пребацујете између корисничких налога у Вордпресу. Одмах ћете бити одјављени и пријављени као жељени корисник. Ово је згодно за помоћ купцима на WooCommerce сајтовима, сајтовима за чланство, у окружењима за испробавање или на било ком сајту где администратори морају да се пребацују између више налога.

Функције

  • Пребацивање корисника: тренутно пребацивање на било који кориснички налог са екрана Корисници.
  • Повратак: тренутни повратак на првобитни налог.
  • Искључивање: одјава са налога уз задржавање могућности тренутног повратка.
  • Усаглашен са Multisite-ом, WooCommerce-ом, BuddyPress-ом и bbPress-ом.
  • Усаглашен са већином додатака за чланство и управљање корисницима.
  • Усаглашен са већином решења за двофакторску потврду идентитета (погледајте ЧПП за више података).
  • Одобрен за употребу на Вордпрес платформама пословног нивоа као што су Altis и WordPress VIP.

Напомена: User Switching подржава издања Вордпреса до три године старости и PHP издање 7.4 или новије.

Безбедност

  • Корисничке налоге могу пребацивати само корисници који могу да уређују друге кориснике. Подразумевано су то само администратори на појединачним сајтовима и супер администратори на Multisite постављањима.
  • Лозинке се не откривају (и не могу се открити).
  • Користи Вордпресов систем потврде идентитета колачићима при памћењу налога са којих сте се пребацили и при повратку.
  • Примењује Вордпресов безбедносни систем једнократних кôдова, што значи да се могу пребацивати само они који то намеравају.
  • Потпуна подршка за проверу ваљаности корисничке сесије где је то прикладно.
  • Потпуна подршка за HTTPS.

Употреба

  1. Посетите изборник Корисници у Вордпресу и видећете везу Пребаци на у списку веза за радње код сваког корисника.
  2. Притисните је и одмах ћете се пребацити на тај кориснички налог.
  3. На првобитни налог можете се вратити преко везе Пребаци назад на сваком екрану контролне табле или у изборнику профила на Вордпресовој траци алата.

Такође, у Вордпресовој палети наредби можете потражити корисника и одмах се пребацити на његов налог. Одатле можете и да се искључите и вратите.

Погледајте ЧПП за податке о функцији Искључи.

Други додаци

Одржавам и неколико других додатака за програмере. Погледајте их:

  • Query Monitor је плоча алата за програмере за Вордпрес
  • WP Crontrol вам омогућава да видите и управљате оним што се дешава у систему WP-Cron

Захвалнице

Време које посвећујем одржавању овог и других додатака делимично спонзоришу:

Изјава о приватности

User Switching не шаље податке трећим странама, не укључује ресурсе трећих страна и никада неће то чинити.

User Switching користи колачиће прегледача да би корисницима омогућио пребацивање на други налог. Његови колачићи раде на истом начелу као колачићи за потврду идентитета у основи Вордпреса, што значи да њихове вредности садрже поље user_login корисника у обичном тексту, које треба сматрати потенцијално личним подацима за препознавање (PII) из разлога приватности и прописа (GDPR, CCPA итд.). Називи колачића су:

  • wordpress_user_sw_{COOKIEHASH}
  • wordpress_user_sw_secure_{COOKIEHASH}
  • wordpress_user_sw_olduser_{COOKIEHASH}

Погледајте и ЧПП за нека питања у вези са приватношћу и безбедношћу при пребацивању између корисника.

Изјава о приступачности

User Switching тежи потпуној приступачности за све кориснике. Примењује најбоље праксе веб приступачности, даје семантички и структурисан код, придржава се подразумеваних стилова и смерница приступачности Вордпреса, користи API-је за приступачност које пружају Вордпрес и веб прегледачи где је то прикладно и потпуно је приступачан преко тастатуре.

User Switching треба да испуњава смернице за приступачност веб садржаја (WCAG) 2.0 на нивоу AA када се користи уз новије издање Вордпреса чији административни део испуњава те смернице. Ако сте наишли на проблем приступачности у User Switching-у или га уочили, отворите тему на форуму подршке за додатак User Switching и проблем ће брзо бити решен.

Снимци екрана

ЧПП

Да ли овај додатак ради са PHP 8?

Да, активно се испробава и ради до PHP 8.5.

Шта значи „Искључи“?

Искључивање вас одјављује са налога, али задржава ваш кориснички ИБ у колачићу за потврду идентитета, тако да се можете одмах вратити без поновне ручне пријаве. То је слично пребацивању на „никог“, уз могућност повратка.

Веза Искључи налази се у изборнику профила на Вордпресовој траци алата. Када се искључите, веза Пребаци назад биће приказана на неколико места:

  • У подножју сајта
  • На екрану за пријаву
  • У виџету „Мета“

Да ли овај додатак ради са Вордпресовим Multisite-ом?

Да, а моћи ћете и да пребацујете кориснике са екрана Корисници у администрацији мреже.

Да ли овај додатак ради са WooCommerce-ом?

Да, а моћи ћете и да пребацујете кориснике са разних административних екрана WooCommerce-а док сте пријављени као управник продавнице или администратор.

Да ли овај додатак ради са BuddyPress-ом?

Да, а моћи ћете и да пребацујете кориснике са екрана профила чланова и екрана са списком чланова.

Да ли овај додатак ради са bbPress-ом?

Да, а моћи ћете и да пребацујете кориснике са екрана профила чланова.

Да ли овај додатак ради ако мој сајт користи додатак за двофакторску потврду идентитета?

Да, углавном.

Један изузетак који ми је познат је Duo. Ако користите Duo Universal или Duo Security, треба да поставите додатак User Switching for Duo који спречава приказивање упита за двофакторску потврду идентитета када се пребацујете између корисника.

Која способност је кориснику потребна да би пребацивао налоге?

Кориснику је потребна способност edit_users да би пребацивао корисничке налоге. Подразумевано ову способност имају само администратори, а када је укључен Multisite, само супер администратори.

Прецизније, корисник мора имати способност уређивања циљног корисника да би се пребацио на њега. То значи да ако имате произвољно мапирање корисничких способности које користи способности edit_users или edit_user да би утицало на то ко може да уређује друге, User Switching треба то да поштује.

Могу ли обични администратори на Multisite постављањима да пребацују налоге?

Не. Ово се ипак може укључити постављањем додатка User Switching for Regular Admins.

Може ли се могућност пребацивања налога доделити другим корисницима или улогама?

Да. Мета способност switch_users може се изричито доделити кориснику или улози како би могли да пребацују кориснике без обзира на то да ли имају способност edit_users. У пракси ће кориснику или улози бити потребна и способност list_users да би могли да приступе изборнику Корисници у Вордпресовом административном делу.

add_filter( 'user_has_cap', function( $allcaps, $caps, $args, $user ) {
    if ( 'switch_to_user' === $args[0] ) {
        if ( my_condition( $user ) ) {
            $allcaps['switch_users'] = true;
        }
    }
    return $allcaps;
}, 9, 4 );

Напомене:

  • Ово мора да се догоди пре филтрирања способности самог User Switching-а, отуда приоритет 9.
  • Параметар $user је тренутно пријављени корисник.
  • ИБ циљног корисника налази се у $args[2].

Може ли се корисницима ускратити могућност пребацивања налога?

Да. Корисничке способности у Вордпресу могу се поставити на false да би се ускратиле кориснику. Ускраћивање способности switch_users спречава корисника да пребацује кориснике, чак и ако има способност edit_users.

add_filter( 'user_has_cap', function( $allcaps, $caps, $args, $user ) {
    if ( 'switch_to_user' === $args[0] ) {
        if ( my_condition( $user ) ) {
            $allcaps['switch_users'] = false;
        }
    }
    return $allcaps;
}, 9, 4 );

Напомене:

  • Ово мора да се догоди пре филтрирања способности самог User Switching-а, отуда приоритет 9.
  • Параметар $user је тренутно пријављени корисник.
  • ИБ циљног корисника налази се у $args[2].

Могу ли да додам произвољну везу „Пребаци на“ у свој додатак или тему?

Да. Користите методу user_switching::maybe_switch_url(). Она се стара о потврди идентитета и враћа URL заштићен једнократним кôдом помоћу ког се тренутни корисник пребацује на наведени кориснички налог.

if ( method_exists( 'user_switching', 'maybe_switch_url' ) ) {
    $url = user_switching::maybe_switch_url( $target_user );
    if ( $url ) {
        printf(
            '<a href="%1$s">Switch to %2$s</a>',
            esc_url( $url ),
            esc_html( $target_user->display_name )
        );
    }
}

Ако желите да одредите URL на који се корисник преусмерава после пребацивања, додајте параметар redirect_to у URL овако:

if ( method_exists( 'user_switching', 'maybe_switch_url' ) ) {
    $url = user_switching::maybe_switch_url( $target_user );
    if ( $url ) {
        // Redirect to the home page after switching:
        $redirect_to = home_url();
        printf(
            '<a href="%1$s">Switch to %2$s</a>',
            esc_url( add_query_arg(
                'redirect_to',
                rawurlencode( $redirect_to ),
                $url
            ) ),
            esc_html( $target_user->display_name )
        );
    }
}

Горњи кôд ради и за приказ везе за повратак на првобитног корисника, али ако желите изричиту везу за то, можете користити следећи кôд:

if ( method_exists( 'user_switching', 'get_old_user' ) ) {
    $old_user = user_switching::get_old_user();
    if ( $old_user ) {
        printf(
            '<a href="%1$s">Switch back to %2$s</a>',
            esc_url( user_switching::switch_back_url( $old_user ) ),
            esc_html( $old_user->display_name )
        );
    }
}

Могу ли да утврдим да ли се тренутни корисник пребацио на свој налог?

Да. Користите функцију current_user_switched(). Ако се тренутни корисник пребацио на свој налог са другог налога, она враћа објекат WP_User за првобитног корисника, а у супротном враћа false.

if ( function_exists( 'current_user_switched' ) ) {
    $switched_user = current_user_switched();
    if ( $switched_user ) {
        // User is logged in and has switched into their account.
        // $switched_user is the WP_User object for their originating user.
    }
}

Могу ли да бележим свако пребацивање корисника на други налог?

Можете поставити додатак за праћење радњи као што су Simple History, WP Activity Log или Stream, који сви имају уграђену подршку за User Switching и бележе унос када се корисник пребаци на други налог.

Да ли овај додатак омогућава кориснику да другом кориснику подметне неку радњу?

Потенцијално да, али User Switching садржи неке безбедносне заштите за ово, а као администратор сајта можете предузети и додатне мере опреза:

  • Можете поставити додатак за праћење радњи као што су Simple History, WP Activity Log или Stream, који сви имају уграђену подршку за User Switching и бележе унос када се корисник пребаци на други налог.
  • User Switching чува ИБ првобитног корисника у новој Вордпресовој корисничкој сесији корисника на кога се пребацује. Иако ова сесија подразумевано не остаје сачувана при каснијем повратку, запис овог ИБ-а постојаће ако сервер базе података има укључено бележење упита.
  • User Switching чува корисничко име првобитног корисника у колачићу за потврду идентитета (погледајте Изјаву о приватности за више података). Ако дневници приступа вашег сервера чувају податке колачића, за сваки захтев за приступ постојаће запис овог корисничког имена (уз IP адресу).
  • User Switching покреће радњу када се корисник пребаци на други налог, искључи се или се врати (погледајте испод). Ове радње можете користити за додатно бележење из безбедносних разлога, у зависности од ваших потреба.

Једно или више од наведеног требало би да вам омогући да повежете радњу са првобитним корисником када се корисник пребаци на други налог, ако вам то затреба.

Имајте на уму да и без додатка User Switching сваки корисник који може да уређује другог корисника и даље може да другом кориснику подметне неку радњу, на пример тако што му промени лозинку и ручно се пријави на тај налог. Ако сте забринути због злоупотребе, будите веома пажљиви при додели административних права корисницима.

Да ли ме овај додатак упозорава ако покушам да се пребацим на налог на који је неко други већ пребачен?

Да. Када се то догоди, биће приказан упит да потврдите да желите да наставите пребацивање на тај налог.

Ова функција је корисна ако на сајту имате више корисника који се можда истовремено пребацују на друге корисничке налоге, на пример тим агената подршке.

Могу ли да пребацујем кориснике директно са административне траке алата?

Да, у Вордпресовој палети наредби можете потражити корисника и одмах се пребацити на његов налог. Одатле можете и да се искључите и вратите.

Да ли се позивају неке радње додатка када се корисник пребаци на други налог?

Да. Када се корисник пребаци на други налог, позива се кука switch_to_user:

/**
 * Fires when a user switches to another user account.
 *
 * @since 0.6.0
 * @since 1.4.0 The `$new_token` and `$old_token` parameters were added.
 *
 * @param int    $user_id     The ID of the user being switched to.
 * @param int    $old_user_id The ID of the user being switched from.
 * @param string $new_token   The token of the session of the user being switched to. Can be an empty string
 *                            or a token for a session that may or may not still be valid.
 * @param string $old_token   The token of the session of the user being switched from.
 */
do_action( 'switch_to_user', $user_id, $old_user_id, $new_token, $old_token );

Када се корисник врати на првобитни налог, позива се кука switch_back_user:

/**
 * Fires when a user switches back to their originating account.
 *
 * @since 0.6.0
 * @since 1.4.0 The `$new_token` and `$old_token` parameters were added.
 *
 * @param int       $user_id     The ID of the user being switched back to.
 * @param int|false $old_user_id The ID of the user being switched from, or false if the user is switching back
 *                               after having been switched off.
 * @param string    $new_token   The token of the session of the user being switched to. Can be an empty string
 *                               or a token for a session that may or may not still be valid.
 * @param string    $old_token   The token of the session of the user being switched from.
 */
do_action( 'switch_back_user', $user_id, $old_user_id, $new_token, $old_token );

Када се корисник искључи, позива се кука switch_off_user:

/**
 * Fires when a user switches off.
 *
 * @since 0.6.0
 * @since 1.4.0 The `$old_token` parameter was added.
 *
 * @param int    $old_user_id The ID of the user switching off.
 * @param string $old_token   The token of the session of the user switching off.
 */
do_action( 'switch_off_user', $old_user_id, $old_token );

Када се корисник пребаци на други налог, искључи се или се врати, филтер user_switching_redirect_to примењује се на одредиште на које се преусмерава:

/**
 * Filters the redirect location after a user switches to another account or switches off.
 *
 * @since 1.7.0
 *
 * @param string       $redirect_to   The target redirect location, or an empty string if none is specified.
 * @param string|null  $redirect_type The redirect type, see the `user_switching::REDIRECT_*` constants.
 * @param WP_User|null $new_user      The user being switched to, or null if there is none.
 * @param WP_User|null $old_user      The user being switched from, or null if there is none.
 */
return apply_filters( 'user_switching_redirect_to', $redirect_to, $redirect_type, $new_user, $old_user );

Поред тога, User Switching поштује следеће филтере из основе Вордпреса када је то прикладно:

  • login_redirect при пребацивању на другог корисника.
  • logout_redirect при искључивању.

Како да пријавим безбедносну грешку?

Приватну пријаву безбедносног пропуста за User Switching можете поднети преко језичка Security у GitHub складишту. Поступак GitHub Security Advisory олакшава приватну сарадњу на безбедносним проблемима. За исправну пријаву добићете заслуге и CVE ако је потребно.

Не пријављујте безбедносне проблеме на форумима подршке на WordPress.org нити путем е-поште. Хвала.

Да ли прихватате донације?

Прихватам спонзорства путем програма GitHub Sponsors и свака подршка коју можете да пружите помоћи ће ми да одржавам овај додатак и да остане бесплатан за све.

Рецензије

16. децембар 2025.
What a great plug in! Made my life so much easier – thank you!
3. јун 2025.
Had to test what multiple user roles see after logging in and User Switching plugin helped tremendously. No fussing with fake/temp accounts needed.
6. децембар 2024.
I integrate this plugin with BuddyBoss, WooCommerce, and some of my custom dashboards. It’s a very handy plugin and has saved me a lot of time by providing features that I would otherwise have to develop from scratch.
10. новембар 2024.
Very happy with this plugin! It’s simple to use and works flawlessly, making my tasks easier and more efficient.
Прочитај свих 239 рецензија

Сарадници и градитељи

„Пребацивање између корисника“ је софтвер отвореног кода. Следећи људи су допринели овом додатку.

Сарадници

„Пребацивање између корисника“ је преведен на 50 језика. Хвала преводиоцима на њиховим доприносима.

Преведите „Пребацивање између корисника“ на свој језик.

Заинтересовани сте за развој?

Прегледајте кôд, погледајте SVN складиште или се претплатите на дневник развоја преко RSS-а.

Дневник измена

1.12.2 (29. август 2026.)

  • Исправљено упозорење useSelect које је изазивала интеграција са палетом наредби
  • Додати ARIA натписи везама за повратак
  • Испробано до Вордпреса 7.1
  • Најмање подржано издање Вордпреса подигнуто је на 6.3

1.12.1 (9. јул 2026.)

  • Исправља тачку која је била чврсто уписана после везе „Пребаци назад“ и могла да поквари интерпункцију у другим језицима
  • Прелази на wp_print_inline_script_tag() за уметнуту скрипту
  • Дотеривање стила дугмета „Пребаци назад“ у подножју
  • Потврђује потпуну усаглашеност са PHP 8.5

1.12.0 (24. мај 2026.)

  • Уводи могућност пребацивања корисника из Вордпресове палете наредби
  • Потврђује подршку за Вордпрес 7.0

1.11.2 (27. фебруар 2026.)

  • Исправља истекли једнократни кôд на вези за повратак после уништења корисничке сесије
  • Исправља могуће упозорење о недефинисаној константи колачића у руковаоцу wp_die

1.11.1 (4. децембар 2025.)

  • Потврђује подршку за Вордпрес 6.9

1.11.0 (15. октобар 2025.)

  • Додаје везу „Пребаци назад“ на све екране wp_die() када сте пребачени на други налог.

1.10.0 (27. јул 2025.)

  • Када је корисник пребачен, све поруке User Switching-а приказују се на језику првобитног корисника

1.9.2 (16. април 2025.)

  • Потврђује подршку за Вордпрес 6.8
  • Мања побољшања квалитета кода

1.9.1 (5. децембар 2024.)

  • Исправља употребу параметара wp_login и wp_logout која је могла да изазове кобну грешку када се проследи неочекивана вредност.

1.9.0 (21. новембар 2024.)

  • Уводи поруку за потврду када корисник покуша да се пребаци на налог на који је неко други већ пребачен. Корисно за тимове инжењера подршке који се пребацују на налоге купаца.
  • Потврђује подршку за Вордпрес 6.7.
  • Потврђује подршку за PHP 8.4.
  • Разна побољшања квалитета кода.

Ранија издања

За дневник измена ранијих издања погледајте страницу издања на GitHub-у.