PluginProbe
AutomatorWP – No-Code Workflow Automation, Integration & Webhooks Plugin, now with AI / 6.0.2
AutomatorWP – No-Code Workflow Automation, Integration & Webhooks Plugin, now with AI v6.0.2
6.0.2 6.0.1 6.0.0 5.8.6 5.8.5 5.8.4 5.8.3 5.8.2 5.8.1 5.8.0 5.7.9.2 5.7.9.1 5.7.8 5.7.9 5.7.6 5.7.7 5.7.5 5.7.4 5.7.3 5.7.2 5.7.1 trunk 5.6.0 5.6.1 5.6.2 All 33 releases
automatorwp / integrations / convertkit / includes / ajax-functions.php

ajax-functions.php in AutomatorWP – No-Code Workflow Automation, Integration & Webhooks Plugin, now with AI 6.0.2, at integrations/convertkit/includes/ajax-functions.php

185 lines 5.1 KB
No matching file
Up and down to move Enter to open Esc to close
Raw Download Zip
1 <?php
2 /**
3 * Ajax Functions
4 *
5 * @package AutomatorWP\ConvertKit\Ajax_Functions
6 * @since 1.0.0
7 */
8 // Exit if accessed directly
9 if( !defined( 'ABSPATH' ) ) exit;
10
11 /**
12 * AJAX handler for the authorize action
13 *
14 * @since 1.0.0
15 */
16 function automatorwp_convertkit_ajax_authorize() {
17 // Security check
18 check_ajax_referer( 'automatorwp_admin', 'nonce' );
19
20 // Permissions check
21 if( ! current_user_can( automatorwp_get_manager_capability() ) ) {
22 wp_send_json_error( __( 'You\'re not allowed to perform this action.', 'automatorwp' ) );
23 }
24
25 $prefix = 'automatorwp_convertkit_';
26
27 $key = sanitize_text_field( $_POST['key'] );
28 $secret = sanitize_text_field( $_POST['secret'] );
29
30 // Check parameters given
31 if( empty( $key ) || empty( $secret ) ) {
32 wp_send_json_error( array( 'message' => __( 'All fields are required to connect with ConvertKit', 'automatorwp-convertkit' ) ) );
33 return;
34 }
35
36 $status_secret = automatorwp_convertkit_check_api_secret( $secret );
37 $status_key = automatorwp_convertkit_check_api_key( $key );
38
39 if ( empty( $status_secret ) || empty ( $status_key ) ) {
40 return;
41 }
42
43 $settings = get_option( 'automatorwp_settings' );
44
45 // Save API key and API secret
46 $settings[$prefix . 'key'] = $key;
47 $settings[$prefix . 'secret'] = $secret;
48
49 // Update settings
50 update_option( 'automatorwp_settings', $settings );
51 $admin_url = admin_url( 'admin.php?page=automatorwp_settings&tab=opt-tab-convertkit' );
52
53 wp_send_json_success( array(
54 'message' => __( 'Correct data to connect with ConvertKit', 'automatorwp-convertkit' ),
55 'redirect_url' => $admin_url
56 ) );
57
58 }
59 add_action( 'wp_ajax_automatorwp_convertkit_authorize', 'automatorwp_convertkit_ajax_authorize' );
60
61 /**
62 * Ajax function for selecting forms
63 *
64 * @since 1.0.0
65 */
66 function automatorwp_convertkit_ajax_get_forms() {
67 // Security check
68 check_ajax_referer( 'automatorwp_admin', 'nonce' );
69
70 // Permissions check
71 if( ! current_user_can( automatorwp_get_manager_capability() ) ) {
72 wp_send_json_error( __( 'You\'re not allowed to perform this action.', 'automatorwp' ) );
73 }
74
75 global $wpdb;
76
77 // Pull back the search string
78 $search = isset( $_REQUEST['q'] ) ? $wpdb->esc_like( $_REQUEST['q'] ) : '';
79
80 $forms = automatorwp_convertkit_get_forms( );
81
82 $results = array();
83
84 // Parse form results to match select2 results
85 foreach ( $forms as $form ) {
86
87 $results[] = array(
88 'id' => $form['id'],
89 'text' => $form['name']
90 );
91 }
92
93 // Prepend option none
94 $results = automatorwp_ajax_parse_extra_options( $results );
95
96 // Return our results
97 wp_send_json_success( $results );
98 die;
99
100 }
101 add_action( 'wp_ajax_automatorwp_convertkit_get_forms', 'automatorwp_convertkit_ajax_get_forms' );
102
103 /**
104 * Ajax function for selecting sequences
105 *
106 * @since 1.0.0
107 */
108 function automatorwp_convertkit_ajax_get_sequences() {
109 // Security check
110 check_ajax_referer( 'automatorwp_admin', 'nonce' );
111
112 // Permissions check
113 if( ! current_user_can( automatorwp_get_manager_capability() ) ) {
114 wp_send_json_error( __( 'You\'re not allowed to perform this action.', 'automatorwp' ) );
115 }
116
117 global $wpdb;
118
119 // Pull back the search string
120 $search = isset( $_REQUEST['q'] ) ? $wpdb->esc_like( $_REQUEST['q'] ) : '';
121
122 $sequences = automatorwp_convertkit_get_sequences( );
123
124 $results = array();
125
126 // Parse sequence results to match select2 results
127 foreach ( $sequences as $sequence ) {
128
129 $results[] = array(
130 'id' => $sequence['id'],
131 'text' => $sequence['name']
132 );
133 }
134
135 // Prepend option none
136 $results = automatorwp_ajax_parse_extra_options( $results );
137
138 // Return our results
139 wp_send_json_success( $results );
140 die;
141
142 }
143 add_action( 'wp_ajax_automatorwp_convertkit_get_sequences', 'automatorwp_convertkit_ajax_get_sequences' );
144
145 /**
146 * Ajax function for selecting tags
147 *
148 * @since 1.0.0
149 */
150 function automatorwp_convertkit_ajax_get_tags() {
151 // Security check
152 check_ajax_referer( 'automatorwp_admin', 'nonce' );
153
154 // Permissions check
155 if( ! current_user_can( automatorwp_get_manager_capability() ) ) {
156 wp_send_json_error( __( 'You\'re not allowed to perform this action.', 'automatorwp' ) );
157 }
158
159 global $wpdb;
160
161 // Pull back the search string
162 $search = isset( $_REQUEST['q'] ) ? $wpdb->esc_like( $_REQUEST['q'] ) : '';
163
164 $tags = automatorwp_convertkit_get_tags( );
165
166 $results = array();
167
168 // Parse tag results to match select2 results
169 foreach ( $tags as $tag ) {
170
171 $results[] = array(
172 'id' => $tag['id'],
173 'text' => $tag['name']
174 );
175 }
176
177 // Prepend option none
178 $results = automatorwp_ajax_parse_extra_options( $results );
179
180 // Return our results
181 wp_send_json_success( $results );
182 die;
183
184 }
185 add_action( 'wp_ajax_automatorwp_convertkit_get_tags', 'automatorwp_convertkit_ajax_get_tags' );