| Current Path : /var/www/clients/client3/web2/web/vendor/magento/module-customer/Model/Customer/Source/ |
| Current File : /var/www/clients/client3/web2/web/vendor/magento/module-customer/Model/Customer/Source/Group.php |
<?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;
/**
* Group.
*/
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;
}
}