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 / peepso / actions / add-post-sitewide-activity-stream.php
suretriggers / src / Integrations / peepso / actions Last commit date
add-post-sitewide-activity-stream.php 10 months ago change-user-peepso-role.php 10 months ago follow-user.php 10 months ago
add-post-sitewide-activity-stream.php
159 lines
1 <?php
2 /**
3 * AddPostSitewideActivityStream.
4 * php version 5.6
5 *
6 * @category AddPostSitewideActivityStream
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\PeepSo\Actions;
15
16 use SureTriggers\Integrations\AutomateAction;
17 use SureTriggers\Traits\SingletonLoader;
18 use Exception;
19 use PeepSo;
20 use SureTriggers\Integrations\WordPress\WordPress;
21 use PeepSoActivityStream;
22 use PeepSoUser;
23
24 /**
25 * AddPostSitewideActivityStream
26 *
27 * @category AddPostSitewideActivityStream
28 * @package SureTriggers
29 * @author BSF <username@example.com>
30 * @license https://www.gnu.org/licenses/gpl-3.0.html GPLv3
31 * @link https://www.brainstormforce.com/
32 * @since 1.0.0
33 */
34 class AddPostSitewideActivityStream extends AutomateAction {
35
36
37 /**
38 * Integration type.
39 *
40 * @var string
41 */
42 public $integration = 'PeepSo';
43
44 /**
45 * Action name.
46 *
47 * @var string
48 */
49 public $action = 'peepso_add_post_sitewide_activity_stream';
50
51 use SingletonLoader;
52
53 /**
54 * Register a action.
55 *
56 * @param array $actions actions.
57 * @return array
58 */
59 public function register( $actions ) {
60 $actions[ $this->integration ][ $this->action ] = [
61 'label' => __( 'Add Post to Sitewide Activity Stream', 'suretriggers' ),
62 'action' => $this->action,
63 'function' => [ $this, 'action_listener' ],
64 ];
65 return $actions;
66 }
67
68 /**
69 * Action listener.
70 *
71 * @param int $user_id user_id.
72 * @param int $automation_id automation_id.
73 * @param array $fields fields.
74 * @param array $selected_options selectedOptions.
75 *
76 * @return array
77 * @throws Exception Exception.
78 */
79 public function _action_listener( $user_id, $automation_id, $fields, $selected_options ) {
80
81 if ( ! class_exists( 'PeepSoActivityStream' ) || ! class_exists( 'PeepSo' ) || ! class_exists( 'PeepSoUser' ) ) {
82 return [];
83 }
84 $author = $user_id;
85 $table_name = 'peepso_activities';
86 $content = $selected_options['post_content'];
87
88 // create post.
89 $a_post_data = [
90 'post_title' => "{$user_id}-{$author}-" . time(),
91 'post_excerpt' => $content,
92 'post_content' => $content,
93 'post_status' => 'publish',
94 'post_author' => $author,
95 'post_type' => PeepSoActivityStream::CPT_POST,
96 ];
97
98 $content = $a_post_data['post_content'];
99
100 $id = wp_insert_post( $a_post_data );
101
102 // add metadata to indicate whether or not to display link previews for this post.
103 add_post_meta( $id, '_peepso_display_link_preview', 1, true );
104
105 // check $id for failure.
106 if ( 0 === $id ) {
107 return [
108 'status' => 'error',
109 'message' => 'Unable to create post.',
110 ];
111 }
112
113 // add data to Activity Stream data table.
114 $privacy = PeepSoUser::get_instance( $user_id )->get_profile_accessibility();
115 $a_act_data = [
116 'act_owner_id' => $user_id,
117 'act_module_id' => 1,
118 'act_external_id' => $id,
119 'act_access' => $privacy,
120 'act_ip' => PeepSo::get_ip_address(),
121 ];
122
123 $a_act_data = apply_filters( 'peepso_activity_insert_data', $a_act_data );
124
125 global $wpdb;
126 $res = $wpdb->insert( $wpdb->prefix . $table_name, $a_act_data );
127
128 if ( ! is_int( $res ) ) {
129 return [
130 'status' => 'error',
131 'message' => 'Unable to create activity.',
132 ];
133 }
134
135 if ( 1 === absint( $a_act_data['act_module_id'] ) ) {
136 update_user_meta( $user_id, 'peepso_last_used_post_privacy', $privacy );
137 }
138
139 $filtered_content = apply_filters( 'peepso_activity_post_content', $content, $id );
140 wp_update_post(
141 [
142 'ID' => $id,
143 'post_content' => $filtered_content,
144 ]
145 );
146 $post = get_post( $id );
147 $context = array_merge(
148 WordPress::get_user_context( $user_id ),
149 WordPress::get_post_context( $id )
150 );
151 if ( $post instanceof \WP_Post ) {
152 $context['permalink'] = PeepSo::get_page( 'activity_status' ) . $post->post_title;
153 }
154 return $context;
155 }
156 }
157
158 AddPostSitewideActivityStream::get_instance();
159