Provides a common interface for managing email marketing platform subscriptions.
- 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.
This package requires PHP 7.1 and Drupal 8 or higher. It can be installed using Composer:
composer require wieni/wmsubscription
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.
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';
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.
All notable changes to this project will be documented in the CHANGELOG file.
If you discover any security-related issues, please email [email protected] instead of using the issue tracker.
Distributed under the MIT License. See the LICENSE file for more information.