wieni / wmsubscription
Provides a common interface for managing email marketing platform subscriptions in Drupal 8
Installs: 905
Dependents: 2
Suggesters: 0
Security: 0
Stars: 0
Watchers: 9
Forks: 2
Open Issues: 3
Type:drupal-module
Requires
- php: >=7.1.0
- drupal/core: ^8.5 || ^9.0
Requires (Dev)
- ergebnis/composer-normalize: ^2.0
- wieni/wmcodestyle: ^1.1
This package is auto-updated.
Last update: 2024-12-15 11:17:01 UTC
README
Provides a common interface for managing email marketing platform subscriptions.
Why?
- Easily create newsletter subscription forms tailored to your project, but without the boilerplate
- Platform-agnostic API which makes it possible to easily switch between providers and to share even more code between projects.
Installation
This package requires PHP 7.1 and Drupal 8 or higher. It can be installed using Composer:
composer require wieni/wmsubscription
How does it work?
Choosing a provider
Aside from the core package, you'll also need to install a provider module:
wmsubscription_mailchimp
, provides a MailChimp implementationwmsubscription_campaignmonitor
, provides a Campaign Monitor implementation
After installing a provider module, change the tool
key in the
wmsubscription.settings
config.
Choosing between direct or queued subscriptions
When calling external API's, it's often a good idea to queue operations so that in case of connection problems, no operations are lost.
By default, subscriptions are handled immediately after calling
SubscriptionToolInterface::addSubscriber
.
This behaviour can be changed by setting the manager
key to
wmsubscription.manager.queued
. Operations will be added to a queue,
so make sure cron is executed regularly.
To make sure visitors cannot subscribe the same email address while the
previous operation is still in queue, this module provides a custom queue
database implementation checking for duplicates. To enable the custom implementation, add the following snippet to your settings.php
:
$settings['queue_service_wmsubscription_subscriptions'] = 'wmsubscription.queue.unique_subscription';
Dead Letter Queue integration
This module provides a submodule that can be used to combine the functionality of the
Dead Letter Queue module with the unique subscription queue:
wmsubscription_dead_letter_queue
.
To enable this feature, use the following snippet in your settings.php
instead of the one mentioned
above:
$settings['queue_service_wmsubscription_subscriptions'] = 'wmsubscription_dead_letter_queue.queue.database';
To add support for the Dead Letter Queue UI module as well, enable the wmsubscription_dead_letter_queue_ui
module.
Changelog
All notable changes to this project will be documented in the CHANGELOG file.
Security
If you discover any security-related issues, please email security@wieni.be instead of using the issue tracker.
License
Distributed under the MIT License. See the LICENSE file for more information.