PluginProbe
Kit (formerly ConvertKit) – Email Newsletter, Email Marketing, Membership, Subscribers and Landing Pages / 2.0.2
Kit (formerly ConvertKit) – Email Newsletter, Email Marketing, Membership, Subscribers and Landing Pages v2.0.2
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-post.php +13 -150 3.4.22.0.2 View file →
@@ -7,10 +7,10 @@
7 7 */
8 8
9 9 /**
10 10 * Registers a metabox on Posts, Pages and public facing Custom Post Types
11 - * that do not use the block editor, saving settings when the Post is saved
12 - * in the WordPress Administration interface.
11 + * and saves its settings when the Post is saved in the WordPress Administration
12 + * interface.
13 13 *
14 14 * @package ConvertKit
15 15 * @author ConvertKit
16 16 */
@@ -22,84 +22,14 @@
22 22 * @since 1.9.6
23 23 */
24 24 public function __construct() {
25 25
26 - // Register "Add New" Kit button on Pages.
27 - add_filter( 'views_edit-page', array( $this, 'output_wp_list_table_buttons' ) );
28 -
29 - add_action( 'post_submitbox_misc_actions', array( $this, 'output_pre_publish_actions' ) );
30 - add_action( 'add_meta_boxes', array( $this, 'add_meta_boxes' ), 10, 2 );
26 + add_action( 'add_meta_boxes', array( $this, 'add_meta_boxes' ) );
31 27 add_action( 'save_post', array( $this, 'save_post_meta' ) );
32 28
33 29 }
34 30
35 31 /**
36 - * Registers 'Add New' buttons for the given Post Type's admin screen.
37 - *
38 - * If no options are registered, no button is displayed.
39 - *
40 - * JS will move this button to be displayed next to the "Add New" button when viewing the table of Pages or Posts,
41 - * as there is not a native WordPress action/filter for registering buttons next to the "Add New" button.
42 - *
43 - * @since 2.5.5
44 - *
45 - * @param array $views Views.
46 - * @return array Views
47 - */
48 - public function output_wp_list_table_buttons( $views ) {
49 -
50 - // Get current post type that we're viewing.
51 - $post_type = $this->get_current_post_type();
52 -
53 - // Don't output any buttons if we couldn't determine the current post type.
54 - if ( ! $post_type ) {
55 - return $views;
56 - }
57 -
58 - // Define a blank array of buttons to be filtered.
59 - $buttons = array();
60 -
61 - /**
62 - * Registers 'Add New' buttons for the given Post Type's admin screen.
63 - *
64 - * @since 2.5.5
65 - *
66 - * @param array $buttons Buttons.
67 - * @param string $post_type Post Type.
68 - */
69 - $buttons = apply_filters( 'convertkit_admin_post_register_add_new_buttons', $buttons, $post_type );
70 -
71 - // Bail if no buttons are registered for display.
72 - if ( ! count( $buttons ) ) {
73 - return $views;
74 - }
75 -
76 - // Enqueue JS and CSS.
77 - wp_enqueue_script( 'convertkit-admin-wp-list-table-buttons', CONVERTKIT_PLUGIN_URL . 'resources/backend/js/wp-list-table-buttons.js', array( 'jquery' ), CONVERTKIT_PLUGIN_VERSION, true );
78 - wp_enqueue_style( 'convertkit-admin-wp-list-table-buttons', CONVERTKIT_PLUGIN_URL . 'resources/backend/css/wp-list-table-buttons.css', array(), CONVERTKIT_PLUGIN_VERSION );
79 -
80 - // Build buttons HTML.
81 - $html = '';
82 - foreach ( $buttons as $button_name => $button ) {
83 - $html .= sprintf(
84 - '<a href="%s">%s</a>',
85 - esc_attr( $button['url'] ),
86 - esc_html( $button['label'] )
87 - );
88 - }
89 -
90 - // Register an 'Add New' dropdown button, with buttons HTML.
91 - $views['convertkit'] = sprintf(
92 - '<span class="convertkit-action page-title-action hidden">%s<span class="convertkit-actions hidden">%s</span></span>',
93 - __( 'Add New', 'convertkit' ),
94 - $html
95 - );
96 -
97 - return $views;
98 -
99 - }
100 -
101 - /**
102 32 * Enqueue JavaScript when editing a Page, Post or Custom Post Type that outputs
103 33 * ConvertKit Plugin settings.
104 34 *
105 35 * @since 1.9.6.4
@@ -129,16 +59,10 @@
129 59
130 60 // Enqueue Select2 CSS.
131 61 convertkit_select2_enqueue_styles();
132 62
133 - // Enqueue Post CSS.
134 - wp_enqueue_style( 'convertkit-post', CONVERTKIT_PLUGIN_URL . 'resources/backend/css/post.css', array(), CONVERTKIT_PLUGIN_VERSION );
135 -
136 - // Enqueue Refresh Resources CSS.
137 - wp_enqueue_style( 'convertkit-admin-refresh-resources', CONVERTKIT_PLUGIN_URL . 'resources/backend/css/refresh-resources.css', array(), CONVERTKIT_PLUGIN_VERSION );
138 -
139 63 /**
140 - * Enqueue CSS for the Settings Screen at Settings > Kit
64 + * Enqueue CSS for the Settings Screen at Settings > ConvertKit
141 65 *
142 66 * @since 1.9.6.4
143 67 */
144 68 do_action( 'convertkit_admin_post_enqueue_styles' );
@@ -145,47 +69,15 @@
145 69
146 70 }
147 71
148 72 /**
149 - * Registers actions in the pre-publish actions section of the Publish metabox
150 - * in the Classic Editor.
151 - *
152 - * @since 2.4.0
153 - *
154 - * @param WP_Post $post WordPress Post.
155 - */
156 - public function output_pre_publish_actions( $post ) {
157 -
158 - // Bail if no actions registered.
159 - $pre_publish_actions = convertkit_get_pre_publish_actions();
160 - if ( ! count( $pre_publish_actions ) ) {
161 - return;
162 - }
163 -
164 - // Bail if Post is not a supported Post Type.
165 - if ( get_post_type( $post ) !== 'post' ) {
166 - return;
167 - }
168 -
169 - // Bail if Post is not a draft.
170 - if ( ! in_array( $post->post_status, array( 'draft', 'auto-draft' ), true ) ) {
171 - return;
172 - }
173 -
174 - // Load pre-publish actions view.
175 - include CONVERTKIT_PLUGIN_PATH . '/views/backend/post/pre-publish-actions.php';
176 -
177 - }
178 -
179 - /**
180 73 * Adds a meta box for the given Post Type.
181 74 *
182 75 * @since 1.9.6
183 76 *
184 - * @param string $post_type Post Type.
185 - * @param WP_Post $post Post.
77 + * @param string $post_type Post Type.
186 78 */
187 - public function add_meta_boxes( $post_type, $post ) {
79 + public function add_meta_boxes( $post_type ) {
188 80
189 81 // Don't register the meta box if this Post Type isn't supported.
190 82 $supported_post_types = convertkit_get_supported_post_types();
191 83 if ( ! in_array( $post_type, $supported_post_types, true ) ) {
@@ -191,15 +83,10 @@
191 83 if ( ! in_array( $post_type, $supported_post_types, true ) ) {
192 84 return;
193 85 }
194 86
195 - // Don't register the meta box if the block editor is being used, as register_post_meta() handles saving post meta.
196 - if ( function_exists( 'use_block_editor_for_post' ) && use_block_editor_for_post( $post ) ) {
197 - return;
198 - }
199 -
200 87 // Register Meta Box.
201 - add_meta_box( 'wp-convertkit-meta-box', __( 'Kit', 'convertkit' ), array( $this, 'display_meta_box' ), $post_type, 'normal' );
88 + add_meta_box( 'wp-convertkit-meta-box', __( 'ConvertKit', 'convertkit' ), array( $this, 'display_meta_box' ), $post_type, 'normal' );
202 89
203 90 // Enqueue JS and CSS.
204 91 add_action( 'admin_enqueue_scripts', array( $this, 'enqueue_scripts' ) );
205 92 add_action( 'admin_enqueue_scripts', array( $this, 'enqueue_styles' ) );
@@ -221,24 +108,18 @@
221 108 }
222 109
223 110 // Show a warning if the API credentials haven't been set.
224 111 $settings = new ConvertKit_Settings();
225 - if ( ! $settings->has_access_and_refresh_token() ) {
112 + if ( ! $settings->has_api_key_and_secret() ) {
226 113 $post_type = get_post_type_object( $post->post_type );
227 - $api = new ConvertKit_API_V4( CONVERTKIT_OAUTH_CLIENT_ID, CONVERTKIT_OAUTH_CLIENT_REDIRECT_URI );
228 114 include CONVERTKIT_PLUGIN_PATH . '/views/backend/post/no-api-key.php';
229 115 return;
230 116 }
231 117
232 - // Initialize Restrict Content Settings class.
233 - $restrict_content_settings = new ConvertKit_Settings_Restrict_Content();
234 -
235 118 // Fetch Post Settings, Forms, Landing Pages and Tags.
236 - $convertkit_post = new ConvertKit_Post( $post->ID );
237 - $convertkit_forms = new ConvertKit_Resource_Forms();
238 -
119 + $convertkit_post = new ConvertKit_Post( $post->ID );
120 + $convertkit_forms = new ConvertKit_Resource_Forms();
239 121 $convertkit_landing_pages = new ConvertKit_Resource_Landing_Pages();
240 - $convertkit_products = new ConvertKit_Resource_Products();
241 122 $convertkit_tags = new ConvertKit_Resource_Tags();
242 123
243 124 // Get settings page link.
244 125 $settings_link = convertkit_get_settings_link();
@@ -281,15 +162,10 @@
281 162 if ( ! isset( $_POST['wp-convertkit'] ) ) {
282 163 return;
283 164 }
284 165
285 - // Bail if the current user cannot edit this Post.
286 - if ( ! current_user_can( 'edit_post', $post_id ) ) {
287 - return;
288 - }
289 -
290 166 // Save Post's settings.
291 - $this->save_post_settings( $post_id, wp_unslash( $_POST['wp-convertkit'] ) ); // phpcs:ignore WordPress.Security.ValidatedSanitizedInput.InputNotSanitized
167 + $this->save_post_settings( $post_id, $_POST['wp-convertkit'] );
292 168
293 169 }
294 170
295 171 /**
@@ -317,13 +193,13 @@
317 193 continue;
318 194 }
319 195
320 196 // Sanitize value.
321 - $new_value = sanitize_text_field( $settings[ $key ] );
197 + $new_value = sanitize_text_field( wp_unslash( $settings[ $key ] ) );
322 198
323 199 // Skip if the setting value is -2, as this means it's a Bulk Edit request and this setting
324 200 // is set as 'No Change'.
325 - if ( $new_value == '-2' ) { // phpcs:ignore Universal.Operators.StrictComparisons.LooseEqual
201 + if ( $new_value == '-2' ) { // phpcs:ignore WordPress.PHP.StrictComparisons
326 202 continue;
327 203 }
328 204
329 205 // Update setting using posted value.
@@ -339,21 +215,8 @@
339 215 // it is never displayed again.
340 216 if ( $meta['form'] || $meta['landing_page'] ) {
341 217 WP_ConvertKit()->get_class( 'review_request' )->request_review();
342 218 }
343 -
344 - }
345 -
346 - /**
347 - * Get the current post type based on the screen that is viewed.
348 - *
349 - * @since 2.5.5
350 - *
351 - * @return bool|string
352 - */
353 - private function get_current_post_type() {
354 -
355 - return convertkit_get_current_screen( 'post_type' );
356 219
357 220 }
358 221
359 222 }