PluginProbe
Kit (formerly ConvertKit) – Email Newsletter, Email Marketing, Membership, Subscribers and Landing Pages / 2.4.3
Kit (formerly ConvertKit) – Email Newsletter, Email Marketing, Membership, Subscribers and Landing Pages v2.4.3
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 2.3.2 2.3.3 All 194 releases
convertkit / admin / class-convertkit-admin-refresh-resources.php

class-convertkit-admin-refresh-resources.php in Kit (formerly ConvertKit) – Email Newsletter, Email Marketing, Membership, Subscribers and Landing Pages 2.4.3, at admin/class-convertkit-admin-refresh-resources.php

129 lines 3.3 KB
No matching file
Up and down to move Enter to open Esc to close
Raw Download Zip
1 <?php
2 /**
3 * ConvertKit Admin Refresh Resources class.
4 *
5 * @package ConvertKit
6 * @author ConvertKit
7 */
8
9 /**
10 * Registers scripts, which run when a Refresh button is clicked, to refresh resources
11 * asynchronously whilst editing a Page, Post or Category.
12 *
13 * @package ConvertKit
14 * @author ConvertKit
15 */
16 class ConvertKit_Admin_Refresh_Resources {
17
18 /**
19 * Registers action and filter hooks.
20 *
21 * @since 1.9.8.0
22 */
23 public function __construct() {
24
25 add_action( 'wp_ajax_convertkit_admin_refresh_resources', array( $this, 'refresh_resources' ) );
26 add_action( 'admin_enqueue_scripts', array( $this, 'enqueue_scripts' ) );
27
28 }
29
30 /**
31 * Refreshes resources (forms, landing pages or tags) from the API, returning them as a JSON string.
32 *
33 * @since 1.9.8.0
34 */
35 public function refresh_resources() {
36
37 // Check nonce.
38 check_ajax_referer( 'convertkit_admin_refresh_resources', 'nonce' );
39
40 // Get resource type.
41 $resource = sanitize_text_field( $_REQUEST['resource'] );
42
43 // Fetch resources.
44 switch ( $resource ) {
45 case 'forms':
46 $forms = new ConvertKit_Resource_Forms( 'user_refresh_resource' );
47 $results = $forms->refresh();
48 break;
49
50 case 'landing_pages':
51 $landing_pages = new ConvertKit_Resource_Landing_Pages( 'user_refresh_resource' );
52 $results = $landing_pages->refresh();
53 break;
54
55 case 'tags':
56 $tags = new ConvertKit_Resource_Tags( 'user_refresh_resource' );
57 $results = $tags->refresh();
58 break;
59
60 case 'posts':
61 $posts = new ConvertKit_Resource_Posts( 'user_refresh_resource' );
62 $results = $posts->refresh();
63 break;
64
65 case 'products':
66 $products = new ConvertKit_Resource_Products();
67 $results = $products->refresh();
68 break;
69
70 default:
71 $results = new WP_Error(
72 'convertkit_admin_refresh_resources_error',
73 sprintf(
74 'Resource type %s is not supported in ConvertKit_Admin_Refresh_Resources class.',
75 $resource
76 )
77 );
78 break;
79 }
80
81 // Bail if an error occured.
82 if ( is_wp_error( $results ) ) {
83 wp_send_json_error( $results->get_error_message() );
84 }
85
86 // Return resources as a zero based sequential array, so that JS retains the order of resources.
87 wp_send_json_success( array_values( $results ) );
88
89 }
90
91 /**
92 * Enqueue JavaScript when editing a Page, Post, Custom Post Type or Category.
93 *
94 * @since 1.9.8.0
95 *
96 * @param string $hook Hook.
97 */
98 public function enqueue_scripts( $hook ) {
99
100 // Bail if we are not on an Edit or Term screen.
101 if ( ! in_array( $hook, array( 'edit.php', 'post-new.php', 'term.php', 'edit-tags.php', 'post.php' ), true ) ) {
102 return;
103 }
104
105 // Get settings.
106 $settings = new ConvertKit_Settings();
107
108 // Bail if no API keys are defined.
109 if ( ! $settings->has_api_key_and_secret() ) {
110 return;
111 }
112
113 // Enqueue JS to perform AJAX request to refresh resources.
114 wp_enqueue_script( 'convertkit-admin-refresh-resources', CONVERTKIT_PLUGIN_URL . 'resources/backend/js/refresh-resources.js', array( 'jquery' ), CONVERTKIT_PLUGIN_VERSION, true );
115 wp_localize_script(
116 'convertkit-admin-refresh-resources',
117 'convertkit_admin_refresh_resources',
118 array(
119 'action' => 'convertkit_admin_refresh_resources',
120 'ajaxurl' => admin_url( 'admin-ajax.php' ),
121 'debug' => $settings->debug_enabled(),
122 'nonce' => wp_create_nonce( 'convertkit_admin_refresh_resources' ),
123 )
124 );
125
126 }
127
128 }
129