action = $action; $this->locales = $locales; $currencies = []; foreach (Locale::getCurrencies() as $currency) { $currencies[] = [ 'value' => $currency->getLetterCode(), 'label' => htmlspecialchars($currency->getLocalName()), ]; } // Ensure payment method plugins can hook in $paymentPlugins = PluginRegistry::loadCategory('paymethod', true); $pluginList = []; foreach ($paymentPlugins as $plugin) { $pluginList[] = [ 'value' => $plugin->getName(), 'label' => htmlspecialchars($plugin->getDisplayName()), ]; } $this->addGroup([ 'id' => 'setup', 'label' => __('navigation.setup'), ]) ->addField(new FieldOptions('paymentsEnabled', [ 'label' => __('common.enable'), 'options' => [ ['value' => true, 'label' => __('manager.payment.options.enablePayments')] ], 'value' => (bool) $context->getData('paymentsEnabled'), 'groupId' => 'setup', ])) ->addField(new FieldSelect('currency', [ 'label' => __('manager.paymentMethod.currency'), 'options' => $currencies, 'showWhen' => 'paymentsEnabled', 'value' => $context->getData('currency'), 'groupId' => 'setup', ])) ->addField(new FieldSelect('paymentPluginName', [ 'label' => __('plugins.categories.paymethod'), 'options' => $pluginList, 'showWhen' => 'paymentsEnabled', 'value' => $context->getData('paymentPluginName'), 'groupId' => 'setup', ])); } }