Как разделить один плагин на бесплатный и платный — и не наступить на собственные грабли
У нас был плагин, который начинался как единое целое: один файл, один класс настроек, и внутри — единственная проверка is_active(), решавшая, показывать премиум-функции или нет. Работало нормально ровно до тех пор, пока не выяснилось, что у этой модели есть дыра, которую нельзя закрыть косметикой. Дыра простая: у любого, кто просто установил бесплатную копию, весь премиум-код уже лежит на диске. Он скрыт за одной проверкой, но проверку можно найти и обойти за пять минут — ни взлома, ни специальных знаний не нужно...