scopeConfiguration = $scopeConfiguration; $this->checkoutAgreementsRepository = $checkoutAgreementsRepository; $this->escaper = $escaper; $this->checkoutAgreementsList = $checkoutAgreementsList ?: ObjectManager::getInstance()->get( \Magento\CheckoutAgreements\Api\CheckoutAgreementsListInterface::class ); $this->activeStoreAgreementsFilter = $activeStoreAgreementsFilter ?: ObjectManager::getInstance()->get( ActiveStoreAgreementsFilter::class ); } /** * @inheritdoc */ public function getConfig() { $agreements = []; $agreements['checkoutAgreements'] = $this->getAgreementsConfig(); return $agreements; } /** * Returns agreements config. * * @return array */ protected function getAgreementsConfig() { $agreementConfiguration = []; $isAgreementsEnabled = $this->scopeConfiguration->isSetFlag( AgreementsProvider::PATH_ENABLED, ScopeInterface::SCOPE_STORE ); $agreementsList = $this->checkoutAgreementsList->getList( $this->activeStoreAgreementsFilter->buildSearchCriteria() ); $agreementConfiguration['isEnabled'] = (bool)($isAgreementsEnabled && count($agreementsList) > 0); foreach ($agreementsList as $agreement) { $agreementConfiguration['agreements'][] = [ 'content' => $agreement->getIsHtml() ? $agreement->getContent() : nl2br($this->escaper->escapeHtml($agreement->getContent())), 'checkboxText' => $this->escaper->escapeHtml($agreement->getCheckboxText()), 'mode' => $agreement->getMode(), 'agreementId' => $agreement->getAgreementId() ]; } return $agreementConfiguration; } }