PluginProbe ʕ •ᴥ•ʔ
OttoKit: All-in-One Automation Platform / 1.1.32
OttoKit: All-in-One Automation Platform v1.1.32
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 / wordpress / triggers / post-updated-only.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 10 months ago user-password-reset.php 1 year ago user-profile-field-updated.php 3 years ago view-post.php 1 year ago
post-updated-only.php
153 lines
1 <?php
2 /**
3 * PostUpdated.
4 * php version 5.6
5 *
6 * @category PostUpdated
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( 'PostUpdated' ) ) :
22
23 /**
24 * PostUpdated
25 *
26 * @category PostUpdated
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 PostUpdated {
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 = 'wp_post_updated_only';
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' => __( 'A post is updated', 'suretriggers' ),
70 'action' => $this->trigger,
71 'common_action' => 'post_updated',
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 int $post_id Post ID.
84 * @param WP_Post $post_after Post object after the update.
85 * @param WP_Post $post_before Post object before the update.
86 * @return void
87 */
88 public function trigger_listener( $post_id, $post_after, $post_before ) {
89 if ( ! $post_after instanceof WP_Post || ! $post_before instanceof WP_Post ) {
90 return;
91 }
92
93 if ( wp_is_post_revision( $post_id ) || wp_is_post_autosave( $post_id ) ) {
94 return;
95 }
96
97 if ( 'auto-draft' === $post_after->post_status ) {
98 return;
99 }
100
101 // Skip if the old status was auto-draft or new — that's a creation, not an update.
102 if ( 'auto-draft' === $post_before->post_status || 'new' === $post_before->post_status ) {
103 return;
104 }
105
106 $user_id = ap_get_current_user_id();
107 $context = WordPress::get_post_context( $post_id );
108 $context['permalink'] = get_permalink( $post_id );
109
110 $featured_image = wp_get_attachment_image_src( (int) get_post_thumbnail_id( $post_id ), 'full' );
111 if ( ! empty( $featured_image ) && is_array( $featured_image ) ) {
112 $context['featured_image'] = $featured_image[0];
113 } else {
114 $context['featured_image'] = $featured_image;
115 }
116
117 $taxonomies = get_object_taxonomies( $post_after, 'objects' );
118 if ( ! empty( $taxonomies ) && is_array( $taxonomies ) ) {
119 foreach ( $taxonomies as $taxonomy => $taxonomy_object ) {
120 $terms = get_the_terms( $post_id, $taxonomy );
121 if ( ! empty( $terms ) && is_array( $terms ) ) {
122 foreach ( $terms as $term ) {
123 $context[ $taxonomy ] = $term->name;
124 }
125 }
126 }
127 }
128
129 $context = array_merge( $context, WordPress::get_user_context( $user_id ) );
130 $context['post'] = $post_id;
131 $context['post_type'] = $post_after->post_type;
132 $custom_metas = get_post_meta( $post_id );
133 $context['custom_metas'] = $custom_metas;
134 $context['old_post_title'] = $post_before->post_title;
135 $context['old_post_content'] = $post_before->post_content;
136 $context['old_post_status'] = $post_before->post_status;
137 $context['old_post_excerpt'] = $post_before->post_excerpt;
138 $context['old_post_date'] = $post_before->post_date;
139 $context['old_post_modified'] = $post_before->post_modified;
140
141 AutomationController::sure_trigger_handle_trigger(
142 [
143 'trigger' => $this->trigger,
144 'context' => $context,
145 ]
146 );
147 }
148 }
149
150 PostUpdated::get_instance();
151
152 endif;
153