Shopware 6 Plugin -在Plugin Subscriber中读取主题配置



在twig中,我可以通过theme_config访问我的主题配置值。

我正在寻找一种在订阅者中干净地做到这一点的方法。

我试图通过ShopwareStorefrontThemeThemeConfigValueAccessor:

$salesChannelContext = $event->getSalesChannelContext();
$this->themeConfigAccessor->get('theme-config-value-key', $salesChannelContext, null);

但是我需要$themeId作为第三个参数,我没有找到方法获取当前SalesChannel的主题,而不需要从数据库中读取。

有人有解决这个问题的办法吗?是否存在最佳实践方法?

您可以直接从请求中获得当前主题,而不需要去DB:

$themeId = $request->attributes->get(SalesChannelRequest::ATTRIBUTE_THEME_ID);

请记住,该属性可能不被设置,例如,如果请求不是店面请求。因此,您应该为$themeId添加空检查。

如果事件提供了当前请求,则可以直接从订阅的事件中获取当前请求。如果没有,你可以注入request_stack服务到你的订阅者,并从那里获得当前的请求。

相关内容

  • 没有找到相关文章

最新更新