✅ Nowości, motywy, wtyczki WEB i WordPress. Tutaj dzielimy się wskazówkami i najlepszymi rozwiązaniami dla stron internetowych.

Programowo twórz wydarzenia cykliczne za pomocą kalendarza wydarzeń

23

Kalendarz wydarzeń Modern Tribe jest prawdopodobnie najpopularniejszą wtyczką kalendarza dostępną dla WordPress. Mówiłem o zapytaniach o zdarzenia za pomocą WP_Query w poprzednim poście, ale dotyczy to zarówno wersji bezpłatnej, jak i premium.

Wersja premium oferuje wiele wspaniałych funkcji, ale jeśli chcesz programowo manipulować kalendarzem, praca z nią jest nieco trudniejsza.

  • nie ma jasnej dokumentacji, jak korzystać z niektórych funkcji z perspektywy programisty
  • miejsca, w których ludzie pytali, jak to zrobić, od czasu do czasu pozostawiają wiele do życzenia.

Przykład: kiedy musimy programowo tworzyć zdarzenia cykliczne.

Aby być uczciwym, myślę, że wtyczka jest przeznaczona dla użytkowników, a nie dla programistów, więc dostarczanie dokumentacji na temat tego, jak wykorzystać niektóre aspekty jej wewnętrznego kodu, nie jest z ich strony obowiązkiem.

Po drugie, to open source. Tak więc dla tych z nas, którzy potrzebują wywołać część kodu, mają czas i pod ręką debugger, nie jest strasznie trudno usiąść i zobaczyć, jak to działa.

Zaleta open source, prawda?

Mając to na uwadze, sposób programowego tworzenia wydarzeń cyklicznych za pomocą Kalendarza wydarzeń wymaga użycia Tribe__Events__Pro__Recurrence__Metaklasy.

Zakłada się, że używasz najnowszej wersji wtyczki (jak w momencie tego posta) i że znasz mechanizm kolejkowania wbudowany we wtyczkę. Omówię to bardziej po kodzie poniżej.

Aby utworzyć wydarzenie cykliczne, najbardziej podstawowe rzeczy, których potrzebujesz, to:

  • rodzaj wydarzenia cyklicznego,
  • jak to się skończy,
  • data rozpoczęcia,
  • data zakończenia.

Reszta może być serią wartości domyślnych. Następnie jest to kwestia pobrania instancji do klasy, ustawienia wartości i wywołania metody.

Na przykład :

<?php

// First, create the main event. `$event` is defined prior to this call.
$event_id = tribe_create_event( $event );

// Set the arguments for the recurring event.
$data = array(
    'recurrence' => array(
        'rules' => array(
            array(
                'type'                  => 'Every Year',
                'end-type'              => 'Never',
                'end'                   => '',
                'end-count'             => '',
                'EventStartDate'        => $start_date,
                'EventEndDate'          => $end_date,
                'custom'                => array(),
                'occurrence-count-text' => 'events',
            ),
        ),
    ),
);

// Instantiate and set it in motion.
$recurrence_meta  = new Tribe__Events__Pro__Recurrence__Meta();
$recurrence_meta->updateRecurrenceMeta( $event_id, $data );

Zwróć uwagę, że pierwszy parametr updateRecurrenceMetafunkcji zakłada, że ​​masz identyfikator zdarzenia (który jest pobierany podczas tworzenia zdarzenia po raz pierwszy).

Po drugie, w zależności od liczby zdarzeń, nad którymi pracujesz, utworzenie wszystkich w bazie danych może zająć kilka minut. Wynika to ze sposobu, w jaki wtyczka kolejkuje serię zdarzeń.

Zamiast tworzyć je wszystkie naraz, serializuje zdarzenia, a następnie tworzy je w partiach. To sprytny sposób na poradzenie sobie z tym. A jeśli chcesz skorzystać z tego programowo, jest to sposób na uzyskanie wszystkich tych funkcji za darmo.

Źródło nagrywania: tommcfarlin.com

Ta strona korzysta z plików cookie, aby poprawić Twoje wrażenia. Zakładamy, że nie masz nic przeciwko, ale możesz zrezygnować, jeśli chcesz. Akceptuję Więcej szczegółów