<?php /** * Copyright © Magento, Inc. All rights reserved. * See COPYING.txt for license details. */ namespace Magento\CatalogRule\Model\Rule; class CustomerGroupsOptionsProvider implements \Magento\Framework\Data\OptionSourceInterface { /** * @var \Magento\Customer\Api\GroupRepositoryInterface */ private $groupRepository; /** * @var \Magento\Framework\Api\SearchCriteriaBuilder */ private $searchCriteriaBuilder; /** * @var \Magento\Framework\Convert\DataObject */ private $objectConverter; /** * @param \Magento\Customer\Api\GroupRepositoryInterface $groupRepository * @param \Magento\Framework\Api\SearchCriteriaBuilder $searchCriteriaBuilder * @param \Magento\Framework\Convert\DataObject $objectConverter */ public function __construct( \Magento\Customer\Api\GroupRepositoryInterface $groupRepository, \Magento\Framework\Api\SearchCriteriaBuilder $searchCriteriaBuilder, \Magento\Framework\Convert\DataObject $objectConverter ) { $this->groupRepository = $groupRepository; $this->searchCriteriaBuilder = $searchCriteriaBuilder; $this->objectConverter = $objectConverter; } /** * @return array */ public function toOptionArray() { $customerGroups = $this->groupRepository->getList($this->searchCriteriaBuilder->create())->getItems(); return $this->objectConverter->toOptionArray($customerGroups, 'id', 'code'); } }