Order Subscriptions

Order Subscriptions for WooCommerce allows your customers to turn any WooCommerce order into a subscription during checkout. Flexible order-level subscriptions with automatic recurring payments, real stock management, and full customer self-service.

Installation

↑ Back to top

To start using a product from WooCommerce.com, you can use the “Add to store” functionality on the order confirmation page or the My subscriptions section in your account.

  1. Navigate to My subscriptions.
  2. Find the Add to store button next to the product you’re planning to install.
  3. Follow the instructions on the screen, and the product will be automatically added to your store.

Alternative options and more information at:
Managing WooCommerce.com subscriptions.

Adding a WooCommerce.com subscription to your store

Setup

↑ Back to top

Navigate to WooCommerce → Settings → Order Subscriptions to configure the plugin. The settings are organized into three sections:

  • General: Core feature toggle, frequencies, payments, and other options
  • Front-end settings: Customize the checkout widget labels and texts per language
  • Product & user restrictions: Control which products and users can use subscriptions

Important: Order subscriptions are disabled by default after activation. You must enable the feature in the General settings before customers can create subscriptions.

Step 1: General settings

↑ Back to top

Navigate to WooCommerce → Settings → Order Subscriptions → General.

General settings

↑ Back to top
  • Enable order subscriptions: The main toggle. When enabled, the subscription widget appears at checkout for eligible customers. When disabled, the widget is hidden but existing subscriptions continue to renew normally, customers can still manage their active subscriptions, and all email notifications continue.

Display settings

↑ Back to top

The order subscription front-end widget will not show if the cart contains subscription products from other plugins (e.g., WooCommerce Subscriptions).

  • Allowed subscription frequencies: Select which frequency types customers can choose from: Days, Weeks, Months, and/or Years.
  • Minimum/Maximum number of selectable days: Set the range of selectable day intervals (1–90).
  • Minimum/Maximum number of selectable weeks: Set the range of selectable week intervals (1–52).
  • Minimum/Maximum number of selectable months: Set the range of selectable month intervals (1–24).
  • Minimum/Maximum number of selectable years: Set the range of selectable year intervals (1–2).
  • Allow customers to change schedule: When enabled, customers can modify their subscription interval and frequency from their My Account area.
  • Allow customers to skip payments: When enabled, customers can skip their next renewal cycle from their My Account area.
  • Send upcoming renewal email: When enabled, a reminder email is sent to the customer before each renewal.
  • Days before renewal to send email: Number of days before the next payment date to send the reminder email (1–30, default: 3).

Order settings

↑ Back to top
  • Copy fees to recurring orders: When enabled, any fees from the original order are copied to each recurring renewal order.
  • Enable Subscribe & Save discount: When enabled, customers receive a percentage discount for subscribing. The discount is shown at checkout when the subscription checkbox is activated.
  • Discount percentage: The percentage discount for Subscribe & Save (1–50%). This percentage is locked when the subscription is created, changing it later only affects new subscriptions. The discount is calculated on the subtotal after any coupon discounts are applied.
  • Copy additional meta from original order: A comma-separated list of order meta keys to copy from the original order to each recurring order. Useful for custom integrations that store data on orders (e.g., custom_field_1, custom_field_2).

Payment settings

↑ Back to top
  • Enable order subscriptions for cash on delivery: Allow customers to create subscriptions using the Cash on Delivery (COD) payment method. Renewal orders will be set to “Processing” automatically.
  • Enable order subscriptions for bank transfers: Allow customers to create subscriptions using the Direct Bank Transfer (BACS) payment method. Renewal orders will be set to “On hold” awaiting payment, and the customer receives an invoice email with bank transfer instructions.

Other settings

↑ Back to top
  • Enable logging: Enable the logging of errors and critical subscription processes. Logs are viewable in WooCommerce → Status → Logs and are organized by category (osfwc-subscriptions, osfwc-orders, osfwc-gateways, osfwc-general). Gateway-specific logs are stored in separate files (e.g., osfwc-gateway-mollie).
  • Remove plugin data: When checked, all plugin settings will be removed when the plugin is uninstalled. Subscription data (CPT posts and meta) is not deleted.

Step 2: Front-end settings

↑ Back to top

Navigate to WooCommerce → Settings → Order Subscriptions → Front-end settings.

This section allows you to customize the labels and texts shown in the checkout widget. If your site uses a multilingual plugin (WPML, Polylang, Weglot, or GTranslate), a separate set of fields is shown for each active language.

For each language, you can customize the following:

  • Checkout table cell title: The heading text shown above the subscription widget in the order totals (default: “Repeat this order”).
  • Checkout checkbox label: The label next to the subscription toggle checkbox (default: “Turn this order into a subscription”).
  • Checkout interval selection label: The label above the frequency/interval selector (default: “Your renewal frequency”).
  • Checkout renewal frequency prefix: The text shown before the interval number (default: “Every”).
  • Subscribe & Save label: The discount line label in the order totals. Use {percent} as a placeholder for the percentage (default: “Subscribe & Save ({percent}% off)”).
  • Subscribe & Save badge text: Badge text shown next to the checkbox when Subscribe & Save is enabled. Use {percent} as a placeholder (default: “Save {percent}%”).
  • Guest CTA text: Text shown to non-logged-in users encouraging them to log in. Use {login_link} and {register_link} as placeholders for the clickable links (default: “{login_link} or {register_link} to turn this order into a subscription.”).
  • Guest CTA text with discount: Same as above but shown when Subscribe & Save is enabled. Also supports the {percent} placeholder (default: “{login_link} or {register_link} to turn this order into a subscription and save {percent}%.”).

Step 3: Product & user restrictions

↑ Back to top

Navigate to WooCommerce → Settings → Order Subscriptions → Product & user restrictions.

This section controls which users and products are eligible for order subscriptions. The subscription widget is hidden from the checkout if any item in the cart fails these rules.

Include users (whitelist – has priority)

↑ Back to top
  • Enable order subscriptions for user roles: Select one or more user roles. Only users with these roles will see the subscription widget. If left empty, all logged-in users can access subscriptions (subject to the exclude rules below).

Exclude users

↑ Back to top
  • Disable order subscriptions for user roles: Select one or more user roles to prevent from using subscriptions. Only applies when the Include users field is empty.

Note: Include rules always take priority over Exclude rules. If you set both, only the Include rules are evaluated.

Include products (whitelist – has priority)

↑ Back to top
  • Allow only these product categories: Only products in these categories will be eligible.
  • Allow only these product tags: Only products with these tags will be eligible.
  • Allow only these product brands: Only products with these brands will be eligible (requires WooCommerce Brands or a compatible plugin).

Exclude products

↑ Back to top
  • Exclude product categories: Products in these categories cannot be purchased as subscriptions.
  • Exclude product tags: Products with these tags cannot be purchased as subscriptions.
  • Exclude product brands: Products with these brands cannot be purchased as subscriptions.

Product-level exclusion

↑ Back to top
  • Enable exclusion at product level: When enabled, a checkbox appears on the product edit screen (for simple products) and on each variation (for variable products) that lets you individually exclude a product or variation from order subscriptions. The meta key is _osfwc_exclude_from_order_subscriptions with values yes or no.

Checkout experience

↑ Back to top

Logged-in customers (classic checkout)

↑ Back to top

When order subscriptions are enabled and the cart is eligible, a subscription widget appears in the order review section at checkout, directly above the order total.

The widget contains:

  1. A checkbox to enable the subscription, with an optional Subscribe & Save badge.
  2. When checked, a frequency selector (Days/Weeks/Months/Years) and a number input for the interval, with dynamically enforced min/max values.
  3. A Subscribe & Save discount line in the order totals (if enabled in settings).
  4. Payment gateways are automatically filtered to show only subscription-compatible methods.

Logged-in customers (WooCommerce Blocks checkout)

↑ Back to top

The subscription widget also works with the WooCommerce Blocks checkout. The behavior is identical: the widget is rendered as a custom checkout block with the same checkbox, frequency selector, and interval input.

Guest users

↑ Back to top

Non-logged-in users see a CTA message encouraging them to log in or register to enable subscriptions. If Subscribe & Save is enabled, the CTA includes the discount percentage.

Thank you page

↑ Back to top

After a successful subscription order, a subscription summary is displayed on the thank you page below the order details. It shows the subscription ID, status, frequency, next payment date, and a link to manage the subscription in the customer’s account.

Gateway filtering

↑ Back to top

When a customer enables the subscription checkbox at checkout, the available payment gateways are automatically filtered to show only those that support recurring payments. The following gateways are supported:

  • Mollie: All payment methods that support mandate creation (iDEAL, Bancontact, Credit Card, SOFORT, PayPal, Belfius, KBC, EPS, SEPA Direct Debit)
  • Stripe: Cards, SEPA Direct Debit, Bancontact, iDEAL, ACH, BECS, Bacs, Cash App Pay
  • WooPayments: Cards, Link, Apple Pay, Google Pay
  • Cash on Delivery: When enabled in settings
  • Bank Transfer (BACS): When enabled in settings

Gateways are detected automatically based on installed plugins. No additional configuration is needed beyond having the gateway plugin installed and enabled in WooCommerce.

Customer self-service (My Account)

↑ Back to top

Customers can manage their subscriptions from a dedicated section in their WooCommerce My Account area.

Subscriptions list

↑ Back to top

A new menu item appears in the My Account sidebar. If WooCommerce Subscriptions is also installed, the menu item is labeled “Order Subscriptions” to distinguish it. Otherwise, it is labeled “Subscriptions”.

The list shows all subscriptions with their ID, status, frequency, next payment date, and action buttons.

Subscription detail view

↑ Back to top

Clicking View on a subscription opens the detail page showing:

  • Subscription details: Status, interval/frequency, payment method, next payment date, created date.
  • Items: The products from the base order with current quantities. If the admin has enabled quantity editing, customers can adjust quantities here.
  • Actions: Pause, Resume, Skip Next, Cancel. Each with a confirmation prompt. Available actions depend on the current status and admin settings.
  • Addresses: Billing and shipping addresses stored on the subscription, with edit capability. Address changes only affect future renewal orders, previous orders are not modified.
  • Schedule editing: If “Allow customers to change schedule” is enabled in settings, customers can modify the interval and frequency.
  • Related orders: A list of the most recent orders linked to this subscription (base order and renewal orders).

Available actions by status

↑ Back to top
StatusAvailable actions
ActivePause, Skip Next, Cancel
PausedResume, Cancel
CancelledNone (final state)

My Account endpoint configuration

↑ Back to top

The endpoint slugs for the subscriptions pages can be customized in WooCommerce → Settings → Advanced → Account endpoints:

  • Order Subscriptions: The endpoint for the subscriptions list page (default: order-subscriptions).
  • View order subscription: The endpoint for the single subscription detail page (default: view-order-subscription).

These endpoints are also registered with WPML and Polylang for translation.

Admin subscription management

↑ Back to top

Subscriptions list

↑ Back to top

Navigate to WooCommerce → Subscriptions (or WooCommerce → Order Subscriptions when WooCommerce Subscriptions is also active).

The subscriptions list shows all subscriptions in a sortable, filterable table with columns for:

  • Subscription ID
  • Customer name
  • Status (Active / Paused / Cancelled)
  • Frequency (e.g., “Every 2 Weeks”)
  • Next payment date
  • Order count
  • Created date

Bulk actions are available: Activate, Pause, Cancel, and Delete.

Filters: Filter by status (Active, Paused, Cancelled, All).

Search: Search subscriptions by ID, customer name, or email.

Subscription detail / edit view

↑ Back to top

Click on a subscription ID or the View action to open the subscription detail page. Click Edit to enter edit mode.

The detail page shows:

  • Subscription details: Status, subscription ID, base order link, customer, created date.
  • Schedule: Current interval and frequency (editable in edit mode), next payment date (editable via date picker in edit mode), last payment date.
  • Payment info: Payment gateway, gateway title, provider name, provider customer ID, failed payment retry count.
  • Subscribe & Save: Discount percentage locked at subscription creation (if applicable).
  • Items: Products from the base order with quantities. In edit mode, quantities can be changed via AJAX.
  • Addresses: Billing and shipping addresses stored on the subscription.
  • Related orders: All orders linked to this subscription, with links to each order.
View mode
Edit mode

Order metabox

↑ Back to top

On any WooCommerce order that is linked to a subscription (either the base order or a renewal order), an Order Subscriptions metabox appears in the order edit screen.

The metabox shows:

  • Whether the order is the initial subscription order or a recurring renewal order
  • Subscription ID (linked)
  • Status
  • Frequency
  • Next payment date
  • Failed payment count (if any)
  • Total order count
  • A “Related Orders” table showing the most recent orders linked to this subscription (up to 5, with a “View all” link)
  • A Manage subscription button linking to the subscription detail page

Orders table – subscription icon column

↑ Back to top

A subscription icon column is added to the WooCommerce orders list table (both HPOS and legacy). Orders linked to a subscription show a colored icon indicating the subscription status:

  • Green = Active subscription
  • Orange = Paused subscription
  • Red = Cancelled subscription

Clicking the icon opens the subscription detail page. You can also filter the orders list by subscription ID using the ?osfwc_subscription_id= URL parameter.

Subscription analytics

↑ Back to top

Navigate to WooCommerce → Subscription Stats (or WooCommerce → Order Subscription Stats when WooCommerce Subscriptions is also active).

The analytics dashboard provides an overview of your subscription business:

CSV export

↑ Back to top

From the subscriptions list page, click the Export CSV button to download a spreadsheet of your subscriptions. The export includes all subscription data: ID, status, customer info, schedule, payment details, next payment date, order count, and created date.

Email notifications

↑ Back to top

The plugin adds the following email notifications to WooCommerce. Each can be configured (enabled/disabled, subject, heading, content) in WooCommerce → Settings → Emails:

Admin emails

↑ Back to top
EmailTriggerDefault
Subscription CreatedA new subscription is created after checkoutEnabled
Subscription ActivatedA paused subscription is reactivatedEnabled
Subscription PausedA subscription is paused by admin or customerEnabled
Subscription CancelledA subscription is manually cancelledEnabled
Subscription Cancelled (Auto)A subscription is auto-cancelled due to payment failures or validation errorsEnabled
Subscription ChangedA subscription’s schedule or quantities are modifiedEnabled
Payment FailedA renewal payment failsEnabled

Customer emails

↑ Back to top
EmailTriggerDefault
Subscription CreatedA new subscription is created after checkoutEnabled
Subscription ActivatedA paused subscription is reactivatedEnabled
Subscription PausedA subscription is pausedEnabled
Subscription CancelledA subscription is manually cancelledEnabled
Subscription Cancelled (Auto)A subscription is auto-cancelledEnabled
Subscription ChangedA subscription’s schedule or quantities are modifiedEnabled
Payment FailedA renewal payment failsEnabled
Payment SkippedA customer skips their next renewalEnabled
Upcoming Renewal ReminderSent X days before the next payment date (configurable)Enabled

All email templates include a subscription details table showing the subscription ID, status, frequency, next payment date, and order items.

Template overrides

↑ Back to top

All email templates can be overridden by copying them from plugins/order-subscriptions/templates/emails/ to your theme at yourtheme/woocommerce/emails/. Both HTML and plain text templates are provided.

Automatic recurring payments

↑ Back to top

How renewals work

↑ Back to top

The plugin uses WooCommerce Action Scheduler to process subscription renewals in the background.

  1. Hourly check: An hourly scheduled action checks for all active subscriptions whose next payment date has passed.
  2. Individual processing: Each due subscription is enqueued as a separate async action to avoid timeouts on large batches.
  3. Duplicate prevention: Before creating a renewal order, the scheduler checks if there is already a pending or on-hold renewal order for the subscription.
  4. Language context: During renewal processing, the system switches to the customer’s language context (for WPML/Polylang sites) so product names and emails render in the correct language.
  5. Renewal order creation: A new WooCommerce order is created by cloning the base order: products, quantities (with any overrides), coupons (if still valid), fees (if enabled), shipping method (stored from the original order), and addresses (from the subscription).
  6. Payment processing: The renewal order is charged via the stored payment method using the gateway’s API.
  7. Next payment date: After successful payment, the next payment date is advanced by the subscription interval.

Failed payment handling

↑ Back to top

When a payment fails, the plugin implements an automatic retry system:

  • Retry schedule: Exponential backoff: 12 hours after the 1st failure, 24 hours after the 2nd, 48 hours after the 3rd.
  • Maximum retries: 3 attempts. After 3 failures, the subscription is automatically cancelled.
  • Unrecoverable errors: If the failure is due to a deleted product, deleted user, or missing base order, the subscription is cancelled immediately without retries.
  • Stock issues: If a product is out of stock, the retry logic is used (stock may be replenished before the next attempt).

Both admin and customer receive email notifications on each failure and on auto-cancellation.

Manual payment methods

↑ Back to top
  • Cash on Delivery (COD): Renewal orders are automatically set to “Processing” status. No payment is collected, the delivery driver collects payment.
  • Bank Transfer (BACS): Renewal orders are set to “On hold” and the customer receives an invoice email with bank transfer instructions. Once the admin confirms payment and sets the order to “Processing” or “Completed,” the subscription advances to the next cycle.

Supported payment gateways

↑ Back to top
GatewayPlugin requiredRecurring method
Mollie (iDEAL, Bancontact, Credit Card, SOFORT, PayPal, SEPA, etc.)Mollie Payments for WooCommerceMollie API: mandate-based recurring payments
Stripe (Cards, SEPA, ACH, etc.)WooCommerce Stripe GatewayStripe PaymentIntent API: off-session with saved payment method
WooPayments (Cards, Link, Apple Pay, Google Pay)WooPaymentsWooPayments internal API: token-based recurring via Stripe
Cash on DeliveryBuilt into WooCommerceManual: order set to Processing
Bank Transfer (BACS)Built into WooCommerceManual: customer pays via bank transfer

How gateway detection works

↑ Back to top

The plugin automatically detects installed payment gateways and hooks into their checkout flow to ensure payment methods are saved for future recurring charges:

  • Mollie: The plugin tells Mollie’s plugin that the order is a subscription payment (via the mollie-payments-for-woocommerce_is_subscription_payment filter), which triggers Mollie to create a mandate during the first payment.
  • Stripe: The plugin forces the save payment method flag on subscription orders (via wc_stripe_force_save_payment_method), ensuring the card/payment method is stored for off-session use.
  • WooPayments: The plugin hides the “save payment method” checkbox (forcing it to be checked) and sets the appropriate POST variable so WooPayments always tokenizes the payment method.

No additional configuration is needed, if the gateway plugin is installed and enabled in WooCommerce, it will automatically work with order subscriptions.

Adding support for other gateways

↑ Back to top

Developers can add support for additional payment gateways by creating a custom integration class that extends OSFWC\Gateways\Integrations\GatewayIntegration and registering it via the osfwc_register_gateway_integrations action hook.

WooCommerce Subscriptions coexistence

↑ Back to top

Order Subscriptions for WooCommerce can be installed alongside WooCommerce Subscriptions without conflicts. When both plugins are active:

  • Menu labels automatically change to avoid confusion:
    • “Subscriptions”“Order Subscriptions” (WooCommerce admin submenu)
    • “Subscription Stats”“Order Subscription Stats” (analytics submenu)
    • “Subscriptions”“Order Subscriptions” (My Account menu)
  • The subscription widget automatically hides at checkout if the cart contains WooCommerce Subscriptions products.
  • Both plugins’ subscriptions are managed independently in their own sections.

Multilingual support

↑ Back to top

The plugin is compatible with:

  • WPML (including WooCommerce Multilingual)
  • Polylang (including Polylang for WooCommerce)
  • Weglot
  • GTranslate

How it works

↑ Back to top
  • Front-end strings: All checkout widget labels, email subjects/headings, and My Account page titles are translatable. The Front-end settings section provides per-language fields.
  • Product restrictions: Category, tag, and brand restrictions are stored using default-language term IDs, ensuring consistent behavior regardless of the admin’s current language.
  • Renewal processing: When processing a subscription renewal in the background (cron), the system switches to the customer’s language context so that product names in the renewal order and all email content render in the language the customer used at checkout.
  • My Account endpoints: Endpoint slugs are registered with WPML and Polylang for translation.

Included translations

↑ Back to top
  • English (default)
  • German (de_DE, de_DE_formal, de_AT, de_CH, de_BE, de_LU)
  • French (fr_FR, fr_BE, fr_LU)
  • Dutch (nl_NL, nl_NL_formal, nl_BE)

HPOS compatibility

↑ Back to top

The plugin is fully compatible with WooCommerce High-Performance Order Storage (HPOS).

WooCommerce Blocks checkout support

↑ Back to top

The plugin fully supports the WooCommerce Blocks checkout (the block-based checkout introduced in WooCommerce 8.3+).

Developer reference

↑ Back to top

Action hooks

↑ Back to top
HookParametersDescription
osfwc_subscription_created$subscription_id, $orderFired after a new subscription is created
osfwc_subscription_status_changed$subscription_id, $old_status, $new_status, $noteFired on any status change (covers activate, pause, cancel)
osfwc_subscription_renewed$subscription_id, $order_id, $next_payment_dateFired after a successful renewal payment
osfwc_subscription_changed$subscription_id, $changes, $changed_byFired when schedule or quantities are modified
osfwc_subscription_payment_skipped$subscription_id, $old_date, $new_dateFired when a customer skips a payment
osfwc_subscription_auto_cancelled$subscription_id, $reasonFired on auto-cancellation (includes reason code)
osfwc_recurring_order_created$order_id, $order, $subscriptionFired after a renewal order is created (before payment)
osfwc_before_renewal_payment$subscription_id, $renewal_order, $gateway_idFired before a renewal payment is processed
osfwc_after_renewal_payment$subscription_id, $renewal_order, $success, $gateway_idFired after a renewal payment attempt
osfwc_payment_failed$subscription_id, $order_id, $retriesFired on payment failure (includes retry count)
osfwc_register_gateway_integrations$manager_classRegister custom gateway integrations

Filter hooks

↑ Back to top
FilterParametersDescription
osfwc_checkout_widget_enabled$displayControl whether the checkout widget is shown
osfwc_recurring_order_products$products, $base_order_idModify products included in renewal orders
osfwc_recurring_order_fees$fees, $base_order_idModify fees included in renewal orders
osfwc_recurring_order_coupons$coupon_codes, $base_order, $recurring_orderModify coupons applied to renewal orders
osfwc_recurring_order_shipping$shipping_data, $recurring_order, $base_order, $subscription_idModify or cancel shipping on renewal orders
osfwc_subscribe_save_discount$percent, $subscription_id, $orderModify the Subscribe & Save discount percentage
osfwc_next_payment_date$date, $subscription_id, $interval, $frequencyModify the calculated next payment date
osfwc_custom_recurring_order_meta$meta_keysAdd custom meta keys to copy from base order to renewals
osfwc_subscription_actions$actions, $subscriptionModify available actions in My Account
osfwc_mollie_payment_data$payment_data, $orderModify the Mollie API payment request
osfwc_stripe_payment_intent_request$request, $orderModify the Stripe PaymentIntent request

Template overrides

↑ Back to top

Frontend and email templates can be overridden by copying them from the plugin’s templates/ directory to your theme. The override location depends on the template:

My Account templates — override directory: yourtheme/osfwc/

  • Subscriptions list: yourtheme/osfwc/frontend/myaccount/subscriptions.php
  • Subscription detail: yourtheme/osfwc/frontend/myaccount/view-subscription.php

Thank you page template — override directory: yourtheme/woocommerce/

  • Subscription summary: yourtheme/woocommerce/checkout/thankyou-subscription.php

Email templates — override directory: yourtheme/woocommerce/

  • HTML emails: yourtheme/woocommerce/emails/osfwc-subscription-*.php
  • Plain text emails: yourtheme/woocommerce/emails/plain/osfwc-subscription-*.php

Note: The checkout widget and guest CTA templates are not currently overridable via theme. The admin templates (subscription details, analytics dashboard) are also not overridable.

Logging and troubleshooting

↑ Back to top

When logging is enabled, the plugin writes to WooCommerce’s built-in log system. Navigate to WooCommerce → Status → Logs to view log files.

Log files are organized by category:

Log fileContents
osfwc-subscriptionsSubscription creation, status changes, schedule updates
osfwc-ordersRecurring order creation, validation, shipping
osfwc-gatewaysGeneral gateway processing
osfwc-gateway-mollieMollie-specific API calls and responses
osfwc-gateway-stripeStripe-specific API calls and responses
osfwc-gateway-woocommerce_paymentsWooPayments-specific API calls and responses
osfwc-generalPlugin activation, scheduler, and general events

Minimum requirements

↑ Back to top

A supported payment gateway for automatic recurring payments (or COD/BACS for manual)

WordPress 5.6 or greater
WooCommerce 4.0.1 or greater
PHP 7.4 or greater

Use of your personal data
We and our partners process your personal data (such as browsing data, IP Addresses, cookie information, and other unique identifiers) based on your consent and/or our legitimate interest to optimize our website, marketing activities, and your user experience.