PluginProbe
Copy Anything to Clipboard for WordPress – Copy Button, Copy Text & Copy Code / 1.7.3
Copy Anything to Clipboard for WordPress – Copy Button, Copy Text & Copy Code v1.7.3
5.5.4 5.5.3 3.1.0 3.2.0 3.2.1 3.3.0 3.4.0 3.4.1 3.4.2 3.4.3 3.5.0 3.5.1 3.5.2 3.6.0 3.7.0 3.8.0 3.8.1 3.8.2 3.8.3 4.0.0 4.0.2 4.0.3 4.0.4 4.0.5 4.1.0 All 79 releases
← All changes | classes/class-copy-the-code-page.php +236 -291 3.5.0 → 1.7.3 View file →
@@ -5,10 +5,8 @@
5 5 * @package Copy the Code
6 6 * @since 1.2.0
7 7 */
8 8
9 -use CopyTheCode\Helpers;
10 -
11 9 if ( ! class_exists( 'Copy_The_Code_Page' ) ) :
12 10
13 11 /**
14 12 * Copy_The_Code_Page
@@ -27,18 +25,8 @@
27 25 */
28 26 private static $instance;
29 27
30 28 /**
31 - * Current selector
32 - *
33 - * @since 3.0.0
34 - *
35 - * @access private
36 - * @var string Current CSS selector.
37 - */
38 - private $selector;
39 -
40 - /**
41 29 * Initiator
42 30 *
43 31 * @since 1.2.0
44 32 *
@@ -56,248 +44,27 @@
56 44 *
57 45 * @since 1.2.0
58 46 */
59 47 public function __construct() {
60 - add_filter( 'admin_url', array( $this, 'admin_url' ), 10, 3 );
48 + add_action( 'admin_menu', array( $this, 'register_admin_menu' ) );
61 49 add_action( 'plugin_action_links_' . COPY_THE_CODE_BASE, array( $this, 'action_links' ) );
50 + add_action( 'after_setup_theme', array( $this, 'save_settings' ) );
62 51 add_action( 'wp_enqueue_scripts', array( $this, 'enqueue_assets' ) );
63 - add_action( 'init', array( $this, 'register_post_type' ) );
64 - add_action( 'add_meta_boxes', array( $this, 'add_meta_box' ) );
65 - add_action( 'manage_copy-to-clipboard_posts_custom_column', array( $this, 'column_markup' ), 10, 2 );
66 - add_action( 'manage_copy-to-clipboard_posts_columns', array( $this, 'add_column' ), 10 );
52 + add_action( 'admin_enqueue_scripts', array( $this, 'admin_enqueue_assets' ) );
67 53 }
68 54
69 55 /**
70 - * Add meta box
56 + * Enqueue Assets.
71 57 *
72 - * @since 3.0.0
73 - */
74 - public function add_meta_box() {
75 - add_meta_box(
76 - 'copy-the-code-meta-box',
77 - __( 'Copy to Clipboard Settings', 'copy-the-code' ),
78 - array( $this, 'meta_box_markup' ),
79 - 'copy-to-clipboard',
80 - 'normal',
81 - 'high'
82 - );
83 - }
84 -
85 - /**
86 - * Meta box markup
58 + * @version 1.7.0
87 59 *
88 - * @param object $post Post object.
89 - * @since 3.0.0
90 - */
91 - public function meta_box_markup( $post ) {
92 - $selector = get_post_meta( $post->ID, 'selector', true );
93 - $style = get_post_meta( $post->ID, 'style', true );
94 - $button_text = get_post_meta( $post->ID, 'button-text', true );
95 - $button_title = get_post_meta( $post->ID, 'button-title', true );
96 - $button_copy_text = get_post_meta( $post->ID, 'button-copy-text', true );
97 - $button_position = get_post_meta( $post->ID, 'button-position', true );
98 - $copy_format = get_post_meta( $post->ID, 'copy-format', true );
99 -
100 - ?>
101 - <table class="form-table">
102 - <tr>
103 - <td><?php esc_html_e( 'CSS Selector', 'copy-the-code' ); ?></td>
104 - <td><?php echo esc_html( $selector ); ?></td>
105 - </tr>
106 - <tr>
107 - <td><?php esc_html_e( 'Style', 'copy-the-code' ); ?></td>
108 - <td><?php echo esc_html( $style ); ?></td>
109 - </tr>
110 - <tr>
111 - <td><?php esc_html_e( 'Button Text', 'copy-the-code' ); ?></td>
112 - <td><?php echo esc_html( $button_text ); ?></td>
113 - </tr>
114 - <tr>
115 - <td><?php esc_html_e( 'Button Title', 'copy-the-code' ); ?></td>
116 - <td><?php echo esc_html( $button_title ); ?></td>
117 - </tr>
118 - <tr>
119 - <td><?php esc_html_e( 'Button Copy Text', 'copy-the-code' ); ?></td>
120 - <td><?php echo esc_html( $button_copy_text ); ?></td>
121 - </tr>
122 - <tr>
123 - <td><?php esc_html_e( 'Button Position', 'copy-the-code' ); ?></td>
124 - <td><?php echo esc_html( $button_position ); ?></td>
125 - </tr>
126 - <tr>
127 - <td><?php esc_html_e( 'Copy Format', 'copy-the-code' ); ?></td>
128 - <td><?php echo esc_html( $copy_format ); ?></td>
129 - </tr>
130 - </table>
131 -
132 - <p>
133 - <a href="<?php echo esc_url( admin_url( 'options-general.php?page=copy-the-code&id=' . $post->ID ) ); ?>" class="button button-primary"><?php esc_html_e( 'Edit', 'copy-the-code' ); ?></a>
134 - </p>
135 - <?php
136 -
137 - }
138 -
139 - /**
140 - * Add custom column
141 - *
142 - * @param array $columns Columns.
143 - * @since 2.0.0
144 - */
145 - function add_column( $columns = array() ) {
146 -
147 - if ( isset( $columns['author'] ) ) {
148 - unset( $columns['author'] );
149 - }
150 -
151 - if ( isset( $columns['date'] ) ) {
152 - unset( $columns['date'] );
153 - }
154 -
155 - $new_columns = array(
156 - 'style' => __( 'Style', 'copy-the-code' ),
157 - 'settings' => __( 'Settings', 'copy-the-code' ),
158 - 'author' => 'Author',
159 - 'date' => 'Date',
160 - );
161 -
162 - return wp_parse_args( $new_columns, $columns );
163 - }
164 -
165 - /**
166 - * Column markup
167 - *
168 - * @since 2.0.0
169 - *
170 - * @param string $column_name Column slug.
171 - * @param integer $post_id Post ID.
172 60 * @return void
173 61 */
174 - function column_markup( $column_name = '', $post_id = 0 ) {
175 -
176 - if ( 'style' === $column_name ) {
177 - $style = get_post_meta( $post_id, 'style', true );
178 - switch ( $style ) {
179 - case 'cover':
180 - echo 'Cover';
181 - break;
182 - case 'svg-icon':
183 - echo 'SVG Icon';
184 - break;
185 - case 'button':
186 - echo 'Button';
187 - break;
188 - }
189 - }
190 - if ( 'settings' === $column_name ) {
191 - $button_text = get_post_meta( $post_id, 'button-text', true );
192 - if ( ! empty( $button_text ) ) {
193 - echo '<i>Button Text: </i><b>' . $button_text . '</b><br/>';
194 - }
195 - $button_title = get_post_meta( $post_id, 'button-title', true );
196 - if ( ! empty( $button_title ) ) {
197 - echo '<i>Button Title: </i><b>' . $button_title . '</b><br/>';
198 - }
199 - $button_copy_text = get_post_meta( $post_id, 'button-copy-text', true );
200 - if ( ! empty( $button_copy_text ) ) {
201 - echo '<i>Button Copy Text: </i><b>' . $button_copy_text . '</b><br/>';
202 - }
203 - $button_position = get_post_meta( $post_id, 'button-position', true );
204 - if ( ! empty( $button_position ) ) {
205 - echo '<i>Button Position: </i><b>' . $button_position . '</b><br/>';
206 - }
207 - $format = get_post_meta( $post_id, 'copy-format', true );
208 - if ( ! empty( $format ) ) {
209 - echo '<i>Copy Format: </i><b>' . $format . '</b><br/>';
210 - }
211 - }
212 -
62 + function admin_enqueue_assets() {
63 + wp_enqueue_script( 'copy-the-code-page', COPY_THE_CODE_URI . 'assets/js/page.js', array( 'jquery' ), COPY_THE_CODE_VER, true );
213 64 }
214 65
215 66 /**
216 - * Filters the admin area URL.
217 - *
218 - * @since 1.0.2
219 - *
220 - * @param string $url The complete admin area URL including scheme and path.
221 - * @param string $path Path relative to the admin area URL. Blank string if no path is specified.
222 - * @param int|null $blog_id Site ID, or null for the current site.
223 - */
224 - public function admin_url( $url, $path, $blog_id ) {
225 -
226 - if ( 'post-new.php?post_type=copy-to-clipboard' !== $path ) {
227 - return $url;
228 - }
229 -
230 - $url = get_site_url( $blog_id, 'wp-admin/', 'admin' );
231 - $path = 'options-general.php?page=copy-the-code';
232 -
233 - if ( $path && is_string( $path ) ) {
234 - $url .= ltrim( $path, '/' );
235 - }
236 -
237 - return $url;
238 - }
239 -
240 - /**
241 - * Add new page
242 - *
243 - * @since 2.0.0
244 - */
245 - public function add_new_page() {
246 - $data = $this->get_page_settings();
247 - require_once COPY_THE_CODE_DIR . 'includes/add-new-form.php';
248 - }
249 -
250 - /**
251 - * Registers a new post type
252 - *
253 - * @since 2.0.0
254 - */
255 - function register_post_type() {
256 -
257 - $labels = array(
258 - 'name' => __( 'Copy to Clipboard', 'copy-the-code' ),
259 - 'singular_name' => __( 'Copy to Clipboard', 'copy-the-code' ),
260 - 'add_new' => _x( 'Add New', 'copy-the-code', 'copy-the-code' ),
261 - 'add_new_item' => __( 'Add New', 'copy-the-code' ),
262 - 'edit_item' => __( 'Edit Copy to Clipboard', 'copy-the-code' ),
263 - 'new_item' => __( 'New Copy to Clipboard', 'copy-the-code' ),
264 - 'view_item' => __( 'View Copy to Clipboard', 'copy-the-code' ),
265 - 'search_items' => __( 'Search Copy to Clipboard', 'copy-the-code' ),
266 - 'not_found' => __( 'No Copy to Clipboard found', 'copy-the-code' ),
267 - 'not_found_in_trash' => __( 'No Copy to Clipboard found in Trash', 'copy-the-code' ),
268 - 'parent_item_colon' => __( 'Parent Copy to Clipboard:', 'copy-the-code' ),
269 - 'menu_name' => __( 'Copy to Clipboard', 'copy-the-code' ),
270 - );
271 -
272 - $args = array(
273 - 'labels' => $labels,
274 - 'hierarchical' => false,
275 - 'description' => 'description',
276 - 'taxonomies' => array(),
277 - 'public' => false,
278 - 'show_ui' => true,
279 - 'show_in_menu' => 'options-general.php',
280 - 'show_in_admin_bar' => false,
281 - 'menu_position' => null,
282 - 'menu_icon' => 'dashicons-clipboard',
283 - 'show_in_nav_menus' => true,
284 - 'publicly_queryable' => false,
285 - 'exclude_from_search' => false,
286 - 'has_archive' => false,
287 - 'query_var' => false,
288 - 'can_export' => true,
289 - 'rewrite' => false,
290 - 'capability_type' => 'post',
291 - 'supports' => [
292 - 'title',
293 - ],
294 - );
295 -
296 - register_post_type( 'copy-to-clipboard', $args );
297 - }
298 -
299 - /**
300 67 * Enqueue Assets.
301 68 *
302 69 * @version 1.0.0
303 70 *
@@ -308,73 +75,65 @@
308 75 wp_enqueue_script( 'copy-the-code', COPY_THE_CODE_URI . 'assets/js/copy-the-code.js', array( 'jquery' ), COPY_THE_CODE_VER, true );
309 76 wp_localize_script(
310 77 'copy-the-code',
311 78 'copyTheCode',
312 - $this->get_localize_vars()
79 + apply_filters(
80 + 'copy_the_code_localize_vars',
81 + array(
82 + 'selector' => 'pre', // Selector in which have the actual `<code>`.
83 + 'settings' => $this->get_page_settings(),
84 + 'string' => array(
85 + 'title' => $this->get_page_setting( 'button-title', __( 'Copy to Clipboard', 'copy-the-code' ) ),
86 + 'copy' => $this->get_page_setting( 'button-text', __( 'Copy', 'copy-the-code' ) ),
87 + 'copied' => $this->get_page_setting( 'button-copy-text', __( 'Copied!', 'copy-the-code' ) ),
88 + ),
89 + )
90 + )
313 91 );
314 92 }
315 93
316 94 /**
317 - * Localize Vars
95 + * Admin Settings
318 96 *
319 - * @return array
97 + * @return void
320 98 */
321 - function get_localize_vars() {
99 + function save_settings() {
322 100
323 - $query_args = array(
324 - 'post_type' => 'copy-to-clipboard',
101 + if ( isset( $_REQUEST['page'] ) && strpos( $_REQUEST['page'], 'copy-the-code' ) !== false ) {
325 102
326 - // Query performance optimization.
327 - 'fields' => 'ids',
328 - 'no_found_rows' => true,
329 - 'posts_per_page' => -1,
330 - );
103 + // Only admins can save settings.
104 + if ( ! current_user_can( 'manage_options' ) ) {
105 + return;
106 + }
331 107
332 - $query = new WP_Query( $query_args );
333 - $selectors = array();
334 - if ( $query->posts ) {
335 - foreach ( $query->posts as $key => $post_id ) {
336 - $selectors[] = array(
337 - 'selector' => get_post_meta( $post_id, 'selector', true ),
338 - 'style' => get_post_meta( $post_id, 'style', true ),
339 - // '/ $copy_as' => get_post_meta( $post_id, 'copy-as', true ),
340 - 'button_text' => get_post_meta( $post_id, 'button-text', true ),
341 - 'button_title' => get_post_meta( $post_id, 'button-title', true ),
342 - 'button_copy_text' => get_post_meta( $post_id, 'button-copy-text', true ),
343 - 'button_position' => get_post_meta( $post_id, 'button-position', true ),
344 - 'copy_format' => get_post_meta( $post_id, 'copy-format', true ),
108 + // Make sure we have a valid nonce.
109 + if ( isset( $_REQUEST['copy-the-code'] ) && wp_verify_nonce( $_REQUEST['copy-the-code'], 'copy-the-code-nonce' ) ) {
110 +
111 + // Stored Settings.
112 + $stored_data = $this->get_page_settings();
113 +
114 + // New settings.
115 + $new_data = array(
116 + 'selector' => ( isset( $_REQUEST['selector'] ) ) ? $_REQUEST['selector'] : 'pre',
117 + 'copy-as' => ( isset( $_REQUEST['copy-as'] ) ) ? $_REQUEST['copy-as'] : 'html',
118 + 'button-text' => ( isset( $_REQUEST['button-text'] ) ) ? $_REQUEST['button-text'] : 'Copy',
119 + 'button-title' => ( isset( $_REQUEST['button-title'] ) ) ? $_REQUEST['button-title'] : 'Copy',
120 + 'button-copy-text' => ( isset( $_REQUEST['button-copy-text'] ) ) ? $_REQUEST['button-copy-text'] : 'Copied!',
121 + 'button-position' => ( isset( $_REQUEST['button-position'] ) ) ? $_REQUEST['button-position'] : 'inside',
345 122 );
123 +
124 + // Merge settings.
125 + $data = wp_parse_args( $new_data, $stored_data );
126 +
127 + // Update settings.
128 + update_option( 'copy-the-code-settings', $data );
346 129 }
347 130 }
348 -
349 - return apply_filters(
350 - 'copy_the_code_localize_vars',
351 - array(
352 - 'trim_lines' => false,
353 - 'remove_spaces' => true,
354 - 'copy_content_as' => '',
355 - 'previewMarkup' => '&lt;h2&gt;Hello World&lt;/h2&gt;',
356 - 'buttonMarkup' => '<button class="copy-the-code-button" title=""></button>',
357 - 'buttonSvg' => Helpers::get_svg_copy_icon(),
358 - 'selectors' => $selectors,
359 - 'selector' => 'pre', // Selector in which have the actual `<code>`.
360 - 'settings' => $this->get_page_settings(),
361 - 'string' => array(
362 - 'title' => $this->get_page_setting( 'button-title', __( 'Copy to Clipboard', 'copy-the-code' ) ),
363 - 'copy' => $this->get_page_setting( 'button-text', __( 'Copy', 'copy-the-code' ) ),
364 - 'copied' => $this->get_page_setting( 'button-copy-text', __( 'Copied!', 'copy-the-code' ) ),
365 - ),
366 - 'image-url' => COPY_THE_CODE_URI . '/assets/images/copy-1.svg',
367 - 'redirect_url' => '',
368 - )
369 - );
370 131 }
371 132
372 133 /**
373 134 * Get Setting
374 135 *
375 - * @param string $key Setting key.
376 - * @param string $default_value Setting default value.
377 136 * @return mixed Single Setting.
378 137 */
379 138 function get_page_setting( $key = '', $default_value = '' ) {
380 139 $settings = $this->get_page_settings();
@@ -395,14 +154,13 @@
395 154 $defaults = apply_filters(
396 155 'copy_the_code_default_page_settings',
397 156 array(
398 157 'selector' => 'pre',
399 - // 'copy-as' => 'text',
158 + 'copy-as' => 'html',
400 159 'button-text' => __( 'Copy', 'copy-the-code' ),
401 160 'button-title' => __( 'Copy to Clipboard', 'copy-the-code' ),
402 161 'button-copy-text' => __( 'Copied!', 'copy-the-code' ),
403 162 'button-position' => 'inside',
404 - 'copy-format' => 'default',
405 163 )
406 164 );
407 165
408 166 $stored = get_option( 'copy-the-code-settings', $defaults );
@@ -417,14 +175,201 @@
417 175 * @return array
418 176 */
419 177 function action_links( $links ) {
420 178 $action_links = array(
421 - 'add-new' => '<a href="' . admin_url( 'options-general.php?page=copy-the-code' ) . '" aria-label="' . esc_attr__( 'Add new', 'copy-the-code' ) . '">' . esc_html__( 'Add new', 'copy-the-code' ) . '</a>',
179 + 'settings' => '<a href="' . admin_url( 'options-general.php?page=copy-the-code' ) . '" aria-label="' . esc_attr__( 'Settings', 'copy-the-code' ) . '">' . esc_html__( 'Settings', 'copy-the-code' ) . '</a>',
422 180 );
423 181
424 182 return array_merge( $action_links, $links );
425 183 }
426 184
185 + /**
186 + * Register menu
187 + *
188 + * @since 1.2.0
189 + * @return void
190 + */
191 + function register_admin_menu() {
192 + add_submenu_page( 'options-general.php', __( 'Copy to Clipboard', 'copy-the-code' ), __( 'Copy to Clipboard', 'copy-the-code' ), 'manage_options', 'copy-the-code', array( $this, 'options_page' ) );
193 + }
194 +
195 + /**
196 + * Tabs
197 + *
198 + * @since 1.7.0
199 + * @return array
200 + */
201 + function get_tabs() {
202 + return array(
203 + 'general' => esc_html__( 'General', 'copy-the-code' ),
204 + 'style' => esc_html__( 'Style', 'copy-the-code' ),
205 + );
206 + }
207 +
208 + /**
209 + * Option Page
210 + *
211 + * @since 1.2.0
212 + * @return void
213 + */
214 + function options_page() {
215 + $data = $this->get_page_settings();
216 + ?>
217 + <div class="wrap copy-the-code" id="sync-post">
218 + <div class="wrap">
219 + <h1><?php echo esc_html( COPY_THE_CODE_TITLE ); ?> <small>v<?php echo esc_html( COPY_THE_CODE_VER ); ?></small></h1>
220 + <div id="poststuff">
221 + <div id="post-body" class="columns-2">
222 + <div id="post-body-content">
223 +
224 + <div class="nav-tab-wrapper">
225 + <?php $tabs = $this->get_tabs(); ?>
226 + <?php foreach ($tabs as $tab_slug => $tab_title) { ?>
227 + <a class="nav-tab" style="cursor: pointer;" data-id="tab-<?php echo esc_attr( $tab_slug ); ?>"><?php echo esc_html( $tab_title ); ?></a>
228 + <?php } ?>
229 + </div>
230 +
231 + <form enctype="multipart/form-data" method="post">
232 + <div class="tabs">
233 + <div id="tab-general" style="padding: 30px;">
234 + <table class="form-table">
235 + <tr>
236 + <th scope="row"><?php _e( 'Selector', 'copy-the-code' ); ?></th>
237 + <td>
238 + <fieldset>
239 + <input type="text" name="selector" class="regular-text" value="<?php echo esc_attr( $data['selector'] ); ?>" />
240 + <p class="description"><?php _e( 'It is the selector which contain the content which you want to copy.<br/>Default its &lt;pre&gt; html tag.', 'copy-the-code' ); ?></p>
241 + </fieldset>
242 + </td>
243 + </tr>
244 + <tr>
245 + <th scope="row"><?php _e( 'Copy Content As', 'copy-the-code' ); ?></th>
246 + <td>
247 + <fieldset>
248 + <select name="copy-as">
249 + <option value="html" <?php selected( $data['copy-as'], 'html' ); ?>><?php echo 'HTML'; ?></option>
250 + <option value="text" <?php selected( $data['copy-as'], 'text' ); ?>><?php echo 'Text'; ?></option>
251 + </select>
252 + <p class="description"><?php _e( 'Copy the content as Text or HTML.', 'copy-the-code' ); ?></p>
253 + </fieldset>
254 + </td>
255 + </tr>
256 + </table>
257 + </div>
258 + <div id="tab-style" style="padding: 30px; display: none;">
259 + <table class="form-table">
260 + <tr>
261 + <th scope="row"><?php _e( 'Button Text', 'copy-the-code' ); ?></th>
262 + <td>
263 + <fieldset>
264 + <input type="text" name="button-text" class="regular-text" value="<?php echo esc_attr( $data['button-text'] ); ?>" />
265 + <p class="description"><?php _e( 'Copy button text. Default \'Copy\'.', 'copy-the-code' ); ?></p>
266 + </fieldset>
267 + </td>
268 + </tr>
269 + <tr>
270 + <th scope="row"><?php _e( 'Button Copy Text', 'copy-the-code' ); ?></th>
271 + <td>
272 + <fieldset>
273 + <input type="text" name="button-copy-text" class="regular-text" value="<?php echo esc_attr( $data['button-copy-text'] ); ?>" />
274 + <p class="description"><?php _e( 'Copy button text which appear after click on it. Default \'Copied!\'.', 'copy-the-code' ); ?></p>
275 + </fieldset>
276 + </td>
277 + </tr>
278 + <tr>
279 + <th scope="row"><?php _e( 'Button Title', 'copy-the-code' ); ?></th>
280 + <td>
281 + <fieldset>
282 + <input type="text" name="button-title" class="regular-text" value="<?php echo esc_attr( $data['button-title'] ); ?>" />
283 + <p class="description"><?php _e( 'It is showing on hover on the button. Default \'Copy to Clipboard\'.', 'copy-the-code' ); ?></p>
284 + </fieldset>
285 + </td>
286 + </tr>
287 + <tr>
288 + <th scope="row"><?php _e( 'Button Position', 'copy-the-code' ); ?></th>
289 + <td>
290 + <fieldset>
291 + <select name="button-position">
292 + <option value="inside" <?php selected( $data['button-position'], 'inside' ); ?>><?php echo 'Inside'; ?></option>
293 + <option value="outside" <?php selected( $data['button-position'], 'outside' ); ?>><?php echo 'Outside'; ?></option>
294 + </select>
295 + <p class="description"><?php _e( 'Button Position Inside/Outside. Default Inside.', 'copy-the-code' ); ?></p>
296 + </fieldset>
297 + </td>
298 + </tr>
299 + </table>
300 + </div>
301 + </div>
302 +
303 + <input type="hidden" name="message" value="saved" />
304 + <?php wp_nonce_field( 'copy-the-code-nonce', 'copy-the-code' ); ?>
305 +
306 + <?php submit_button(); ?>
307 +
308 + </form>
309 +
310 + </div>
311 +
312 + <div class="postbox-container" id="postbox-container-1">
313 + <div id="side-sortables" style="">
314 + <div class="postbox">
315 + <h2 class="hndle"><span><?php _e( 'Getting Started', 'copy-the-code' ); ?></span></h2>
316 + <div class="inside">
317 + <ul class="items">
318 + <li>» <a style="text-decoration: none;" target="_blank" href="https://maheshwaghmare.com/doc/copy-anything-to-clipboard/#how-does-it-work"><?php esc_html_e( 'How does it work?', 'copy-the-code' ); ?></a></li>
319 + <li>» <a style="text-decoration: none;" target="_blank" href="https://maheshwaghmare.com/doc/copy-anything-to-clipboard/#what-is-the-selector"><?php esc_html_e( 'What is the selector?', 'copy-the-code' ); ?></a></li>
320 + <li>» <a style="text-decoration: none;" target="_blank" href="https://maheshwaghmare.com/doc/copy-anything-to-clipboard/#example-1-using-html-tag-as-a-selector"><?php esc_html_e( 'Example 1 - Using HTML tag as a selector', 'copy-the-code' ); ?></a></li>
321 + <li>» <a style="text-decoration: none;" target="_blank" href="https://maheshwaghmare.com/doc/copy-anything-to-clipboard/#example-2-using-class-as-a-selector"><?php esc_html_e( 'Example 2 - Using class as a selector', 'copy-the-code' ); ?></a></li>
322 + <li>» <a style="text-decoration: none;" target="_blank" href="https://maheshwaghmare.com/doc/copy-anything-to-clipboard/#example-3-using-id-as-a-selector"><?php esc_html_e( 'Example 3 - Using ID as a selector', 'copy-the-code' ); ?></a></li>
323 + <li>» <a style="text-decoration: none;" target="_blank" href="https://maheshwaghmare.com/doc/copy-anything-to-clipboard/#example-4-using-nested-selector"><?php esc_html_e( 'Example 4 - Using nested selector', 'copy-the-code' ); ?></a></li>
324 + <li>» <a style="text-decoration: none;" target="_blank" href="https://maheshwaghmare.com/doc/copy-anything-to-clipboard/#example-5-copy-content-as-html-as-text"><?php esc_html_e( 'Example 5 - Copy content as HTML as Text', 'copy-the-code' ); ?></a></li>
325 + </ul>
326 + </div>
327 + </div>
328 +
329 + <div class="postbox">
330 + <h2 class="hndle"><span><?php _e( 'Support', 'copy-the-code' ); ?></span></h2>
331 + <div class="inside">
332 + <p><?php _e( 'Do you have any issue with this plugin? Or Do you have any suggessions?', 'copy-the-code' ); ?></p>
333 + <p><?php _e( 'Please don\'t hesitate to <a href="http://maheshwaghmare.wordpress.com/?p=999" target="_blank">send request »</a>.', 'copy-the-code' ); ?></p>
334 + </div>
335 + </div>
336 +
337 + <?php
338 + $response = wp_dev_remote_request_get( 'https://maheshwaghmare.com/wp-json/wp/v2/posts/?_fields=id,title,link&per_page=5' );
339 + if( $response['success'] ) {
340 + ?>
341 + <div class="postbox">
342 + <h2 class="hndle"><span><?php _e( 'Latest News', 'copy-the-code' ); ?></span></h2>
343 + <div class="inside">
344 + <ul>
345 + <?php foreach ($response['data'] as $key => $item) { ?>
346 + <li data-id="<?php echo esc_attr( $item['id'] ); ?>">
347 + » <a style="text-decoration: none;" href="<?php echo esc_attr( $item['link'] ); ?>?utm_source=copy-the-code&utm_medium=plugin&utm_campaign=wp.org" target="_blank"><?php echo esc_html( $item['title']['rendered'] ); ?>
348 + </a>
349 + </li>
350 + <?php } ?>
351 + </ul>
352 + <p><a href="https://maheshwaghmare.com/blog/?utm_source=copy-the-code&utm_medium=plugin&utm_campaign=wp.org" target="_blank"><?php esc_html_e( 'Read More »', 'copy-the-code' ); ?></a></p>
353 + </div>
354 + </div>
355 + <?php } ?>
356 +
357 + <div class="postbox">
358 + <h2 class="hndle"><span><?php _e( 'Donate', 'copy-the-code' ); ?></span></h2>
359 + <div class="inside">
360 + <p><?php _e( 'Would you like to support the advancement of this plugin?', 'copy-the-code' ); ?></p>
361 + <a href="https://www.paypal.me/mwaghmare7/" target="_blank" class="button button-primary"><?php _e( 'Donate Now!', 'copy-the-code' ); ?></a>
362 + </div>
363 + </div>
364 + </div>
365 + </div>
366 + </div>
367 + </div>
368 + </div>
369 + </div>
370 + <?php
371 + }
427 372 }
428 373
429 374 /**
430 375 * Initialize class object with 'get_instance()' method