✅ Новости WEB и WordPress, темы, плагины. Здесь мы делимся советами и лучшими решениями для веб-сайтов.

Программное создание повторяющихся событий с помощью календаря событий

17

Календарь событий 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 для улучшения вашего опыта. Мы предполагаем, что вы согласны с этим, но вы можете отказаться, если хотите. Принимаю Подробнее