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 / listing-deleted.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
listing-deleted.php
124 lines
1 <?php
2 /**
3 * ListingDeleted
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( 'ListingDeleted' ) ) :
20
21 /**
22 * ListingDeleted
23 *
24 * @category ListingDeleted
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 ListingDeleted {
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_listing_deleted';
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' => __( 'Listing Deleted', 'suretriggers' ),
65 'action' => $this->trigger,
66 // wp_trash_post: moved to trash. before_delete_post: permanently deleted
67 // (either force-deleted directly, or emptied from trash) — both count as "deleted".
68 'common_action' => [ 'wp_trash_post', 'before_delete_post' ],
69 'function' => [ $this, 'trigger_listener' ],
70 'priority' => 10,
71 'accepted_args' => 1,
72 ];
73
74 return $triggers;
75 }
76
77 /**
78 * Trigger listener.
79 *
80 * @param int $post_id Post ID.
81 * @return void
82 */
83 public function trigger_listener( $post_id ) {
84 $post_id = absint( $post_id );
85 if ( ! $post_id ) {
86 return;
87 }
88
89 $post = get_post( $post_id );
90 if ( ! $post ) {
91 return;
92 }
93
94 $bundle = DirectoriesPro::get_bundle( $post->post_type );
95 if ( ! DirectoriesPro::is_listing_bundle( $bundle ) ) {
96 return;
97 }
98
99 $context = DirectoriesPro::build_entity_context( $post, $bundle );
100
101 // Both hooks fire *before* the post's row is actually updated/removed, so
102 // $post->post_status here still reflects the pre-deletion state — override it
103 // with the real outcome rather than leaving stale data (e.g. 'publish') in the context.
104 if ( 'before_delete_post' === current_action() ) {
105 $context['status'] = 'deleted';
106 $context['deletion_type'] = 'permanent';
107 } else {
108 $context['status'] = 'trash';
109 $context['deletion_type'] = 'trashed';
110 }
111
112 AutomationController::sure_trigger_handle_trigger(
113 [
114 'trigger' => $this->trigger,
115 'context' => $context,
116 ]
117 );
118 }
119 }
120
121 ListingDeleted::get_instance();
122
123 endif;
124