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 / clickwhale / actions / delete-link.php
suretriggers / src / Integrations / clickwhale / actions Last commit date
create-link.php 10 months ago delete-link.php 10 months ago get-link-details.php 10 months ago update-link.php 10 months ago
delete-link.php
161 lines
1 <?php
2 /**
3 * DeleteLink.
4 * php version 5.6
5 *
6 * @category DeleteLink
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\ClickWhale\Actions;
15
16 use Exception;
17 use SureTriggers\Integrations\AutomateAction;
18 use SureTriggers\Traits\SingletonLoader;
19
20 /**
21 * DeleteLink
22 *
23 * @category DeleteLink
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.0.0
29 */
30 class DeleteLink extends AutomateAction {
31
32 /**
33 * Integration type.
34 *
35 * @var string
36 */
37 public $integration = 'ClickWhale';
38
39 /**
40 * Action name.
41 *
42 * @var string
43 */
44 public $action = 'cw_delete_link';
45
46 use SingletonLoader;
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 Link', 'suretriggers' ),
57 'action' => $this->action,
58 'function' => [ $this, 'action_listener' ],
59 ];
60 return $actions;
61 }
62
63 /**
64 * Action listener.
65 *
66 * @param int $user_id user_id.
67 * @param int $automation_id automation_id.
68 * @param array $fields fields.
69 * @param array $selected_options selected_options.
70 *
71 * @return array|void
72 *
73 * @throws Exception Exception.
74 */
75 public function _action_listener( $user_id, $automation_id, $fields, $selected_options ) {
76 $link_id = isset( $selected_options['link_id'] ) ? absint( $selected_options['link_id'] ) : 0;
77
78 if ( empty( $link_id ) ) {
79 return [
80 'status' => 'error',
81 'message' => __( 'Link ID is required to delete a link.', 'suretriggers' ),
82
83 ];
84 }
85
86 // Delete link using ClickWhale database structure.
87 global $wpdb;
88 $table_name = $wpdb->prefix . 'clickwhale_links';
89 if ( class_exists( 'clickwhale\\includes\\helpers\\Helper' ) ) {
90 // Check if method exists using is_callable.
91 if ( is_callable( [ '\\clickwhale\\includes\\helpers\\Helper', 'get_db_table_name' ] ) ) {
92 $table_name = \clickwhale\includes\helpers\Helper::get_db_table_name( 'links' );
93 }
94 }
95
96 // Get link data before deletion.
97 $link = $wpdb->get_row( $wpdb->prepare( 'SELECT * FROM `' . esc_sql( (string) $table_name ) . '` WHERE id = %d', $link_id ), ARRAY_A );
98
99 if ( ! $link ) {
100 return [
101 'status' => 'error',
102 'message' => __( 'Link not found.', 'suretriggers' ),
103
104 ];
105 }
106
107 $result = $wpdb->delete(
108 $table_name,
109 [ 'id' => $link_id ],
110 [ '%d' ]
111 );
112
113 if ( false === $result ) {
114 return [
115 'status' => 'error',
116 'message' => __( 'Failed to delete link from ClickWhale.', 'suretriggers' ),
117
118 ];
119 }
120
121 $track_table = $wpdb->prefix . 'clickwhale_track';
122 if ( class_exists( 'clickwhale\\includes\\helpers\\Helper' ) ) {
123 // Check if method exists using is_callable.
124 if ( is_callable( [ '\\clickwhale\\includes\\helpers\\Helper', 'get_db_table_name' ] ) ) {
125 $track_table = \clickwhale\includes\helpers\Helper::get_db_table_name( 'track' );
126 }
127 }
128 $wpdb->delete(
129 $track_table,
130 [ 'link_id' => $link_id ],
131 [ '%d' ]
132 );
133
134 $meta_table = $wpdb->prefix . 'clickwhale_meta';
135 if ( class_exists( 'clickwhale\\includes\\helpers\\Helper' ) ) {
136 // Check if method exists using is_callable.
137 if ( is_callable( [ '\\clickwhale\\includes\\helpers\\Helper', 'get_db_table_name' ] ) ) {
138 $meta_table = \clickwhale\includes\helpers\Helper::get_db_table_name( 'meta' );
139 }
140 }
141 $wpdb->delete(
142 $meta_table,
143 [ 'link_id' => $link_id ],
144 [ '%d' ]
145 );
146
147 $result = [
148 'deleted' => true,
149 'link_id' => $link_id,
150 'title' => $link['title'],
151 'url' => $link['url'],
152 'slug' => $link['slug'],
153 'deleted_at' => current_time( 'mysql' ),
154 ];
155
156 return $result;
157 }
158 }
159
160 DeleteLink::get_instance();
161