diff --git a/src/pretix/base/settings.py b/src/pretix/base/settings.py
index 49f754b068..accbaf4334 100644
--- a/src/pretix/base/settings.py
+++ b/src/pretix/base/settings.py
@@ -1440,6 +1440,7 @@ DEFAULTS = {
('off', _('All refunds are issued to the original payment method')),
('option', _('Customers can choose between a gift card and a refund to their payment method')),
('force', _('All refunds are issued as gift cards')),
+ ('manually', _('Do not handle refunds automatically at all')),
],
),
'form_class': forms.ChoiceField,
@@ -1449,6 +1450,7 @@ DEFAULTS = {
('off', _('All refunds are issued to the original payment method')),
('option', _('Customers can choose between a gift card and a refund to their payment method')),
('force', _('All refunds are issued as gift cards')),
+ ('manually', _('Do not handle refunds automatically at all')),
],
widget=forms.RadioSelect,
# When adding a new ordering, remember to also define it in the event model
diff --git a/src/pretix/presale/templates/pretixpresale/event/order.html b/src/pretix/presale/templates/pretixpresale/event/order.html
index 7d7b1c43ea..035f47c287 100644
--- a/src/pretix/presale/templates/pretixpresale/event/order.html
+++ b/src/pretix/presale/templates/pretixpresale/event/order.html
@@ -397,7 +397,7 @@
{% trans "The refund will be issued in form of a gift card that you can use for further purchases." %}
{% elif request.event.settings.cancel_allow_user_paid_refund_as_giftcard == "option" %}
{% trans "The refund can be issued to your original payment method or as a gift card." %}
- {% else %}
+ {% elif request.event.settings.cancel_allow_user_paid_refund_as_giftcard != "manually" %}
{% trans "The refund will be issued to your original payment method." %}
{% endif %}
{% trans "This will invalidate all tickets in this order." %}
@@ -418,7 +418,7 @@
{% trans "The refund will be issued in form of a gift card that you can use for further purchases." %}
{% elif request.event.settings.cancel_allow_user_paid_refund_as_giftcard == "option" %}
{% trans "The refund can be issued to your original payment method or as a gift card." %}
- {% else %}
+ {% elif request.event.settings.cancel_allow_user_paid_refund_as_giftcard != "manually" %}
{% trans "The refund will be issued to your original payment method." %}
{% endif %}
{% trans "This will invalidate all tickets in this order." %}
diff --git a/src/pretix/presale/templates/pretixpresale/event/order_cancel.html b/src/pretix/presale/templates/pretixpresale/event/order_cancel.html
index e2045110ed..410e32f1b8 100644
--- a/src/pretix/presale/templates/pretixpresale/event/order_cancel.html
+++ b/src/pretix/presale/templates/pretixpresale/event/order_cancel.html
@@ -84,7 +84,11 @@
{% endif %}
{% if refund_amount %}
- {% if request.event.settings.cancel_allow_user_paid_refund_as_giftcard == "force" %}
+ {% if request.event.settings.cancel_allow_user_paid_refund_as_giftcard == "manually" %}
+
+ {% trans "The organizer will get in touch with you to clarify the details of your refund." %}
+
+ {% elif request.event.settings.cancel_allow_user_paid_refund_as_giftcard == "force" %}
{% trans "The refund will be issued in form of a gift card that you can use for further purchases." %}
diff --git a/src/pretix/presale/views/order.py b/src/pretix/presale/views/order.py
index 8996e89657..dda9350fb2 100644
--- a/src/pretix/presale/views/order.py
+++ b/src/pretix/presale/views/order.py
@@ -873,11 +873,14 @@ class OrderCancelDo(EventViewMixin, OrderDetailMixin, AsyncAction, View):
return redirect(self.get_order_url())
fee = None
require_approval = False
- auto_refund = not self.request.event.settings.cancel_allow_user_paid_require_approval
+ auto_refund = (
+ not self.request.event.settings.cancel_allow_user_paid_require_approval
+ and self.request.event.settings.cancel_allow_user_paid_refund_as_giftcard != "manually"
+ )
if self.order.status == Order.STATUS_PAID and self.order.total != Decimal('0.00'):
require_approval = self.request.event.settings.cancel_allow_user_paid_require_approval
fee = self.order.user_cancel_fee
- auto_refund = True
+ auto_refund = self.request.event.settings.cancel_allow_user_paid_refund_as_giftcard != "manually"
if self.order.total == Decimal('0.00'):
fee = Decimal('0.00')
elif 'cancel_fee' in request.POST and self.request.event.settings.cancel_allow_user_paid_adjust_fees: