Как создать дочерний плагин WordPress
Я хочу создать дочерний плагин..
Объяснение:
У меня есть родительский плагин под названием X. Он работает независимо (как и другие существующие плагины).
Теперь я решил добавить некоторые дополнительные функции к плагину X (считайте это обновлением). Поэтому я хочу создать дополнительные функции с помощью другого плагина Y, который будет зависеть от (и наследовать) X.
Этот плагин Y не будет работать без плагина X.
Как я могу это сделать?

Лучший способ сделать это — создать ваш плагин X с собственными хуками для действий и фильтров, чтобы новые плагины (в вашем случае Y) могли взаимодействовать с функциями и данными плагина X. Определение собственных хуков довольно просто и легко.
Хук действия (Action Hook)
Из кодекса:
Действия — это хуки, которые ядро WordPress запускает в определенные моменты выполнения или при возникновении конкретных событий. Ваш плагин может указать, что одна или несколько его PHP-функций должны выполняться в этих точках, используя Action API.
Пример нового хука действия:
Function whatever(){
//обычные действия, которые вы выполняете
do_action('Название-Вашего-Хука-Действия', $args1,$args2)
//обычные действия, которые вы выполняете
}
Теперь мы можем взаимодействовать с этой функцией и использовать её аргументы ($args1,$args2) через хук 'Название-Вашего-Хука-Действия'
add_action('Название-Вашего-Хука-Действия','функция_обратного_вызова_хука');
Хук фильтра (Filter Hook)
Из кодекса:
Фильтры — это хуки, которые WordPress запускает для изменения текста различных типов перед добавлением в базу данных или отправкой в браузер. Ваш плагин может указать, что одна или несколько его PHP-функций должны выполняться для изменения определенных типов текста в эти моменты, используя Filter API.
Пример нового хука фильтра:
Function whatever(){
//обычные действия, которые вы выполняете
$output = apply_filters('Название-Вашего-Хука-Фильтра', $output,$args1,$args2)
//обычные действия, которые вы выполняете
}
Теперь мы можем взаимодействовать с этой функцией, фильтровать $output и использовать её аргументы ($args1,$args2) через хук 'Название-Вашего-Хука-Фильтра'
add_filter('Название-Вашего-Хука-Фильтра','функция_обратного_вызова_хука');
Хорошим примером этого может служить Contact Form 7
- Contact Form 7 - Campaign Monitor Addon
- Contact Form 7 Dynamic Text Extension
- Contact Form 7 Calendar
- Contact Form 7 Textarea Wordcount
- Contact Form 7 Customfield in mail
- Contact Form 7 to Database Extension
и многие другие, которые (большинство) являются плагинами, расширяющими функциональность Contact Form 7 на основе его хуков.

Я не считаю это хорошим решением, ведь основная причина, по которой кто-то хочет создать дочерний плагин вместо изменения оригинального плагина, заключается в том, чтобы не приходилось модифицировать исходный (или "родительский") плагин. Хуки в родительском плагине для расширяемости — это хорошо, но решение автора вопроса не могло на них полагаться. (...как и я, и многие другие наверняка в такой же ситуации.)

Я сам прошел через это и у меня было так много изменений, что я не мог просто перезаписать действия.
Я создал этот инструмент, который позволяет создать дочерний плагин, подобно дочерней теме. Вы можете вносить изменения в плагин и при этом обновлять его, не теряя своих правок.
Я публикую это здесь, потому что это связано с темой и, надеюсь, окажется полезным для следующего человека, который столкнется с этой проблемой.
