Tovább a tartalomhoz

Csoportfiókok fejlesztőknek: objektumok, függvények, akciók és szűrők

A Group Accounts PHP-felülete: a csoport és csoporttag objektumok, a lekérdező függvények, a csoportmeta, az akciók és a szűrők.

Ez a fejezet a Group Accounts programozói felületét foglalja össze. A csoport- és csoporttag-objektumok, valamint a hozzájuk tartozó függvények a Group Accounts 2.0-s vagy újabb változatában érhetők el.

Egy csoport minden adatát tartalmazza. Az rcpga_get_group() függvénnyel kapod meg.

Metódus Mit ad vissza
get_group_id() A csoport azonosítóját.
get_owner_id() A tulajdonos felhasználói azonosítóját.
get_owner() A tulajdonos WP_User objektumát.
get_membership_id() A csoporthoz kapcsolt tagság azonosítóját, vagyis a tulajdonos tagságáét.
is_active() Igaz, ha a csoport aktív, azaz a hozzá tartozó tagság aktív.
get_name() A csoport nevét.
get_description() A csoport leírását.
get_code() A csoportkódot (2.1-től).
get_seats() A csoport legnagyobb férőhelyszámát.
get_member_count() A csoport jelenlegi tagjainak számát.
get_date_created( $formatted = false ) A létrehozás dátumát. Ha $formatted hamis, Y-m-d H:i:s formátumban, ha igaz, megjelenítésre kész szövegként.
get_members() A csoport tagjait RCPGA_Group_Member objektumok tömbjeként.
update( $args = array() ) Módosítja a csoportot a megadott adatokkal.
add_member( $args ) Új tagot ad a csoporthoz.
$group = rcpga_get_group( 1 );
$group->update( array(
'name' => 'Új csoportnév'
) );

Az add_member() paraméterei:

Paraméter Típus Leírás
user_email string Kötelező. A hozzáadandó tag e-mail-címe. Létező felhasználó vagy olyan is lehet, aki még nem létezik, ekkor új fiók jön létre.
user_login string Nem kötelező. Az új tag felhasználóneve, megadás nélkül az e-mail-cím.
first_name string Nem kötelező. Keresztnév.
last_name string Nem kötelező. Vezetéknév.
user_pass string Nem kötelező. Jelszó, megadás nélkül véletlenszerű.
role string Nem kötelező. Szerepkör: owner, admin, member vagy invited. Alapértelmezés: invited.
send_invite bool Nem kötelező. Küldjön-e meghívó e-mailt. Alapértelmezés: igen.

Siker esetén az új csoporttag azonosítóját adja vissza, hiba esetén WP_Error objektumot.

$group = rcpga_get_group( 1 );
$group->add_member( array(
'user_email' => '[email protected]',
'role' => 'invited',
'send_invite' => true
) );
Függvény Mit csinál
rcpga_get_group( $group_id ) RCPGA_Group objektumot ad vissza, vagy hamisat, ha nincs ilyen csoport.
rcpga_get_groups( $args = array() ) Csoportokat kérdez le, RCPGA_Group objektumok tömbjét adja.
rcpga_count_groups( $args = array() ) Megszámolja a csoportokat, ugyanazokkal az argumentumokkal, mint a lekérdezés.
rcpga_add_group( $args = array() ) Új csoportot hoz létre. Siker esetén az azonosítót adja, hiba esetén WP_Error-t.

Az rcpga_get_groups() argumentumai (mind elhagyható):

Argumentum Leírás
owner_id Szűrés a tulajdonos felhasználói azonosítójára.
name Keresés a csoport nevében.
code Keresés a csoportkódban (2.1-től).
date_created_query Szűrés a létrehozás dátumára, a WP_Date_Query formátumában.
number Legfeljebb ennyi találat. Alapérték: 20.
offset Ennyi találat kihagyása. Alapérték: 0.
orderby Rendezés: group_id, owner_id, name, seats, member_count, date_created. Alapérték: group_id.
order ASC vagy DESC. Alapérték: DESC.
search Keresés.

Az rcpga_add_group() argumentumai:

Argumentum Leírás
owner_id Kötelező. A tulajdonos felhasználói azonosítója.
membership_id Nem kötelező. A hozzá tartozó tagság azonosítója, a tulajdonosé. Ha nem adod meg, a csoport nem lesz teljesen aktív és használható.
name Kötelező. A csoport neve.
description Nem kötelező. A csoport leírása.
seats Nem kötelező. Legnagyobb férőhelyszám. Ha kimarad, és a membership_id meg van adva, a tagsági szint beállítása alapján számolódik.
member_count Nem kötelező. A jelenlegi tagok száma, alapértelmezés: 1 (a tulajdonossal együtt).

A csoportmeta a Group Accounts 2.1-es vagy újabb változatában érhető el. A függvények ugyanúgy működnek, mint a bejegyzések metaadatainál.

Függvény Megfelelője
RCPGA\Groups\get_meta( $group_id, $key = '', $single = false ) get_post_meta()
RCPGA\Groups\add_meta( $group_id, $meta_key, $meta_value, $unique = false ) add_post_meta()
RCPGA\Groups\update_meta( $group_id, $meta_key, $meta_value, $prev_value = '' ) update_post_meta()
RCPGA\Groups\delete_meta( $group_id, $meta_key, $meta_value = '' ) delete_post_meta()

A csoporttag objektum (RCPGA_Group_Member)

Szekció neve “A csoporttag objektum (RCPGA_Group_Member)”
Metódus Mit csinál
get_id() A csoporttag egyedi azonosítóját adja. Ez nem a felhasználói azonosító.
get_user_id() A felhasználói azonosítót adja.
get_group_id() Annak a csoportnak az azonosítóját adja, amelyben a tag van.
get_role() A tag szerepkörét adja: owner, admin, member vagy invited.
get_date_added( $formatted = false ) A csoporthoz adás dátumát adja, a get_date_created() mintájára.
update( $data = array() ) Módosítja a csoporttag rekordját.
remove() Eltávolítja a tagot a csoportból.
resend_invite() Újra elküldi a meghívó e-mailt.
Függvény Mit csinál
rcpga_get_group_member( $user_id, $group_id ) Egy felhasználó csoporttag-rekordját adja egy adott csoportban. Siker esetén RCPGA_Group_Member objektum, különben hamis.
rcpga_get_group_member_by_id( $id ) A csoporttagot az egyedi azonosítója alapján adja.
rcpga_get_group_members( $args = array() ) Csoporttag-rekordokat kérdez le.
rcpga_count_group_members( $args = array() ) Megszámolja a csoporttagokat, ugyanazokkal az argumentumokkal.
rcpga_delete_all_members_of_group( $group_id ) Törli a megadott csoport összes tagját.
rcpga_user_is_group_member( $user_id = 0, $role = '' ) Megmondja, hogy a felhasználó tagja-e bármelyik csoportnak. A $user_id alapértéke a bejelentkezett felhasználó, a $role megadásával egy adott szerepkörre szűkíthetsz.
rcpga_user_is_member_of_group( $user_id, $group_id ) Megmondja, hogy a felhasználó tagja-e a megadott csoportnak.

Az rcpga_get_group_members() argumentumai (mind elhagyható):

Argumentum Leírás
user_id Szűrés felhasználói azonosítóra.
user_id__in Felhasználói azonosítók tömbje.
group_id Szűrés csoportazonosítóra.
group_id__in Csoportazonosítók tömbje.
role Szűrés a csoporton belüli szerepkörre.
number Legfeljebb ennyi rekord. Alapérték: 20.
offset Ennyi rekord kihagyása. Alapérték: 0.
orderby Rendezés: id, user_id, group_id, role, date_created. Alapérték: id.
order ASC vagy DESC. Alapérték: DESC.

Példa: az aktuális felhasználó azon csoporttagságainak lekérdezése, ahol „member” vagy „admin”, és a csoport tulajdonosának azonosítója:

$group_memberships = rcpga_get_group_members( array(
'user_id' => get_current_user_id(),
'role__in' => array( 'member', 'admin' )
) );
foreach ( $group_memberships as $group_membership ) {
$group = $group_membership->get_group();
if ( $group instanceof RCPGA_Group ) {
// A csoport tulajdonosának felhasználói azonosítója.
$group_owner_user_id = $group->get_owner_id();
}
}

Annak ellenőrzése, hogy az aktuális felhasználó tagja-e valamelyik csoportnak, illetve admin-e valamelyikben:

$is_group_member = rcpga_user_is_group_member( get_current_user_id() );
$is_admin_group_member = rcpga_user_is_group_member( get_current_user_id(), 'admin' );
Függvény Mit csinál
rcpga_send_group_invite( $user_id ) Elküldi a csoportmeghívó hivatkozást a megadott felhasználónak.
rcpga_get_level_group_seats_allowed( $level_id ) A tagsági szinthez engedélyezett férőhelyek számát adja.
rcpga_is_level_group_accounts_enabled( $level_id ) Igazat ad, ha a szinten be van kapcsolva a csoportfiók.
rcpga_get_group_enabled_levels() Azoknak a tagsági szinteknek az azonosítóit adja, amelyeken a csoportfiók be van kapcsolva.

A 2.0-s változatban elavultak lettek az alábbiak. Új kódban használd helyettük a fenti függvényeket.

Függvény Mit csinált
rcpga_group_accounts()->groups->get_owner_id( $group_id = 0 ) A csoport tulajdonosának azonosítóját adta.
rcpga_group_accounts()->groups->get_group_by_owner( $owner_id ) A tulajdonos azonosítójából adta a csoport adatait.
rcpga_group_accounts()->groups->is_group_active( $group_id = 0 ) Igaz, ha a tulajdonos előfizetése még aktív.
rcpga_group_accounts()->groups->get_groups( $args = array() ) Csoportokat kérdezett le (number 20, offset 0, status, order DESC, orderby group_id, where).
rcpga_group_accounts()->groups->add( $args = array() ) Új csoportot hozott létre (owner_id kötelező, description, name, seats, member_count, date_created).
rcpga_group_accounts()->groups->update( $group_id, $args = array() ) Módosította a csoport adatait.
rcpga_group_accounts()->members->get_members( $group_id, $args = array() ) A csoport tagjait adta (number 20, offset 0).
rcpga_group_accounts()->members->is_group_owner( $user_id = 0 ) Igaz, ha a felhasználó csoporttulajdonos.
rcpga_group_accounts()->members->is_group_admin( $user_id = 0 ) Igaz, ha a felhasználó csoportadmin.
rcpga_group_accounts()->members->is_group_member( $user_id = 0 ) Igaz, ha a felhasználó csoporttag.
rcpga_group_accounts()->members->get_role( $user_id = 0 ) A felhasználó szerepkörét adta, vagy hamisat, ha nincs csoportban.
rcpga_group_accounts()->members->get_group_name( $user_id = 0 ) A felhasználó csoportjának nevét adta.
rcpga_group_accounts()->members->get_group_id( $user_id = 0 ) A felhasználó csoportjának azonosítóját adta.
rcpga_group_accounts()->members->add( $args = array() ) Tagot adott a csoporthoz (user_id, group_id, role, date_added).
rcpga_group_accounts()->members->remove( $user_id ) Eltávolította a felhasználót minden csoportból.
rcpga_group_accounts()->members->remove_all_from_group( $group_id ) Minden tagot eltávolított egy csoportból.
rcpga_add_member_to_group( $args ) Tagot adott a csoporthoz, és ha a felhasználó nem létezett, létrehozta (user_email, group_id, send_invite). Siker esetén a felhasználó azonosítóját adta.
Akció Mikor fut le Paraméterek
rcpga_add_member_to_group_after Közvetlenül azután, hogy új felhasználó került a csoportba. A $_POST adatok elérhetők. $user_id (int): az új tag felhasználói azonosítója. $args (array): a hozzáadás argumentumai, például group_id, user_email, user_login, first_name, last_name, user_pass, send_invite, role.
rcpga_send_group_invite Közvetlenül a meghívó e-mail elküldése után. $user_id (int): akinek a meghívót küldték. $email (string): a cím, ahová küldték.
rcpga_remove_member Közvetlenül azután, hogy egy tagot eltávolítottak a csoportból. $user_id (int): a tag felhasználói azonosítója. $group_id (int): a csoport azonosítója.
Szűrő Mit módosíthatsz vele Paraméterek
rcpga_invite_user_args A csoporthoz adott új tag argumentumait. $args (array): group_id, user_email, user_login, first_name, last_name, user_pass, send_invite, role.
rcpga_send_group_invite_args A meghívó e-mailt: a címzettet, a tárgyat és az üzenetet. $email_info (array): to, subject, message, headers. $user_id (int): a címzett felhasználó azonosítója.
rcpga_get_level_group_seats_allowed Egy tagsági szinthez engedélyezett férőhelyek számát. $number (int): a férőhelyek száma. $level_id (int): a szint azonosítója.
rcpga_is_level_group_accounts_enabled Azt, hogy egy szinten be van-e kapcsolva a csoportfiók. $enabled (bool). $level_id (int).
rcpga_get_member_role_label A szerepkörök megjelenített nevét (Owner, Admin, Member, Invited). $label (string): a megjelenő név. $role (string): a szerepkör kulcsa (owner, admin, member, invited).

Példa: az „Owner” felirat átnevezése „Vezető”-re:

function pelda_rcpga_get_member_role_label( $label, $role ) {
if ( 'owner' === $role ) {
$label = __( 'Vezető' );
}
return $label;
}
add_filter( 'rcpga_get_member_role_label', 'pelda_rcpga_get_member_role_label', 10, 2 );

Készült:

Tiszteletben tartjuk a magánszférádat

Sütiket használunk a böngészési élmény javítására és a forgalom elemzésére. Az analitika csak akkor indul, ha engeded. Adatvédelmi irányelvek, Sütitájékoztató.

Sütibeállítások