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 / update-specific-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 10 months ago user-password-reset.php 1 year ago user-profile-field-updated.php 3 years ago view-post.php 1 year ago
update-specific-post.php
140 lines
1 <?php
2 /**
3 * UpdateSpecificPost.
4 * php version 5.6
5 *
6 * @category UpdateSpecificPost
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 /**
22 * UpdateSpecificPost
23 *
24 * @category UpdateSpecificPost
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 UpdateSpecificPost {
34
35
36 /**
37 * Integration type.
38 *
39 * @var string
40 */
41 public $integration = 'WordPress';
42
43 /**
44 * Trigger name.
45 *
46 * @var string
47 */
48 public $trigger = 'transition_post_status';
49
50 use SingletonLoader;
51
52 /**
53 * Constructor
54 *
55 * @since 1.0.0
56 */
57 public function __construct() {
58 add_filter( 'sure_trigger_register_trigger', [ $this, 'register' ] );
59 }
60
61 /**
62 * Register action.
63 *
64 * @param array $triggers trigger data.
65 * @return array
66 * @psalm-suppress PossiblyNullReference
67 */
68 public function register( $triggers ) {
69
70 $triggers[ $this->integration ][ $this->trigger ] = [
71 'label' => __( 'User updates a post in a specific status', 'suretriggers' ),
72 'action' => $this->trigger,
73 'function' => [ $this, 'trigger_listener' ],
74 'priority' => 10,
75 'accepted_args' => 3,
76 ];
77
78 return $triggers;
79 }
80
81
82 /**
83 * Trigger listener
84 *
85 * @param int $new_status checks new status.
86 * @param int $old_status checks old status.
87 * @param WP_Post $post post object.
88 *
89 * @return void
90 */
91 public function trigger_listener( $new_status, $old_status, $post ) {
92
93 // Bail if post status hasn't changed.
94 if ( $old_status === $new_status ) {
95 return;
96 }
97 if ( 'post' !== $post->post_type ) {
98 return;
99 }
100
101 $user_id = ap_get_current_user_id();
102 $context = WordPress::get_post_context( $post->ID );
103 $context = array_merge( $context, WordPress::get_user_context( $user_id ) );
104 $context['post'] = $post->ID;
105 $context['status'] = $new_status;
106 $featured_image = wp_get_attachment_image_src( (int) get_post_thumbnail_id( $post->ID ), 'full' );
107 if ( ! empty( $featured_image ) && is_array( $featured_image ) ) {
108 $context['featured_image'] = $featured_image[0];
109 }
110 if ( $post instanceof WP_Post ) {
111 $taxonomies = get_object_taxonomies( $post, 'objects' );
112 if ( ! empty( $taxonomies ) && is_array( $taxonomies ) ) {
113 foreach ( $taxonomies as $taxonomy => $taxonomy_object ) {
114 $terms = get_the_terms( $post->ID, $taxonomy );
115 if ( ! empty( $terms ) && is_array( $terms ) ) {
116 foreach ( $terms as $term ) {
117 $context[ $taxonomy ] = $term->name;
118 }
119 }
120 }
121 }
122 }
123 $custom_metas = get_post_meta( $post->ID );
124 $context['custom_metas'] = $custom_metas;
125 AutomationController::sure_trigger_handle_trigger(
126 [
127 'trigger' => $this->trigger,
128 'context' => $context,
129 ]
130 );
131 }
132 }
133
134 /**
135 * Ignore false positive
136 *
137 * @psalm-suppress UndefinedMethod
138 */
139 UpdateSpecificPost::get_instance();
140