如何让用户在OpenCart 3.0.3.8中能够搜索任意语言的商品?

问题描述 投票:0回答:1

我有一个基于OpenCart 3.0.3.8的多语言(英语、俄语等)网站。和 Journal 3 主题。

目前,当使用搜索栏搜索产品时,如果用户没有输入当前活动语言(例如英语)的文本,而是输入任何其他可用语言(例如俄语)的文本,那么搜索将找不到任何结果。

尽管与搜索查询相对应的产品有库存、可用并且具有多语言翻译的描述,但 OpenCart 只查找活动语言翻译中的文本以及仅与搜索查询匹配的文本。

理想情况下,我希望允许用户用任何可用语言编写搜索查询......无论当前使用哪种语言,并且能够找到产品。

有什么想法可以实现这一点吗?

我查看了 OpenCart 支持论坛,人们建议修改 Product.php(目录)文件函数,该函数据称包含用于根据搜索栏输入获取产品的 SQL 查询。

例如,在 getProducts() 函数中我更改了以下代码...

$sql = "SELECT * FROM " . DB_PREFIX . "product p LEFT JOIN " . DB_PREFIX . "product_description pd ON (p.product_id = pd.product_id) WHERE pd.language_id = '" . (int)$this->config->get('config_language_id') . "'";

...对此...

$sql = "SELECT * FROM " . DB_PREFIX . "product p LEFT JOIN " . DB_PREFIX . "product_description pd ON (p.product_id = pd.product_id);

我还删除了其他代码块中的 pd.language_id 限制,但无论我在该文件中引入什么更改,都不会发生任何变化。

Journal 3 主题可能有自己的文件来修改默认搜索功能。然而,Journal 主题文档指出(可能是错误的)Journal 3 使用 OpenCart 3 默认的内置搜索功能。因此,修改负责搜索产品的默认代码应该可以解决问题。

然而,我尝试过的任何方法都无法使我的网站允许多语言产品搜索。

php mysql search opencart opencart-3
1个回答
0
投票

如果您更改了日志并清除了缓存并重新加载了所有内容(日志、opencart),但仍然没有得到预期的结果,那么值得看看日志在哪里攻击这个问题,因为在通常的实践中,它只是删除子句语言本身。

© www.soinside.com 2019 - 2024. All rights reserved.