我有一个 Shopware 6 插件,当前使用布尔配置 reviewSkipModeration 值,该值自动发布通过插件提交的任何评论:
config.xml
reviewSkipModeration true
该插件的当前版本是1.7.2。在新版本1.7.3中,我想删除 reviewSkipModeration 布尔配置并添加新的 autoPublishStars 多选配置:
config.xml
autoPublishStars 0
当前的逻辑是在控制器中实现的。因为我想删除新版本的 if (!$this->config->getReviewSkipModeration()) {...} 控制器中应该进行哪些更改? :
$commentStatus = true;
if($reviewPoints < $this->config->getAutoPublishStars()){
$commentStatus = !$commentStatus;
}
if (!$this->config->getReviewSkipModeration()) {
$commentStatus = false;
}
$create = [
'productId' => $sArticleId,
'customerId' => $customer->getCustomerId(),
'salesChannelId' => $salesChannelContext->getSalesChannel()->getId(),
'languageId' => $salesChannelContext->getContext()->getLanguageId(),
'externalUser' => $this->anonymizeName($isAnon, $customer),
'externalEmail' => $orderNumberAsEmail,
'title' => $commentHeadline,
'content' => $commentContent,
'points' => $reviewPoints,
'status' => $commentStatus,
];
我希望将布尔配置功能迁移到新版本,避免在更新期间更改现有用户的默认行为到具有以下选项的多选配置。如何使用 config.xml 中的“None”到控制器?我可以像在控制器中访问“0”一样访问“无”选项吗?:
在我的更新方法中,如何正确迁移数据:
我的插件更新功能如下:
public function update(UpdateContext $context): void {
parent::update($context);
}
但我不确定如何处理映射。如有任何帮助,我们将不胜感激!
Copyright 2014-2026 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号