PluginProbe ʕ •ᴥ•ʔ
OttoKit: All-in-One Automation Platform / 1.1.33
OttoKit: All-in-One Automation Platform v1.1.33
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 / SureDash / actions / suredash-fetch-post.php
suretriggers / src / Integrations / SureDash / actions Last commit date
suredash-add-comment-to-post.php 3 months ago suredash-fetch-post.php 3 months ago
suredash-fetch-post.php
169 lines
1 <?php
2 /**
3 * SureDashFetchPost.
4 * php version 5.6
5 *
6 * @category SureDashFetchPost
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\SureDash\Actions;
15
16 use SureTriggers\Integrations\AutomateAction;
17 use SureTriggers\Traits\SingletonLoader;
18 use Exception;
19
20 /**
21 * SureDashFetchPost
22 *
23 * @category SureDashFetchPost
24 * @package SureTriggers
25 * @author BSF <username@example.com>
26 * @license https://www.gnu.org/licenses/gpl-3.0.html GPLv3
27 * @link https://www.brainstormforce.com/
28 * @since 1.0.0
29 */
30 class SureDashFetchPost extends AutomateAction {
31
32 /**
33 * Integration type.
34 *
35 * @var string
36 */
37 public $integration = 'SureDash';
38
39 /**
40 * Action name.
41 *
42 * @var string
43 */
44 public $action = 'suredash_fetch_post';
45
46 use SingletonLoader;
47
48 /**
49 * Register a action.
50 *
51 * @param array $actions actions.
52 * @return array
53 */
54 public function register( $actions ) {
55 $actions[ $this->integration ][ $this->action ] = [
56 'label' => __( 'Fetch Post', 'suretriggers' ),
57 'action' => 'suredash_fetch_post',
58 'function' => [ $this, 'action_listener' ],
59 ];
60
61 return $actions;
62 }
63
64 /**
65 * Action listener.
66 *
67 * @param int $user_id user_id.
68 * @param int $automation_id automation_id.
69 * @param array $fields fields.
70 * @param array $selected_options selectedOptions.
71 *
72 * @return array|bool
73 * @throws Exception Error.
74 */
75 public function _action_listener( $user_id, $automation_id, $fields, $selected_options ) {
76 if ( ! defined( 'SUREDASHBOARD_FEED_POST_TYPE' ) ) {
77 return [
78 'status' => 'error',
79 'message' => __( 'SureDash plugin is not active or properly configured.', 'suretriggers' ),
80 ];
81 }
82
83 $post_id = ! empty( $selected_options['post_id'] ) ? absint( $selected_options['post_id'] ) : 0;
84
85 if ( empty( $post_id ) ) {
86 return [
87 'status' => 'error',
88 'message' => __( 'Post ID is required.', 'suretriggers' ),
89 ];
90 }
91
92 $post = get_post( $post_id );
93
94 if ( ! $post instanceof \WP_Post ) {
95 return [
96 'status' => 'error',
97 'message' => __( 'Post not found with the provided ID.', 'suretriggers' ),
98 ];
99 }
100
101 $response = [
102 'status' => 'success',
103 'message' => __( 'Post fetched successfully.', 'suretriggers' ),
104 'post_id' => $post->ID,
105 'post_title' => $post->post_title,
106 'post_content' => $post->post_content,
107 'post_excerpt' => $post->post_excerpt,
108 'post_status' => $post->post_status,
109 'post_author' => $post->post_author,
110 'post_date' => $post->post_date,
111 'post_modified' => $post->post_modified,
112 'post_type' => $post->post_type,
113 'post_permalink' => get_permalink( $post_id ),
114 ];
115
116 // Include author details.
117 $author = get_user_by( 'id', $post->post_author );
118 if ( $author ) {
119 $response['author_display_name'] = $author->display_name;
120 $response['author_email'] = $author->user_email;
121 }
122
123 // Include post meta.
124 if ( function_exists( 'sd_get_post_meta' ) ) {
125 $post_meta = sd_get_post_meta( $post_id );
126 } else {
127 $post_meta = get_post_meta( $post_id );
128 }
129
130 if ( is_array( $post_meta ) ) {
131 $response['post_metas'] = $post_meta;
132 }
133
134 // Include taxonomies.
135 $current_taxonomies = get_object_taxonomies( $post, 'objects' );
136 $taxonomies = [];
137 foreach ( $current_taxonomies as $tax_title => $tax ) {
138 $terms = get_the_terms( $post, $tax_title );
139 if ( is_array( $terms ) ) {
140 foreach ( $terms as $term ) {
141 $taxonomies[ $tax_title ][] = [
142 'name' => $term->name,
143 'slug' => $term->slug,
144 'term_id' => $term->term_id,
145 ];
146 }
147 }
148 }
149
150 if ( ! empty( $taxonomies ) ) {
151 $response['taxonomies'] = $taxonomies;
152 }
153
154 // Include featured image.
155 $featured_image_url = get_the_post_thumbnail_url( $post_id, 'full' );
156 if ( $featured_image_url ) {
157 $response['featured_image_url'] = $featured_image_url;
158 $response['featured_image_id'] = get_post_thumbnail_id( $post_id );
159 }
160
161 // Include comment count.
162 $response['comment_count'] = (int) $post->comment_count;
163
164 return $response;
165 }
166 }
167
168 SureDashFetchPost::get_instance();
169