PluginProbe ʕ •ᴥ•ʔ
OttoKit: All-in-One Automation Platform / 1.1.36
OttoKit: All-in-One Automation Platform v1.1.36
1.1.37 1.1.36 1.1.35 1.1.34 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 / directories-pro / Triggers / new-listing-submitted.php
suretriggers / src / Integrations / directories-pro / Triggers Last commit date
listing-deleted.php 3 weeks ago listing-published.php 3 weeks ago listing-updated.php 3 weeks ago new-listing-submitted.php 3 weeks ago new-review-submitted.php 3 weeks ago review-published.php 3 weeks ago
new-listing-submitted.php
119 lines
1 <?php
2 /**
3 * NewListingSubmitted
4 *
5 * @package SureTriggers
6 * @category Integration
7 * @author BSF
8 * @license https://www.gnu.org/licenses/gpl-3.0.html GPLv3
9 * @link https://www.brainstormforce.com/
10 * @since 1.1.26
11 */
12
13 namespace SureTriggers\Integrations\DirectoriesPro\Triggers;
14
15 use SureTriggers\Controllers\AutomationController;
16 use SureTriggers\Integrations\DirectoriesPro\DirectoriesPro;
17 use SureTriggers\Traits\SingletonLoader;
18
19 if ( ! class_exists( 'NewListingSubmitted' ) ) :
20
21 /**
22 * NewListingSubmitted
23 *
24 * @category NewListingSubmitted
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.1.26
30 */
31 class NewListingSubmitted {
32
33 use SingletonLoader;
34
35 /**
36 * Integration name.
37 *
38 * @var string
39 */
40 public $integration = 'DirectoriesPro';
41
42 /**
43 * Trigger name.
44 *
45 * @var string
46 */
47 public $trigger = 'directories_pro_new_listing_submitted';
48
49 /**
50 * Constructor.
51 */
52 public function __construct() {
53 add_filter( 'sure_trigger_register_trigger', [ $this, 'register' ] );
54 }
55
56 /**
57 * Register trigger.
58 *
59 * @param array $triggers Registered triggers.
60 * @return array Modified triggers.
61 */
62 public function register( $triggers ) {
63 $triggers[ $this->integration ][ $this->trigger ] = [
64 'label' => __( 'New Listing Submitted', 'suretriggers' ),
65 'action' => $this->trigger,
66 'common_action' => 'transition_post_status',
67 'function' => [ $this, 'trigger_listener' ],
68 'priority' => 10,
69 'accepted_args' => 3,
70 ];
71
72 return $triggers;
73 }
74
75 /**
76 * Trigger listener.
77 *
78 * @param string $new_status New post status.
79 * @param string $old_status Old post status.
80 * @param \WP_Post $post Post object.
81 * @return void
82 */
83 public function trigger_listener( $new_status, $old_status, $post ) {
84 if ( empty( $post ) || 'auto-draft' === $new_status || 'trash' === $new_status ) {
85 return;
86 }
87
88 // Only the transition out of a placeholder/non-existent state represents a genuine
89 // first-time submission. wp-admin creates an 'auto-draft' the instant the "Add New"
90 // screen loads (a real $update=false wp_insert_post() call) — without this guard the
91 // trigger would fire on that empty placeholder instead of the real, filled-in submission.
92 if ( ! in_array( $old_status, [ 'new', 'auto-draft' ], true ) ) {
93 return;
94 }
95
96 if ( wp_is_post_revision( $post->ID ) || wp_is_post_autosave( $post->ID ) ) {
97 return;
98 }
99
100 $bundle = DirectoriesPro::get_bundle( $post->post_type );
101 if ( ! DirectoriesPro::is_listing_bundle( $bundle ) ) {
102 return;
103 }
104
105 $context = DirectoriesPro::build_entity_context( $post, $bundle );
106
107 AutomationController::sure_trigger_handle_trigger(
108 [
109 'trigger' => $this->trigger,
110 'context' => $context,
111 ]
112 );
113 }
114 }
115
116 NewListingSubmitted::get_instance();
117
118 endif;
119