Skip to content

zetrider/wp.recrm

Repository files navigation

ReCRM

Импорт объектов недвижимости и агентов из ReCRM

Плагин: https://wordpress.org/plugins/recrm/

Description

  • Плагин выгружает информацию об объектах/агентах из ReCRM используя API http://api.recrm.ru/doc/index.html
  • Позволяет настроить категории недвижимости для импорта объектов в зависимости от их типа.
  • Сохраняет изображения агентов и объектов на сервере сайта.

Installation

  1. Установите плагин
  2. Перейдите в раздел с настройками плагина, заполните поля согласно их назначению.
    1. Ключ - необходимо запросить у поддержки ReCRM
    2. Cron - если эта опция не отмечена, импорт по крону запускаться не будет
    3. Водяной знак - накладывать watermark указанный в настройках ReCRM
    4. Скрытые объекты - выгружать объекты, у которых свойство hidden = true
    5. Активный статус - выгружать объекты, у которых свойство status = 0
    6. Успешный статус - выгружать объекты, у которых свойство status = 1
    7. Неудачный статус - выгружать объекты, у которых свойство status = 3
  3. Настройте ЧПУ для агентов и объектов недвижимости.
    1. Агенты с категориями - если необходимо, можно добавить таксономию для агентов
    2. Префикс страницы агентов - адрес с агентами относительно корня сайта, например /agents/
    3. Недвижимость с категориями - если необходимо, можно добавить таксономию для недвижимости. При отмеченной опции плагин позволяет автоматически определить нужные вам типа недвижимости в категориях.
    4. Префикс страницы недвижимости - адрес с объектами относительно корня сайта, например /estate/
  4. Если необходимо разместить разные типы недвижимости в разных категориях, создайте категории, перейдите в раздел с настройками плагина "Типы недвижимости и категории". Определите, какие типы недвижимости нужно отображать в созданных категориях.
  5. Нужно добавить define( 'DISABLE_WP_CRON', true ); в файл wp-config.php, так как процесс выгрузки потребляет много ресурсов
  6. Нужно добавить cron задачу для запуска wp-cron.php * * * * * php /path/to/wp-cron.php > /dev/null
  7. В связи с присутствием большого количества фотографий, скрипт сначала загрузит всю информацию во временные файлы. После того как файлы созданы, при каждом запуске cron задачи, скрипт поэтапно (по 30 объектов) начнет запись объектов в базу данных вместе с фотографиями. Переопределить количество импортируемых объектов за раз можно при помощи константы (int) RECRM_CHUNK_TEMP_FILES

FAQ

Как получить API ключ

Как получить демо данные

  • Указать ключ demo

Какие хуки/фильтры присутствуют в плагине

  • recrm_import_convert_phone - конвертирует номер телефона агента [^0-9+]
add_filter('recrm_import_convert_phone', function($phone, $phone_initial) {
    //return $phone;
}, 10, 2);
  • recrm_store_tax_id - определяет таксономию для объекта недвижимости в зависимости от его свойства type_id
add_filter('recrm_store_tax_id', function($tax_id, $item) {
    //return $tax_id;
}, 10, 2);
  • recrm_import_finish - срабатывает каждый раз после завершения крон задачи

Что происходит с удаленными объектами в ReCRM

  • Объект/Агент будет помещен в корзину.

У меня не работает ЧПУ/адрес с объектом/агентом

  • Перейдите в "Настройки" - "Постоянные ссылки" - нажмите кнопку "Сохранить изменения"

Как сохраняются фотографии

Для агентов и объектов будут добавлены свойства, которые содержат информацию о загруженных медиафайлах.

recrm_gallery_agent и recrm_gallery_estate содержат массив из всех медиафайлов, которые были загружены для объекта/агента

Получить отдельно каждый тип медиафайла можно по свойствам:

  • recrm_agent_thumbnail - миниатюра (фотография) агента
  • recrm_estate_thumbnail - миниатюра (обложка) объекта
  • recrm_estate_gallery_photos - фотографии объекта
  • recrm_estate_gallery_layouts - планировки объекта
  • recrm_estate_gallery_building - планировки здания объекта

В каждом свойстве сериализованный массив, в котором ключ это ID файла из базы данных, значение это внешний URL фотографии из ReCRM

Как сохранить площадь без текста (м2)

Нужно добавить функцию к хуку save_post для перезаписи или добавлении нового значения. Пример:

function custon_save_post_recrm_estate($post_id, $post, $update)
{
    $area = get_post_meta($post_id, 'recrm_estate_area', true);
    $expl = explode(' ', $area);
    update_post_meta($post_id, 'recrm_estate_area_num', $expl[0]);
}
add_action('save_post_recrm_estate', 'custon_save_post_recrm_estate', 10, 3);

Как переопределить категорию в зависимости от типа сделки

Нужно добавить фильтр recrm_store_tax_id. Пример:

add_filter('recrm_store_tax_id', function($tax_id, $item) {
    if($item['recrm_estate_deal'] == 'аренда')
    {
        $tax_id = 16;
    }
    elseif($item['recrm_estate_deal'] == 'продажа')
    {
        $tax_id = 17;
    }
    return $tax_id;
}, 10, 2);

About

Импорт объектов и агентов из ReCRM v1

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors