Итак, я начинаю цикл постов посвященных созданию простой и достаточно функциональной CRM в виде плагина для CMS WordPress. В каждом посте я буду описывать шаг за шагом создание CRM и в конце концов у нас должна получиться полностью функционирующая CRM.
Зачем создавать очередную CRM для WordPress?
На этот вопрос я могу дать несколько ответов:
- Создание CRM это очень хороший повод потренироваться в создании плагинов на WP;
- Создаваемая CRM будет полностью Ваша и именно с тем функционалом который Вы захотите.
На втором пункте я бы хотел остановиться и добавить, то что можно скачать кучу CRM плагинов, но все они в большинстве тяжелые, кривые и порой с ненужным функционалом. Кроме этого все crm под WordPress идут как правило, в обрезанном виде, а за полную версию нужно отдавать деньги – такой расклад меня никак не устраивает.
Создание CRM плагина
Для начала в папке /wp-content/plugins/ создадим папку zcrm и внутри нее положим файл zcrm.php.
Открываем файл zcrm.php и в самое начало вписываем следующий код:
<?php /* Plugin Name: ZCRM Plugin URI: https://www.ziscod.com/ Description: Простая CRM для WordPress Version: 1.0 Author: Anton Lokotkov Author URI: https://www.ziscod.com/ */ define(PATCH_ZCRM, WP_PLUGIN_URL.'/'.str_replace(basename( __FILE__),"",plugin_basename(__FILE__)));
В самом начале указывается небольшая информация о создаваемом плагине. Для нас это выглядит как многострочный комментарий, но не для WP. После комментария я сразу же указываю константу в которую будет попадать путь до создаваемого плагина.
После вставки кода сохраняемся и идем в админ панель WP в пункт меню «Плагины». В самом конце ищете плагин ZCRM и активируете его.
Начинаем разработку плагина
Теперь определимся где будет располагаться весь код. Код можно писать в функции zcrmfun(),
но тогда желательно проверять не существует ли где-нибудь подобная функция. Конструкция кода в этом случае будет выглядеть так:
if ( ! function_exists( ' zcrmfun ' ) ) { function zcrmfun () { } }
Выше описанный кусок кода может привести к различным рода ошибкам при выполнении кода и ваш сайт может попросту перестать работать. Поэтому я буду пользоваться слегка другим способом и оберну функцию в класс.
class ZCRM { function __construct() { } } $zcrm = new ZCRM;
Создаем пользовательские типы записей
Итак теперь давайте создадим пользовательский тип записей который будет содержать все контакты CRM. Подробнее о создании кастомных типах записей можно почитать в кодексе
Теперь добавим в конструктор следующее хук событие:
function __construct() { add_action( 'init','register_custom_post_type'); }
И пропишем код регистрации пользовательской записи.
function register_custom_post_type() { register_post_type( 'contact', array( 'labels' => array( 'name' => _x( 'Контакты', 'post type general name', 'zcrm' ), 'singular_name' => _x( 'Контакты', 'post type singular name', 'zcrm' ), 'menu_name' => _x( 'Контакты', 'admin menu', 'zcrm' ), 'name_admin_bar' => _x( 'Контакт', 'add new on admin bar', 'zcrm' ), 'add_new' => _x( 'Добавить', 'contact', 'zcrm' ), 'add_new_item' => __( 'Добавить новый контакт', 'zcrm' ), 'new_item' => __( 'Новый контакт', 'zcrm' ), 'edit_item' => __( 'Редактировать', 'zcrm' ), 'view_item' => __( 'Просмотреть', 'zcrm' ), 'all_items' => __( 'Все контакты', 'zcrm' ), 'search_items' => __( 'Поиск контактов', 'zcrm' ), 'parent_item_colon' => __( 'Другие контакты:', 'zcrm' ), 'not_found' => __( 'Контактов не найдено.', 'zcrm' ), 'not_found_in_trash' => __( 'Корзина пуста.', 'zcrm' ), ), 'has_archive' => false, 'public' => false, 'publicly_queryable' => false, 'capability_type' => 'post', 'menu_icon' => 'dashicons-businessman', 'menu_position' => 10, 'query_var' => true, 'show_in_menu' => true, 'show_ui' => true, 'supports' => array( 'title', 'author', 'comments', ), ) ); }
Теперь в аминке WP появиться дополнительный пункт меню – «Контакты». В нем можно делать все то же, что и при работе с обычными записями в WP.
Итак, в этом после я рассмотрел начальный процесс создания плагина CRM для WP и реализовал возможность добавления новых контактов через кастомные типы записей. Продолжение разработки плагина CRM для WordPress ждите в следующих постах.