PluginProbe ʕ •ᴥ•ʔ
OttoKit: All-in-One Automation Platform / 1.1.36
OttoKit: All-in-One Automation Platform v1.1.36
1.1.37 1.1.36 1.1.35 1.1.34 1.1.33 1.1.32 1.1.31 1.1.30 1.1.29 1.1.28 1.1.27 1.1.9 trunk 1.0.10 1.0.11 1.0.12 1.0.13 1.0.14 1.0.15 1.0.16 1.0.17 1.0.18 1.0.19 1.0.20 1.0.21 1.0.22 1.0.23 1.0.24 1.0.25 1.0.26 1.0.27 1.0.28 1.0.29 1.0.30 1.0.31 1.0.32 1.0.33 1.0.34 1.0.35 1.0.36 1.0.37 1.0.38 1.0.39 1.0.40 1.0.41 1.0.42 1.0.43 1.0.44 1.0.45 1.0.46 1.0.47 1.0.48 1.0.49 1.0.50 1.0.51 1.0.52 1.0.53 1.0.54 1.0.55 1.0.56 1.0.57 1.0.58 1.0.59 1.0.60 1.0.61 1.0.62 1.0.63 1.0.64 1.0.65 1.0.66 1.0.67 1.0.68 1.0.69 1.0.7 1.0.70 1.0.71 1.0.72 1.0.73 1.0.74 1.0.75 1.0.76 1.0.77 1.0.78 1.0.79 1.0.8 1.0.80 1.0.81 1.0.82 1.0.83 1.0.84 1.0.85 1.0.86 1.0.87 1.0.88 1.0.89 1.0.9 1.0.90 1.1.0 1.1.1 1.1.10 1.1.11 1.1.12 1.1.13 1.1.14 1.1.15 1.1.16 1.1.17 1.1.18 1.1.19 1.1.2 1.1.20 1.1.21 1.1.22 1.1.23 1.1.24 1.1.25 1.1.26 1.1.3 1.1.4 1.1.5 1.1.6 1.1.7 1.1.8
suretriggers / src / Integrations / buddyboss / Actions / subscribe-user-to-forum.php
suretriggers / src / Integrations / buddyboss / Actions Last commit date
add-post-to-activity-feed.php 1 month ago add-post-to-group.php 1 month ago add-post-to-user-activity-feed.php 1 month ago add-user-to-group.php 11 months ago change-user-member-type.php 11 months ago create-group.php 11 months ago end-friendship-with-user.php 11 months ago follow-user.php 11 months ago get-forum-subscribers.php 11 months ago post-reply-topic-forum.php 11 months ago post-topic-in-forum.php 11 months ago remove-user-from-group.php 11 months ago send-friend-request-user.php 11 months ago send-message-to-group-members.php 11 months ago send-message-to-user.php 11 months ago send-notification-to-all-members-of-group.php 11 months ago set-user-extended-profile.php 11 months ago set-user-status.php 11 months ago stop-following-user.php 11 months ago subscribe-user-to-forum.php 11 months ago unsubscribe-user-from-email-notifications.php 2 months ago
subscribe-user-to-forum.php
163 lines
1 <?php
2 /**
3 * SubscribeUserToForum.
4 * php version 5.6
5 *
6 * @category SubscribeUserToForum
7 * @package SureTriggers
8 * @author BSF <username@example.com>
9 * @license https://www.gnu.org/licenses/gpl-3.0.html GPLv3
10 * @link https://www.brainstormforce.com/
11 * @since 1.0.0
12 */
13
14 namespace SureTriggers\Integrations\BuddyBoss\Actions;
15
16 use Exception;
17 use SureTriggers\Integrations\AutomateAction;
18 use SureTriggers\Traits\SingletonLoader;
19 use SureTriggers\Integrations\WordPress\WordPress;
20
21 /**
22 * SubscribeUserToForum
23 *
24 * @category SubscribeUserToForum
25 * @package SureTriggers
26 * @author BSF <username@example.com>
27 * @license https://www.gnu.org/licenses/gpl-3.0.html GPLv3
28 * @link https://www.brainstormforce.com/
29 * @since 1.0.0
30 */
31 class SubscribeUserToForum extends AutomateAction {
32
33 /**
34 * Integration type.
35 *
36 * @var string
37 */
38 public $integration = 'BuddyBoss';
39
40 /**
41 * Action name.
42 *
43 * @var string
44 */
45 public $action = 'bb_subscribe_user_to_forum';
46
47 use SingletonLoader;
48
49 /**
50 * Register the action.
51 *
52 * @param array $actions Registered actions.
53 * @return array
54 */
55 public function register( $actions ) {
56 $actions[ $this->integration ][ $this->action ] = [
57 'label' => __( 'Subscribe User to Forum', 'suretriggers' ),
58 'action' => $this->action,
59 'function' => [ $this, 'action_listener' ],
60 ];
61
62 return $actions;
63 }
64
65 /**
66 * Subscribe user to a forum.
67 *
68 * @param int $user_id User ID.
69 * @param int $automation_id Automation ID.
70 * @param array $fields Fields.
71 * @param array $selected_options Selected options.
72 * @return array
73 * @throws Exception If required data is missing or subscription fails.
74 */
75 public function _action_listener( $user_id, $automation_id, $fields, $selected_options ) {
76
77 if ( ! function_exists( 'bbp_is_user_subscribed' ) || ! function_exists( 'bbp_add_user_subscription' ) || ! function_exists( 'bbp_get_forum' ) || ! function_exists( 'bbp_is_subscriptions_active' ) ) {
78 return [
79 'status' => 'error',
80 'message' => 'Required BuddyBoss functions are not available.',
81 ];
82 }
83
84 if ( empty( $selected_options['user'] ) ) {
85 return [
86 'success' => false,
87 'message' => 'User email is required.',
88 ];
89 }
90
91 $user_email = sanitize_email( $selected_options['user'] );
92
93 if ( ! is_email( $user_email ) ) {
94 return [
95 'success' => false,
96 'message' => 'Invalid email address.',
97 ];
98 }
99
100 $user = get_user_by( 'email', $user_email );
101
102 if ( ! $user ) {
103 return [
104 'success' => false,
105 'message' => 'User with email ' . $user_email . ' does not exist.',
106 ];
107 }
108
109 $user_id = $user->ID;
110
111 if ( bbp_is_subscriptions_active() === false ) {
112 return [
113 'success' => false,
114 'message' => 'Forum subscriptions are currently disabled on this site.',
115 ];
116 }
117
118 if ( empty( $selected_options['bb_forum'] ) ) {
119 return [
120 'success' => false,
121 'message' => 'Forum ID is required.',
122 ];
123 }
124
125 $forum_id = $selected_options['bb_forum'];
126 $forum = bbp_get_forum( $forum_id );
127
128 if ( empty( $forum ) ) {
129 return [
130 'success' => false,
131 'message' => 'Invalid forum selected.',
132 ];
133 }
134
135 if ( bbp_is_user_subscribed( $user_id, $forum_id ) ) {
136 return [
137 'success' => true,
138 'message' => 'User is already subscribed to the forum.',
139 'user_email' => $user_email,
140 'forum' => $forum,
141 ];
142 }
143
144 $subscribed = bbp_add_user_subscription( $user_id, $forum_id );
145
146 if ( ! $subscribed ) {
147 return [
148 'success' => false,
149 'message' => 'Failed to subscribe user to the forum. Please try again later.',
150 ];
151 }
152
153 return [
154 'success' => true,
155 'message' => 'User subscribed to the forum successfully.',
156 'user_email' => $user_email,
157 'forum' => $forum,
158 ];
159 }
160 }
161
162 SubscribeUserToForum::get_instance();
163