Лучший способ изменить плагин без крючков и нет подключаемых функций?

Я должен внести некоторые изменения в некоторые функции в плагине, которые не имеют крючков и не подключаются.

Моя идея состояла в том, чтобы обернуть функции, которые я модифицирую в if ( ! function_exists()) и перенести мои модификации в отдельный плагин. Затем, когда мне нужно обновить плагин, я просто повторно добавлю if ( ! function_exists()) обертку.

Пожалуйста, скажите мне, почему это плохая идея и что я должен делать вместо этого.

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

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

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

Но да, я бы начал с автора плагина для такой поддержки, прежде чем рассматривать другие решения

Я могу придумать не один пример плагина, который не использует фильтры. Почти все плагины используют параметры для хранения данных и для этого используют связанные с опцией перехватчики.

ваш плагин, вероятно, использует много действий и фильтров, они не находятся на высоком уровне кода, но это не мешает вам использовать их для изменения поведения плагина.

Другая возможность – использовать выходную буферизацию для управления выходом, если нет другого способа повлиять на ее генерацию.

если плагин, который вы хотите манипулировать, существует как класс, вы можете перезаписать его с помощью функции __call в своем классе (расширяет оригинал). что не позволяет вам редактировать файлы; вам, возможно, придется переписать свой плагин, чтобы не отставать от другого плагина, но я думаю, что расширение класса плагина – ваш лучший вариант, учитывая пренебрежение автором.