Я занимаюсь разработкой сайта для аренды квартир. Я использую тему WordPress для отелей, которую я настроил, поэтому вместо «комнат» используются «квартиры» и плагин бронирования. Каждая из этих квартир также рекламируется в Airbnb и FlipKey.
Мне нужно синхронизировать все календари, так что если, например, кто-то заказывает квартиру в Airbnb, эта квартира автоматически помечается как «недоступная» как на веб-сайте, так и на Flipkey. Это делается с помощью каналов .ics, которые предоставляются обеими компаниями. Существует выходной канал и входной канал для обоих, так что, если я вставлю вывод во вход другого, и наоборот, все будет работать отлично.
Теперь мне нужен способ централизовать оба календаря в одной системе и использовать эту систему для подачи входных данных Airbnb, Flipkey и моего собственного плагина бронирования wordpress. Я пробовал это с:
PHP iCalendar (он может, как и календарь Google, получать каналы, но, насколько я знаю, не дает единого вывода).
Услуги как http://www.accommodationcalendar.com только получить вход, но нет и выхода.
Может быть http://www.davical.org/ может быть хорошим вариантом, но, поскольку я использую общий хостинг, я не могу установить его (насколько я знаю), потому что общий хостинг имеет только MySql, а не PostgreSQL.
У кого-нибудь есть идеи, как это решить?
БЛАГОДАРЮ ВАС!
После некоторых исследований я нашел это решение:
1) Используйте эту библиотеку: http://kigkonsult.se/iCalcreator/
2) Получите каналы ICS и объедините их, а затем создайте новую ICS (создайте папки «import» и «export» и предоставьте им права на запись).
require_once('../classes/iCalcreator/iCalcreator.class.php');
$config2 = array("unique_id" => "kigkonsult2.se",
"directory" => "import",
);
$vcalendar2 = new vcalendar($config2);
$vcalendar2->setConfig("url" , "https://someweb/cal.ics");
$vcalendar2->parse();
$vcalendar2->setConfig("url" , "https://anotherurl/cal2.ics");
$vcalendar2->parse();
$vcalendar2->setConfig("directory", "export");
$vcalendar2->setConfig("filename", "icalmerge3.ics");
$vcalendar2->saveCalendar();echo "done";
3) Создайте планировщик CRON для повторного запуска этого файла. Направьте оба Airbnb и Flipkey на URL, где создается канал. Вы можете использовать столько входных ICS-файлов, сколько захотите.
Других решений пока нет …