PluginProbe ʕ •ᴥ•ʔ
OttoKit: All-in-One Automation Platform / 1.1.36
OttoKit: All-in-One Automation Platform v1.1.36
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 / Actions / delete-listing.php
suretriggers / src / Integrations / directories-pro / Actions Last commit date
add-update-listing.php 2 weeks ago approve-listing.php 2 weeks ago delete-listing.php 2 weeks ago
delete-listing.php
123 lines
1 <?php
2 /**
3 * DeleteListing.
4 * php version 5.6
5 *
6 * @category DeleteListing
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.1.26
12 */
13
14 namespace SureTriggers\Integrations\DirectoriesPro\Actions;
15
16 use SureTriggers\Integrations\AutomateAction;
17 use SureTriggers\Integrations\DirectoriesPro\DirectoriesPro;
18 use SureTriggers\Traits\SingletonLoader;
19
20 /**
21 * DeleteListing
22 *
23 * @category DeleteListing
24 * @package SureTriggers
25 * @author BSF <username@example.com>
26 * @license https://www.gnu.org/licenses/gpl-3.0.html GPLv3
27 * @link https://www.brainstormforce.com/
28 * @since 1.1.26
29 */
30 class DeleteListing extends AutomateAction {
31
32 use SingletonLoader;
33
34 /**
35 * Integration type.
36 *
37 * @var string
38 */
39 public $integration = 'DirectoriesPro';
40
41 /**
42 * Action name.
43 *
44 * @var string
45 */
46 public $action = 'directories_pro_delete_listing';
47
48 /**
49 * Register a action.
50 *
51 * @param array $actions actions.
52 * @return array
53 */
54 public function register( $actions ) {
55 $actions[ $this->integration ][ $this->action ] = [
56 'label' => __( 'Delete Listing', 'suretriggers' ),
57 'action' => $this->action,
58 'function' => [ $this, 'action_listener' ],
59 ];
60
61 return $actions;
62 }
63
64 /**
65 * Action listener.
66 *
67 * @param int $user_id user_id.
68 * @param int $automation_id automation_id.
69 * @param array $fields fields.
70 * @param array $selected_options selectedOptions.
71 *
72 * @return array
73 */
74 public function _action_listener( $user_id, $automation_id, $fields, $selected_options ) {
75 if ( ! function_exists( 'drts' ) ) {
76 return [
77 'status' => 'error',
78 'message' => __( 'Directories Pro is not installed or activated.', 'suretriggers' ),
79 ];
80 }
81
82 $listing_id = ! empty( $selected_options['listing_id'] ) ? absint( $selected_options['listing_id'] ) : 0;
83 $force_delete = ! empty( $selected_options['force_delete'] );
84
85 if ( ! $listing_id ) {
86 return [
87 'status' => 'error',
88 'message' => __( 'Listing ID is required.', 'suretriggers' ),
89 ];
90 }
91
92 $post = get_post( $listing_id );
93 if ( ! $post ) {
94 return [
95 'status' => 'error',
96 'message' => __( 'Listing not found.', 'suretriggers' ),
97 ];
98 }
99
100 $bundle = DirectoriesPro::get_bundle( $post->post_type );
101 if ( ! DirectoriesPro::is_listing_bundle( $bundle ) ) {
102 return [
103 'status' => 'error',
104 'message' => __( 'The given ID does not belong to a Directories Pro listing.', 'suretriggers' ),
105 ];
106 }
107
108 $context = DirectoriesPro::build_entity_context( $post, $bundle );
109 $deleted = $force_delete ? wp_delete_post( $listing_id, true ) : wp_trash_post( $listing_id );
110
111 if ( ! $deleted ) {
112 return [
113 'status' => 'error',
114 'message' => __( 'Failed to delete the listing.', 'suretriggers' ),
115 ];
116 }
117
118 return $context;
119 }
120 }
121
122 DeleteListing::get_instance();
123