Bug: HikaShop 6.4.1 search plugins still extend deprecated JPlugin (Joomla 6 cra

  • Posts: 1
  • Thank you received: 0
5 hours 8 minutes ago #371833

-- url of the page with the problem -- : all ours
-- HikaShop version -- : 6.4.1
-- Error-message(debug-mod must be tuned on) -- : 500

Hello HikaShop team,

we run HikaShop Business 6.4.1 on a Joomla 6.1.0 site (German shop, easybay-web.com) and ran into a reproducible fatal error caused by the two search plugins shipped with the package still extending the long-deprecated JPlugin class:

/plugins/search/hikashop_products/hikashop_products.php — line 12
/plugins/search/hikashop_categories/hikashop_categories.php — line 12

Both files also use JPluginHelper and JRegistry further down (e.g. lines 19–20 of hikashop_products.php).

On Joomla 6 these legacy names are only available through the "Behaviour - Backward Compatibility 6" plugin (compat6). Due to the known Joomla core issue #46233 the behaviour plugin group is no longer guaranteed to load before the system/search plugin group, so any code path that imports search plugins crashes before compat6 has had a chance to register the class aliases.

Reference: issues.joomla.org/tracker/joomla-cms/46233

Reproduction in our environment:
- Joomla 6.1.0 Stable [Nyota], 14 April 2026
- HikaShop Business 6.4.1
- JCE Editor (latest)
- Open any article in the backend, click the "Insert/Edit Link" toolbar button.
- JCE internally calls PluginHelper::importPlugin('search'), which loads our two plugins.
- Fatal error: Class "JPlugin" not found in /plugins/search/hikashop_categories/hikashop_categories.php:12

The error vanishes immediately after replacing

class plgSearchHikashop_products extends JPlugin

with

class plgSearchHikashop_products extends \Joomla\CMS\Plugin\CMSPlugin

in both files (and the same edit for the categories plugin). For full Joomla 6 cleanliness, JPluginHelper should also become \Joomla\CMS\Plugin\PluginHelper and JRegistry should become \Joomla\Registry\Registry.

This will likely affect every customer running HikaShop on Joomla 6, and it will hit hard once Joomla 7 ships and the compat6 layer is removed for good. A small fix in your next release would prevent a lot of support tickets.

Thanks for the great product — happy to provide additional logs, a full stack trace or test on a staging copy if that helps.

Best regards,
Jan Derhake
DERHAKE IT-Services
Augsburg, Germany
This email address is being protected from spambots. You need JavaScript enabled to view it.

Please Log in or Create an account to join the conversation.

  • Posts: 85581
  • Thank you received: 14004
  • MODERATOR
1 hour 11 minutes ago #371835

Hello Jan,

Thanks for the very precise report. We reproduced the issue on a local Joomla 6.1.0 + HikaShop main + JCE installation, the failure is exactly as you describe: PluginHelper::importPlugin('search') tries to parse our two search plugin files before any code path that would have aliased the legacy JPlugin / JPluginHelper / JRegistry names has run, and class loading fatals at the class declaration line.

Our fix is in our next release. Rather than switching the parent class to Joomla\CMS\Plugin\CMSPlugin (which would break Joomla 3 and Joomla 4 environments where the namespaced class is not always autoload-resolvable in plugin context), each search plugin now declares the three aliases (JPlugin, JPluginHelper, JRegistry to their modern namespaced equivalents) inline at the very top of the file, gated by class_exists($legacy, false). The class declaration below then always parses, regardless of whether compat6 has fired, whether its classes_aliases parameter is on, or whether HikaShop's helper.php has been loaded yet in the request. Behaviour on Joomla 4 and 5 is unchanged (the existing aliases are detected and the inline ones are no-ops).

A package containing the patch has just been uploaded; please update HikaShop to confirm it resolves the issue on your end.

One small thing if you have a moment: could you share the full stack trace from the 500 you saw? Your report mentions "all ours" in the page-URL field and we want to make sure the failing call path on your sites really is the JCE Insert/Edit Link one we reproduced and not a second caller of PluginHelper::importPlugin('search') that we have not accounted for. On a stock Joomla 6 installation com_search no longer exists and JCE, which is not included in Joomla by default, is the only place we found that still uses the search plugin group (and that's why we never changed these plugins because they are meant to be used only on Joomla 3 / 4 and should not be called normally on Joomla 6). If a third extension on your stack is also calling it (or if it is firing on every front-end render rather than only when the link picker opens) the trace will tell us.

Thanks again for the report and for offering to test, very much appreciated.

Please Log in or Create an account to join the conversation.

Time to create page: 0.060 seconds
Powered by Kunena Forum