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:
|
expression:
|
||||||
id: rules_rule
|
id: rules_rule
|
||||||
uuid: fb766314-f49f-4aba-9115-8c5b362cf404
|
uuid: fb766314-f49f-4aba-9115-8c5b362cf404
|
||||||
|
weight: 0
|
||||||
conditions:
|
conditions:
|
||||||
id: rules_and
|
id: rules_and
|
||||||
uuid: 2c3970cc-c861-4c32-881d-a4683faa2541
|
uuid: 2c3970cc-c861-4c32-881d-a4683faa2541
|
||||||
|
weight: 0
|
||||||
conditions:
|
conditions:
|
||||||
-
|
-
|
||||||
id: rules_condition
|
id: rules_condition
|
||||||
uuid: 2bea8cc9-4a68-40f4-822e-bf5d0f16c20f
|
uuid: 2bea8cc9-4a68-40f4-822e-bf5d0f16c20f
|
||||||
|
weight: 0
|
||||||
|
condition_id: rules_data_comparison
|
||||||
|
negate: false
|
||||||
context_values:
|
context_values:
|
||||||
operation: '=='
|
operation: '=='
|
||||||
value: unsub
|
value: unsub
|
||||||
|
@ -37,9 +42,37 @@ expression:
|
||||||
value:
|
value:
|
||||||
rules_tokens: { }
|
rules_tokens: { }
|
||||||
provides_mapping: { }
|
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
|
negate: false
|
||||||
|
context_values:
|
||||||
|
type: mailjet_event
|
||||||
|
context_mapping:
|
||||||
|
entity: mailjet_event
|
||||||
|
context_processors:
|
||||||
|
type:
|
||||||
|
rules_tokens: { }
|
||||||
|
provides_mapping: { }
|
||||||
actions:
|
actions:
|
||||||
id: rules_action_set
|
id: rules_action_set
|
||||||
uuid: 5c91a286-ea41-47f7-b6a9-451cb4bb2324
|
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
|
entity_field: status
|
||||||
plugin_id: boolean
|
plugin_id: boolean
|
||||||
operator: '='
|
operator: '='
|
||||||
value: All
|
value: '1'
|
||||||
group: 1
|
group: 1
|
||||||
exposed: false
|
exposed: true
|
||||||
expose:
|
expose:
|
||||||
operator_id: ''
|
operator_id: ''
|
||||||
label: Active
|
label: Active
|
||||||
|
@ -836,23 +836,22 @@ display:
|
||||||
operator_limit_selection: false
|
operator_limit_selection: false
|
||||||
operator_list: { }
|
operator_list: { }
|
||||||
identifier: status
|
identifier: status
|
||||||
required: false
|
required: true
|
||||||
remember: false
|
remember: false
|
||||||
multiple: false
|
multiple: false
|
||||||
remember_roles:
|
remember_roles:
|
||||||
authenticated: authenticated
|
authenticated: authenticated
|
||||||
anonymous: '0'
|
|
||||||
admin: '0'
|
|
||||||
root: '0'
|
|
||||||
contact_company: '0'
|
|
||||||
adherent: '0'
|
|
||||||
free_user: '0'
|
|
||||||
premium: '0'
|
|
||||||
unverified: '0'
|
unverified: '0'
|
||||||
student: '0'
|
anonymous: '0'
|
||||||
|
free_user: '0'
|
||||||
|
contact_company: '0'
|
||||||
alpha_testeur: '0'
|
alpha_testeur: '0'
|
||||||
|
student: '0'
|
||||||
|
adherent: '0'
|
||||||
translator: '0'
|
translator: '0'
|
||||||
admin_showroom: '0'
|
admin_showroom: '0'
|
||||||
|
admin: '0'
|
||||||
|
root: '0'
|
||||||
is_grouped: false
|
is_grouped: false
|
||||||
group_info:
|
group_info:
|
||||||
label: ''
|
label: ''
|
||||||
|
|
|
@ -301,6 +301,62 @@ index 98342b5..f67ba96 100644
|
||||||
|
|
||||||
$form['add_subscription'] = [
|
$form['add_subscription'] = [
|
||||||
'#type' => 'submit',
|
'#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
|
diff --git a/src/SimplenewsMailjetSubscriptionsInterface.php b/src/SimplenewsMailjetSubscriptionsInterface.php
|
||||||
index c727d26..37c082d 100644
|
index c727d26..37c082d 100644
|
||||||
--- a/src/SimplenewsMailjetSubscriptionsInterface.php
|
--- a/src/SimplenewsMailjetSubscriptionsInterface.php
|
||||||
|
|
Loading…
Reference in New Issue