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 / wordpress / triggers / create-post.php
suretriggers / src / Integrations / wordpress / triggers Last commit date
add-user-role.php 1 year ago change-specific-role-to-specific.php 3 years ago create-post.php 6 months ago insert-comment.php 2 years ago post-of-type-set-to-status.php 1 year ago post-trashed.php 1 year ago post-updated-only.php 3 months ago remove-user-role.php 3 years ago update-post.php 1 year ago update-specific-post.php 1 year ago update-user-role.php 3 years ago user-comment-approved.php 2 years ago user-create.php 3 years ago user-login.php 1 year ago user-meta-key-updated.php 9 months ago user-password-reset.php 1 year ago user-profile-field-updated.php 3 years ago view-post.php 1 year ago
create-post.php
141 lines
1 <?php
2 /**
3 * CreatePost.
4 * php version 5.6
5 *
6 * @category CreatePost
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\Wordpress\Triggers;
15
16 use SureTriggers\Controllers\AutomationController;
17 use SureTriggers\Integrations\WordPress\WordPress;
18 use SureTriggers\Traits\SingletonLoader;
19 use WP_Post;
20
21 if ( ! class_exists( 'CreatePost' ) ) :
22
23 /**
24 * CreatePost
25 *
26 * @category CreatePost
27 * @package SureTriggers
28 * @author BSF <username@example.com>
29 * @license https://www.gnu.org/licenses/gpl-3.0.html GPLv3
30 * @link https://www.brainstormforce.com/
31 * @since 1.0.0
32 */
33 class CreatePost {
34
35 /**
36 * Integration type.
37 *
38 * @var string
39 */
40 public $integration = 'WordPress';
41
42 /**
43 * Trigger name.
44 *
45 * @var string
46 */
47 public $trigger = 'post_created';
48
49 use SingletonLoader;
50
51 /**
52 * Constructor
53 *
54 * @since 1.0.0
55 */
56 public function __construct() {
57 add_filter( 'sure_trigger_register_trigger', [ $this, 'register' ] );
58 }
59
60 /**
61 * Register action.
62 *
63 * @param array $triggers trigger data.
64 * @return array
65 */
66 public function register( $triggers ) {
67
68 $triggers[ $this->integration ][ $this->trigger ] = [
69 'label' => __( 'User creates a post', 'suretriggers' ),
70 'action' => $this->trigger,
71 'common_action' => 'transition_post_status',
72 'function' => [ $this, 'trigger_listener' ],
73 'priority' => 10,
74 'accepted_args' => 3,
75 ];
76
77 return $triggers;
78 }
79
80 /**
81 * Trigger listener.
82 *
83 * @param string $new_status new status.
84 * @param string $old_status old status.
85 * @param WP_Post $post post.
86 * @return void
87 */
88 public function trigger_listener( $new_status, $old_status, $post ) {
89 if ( ! $post instanceof WP_Post ) {
90 return;
91 }
92
93 if ( 'publish' === $new_status && ( 'draft' === $old_status || 'auto-draft' === $old_status || 'new' === $old_status ) ) {
94
95 if ( wp_is_post_revision( $post->ID ) || wp_is_post_autosave( $post->ID ) ) {
96 return;
97 }
98
99 $user_id = ap_get_current_user_id();
100 $context = WordPress::get_post_context( $post->ID );
101 $context['permalink'] = get_permalink( $post->ID );
102 $featured_image = wp_get_attachment_image_src( (int) get_post_thumbnail_id( $post->ID ), 'full' );
103
104 if ( ! empty( $featured_image ) && is_array( $featured_image ) ) {
105 $context['featured_image'] = $featured_image[0];
106 } else {
107 $context['featured_image'] = $featured_image;
108 }
109
110 $taxonomies = get_object_taxonomies( $post, 'objects' );
111 if ( ! empty( $taxonomies ) && is_array( $taxonomies ) ) {
112 foreach ( $taxonomies as $taxonomy => $taxonomy_object ) {
113 $terms = get_the_terms( $post->ID, $taxonomy );
114 if ( ! empty( $terms ) && is_array( $terms ) ) {
115 foreach ( $terms as $term ) {
116 $context[ $taxonomy ] = $term->name;
117 }
118 }
119 }
120 }
121
122 $context = array_merge( $context, WordPress::get_user_context( $user_id ) );
123 $context['post'] = $post->ID;
124 $context['post_type'] = $post->post_type;
125 $custom_metas = get_post_meta( $post->ID );
126 $context['custom_metas'] = $custom_metas;
127
128 AutomationController::sure_trigger_handle_trigger(
129 [
130 'trigger' => $this->trigger,
131 'context' => $context,
132 ]
133 );
134 }
135 }
136 }
137
138 CreatePost::get_instance();
139
140 endif;
141