Testreszabás kódrészletekkel
Kurzusszintek átnevezése és bővítése, oktatók automatikus jóváhagyása és egyedi mező a regisztrációs űrlapon.
Ez a fejezet kész kódrészleteket tartalmaz a gyakori testreszabásokhoz. A kódot a gyermektéma functions.php fájljába vagy egy kódbeszúró bővítménybe másold, ne közvetlenül a téma fájljaiba, mert a téma frissítésekor a módosításaid elvesznének.
Kurzusszintek átnevezése és bővítése
Szekció neve “Kurzusszintek átnevezése és bővítése”A kurzusok szintjei alapból a Kezdő, Középhaladó és Haladó (kulcsaik: beginner, intermediate, expert). A tutor_course_level szűrővel átnevezheted vagy bővítheted őket.
Átnevezés: a kulcsok maradnak, a megjelenő név változik.
add_filter( 'tutor_course_level', 'modify_course_level' );if ( ! function_exists( 'modify_course_level' ) ) { function modify_course_level( $levels ) { $levels['beginner'] = 'Újonc'; $levels['intermediate'] = 'Gyakorlott'; $levels['expert'] = 'Profi'; return $levels; }}Új szintek felvétele a meglévő három mellé:
add_filter( 'tutor_course_level', 'add_extra_course_level' );if ( ! function_exists( 'add_extra_course_level' ) ) { function add_extra_course_level( $levels ) { $levels['extra-level-1'] = 'Mester'; $levels['extra-level-2'] = 'Mindenkinek'; return $levels; }}Oktatók automatikus jóváhagyása
Szekció neve “Oktatók automatikus jóváhagyása”Alapból az oktatói regisztráció után az új oktató „függőben” állapotú, és egy adminisztrátornak kell jóváhagynia. Ha azt szeretnéd, hogy a regisztráló oktató azonnal jóváhagyott legyen, használd ezt a kódot:
add_action( 'tutor_new_instructor_after', 'approve_new_instructor_immediately' );if ( ! function_exists( 'approve_new_instructor_immediately' ) ) { function approve_new_instructor_immediately( $instructor_id ) { update_user_meta( $instructor_id, '_tutor_instructor_status', 'approved' ); update_user_meta( $instructor_id, '_tutor_instructor_approved', tutor_time() ); $instructor = new \WP_User( $instructor_id ); $instructor->add_role( tutor()->instructor_role ); }}Ezzel gyakorlatilag bárki regisztrálhat oktatónak és beküldhet kurzust, ezért csak akkor használd, ha ezt tudatosan vállalod.
Egyedi mező a regisztrációs űrlapon
Szekció neve “Egyedi mező a regisztrációs űrlapon”A regisztrációs űrlapot a téma sablonjainak felülírásával bővítheted. Előbb hozz létre gyermektémát, vagy mentsd el biztonságos helyre a téma fájljait. A Tutor LMS sablonjait a témádban a tutor mappa alá másolva írhatod felül: a regisztrációs űrlap sablonja a sajattema/tutor/dashboard/registration.php.
Példa: kötelező telefonszám
Szekció neve “Példa: kötelező telefonszám”A telefonszám mezőnek két lépése van.
1. Kötelezővé tétel és mentés. Másold a gyermektéma functions.php fájljába:
add_filter( 'tutor_student_registration_required_fields', 'required_phone_no_callback' );if ( ! function_exists( 'required_phone_no_callback' ) ) { function required_phone_no_callback( $atts ) { $atts['phone_no'] = 'A telefonszám megadása kötelező'; return $atts; }}add_action( 'user_register', 'add_phone_after_user_register' );add_action( 'profile_update', 'add_phone_after_user_register' );if ( ! function_exists( 'add_phone_after_user_register' ) ) { function add_phone_after_user_register( $user_id ) { if ( ! empty( $_POST['phone_no'] ) ) { $phone_number = sanitize_text_field( $_POST['phone_no'] ); update_user_meta( $user_id, 'phone_number', $phone_number ); } }}A kód kötelezővé teszi a mezőt, és a regisztrációkor a felhasználó metaadatai közé menti a számot.
2. A mező az űrlapon. Illeszd be ezt a HTML-részletet a témádban felülírt tutor/dashboard/registration.php fájlba, az űrlap többi mezője mellé:
<div class="tutor-form-row"> <div class="tutor-form-col-12"> <div class="tutor-form-group"> <label><?php _e( 'Telefonszám', 'tutor' ); ?></label> <input type="text" name="phone_no" value="<?php echo tutor_utils()->input_old( 'phone_no' ); ?>" placeholder="<?php _e( 'Telefonszám', 'tutor' ); ?>"> </div> </div></div>A mező fordítható, és hibás kitöltés után a korábban beírt értéket visszaírja. Ezután a regisztrációs űrlapon megjelenik a telefonszám mező, és nélküle nem lehet regisztrálni.
Teljesen új mező (például azonosító)
Szekció neve “Teljesen új mező (például azonosító)”Ugyanezzel a módszerrel bármilyen más mezőt felvehetsz. A példában egy kötelező NID (személyi azonosító) mező szerepel. Öt lépés kell hozzá.
-
Kötelezővé tétel és mentés a
functions.php-ban. A kulcs mostnid, a metaadat neve_nid:add_filter( 'tutor_student_registration_required_fields', 'required_nid_no_callback' );if ( ! function_exists( 'required_nid_no_callback' ) ) {function required_nid_no_callback( $atts ) {$atts['nid'] = 'Azonosító';return $atts;}}add_action( 'user_register', 'add_nid_after_user_register' );add_action( 'profile_update', 'add_nid_after_user_register' );if ( ! function_exists( 'add_nid_after_user_register' ) ) {function add_nid_after_user_register( $user_id ) {if ( ! empty( $_POST['nid'] ) ) {$nid = sanitize_text_field( $_POST['nid'] );update_user_meta( $user_id, '_nid', $nid );}}} -
A mező az űrlapon: a felülírt
tutor/dashboard/registration.phpfájlba:<div class="tutor-form-col-6"><div class="tutor-form-group"><label><?php _e( 'Azonosító', 'tutor' ); ?></label><input type="text" name="nid" value="<?php echo tutor_utils()->input_old( 'nid' ); ?>" placeholder="<?php _e( 'Azonosító', 'tutor' ); ?>"></div></div> -
Az érték beolvasása a profiloldalon. A felülírt
tutor/dashboard/my-profile.phpfájl elején, a többi változó mellé vedd fel:$nid = get_user_meta( $uid, '_nid', true ); -
Az érték kiírása a profiloldalon. Ugyanebbe a fájlba, a többi profilelem mellé:
<div class="tutor-dashboard-profile-item"><div class="heading"><span><?php _e( 'Azonosító', 'tutor' ); ?></span></div><div class="content"><p><?php echo $nid ? $nid : '________'; ?></p></div></div>Ha a felhasználó megadott értéket, azt látja, különben aláhúzásvonalak jelennek meg.
-
Szerkesztőmező a beállításokban, hogy a már regisztrált felhasználók is megadhassák az értéket: a vezérlőpult Beállítások → Profil oldalának sablonjába (a felülírt
tutor/dashboard/settings/profile.php) illeszd be:<div class="tutor-form-col-6"><div class="tutor-form-group"><label><?php _e( 'Azonosító', 'tutor' ); ?></label><input type="number" min="1" name="nid" value="<?php echo get_user_meta( $user->ID, '_nid', true ); ?>" placeholder="<?php _e( 'Azonosító', 'tutor' ); ?>"></div></div>
Ezzel az új mező megjelenik a regisztrációs űrlapon és a profil beállításai között, és kiíródik a vezérlőpult profiloldalán. A példa szám típusú mezőt használ, így csak számértéket fogad el. Ha szöveget is el kell fogadnia, cseréld az ötödik lépés type="number" mezőjét type="text"-re.
Készült: