12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273 |
- <?php
- /**
- * Copyright © Magento, Inc. All rights reserved.
- * See COPYING.txt for license details.
- */
- namespace Magento\Customer\Model\Customer\Source;
- use Magento\Customer\Api\Data\GroupSearchResultsInterface;
- use Magento\Framework\Module\Manager as ModuleManager;
- use Magento\Customer\Api\Data\GroupInterface;
- use Magento\Customer\Api\GroupRepositoryInterface;
- use Magento\Framework\Api\SearchCriteriaBuilder;
- class Group implements GroupSourceInterface
- {
- /**
- * @var ModuleManager
- */
- protected $moduleManager;
- /**
- * @var GroupRepositoryInterface
- */
- protected $groupRepository;
- /**
- * @var SearchCriteriaBuilder
- */
- protected $searchCriteriaBuilder;
- /**
- * @param ModuleManager $moduleManager
- * @param GroupRepositoryInterface $groupRepository
- * @param SearchCriteriaBuilder $searchCriteriaBuilder
- */
- public function __construct(
- ModuleManager $moduleManager,
- GroupRepositoryInterface $groupRepository,
- SearchCriteriaBuilder $searchCriteriaBuilder
- ) {
- $this->moduleManager = $moduleManager;
- $this->groupRepository = $groupRepository;
- $this->searchCriteriaBuilder = $searchCriteriaBuilder;
- }
- /**
- * Return array of customer groups
- *
- * @return array
- */
- public function toOptionArray()
- {
- if (!$this->moduleManager->isEnabled('Magento_Customer')) {
- return [];
- }
- $customerGroups = [];
- $customerGroups[] = [
- 'label' => __('ALL GROUPS'),
- 'value' => (string)GroupInterface::CUST_GROUP_ALL,
- ];
- /** @var GroupSearchResultsInterface $groups */
- $groups = $this->groupRepository->getList($this->searchCriteriaBuilder->create());
- foreach ($groups->getItems() as $group) {
- $customerGroups[] = [
- 'label' => $group->getCode(),
- 'value' => $group->getId(),
- ];
- }
- return $customerGroups;
- }
- }
|