Magento 2 Documentation  2.3
Documentation for Magento 2 CMS v2.3 (December 2018)
AgreementsConfigProvider.php
Go to the documentation of this file.
1 <?php
7 
12 
17 {
22 
27 
31  protected $escaper;
32 
36  private $checkoutAgreementsList;
37 
41  private $activeStoreAgreementsFilter;
42 
51  public function __construct(
54  \Magento\Framework\Escaper $escaper,
55  \Magento\CheckoutAgreements\Api\CheckoutAgreementsListInterface $checkoutAgreementsList = null,
56  ActiveStoreAgreementsFilter $activeStoreAgreementsFilter = null
57  ) {
58  $this->scopeConfiguration = $scopeConfiguration;
59  $this->checkoutAgreementsRepository = $checkoutAgreementsRepository;
60  $this->escaper = $escaper;
61  $this->checkoutAgreementsList = $checkoutAgreementsList ?: ObjectManager::getInstance()->get(
62  \Magento\CheckoutAgreements\Api\CheckoutAgreementsListInterface::class
63  );
64  $this->activeStoreAgreementsFilter = $activeStoreAgreementsFilter ?: ObjectManager::getInstance()->get(
65  ActiveStoreAgreementsFilter::class
66  );
67  }
68 
72  public function getConfig()
73  {
74  $agreements = [];
75  $agreements['checkoutAgreements'] = $this->getAgreementsConfig();
76  return $agreements;
77  }
78 
84  protected function getAgreementsConfig()
85  {
86  $agreementConfiguration = [];
87  $isAgreementsEnabled = $this->scopeConfiguration->isSetFlag(
90  );
91 
92  $agreementsList = $this->checkoutAgreementsList->getList(
93  $this->activeStoreAgreementsFilter->buildSearchCriteria()
94  );
95  $agreementConfiguration['isEnabled'] = (bool)($isAgreementsEnabled && count($agreementsList) > 0);
96 
97  foreach ($agreementsList as $agreement) {
98  $agreementConfiguration['agreements'][] = [
99  'content' => $agreement->getIsHtml()
100  ? $agreement->getContent()
101  : nl2br($this->escaper->escapeHtml($agreement->getContent())),
102  'checkboxText' => $agreement->getCheckboxText(),
103  'mode' => $agreement->getMode(),
104  'agreementId' => $agreement->getAgreementId()
105  ];
106  }
107 
108  return $agreementConfiguration;
109  }
110 }
__construct(\Magento\Framework\App\Config\ScopeConfigInterface $scopeConfiguration, \Magento\CheckoutAgreements\Api\CheckoutAgreementsRepositoryInterface $checkoutAgreementsRepository, \Magento\Framework\Escaper $escaper, \Magento\CheckoutAgreements\Api\CheckoutAgreementsListInterface $checkoutAgreementsList=null, ActiveStoreAgreementsFilter $activeStoreAgreementsFilter=null)