diff --git a/src/pretix/base/settings.py b/src/pretix/base/settings.py
index acfbd36179..a314874eda 100644
--- a/src/pretix/base/settings.py
+++ b/src/pretix/base/settings.py
@@ -2527,8 +2527,7 @@ Your {organizer} team"""))
'default': LazyI18nString.from_gettext(gettext_noop(
'We use cookies and similar technologies to gather data that allows us to improve this website and our '
'offerings. If you do not agree, we will only use cookies if they are essential to providing the services '
- 'this website offers. This includes cookies used to store your cart and personal settings, cookies used for '
- 'payment processing, as well as cookies required for technical or security reasons.'
+ 'this website offers.'
)),
'type': LazyI18nString,
'serializer_class': I18nField,
diff --git a/src/pretix/presale/context.py b/src/pretix/presale/context.py
index 7ab386647b..0dbeea77ce 100644
--- a/src/pretix/presale/context.py
+++ b/src/pretix/presale/context.py
@@ -45,6 +45,7 @@ from pretix.base.settings import GlobalSettingsObject
from pretix.helpers.i18n import (
get_javascript_format_without_seconds, get_moment_locale,
)
+from .cookies import get_cookie_providers
from ..base.i18n import get_language_without_region
from .signals import (
@@ -140,6 +141,8 @@ def _default_context(request):
ctx['event'] = request.event
ctx['languages'] = [get_language_info(code) for code in request.event.settings.locales]
+ ctx['cookie_providers'] = get_cookie_providers(request.event, request)
+
if request.resolver_match:
ctx['cart_namespace'] = request.resolver_match.kwargs.get('cart_namespace', '')
elif hasattr(request, 'organizer'):
diff --git a/src/pretix/presale/signals.py b/src/pretix/presale/signals.py
index 373e13049b..343f047f46 100644
--- a/src/pretix/presale/signals.py
+++ b/src/pretix/presale/signals.py
@@ -401,3 +401,13 @@ This signal is sent out when the description of an item or variation is rendered
additional text to the description. You are passed the ``item`` and ``variation`` and expected to return
HTML.
"""
+
+register_cookie_providers = EventPluginSignal()
+"""
+Arguments: ``request``
+
+This signal is sent out to get all cookie providers that could set a cookie on this page, regardless of
+consent state. Receivers should return a list of pretix.presale.cookies.CookieProvider objects.
+
+As with all event-plugin signals, the ``sender`` keyword argument will contain the event.
+"""
diff --git a/src/pretix/presale/templates/pretixpresale/event/base.html b/src/pretix/presale/templates/pretixpresale/event/base.html
index 6c75b3e105..cec01ee158 100644
--- a/src/pretix/presale/templates/pretixpresale/event/base.html
+++ b/src/pretix/presale/templates/pretixpresale/event/base.html
@@ -172,7 +172,7 @@
{% if request.event.settings.privacy_url %}
-{% endif %}
\ No newline at end of file
+{% endif %}
diff --git a/src/pretix/presale/templates/pretixpresale/organizers/base.html b/src/pretix/presale/templates/pretixpresale/organizers/base.html
index 50bc5d74b5..8e8e1b19b3 100644
--- a/src/pretix/presale/templates/pretixpresale/organizers/base.html
+++ b/src/pretix/presale/templates/pretixpresale/organizers/base.html
@@ -90,7 +90,7 @@
{% if not request.event and request.organizer.settings.privacy_url %}
{% endif %}
- {% if not request.event and request.organizer.settings.cookie_consent %}
+ {% if not request.event and request.organizer.settings.cookie_consent and cookie_providers %}