EC-CUBE3の公式プラグインの競合の直し方の提案

EC-CUBE3の公式プラグインの競合の直し方の提案

EC-CUBE3のこの公式プラグインは、3.0.9以降に作られたプラグイン機構に対応していない作りのために、他のプラグインと100%競合します
関連商品プラグイン
メーカー管理プラグイン

競合するというメールがたくさん来て迷惑なので、直し方を提案します

関連商品プラグイン(0.0.2)を競合しないように修正する

Event.phpの90行付近を修正

~~~
$errors = array(); // 追加
foreach ($form->getErrors() as $key => $error) {
if ($form->isRoot()) {
//$errors[‘#’][] = $error->getMessage(); // コメントアウト
} else {
$errors[] = $error->getMessage();
}
}

if (empty($errors)) { // 書き換える
$app[‘eccube.plugin.repository.related_product’]->removeChildProduct($Product);
$app[‘orm.em’]->flush();

$RelatedProducts = $form->get(‘related_collection’)->getData();
foreach ($RelatedProducts as $RelatedProduct) {
/* @var $RelatedProduct \Plugin\RelatedProduct\Entity\RelatedProduct */
if ($RelatedProduct->getChildProduct() instanceof \Eccube\Entity\Product) {
$RelatedProduct->setProduct($Product);
$app[‘orm.em’]->persist($RelatedProduct);
}
}
$app[‘orm.em’]->flush();
}

~~~

メーカー管理プラグイン(0.0.2)を競合しないように修正する

Maker.php 126行目付近

~~~
if (‘POST’ === $app[‘request’]->getMethod()) {

$errors = array(); // 追加
foreach ($form->getErrors() as $key => $error) {
if ($form->isRoot()) {
//$errors[‘#’][] = $error->getMessage(); // コメントアウト
} else {
$errors[] = $error->getMessage();
}
}
if (empty($errors)) { // 書き換える

$maker_id = $form->get(‘maker’)->getData();

~~~

プラグインにプルリクしたところで取り込んでくれるのか不明瞭なのでブログに書きます
以上です