PluginProbe
Kit (formerly ConvertKit) – Email Newsletter, Email Marketing, Membership, Subscribers and Landing Pages / 2.4.0
Kit (formerly ConvertKit) – Email Newsletter, Email Marketing, Membership, Subscribers and Landing Pages v2.4.0
3.4.3 3.4.2 3.4.1 3.4.0 3.3.9 3.3.8 3.3.7 3.3.6 3.3.5 3.3.4 3.3.3 3.3.2 3.3.1 2.2.0 2.2.1 2.2.2 2.2.3 2.2.4 2.2.5 2.2.6 2.2.7 2.2.8 2.2.9 2.3.0 2.3.1 All 196 releases
← All changes | admin/class-convertkit-admin-refresh-resources.php +15 -104 3.3.92.4.0 View file →
@@ -21,62 +21,25 @@
21 21 * @since 1.9.8.0
22 22 */
23 23 public function __construct() {
24 24
25 + add_action( 'wp_ajax_convertkit_admin_refresh_resources', array( $this, 'refresh_resources' ) );
25 26 add_action( 'admin_enqueue_scripts', array( $this, 'enqueue_scripts' ) );
26 - add_action( 'rest_api_init', array( $this, 'register_routes' ) );
27 27
28 28 }
29 29
30 30 /**
31 - * Register REST API routes.
32 - *
33 - * @since 3.1.0
34 - */
35 - public function register_routes() {
36 -
37 - // Register route to return all blocks registered by the Plugin.
38 - register_rest_route(
39 - 'kit/v1',
40 - '/resources/refresh/(?P<resource>[a-zA-Z0-9-_]+)',
41 - array(
42 - 'methods' => WP_REST_Server::CREATABLE,
43 - 'args' => array(
44 - // Resource: Validate resource is included in the request, a valid resource
45 - // and sanitize the resource.
46 - 'resource' => array(
47 - 'required' => true,
48 - 'validate_callback' => function ( $param ) {
49 -
50 - return is_string( $param ) && in_array( $param, array( 'forms', 'landing_pages', 'tags', 'posts', 'products', 'restrict_content' ), true );
51 -
52 - },
53 - 'sanitize_callback' => 'sanitize_text_field',
54 - ),
55 - ),
56 - 'callback' => array( $this, 'refresh_resources' ),
57 -
58 - // Only refresh resources for users who can edit posts.
59 - 'permission_callback' => function () {
60 - return current_user_can( 'edit_posts' );
61 - },
62 - )
63 - );
64 -
65 - }
66 -
67 - /**
68 31 * Refreshes resources (forms, landing pages or tags) from the API, returning them as a JSON string.
69 32 *
70 33 * @since 1.9.8.0
71 - *
72 - * @param WP_REST_Request $request Request object.
73 - * @return WP_REST_Response|WP_Error Response object.
74 34 */
75 - public function refresh_resources( $request ) {
35 + public function refresh_resources() {
76 36
37 + // Check nonce.
38 + check_ajax_referer( 'convertkit_admin_refresh_resources', 'nonce' );
39 +
77 40 // Get resource type.
78 - $resource = $request->get_param( 'resource' );
41 + $resource = sanitize_text_field( $_REQUEST['resource'] );
79 42
80 43 // Fetch resources.
81 44 switch ( $resource ) {
82 45 case 'forms':
@@ -81,25 +44,13 @@
81 44 switch ( $resource ) {
82 45 case 'forms':
83 46 $forms = new ConvertKit_Resource_Forms( 'user_refresh_resource' );
84 47 $results = $forms->refresh();
85 -
86 - // Only return non-legacy forms.
87 - if ( ! is_wp_error( $results ) ) {
88 - $non_legacy = $forms->get_non_legacy();
89 - $results = is_array( $non_legacy ) ? $non_legacy : array();
90 - }
91 48 break;
92 49
93 50 case 'landing_pages':
94 51 $landing_pages = new ConvertKit_Resource_Landing_Pages( 'user_refresh_resource' );
95 52 $results = $landing_pages->refresh();
96 -
97 - // Only return non-legacy landing pages.
98 - if ( ! is_wp_error( $results ) ) {
99 - $non_legacy = $landing_pages->get_non_legacy();
100 - $results = is_array( $non_legacy ) ? $non_legacy : array();
101 - }
102 53 break;
103 54
104 55 case 'tags':
105 56 $tags = new ConvertKit_Resource_Tags( 'user_refresh_resource' );
@@ -111,53 +62,12 @@
111 62 $results = $posts->refresh();
112 63 break;
113 64
114 65 case 'products':
115 - $products = new ConvertKit_Resource_Products( 'user_refresh_resource' );
66 + $products = new ConvertKit_Resource_Products();
116 67 $results = $products->refresh();
117 68 break;
118 69
119 - case 'restrict_content':
120 - // Fetch Forms.
121 - $forms = new ConvertKit_Resource_Forms( 'user_refresh_resource' );
122 - $results_forms = $forms->refresh();
123 -
124 - // Bail if an error occured.
125 - if ( is_wp_error( $results_forms ) ) {
126 - return rest_ensure_response( $results_forms );
127 - }
128 -
129 - // Only return non-legacy forms.
130 - $non_legacy_forms = $forms->get_non_legacy();
131 - $results_forms = is_array( $non_legacy_forms ) ? $non_legacy_forms : array();
132 -
133 - // Fetch Tags.
134 - $tags = new ConvertKit_Resource_Tags( 'user_refresh_resource' );
135 - $results_tags = $tags->refresh();
136 -
137 - // Bail if an error occured.
138 - if ( is_wp_error( $results_tags ) ) {
139 - return rest_ensure_response( $results_tags );
140 - }
141 -
142 - // Fetch Products.
143 - $products = new ConvertKit_Resource_Products( 'user_refresh_resource' );
144 - $results_products = $products->refresh();
145 -
146 - // Bail if an error occured.
147 - if ( is_wp_error( $results_products ) ) {
148 - return rest_ensure_response( $results_products );
149 - }
150 -
151 - // Return resources.
152 - return rest_ensure_response(
153 - array(
154 - 'forms' => array_values( $results_forms ),
155 - 'tags' => array_values( $results_tags ),
156 - 'products' => array_values( $results_products ),
157 - )
158 - );
159 -
160 70 default:
161 71 $results = new WP_Error(
162 72 'convertkit_admin_refresh_resources_error',
163 73 sprintf(
@@ -169,13 +79,13 @@
169 79 }
170 80
171 81 // Bail if an error occured.
172 82 if ( is_wp_error( $results ) ) {
173 - return rest_ensure_response( $results );
83 + wp_send_json_error( $results->get_error_message() );
174 84 }
175 85
176 86 // Return resources as a zero based sequential array, so that JS retains the order of resources.
177 - return rest_ensure_response( array_values( $results ) );
87 + wp_send_json_success( array_values( $results ) );
178 88
179 89 }
180 90
181 91 /**
@@ -194,22 +104,23 @@
194 104
195 105 // Get settings.
196 106 $settings = new ConvertKit_Settings();
197 107
198 - // Bail if no Access Token is defined.
199 - if ( ! $settings->has_access_and_refresh_token() ) {
108 + // Bail if no API keys are defined.
109 + if ( ! $settings->has_api_key_and_secret() ) {
200 110 return;
201 111 }
202 112
203 113 // Enqueue JS to perform AJAX request to refresh resources.
204 - wp_enqueue_script( 'convertkit-admin-refresh-resources', CONVERTKIT_PLUGIN_URL . 'resources/backend/js/refresh-resources.js', array(), CONVERTKIT_PLUGIN_VERSION, true );
114 + wp_enqueue_script( 'convertkit-admin-refresh-resources', CONVERTKIT_PLUGIN_URL . 'resources/backend/js/refresh-resources.js', array( 'jquery' ), CONVERTKIT_PLUGIN_VERSION, true );
205 115 wp_localize_script(
206 116 'convertkit-admin-refresh-resources',
207 117 'convertkit_admin_refresh_resources',
208 118 array(
209 - 'ajaxurl' => rest_url( 'kit/v1/resources/refresh/' ),
119 + 'action' => 'convertkit_admin_refresh_resources',
120 + 'ajaxurl' => admin_url( 'admin-ajax.php' ),
210 121 'debug' => $settings->debug_enabled(),
211 - 'nonce' => wp_create_nonce( 'wp_rest' ),
122 + 'nonce' => wp_create_nonce( 'convertkit_admin_refresh_resources' ),
212 123 )
213 124 );
214 125
215 126 }