PluginProbe ʕ •ᴥ•ʔ
OttoKit: All-in-One Automation Platform / 1.1.32
OttoKit: All-in-One Automation Platform v1.1.32
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 / bbpress / Triggers / topic-added.php
suretriggers / src / Integrations / bbpress / Triggers Last commit date
reply-to-topic.php 1 year ago topic-added.php 1 year ago
topic-added.php
158 lines
1 <?php
2 /**
3 * TopicCreated.
4 * php version 5.6
5 *
6 * @category TopicCreated
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\BbPress\Triggers;
15
16 use SureTriggers\Controllers\AutomationController;
17 use SureTriggers\Integrations\WordPress\WordPress;
18 use SureTriggers\Traits\SingletonLoader;
19
20 if ( ! class_exists( 'TopicCreated' ) ) :
21 /**
22 * TopicCreated
23 *
24 * @category TopicCreated
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 * @psalm-suppress UndefinedTrait
32 */
33 class TopicCreated {
34
35 use SingletonLoader;
36
37 /**
38 * Integration type.
39 *
40 * @var string
41 */
42 public $integration = 'bbPress';
43
44 /**
45 * Trigger name.
46 *
47 * @var string
48 */
49 public $trigger = 'bbpress_topic_created';
50
51 use SingletonLoader;
52
53 /**
54 * Constructor
55 *
56 * @since 1.0.0
57 */
58 public function __construct() {
59 add_filter( 'sure_trigger_register_trigger', [ $this, 'register' ] );
60 }
61
62 /**
63 * Register action.
64 *
65 * @param array $triggers triggers.
66 *
67 * @return array
68 */
69 public function register( $triggers ) {
70 $triggers[ $this->integration ][ $this->trigger ] = [
71 'label' => __( 'Topic Created.', 'suretriggers' ),
72 'action' => $this->trigger,
73 'common_action' => 'bbp_new_topic',
74 'function' => [ $this, 'trigger_listener' ],
75 'priority' => 10,
76 'accepted_args' => 4,
77 ];
78
79 return $triggers;
80 }
81
82 /**
83 * Trigger listener
84 *
85 * @param int $topic_id topic id.
86 * @param int $forum_id forum id.
87 * @param array $anonymous_data anonymous_data.
88 * @param int $topic_author topic author.
89 * @return void
90 */
91 public function trigger_listener( $topic_id, $forum_id, $anonymous_data, $topic_author ) {
92 $topic = get_the_title( $topic_id );
93 $topic_link = get_the_permalink( $topic_id );
94 $topic_description = get_the_content( null, false, $topic_id );
95 $topic_status = get_post_status( $topic_id );
96
97 $forum = get_the_title( $forum_id );
98 $forum_link = get_the_permalink( $forum_id );
99 $forum_description = get_the_content( null, false, $forum_id );
100 $forum_status = get_post_status( $forum_id );
101
102 $forum = [
103 'forum' => $forum_id,
104 'forum_title' => $forum,
105 'forum_link' => $forum_link,
106 'forum_description' => $forum_description,
107 'forum_status' => $forum_status,
108 ];
109
110 $topic = [
111 'topic' => $topic_id,
112 'topic_title' => $topic,
113 'topic_link' => $topic_link,
114 'topic_description' => $topic_description,
115 'topic_status' => $topic_status,
116 ];
117
118 $user_id = $topic_author;
119 if ( is_int( $user_id ) ) {
120 $user_context = WordPress::get_user_context( $user_id );
121 $context = [];
122
123 if ( is_array( $user_context ) ) {
124 $context = array_merge( $context, $user_context );
125 }
126 if ( is_array( $forum ) ) {
127 $context = array_merge( $context, $forum );
128 }
129 if ( is_array( $topic ) ) {
130 $context = array_merge( $context, $topic );
131 }
132 if ( is_array( $anonymous_data ) ) {
133 $context = array_merge( $context, $anonymous_data );
134 }
135 } else {
136 $context = [];
137 if ( is_array( $anonymous_data ) ) {
138 $context = array_merge( $context, $anonymous_data );
139 }
140 if ( is_array( $forum ) ) {
141 $context = array_merge( $context, $forum );
142 }
143 if ( is_array( $topic ) ) {
144 $context = array_merge( $context, $topic );
145 }
146 }
147 AutomationController::sure_trigger_handle_trigger(
148 [
149 'trigger' => $this->trigger,
150 'context' => $context,
151 ]
152 );
153 }
154 }
155
156 TopicCreated::get_instance();
157 endif;
158