@ComGrafPL I've had success upgrading a theme easily from 1.7 to 8.... out of interest why do you think a complete new theme would be required? Is there anything in particular to look out for that would require a complete replacement? I guess for the inexperienced that's the only option and maybe that's what you mean.
Tools::jsonEncode() and Tools::jsonDecode() account for the majority of incompatibilities in modules and even this shouldn't actually be a thing..... It appears that there's no penalty (or audit) when a module is sold on the Addons store, but relies on code that has been flagged as deprecated. In fact writing modules that way ensures additional income when a new version comes out and the deprecations are finally removed.
"Compatible with" <> "written for" a particular version. In fact NO 1.7.x module ever sold should use these functions. 1.7.0 was released in November 2016. It does keep many of us employed though, picking up the pieces
It's far too easy to criticise the core developers and the 1-click module...
/**
* @deprecated Deprecated since 1.7.0
* Use json_decode instead
* jsonDecode convert json string to php array / object
*
* @param string $data
* @param bool $assoc (since 1.4.2.4) if true, convert to associativ array
*
* @return array
*/
public static function jsonDecode($data, $assoc = false, $depth = 512, $options = 0)
{
return json_decode($data, $assoc, $depth, $options);
}
/**
* @deprecated Deprecated since 1.7.0
* Use json_encode instead
* Convert an array to json string
*
* @param array $data
*
* @return string json
*/
public static function jsonEncode($data, $options = 0, $depth = 512)
{
return json_encode($data, $options, $depth);
}