• Autor
    Wpisy
  • #114222

    Hej!
    Czy możliwe jest ustawienie dostępu do kursu (zrobionego na wtyczce LearnPress) do konkretnego dnia?
    Tworzę materiały dla dzieci i chciałabym ustawić dostęp do końca roku szkolnego, niezależnie od momentu zakupu kursu. 🙂

    #114223
    Paweł Zieliński
    Moderatorka

    Cześć, przetestuj te rozwiązania, osobiście nie testowałem (nie mam jak) jest to odpowiedź znaleziona w internecie:
    Osobiście wybrał bym dodanie kodu do functions.php. Jak nie zadziała to zawsze można ten kod usunąć bez szkody.
    Warto zrobić kopię bezpieczeństwa pliku functions.php przed dodaniem kodu gdybyś miała problem z usunięciem dodanej treści w późniejszym terminie. Watro też zrobić kopię bezpieczeństwa całego WP.
    Jeżeli nie wiesz jak to zrobić to napisz…

    Tak, jest możliwe ustawienie dostępu do kursu na wtyczce LearnPress do konkretnego dnia. Wtyczka LearnPress nie ma wbudowanej funkcji, która pozwala bezpośrednio ustawić datę zakończenia dostępu do kursu dla wszystkich użytkowników niezależnie od momentu zakupu. Jednakże, można to osiągnąć za pomocą kilku kroków i dodatkowych wtyczek lub kodu niestandardowego.

    Oto, jak można to zrobić:

    1. Ustawienie dostępu do konkretnej daty za pomocą kodu niestandardowego
    Jeśli masz możliwość dodawania niestandardowego kodu do swojej strony WordPress, możesz użyć poniższego fragmentu kodu w pliku functions.php Twojego motywu lub w wtyczce niestandardowej:

    function custom_course_access_end_date($can_access, $course_id, $user_id) {
    // Ustaw datę zakończenia dostępu do kursu (rok, miesiąc, dzień)
    $end_date = strtotime(‘2024-06-30’); // Na przykład do końca roku szkolnego 2024

    if (time() > $end_date) {
    return false; // Jeśli obecna data jest po dacie zakończenia, dostęp jest zabroniony
    }

    return $can_access; // W przeciwnym razie dostęp jest dozwolony
    }
    add_filter(‘learn_press_user_can_access_course’, ‘custom_course_access_end_date’, 10, 3);

    2. Użycie dodatkowej wtyczki do zarządzania subskrypcjami
    Istnieją wtyczki takie jak Paid Memberships Pro lub Restrict Content Pro, które umożliwiają zarządzanie subskrypcjami i dostępem do treści na stronie. Możesz skonfigurować subskrypcję z datą zakończenia, a następnie przypisać tę subskrypcję do kursu LearnPress.

    3. Modyfikacja ustawień kursu
    W LearnPress możesz ustawić czas trwania kursu, ale nie jest to bezpośrednio dostęp do konkretnej daty. Możesz jednak użyć tej funkcji w połączeniu z wtyczką do zarządzania subskrypcjami, aby osiągnąć pożądany efekt.

    Najprostszym rozwiązaniem może być użycie niestandardowego kodu, jak pokazano powyżej. Jeśli nie jesteś zaznajomiona z kodowaniem, zalecane jest skorzystanie z dodatkowej wtyczki do zarządzania subskrypcjami, która umożliwi Ci ustawienie dostępu do konkretnej daty bez konieczności modyfikacji kodu strony.

    #114262

    Bardzo dziękuję Paweł za tak obszerną odpowiedź 🙂
    Wolałabym na ten moment skorzystać z darmowej opcji.
    Czyli jeśli chciałabym skorzystać z fragmentu kodu, gdzie kurs ma być dostępny do 30 czerwca, jeśli jest już po dacie zakończenia to dostęp jest zabroniony oraz w przeciwnym razie jest dozwolony ma wyglądać to dokładnie tak (?):
    function custom_course_access_end_date($can_access, $course_id, $user_id) {
    //
    $end_date = strtotime(‘2024-06-30’); //

    if (time() > $end_date) {
    return false; //
    }

    return $can_access; //
    }
    add_filter(‘learn_press_user_can_access_course’, ‘custom_course_access_end_date’, 10, 3);

    Byłabym mega wdzięczna gdybyś mógł jak dla laika wytłumaczyć przy tej opcji gdzie szukać tego miejsca do wklejenia, co wcześniej i później gdzie kliknąć, bo na ten moment mam taką wiedzę, że po prostu Googlałabym gdzie szukać tego functions itd 😉

    #114299
    Paweł Zieliński
    Moderatorka

    Ok, to jest banalnie proste, ale wymaga trochę gimnastyki.

    Zrób sobie kopię bezpieczeństwa całej strony w np. updraft plus

    1. Czy masz ustawiony motyw potomny czyli child theme?
    Jeżeli masz to połowa pracy za tobą.
    Jeżeli nie to najpierw podaj na czym budowałaś stronę (builder i motyw) – trzeba poszukać i zainstalować motyw potomny lub spróbuj to sama zrobić.
    2. Trzeba zalogować się do swojego konta na hostingu przez FTP.
    Podaję ścieżkę bezwzględną czyli możesz nie widzieć np. pierwszych katalogów:
    public_html / nazwadomeny.pl / wordpress (tu może być ten katalog, ale nie musi) / wp-content / themes / twój_child_theme / functions.php

    3. Robimy kopię pliku functions.php – czyli kopiujemy go i wklejamy dodając na końcu nazwy .bk – functions.php.bk
    Po tym mamy 2 pliki functions.php i functions.php.bk

    4. Pobieramy functions.php na swój komputer i otwieramy go np. w programie VSC
    https://code.visualstudio.com/download

    5. Idziemy na koniec tego pliku i jeżeli widzisz taki znacznik “?>” to wklejasz ten kod przed tym znacznikiem a jeżeli go nie ma to po prostu wklejasz kod i zapisujesz.

    6. Nadpisujesz plik functions.php na serwerze przez program ftp

    7. Testujesz

    Uwaga: ten kod może nie zadziałać wtedy albo strona się zawiesi, ale to nic strasznego usuwasz kod i strona wraca do poprzedniego stanu lub zmieniasz nazwę pliku functions.php i przywracasz ją z functions.php.bk. Jeżeli wyświetlą się błędy w kokpicie to je skopiuj tutaj zobaczymy co to z błędy.
    Generalnie nic nie tracisz a możesz zyskać więc warto poeksperymentować.
    Osobiście b. często tak robię – czyli dodaję kod php.

    P.S. Może Gaba w czwartek będzie wiedziała jakiej wtyczki użyć.

    #114300
    Paweł Zieliński
    Moderatorka

    Zapomniałem jeszcze że kod php można dodać przez wtyczkę np. Code Snippets zamiast edytować pliki przez FTP.

    #114310

    Próbując dodać kod przez wtyczkę Code Snippets wyskakuje mi błąd:
    Snippet automatically deactivated due to an error on line 3:
    Syntax error, unexpected identifier “’”, expecting “)”.

    #114311
    Paweł Zieliński
    Moderatorka

    Skopiuj cały kod który wklejasz i podeślij.

    Błąd “Syntax error, unexpected identifier ‘’’, expecting ‘)'” wskazuje na problem z niepoprawnym formatowaniem lub nieprawidłowym znakiem w kodzie PHP. Prawdopodobnie jest to związane z nieprawidłowym użyciem apostrofów lub cudzysłowów w kodzie. Upewnij się, że wszystkie ciągi znaków są poprawnie otwarte i zamknięte.

    #114312

    Wklejam ten kod:

    function custom_course_access_end_date($can_access, $course_id, $user_id)

    $end_date = strtotime(‘2024-06-30’);
    if (time() > $end_date) {
    return false;
    }
    return $can_access;
    }
    add_filter(‘learn_press_user_can_access_course’, ‘custom_course_access_end_date’, 10, 3);

    Cały czas pokazuje błąd w tej linijce: $end_date = strtotime(‘2024-06-30’);
    próbowałam sama nanosić w niej poprawki, ale niestety żaden mój pomysł nie wypalił 😉

    #114313
    Paweł Zieliński
    Moderatorka

    function custom_course_access_end_date($can_access, $course_id, $user_id) {
    $end_date = strtotime(‘2024-06-30’);
    if (time() > $end_date) {
    return false;
    }
    return $can_access;
    }
    add_filter(‘learn_press_user_can_access_course’, ‘custom_course_access_end_date’, 10, 3);

    Tu masz linka do pliku txt z tym samym kodem.
    Problem to cudzysłowy.
    Możliwe, że po kopiowaniu system je podmienia mają być proste cokolwiek to nie znaczy.
    https://www.dropbox.com/scl/fi/dgnk9uyfyujy10nsmos5i/kod.txt?rlkey=c6i4ts3svvbfon3fdfcvwe8z7&st=i4gy06ug&dl=0

    #114321

    Dzięki Paweł!
    niby to samo, ale miałeś rację, że coś te cudzysłowy szwankowały, teraz poszło 🙂

    Aczkolwiek nie rozumiem, czemu, mimo wpisania 30 czerwca, w panelu kursanta jest dostęp do 31.07, no cuda na kiju, ale i tak się cieszę, że już do przodu, lecę szukać przyczyny 🙂

    #114325

    A jest jakieś miejsce w sieci, które podpowie mi jak samodzielnie stworzyć taki fragment kodu?

    Po zaznaczeniu opcji, że produkt poza wirtualnym jest też do pobrania – dostęp jest już dożywotni, więc na moją logikę trzeba tego typu kod zastosować też do plików do pobrania, żeby ograniczyć ich pobieranie (czyli korzystanie z kursu) do dnia, w tym przypadku 30.06.2024…

    #114326
    Gabriela Kurowska
    Moderatorka

    Hej, możesz spróbować wpisać prompt do chata GPT ale to nigdy nie jest pewne, że głupot nie napisze. Jeśli nie dasz rady wspomóc się chatem, to poproszę Pawła by jeszcze wrócił z magicznym kodem 🙂

    #114327

    Bardzo proszę Pawła o magiczny kod 🙂
    To co przygotował mi czat wydaje się nawet ok, ale nie do końca mu ufam, a nie chcę czegoś odwalić z moim poziomem wiedzy 😉

    #114330
    Gabriela Kurowska
    Moderatorka

    Jeśli zastosujesz się do instrukcji Pawła z kopią zapasową pliku, to nawet jak coś się stanie, możesz wrócić do oryginalnego 🙂

    #114332
    Paweł Zieliński
    Moderatorka

    No więc, trochę się znam na php, ale php + wordpress to trzeba zagłębiać dokładnie temat (bo tam są hooki i inne kotwice które trzeba wygooglać) wiec ChatGPT to b. dobre miejsce.
    Piszesz prompt (pytanie) tylko dobrze go sformułuj co chcesz zrobić. Napisz że wordpress i kod php i do czego to potrzebujesz. Czym lepiej opiszesz problem tym dokładniejsze rozwiązanie otrzymasz.
    Wklejasz i testujesz. Zawsze możesz go (ChatGPT) poprosić o zinterpretowanie błędów i jak włączyć ich wyświetlanie.
    W razie w. zawsze możesz wkleić cały kod tutaj to możemy popatrzeć.

    P.S.
    Kiedyś trzeba było szukać na stackoverflow, albo po innych serwisach teraz to sprawa jest prosta więc się nie bój ale zawsze zrób kopię bezpieczeństwa.