PHPWord, шаблоны и PDF — настройка хорошей генерации

Очень часто внутри CRM/ERP-систем используется генератор DOC/PDF-файлов по шаблону, будь то счета-фактуры, акты приёма-передачи или целиком договоры с подписью и печатью. Чтобы дать клиенту возможность самому делать шаблоны документов и вставлять туда всякое (например, скан печати или подписи), я давно привык использовать PHPOffice/PHPWord вместе с его замечательным механизмом TemplateProcessor.

Читать далее

Как комфортно работать с большими таблицами в CRM: Datatables Server-Side

В CRM/ERP-системах, которые мы разрабатываем под заказ, всегда используется чудесный компонент DataTables. Очень удобный процессор табличных данных, поиск, фильтр, гибкость — это всё про него. Мы его любим.

Базовое использование данного плагина подразумевает обработку имеющейся таблицы <table> или подгрузку JSON-массива. Проблемы начинаются, когда таблица имеет большое количество строк, а наши CRM-системы очень часто содержат таблицы данных от 1000 строк и выше.

Читать далее

4 совета для комфортной работы сообщений с сайта

Плагин Contact Form 7 стал де-факто стандартом для отправки сообщений с сайта. На его плечи ложится отправка данных заказов, запросов и прочей коммерческой информации, терять которую нельзя. Однако, поскольку этот метод взаимодействия с клиентом опирается на протоколы электронной почты, возможны случаи, при которых адресат может не получить нужный емэйл с сайта, что недопустимо. В моей Студии мы используем 4 простых метода, которые гарантированно избавляют наших клиентов от потери корреспонденции.

Читать далее

Как победить ошибку 414 при экспорте данных пользователей в WP-Members

Для работы с пользователями и полями мы используем плагин  WP-Members, который предоставляет неплохой  механизм экспорта данных пользователей в CSV. Однако на наших нестандартных объектах мы очень быстро сталкиваемся с тем, что пользователей становится много, а полей с данными для экспорта — ещё больше. Соответственно, на определённом этапе всё это хозяйство падает с ошибкой Request-URI Too Long (код 414) при попытке экспорта пользователей.

Читать далее

Покупка vs Разработка, сравнение цен на CRM

Задача этого текста — показать, что разработка собственной CRM/ERP-системы, заточенной исключительно под ваши нужды — не такое уж и дорогое удовольствие, которое в долгосрочной перспективе принесёт массу плюсов. Давайте вместе прикинем все цифры, плюсы и минусы, сравнив варианты от трёх лидеров рынка.

В облачной версии Битрикс24 нам интересен тариф Компания, поскольку в него включены учёт рабочего времени, отчёты руководителю и складской учёт (хотя бизнес-процессы есть на более младшем тарифе).

Читать далее

Как добавить любую переменную в сниппет Yoast SEO

Пользу WordPress-плагина Yoast SEO сложно переоценить. Одной из важнейших функций для СЕОшников является автоматическая шаблонная генерация мета-информации для Title и Description. Мы можем составить тайтл или дескрипшн из конструктора, подставляя простые переменные, и это круто.

Однако, разумеется, возникают случаи, когда готовых переменных явно недостаточно. Сейчас мы рассмотрим пример, как добавить свою — любую! — информацию в список переменных шаблона мета-данных Yoast. В результате получится что-то вроде такого:

Читать далее

Как комфортно кэшировать CSS/JS-файлы при разработке на WP?

Нередко встречается ситуация, когда при разработке сайта на WordPress статичные ресурсы кэшируются и при постоянных изменениях, скажем, CSS-файлов клиент не всегда видит актуальную версию. Конечно, можно всякий раз просить почистить кэш, нажать Ctrl+F5, но это неудобно, особенно на мобильных. Мы при разработке, а иногда и на боевых версиях сайтов, используем GET-параметр, который сообщает браузеру время последнего изменения данного файла. Таким образом, браузер запрашивает обновлённый файл только тогда, когда это действительно необходимо.

Данное решение очень простое, не требует никаких манипуляций с серверными настройками и т.п., поэтому подойдёт всем. Разместите этот код в functions.php вашей темы:

Читать далее

Как добавить UTM данные в вызов через jivosite?

Если у вас используется дживосайт и запущена контекстная реклама, всегда полезно знать UTM-данные посетителя. Неплохо также сохранять их для последующей аналитики. Можно довольно просто просмотреть UTM-метки посетителя средствами самого дживосайта, но только в тех случаях, когда диалог был открыт на посадочной странице. В случае, если пользователь перешёл на другую страницу сайта и затем уже вызвал диалог, строка с параметрами потеряется и дживосайт не увидит метки.

Данная проблема решается достаточно просто — через куки. Мы проверяем строку посадочного запроса (с UTM-метками) и при обнаружении записываем их в куки. Эти куки могут жить сколько угодно (если вам нужно сохранить данные посетителя после того, как он закроет окно) — мы же не будем указывать срок жизни куки, чтобы они удалялись по закрытии окна браузера.

Читать далее