✅ WEB і WordPress новини, теми, плагіни. Тут ми ділимося порадами і кращими рішеннями для сайтів.

Програмно створюйте повторювані події за допомогою календаря подій

12

Календар подій Modern Tribe, ймовірно, найпопулярніший плагін календаря, доступний для WordPress. У попередній публікації я говорив про надсилання запитів на події за допомогою WP_Query, але це стосується як безкоштовної, так і преміум – версії.

Преміум-версія пропонує багато чудових функцій, але якщо ви хочете програмно маніпулювати календарем, працювати з ним буде трохи складніше.

  • немає чіткої документації про те, як скористатися певними функціями з точки зору розробника
  • місця, де люди запитували, як це зробити, часом залишають бажати кращого.

Приклад: коли нам потрібно програмно створити повторювані події.

Чесно кажучи, я думаю, що плагін призначений для користувачів проти розробників, тому надання документації про те, як використовувати певні аспекти його внутрішнього коду, не є обов’язком з їхнього боку.

По-друге, це відкритий код. Таким чином, для тих із нас, хто має потребу викликати частину його коду, має час і зручний налагоджувач, не так вже й важко сісти й подивитися, як це працює.

Перевага відкритого коду, правда?

З огляду на це, спосіб програмного створення повторюваних подій за допомогою Календаря подій вимагає використання Tribe__Events__Pro__Recurrence__Metaкласу.

Це припускає, що ви використовуєте останню версію плагіна (як на момент публікації) і що ви знайомі з механізмом черги, вбудованим у плагін. Я розповім про це докладніше після коду нижче.

Щоб створити повторювану подію, вам знадобляться найпростіші речі:

  • тип повторюваної події,
  • як це закінчиться,
  • дата початку,
  • кінцева дата.

Решта може бути серією значень за замовчуванням. Потім потрібно захопити екземпляр до класу, встановити значення та викликати метод.

наприклад :

<?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 );

Зверніть увагу, що перший параметр updateRecurrenceMetaфункції передбачає, що у вас є ідентифікатор події (який отримується, коли ви вперше створюєте подію).

По-друге, залежно від кількості подій, над якими ви працюєте, для їх створення в базі даних може знадобитися кілька хвилин. Це пов’язано з тим, як плагін ставить у чергу серію подій.

Замість того, щоб створювати їх усі одразу, він серіалізуватиме події, а потім створюватиме їх пакетами. Це розумний спосіб впоратися з цим. І якщо ви хочете скористатися перевагами цього програмно, це спосіб отримати всі ці функції безкоштовно.

Джерело запису: tommcfarlin.com

Цей веб -сайт використовує файли cookie, щоб покращити ваш досвід. Ми припустимо, що з цим все гаразд, але ви можете відмовитися, якщо захочете. Прийняти Читати далі