Apró kiegészítő a Learndash és WooCommerce-hez
A LearnDash ugyan a hivatalos kiegészítő lévén kompatibilis a WooCommerce-el, tehát vásárlást követően a hozzáférést beállíthatod, azonban a termék direkt megjelenítése a kurzus oldalon nehézkes. Ez a bővítmény ezt a szakadékot kívánja betölteni. Megjelenítheted a termékeket direkt módon a kurzusok oldalain, így a felhasználónak nem kell átnavigálnia teljesen feleslegesen a terméklapra. A bővítmény ezen kívül számos beállítást biztosít még. Ezeket mind megtalálod a WooCommerce -> LearnDash Extras menüpont alatt
Alapvetően a kurzusoknál a termékből csak egyet lehet hozzáadni, de ha nagyon kell a mennyiségi opció(nem lesz hozzá input sem felirat sem):
function custom_remove_ld_wc_filter() { remove_filter('woocommerce_add_to_cart_validation', 'ld_wc_only_one_course_in_cart', 10); } add_action('init', 'custom_remove_ld_wc_filter');
Ez a kiegészítő egy saját projekthez kellett. Amennyiben szükséged van neked is hasonlóra, használd egészséggel.
Egyéb extra beállításokhoz navigálj a WooCommerce - - LearnDash Extras menöpontra
Tesztelve:
- PHP 8.1
- WooCommerce: 8.7.0
- LearnDash: 4.12.0
Important
Ez a bővítmény nem kompatibilis a WPML vagy egyéb fordító bővítményekkel...Még :)
Warning
Az Enable WooCommerce Course menu funkció bekapcsolását követően, kérlek frissíts rá a közvetlen hivaktozásokra!
Ez a plugin nem helyettesíti a hivatalos LearnDash LMS - WooCommerce Integration bővítményt. A LearnDash for WooCommerce Extras egy kiegészítő. Ahhoz, hogy megjelenítsd a Shortcode tartalmát, a saját rendszeremet össze kell kötnöd. tehát a tanfolyam szerkesztőn belül még rá kell kapcsolnod a Kurzust a megvásárolandó WooCommerce termékkel.
A Kurzusok listázásánál (backend) a bővítmény egy extra oszlopot ad hozzá, mely jelzi, mely terméket kapcsoltad rá.
[ld_wc_product_name]
Alapértelmezetten megjelenik a termék neve, és a kosárhoz adás gomb. Ha a termék nevét nem kívánod megjeleníteni, akkor a title="false" értéket kell megadnod: [ld_wc_product_name title="true"]
További paraméterek:
- image="true" | Ha true, akkor megjelenik a termék kiemelt képe. Alapértelmezetten false állapotban van.
- badge="s% akció" | A badge alapértelmezetten nem jelenik meg. A s% automatikusan az adott termék százalékos akciós értékét jeleníti meg. Elé, vagy mögé is írhatsz bármit, vagy törölheted a s% értéket. (Ha a termékkép nincs megjelenítve, akkor a badge sem jelenik meg, akkor sem, ha valóban akciós.)
- price="true" | Ha true, akkor megjeleníti a termék árát. (wc standard tehát a sale price is megjelenik ha van). Alapértelmezetten megjelenik, ha nem szeretnéd megjeleníteni, írd át false-ra.
- stock="false" | Készlet megjelenítése. Alapból false, tehát nem jelenik meg, csak ha attributumban definiálod true értékkel.
- addtocart="" | Kosárhoz adás gomb szöveg. A kosár gomb kötelezően megjelenik, és csak a szöveget írhatod át. Az alapértelmezett szöveg, ha nem definiálod: Kosárhoz adás
- shortdesc="false" | A termék rövid leírása. Alapból false, ha szeretnéd megjeleníteni, definiáld true értékkel.
- customlabel="" | Egyedi szöveg címke. Alap esetben a kosrához adás gomb felett jelenik meg közvetlenül. Bármilyen szöveget vagy mondatot beleírhatsz. Alapból nincs definiálva, és nem is jelenik meg.
- separator="false" | Egyszerű elválasztó, ami a kosrához adás gomb felett jelenik meg közvetlenül. Ha szeretnéd, hogy megjelenjen, true értékkel definiáld.
- fallbackimg="" | Ha a termékednek nincs kiemelt képe, de te engedélyezted azt, akkor megadhatsz url formájában egy másik képet. Ezt tartalékként fogja betölteni, és csak akkor, ha nincs érték amit kivehetne.
- onsuccess-text="" | Amikor a kosárhoz adod a terméket (mivel ajax alapú), kell egy jelzés a felhasználó felé. Ez definiálás nélkül: Termék a kosárban, írd át ha mást szeretnél a gomb szövegének megadni.
- access-text="" | Ha szeretnéd akkor, megjeleníthetsz ebben a shortcode blokkban egy üzenetet, amely az add to cartot helyettesíi, egy jelzéssel, hogy már hozzáférsz a kurzushoz. Nincs alapértelmezett érték.
- access-link="false" | Ha a shortcode-ot egy loop ba rakod, pl Elementor Loop, akkor hasznos, ha az access szövegre kattintásával átlehet menni maga a tanfolyam oldalra. Alapértelmezetten false.
- outofstock="" | Ha a termék már nem kapható, akkor megadhatsz egy egyedi szöveget. Ilyen esetben a Shortcode teljes tartalma eltűnik, és csak a paraméter szöveg jelenik meg. Alapértelmezett érték: A kurzus már nem megvásárolható.
- footer="" | Lábléc szöveg amely a kosárhoz adás gomb alatt jelenik meg. NIncs alapértelmezett érték, azaz ha nem definiálod semmi nem jelenik meg a "footer-ben".
- logged-status="" | true vagy false érték. Ha true megjelenít egy új gombot ami a nem bejelentkezett felhasználók számára jelenik csak meg. Alapértelmezetten false értékű.
- logged-out-text="" | Itt adhatod meg a nem bejelentkezett felhasználók számára megjelenítendő gomb szövegét.
- logged-redirect="" | Itt adhatod meg a nem bejelentkezett felhasználók számára megjelenítendő gomb linkjét, amire kattintva a felhasználót átirányítja.
Példa Shortcode:
[ld_wc_product_name title="true" image="true" price="true" stock="false" shortdesc="false" separator="true" badge=" s% akció" addtocart="Add a kosárhoz" shortdesc="false" customlabel="Custom label" onsuccess-text="Már a kosárban van" access-text="A kurzushoz hozzáférsz" footer="30 napos pénzvisszafizetés"]
Az új extra shortcode-okat két részre bontjuk:
Kurzus single oldalon használható kódok és attributumok:
- Label -> ez jelenik meg a tartalom előtt.
- Icon -> ez szintén maga a tartalom , és ha van akkor a label előtt
- loggedin -> true vagy false, alapértelmezetten false, ha megadod, hogy true, csak a bejelentkezett felhasználó láthatja
- enrolled -> true vagy false, true esetében csak az látja az adott kurzus oldalán, aki enrollolta a kurzust.
- empty -> ha az érték üres, vagy 0, és az empty false ra állítod, nem jelent meg semmit. Ha true, akkor is megjeleníti ha az érték üres, vagy nulla. (leckék esetében az empty paraméter nincs definiálva)
Important
Elementor Pro-t használsz? Van egy sokkal jobb, és újabb bővítményünk amivel több mint 20 féle adatot jeleníthetsz meg az Elementor - Dinamikus címkéi segítségével (Dynamic tags), így a legtöbb kurzus adatot bármilyen widgetben megjelenítheted, és kompromisszumok nélkül készítheted el a kurzusod oldalát. Új bővítmény: https://github.com/Lonsdale201/Dynamic-Elementor-extension
Példák:
[ld_extra_lessons label="Leckék: " icon="<i class='fa fa-book'></i>"]
[ld_extra_topics label="Témák: " icon="<i class='fa fa-book'></i>" empty="false"]
[ld_extra_quiz label="Kvízek: " icon="<i class='fa fa-book'></i>" empty="true"]
[ld_extra_reward_points label="Megszerezhető pontok: " icon="<i class='fa fa-book'></i>" empty="false"]
[ld_extra_access_points label="Szükséges pontok: " icon="<i class='fa fa-trophy'></i>"]
[ld_extra_access_type label="Hozzáférés típusa: " icon="<i class='fa fa-trophy'></i>"]
- A kategória esetében az empty nem szükséges, ha nincs kategória nem jelenik meg a shortcode. Extra attributum: -> linkable , ha true, akkor kattintható lesz a kategória.
[ld_extra_course_category label="Kategória:" loggedin="true" enrolled="true" empty="true" linkable="false"]
[ld_extra_status label="Kurzus státusz:" loggedin="true" enrolled="true" empty="true"]
Globális shortcodeok:
[ld_extra_mypoints label="Az Ön pontjai: " empty="false"]
[ld_extra_total_courses_owned label="Összes kurzusom: " empty="true"]
[ld_extra_completed_courses_count label="Befejezett kurzusaim: " empty="true"]
Kurzus Loop (csak label attributumot adhatunk meg)
[ld_extra_product_price label="ár"]
Ez egy speciális shortcode, amit célszerű a loop-ban megadni, pl jetEngine kurzus listing, elementor stb. A bővítmény által biztosított másodlagos összekötés alapján megjeleníti a kurzushoz társított termék árát (tehát, nem a hivatalos összekötésből nézi az árat). Name your price kompatibilis. Label attributum használata opcionális
A használatházo először a bővítmény beállításaiba be kell kapcsolni az Enable Elementor Visibility opciót. Ezek csak a kurzus single oldalán használhatóak!
Classok:
- learndash--enrolled csak akkor jeleníti meg a widgetet ha az adott felhasználónak a kurzushoz van már hozzáférése
- learndash--logged_in csak akkor jelenik meg ha be vagy jelentkezve
- learndash--logged_out csaj akkor jelenik meg, ha nem vagy bejelentkezve
Amelyik widgetre használni szeretnéd, a haladó fülön a Css Osztály mezőbe másold bele a megfelelő class-t.
Az Elementorhoz hasonlóan előbb ezt is be kell kapcsolnod. Bekapcsolást követően navigálj a Megjelenés - Menük majd a Mit lássunk fülön kapcsold be a CSS Osztályok megjelenítését.
classok:
- learndash--menu-anyenrolled akkor jeleik meg a menüpont ha a felhasználónak van bármilyen kurzusa
- learndash--menu-anygroup_enrolled csak akkor jelenik meg a menüpont ha a felhasználónak van csoporttagsága (legalább egy)
Példa kódok:
add_action('ld_course_list_after', function($user_id) {
// Itt írhatnak saját kódot, amely a kurzuslista után jelenik meg
echo '<p>Egyéni tartalom a felhasználó ID-je: ' . esc_html($user_id) . '</p>';
});
add_action('ld_course_list_after_menu_label', function($label, $user_id) {
echo '<p>Egyéni tartalom a ' . esc_html($label) . ' címke alatt.</p>';
}, 10, 2);
Telepít, aktivál. Ha ez megvan, akkor lépj be abba a kurzusba, amihez szeretnél WooCommerce terméket hozzákötni. Belépést követően jobb oldal-t A Kapcsolódó tartalom alatt egy új opció jelenik meg: WC Termék Kiválasztása Itt add hozzá azt a terméket, aminek a megvásárlása szüksége a kurzushoz. Utolsó lépésként a shortcode-ot helyezd el, például a Tanfolyam Single oldalán (amit lehet Elementorral is szerkeszteni), ha hasznáslz elementor loop builder-t ott is használható.
A Shortcode, automatikusan tudja, hogy a felhasználó által megnyitott kurzus tanfolyam melyik, és megnézi, hogy van-e hozzákötve termék, ha talál egyezést, a rákapcsolt termék adatait fogja megjeleníteni. Ez a kis rendszer globálisra lett tervezve, ezért sem lehet, egyedi ID paraméter-t megadni!
Nincs rá mód, hogy egyedileg állítsd a shortcode tartalmának sorrendjét shortcode segítségével, azaz nem számít, milyen sorrendben írod be a paramétereket. Minden elem alapvetően egymás alatt van.
- Kiemelt kép (+ benne a badge)
- Termék név
- Stock
- Ár
- Custom label
- Separator
- Add to cart / succes / acces text
- Footer
Important
Variálható termékek esetében a kosárhoz adás gomb (Opciók választása) szöveget jelenít meg, kattintásra pedig átviszi a felhasználót a termék adatlapra!
CSS segítségével bármit formázhatsz a Shortcode-on belül, és a flexnek köszönhetően az order-el módosíthatod a sorrendet.
wc-ld-wrapper
wc-ld-image-wrapper
wc-ld-badge
(h3) wc-ld-title
wc-ld-outofstock
extraaccess
wc-ld-shortdesc
wc-ld-price
wc-ld-custom-label
wc-ld-separator
wc-ld-already-have-access
wc-ld-footer-text
- Bővímítény updater
- Learndash szabály alapú kosárhoz adás megakadályozás (seat limit, pont, és előfeltételek kezelése)
- Új Shortcode az előfeltételek megjelenítéséhez
2024.03.20 V2.1.2
- ÚJ beállítás, amit megtalálsz a bővítmény beállításai oldalán. Az új beállításban megadhatsz egy vagy több olyan kurzust, amire a felhasználót automatikusan beiratkoztatja a rendszer, amikor regisztrál a weboldalra. Standard user_register akció használatával.
2024.03.13. V2.1.1
- TWEAK Javítva lett a [ld_extra_product_price] shortcode esetében a megfelelő formátum megjelenítés, ha a termék kedvezményes.
2024.02.06 v2.1
Új Shortocde attributumok lettek hozzáadva, a [ld_wc_product_name] shortcode-hoz. Mostantól kezelheted azt az esetet, ha a felhasználó nicns bejelentkezve. Így nem az add to cart jelenik meg alapból, hanem egy újabb funkcionális gomb. (pl átirányítás regisztrációs oldalra stb)
2024.02.05 v.2
- ÚJ Frissítő szerver bekötve
2023.12.15 V2.0-beta3
- ÚJ shortcode: [ld_extra_product_price] használható a loop-ban. (pl jetengine listing grid stb), a Plugin által biztosított másodlagos WooCommerce termék összekötésből megjeleníti a bekötött Termék árát ami a Kurzus árával egyenlő
2023.11.29 V2.0-beta2
- FIX Flush rew javítás. Ritka esetben régiből újba való update esetében okozott hibát
- Verzió számozás átállítva a beta stage állapotokra
2023.11.16 V2.0-beta
- ÚJ extra shortcodeok egyes részeit csak a single kurzus oldalon, egyes részeit pedig globálisan is használhatóak
- ÚJ beállítások menüpont : WooCommerce / LearnDash Extras néven
- ÚJ visibility funkció (láthatóság), elementor specifikus, és globális menü specifikus. Class megadással működik.
- Új WooCommerce fiókom menüpont készítés a kurzusokhoz, és számos beállítás hozzá
- ÚJ learndash statisztikai adatok az új wc végponthoz. (felhasználói saját adatai)
- ÚJ extra instrukció megjelenítése ha kurzus terméket vásároltak, a WooCommerce thankyou page oldalon
- TWEAK kód opatimalizálás, fájl struktúra
- TWEAK a Plugin neve a 2.0 verziótól kezdődően: LearnDash for WooCommerce Extras
- Két do_action hozzáadva az új végponthoz: add_action('ld_course_list_after', function($user_id) | add_action('ld_course_list_after_menu_label', function($label, $user_id)
2023.08.28 v1.1
- Javítva lett - Undefined variable $user_id
- Name Your price kompatibilitás - Mostantól ha a termék name Your price alapú, a variációs termékhez hasonlóan viselkedeik a kosárhoz adás gomb. (azaz átirányít a termék oldalra)
- Mostantól az ár sem jelenik meg, ha a felhasználónak van már hozzáférése a kurzushoz.
- Kompatibilitás ellenőrzés: LD 4.8.0