【会員グループ管理::会員グループ価格管理アドオン】特定のカテゴリが設定されている商品は通常販売価格を表示させる方法

会員グループ管理::会員グループ価格管理アドオンで、特定のカテゴリのみ通常販売価格が表示されるようにする方法です。

ジェラートカテゴリが設定されている商品は通常販売価格を表示

会員グループに割引率を設定すると会員グループが登録されている会員は割引販売価格が表示されますが、今回はジェラートカテゴリが登録されている商品のみ通常販売価格が表示されるようにしてみます。

以下はプラグインのバージョンが1.0.5以上の場合動作します。

<?php
/**
 * This file is part of Customize
 *
 * Copyright(c) Akira Kurozumi <info@a-zumi.net>
 *
 * https://a-zumi.net
 *
 * For the full copyright and license information, please view the LICENSE
 * file that was distributed with this source code.
 */

namespace Customize\Service\Pricing\Price;


use Eccube\Entity\ProductCategory;
use Plugin\CustomerGroupPrice\Service\Pricing\PricingInterface;
use Plugin\CustomerGroupPrice\Service\Pricing\Request;
use Symfony\Component\Security\Core\Authentication\Token\AnonymousToken;

class CategoryPrice implements PricingInterface
{

    public function getPrice(Request $request): float
    {
        return $request->getProductClass()->getPrice02();
    }

    public function supports(Request $request): bool
    {
        if ($request->getToken() instanceof AnonymousToken) {
            return false;
        }

        $product = $request->getProductClass()->getProduct();

        /** @var ProductCategory $productCategory */
        foreach ($product->getProductCategories() as $productCategory) {
            if("ジェラート" === $productCategory->getCategory()->getName()) {
                return true;
            }
        }

        return false;
    }
}

お気軽にコメントをどうぞ