diff --git a/Extension.php b/Extension.php index 5f2c5a6..a2d8578 100644 --- a/Extension.php +++ b/Extension.php @@ -3,6 +3,7 @@ namespace Igniter\PayRegister; use Admin\Models\Payments_model; +use Admin\Requests\Location; use Admin\Widgets\Form; use Illuminate\Support\Facades\Event; use System\Classes\BaseExtension; @@ -81,5 +82,36 @@ public function boot() $order->payment_method->updatePaymentIntentSession($order); }); + + $this->extendLocationOptionsFields(); + } + + protected function extendLocationOptionsFields() + { + Event::listen('admin.locations.defineOptionsFormFields', function () { + return [ + 'payments' => [ + 'label' => 'lang:igniter.payregister::default.label_payments', + 'accordion' => 'lang:admin::lang.locations.text_tab_general_options', + 'type' => 'checkboxlist', + 'options' => ['Admin\Models\Payments_model', 'listDropdownOptions'], + 'commentAbove' => 'lang:igniter.payregister::default.help_payments', + 'placeholder' => 'lang:igniter.payregister::default.help_no_payments', + ], + ]; + }); + + Event::listen('system.formRequest.extendValidator', function ($formRequest, $dataHolder) { + if (!$formRequest instanceof Location) + return; + + $dataHolder->attributes = array_merge($dataHolder->attributes, [ + 'options.payments.*' => lang('igniter.payregister::default.label_payments'), + ]); + + $dataHolder->rules = array_merge($dataHolder->rules, [ + 'options.payments.*' => ['string'], + ]); + }); } } diff --git a/language/en/default.php b/language/en/default.php index 92cdef3..ab8db32 100644 --- a/language/en/default.php +++ b/language/en/default.php @@ -14,6 +14,8 @@ 'label_refund_type' => 'Refund Type', 'label_refund_amount' => 'Refund Partial Amount', + 'label_payments' => 'Payments', + 'button_delete_card' => 'Delete and use a different card.', 'button_refund' => 'Refund', @@ -26,6 +28,9 @@ 'help_order_fee' => 'Extra charge to the order total when this payment gateway becomes active', 'help_order_status' => 'Default order status when this payment method is used.', + 'help_payments' => 'Select the payment(s) available at this location. Leave blank to use all enabled payments', + 'help_no_payments' => 'No enabled payment was found.', + 'cod' => [ 'text_tab_general' => 'General', 'text_payment_title' => 'Cash On Delivery',