=== ReCRM ===
Contributors: zetrider
Donate link: https://github.com/zetrider/wp.recrm
Tags: recrm, estate
Requires PHP: 7.0
Requires at least: 4.9
Tested up to: 4.9
Stable tag: 1.1.4
License: GPLv2 or later
License URI: http://www.gnu.org/licenses/gpl-2.0.html

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

== Description ==

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

Позволяет настроить категории недвижимости для импорта объектов в зависимости от их типа.

Сохраняет изображения агентов и объектов на сервере сайта.

== Installation ==

1. Установите плагин
2. Перейдите в раздел с настройками плагина, заполните поля согласно их назначению.
2.1. Ключ - необходимо запросить у поддержки ReCRM
2.2. Cron - если эта опция не отмечена, импорт по крону запускаться не будет
2.3. Водяной знак - накладывать watermark указанный в настройках ReCRM
2.4. Скрытые объекты - выгружать объекты, у которых свойство hidden = true
2.5. Активный статус - выгружать объекты, у которых свойство status = 0
2.6. Успешный статус - выгружать объекты, у которых свойство status = 1
2.7. Неудачный статус - выгружать объекты, у которых свойство status = 3
3. Настройте ЧПУ для агентов и объектов недвижимости.
3.1. Агенты с категориями - если необходимо, можно добавить таксономию для агентов
3.2. Префикс страницы агентов - адрес с агентами относительно корня сайта, например /agents/
3.3. Недвижимость с категориями - если необходимо, можно добавить таксономию для недвижимости. При отмеченной опции плагин позволяет автоматически определить нужные вам типа недвижимости в категориях.
3.3. Префикс страницы недвижимости - адрес с объектами относительно корня сайта, например /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

== Frequently Asked Questions ==

= Как получить API ключ =
Обратиться в службу поддержки https://recrm.ru/

= Как получить демо данные =
Указать ключ demo

= Какие хуки/фильтры присутствуют в плагине =
1. recrm_import_convert_phone - конвертирует номер телефона агента [^0-9+]

```
<?php
add_filter('recrm_import_convert_phone', function($phone, $phone_initial) {
    //return $phone;
}, 10, 2);
```

2. recrm_store_tax_id - определяет таксономию для объекта недвижимости в зависимости от его свойства type_id

```
<?php
add_filter('recrm_store_tax_id', function($tax_id, $item) {
    //return $tax_id;
}, 10, 2);
```

3. 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);
```

== Screenshots ==

1. Настройки плагина
2. Настройка категория
3. Настройка свойств
4. Информация объекта недвижимости
5. Информация агента

== Upgrade Notice ==

= 1.1.4 =
Исправлена ошибка учета выгрузки скрытых объектов

= 1.1.3 =
Исправлена ошибка удаления объектов

= 1.1.2 =
Исправлена ошибка в скрипте для админ панели

= 1.1.1 =
Добавлена проверка отсутствующего изображения в ответе от API. Правки UI.

= 1.1.0 =
Удален cron файла, перенос cron задач в wp-cron. Нужно деактивировать/активировать плагин для внесения cron задачи в расписание.

= 1.0.0=
Релиз плагина

== Changelog ==

= 1.1.4 =
* Исправлена ошибка учета выгрузки скрытых объектов

= 1.1.3 =
* Исправлена ошибка удаления объектов

= 1.1.2 =
* Исправлена ошибка в скрипте для админ панели

= 1.1.1=
* Проверка отсутствующего изображения в ответе от API
* Исправлено отображение свойств объекта и агента в админ. панели

= 1.1.0=
* cron.php удален
* Задача для cron импорта перенесена в wp-cron

= 1.0.0=
* Релиз плагина