Да, есть способы сделать это. Я думаю, что это огромная боль, чтобы поддерживать в полном объеме, и это может вызвать у вас огромную головную боль поддержки. Это потребует дополнительных файлов, таких как файлы с кодом, чтобы сначала обнаружить соответствующую версию OC, а затем необходимые функции в этих файлах, чтобы указать на различные структуры папок конкретной версии с соответствующими файлами версии. Затем вам придется учитывать тот факт, что вы заставляете людей нести два набора папок / файловых структур в своем каталоге opencart, когда им нужно использовать только один набор для соответствующей версии для плагина, на котором будет выполняться. Например, папки marketplace и extension отличаются в обеих версиях, которые вы упоминаете. Вот некоторые вещи, которые следует учитывать.
Вам нужно было бы установить глобальную переменную где-нибудь, чтобы сначала обнаружить и сохранить версию OC, что-то вроде:
global $oc_version;
$oc_version = (int)str_replace('.','',VERSION);
Тогда у вас будет целый набор функций, сообщающих oc, что делать с вашим модулем, в зависимости от обнаруженной версии oc, например, указание пути, куда запускать папку модуля и запускать twig или tpl. Что-то вроде:
if ($data['oc_version'] = 2300)
// Do Stuff
} elsif ($data['oc_version'] = 3000)
// Do other stuff
}
Однако проблема, с которой вы столкнетесь здесь с моими примерами, заключается в том, что если кто-то использует версию, скажем, 3.0.2.0 (а не 3.0), и нет никаких изменений, которые действительно влияют на ваш модуль, то попытайтесь перейти на основе при обнаружении версии OC не будет работать. Вам придется сменить операторов, больше задуматься и т. Д. Следовательно, вам придется часто повторно модифицировать части одного и того же кода с любым вторым выпуском патча / версии. Я не понимаю, как это спасает тебя от работы в этом направлении.