PluginProbe
AutomatorWP – No-Code Workflow Automation, Integration & Webhooks Plugin, now with AI / 6.0.4
AutomatorWP – No-Code Workflow Automation, Integration & Webhooks Plugin, now with AI v6.0.4
6.0.4 6.0.3 6.0.2 6.0.1 6.0.0 5.8.6 5.8.5 5.8.4 5.8.3 5.8.2 5.8.1 5.8.0 5.7.9.2 5.7.9.1 5.7.8 5.7.9 5.7.6 5.7.7 5.7.5 5.7.4 5.7.3 5.7.2 5.7.1 trunk 5.6.0 All 35 releases
← All changes | integrations/buddyboss/includes/triggers/send-email-invite.php +107 -0 5.7.2 → 6.0.4 View file →
@@ -1,0 +1,107 @@
1 +<?php
2 +/**
3 + * Send Email Invite
4 + *
5 + * @package AutomatorWP\Integrations\BuddyBoss\Triggers\Send_Email_Invite
6 + * @author AutomatorWP <[email protected]>, Ruben Garcia <[email protected]>
7 + * @since 1.0.0
8 + */
9 +// Exit if accessed directly
10 +if( !defined( 'ABSPATH' ) ) exit;
11 +
12 +class AutomatorWP_BuddyBoss_Send_Email_Invite extends AutomatorWP_Integration_Trigger {
13 +
14 + public $integration = 'buddyboss';
15 + public $trigger = 'buddyboss_send_email_invite';
16 +
17 + /**
18 + * Register the trigger
19 + *
20 + * @since 1.0.0
21 + */
22 + public function register() {
23 +
24 + automatorwp_register_trigger( $this->trigger, array(
25 + 'integration' => $this->integration,
26 + 'label' => __( 'User sends an email invite', 'automatorwp' ),
27 + 'select_option' => __( 'User sends an <strong>email invite</strong>', 'automatorwp' ),
28 + /* translators: %1$s: Number of times. */
29 + 'edit_label' => sprintf( __( 'User sends an email invite %1$s time(s)', 'automatorwp' ), '{times}' ),
30 + 'log_label' => __( 'User sends an email invite', 'automatorwp' ),
31 + 'action' => 'bp_member_invite_submit',
32 + 'function' => array( $this, 'listener' ),
33 + 'priority' => 10,
34 + 'accepted_args' => 2,
35 + 'options' => array(
36 + 'times' => automatorwp_utilities_times_option(),
37 + ),
38 + 'tags' => array_merge(
39 + automatorwp_utilities_times_tag(),
40 + automatorwp_buddyboss_get_invitation_tags()
41 + )
42 + ) );
43 +
44 + }
45 +
46 + /**
47 + * Trigger listener
48 + *
49 + * @since 1.0.0
50 + *
51 + * @param int $user_id Inviter user id.
52 + * @param int $post_id Invitation post id.
53 + */
54 + public function listener( $user_id, $post_id ) {
55 +
56 + // Trigger the send email invite
57 + automatorwp_trigger_event( array(
58 + 'trigger' => $this->trigger,
59 + 'user_id' => $user_id,
60 + 'post_id' => $user_id,
61 + 'inviter_id' => $user_id,
62 + ) );
63 +
64 + }
65 +
66 + /**
67 + * Register the required hooks
68 + *
69 + * @since 1.0.0
70 + */
71 + public function hooks() {
72 +
73 + // Log meta data
74 + add_filter( 'automatorwp_user_completed_trigger_log_meta', array( $this, 'log_meta' ), 10, 6 );
75 +
76 + parent::hooks();
77 + }
78 +
79 + /**
80 + * Trigger custom log meta
81 + *
82 + * @since 1.0.0
83 + *
84 + * @param array $log_meta Log meta data
85 + * @param stdClass $trigger The trigger object
86 + * @param int $user_id The user ID
87 + * @param array $event Event information
88 + * @param array $trigger_options The trigger's stored options
89 + * @param stdClass $automation The trigger's automation object
90 + *
91 + * @return array
92 + */
93 + function log_meta( $log_meta, $trigger, $user_id, $event, $trigger_options, $automation ) {
94 +
95 + // Bail if action type don't match this action
96 + if( $trigger->type !== $this->trigger ) {
97 + return $log_meta;
98 + }
99 +
100 + $log_meta['inviter_id'] = ( isset( $event['inviter_id'] ) ? $event['inviter_id'] : '' );
101 +
102 + return $log_meta;
103 +
104 + }
105 +}
106 +
107 +new AutomatorWP_BuddyBoss_Send_Email_Invite();