Tworzysz platformę kursową i potrzebujesz pomocy?

Wraz z premierą wersji 2.2.0 wtyczki Tutor LMS pojawiła się opcja, pozwalającej na sprzedaż wielu kursów w ramach jednego produktu WooCommerce, czyli tworzenia paczek kursów sprzedawanych jako jeden produkt. Niedawno pojawiła się wersja 2.2.2 wtyczki, która przyniosła opcję ręcznego przypisywania użytkowników do paczek kursów. I choć jest to opcja dość świeża, to już miałem okazje odbyć kilka rozmów, nie tylko na temat jak z niej korzystać, ale jak obejść pewne blokady, które przy opcji „course bundle” w Tutor LMS funkcjonują.

Modyfikacja zawartości zablokowanej paczki kursów w Tutor LMS za pomocą edycji bazy danych

Jedną z takich blokad jest brak możliwości modyfikacji zawartości paczki w momencie, gdy jest do niej przypisany jakikolwiek kursant (student, uczeń). W takiej sytuacji nie ma możliwości ani usunięcia kursu z paczki, ani dodania:

You cannot add/remove course(s) from a course bundle with enrolled students as it may disrupt the learning experience.

I o ile jestem w stanie zrozumieć to, że kursów z paczki nie można usunąć, to nie bardzo wiem, czemu nie można by dać opcji ich dodawania, tak by dodatkowe kursy automatycznie pojawiały się na liście u każdego, kto kupił taką paczkę wcześniej (np. paczka „wszystkie nasze kursy”). Zwłaszcza że jest tu pewna niekonsekwencja, bo już usunąć sam kurs można, co dodatkowo automatycznie uszkadza opcję standardowej edycji paczki.

No i tak dostałem zapytanie od klientki, jak do paczki, która „niestety” została już kupiona 2 razy, dodać jeszcze jeden, bonusowy kurs. Pewnie można by tu robić różne kombinacje, ale uznałem, że przyjrzę się bazie danych. I tak trafiłem na obiekt (klucz) „bundle-course-ids” w bazie danych, powiązany z konkretną paczką (w naszym przykładzie będzie to ID 243), gdzie znajduje się lista kursów wchodzących w skład paczki (w naszym przykładzie jest to jeden kurs, o ID 23):

Tu jest tylko jedna paczka (post ID 243), ale jakby było ich więcej, to ID tej konkretnej można odczytać choćby z adresu URL okna edycji paczki, np.:

https://sklep.webinsider.pl/wp-admin/post.php?post=243&action=edit

W tym momencie wystarczy odczytać ID kursów, które chcemy dodać lub usunąć z paczki, i dodać lub usunąć ich ID z pozycji „meta_value” (na przykładzie powyżej jest jeden kurs, o ID 24). Identyfikatory kursów odczytać możemy podobnie jak ID paczki, czyli z adresu URL okna edycji, np.:

https://sklep.webinsider.pl/wp-admin/post.php?post=24&action=edit
https://sklep.webinsider.pl/wp-admin/post.php?post=27&action=edit
https://sklep.webinsider.pl/wp-admin/post.php?post=32&action=edit

I tym sposobem można dość swobodnie modyfikować zwartość naszej zablokowanej paczki kursów w Tutor LMS:

Zwracam jednak uwagę, że modyfikacja ma wpływ na przyszłe zakupy (przypisania paczki do studenta). W przypadku osób, które zakupiły paczkę przed jej modyfikacją, należy dopisać je ręcznie do danego kursu, korzystając z opcji Enroll Student (dostępna chyba tylko w płatnej wersji wtyczki, czyli Tutor LMS Pro). Alternatywa, to kolejna modyfikacja w bazie danych, ale to ewentualnie temat na inny artykuł, bo tutaj proces jest „trochę” bardziej skomplikowany…

(!) Zgłoś błąd na stronie
Pomogłem? To może postawisz mi wirtualną kawę?
Wdrożenie Omnibusa w sklepie na WooCommerce
LUTy dla D-Cinelike (DJI Mini 3 Pro, DJI Avata, OSMO Pocket) od MiniFly
WordPress: Pierwsze kroki
Tworzysz platformę kursową i potrzebujesz pomocy?
Patryk
Kurs "WordPress: Pierwsze kroki" (na dobry początek)