simplenews_mailjet_subscriptions: added rules action to respond to unsubscribe webhook
This commit is contained in:
parent
5c37d02cb7
commit
8ac394cff0
|
@ -19,13 +19,18 @@ config_version: '3'
|
|||
expression:
|
||||
id: rules_rule
|
||||
uuid: fb766314-f49f-4aba-9115-8c5b362cf404
|
||||
weight: 0
|
||||
conditions:
|
||||
id: rules_and
|
||||
uuid: 2c3970cc-c861-4c32-881d-a4683faa2541
|
||||
weight: 0
|
||||
conditions:
|
||||
-
|
||||
id: rules_condition
|
||||
uuid: 2bea8cc9-4a68-40f4-822e-bf5d0f16c20f
|
||||
weight: 0
|
||||
condition_id: rules_data_comparison
|
||||
negate: false
|
||||
context_values:
|
||||
operation: '=='
|
||||
value: unsub
|
||||
|
@ -37,9 +42,37 @@ expression:
|
|||
value:
|
||||
rules_tokens: { }
|
||||
provides_mapping: { }
|
||||
condition_id: rules_data_comparison
|
||||
-
|
||||
id: rules_condition
|
||||
uuid: fe051e60-fd5e-4e90-a272-c526017966cb
|
||||
weight: 0
|
||||
condition_id: rules_entity_is_of_type
|
||||
negate: false
|
||||
context_values:
|
||||
type: mailjet_event
|
||||
context_mapping:
|
||||
entity: mailjet_event
|
||||
context_processors:
|
||||
type:
|
||||
rules_tokens: { }
|
||||
provides_mapping: { }
|
||||
actions:
|
||||
id: rules_action_set
|
||||
uuid: 5c91a286-ea41-47f7-b6a9-451cb4bb2324
|
||||
actions: { }
|
||||
weight: 0
|
||||
actions:
|
||||
-
|
||||
id: rules_action
|
||||
uuid: 7eb49497-8830-46d4-975c-6b25b5d6dee6
|
||||
weight: 0
|
||||
action_id: rules_simplenews_mailjet_subscriptions_unsubscribe_from_list
|
||||
context_values:
|
||||
listID: mailjet_event.event_field.mj_list_id
|
||||
email: mailjet_event.event_field.email
|
||||
context_mapping: { }
|
||||
context_processors:
|
||||
listID:
|
||||
rules_tokens: { }
|
||||
email:
|
||||
rules_tokens: { }
|
||||
provides_mapping: { }
|
||||
|
|
|
@ -824,9 +824,9 @@ display:
|
|||
entity_field: status
|
||||
plugin_id: boolean
|
||||
operator: '='
|
||||
value: All
|
||||
value: '1'
|
||||
group: 1
|
||||
exposed: false
|
||||
exposed: true
|
||||
expose:
|
||||
operator_id: ''
|
||||
label: Active
|
||||
|
@ -836,23 +836,22 @@ display:
|
|||
operator_limit_selection: false
|
||||
operator_list: { }
|
||||
identifier: status
|
||||
required: false
|
||||
required: true
|
||||
remember: false
|
||||
multiple: false
|
||||
remember_roles:
|
||||
authenticated: authenticated
|
||||
anonymous: '0'
|
||||
admin: '0'
|
||||
root: '0'
|
||||
contact_company: '0'
|
||||
adherent: '0'
|
||||
free_user: '0'
|
||||
premium: '0'
|
||||
unverified: '0'
|
||||
student: '0'
|
||||
anonymous: '0'
|
||||
free_user: '0'
|
||||
contact_company: '0'
|
||||
alpha_testeur: '0'
|
||||
student: '0'
|
||||
adherent: '0'
|
||||
translator: '0'
|
||||
admin_showroom: '0'
|
||||
admin: '0'
|
||||
root: '0'
|
||||
is_grouped: false
|
||||
group_info:
|
||||
label: ''
|
||||
|
|
|
@ -301,6 +301,62 @@ index 98342b5..f67ba96 100644
|
|||
|
||||
$form['add_subscription'] = [
|
||||
'#type' => 'submit',
|
||||
diff --git a/src/Plugin/RulesAction/UnsubscribeFromList.php b/src/Plugin/RulesAction/UnsubscribeFromList.php
|
||||
new file mode 100644
|
||||
index 0000000..c6a5a77
|
||||
--- /dev/null
|
||||
+++ b/src/Plugin/RulesAction/UnsubscribeFromList.php
|
||||
@@ -0,0 +1,49 @@
|
||||
+<?php
|
||||
+
|
||||
+namespace Drupal\simplenews_mailjet_subscriptions\Plugin\RulesAction;
|
||||
+
|
||||
+use Drupal\rules\Core\RulesActionBase;
|
||||
+use Drupal\simplenews\SubscriberInterface;
|
||||
+
|
||||
+/**
|
||||
+ * Provides a 'Unsubscribe' action.
|
||||
+ *
|
||||
+ * @RulesAction(
|
||||
+ * id = "rules_simplenews_mailjet_subscriptions_unsubscribe_from_list",
|
||||
+ * label = @Translation("Unsubscribe from newsletter, giving mailjet listID and email"),
|
||||
+ * category = @Translation("Simplenews Mailjet Subscriptions"),
|
||||
+ * context_definitions = {
|
||||
+ * "listID" = @ContextDefinition("integer",
|
||||
+ * label = @Translation("Mailjet list ID"),
|
||||
+ * description = @Translation("Specifies the mailjet list ID from which simplenews list will be found and email will be unsubscribed from.")
|
||||
+ * ),
|
||||
+ * "email" = @ContextDefinition("string",
|
||||
+ * label = @Translation("Subscriber email"),
|
||||
+ * description = @Translation("Specifies the email to unsubscribe.")
|
||||
+ * )
|
||||
+ * }
|
||||
+ * )
|
||||
+ */
|
||||
+class UnsubscribeFromList extends RulesActionBase {
|
||||
+
|
||||
+ /**
|
||||
+ * Deletes the Entity.
|
||||
+ *
|
||||
+ * @param integer listID
|
||||
+ * The mailjet list to unsubcsribe from.
|
||||
+ *
|
||||
+ * @param string email
|
||||
+ * The email to unsubcribe.
|
||||
+ */
|
||||
+ protected function doExecute(integer $listID, string $email) {
|
||||
+ $l = $listID;
|
||||
+ $e = $email;
|
||||
+ \Drupal::logger('simplenews_mailjet_subscriptions')->info("Unsubscribe webhook triggered for listID: " . $listID . ", and email: " . $email . ".");
|
||||
+ // find corresponding simplenews list from mailjet listID
|
||||
+
|
||||
+ // get subscriber entity
|
||||
+
|
||||
+ // unsubscribe subscriber from simplenews list
|
||||
+ }
|
||||
+
|
||||
+}
|
||||
\ No newline at end of file
|
||||
diff --git a/src/SimplenewsMailjetSubscriptionsInterface.php b/src/SimplenewsMailjetSubscriptionsInterface.php
|
||||
index c727d26..37c082d 100644
|
||||
--- a/src/SimplenewsMailjetSubscriptionsInterface.php
|
||||
|
|
Loading…
Reference in New Issue