PluginProbe ʕ •ᴥ•ʔ
OttoKit: All-in-One Automation Platform / 1.1.33
OttoKit: All-in-One Automation Platform v1.1.33
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 / pretty-links / actions / fetch-pretty-link.php
suretriggers / src / Integrations / pretty-links / actions Last commit date
create-pretty-link.php 9 months ago delete-pretty-link.php 9 months ago fetch-pretty-link.php 9 months ago list-pretty-links.php 9 months ago update-pretty-link.php 9 months ago
fetch-pretty-link.php
157 lines
1 <?php
2 /**
3 * FetchPrettyLink.
4 * php version 5.6
5 *
6 * @category FetchPrettyLink
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.9
12 */
13
14 namespace SureTriggers\Integrations\PrettyLinks\Actions;
15
16 use Exception;
17 use SureTriggers\Integrations\AutomateAction;
18 use SureTriggers\Traits\SingletonLoader;
19
20 /**
21 * FetchPrettyLink
22 *
23 * @category FetchPrettyLink
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 FetchPrettyLink extends AutomateAction {
31
32 /**
33 * Integration type.
34 *
35 * @var string
36 */
37 public $integration = 'PrettyLinks';
38
39 /**
40 * Action name.
41 *
42 * @var string
43 */
44 public $action = 'prettylinks_fetch_pretty_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' => __( 'Fetch Pretty 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'] ) ? sanitize_text_field( $selected_options['link_id'] ) : '';
77
78 if ( empty( $link_id ) ) {
79 return [
80 'status' => 'error',
81 'message' => __( 'Link ID or Slug is required to fetch a pretty link.', 'suretriggers' ),
82 ];
83 }
84
85 if ( ! defined( 'PRLI_VERSION' ) ) {
86 return [
87 'status' => 'error',
88 'message' => __( 'Pretty Links plugin is not active or not found.', 'suretriggers' ),
89 ];
90 }
91
92 global $wpdb;
93 $prli_link_table = $wpdb->prefix . 'prli_links';
94
95 // Determine if link_id is numeric (ID) or string (slug).
96 if ( is_numeric( $link_id ) ) {
97 $link = $wpdb->get_row(
98 $wpdb->prepare(
99 "SELECT * FROM `{$wpdb->prefix}prli_links` WHERE id = %d",
100 absint( $link_id )
101 ),
102 ARRAY_A
103 );
104 } else {
105 $link = $wpdb->get_row(
106 $wpdb->prepare(
107 "SELECT * FROM `{$wpdb->prefix}prli_links` WHERE slug = %s",
108 $link_id
109 ),
110 ARRAY_A
111 );
112 }
113
114 if ( ! $link ) {
115 return [
116 'status' => 'error',
117 'message' => __( 'Pretty Link not found with the provided criteria.', 'suretriggers' ),
118 ];
119 }
120
121 $link['pretty_url'] = home_url( '/' . $link['slug'] );
122
123 $prli_clicks_table = $wpdb->prefix . 'prli_clicks';
124 $click_stats = $wpdb->get_row(
125 $wpdb->prepare(
126 "SELECT
127 COUNT(*) as total_clicks,
128 COUNT(DISTINCT ip) as unique_clicks,
129 MIN(created_at) as first_click,
130 MAX(created_at) as last_click
131 FROM `{$wpdb->prefix}prli_clicks`
132 WHERE link_id = %d",
133 $link['id']
134 ),
135 ARRAY_A
136 );
137
138 if ( $click_stats ) {
139 $link['click_stats'] = $click_stats;
140 } else {
141 $link['click_stats'] = [
142 'total_clicks' => 0,
143 'unique_clicks' => 0,
144 'first_click' => null,
145 'last_click' => null,
146 ];
147 }
148
149 return [
150 'status' => 'success',
151 'data' => $link,
152 ];
153 }
154 }
155
156 FetchPrettyLink::get_instance();
157