PluginProbe
PDF & Print by BestWebSoft – WordPress Posts and Pages PDF Generator Plugin / 1.6
PDF & Print by BestWebSoft – WordPress Posts and Pages PDF Generator Plugin v1.6
trunk 1.5 1.6 1.7 1.7.1 1.7.2 1.7.3 1.7.4 1.7.5 1.7.6 1.7.7 1.7.8 1.7.9 1.8.0 1.8.1 1.8.2 1.8.3 1.8.4 1.8.5 1.8.6 1.8.7 1.8.8 1.8.9 1.9.0 1.9.1 All 71 releases
← All changes | pdf-print.php +971 -2032 trunk1.6 View file →
@@ -1,1331 +1,783 @@
1 1 <?php
2 -/**
3 -Plugin Name: PDF & Print by BestWebSoft
4 -Plugin URI: https://bestwebsoft.com/products/wordpress/plugins/pdf-print/
5 -Description: Generate PDF files and print WordPress posts/pages. Customize document header/footer styles and appearance.
2 +/*
3 +Plugin Name: PDF & Print
4 +Plugin URI: http://bestwebsoft.com/plugin/
5 +Description: Plugin adds PDF creation and Print button on your site.
6 6 Author: BestWebSoft
7 -Text Domain: pdf-print
8 -Domain Path: /languages
9 -Version: 2.4.7
10 -Author URI: https://bestwebsoft.com/
7 +Version: 1.6
8 +Author URI: http://bestwebsoft.com/
11 9 License: GPLv2 or later
12 - */
10 +*/
13 11
14 -/**
15 -© Copyright 2021 BestWebSoft ( https://support.bestwebsoft.com )
12 +/* © Copyright 2014 BestWebSoft ( http://support.bestwebsoft.com )
16 13
17 -This program is free software; you can redistribute it and/or modify
18 -it under the terms of the GNU General Public License, version 2, as
19 -published by the Free Software Foundation.
14 + This program is free software; you can redistribute it and/or modify
15 + it under the terms of the GNU General Public License, version 2, as
16 + published by the Free Software Foundation.
20 17
21 -This program is distributed in the hope that it will be useful,
22 -but WITHOUT ANY WARRANTY; without even the implied warranty of
23 -MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
24 -GNU General Public License for more details.
18 + This program is distributed in the hope that it will be useful,
19 + but WITHOUT ANY WARRANTY; without even the implied warranty of
20 + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
21 + GNU General Public License for more details.
25 22
26 -You should have received a copy of the GNU General Public License
27 -along with this program; if not, write to the Free Software
28 -Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
29 - */
23 + You should have received a copy of the GNU General Public License
24 + along with this program; if not, write to the Free Software
25 + Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
26 +*/
30 27
31 -if ( ! defined( 'ABSPATH' ) ) {
32 - exit;
33 -}
28 +require_once( dirname( __FILE__ ) . '/bws_menu/bws_menu.php' );
34 29
35 -require_once dirname( __FILE__ ) . '/includes/deprecated.php';
36 -
37 -if ( ! function_exists( 'pdfprnt_add_admin_menu' ) ) {
38 - /**
39 - * Add our own menu
40 - */
41 - function pdfprnt_add_admin_menu() {
42 - global $submenu, $pdfprnt_plugin_info, $wp_version, $pdfprnt_options;
43 - if ( ! is_plugin_active( 'pdf-print-pro/pdf-print-pro.php' )/*pls */ && ! is_plugin_active( 'pdf-print-plus/pdf-print-plus.php' )/* pls*/ ) {
44 - $settings = add_menu_page( esc_html__( 'PDF & Print Settings', 'pdf-print' ), 'PDF & Print', 'manage_options', 'pdf-print.php', 'pdfprnt_settings_page' );
45 - add_submenu_page( 'pdf-print.php', esc_html__( 'PDF & Print Settings', 'pdf-print' ), esc_html__( 'Settings', 'pdf-print' ), 'manage_options', 'pdf-print.php', 'pdfprnt_settings_page' );
46 - add_submenu_page( 'pdf-print.php', esc_html__( 'Headers & Footers', 'pdf-print' ), esc_html__( 'Headers & Footers', 'pdf-print' ), 'manage_options', 'pdf-print-templates.php', 'pdfprnt_templates' );
47 - add_submenu_page( 'pdf-print.php', 'BWS Panel', 'BWS Panel', 'manage_options', 'pdfprnt-bws-panel', 'bws_add_menu_render' );
48 - if ( isset( $submenu['pdf-print.php'] ) ) {
49 - $submenu['pdf-print.php'][] = array(
50 - '<span style="color:#d86463"> ' . esc_html__( 'Upgrade to Pro', 'pdf-print' ) . '</span>',
51 - 'manage_options',
52 - 'https://bestwebsoft.com/products/wordpress/plugins/pdf-print/?k=d9da7c9c2046bed8dfa38d005d4bffdb&pn=101&v=' . $pdfprnt_plugin_info['Version'] . '&wp_v=' . $wp_version,
53 - );
54 - }
55 -
56 - add_action( "load-{$settings}", 'pdfprnt_add_tabs' );
57 - }
30 +/* Add our own menu */
31 +if ( ! function_exists( 'pdfprnt_add_pages' ) ) {
32 + function pdfprnt_add_pages() {
33 + add_menu_page( 'BWS Plugins', 'BWS Plugins', 'manage_options', 'bws_plugins', 'bws_add_menu_render', WP_CONTENT_URL . "/plugins/google-plus-one/images/px.png", 1001 );
34 + add_submenu_page( 'bws_plugins', __( 'PDF & Print Settings', 'pdf-print' ), __( 'PDF & Print', 'pdf-print' ), 'manage_options', "pdf-print.php", 'pdfprnt_settings_page' );
58 35 }
59 36 }
60 37
61 -if ( ! function_exists( 'pdfprnt_add_tabs' ) ) {
62 - /**
63 - * Add help tab on settings page
64 - *
65 - * @return void
66 - */
67 - function pdfprnt_add_tabs() {
68 - $args = array(
69 - 'id' => 'pdfprnt',
70 - 'section' => '200538669',
38 +/* Register settings for plugin */
39 +if ( ! function_exists( 'pdfprnt_settings' ) ) {
40 + function pdfprnt_settings() {
41 + global $pdfprnt_options_array, $pdfprnt_output_count_buttons, $wpmu;
42 + $pdfprnt_output_count_buttons = 0; /* Variable to verify performance number of once function. */
43 + $pdfprnt_default_post_types = array();
44 + foreach ( get_post_types( array( 'public' => 1, 'show_ui' => 1, '_builtin' => true ), 'names' ) as $value )
45 + $pdfprnt_default_post_types[] = $value; /* Default post types of WordPress. */
46 + $pdfprnt_options_array_defaults = array(
47 + 'position' => 'top-right',
48 + 'position_search_archive' => 'left',
49 + 'position_custom' => 'left',
50 + 'show_btn_print' => 1,
51 + 'show_btn_pdf' => 1,
52 + 'show_btn_print_search_archive' => 1,
53 + 'show_btn_pdf_search_archive' => 1,
54 + 'show_btn_print_custom' => 1,
55 + 'show_btn_pdf_custom' => 1,
56 + 'use_theme_stylesheet' => 0,
57 + 'tmpl_post' => 1,
58 + 'tmpl_search' => 1,
59 + 'tmpl_custom' => 1,
60 + 'tmpl_shorcode' => 1,
61 + 'use_types_posts' => $pdfprnt_default_post_types
71 62 );
72 - bws_help_tab( get_current_screen(), $args );
73 - }
74 -}
75 -
76 -if ( ! function_exists( 'pdfprnt_plugins_loaded' ) ) {
77 - /**
78 - * Localization
79 - */
80 - function pdfprnt_plugins_loaded() {
81 - /* Internationalization */
82 - load_plugin_textdomain( 'pdf-print', false, dirname( plugin_basename( __FILE__ ) ) . '/languages/' );
83 - }
84 -}
85 -
86 -if ( ! function_exists( 'pdfprnt_init' ) ) {
87 - /**
88 - * Init plugin
89 - */
90 - function pdfprnt_init() {
91 - global $pdfprnt_plugin_info, $pdfprnt_is_old_php;
92 -
93 - $plugin_basename = plugin_basename( __FILE__ );
94 -
95 - require_once dirname( __FILE__ ) . '/bws_menu/bws_include.php';
96 - bws_include_init( $plugin_basename );
97 -
98 - if ( empty( $pdfprnt_plugin_info ) ) {
99 - if ( ! function_exists( 'get_plugin_data' ) ) {
100 - require_once ABSPATH . 'wp-admin/includes/plugin.php';
63 + if ( 1 == $wpmu ) {
64 + if ( ! get_site_option( 'pdfprnt_options_array' ) ) {
65 + add_site_option( 'pdfprnt_options_array', $cptch_option_defaults, '', 'yes' );
101 66 }
102 - $pdfprnt_plugin_info = get_plugin_data( __FILE__ );
67 + } else {
68 + if ( ! get_option( 'pdfprnt_options_array' ) )
69 + add_option( 'pdfprnt_options_array', $pdfprnt_options_array_defaults, '', 'yes' );
103 70 }
104 -
105 - /* check WordPress version */
106 - bws_wp_min_version_check( $plugin_basename, $pdfprnt_plugin_info, '4.5' );
107 -
108 - /* check PHP version */
109 - $pdfprnt_is_old_php = version_compare( PHP_VERSION, '5.4.0', '<' );
110 -
111 - /* Get/Register and check settings for plugin */
112 - if ( ! is_admin() || ( isset( $_GET['page'] ) && 'pdf-print.php' === $_GET['page'] ) ) {
113 - pdfprnt_settings();
114 - }
115 -
116 - if ( function_exists( 'wp_register_block_types_from_metadata_collection' ) ) {
117 - wp_register_block_types_from_metadata_collection( __DIR__ . '/includes/build', __DIR__ . '/includes/build/blocks-manifest.php' );
118 - return;
119 - }
120 -
121 - if ( function_exists( 'wp_register_block_metadata_collection' ) ) {
122 - wp_register_block_metadata_collection( __DIR__ . '/includes/build', __DIR__ . '/includes/build/blocks-manifest.php' );
123 - }
124 - $manifest_data = require __DIR__ . '/includes/build/blocks-manifest.php';
125 - foreach ( array_keys( $manifest_data ) as $block_type ) {
126 - register_block_type( __DIR__ . "/includes/build/{$block_type}" );
127 - }
71 + if ( 1 == $wpmu )
72 + $pdfprnt_options_array = get_site_option( 'pdfprnt_options_array' );
73 + else
74 + $pdfprnt_options_array = get_option( 'pdfprnt_options_array' );
75 + $pdfprnt_options_array = array_merge( $pdfprnt_options_array_defaults, $pdfprnt_options_array );
128 76 }
129 77 }
130 78
131 -if ( ! function_exists( 'pdfprnt_admin_init' ) ) {
132 - /**
133 - * Admin init
134 - */
135 - function pdfprnt_admin_init() {
136 - global $bws_plugin_info, $pdfprnt_plugin_info, $bws_shortcode_list, $pagenow, $pdfprnt_options;
79 +/* Function check if plugin is compatible with current WP version */
80 +if ( ! function_exists ( 'pdfprnt_version_check' ) ) {
81 + function pdfprnt_version_check() {
82 + global $wp_version, $bws_plugin_info;
137 83
138 - if ( empty( $bws_plugin_info ) ) {
139 - $bws_plugin_info = array(
140 - 'id' => '101',
141 - 'version' => $pdfprnt_plugin_info['Version'],
142 - );
84 + if ( function_exists( 'get_plugin_data' ) && ( ! isset( $bws_plugin_info ) || empty( $bws_plugin_info ) ) ) {
85 + $plugin_info = get_plugin_data( __FILE__ );
86 + $bws_plugin_info = array( 'id' => '101', 'version' => $plugin_info["Version"] );
143 87 }
144 - /* add PDF&Print to global $bws_shortcode_list */
145 - $bws_shortcode_list['pdfprnt'] = array(
146 - 'name' => 'PDF&Print',
147 - 'js_function' => 'pdfprnt_shortcode_init',
148 - );
149 - if ( 'plugins.php' === $pagenow ) {
150 - /* Install the option defaults */
151 - if ( function_exists( 'bws_plugin_banner_go_pro' ) ) {
152 - pdfprnt_settings();
153 - bws_plugin_banner_go_pro( $pdfprnt_options, $pdfprnt_plugin_info, 'pdfprnt', 'pdf-print', 'e2f2549f4d70bc4cb9b48071169d264e', '101', 'pdf-print' );
154 - }
155 - }
156 - }
157 -}
158 88
159 -
160 -if ( ! function_exists( 'pdfprnt_plugin_activate' ) ) {
161 - /**
162 - * Function for activation
163 - */
164 - function pdfprnt_plugin_activate() {
165 - if ( is_multisite() ) {
166 - switch_to_blog( 1 );
167 - register_uninstall_hook( __FILE__, 'pdfprnt_uninstall' );
168 - restore_current_blog();
169 - } else {
170 - register_uninstall_hook( __FILE__, 'pdfprnt_uninstall' );
171 - }
172 - }
173 -}
174 -
175 -if ( ! function_exists( 'pdfprnt_settings' ) ) {
176 - /**
177 - * Register settings for plugin
178 - */
179 - function pdfprnt_settings() {
180 - global $pdfprnt_options, $pdfprnt_plugin_info;
181 - $options_default = pdfprnt_get_options_default();
182 - if ( ! get_option( 'pdfprnt_options' ) ) {
183 - add_option( 'pdfprnt_options', $options_default );
184 - }
185 -
186 - $pdfprnt_options = get_option( 'pdfprnt_options' );
187 - if ( ! isset( $pdfprnt_options['plugin_option_version'] ) || $pdfprnt_options['plugin_option_version'] !== $pdfprnt_plugin_info['Version'] ) {
188 - if ( isset( $pdfprnt_options['button_post_types'] ) ) {
189 - unset( $options_default['button_post_types'] );
89 + $plugin_data = get_plugin_data( __FILE__, false );
90 + $require_wp = "3.0"; /* Wordpress at least requires version */
91 + $plugin = plugin_basename( __FILE__ );
92 + if ( version_compare( $wp_version, $require_wp, "<" ) ) {
93 + if ( is_plugin_active( $plugin ) ) {
94 + deactivate_plugins( $plugin );
95 + wp_die( "<strong>" . $plugin_data['Name'] . " </strong> " . __( 'requires', 'pdf-print' ) . " <strong>WordPress" . $require_wp . " </strong> " . __( 'or higher, that is why it has been deactivated! Please upgrade WordPress and try again.', 'pdf-print') . "<br /><br />" . __( 'Back to the WordPress', 'pdf-print') . " <a href='" . get_admin_url( null, 'plugins.php' ) . "'>" . __( 'Plugins page', 'pdf-print') . "</a>." );
190 96 }
191 - if ( function_exists( 'array_replace_recursive' ) ) {
192 - $pdfprnt_options = array_replace_recursive( $options_default, $pdfprnt_options );
193 - } else {
194 - foreach ( $options_default as $key => $value ) {
195 - if (
196 - ! isset( $pdfprnt_options[ $key ] ) ||
197 - ( isset( $pdfprnt_options[ $key ] ) && is_array( $options_default[ $key ] ) && ! is_array( $pdfprnt_options[ $key ] ) )
198 - ) {
199 - $pdfprnt_options[ $key ] = $options_default[ $key ];
200 - } else {
201 - if ( is_array( $options_default[ $key ] ) ) {
202 - foreach ( $options_default[ $key ] as $key2 => $value2 ) {
203 - if ( ! isset( $pdfprnt_options[ $key ][ $key2 ] ) ) {
204 - $pdfprnt_options[ $key ][ $key2 ] = $options_default[ $key ][ $key2 ];
205 - }
206 - }
207 - }
208 - }
209 - }
210 - }
211 - $is_old_pro = false === strpos( 'pro-', $pdfprnt_options['plugin_option_version'] ) ? false : true;
212 - if ( $is_old_pro ) {
213 - foreach ( array( 'pdf', 'print' ) as $button ) {
214 - if ( 'none' !== $pdfprnt_options['button_image'][ $button ]['type'] ) {
215 - $pdfprnt_options['button_image'][ $button ]['type'] = 'default';
216 - $pdfprnt_options['button_image'][ $button ]['image_src'] = plugins_url( "images/{$button}.png", __FILE__ );
217 - }
218 - }
219 - }
220 -
221 - $pdfprnt_options['plugin_option_version'] = $pdfprnt_plugin_info['Version'];
222 - $pdfprnt_options['hide_premium_options'] = array();
223 - update_option( 'pdfprnt_options', $pdfprnt_options );
224 - pdfprnt_plugin_activate();
225 97 }
226 98 }
227 99 }
228 100
229 -if ( ! function_exists( 'pdfprnt_get_options_default' ) ) {
230 - /**
231 - * Get plugin default settings
232 - */
233 - function pdfprnt_get_options_default() {
234 - global $pdfprnt_plugin_info, $wp_roles;
235 -
236 - /* Variable to verify performance number of once function. */
237 - $default_post_types = array();
238 - /* Default post types of WordPress. */
239 - foreach ( get_post_types(
240 - array(
241 - 'public' => 1,
242 - 'show_ui' => 1,
243 - '_builtin' => true,
244 - ),
245 - 'names'
246 - ) as $value ) {
247 - $default_post_types[] = $value;
248 - }
249 - $default_post_types[] = 'pdfprnt_search';
250 - $default_post_types[] = 'pdfprnt_archives';
251 - $default_post_types[] = 'pdfprnt_blog';
252 -
253 - $enabled_roles = array();
254 - $roles = array_keys( $wp_roles->roles );
255 - foreach ( $roles as $key => $role ) {
256 - $enabled_roles[ $role ] = 1;
257 - }
258 - $enabled_roles['unauthorized'] = 1;
259 -
260 - $options_default = array(
261 - 'plugin_option_version' => $pdfprnt_plugin_info['Version'],
262 - 'button_post_types' => array(
263 - 'pdf' => $default_post_types,
264 - 'print' => $default_post_types,
265 - ),
266 - 'buttons_position' => 'top-right',
267 - 'use_default_css' => 0,
268 - 'use_custom_css' => 0,
269 - 'custom_css_code' => '',
270 - 'do_shorcodes' => 1,
271 - 'disable_links' => 0,
272 - 'remove_links' => 0,
273 - 'replace_video' => 0,
274 - 'qr_code_link' => 0,
275 - 'show_print_window' => 0,
276 - 'additional_fonts' => 0,
277 - 'show_title' => 1,
278 - 'show_featured_image' => 0,
279 - 'show_author' => 0,
280 - 'show_date' => 0,
281 - 'show_category' => 0,
282 - 'featured_image_size' => 'thumbnail',
283 - 'button_image' => array(
284 - 'pdf' => array(
285 - 'type' => 'default',
286 - 'image_src' => plugins_url( 'images/pdf.png', __FILE__ ),
287 - ),
288 - 'print' => array(
289 - 'type' => 'default',
290 - 'image_src' => plugins_url( 'images/print.png', __FILE__ ),
291 - ),
292 - ),
293 - 'button_title' => array(
294 - 'pdf' => '',
295 - 'print' => '',
296 - ),
297 - 'pdf_page_size' => 'A4',
298 - 'image_to_pdf' => 0,
299 - 'pdf_margins' => array(
300 - 'left' => 15,
301 - 'right' => 15,
302 - 'top' => 16,
303 - 'bottom' => 16,
304 - ),
305 - 'first_install' => strtotime( 'now' ),
306 - 'suggest_feature_banner' => 1,
307 - 'file_action' => 'open',
308 - 'print_action' => 'plugin_function',
309 - 'enabled_roles' => $enabled_roles,
310 - 'mpdf_library_version' => '8.2.6',
311 - 'hide_classes' => array(),
312 - 'count_generation' => 0,
101 +/* Add admin page */
102 +if ( ! function_exists ( 'pdfprnt_settings_page' ) ) {
103 + function pdfprnt_settings_page () {
104 + global $pdfprnt_options_array;
105 + $pdfprnt_positions_values = array(
106 + 'top-left' => __( 'Top Left', 'pdf-print' ),
107 + 'top-right' => __( 'Top Right', 'pdf-print' ),
108 + 'bottom-left' => __( 'Bottom Left', 'pdf-print' ),
109 + 'bottom-right' => __( 'Bottom Right', 'pdf-print' )
313 110 );
314 -
315 - $options_default = apply_filters( 'pdfprnt_get_additional_options_default', $options_default );
316 -
317 - return $options_default;
318 - }
319 -}
320 -
321 -if ( ! function_exists( 'pdfprnt_settings_page' ) ) {
322 - /**
323 - * Settings page
324 - */
325 - function pdfprnt_settings_page() {
326 - global $pdfprnt_plugin_info;
327 - require_once dirname( __FILE__ ) . '/includes/pro_banners.php';
328 - if ( ! class_exists( 'Bws_Settings_Tabs' ) ) {
329 - require_once dirname( __FILE__ ) . '/bws_menu/class-bws-settings.php';
330 - }
331 - require_once dirname( __FILE__ ) . '/includes/class-pdfprnt-settings.php';
332 - $page = new Pdfprnt_Settings_Tabs( plugin_basename( __FILE__ ) );
333 - if ( method_exists( $page, 'add_request_feature' ) ) {
334 - $page->add_request_feature();
111 + if ( isset( $_REQUEST['pdfprnt_position'] ) &&
112 + isset( $_REQUEST['pdfprnt_position_search_archive'] ) &&
113 + isset( $_REQUEST['pdfprnt_position_custom'] ) &&
114 + isset( $_REQUEST['pdfprnt_use_theme_stylesheet'] ) &&
115 + isset( $_REQUEST['pdfprnt_tmpl_post'] ) &&
116 + isset( $_REQUEST['pdfprnt_tmpl_custom'] ) &&
117 + isset( $_REQUEST['pdfprnt_tmpl_search'] ) &&
118 + check_admin_referer( plugin_basename( __FILE__ ), 'pdfprnt_nonce_name' ) ) {
119 + $pdfprnt_options_array['position'] = $_REQUEST['pdfprnt_position'];
120 + $pdfprnt_options_array['position_search_archive'] = $_REQUEST['pdfprnt_position_search_archive'];
121 + $pdfprnt_options_array['position_custom'] = $_REQUEST['pdfprnt_position_custom'];
122 + $pdfprnt_options_array['tmpl_post'] = $_REQUEST['pdfprnt_tmpl_post'];
123 + $pdfprnt_options_array['tmpl_search'] = $_REQUEST['pdfprnt_tmpl_search'];
124 + $pdfprnt_options_array['tmpl_custom'] = $_REQUEST['pdfprnt_tmpl_custom'];
125 + $pdfprnt_options_array['use_theme_stylesheet'] = $_REQUEST['pdfprnt_use_theme_stylesheet'];
126 + $pdfprnt_options_array['show_btn_pdf'] = isset( $_REQUEST['pdfprnt_show_btn_pdf'] ) ? 1 : 0;
127 + $pdfprnt_options_array['show_btn_print'] = isset( $_REQUEST['pdfprnt_show_btn_print'] ) ? 1 : 0;
128 + $pdfprnt_options_array['show_btn_pdf_search_archive'] = isset( $_REQUEST['pdfprnt_show_btn_pdf_search_archive'] ) ? 1 : 0;
129 + $pdfprnt_options_array['show_btn_print_search_archive'] = isset( $_REQUEST['pdfprnt_show_btn_print_search_archive'] ) ? 1 : 0;
130 + $pdfprnt_options_array['show_btn_pdf_custom'] = isset( $_REQUEST['pdfprnt_show_btn_pdf_custom'] ) ? 1 : 0;
131 + $pdfprnt_options_array['show_btn_print_custom'] = isset( $_REQUEST['pdfprnt_show_btn_print_custom'] ) ? 1 : 0;
132 + $pdfprnt_options_array['tmpl_shorcode'] = isset( $_REQUEST['pdfprnt_tmpl_shorcode'] ) ? 1 : 0;
133 + $pdfprnt_options_array['use_types_posts'] = isset( $_REQUEST['pdfprnt_use_types_posts'] ) ? $_REQUEST['pdfprnt_use_types_posts'] : array();
134 + update_option ( 'pdfprnt_options_array', $pdfprnt_options_array );
135 + $message = __( 'Settings saved.', 'pdf-print' );
335 136 } ?>
336 137 <div class="wrap">
337 - <h1 class="pdfprnt-title"><?php esc_html_e( 'PDF & Print Settings', 'pdf-print' ); ?></h1>
338 - <?php
339 - if ( function_exists( 'bws_plugin_promo_banner' ) ) {
340 - echo bws_plugin_promo_banner( $pdfprnt_plugin_info, 'pdfprnt_options', 'pdf-print', 'https://bestwebsoft.com/products/wordpress/plugins/pdf-print/?utm_source=wordpress&utm_medium=plugin_banner&utm_campaign=upgrade' );
341 - }
342 - $page->display_content(); ?>
343 - </div>
344 - <?php
345 - }
346 -}
347 -
348 -
349 -if ( ! function_exists( 'pdfprnt_templates' ) ) {
350 - /**
351 - * Headers & Footers page
352 - */
353 - function pdfprnt_templates() {
354 - global $wp_version, $pdfprnt_plugin_info, $pdfprnt_options, $pdfprnt_links;
355 - require_once dirname( __FILE__ ) . '/includes/pro_banners.php';
356 -
357 - pdfprnt_settings();
358 - $bws_hide_premium = bws_hide_premium_options_check( $pdfprnt_options );
359 -
360 - $tab_action = ( isset( $_GET['pdfprnt_tab_action'] ) && 'new' === $_GET['pdfprnt_tab_action'] );
361 - if ( $tab_action ) {
362 - $page_title = esc_html__( 'Add New', 'pdf-print' );
363 - $page_name = esc_html__( 'Header & Footer Template', 'pdf-print' );
364 - } else {
365 - $page_title = '';
366 - $page_name = esc_html__( 'Headers & Footers', 'pdf-print' );
367 - }
368 - $display_title = ( ! empty( $page_title ) ) ? "$page_title $page_name" : "$page_name";
369 - if ( ! isset( $_GET['pdfprnt_tab_action'] ) && ! $bws_hide_premium ) {
370 - $display_title .= sprintf(
371 - ' <a class="add-new-h2 pdfprnt_add_new_button" href="%s">%s</a>',
372 - admin_url( 'admin.php?page=pdf-print-templates.php&pdfprnt_tab_action=new' ),
373 - esc_html__( 'Add New', 'pdf-print' )
374 - );
375 - }
376 - ?>
377 - <div class="wrap">
378 - <h1 class="pdfprnt-title"><?php echo wp_kses_post( $display_title ); ?></h1>
379 - <br>
380 - <?php if ( $bws_hide_premium ) { ?>
381 - <p>
382 - <?php
383 - esc_html_e( 'This tab contains Pro options only.', 'pdf-print' );
384 - echo ' ' . sprintf(
385 - esc_html__( '%1$sChange the settings%2$s to view the Pro options.', 'pdf-print' ),
386 - '<a href="admin.php?page=pdf-print.php&bws_active_tab=misc">',
387 - '</a>'
388 - );
389 - ?>
390 - </p>
391 - <?php } else { ?>
392 - <div class="bws_pro_version_bloc pdfprnt-pro-feature pdfprnt-pro-feature-templates">
393 - <div class="bws_pro_version_table_bloc">
394 - <div class="bws_table_bg" style="z-index: 1098;"></div>
395 - <div class="bws_pro_version">
396 - <?php
397 - if ( ! $tab_action ) {
398 - $date_format = get_option( 'date_format' );
399 - pdfprnt_headers_footers_list_block( $date_format );
400 - } else {
401 - pdfprnt_headers_footers_editor_block();
402 - }
403 - ?>
404 - </div>
138 + <div class="icon32 icon32-bws" id="icon-options-general"></div>
139 + <h2><?php echo __( 'PDF & Print Settings', 'pdf-print' ); ?></h2>
140 + <div class="updated fade" <?php if( empty( $message ) ) echo "style=\"display:none\""; ?>><p><strong><?php echo $message; ?></strong></p></div>
141 + <div id="pdfprnt_settings_notice" class="updated fade" style="display:none"><p><strong><?php _e( "Notice:", 'pdf-print' ); ?></strong> <?php _e( "The plugin's settings have been changed. In order to save them please don't forget to click the 'Save Changes' button.", 'pdf-print' ); ?></p></div>
142 + <div>
143 + <form method="post" action="admin.php?page=pdf-print.php" id="pdfprnt_settings_form">
144 + <table class="form-table pdfprnt_settings_table">
145 + <tr>
146 + <th scope="row"><?php echo __( 'Use of theme stylesheet or plugin default style:', 'pdf-print' ); ?></th>
147 + <td>
148 + <select name="pdfprnt_use_theme_stylesheet">
149 + <option value="0" <?php if ( 0 == $pdfprnt_options_array['use_theme_stylesheet'] ) echo 'selected="selected"'; ?>><?php echo __( 'Default stylesheet', 'pdf-print' ); ?></option>
150 + <option value="1" <?php if ( 1 == $pdfprnt_options_array['use_theme_stylesheet'] ) echo 'selected="selected"'; ?>><?php echo __( 'Current theme stylesheet', 'pdf-print' ); ?></option>
151 + </select>
152 + </td>
153 + </tr>
154 + <tr>
155 + <th scope="row"><?php echo __( 'The types of posts that the plugin will use:', 'pdf-print' ); ?></th>
156 + <td>
157 + <select name="pdfprnt_use_types_posts[]" multiple="multiple">
158 + <?php foreach ( get_post_types( array( 'public' => 1, 'show_ui' => 1 ), 'objects' ) as $key => $value ) : ?>
159 + <option value="<?php echo $key; ?>" <?php if ( in_array( $key, $pdfprnt_options_array['use_types_posts'] ) ) echo 'selected="selected"'; ?>><?php echo $value->label; ?></option>
160 + <?php endforeach; ?>
161 + </select>
162 + </td>
163 + </tr>
164 + <?php
165 + $active_plugins = get_option( 'active_plugins' );
166 + if( 0 < count( preg_grep( '/portfolio\/portfolio.php/', $active_plugins ) ) ) : ?>
167 + <tr>
168 + <th scope="row"></th>
169 + <td>
170 + <span class="pdfprnt_explanation"><?php echo __( 'If you are using a Portfolio plugin (powered by bestwebsoft.com) and you need the output pdf and print buttons next to each post, you just need to insert the strings in loop into the template source code in files portfolio.php and portfolio-post.php', 'pdf-print' ) . ' &#60;?php if ( function_exists( \'pdfprnt_show_buttons_for_bws_portfolio_post\' ) ) echo pdfprnt_show_buttons_for_bws_portfolio_post(); ?&#62;<br/> ' . __( ' In order to use PDF and Print buttons for all posts you need to put the strings below into the template source code in file portfolio.php', 'pdf-print' ) . ' &#60;?php if ( function_exists( \'pdfprnt_show_buttons_for_bws_portfolio\' ) ) echo pdfprnt_show_buttons_for_bws_portfolio(); ?&#62;'; ?></span>
171 + </td>
172 + </tr>
173 + <?php endif; ?>
174 + <tr>
175 + <th scope="row">
176 + <?php echo __( 'Position of buttons in content:', 'pdf-print' ); ?>
177 + </th>
178 + <td>
179 + <select name="pdfprnt_position">
180 + <?php foreach ( $pdfprnt_positions_values as $key => $value ) : ?>
181 + <option value="<?php echo $key; ?>" <?php if ( $pdfprnt_options_array['position'] == $key ) echo 'selected="selected"'; ?>><?php echo $value; ?></option>
182 + <?php endforeach; ?>
183 + </select>
184 + </td>
185 + </tr>
186 + <tr>
187 + <th scope="row"><?php echo __( 'Show:', 'pdf-print' ); ?></th>
188 + <td>
189 + <label><input type="checkbox" name="pdfprnt_show_btn_pdf" <?php if ( 1 == $pdfprnt_options_array['show_btn_pdf'] ) echo 'checked="checked"'; ?> /> <span><?php echo __( 'PDF button', 'pdf-print' ); ?></span></label><br />
190 + <label><input type="checkbox" name="pdfprnt_show_btn_print" <?php if ( 1 == $pdfprnt_options_array['show_btn_print'] ) echo 'checked="checked"'; ?> /> <span><?php echo __( 'Print button', 'pdf-print' ); ?></span></label>
191 + </td>
192 + </tr>
193 + <tr>
194 + <th scope="row">
195 + <?php echo __( 'Default template setting for post:', 'pdf-print' ); ?>
196 + </th>
197 + <td>
198 + <div>
199 + <label>
200 + <img src="<?php echo plugins_url( 'images/template_left.jpg', __FILE__ ); ?>" alt="template_left" />
201 + <input type="radio" name="pdfprnt_tmpl_post" value="1" <?php if ( 1 == $pdfprnt_options_array['tmpl_post'] ) echo 'checked="checked"'; ?> />
202 + </label>
203 + </div>
204 + <div>
205 + <label>
206 + <img src="<?php echo plugins_url( 'images/template_center.jpg', __FILE__ ); ?>" alt="template_center" />
207 + <input type="radio" name="pdfprnt_tmpl_post" value="2" <?php if ( 2 == $pdfprnt_options_array['tmpl_post'] ) echo 'checked="checked"'; ?> />
208 + </label>
209 + </div>
210 + <div>
211 + <label>
212 + <img src="<?php echo plugins_url( 'images/template_right.jpg', __FILE__ ); ?>" alt="template_right" />
213 + <input type="radio" name="pdfprnt_tmpl_post" value="3" <?php if ( 3 == $pdfprnt_options_array['tmpl_post'] ) echo 'checked="checked"'; ?> />
214 + </label>
215 + </div>
216 + </td>
217 + </tr>
218 + <tr>
219 + <th scope="row">
220 + <?php echo __( 'Position of buttons in content for custom post:', 'pdf-print' ); ?>
221 + </th>
222 + <td>
223 + <select name="pdfprnt_position_custom">
224 + <option value="pdfprnt-left" <?php if ( 'left' == $pdfprnt_options_array['position_custom'] ) echo 'selected="selected"'; ?>><?php echo __( 'Align Left', 'pdf-print' ); ?></option>
225 + <option value="pdfprnt-right" <?php if ( 'right' == $pdfprnt_options_array['position_custom'] ) echo 'selected="selected"'; ?>><?php echo __( 'Align Right', 'pdf-print' ); ?></option>
226 + </select>
227 + </td>
228 + </tr>
229 + <tr>
230 + <th scope="row"><?php echo __( 'Show for custom posts:', 'pdf-print' ); ?></th>
231 + <td>
232 + <label><input type="checkbox" name="pdfprnt_show_btn_pdf_custom" <?php if ( 1 == $pdfprnt_options_array['show_btn_pdf_custom'] ) echo 'checked="checked"'; ?> /> <span><?php echo __( 'PDF button', 'pdf-print' ); ?></span></label><br />
233 + <label><input type="checkbox" name="pdfprnt_show_btn_print_custom" <?php if ( 1 == $pdfprnt_options_array['show_btn_print_custom'] ) echo 'checked="checked"'; ?> /> <span><?php echo __( 'Print button', 'pdf-print' ); ?></span></label>
234 + </td>
235 + </tr>
236 + <tr>
237 + <th scope="row">
238 + <?php echo __( 'Default template setting for custom posts:', 'pdf-print' ); ?>
239 + </th>
240 + <td>
241 + <div>
242 + <label>
243 + <img src="<?php echo plugins_url( 'images/template_left.jpg', __FILE__ ); ?>" alt="template_left" />
244 + <input type="radio" name="pdfprnt_tmpl_custom" value="1" <?php if ( 1 == $pdfprnt_options_array['tmpl_custom'] ) echo 'checked="checked"'; ?> />
245 + </label>
246 + </div>
247 + <div>
248 + <label>
249 + <img src="<?php echo plugins_url( 'images/template_center.jpg', __FILE__ ); ?>" alt="template_center" />
250 + <input type="radio" name="pdfprnt_tmpl_custom" value="2" <?php if ( 2 == $pdfprnt_options_array['tmpl_custom'] ) echo 'checked="checked"'; ?> />
251 + </label>
252 + </div>
253 + <div>
254 + <label>
255 + <img src="<?php echo plugins_url( 'images/template_right.jpg', __FILE__ ); ?>" alt="template_right" />
256 + <input type="radio" name="pdfprnt_tmpl_custom" value="3" <?php if ( 3 == $pdfprnt_options_array['tmpl_custom'] ) echo 'checked="checked"'; ?> />
257 + </label>
258 + </div>
259 + </td>
260 + </tr>
261 + <tr>
262 + <th scope="row"></th>
263 + <td>
264 + <span class="pdfprnt_explanation"><?php echo __( 'In order to use PDF and Print buttons on the custom page you should use the', 'pdf-print' ) . '&#60;?php if ( function_exists( \'pdfprnt_show_buttons_for_custom_post_type\' ) ) echo pdfprnt_show_buttons_for_custom_post_type( $custom_query ); ?&#62;' . __( ' where you have to specify query parameters for your custom post.<br/> For example: ', 'pdf-print' ) . '&#60;?php if ( function_exists( \'pdfprnt_show_buttons_for_custom_post_type\' ) ) echo pdfprnt_show_buttons_for_custom_post_type( \'post_type=gallery&orderby=post_date\' ); ?&#62;' . __(' or ', 'pdf-print') . '&#60;?php if ( function_exists( \'pdfprnt_show_buttons_for_custom_post_type\' ) ) echo pdfprnt_show_buttons_for_custom_post_type( array( \'post_type\' => \'gallery\', \'orderby\' => \'post_date\' ) ); ?&#62;.' . __( ' For more information on the syntax for assigning parameters to function see <a target="_blank" href="http://codex.wordpress.org/Class_Reference/WP_Query#Parameters">here</a>.', 'pdf-print' ); ?></span>
265 + </td>
266 + </tr>
267 + <tr>
268 + <th scope="row">
269 + <?php echo __( 'Position of buttons on search or archive page:', 'pdf-print' ); ?>
270 + </th>
271 + <td>
272 + <select name="pdfprnt_position_search_archive">
273 + <option value="pdfprnt-left" <?php if ( 'left' == $pdfprnt_options_array['position_search_archive'] ) echo 'selected="selected"'; ?>><?php echo __( 'Align Left', 'pdf-print' ); ?></option>
274 + <option value="pdfprnt-right" <?php if ( 'right' == $pdfprnt_options_array['position_search_archive'] ) echo 'selected="selected"'; ?>><?php echo __( 'Align Right', 'pdf-print' ); ?></option>
275 + </select>
276 + </td>
277 + </tr>
278 + <tr>
279 + <th scope="row"><?php echo __( 'Show for search or archive page:', 'pdf-print' ); ?></th>
280 + <td>
281 + <label><input type="checkbox" name="pdfprnt_show_btn_pdf_search_archive" <?php if ( 1 == $pdfprnt_options_array['show_btn_pdf_search_archive'] ) echo 'checked="checked"'; ?> /> <span><?php echo __( 'PDF button', 'pdf-print' ); ?></span></label><br />
282 + <label><input type="checkbox" name="pdfprnt_show_btn_print_search_archive" <?php if ( 1 == $pdfprnt_options_array['show_btn_print_search_archive'] ) echo 'checked="checked"'; ?> /> <span><?php echo __( 'Print button', 'pdf-print' ); ?></span></label>
283 + </td>
284 + </tr>
285 + <tr>
286 + <th scope="row">
287 + <?php echo __( 'Default template setting for search and archive:', 'pdf-print' ); ?>
288 + </th>
289 + <td>
290 + <div>
291 + <label>
292 + <img src="<?php echo plugins_url( 'images/template_left.jpg', __FILE__ ); ?>" alt="template_left" />
293 + <input type="radio" name="pdfprnt_tmpl_search" value="1" <?php if ( 1 == $pdfprnt_options_array['tmpl_search'] ) echo 'checked="checked"'; ?> />
294 + </label>
295 + </div>
296 + <div>
297 + <label>
298 + <img src="<?php echo plugins_url( 'images/template_center.jpg', __FILE__ ); ?>" alt="template_center" />
299 + <input type="radio" name="pdfprnt_tmpl_search" value="2" <?php if ( 2 == $pdfprnt_options_array['tmpl_search'] ) echo 'checked="checked"'; ?> />
300 + </label>
301 + </div>
302 + <div>
303 + <label>
304 + <img src="<?php echo plugins_url( 'images/template_right.jpg', __FILE__ ); ?>" alt="template_right" />
305 + <input type="radio" name="pdfprnt_tmpl_search" value="3" <?php if ( 3 == $pdfprnt_options_array['tmpl_search'] ) echo 'checked="checked"'; ?> />
306 + </label>
307 + </div>
308 + </td>
309 + </tr>
310 + <tr>
311 + <th scope="row"></th>
312 + <td>
313 + <span class="pdfprnt_explanation"><?php echo __( 'In order to use PDF and Print buttons on the search page or archive page you should put the strings below into the template source code in files search.php or archives.php ', 'pdf-print' ) . ' &#60;?php if ( function_exists( \'pdfprnt_show_buttons_search_archive\' ) ) echo pdfprnt_show_buttons_search_archive(); ?&#62;'; ?></span>
314 + </td>
315 + </tr>
316 + <tr>
317 + <th scope="row">
318 + <?php echo __( 'Settings for shorcodes:', 'pdf-print' ); ?>
319 + </th>
320 + <td>
321 + <label><input type="checkbox" name="pdfprnt_tmpl_shorcode" <?php if ( 1 == $pdfprnt_options_array['tmpl_shorcode'] ) echo 'checked="checked"'; ?> /> <span><?php echo __( 'Do!', 'pdf-print' ); ?></span></label>
322 + </td>
323 + </tr>
324 + <tr>
325 + <td colspan="2">
326 + <input type="submit" class="button-primary" value="<?php _e( 'Save Changes', 'pdf-print' ); ?>" />
327 + </td>
328 + </tr>
329 + </table>
330 + <?php wp_nonce_field( plugin_basename( __FILE__ ), 'pdfprnt_nonce_name' ); ?>
331 + </form>
332 + <br />
333 + <div class="bws-plugin-reviews">
334 + <div class="bws-plugin-reviews-rate">
335 + <?php _e( 'If you enjoy our plugin, please give it 5 stars on WordPress', 'pdf-print' ); ?>:
336 + <a href="http://wordpress.org/support/view/plugin-reviews/pdf-print" target="_blank" title="PDF &amp; Print reviews"><?php _e( 'Rate the plugin', 'pdf-print' ); ?></a><br/>
405 337 </div>
406 - <div class="bws_pro_version_tooltip" style="z-index: 1099;">
407 - <a class="bws_button" href="https://bestwebsoft.com/products/wordpress/plugins/pdf-print/?k=d9da7c9c2046bed8dfa38d005d4bffdb&pn=101&v=<?php echo esc_attr( $pdfprnt_plugin_info['Version'] ); ?>&wp_v=<?php echo esc_attr( $wp_version ); ?>" target="_blank" title="PDF & Print Pro Plugin"><?php esc_html_e( 'Upgrade to Pro', 'pdf-print' ); ?></a>
408 - <div class="clear"></div>
338 + <div class="bws-plugin-reviews-support">
339 + <?php _e( 'If there is something wrong about it, please contact us', 'pdf-print' ); ?>:
340 + <a href="http://support.bestwebsoft.com">http://support.bestwebsoft.com</a>
409 341 </div>
410 342 </div>
411 - <?php } ?>
343 + </div>
412 344 </div>
413 - <?php
414 - }
345 + <?php }
415 346 }
416 347
417 -if ( ! function_exists( 'pdfprnt_shortcode' ) ) {
418 - /**
419 - * PDF&Print shortcode
420 - * [bws_pdfprint]
421 - *
422 - * @param array $attr Attribute for shortcode.
423 - */
424 - function pdfprnt_shortcode( $attr ) {
425 - global $pdfprnt_options, $pdfprnt_is_old_php;
426 -
427 - if ( isset( $_REQUEST['print'] ) || $pdfprnt_is_old_php || ! pdfprnt_is_user_role_enabled() ) {
428 - return;
429 - }
430 -
431 - $buttons = '';
432 - if ( is_home() ) {
433 - global $post;
434 - $permalink = get_permalink( $post );
435 - } else {
436 - $permalink = isset( $_SERVER['HTTP_HOST'] ) && isset( $_SERVER['REQUEST_URI'] ) ? ( is_ssl() ? 'https://' : 'http://' ) . sanitize_text_field( wp_unslash( $_SERVER['HTTP_HOST'] ) ) . sanitize_text_field( wp_unslash( $_SERVER['REQUEST_URI'] ) ) : '';
437 - }
438 - $shortcode_atts = shortcode_atts( array( 'display' => 'pdf' ), $attr );
439 - $shortcode_atts = str_word_count( $shortcode_atts['display'], 1 );
440 -
441 - foreach ( $shortcode_atts as $value ) {
442 - if ( 'pdf' === $value ) {
443 - $buttons .= pdfprnt_get_button( 'pdf', $permalink );
444 - }
445 - if ( 'print' === $value ) {
446 - $buttons .= pdfprnt_get_button( 'print', $permalink );
447 - }
448 - }
449 - if ( 1 === $pdfprnt_options['count_generation'] ) {
450 - $post_type = get_post_type();
451 - if ( in_array( $post_type, $pdfprnt_options['button_post_types']['pdf'] ) || in_array( $post_type, $pdfprnt_options['button_post_types']['print'] ) ) {
452 - $count = get_post_meta( get_the_ID(), 'pdfprnt_count_generation', true );
453 - $buttons .= ' <span class="pdfprnt-count-generation">' . $count . '</span>';
454 - }
455 - }
456 - if ( ! empty( $buttons ) ) {
457 - $buttons = sprintf(
458 - '<div class="pdfprnt-buttons">%s</div>',
459 - $buttons
460 - );
461 - add_action( 'wp_footer', 'pdfprnt_add_script' );
462 - }
463 -
464 - return $buttons;
465 - }
466 -}
467 -
468 -if ( ! function_exists( 'pdfprnt_shortcode_pagebreak' ) ) {
469 - /**
470 - * [pdfprnt_shortcode_pagebreak]
471 - */
472 - function pdfprnt_shortcode_pagebreak() {
473 - if ( isset( $_GET['print'] ) && 'pdf' === $_GET['print'] ) {
474 - return '<div style="page-break-after:always"></div>';
475 - }
476 - return '';
477 - }
478 -}
479 -
480 -
481 -if ( ! function_exists( 'pdfprnt_qr_code_content' ) ) {
482 - /**
483 - * Add custom fields shortcodes button
484 - *
485 - * @param string $content Post content.
486 - */
487 - function pdfprnt_qr_code_content( $content ) {
488 - global $pdfprnt_options;
489 - if ( 1 === $pdfprnt_options['replace_video'] ) {
490 - $provider_match_masks = array(
491 - 'youtube' => '/http.*(?:youtu\.be\/|youtube(?:-nocookie)?\.com\/)[^\"\'>]+/',
492 - 'vimeo' => '/http.*vimeo\.com\/[^\"\'>]+/',
493 - 'dailymotion' => '/http.*dailymotion.com\/[^\"\'>]+/',
494 - 'videopress' => array(
495 - '/(?:http(?:s)?:\/\/)?videos\.files\.wordpress\.com\/[^\"\'>]+/i',
496 - '/(?:http(?:s)?:\/\/)?(?:www\.)?video(?:\.word)?press\.com\/(?:v|embed)\/[^\"\'>]+/i',
497 - ),
498 - );
499 - $find_replace = array();
500 - foreach ( $provider_match_masks as $provider => $match_mask ) {
501 - if ( ! is_array( $match_mask ) ) {
502 - $match_mask = array( $match_mask );
503 - }
504 - foreach ( $match_mask as $mask ) {
505 - $matches = array();
506 - preg_match_all( $mask, $content, $matches, PREG_OFFSET_CAPTURE );
507 - if ( isset( $matches[0][0] ) ) {
508 - $pos_start = strrpos( substr( $content, 0, $matches[0][0][1] ), '<', 0 );
509 - $pos_end = strpos( substr( $content, $pos_start ), '>', 0 );
510 - preg_match( '/<.*>/', substr( $content, $pos_start + $pos_end, 15 ), $matches2 );
511 - $text = substr( $content, $pos_start, $pos_end + 1 ) . $matches2[0];
512 - $find_replace[] = array( $matches[0][0][0], $matches[0][0][1], $text );
513 - }
514 - }
515 - }
516 - if ( ! empty( $find_replace ) ) {
517 - require_once( dirname( __FILE__ ) . '/includes/qr_code/qr_code.php' );
518 -
519 - foreach( $find_replace as $replace ) {
520 - $qr_code = QRCode::getMinimumQRCode( $replace[0], QR_ERROR_CORRECT_LEVEL_L );
521 -
522 - $image = $qr_code->createImage( 6, 4 );
523 - ob_start();
524 - imagejpeg( $image );
525 - $contents = ob_get_contents();
526 - ob_end_clean();
527 - $image_data = "data:image/jpeg;base64," . base64_encode( $contents );
528 -
529 - if ( 1 === $pdfprnt_options['qr_code_link'] ) {
530 - $content = str_replace( $replace[2], '<a href="' . $replace[0] . '"><img src="' . $image_data . '" /></a>', $content );
531 - } else {
532 - $content = str_replace( $replace[2], '<img src="' . $image_data . '" />', $content );
533 - }
534 - }
535 - }
536 - }
537 - return $content;
538 - }
539 -}
540 -if ( ! function_exists( 'pdfprnt_shortcode_button_content' ) ) {
541 - /**
542 - * Add shortcode content
543 - *
544 - * @param string $content Post content.
545 - */
546 - function pdfprnt_shortcode_button_content( $content ) {
547 - ?>
548 - <div id="pdfprnt" style="display:none;">
549 - <fieldset>
550 - <?php esc_html_e( 'Add PDF & Print Buttons to your page or post', 'pdf-print' ); ?>
551 - <br />
552 - <label>
553 - <input type="checkbox" name="pdfprnt_selected_pdf" value="pdf" checked="checked" />
554 - <?php esc_html_e( 'PDF', 'pdf-print' ); ?>
555 - </label>
556 - <br />
557 - <label>
558 - <input type="checkbox" name="pdfprnt_selected_print" value="print" />
559 - <?php esc_html_e( 'Print', 'pdf-print' ); ?>
560 - </label>
561 - <input class="bws_default_shortcode" type="hidden" name="default" value="[bws_pdfprint]" />
562 - <div class="clear"></div>
563 - </fieldset>
564 - </div>
565 - <?php
566 - $script = "function pdfprnt_shortcode_init() {
567 - ( function( $ ) {
568 - $( '.mce-reset input[name^=\"pdfprnt_selected\"]' ).change( function() {
569 - var result = '';
570 - $( '.mce-reset input[name^=\"pdfprnt_selected\"]' ).each( function() {
571 - if ( $( this ).is( ':checked' ) ) {
572 - result += $( this ).val() + ',';
573 - }
574 - } );
575 -
576 - if ( '' == result ) {
577 - $( '.mce-reset #bws_shortcode_display' ).text( '' );
578 - } else {
579 - result = result.slice( 0, - 1 );
580 - $( '.mce-reset #bws_shortcode_display' ).text( '[bws_pdfprint display=\"' + result + '\"]' );
581 - }
582 - } );
583 - } ) ( jQuery );
584 - }";
585 -
586 - wp_register_script( 'pdfprnt_bws_shortcode_button', '//', false, null, false );
587 - wp_enqueue_script( 'pdfprnt_bws_shortcode_button' );
588 - wp_add_inline_script( 'pdfprnt_bws_shortcode_button', sprintf( $script ) );
589 - }
590 -}
591 -
592 -if ( ! function_exists( 'pdfprnt_get_button' ) ) {
593 - /**
594 - * Forming button
595 - *
596 - * @param string $button button name: 'pdf' or 'print'.
597 - * @param string $url page url or permalink.
598 - * @param string $custom_query_arg custom query arg to add to query.
599 - * @return string $link formed link with image and button title.
600 - */
601 - function pdfprnt_get_button( $button = 'pdf', $url = '', $custom_query_arg = '' ) {
602 - global $pdfprnt_options;
603 -
604 - if ( empty( $url ) ) {
605 - $url = home_url( '/' );
606 - }
607 - $button = ( 'print' === $button ) ? 'print' : 'pdf';
608 -
609 - if ( 'default' === $pdfprnt_options['button_image'][ $button ]['type'] && ! empty( $pdfprnt_options['button_image'][ $button ]['image_src'] ) ) {
610 - $image = sprintf(
611 - '<img src="%s" alt="image_%s" title="%s" />',
612 - esc_url( $pdfprnt_options['button_image'][ $button ]['image_src'] ),
613 - $button,
614 - ( ( 'print' === $button ) ? esc_html__( 'Print Content', 'pdf-print' ) : ( ( 'open' === $pdfprnt_options['file_action'] ) ? esc_html__( 'View PDF', 'pdf-print' ) : esc_html__( 'Download PDF', 'pdf-print' ) ) )
615 - );
616 - } else {
617 - $image = '';
618 - }
619 -
620 - $custom_query_arg = ( ! empty( $custom_query_arg ) ) ? $custom_query_arg : $button;
621 - $url = esc_url( $url );
622 - $url = add_query_arg( 'print', $custom_query_arg, $url );
623 - $target = '_blank';
624 -
625 - $title = ( ! empty( $pdfprnt_options['button_title'][ $button ] ) ) ?
626 - sprintf(
627 - '<span class="pdfprnt-button-title pdfprnt-button-%s-title">%s</span>',
628 - $button,
629 - $pdfprnt_options['button_title'][ $button ]
630 - )
631 - :
632 - '';
633 - if ( $pdfprnt_options['image_to_pdf'] && 'pdf' === $custom_query_arg ) {
634 - $url = 'javascript: imageToPdf(' . get_the_ID() . ')';
635 - $target = '_self';
636 - }
637 -
638 - if ( 'print' === $button && 'ctrl_p' === $pdfprnt_options['print_action'] ) {
639 - $url = "javascript: window.print()";
640 - $target = '_self';
641 - }
642 -
643 - $link = sprintf(
644 - '<a href="%s" class="pdfprnt-button pdfprnt-button-%s" target="%s" >%s%s</a>',
645 - $url,
646 - $button,
647 - $target,
648 - $image,
649 - $title
650 - );
651 -
652 - $link = apply_filters( 'pdfprnt_add_atribute_rel', $link, $url, $button, $target, $image, $title );
653 -
654 - return $link;
655 - }
656 -}
657 -
658 -if ( ! function_exists( 'pdfprnt_is_user_role_enabled' ) ) {
659 - /**
660 - * Check is enabled for user role
661 - */
662 - function pdfprnt_is_user_role_enabled() {
663 - global $pdfprnt_options, $current_user;
664 - if ( ! is_user_logged_in() || empty( $current_user->roles ) ) {
665 - return ! empty( $pdfprnt_options['enabled_roles']['unauthorized'] );
666 - } else {
667 - $role = $current_user->roles[0];
668 - return ! empty( $pdfprnt_options['enabled_roles'][ $role ] );
669 - }
670 - }
671 -}
672 -
673 -if ( ! function_exists( 'pdfprnt_content' ) ) {
674 - /**
675 - * Positioning buttons in content of standart posts and pages
676 - *
677 - * @param string $content Post content.
678 - * @return string $content
679 - */
348 +/* Positioning buttons in the page */
349 +if( ! function_exists( 'pdfprnt_content' ) ) {
680 350 function pdfprnt_content( $content ) {
681 - global $pdfprnt_options, $post, $pdfprnt_is_old_php;
682 -
683 - if ( $pdfprnt_is_old_php || is_admin() || is_feed() || is_search() || is_category() || is_tax() || is_tag() || is_author() || ! pdfprnt_is_user_role_enabled() || post_password_required( $post->ID ) ) {
351 + global $pdfprnt_options_array, $post;
352 + if ( ! in_array( get_post_type( $post ), $pdfprnt_options_array['use_types_posts'] ) ) // Check for existence the type of posts.
684 353 return $content;
685 - }
686 -
687 - $show_button_pdf = ! empty( $pdfprnt_options['button_post_types']['pdf'] ) && in_array( $post->post_type, $pdfprnt_options['button_post_types']['pdf'], true );
688 - $show_button_print = ! empty( $pdfprnt_options['button_post_types']['print'] ) && in_array( $post->post_type, $pdfprnt_options['button_post_types']['print'], true );
689 -
690 - if ( $show_button_pdf || $show_button_print ) {
691 -
692 - $str = '<div class="pdfprnt-buttons pdfprnt-buttons-' . $post->post_type . ' pdfprnt-' . $pdfprnt_options['buttons_position'] . '">';
693 - if ( is_home() ) {
694 - $permalink = get_permalink( $post );
695 - } else {
696 - $permalink = isset( $_SERVER['HTTP_HOST'] ) && isset( $_SERVER['REQUEST_URI'] ) ? ( is_ssl() ? 'https://' : 'http://' ) . sanitize_text_field( wp_unslash( $_SERVER['HTTP_HOST'] ) ) . sanitize_text_field( wp_unslash( urldecode( $_SERVER['REQUEST_URI'] ) ) ) : '';
354 + if ( 1 == $pdfprnt_options_array['show_btn_pdf'] || 1 == $pdfprnt_options_array['show_btn_print'] ) {
355 + $position = ( 'top-left' == $pdfprnt_options_array['position'] || 'top-right' == $pdfprnt_options_array['position'] ) ? true : false;
356 + $str = '<div class="pdfprnt-' . $pdfprnt_options_array['position'] . '">';
357 + if ( 1 == $pdfprnt_options_array['show_btn_pdf'] ) {
358 + if ( ! is_front_page () )
359 + $permalink = add_query_arg( 'print' , 'pdf' , get_permalink( $post->ID ) );
360 + else
361 + $permalink = add_query_arg( 'print' , 'pdf' , get_permalink() . '?page_id=' . $post->ID );
362 + $str .= '<a href="' . $permalink . '" target="_blank"><img src="' . plugins_url( 'images/pdf.png', __FILE__ ) . '" alt="image_pdf" title="View PDF" /></a>';
697 363 }
698 -
699 - if ( $show_button_pdf ) {
700 - $str .= pdfprnt_get_button( 'pdf', $permalink );
701 - if ( ! is_archive() && ! is_home() ) {
702 - add_action( 'wp_footer', 'pdfprnt_add_script' );
703 - }
364 + if ( 1 == $pdfprnt_options_array['show_btn_print'] ) {
365 + if ( ! is_front_page () )
366 + $permalink = add_query_arg( 'print' , 'print' , get_permalink( $post->ID ) );
367 + else
368 + $permalink = add_query_arg( 'print' , 'print' , get_permalink() . '?page_id=' . $post->ID );
369 + $str .= '<a href="' . $permalink . '" target="_blank"><img src="' . plugins_url( 'images/print.gif', __FILE__ ) . '" alt="image_print" title="Print Content" /></a>';
704 370 }
705 - if ( $show_button_print ) {
706 - $str .= pdfprnt_get_button( 'print', $permalink );
707 - }
708 - if ( 1 === $pdfprnt_options['count_generation'] ) {
709 - $post_type = get_post_type();
710 - if ( in_array( $post_type, $pdfprnt_options['button_post_types']['pdf'] ) || in_array( $post_type, $pdfprnt_options['button_post_types']['print'] ) ) {
711 - $count = get_post_meta( get_the_ID(), 'pdfprnt_count_generation', true );
712 - $str .= ' <span class="pdfprnt-count-generation">' . $count . '</span>';
713 - }
714 - }
715 371 $str .= '</div>';
716 -
717 - if ( 'top-left' === $pdfprnt_options['buttons_position'] || 'top-right' === $pdfprnt_options['buttons_position'] ) {
372 + if ( $position )
718 373 $content = $str . $content;
719 - } elseif ( 'bottom-left' === $pdfprnt_options['buttons_position'] || 'bottom-right' === $pdfprnt_options['buttons_position'] ) {
374 + else
720 375 $content = $content . $str;
721 - } else {
722 - $content = $str . $content . $str;
723 - }
376 + unset( $position );
377 + unset( $str );
724 378 }
725 379 return $content;
726 380 }
727 381 }
728 382
729 -if ( ! function_exists( 'pdfprnt_excerpt' ) ) {
730 - /**
731 - * Remove Print word from excerpt
732 - *
733 - * @param string $content Post excerpt.
734 - * @return string $content
735 - */
736 - function pdfprnt_excerpt( $content ) {
737 - global $pdfprnt_options;
738 - $temp = array();
739 - $temp[1] = $content;
740 - $title = isset( $pdfprnt_options['button_title'] ) ? $pdfprnt_options['button_title'] : array( 'pdf' => '', 'print' => '' );
741 - if ( ! empty( $title['pdf'] ) ) {
742 - $temp = explode( $title['pdf'], $content );
383 +/* Output buttons for search or archive pages */
384 +if( ! function_exists( 'pdfprnt_show_buttons_search_archive' ) ) {
385 + function pdfprnt_show_buttons_search_archive() {
386 + global $pdfprnt_options_array, $pdfprnt_output_count_buttons, $wp, $posts;
387 + if ( 0 < $pdfprnt_output_count_buttons )
388 + return;
389 + if ( 1 !== $pdfprnt_options_array['show_btn_pdf_search_archive'] && 1 !== $pdfprnt_options_array['show_btn_print_search_archive'] )
390 + return;
391 + if ( ( ! is_search() && ! is_archive() ) || ( is_category() || ! have_posts() ) )
392 + return;
393 + /* Check for existence the type of posts. */
394 + $is_return = true;
395 + foreach ( $posts as $post ) {
396 + if ( in_array( get_post_type( $post ), $pdfprnt_options_array['use_types_posts'] ) ) {
397 + $is_return = false;
398 + break;
399 + }
743 400 }
744 - if ( ! empty( $title['print'] ) ) {
745 - $temp = explode( $title['print'], $content );
401 + if ( $is_return )
402 + return;
403 + $pdfprnt_output_count_buttons++;
404 + if ( empty( $wp->request ) )
405 + $current_url = add_query_arg( $wp->query_string, '', home_url() );
406 + else
407 + $current_url = home_url( $wp->request );
408 + $str = '<div class="' . $pdfprnt_options_array['position_search_archive'] . '">';
409 + if ( 1 == $pdfprnt_options_array['show_btn_pdf_search_archive'] ) {
410 + $permalink = add_query_arg( 'print' , 'pdf-page' , $current_url );
411 + $str .= '<a href="' . $permalink . '" target="_blank"><img src="' . plugins_url( 'images/pdf.png', __FILE__ ) . '" alt="image_pdf" title="Print PDF" /></a>';
746 412 }
747 - if ( isset( $temp[1] ) ) {
748 - return $temp[1];
749 - } else {
750 - return $content;
413 + if ( 1 == $pdfprnt_options_array['show_btn_print_search_archive'] ) {
414 + $permalink = add_query_arg( 'print' , 'print-page' , $current_url );
415 + $str .= '<a href="' . $permalink . '" target="_blank"><img src="' . plugins_url( 'images/print.gif', __FILE__ ) . '" alt="image_print" title="Print Content" /></a>';
751 416 }
417 + $str .= '</div>';
418 + unset( $current_url );
419 + unset( $permalink );
420 + echo $str;
752 421 }
753 422 }
754 -
755 -if ( ! function_exists( 'pdfprnt_show_buttons_search_archive' ) ) {
756 - /**
757 - * Output buttons for search or archive pages
758 - *
759 - * @param string $content Post content.
760 - */
761 - function pdfprnt_show_buttons_search_archive( $content ) {
762 - global $wp_query;
763 -
764 - /* make sure that we display pdf/print buttons only with main loop */
765 - if ( is_main_query() && $content === $wp_query ) {
766 - global $pdfprnt_options, $wp, $posts, $pdfprnt_show_archive_start, $pdfprnt_show_archive_end;
767 -
768 - $is_search = ( is_search() );
769 - $is_archive = ( is_archive() || is_category() || is_tax() || is_tag() || is_author() );
770 - $is_blog = ( is_home() );
771 -
772 - if ( $is_search ) {
773 - $show_button_pdf = ( in_array( 'pdfprnt_search', $pdfprnt_options['button_post_types']['pdf'], true ) );
774 - $show_button_print = ( in_array( 'pdfprnt_search', $pdfprnt_options['button_post_types']['print'], true ) );
775 - } elseif ( $is_archive ) {
776 - $show_button_pdf = ( in_array( 'pdfprnt_archives', $pdfprnt_options['button_post_types']['pdf'], true ) );
777 - $show_button_print = ( in_array( 'pdfprnt_archives', $pdfprnt_options['button_post_types']['print'], true ) );
778 - } elseif ( $is_blog ) {
779 - $show_button_pdf = ( in_array( 'pdfprnt_blog', $pdfprnt_options['button_post_types']['pdf'], true ) );
780 - $show_button_print = ( in_array( 'pdfprnt_blog', $pdfprnt_options['button_post_types']['print'], true ) );
781 - } else {
782 - $show_button_pdf = false;
783 - $show_button_print = false;
784 - }
785 -
786 - $loop_position = current_filter();
787 - if ( ! ( $show_button_pdf || $show_button_print ) ) {
788 - return;
789 - }
790 -
791 - if ( ( 'loop_start' === $loop_position && intval( $pdfprnt_show_archive_start ) === 1 ) || ( 'loop_end' === $loop_position && intval( $pdfprnt_show_archive_end ) === 1 ) ) {
792 - return;
793 - }
794 -
795 - if ( $show_button_pdf || $show_button_print ) {
796 - global $pdfprnt_is_search_archive;
797 - $current_url = isset( $_SERVER['HTTP_HOST'] ) && isset( $_SERVER['REQUEST_URI'] ) ? set_url_scheme( ( is_ssl() ? 'https://' : 'http://' ) . sanitize_text_field( wp_unslash( $_SERVER['HTTP_HOST'] ) ) . sanitize_text_field( wp_unslash( urldecode( $_SERVER['REQUEST_URI'] ) ) ) ) : '';
798 - $pdfprnt_is_search_archive = true;
799 - $str = '<div class="pdfprnt-buttons pdfprnt-buttons-' . ( ( $is_search ) ? 'search' : 'archive' ) . ' pdfprnt-' . $pdfprnt_options['buttons_position'] . '">';
800 - if ( $show_button_pdf ) {
801 - $str .= pdfprnt_get_button( 'pdf', $current_url, 'pdf-search' );
802 - add_action( 'wp_footer', 'pdfprnt_add_script' );
803 - }
804 -
805 - if ( $show_button_print ) {
806 - $str .= pdfprnt_get_button( 'print', $current_url, 'print-search' );
807 - }
808 - $str .= '</div>';
809 - echo wp_kses_post( $str );
810 - if ( 'loop_start' === $loop_position ) {
811 - $pdfprnt_show_archive_start++;
812 - } elseif ( 'loop_end' === $loop_position ) {
813 - $pdfprnt_show_archive_end++;
814 - }
815 - }
816 - }
423 +if( ! function_exists( 'pdfprnt_auto_show_buttons_search_archive' ) ) {
424 + function pdfprnt_auto_show_buttons_search_archive() {
425 + if ( is_archive() || is_search() )
426 + add_action( 'loop_start', 'pdfprnt_show_buttons_search_archive' );
817 427 }
428 + add_action( 'wp_head', 'pdfprnt_auto_show_buttons_search_archive' );
818 429 }
819 430
820 -if ( ! function_exists( 'pdfprnt_return_buttons_search_archive' ) ) {
821 - /**
822 - * Return buttons for search or archive pages
823 - */
824 - function pdfprnt_return_buttons_search_archive() {
825 - global $wp_query;
826 -
827 - global $pdfprnt_options, $wp, $posts, $pdfprnt_show_archive_start, $pdfprnt_show_archive_end;
828 -
829 - $is_search = ( is_search() );
830 - $is_archive = ( is_archive() || is_category() || is_tax() || is_tag() || is_author() );
831 - $is_blog = ( is_home() );
832 -
833 - if ( $is_search ) {
834 - $show_button_pdf = ( in_array( 'pdfprnt_search', $pdfprnt_options['button_post_types']['pdf'], true ) );
835 - $show_button_print = ( in_array( 'pdfprnt_search', $pdfprnt_options['button_post_types']['print'], true ) );
836 - } elseif ( $is_archive ) {
837 - $show_button_pdf = ( in_array( 'pdfprnt_archives', $pdfprnt_options['button_post_types']['pdf'], true ) );
838 - $show_button_print = ( in_array( 'pdfprnt_archives', $pdfprnt_options['button_post_types']['print'], true ) );
839 - } elseif ( $is_blog ) {
840 - $show_button_pdf = ( in_array( 'pdfprnt_blog', $pdfprnt_options['button_post_types']['pdf'], true ) );
841 - $show_button_print = ( in_array( 'pdfprnt_blog', $pdfprnt_options['button_post_types']['print'], true ) );
842 - } else {
843 - $show_button_pdf = false;
844 - $show_button_print = false;
845 - }
846 -
847 - $loop_position = current_filter();
848 - if ( ! ( $show_button_pdf || $show_button_print ) ) {
431 +/* Output buttons of page for BWS Portfolio plugin */
432 +if( ! function_exists( 'pdfprnt_show_buttons_for_bws_portfolio' ) ) {
433 + function pdfprnt_show_buttons_for_bws_portfolio() {
434 + global $pdfprnt_options_array, $pdfprnt_output_count_buttons, $wp;
435 + if ( 0 < $pdfprnt_output_count_buttons )
849 436 return;
850 - }
851 -
852 - if ( ( 'loop_start' === $loop_position && intval( $pdfprnt_show_archive_start ) === 1 ) || ( 'loop_end' === $loop_position && intval( $pdfprnt_show_archive_end ) === 1 ) ) {
437 + if ( 1 !== $pdfprnt_options_array['show_btn_pdf_custom'] && 1 !== $pdfprnt_options_array['show_btn_print_custom'] )
853 438 return;
439 + if ( ! in_array( 'portfolio', $pdfprnt_options_array['use_types_posts'] ) )
440 + return;
441 + $pdfprnt_output_count_buttons++;
442 + if ( empty( $wp->request ) )
443 + $current_url = add_query_arg( $wp->query_string, '', home_url() );
444 + else
445 + $current_url = home_url( $wp->request );
446 + $str = '<div class="' . $pdfprnt_options_array['position_custom'] . '">';
447 + if ( 1 == $pdfprnt_options_array['show_btn_pdf_custom'] ) {
448 + $permalink = add_query_arg( 'print' , 'pdf-portfolio-page' , $current_url );
449 + $str .= '<a href="' . $permalink . '" target="_blank"><img src="' . plugins_url( 'images/pdf.png', __FILE__ ) . '" alt="image_pdf" title="Print PDF" /></a>';
854 450 }
855 -
856 - if ( $show_button_pdf || $show_button_print ) {
857 - global $pdfprnt_is_search_archive;
858 - $current_url = isset( $_SERVER['HTTP_HOST'] ) && isset( $_SERVER['REQUEST_URI'] ) ? set_url_scheme( ( is_ssl() ? 'https://' : 'http://' ) . sanitize_text_field( wp_unslash( $_SERVER['HTTP_HOST'] ) ) . sanitize_text_field( wp_unslash( urldecode( $_SERVER['REQUEST_URI'] ) ) ) ) : '';
859 - $pdfprnt_is_search_archive = true;
860 - $str = '<div class="pdfprnt-buttons pdfprnt-buttons-' . ( ( $is_search ) ? 'search' : 'archive' ) . ' pdfprnt-' . $pdfprnt_options['buttons_position'] . '">';
861 - if ( $show_button_pdf ) {
862 - $str .= pdfprnt_get_button( 'pdf', $current_url );
863 - add_action( 'wp_footer', 'pdfprnt_add_script' );
864 - }
865 -
866 - if ( $show_button_print ) {
867 - $str .= pdfprnt_get_button( 'print', $current_url, 'print-search' );
868 - }
869 - $str .= '</div>';
870 - if ( 'loop_start' === $loop_position ) {
871 - $pdfprnt_show_archive_start++;
872 - } elseif ( 'loop_end' === $loop_position ) {
873 - $pdfprnt_show_archive_end++;
874 - }
875 - return $str;
451 + if ( 1 == $pdfprnt_options_array['show_btn_print_custom'] ) {
452 + $permalink = add_query_arg( 'print' , 'print-portfolio-page' , $current_url );
453 + $str .= '<a href="' . $permalink . '" target="_blank"><img src="' . plugins_url( 'images/print.gif', __FILE__ ) . '" alt="image_print" title="Print Content" /></a>';
876 454 }
455 + $str .= '</div>';
456 + unset( $current_url );
457 + unset( $permalink );
458 + return $str;
877 459 }
878 460 }
879 461
880 -if ( ! function_exists( 'pdfprnt_auto_show_buttons_search_archive' ) ) {
881 - /**
882 - * Add buttons before or after the loop
883 - */
884 - function pdfprnt_auto_show_buttons_search_archive() {
885 - global $pdfprnt_options, $pdfprnt_is_old_php, $pdfprnt_plugin_info;
886 - $check_page = false;
887 - if ( $pdfprnt_is_old_php || apply_filters( 'pdfprnt_prevent_display_buttons', $check_page ) ) {
462 +/* Output buttons of post for BWS Portfolio plugin */
463 +if( ! function_exists( 'pdfprnt_show_buttons_for_bws_portfolio_post' ) ) {
464 + function pdfprnt_show_buttons_for_bws_portfolio_post() {
465 + global $pdfprnt_options_array, $post;
466 + if ( 1 !== $pdfprnt_options_array['show_btn_pdf_custom'] && 1 !== $pdfprnt_options_array['show_btn_print_custom'] )
888 467 return;
468 + if ( ! in_array( get_post_type( $post ), $pdfprnt_options_array['use_types_posts'] ) )
469 + return;
470 + $current_url = get_permalink();
471 + $str = '<div class="' . $pdfprnt_options_array['position_custom'] . '">';
472 + if ( 1 == $pdfprnt_options_array['show_btn_pdf_custom'] ) {
473 + $permalink = add_query_arg( 'print' , 'pdf-portfolio' , $current_url );
474 + $str .= '<a href="' . $permalink . '" target="_blank"><img src="' . plugins_url( 'images/pdf.png', __FILE__ ) . '" alt="image_pdf" title="Print PDF" /></a>';
889 475 }
890 -
891 - $display_in_search = ( is_search() && ( in_array( 'pdfprnt_search', $pdfprnt_options['button_post_types']['pdf'], true ) || in_array( 'pdfprnt_search', $pdfprnt_options['button_post_types']['print'], true ) ) );
892 - $display_in_archive = ( ( is_archive() || is_category() || is_tax() || is_tag() || is_author() ) && ( in_array( 'pdfprnt_archives', $pdfprnt_options['button_post_types']['pdf'], true ) || in_array( 'pdfprnt_archives', $pdfprnt_options['button_post_types']['print'], true ) ) );
893 - $display_in_blog = ( ( is_home() ) && ( in_array( 'pdfprnt_blog', $pdfprnt_options['button_post_types']['pdf'], true ) || in_array( 'pdfprnt_blog', $pdfprnt_options['button_post_types']['print'], true ) ) );
894 -
895 - if ( ( $display_in_search || $display_in_archive || $display_in_blog ) && pdfprnt_is_user_role_enabled() ) {
896 - global $pdfprnt_show_archive_start, $pdfprnt_show_archive_end;
897 - $pdfprnt_show_archive_start = 0;
898 - $pdfprnt_show_archive_end = 0;
899 -
900 - $css = wp_remote_get( get_bloginfo( 'stylesheet_url' ) );
901 -
902 - if ( is_array( $css ) && ! empty( $css['body'] ) && ( ! empty( mb_stristr( $css['body'], 'Twenty Twenty-Two', true ) ) || ! empty( mb_stristr( $css['body'], 'Twenty Twenty-Three', true ) ) ) ) {
903 - $out1 = pdfprnt_return_buttons_search_archive();
904 - if ( ! empty( $out1 ) ) {
905 - wp_enqueue_script( 'pdfprnt_custom_script', plugins_url( 'js/custom_script.js', __FILE__ ), array( 'jquery' ), $pdfprnt_plugin_info['Version'], true );
906 - }
907 - }
908 - if ( in_array( $pdfprnt_options['buttons_position'], array( 'top-left', 'top-right' ), true ) ) {
909 - add_action( 'loop_start', 'pdfprnt_show_buttons_search_archive' );
910 - if ( isset( $out1 ) && ! empty( $out1 ) ) {
911 - wp_localize_script(
912 - 'pdfprnt_custom_script',
913 - 'pdfprnt_display_buttons',
914 - array(
915 - 'top' => $out1,
916 - )
917 - );
918 - }
919 - } elseif ( in_array( $pdfprnt_options['buttons_position'], array( 'bottom-left', 'bottom-right' ), true ) ) {
920 - add_action( 'loop_end', 'pdfprnt_show_buttons_search_archive' );
921 - if ( isset( $out1 ) && ! empty( $out1 ) ) {
922 - wp_localize_script(
923 - 'pdfprnt_custom_script',
924 - 'pdfprnt_display_buttons',
925 - array(
926 - 'bottom' => $out1,
927 - )
928 - );
929 - }
930 - } else {
931 - if ( isset( $out1 ) && ! empty( $out1 ) ) {
932 - wp_localize_script(
933 - 'pdfprnt_custom_script',
934 - 'pdfprnt_display_buttons',
935 - array(
936 - 'top' => $out1,
937 - 'bottom' => $out1,
938 - )
939 - );
940 - }
941 - add_action( 'loop_start', 'pdfprnt_show_buttons_search_archive' );
942 - add_action( 'loop_end', 'pdfprnt_show_buttons_search_archive' );
943 - }
476 + if ( 1 == $pdfprnt_options_array['show_btn_print_custom'] ) {
477 + $permalink = add_query_arg( 'print' , 'print-portfolio' , $current_url );
478 + $str .= '<a href="' . $permalink . '" target="_blank"><img src="' . plugins_url( 'images/print.gif', __FILE__ ) . '" alt="image_print" title="Print Content" /></a>';
944 479 }
480 + $str .= '</div>';
481 + unset( $current_url );
482 + unset( $permalink );
483 + return $str;
945 484 }
946 485 }
947 486
948 -if ( ! function_exists( 'pdfprnt_display_plugin_buttons' ) ) {
949 - /**
950 - * Display plugin buttons via action call
951 - *
952 - * @param string $where where to display.
953 - * @param mixed $user_query WP_Query parameters.
954 - */
955 - function pdfprnt_display_plugin_buttons( $where = 'top', $user_query = '' ) {
956 - global $pdfprnt_options, $pdfprnt_is_old_php;
957 -
958 - if ( $pdfprnt_is_old_php ) {
487 +/* Output buttons of page for custom post type */
488 +if( ! function_exists( 'pdfprnt_show_buttons_for_custom_post_type' ) ) {
489 + function pdfprnt_show_buttons_for_custom_post_type( $custom_query ) {
490 + global $pdfprnt_options_array, $pdfprnt_output_count_buttons;
491 + if ( 0 < $pdfprnt_output_count_buttons )
959 492 return;
960 - }
961 -
962 - if ( preg_match( '|' . $where . '|', $pdfprnt_options['buttons_position'] ) || empty( $where ) ) {
963 - echo wp_kses_post( pdfprnt_show_buttons_for_custom_post_type( $user_query ) );
964 - }
965 - }
966 -}
967 -
968 -if ( ! function_exists( 'pdfprnt_show_buttons_for_custom_post_type' ) ) {
969 - /**
970 - * Output buttons of page for custom post type
971 - *
972 - * @param string $user_query (Optional) User query.
973 - * @return string $str
974 - */
975 - function pdfprnt_show_buttons_for_custom_post_type( $user_query = '' ) {
976 - global $pdfprnt_options, $post, $posts;
977 -
978 - $show_button_pdf = in_array( $post->post_type, $pdfprnt_options['button_post_types']['pdf'], true );
979 - $show_button_print = in_array( $post->post_type, $pdfprnt_options['button_post_types']['print'], true );
980 -
981 - $show_button_pdf = apply_filters( 'pdfprnt_show_buttons_for_custom_post_type', 'pdf', $show_button_pdf );
982 - $show_button_print = apply_filters( 'pdfprnt_show_buttons_for_custom_post_type', 'print', $show_button_print );
983 -
984 - if (
985 - /* not display anything if displaying buttons for post and pages is disabled */
986 - ( ! ( $show_button_pdf || $show_button_print ) ) ||
987 - /* not display anything if we have wrong $user_query */
988 - ( ! ( is_array( $user_query ) || is_string( $user_query ) ) )
989 - ) {
493 + if ( 1 !== $pdfprnt_options_array['show_btn_pdf_custom'] && 1 !== $pdfprnt_options_array['show_btn_print_custom'] )
990 494 return;
991 - }
992 - $current_url = isset( $_SERVER['HTTP_HOST'] ) && isset( $_SERVER['REQUEST_URI'] ) ? set_url_scheme( ( is_ssl() ? 'https://' : 'http://' ) . sanitize_text_field( wp_unslash( $_SERVER['HTTP_HOST'] ) ) . sanitize_text_field( wp_unslash( urldecode( $_SERVER['REQUEST_URI'] ) ) ) ) : '';
993 - $current_url = esc_url( $current_url );
994 - $is_return = true;
995 -
996 - if ( empty( $user_query ) ) { /* set necessary values of parameters for pdf/print buttons */
997 - $nothing_else = false;
998 - if ( is_search() || is_archive() || is_category() || is_tax() || is_tag() || is_author() || ! pdfprnt_is_user_role_enabled() ) { /* search, cattegories, archives */
999 - foreach ( $posts as $value ) {
1000 - if ( in_array( $value->post_type, $pdfprnt_options['button_post_types']['pdf'], true ) || in_array( 'page', $pdfprnt_options['button_post_types']['print'], true ) ) {
1001 - $is_return = false;
1002 - break;
1003 - }
1004 - }
1005 - if ( $is_return ) {
1006 - return;
1007 - }
1008 - $pdf_query_parameter = 'pdf-search';
1009 - $print_query_parameter = 'print-search';
1010 - } elseif ( is_page() ) { /* pages */
1011 - if ( in_array( 'page', $pdfprnt_options['button_post_types']['pdf'], true ) || in_array( 'page', $pdfprnt_options['button_post_types']['print'], true ) ) {
1012 - $nothing_else = true;
1013 - } else {
1014 - return;
1015 - }
1016 - } elseif ( is_single() ) { /* posts */
1017 - $post_type = get_post_type( $post->ID );
1018 - if ( in_array( $post_type, $pdfprnt_options['button_post_types']['pdf'], true ) || in_array( $post_type, $pdfprnt_options['button_post_types']['print'], true ) ) {
1019 - $nothing_else = true;
1020 - } else {
1021 - return;
1022 - }
1023 - } else {
1024 - $nothing_else = true;
495 + if ( ! is_array( $custom_query ) && ! is_string( $custom_query ) )
496 + return;
497 + $custom_query = new WP_Query( $custom_query );
498 + /* Check for existence the type of posts. */
499 + $is_return = true;
500 + foreach ( $custom_query->posts as $post ) {
501 + if ( in_array( get_post_type( $post ), $pdfprnt_options_array['use_types_posts'] ) ) {
502 + $is_return = false;
503 + break;
1025 504 }
1026 - if ( $nothing_else ) {
1027 - $pdf_query_parameter = 'pdf';
1028 - $print_query_parameter = 'print';
1029 - }
1030 - } else {
1031 - $custom_query = new WP_Query( $user_query );
1032 - $current_url = add_query_arg( $custom_query->query, '', $current_url );
1033 - /* Check for existence the type of posts. */
1034 - if ( ! empty( $custom_query->posts ) ) {
1035 - foreach ( $custom_query->posts as $post ) {
1036 - if ( in_array( get_post_type( $post ), $pdfprnt_options['button_post_types']['pdf'], true ) || in_array( get_post_type( $post ), $pdfprnt_options['button_post_types']['print'], true ) ) {
1037 - $is_return = false;
1038 - break;
1039 - }
1040 - }
1041 - }
1042 - if ( $is_return ) {
1043 - return;
1044 - }
1045 - global $pdfprnt_is_custom_post_type;
1046 - $pdfprnt_is_custom_post_type = true;
1047 - $pdf_query_parameter = 'pdf-custom';
1048 - $print_query_parameter = 'print-custom';
1049 505 }
1050 -
1051 - $str = '<div class="pdfprnt-buttons pdfprnt-buttons-custom pdfprnt-buttons-' . $post->post_type . ' pdfprnt-' . $pdfprnt_options['buttons_position'] . '">';
1052 - $current_url = apply_filters( 'pdfprnt_current_url_filter', $current_url );
1053 - if ( $show_button_pdf ) {
1054 - $str .= pdfprnt_get_button( 'pdf', $current_url, $pdf_query_parameter );
1055 - add_action( 'wp_footer', 'pdfprnt_add_script' );
506 + if ( $is_return )
507 + return;
508 + $pdfprnt_output_count_buttons++;
509 + $current_url = add_query_arg( $custom_query->query, '', home_url() );
510 + $str = '<div class="' . $pdfprnt_options_array['position_custom'] . '">';
511 + if ( 1 == $pdfprnt_options_array['show_btn_pdf_custom'] ) {
512 + $permalink = add_query_arg( 'print' , 'pdf-custom-page' , $current_url );
513 + $str .= '<a href="' . $permalink . '" target="_blank"><img src="' . plugins_url( 'images/pdf.png', __FILE__ ) . '" alt="image_pdf" title="Print PDF" /></a>';
1056 514 }
1057 - if ( $show_button_print ) {
1058 - $str .= pdfprnt_get_button( 'print', $current_url, $print_query_parameter );
515 + if ( 1 == $pdfprnt_options_array['show_btn_print_custom'] ) {
516 + $permalink = add_query_arg( 'print' , 'print-custom-page' , $current_url );
517 + $str .= '<a href="' . $permalink . '" target="_blank"><img src="' . plugins_url( 'images/print.gif', __FILE__ ) . '" alt="image_print" title="Print Content" /></a>';
1059 518 }
1060 - if ( 1 === $pdfprnt_options['count_generation'] && ( $show_button_pdf || $show_button_print ) ) {
1061 - $count = get_post_meta( get_the_ID(), 'pdfprnt_count_generation', true );
1062 - $str .= ' <span class="pdfprnt-count-generation">' . $count . '</span>';
1063 - }
1064 519 $str .= '</div>';
520 + unset( $current_url );
521 + unset( $permalink );
522 + unset( $is_return );
523 + unset( $custom_query );
1065 524 return $str;
1066 525 }
1067 526 }
1068 527
528 +/* Add links */
1069 529 if ( ! function_exists( 'pdfprnt_action_links' ) ) {
1070 - /**
1071 - * Add action links
1072 - *
1073 - * @param array $links Links array.
1074 - * @param string $file Plugin file.
1075 - * @return array $links
1076 - */
1077 530 function pdfprnt_action_links( $links, $file ) {
1078 - if ( ! is_network_admin() && is_plugin_inactive( 'pdf-print-pro/pdf-print-pro.php' ) ) {
1079 - $base = plugin_basename( __FILE__ );
1080 - if ( $file === $base ) {
1081 - $settings_link = '<a href="admin.php?page=pdf-print.php">' . esc_html__( 'Settings', 'pdf-print' ) . '</a>';
1082 - array_unshift( $links, $settings_link );
1083 - }
531 + $base = plugin_basename( __FILE__ );
532 + if ( $file == $base ) {
533 + $settings_link = '<a href="admin.php?page=pdf-print.php">' . __( 'Settings', 'pdf-print' ) . '</a>';
534 + array_unshift( $links, $settings_link );
1084 535 }
1085 536 return $links;
1086 537 }
1087 538 }
1088 539
540 +/* Add links */
1089 541 if ( ! function_exists( 'pdfprnt_links' ) ) {
1090 - /**
1091 - * Add Settings, FAQ and Support links
1092 - *
1093 - * @param array $links Links array.
1094 - * @param string $file Plugin file.
1095 - * @return array $links
1096 - */
1097 542 function pdfprnt_links( $links, $file ) {
1098 543 $base = plugin_basename( __FILE__ );
1099 - if ( $file === $base ) {
1100 - if ( ! is_network_admin() && is_plugin_inactive( 'pdf-print-pro/pdf-print-pro.php' ) ) {
1101 - $links[] = '<a href="admin.php?page=pdf-print.php">' . esc_html__( 'Settings', 'pdf-print' ) . '</a>';
1102 - }
1103 - $links[] = '<a href="https://support.bestwebsoft.com/hc/en-us/sections/200538669" target="_blank">' . esc_html__( 'FAQ', 'pdf-print' ) . '</a>';
1104 - $links[] = '<a href="https://support.bestwebsoft.com">' . esc_html__( 'Support', 'pdf-print' ) . '</a>';
544 + if ( $file == $base ) {
545 + $links[] = '<a href="admin.php?page=pdf-print.php">' . __( 'Settings', 'pdf-print' ) . '</a>';
546 + $links[] = '<a href="http://wordpress.org/plugins/pdf-print/faq/" target="_blank">' . __( 'FAQ', 'pdf-print' ) . '</a>';
547 + $links[] = '<a href="http://support.bestwebsoft.com">' . __( 'Support', 'pdf-print' ) . '</a>';
1105 548 }
1106 549 return $links;
1107 550 }
1108 551 }
1109 552
1110 -if ( ! function_exists( 'pdfprnt_admin_head' ) ) {
1111 - /**
1112 - * Add stylesheets
1113 - */
1114 - function pdfprnt_admin_head() {
1115 - global $pdfprnt_plugin_info, $pdfprnt_options, $post;
1116 -
1117 - if ( is_admin() ) {
1118 - wp_enqueue_style( 'pdfprnt_general', plugins_url( 'css/style-general.css', __FILE__ ), false, $pdfprnt_plugin_info['Version'] );
1119 -
1120 - if ( isset( $_GET['page'] ) && 'pdf-print.php' === $_GET['page'] ) {
1121 - wp_enqueue_style( 'pdfprnt_stylesheet', plugins_url( 'css/style.css', __FILE__ ), false, $pdfprnt_plugin_info['Version'] );
1122 - bws_enqueue_settings_scripts();
1123 - bws_plugins_include_codemirror();
1124 - wp_enqueue_script( 'pdfprnt_script', plugins_url( 'js/script.js', __FILE__ ), array( 'jquery', 'jquery-ui-accordion', 'jquery-ui-slider' ), $pdfprnt_plugin_info['Version'], false );
1125 - wp_localize_script(
1126 - 'pdfprnt_script',
1127 - 'pdfprnt_var',
1128 - array(
1129 - 'loading_fonts' => esc_html__( 'Loading of fonts. It might take a several minutes.', 'pdf-print' ),
1130 - 'loading_mpdf' => esc_html__( 'Loading the mPDF library. It will take few minutes.', 'pdf-print' ),
1131 - 'ajax_nonce' => wp_create_nonce( 'pdfprnt_ajax_nonce' ),
1132 - 'need_reload' => '&nbsp;' . sprintf(
1133 - esc_html__( 'It is necessary to reload fonts. For more info, please see %s.', 'pdf-print' ),
1134 - '<a href="https://support.bestwebsoft.com/hc/en-us/articles/206693223" target="_blank">' . esc_html__( 'FAQ', 'pdf-print' ) . '</a>'
1135 - ),
1136 - )
1137 - );
1138 - }
1139 - if ( isset( $_GET['page'] ) && 'pdf-print-templates.php' === $_GET['page'] ) {
1140 - wp_enqueue_style( 'pdfprnt_stylesheet', plugins_url( 'css/templates.css', __FILE__ ), false, $pdfprnt_plugin_info['Version'] );
1141 - }
1142 - } elseif ( isset( $post->post_title ) ) {
1143 - wp_enqueue_style( 'pdfprnt_frontend', plugins_url( 'css/frontend.css', __FILE__ ), false, $pdfprnt_plugin_info['Version'] );
1144 - }
553 +/* Init plugin */
554 +if ( ! function_exists ( 'pdfprnt_plugin_init' ) ) {
555 + function pdfprnt_plugin_init() {
556 + load_plugin_textdomain( 'pdf-print', false, dirname( plugin_basename( __FILE__ ) ) . '/languages/' );
1145 557 }
1146 558 }
1147 559
1148 -if ( ! function_exists( 'pdfprnt_add_script' ) ) {
1149 - /**
1150 - * Sending data for front js
1151 - */
1152 - function pdfprnt_add_script() {
1153 - global $pdfprnt_plugin_info , $post, $pdfprnt_options;
1154 - if ( 1 === intval( $pdfprnt_options['image_to_pdf'] ) ) {
1155 - $file_name = $post->post_title;
1156 - wp_enqueue_script( 'html2canvas.js', plugins_url( 'js/html2canvas.js', __FILE__ ), array(), $pdfprnt_plugin_info['Version'], false );
1157 - wp_enqueue_script( 'jspdf.js', plugins_url( 'js/jspdf.js', __FILE__ ), array(), $pdfprnt_plugin_info['Version'], false );
1158 - wp_enqueue_script( 'pdfprnt_front_script', plugins_url( 'js/front-script.js', __FILE__ ), array( 'jquery', 'html2canvas.js', 'jspdf.js' ), $pdfprnt_plugin_info['Version'] . '.7', false );
1159 - wp_localize_script(
1160 - 'pdfprnt_front_script',
1161 - 'pdfprnt_file_settings',
1162 - array(
1163 - 'margin_left' => $pdfprnt_options['pdf_margins']['left'],
1164 - 'margin_right' => $pdfprnt_options['pdf_margins']['right'],
1165 - 'margin_top' => $pdfprnt_options['pdf_margins']['top'],
1166 - 'margin_bottom' => $pdfprnt_options['pdf_margins']['bottom'],
1167 - 'page_size' => $pdfprnt_options['pdf_page_size'],
1168 - 'file_action' => $pdfprnt_options['file_action'],
1169 - 'file_name' => $file_name,
1170 - 'hide_classes' => implode( ', ', $pdfprnt_options['hide_classes'] ),
1171 - 'ajax_nonce' => wp_create_nonce( 'pdfprnt_ajax_nonce' ),
1172 - 'ajaxurl' => admin_url( 'admin-ajax.php' ),
1173 - 'count_generation' => $pdfprnt_options['count_generation']
1174 - )
1175 - );
1176 - }
560 +/* Add stylesheets */
561 +if ( ! function_exists ( 'pdfprnt_admin_head' ) ) {
562 + function pdfprnt_admin_head() {
563 + global $wp_version;
564 + if ( $wp_version < 3.8 )
565 + wp_enqueue_style( 'pdfprnt-stylesheet', plugins_url( 'css/style_wp_before_3.8.css', __FILE__ ) );
566 + else
567 + wp_enqueue_style( 'pdfprnt-stylesheet', plugins_url( 'css/style.css', __FILE__ ) );
1177 568 }
1178 569 }
1179 570
1180 -if ( ! function_exists( 'pdfprnt_preg_replace' ) ) {
1181 - /**
1182 - * Remove inline 'font-family' and 'font' styles from content
1183 - *
1184 - * @param array $patterns Patterns array.
1185 - * @param string $content Post content.
1186 - * @return string $content
1187 - */
1188 - function pdfprnt_preg_replace( $patterns, $content ) {
1189 - foreach ( $patterns as $pattern ) {
1190 - $content = preg_replace( '/' . $pattern . '(.*?);/', '', $content );
1191 - preg_match_all( "~style=(\"\'?)~", $content, $quotes );/* get array with quotes */
1192 - if ( isset( $quotes[1] ) && ! empty( $quotes[1] ) ) {
1193 - foreach ( $quotes[1] as $quote ) {
1194 - preg_match_all( '~style=' . $quote . '(.*?)' . $quote . '~', $content, $styles );
1195 - if ( ! empty( $styles[1] ) ) {
1196 - foreach ( $styles[1] as $style ) {
1197 - if ( preg_match( '/' . $pattern . '/', $style ) ) {
1198 - $content = preg_replace( '/' . $style . '/', '', $content );
1199 - }
571 +/* Generate templates for pdf file or print */
572 +if ( ! function_exists( 'pdfprnt_generate_template' ) ) {
573 + function pdfprnt_generate_template( $content, $template = false, $isprint = false ) {
574 + global $pdfprnt_options_array;
575 + $tmpl = isset( $_GET['tmpl'] ) ? $_GET['tmpl'] : "";
576 + ob_start(); /* Starting output buffering */
577 + ?>
578 + <html>
579 + <head>
580 + <?php if ( 1 == $pdfprnt_options_array['use_theme_stylesheet'] ) : ?>
581 + <link type="text/css" rel="stylesheet" href="<?php echo get_bloginfo( 'stylesheet_url' ); ?>" media="all" />
582 + <?php else: ?>
583 + <link type="text/css" rel="stylesheet" href="<?php echo plugins_url( 'css/default.css', __FILE__ ); ?>" media="all" />
584 + <?php endif;
585 + if ( ! $template )
586 + $template = $pdfprnt_options_array['tmpl_post'];
587 + switch ( $template ) { /* Using template choosed on settings page */
588 + case 1: /* Allign left template */
589 + ?>
590 + <style type="text/css">
591 + h1, h2, h3, h4, h5, h6 {
592 + text-align: left;
593 + }
594 + img {
595 + float: right;
596 + }
597 + </style>
598 + <?php
599 + break;
600 + case 2: /* Allign center template */
601 + ?>
602 + <style type="text/css">
603 + h1, h2, h3, h4, h5, h6 {
604 + text-align: center;
605 + }
606 + img {
607 + float: left;
608 + }
609 + </style>
610 + <?php
611 + break;
612 + case 3: /* Allign right template */
613 + ?>
614 + <style type="text/css">
615 + h1, h2, h3, h4, h5, h6 {
616 + text-align: right;
617 + }
618 + img {
619 + float: left;
620 + }
621 + </style>
622 + <?php
623 + break;
1200 624 }
1201 - }
1202 - }
1203 - }
1204 - }
1205 - return $content;
625 + switch ( $tmpl ) { /* If got something by GET (from admin bar) */
626 + case 1: /* Allign left template */
627 + ?>
628 + <style type="text/css">
629 + h1, h2, h3, h4, h5, h6 {
630 + text-align: left;
631 + }
632 + img {
633 + float: right;
634 + }
635 + </style>
636 + <?php
637 + break;
638 + case 2: /* Allign center template */
639 + ?>
640 + <style type="text/css">
641 + h1, h2, h3, h4, h5, h6 {
642 + text-align: center;
643 + }
644 + img {
645 + float: left;
646 + }
647 + </style>
648 + <?php
649 + break;
650 + case 3: /* Allign right template */
651 + ?>
652 + <style type="text/css">
653 + h1, h2, h3, h4, h5, h6 {
654 + text-align: right;
655 + }
656 + img {
657 + float: left;
658 + }
659 + </style>
660 + <?php break;
661 + }
662 + if ( $isprint ) : ?>
663 + <script type="text/javascript" src="<?php echo plugins_url( 'js/pdfprnt.print.js', __FILE__ ); ?>"></script>
664 + <?php endif; ?>
665 + </head>
666 + <body>
667 + <?php echo $content; ?>
668 + </body>
669 + </html>
670 + <?php
671 + $html = ob_get_contents(); /* Getting output buffering */
672 + ob_end_clean(); /* Closing output buffering */
673 + return $html; /* Now we done with template */
1206 674 }
1207 675 }
1208 676
1209 -if ( ! function_exists( 'pdfprnt_generate_template' ) ) {
1210 - /**
1211 - * Generate templates for pdf file or print
1212 - *
1213 - * @param string $content Post content.
1214 - * @param bool $is_print (Optional) Flag for print version.
1215 - * @return string $html
1216 - */
1217 - function pdfprnt_generate_template( $content, $is_print = false ) {
1218 - global $pdfprnt_options, $wp_locale, $post;
1219 - $html =
1220 - '<html>
1221 - <head>';
1222 - $html .= apply_filters( 'pdfprnt_add_meta_tag_robots', $html );
1223 - if ( $is_print && $post instanceof WP_Post ) {
1224 - if ( is_archive() || is_category() || is_tax() || is_tag() || is_author() || ! pdfprnt_is_user_role_enabled() ) {
1225 - $title = ( function_exists( 'get_the_archive_title' ) ) ? get_the_archive_title() : wp_title( '', false );
1226 - } elseif ( is_search() ) {
1227 - $title = sprintf( esc_html__( 'Search Results for: %s', 'pdf-print' ), get_search_query() );
1228 - } else {
1229 - $title = get_the_title();
1230 - }
1231 - $html .= sprintf(
1232 - '<title>%s - %s</title>',
1233 - wp_strip_all_tags( $title ),
1234 - get_bloginfo( 'name' )
677 +if ( ! function_exists( 'pdfprnt_generate_template_for_bws_portfolio' ) ) {
678 + function pdfprnt_generate_template_for_bws_portfolio() {
679 + global $post;
680 + ob_start(); /* Starting output buffering */
681 + $portfolio_options = get_option( 'prtfl_options' );
682 + $meta_values = get_post_custom( $post->ID );
683 + $post_thumbnail_id = get_post_thumbnail_id( $post->ID );
684 + if( empty ( $post_thumbnail_id ) ) {
685 + $args = array(
686 + 'post_parent' => $post->ID,
687 + 'post_type' => 'attachment',
688 + 'post_mime_type' => 'image',
689 + 'numberposts' => 1
1235 690 );
691 + $attachments = get_children( $args );
692 + $post_thumbnail_id = key( $attachments );
1236 693 }
1237 - if ( ! empty( $pdfprnt_options['use_default_css'] ) && 1 === intval( $pdfprnt_options['use_default_css'] ) ) {
1238 - /* remove 'font-family' and 'font' styles from theme css-file if additional fonts not loaded */
1239 - if ( 0 === intval( $pdfprnt_options['additional_fonts'] ) ) {
1240 - $css = wp_remote_get( get_bloginfo( 'stylesheet_url' ) );
1241 - if ( is_array( $css ) && ! empty( $css['body'] ) ) {
1242 - $html .= '<style type="text/css">' . preg_replace( '/(font:(.*?);)|(font-family(.*?);)/', '', $css['body'] ) . '</style>';
1243 - }
1244 - } else {
1245 - $html .= '<link type="text/css" rel="stylesheet" href="' . get_bloginfo( 'stylesheet_url' ) . '" media="all" />';
694 + $image = wp_get_attachment_image_src( $post_thumbnail_id, 'portfolio-thumb' );
695 + $image_alt = get_post_meta( $post_thumbnail_id, '_wp_attachment_image_alt', true );
696 + $image_desc = get_post( $post_thumbnail_id );
697 + $image_desc = $image_desc->post_content;
698 + if ( '1' == get_option( 'prtfl_postmeta_update' ) ) {
699 + $post_meta = get_post_meta( $post->ID, 'prtfl_information', true );
700 + $date_compl = $post_meta['_prtfl_date_compl'];
701 + if ( ! empty( $date_compl ) && 'in progress' != $date_compl ) {
702 + $date_compl = explode( '/', $date_compl );
703 + $date_compl = date( get_option( 'date_format' ), strtotime( $date_compl[1] . '-' . $date_compl[0] . '-' . $date_compl[2] ) );
1246 704 }
705 + $link = $post_meta['_prtfl_link'];
706 + $short_descr = $post_meta['_prtfl_short_descr'];
1247 707 } else {
1248 - $html .= '<link type="text/css" rel="stylesheet" href="' . plugins_url( 'css/default.css', __FILE__ ) . '" media="all" />';
1249 - }
1250 - $html .= pdfprnt_additional_styles( $is_print );
1251 - if ( 1 === intval( $pdfprnt_options['use_custom_css'] ) && ! empty( $pdfprnt_options['custom_css_code'] ) ) {
1252 - $html .= '<style type="text/css">' . $pdfprnt_options['custom_css_code'] . '</style>';
1253 - }
1254 - if ( $is_print && 1 === intval( $pdfprnt_options['show_print_window'] ) ) {
1255 - $html .= '<script>window.onload = function(){ window.print(); };</script>';
1256 - }
1257 - if ( ! empty( $pdfprnt_options['hide_classes'] ) ) {
1258 - $html .= '<style>' . implode( ',', $pdfprnt_options['hide_classes'] ) . '{ display: none; }</style>';
1259 - }
1260 - $html .= apply_filters( 'pdfprnt_woocommerce_layout', $html, $is_print );
1261 - $html .=
1262 - '</head>
1263 - <body class="' . ( $is_print ? 'pdfprnt_print ' : '' ) . $wp_locale->text_direction . '">';
1264 - /* Remove inline 'font-family' and 'font' styles from content */
1265 - if ( 0 === intval( $pdfprnt_options['additional_fonts'] ) ) {
1266 - $content = pdfprnt_preg_replace( array( 'font-family', 'font:' ), $content );
1267 - }
1268 - if ( function_exists( 'has_blocks' ) && has_blocks( $content ) ) {
1269 - $content = preg_replace( '/\s?<!--.*-->\s?/', '', $content );
1270 - $content = preg_replace( '~<p></p>~', '', $content );
1271 - }
1272 - $html .= $content .
1273 - '</body>
1274 - </html>';
1275 - return $html;
708 + $date_compl = get_post_meta( $post->ID, '_prtfl_date_compl', true );
709 + if ( ! empty( $date_compl ) && 'in progress' != $date_compl ) {
710 + $date_compl = explode( '/', $date_compl );
711 + $date_compl = date( get_option( 'date_format' ), strtotime( $date_compl[1] . '-' . $date_compl[0] . '-' . $date_compl[2] ) );
712 + }
713 + $link = get_post_meta( $post->ID, '_prtfl_link', true);
714 + $short_descr = $post_meta['_prtfl_short_descr'];
715 + } ?>
716 + <img src="<?php echo $image[0]; ?>" width="<?php echo $image[1]; ?>" alt="<?php echo $image_alt; ?>" />
717 + <div>
718 + <p>
719 + <strong><?php _e( 'Date of completion', 'pdf-print' ); ?>:</strong> <?php echo $date_compl; ?><br/>
720 + <strong><?php _e( 'Link', 'pdf-print' ); ?>:</strong> <a href="<?php echo $link; ?>"><?php echo $link; ?></a><br/>
721 + <strong><?php _e( 'Description', 'pdf-print' ); ?>:</strong> <?php echo $short_descr; ?><br/>
722 + </p>
723 + </div>
724 + <?php $terms = wp_get_object_terms( $post->ID, 'portfolio_technologies' );
725 + if ( is_array( $terms ) && count( $terms ) > 0 ) { ?>
726 + <div style="clear:both;">
727 + <strong><?php _e( 'Technologies', 'pdf-print' ); ?>: </strong>
728 + <?php $count = 0;
729 + foreach ( $terms as $term ) {
730 + if( 0 < $count )
731 + echo ', ';
732 + echo '<a href="' . get_term_link( $term->slug, 'portfolio_technologies' ) . '" title="' . sprintf( __( "View all posts in %s" ), $term->name ) . '" ' . '>' . $term->name . '</a>';
733 + $count++;
734 + } ?>
735 + </div>
736 + <?php }
737 + $content = ob_get_contents(); /* Getting output buffering */
738 + ob_end_clean(); /* Closing output buffering */
739 + return $content; /* Now we done with template */
1276 740 }
1277 741 }
1278 742
1279 -if ( ! function_exists( 'pdfprnt_additional_styles' ) ) {
1280 - /**
1281 - * Additinal styles for plugin
1282 - *
1283 - * @param bool $is_print Flag for print version.
1284 - * @return string $html
1285 - */
1286 - function pdfprnt_additional_styles( $is_print ) {
1287 - $styles = apply_filters( 'bwsplgns_add_pdf_print_styles', array() );
1288 - $html = '';
1289 - if ( ! empty( $styles ) && is_array( $styles ) ) {
1290 - $url = get_bloginfo( 'url' );
1291 - require_once ABSPATH . 'wp-admin/includes/file.php';
1292 - $path = get_home_path();
1293 - foreach ( $styles as $style ) {
1294 - if ( ! empty( $style[0] ) && file_exists( $path . $style[0] ) ) {
1295 - /* if "get print" */
1296 - if ( $is_print ) {
1297 - if ( ( isset( $style[1] ) && 'print' === $style[1] ) || ! isset( $style[1] ) ) {
1298 - $html .= '<link type="text/css" rel="stylesheet" href="' . $url . '/' . $style[0] . '" media="all" />';
1299 - }
1300 - /* if "get pdf" */
1301 - } else {
1302 - if ( ( isset( $style[1] ) && 'pdf' === $style[1] ) || ! isset( $style[1] ) ) {
1303 - $html .= '<link type="text/css" rel="stylesheet" href="' . $url . '/' . $style[0] . '" media="all" />';
1304 - }
1305 - }
1306 - }
1307 - }
743 +/* Generate query posts for Portfolio plugin */
744 +if ( ! function_exists( 'generate_query_posts_for_portfolio' ) ) {
745 + function generate_query_posts_for_portfolio() {
746 + global $wp_query;
747 + $paged = isset( $wp_query->query_vars['paged'] ) ? $wp_query->query_vars['paged'] : 1;
748 + $technologies = isset( $wp_query->query_vars["technologies"] ) ? $wp_query->query_vars["technologies"] : "";
749 + if ( "" != $technologies ) {
750 + $args = array(
751 + 'post_type' => 'portfolio',
752 + 'post_status' => 'publish',
753 + 'posts_per_page' => get_option('posts_per_page'),
754 + 'paged' => $paged,
755 + 'tax_query' => array(
756 + array(
757 + 'taxonomy' => 'portfolio_technologies',
758 + 'field' => 'slug',
759 + 'terms' => $technologies
760 + )
761 + )
762 + );
763 + } else {
764 + $args = array(
765 + 'post_type' => 'portfolio',
766 + 'post_status' => 'publish',
767 + 'posts_per_page' => get_option('posts_per_page'),
768 + 'paged' => $paged
769 + );
1308 770 }
1309 - return $html;
771 + query_posts( $args );
1310 772 }
1311 773 }
1312 774
775 +/* Output print page or pdf document and include plugin script */
1313 776 if ( ! function_exists( 'pdfprnt_print' ) ) {
1314 - /**
1315 - * Output print page or pdf document and include plugin script
1316 - *
1317 - * @param string $query Query for post.
1318 - */
1319 777 function pdfprnt_print( $query ) {
1320 - global $pdfprnt_options, $posts, $post, $pdfprnt_is_old_php, $pdfprnt_links;
1321 - $print = get_query_var( 'print' );
1322 -
1323 - if ( $pdfprnt_is_old_php || empty( $print ) || ! pdfprnt_is_user_role_enabled() || post_password_required() ) {
1324 - return;
1325 - }
1326 -
1327 - if ( apply_filters( 'bwsplgns_remove_content_filters', true ) ) {
778 + global $pdfprnt_options_array, $posts, $post;
779 + if ( $print = get_query_var( 'print' ) ) {
1328 780 remove_all_filters( 'the_content' );
1329 781 add_filter( 'the_content', 'capital_P_dangit', 11 );
1330 782 add_filter( 'the_content', 'wptexturize' );
1331 783 add_filter( 'the_content', 'convert_smilies' );
@@ -1330,865 +782,352 @@
1330 782 add_filter( 'the_content', 'wptexturize' );
1331 783 add_filter( 'the_content', 'convert_smilies' );
1332 784 add_filter( 'the_content', 'convert_chars' );
1333 785 add_filter( 'the_content', 'wpautop' );
1334 -
1335 - if ( ! class_exists( 'WP_Embed' ) ) {
1336 - require_once ABSPATH . WPINC . '/class-wp-embed.php';
786 + if ( 1 == $pdfprnt_options_array['tmpl_shorcode'] ) {
787 + add_filter( 'the_content', 'do_shortcode' ); /* executing shorcodes on the page */
788 + } else {
789 + $pattern = get_shortcode_regex();
790 + if ( preg_match_all( '/'. $pattern .'/s', $post->post_content, $matches ) ) { /* getting all shortcodes we are using */
791 + foreach ( array_unique( $matches[0] ) as $value) {
792 + $post->post_content = str_replace( $value, "", $post->post_content ); /* replacing shorcodes to an empty string */
793 + }
794 + }
1337 795 }
1338 - new WP_Embed();
1339 - }
1340 - do_action( 'bwsplgns_pdf_print_the_content' );
1341 - if ( 1 === intval( $pdfprnt_options['do_shorcodes'] ) ) {
1342 - add_filter( 'the_content', 'do_shortcode' );
1343 - $pattern = false;
1344 - } else {
1345 - $pattern = get_shortcode_regex();
1346 - }
1347 -
1348 - $doc_type = explode( '-', $print );
1349 -
1350 - if ( ! is_array( $doc_type ) ) {
1351 - return;
1352 - }
1353 -
1354 - /* for search or archives */
1355 - if ( isset( $doc_type[1] ) ) {
1356 - switch ( $doc_type[1] ) {
1357 - case 'custom':
1358 - $url_data = isset( $_SERVER['REQUEST_URI'] ) ? wp_parse_url( sanitize_text_field( wp_unslash( urldecode( $_SERVER['REQUEST_URI'] ) ) ) ) : array();
1359 - parse_str( $url_data['query'], $args );
1360 - unset( $args['print'] );
1361 - if ( ! empty( $args ) ) {
1362 - $posts = query_posts( $args );
796 + switch ( $print ) {
797 + case 'pdf': /* Content for PDF from post */
798 + include ( 'mpdf/mpdf.php' );
799 + $mpdf = new mPDF( get_bloginfo( 'charset' ) );
800 + $mpdf = new mPDF('+aCJK');
801 + $user_info = get_userdata( $post->post_author );
802 + $mpdf->SetAutoFont(AUTOFONT_ALL);
803 + $mpdf->SetAuthor( $user_info->display_name );
804 + $mpdf->SetTitle( $post->post_title );
805 + $mpdf->SetSubject( get_bloginfo( 'blogdescription' ) );
806 + $html = '<div class="container">
807 + <div class="title"><h1><a href="' . get_permalink( $post->ID ) . '">' . $post->post_title . '</a></h1></div><br/>
808 + <div class="content">' . apply_filters( 'the_content', $post->post_content ) . '</div>
809 + </div>';
810 + $mpdf->WriteHTML( pdfprnt_generate_template( $html ) );
811 + $mpdf->Output();
812 + unset( $user_info );
813 + unset( $html );
814 + unset( $mpdf );
815 + die();
816 + break;
817 + case 'print': /* Content for printing from post */
818 + $html = '<div class="container">
819 + <div class="title"><h1>' . $post->post_title . '</h1></div><br/>
820 + <div class="content">' . apply_filters( 'the_content', $post->post_content ) . '</div>
821 + </div>';
822 + echo pdfprnt_generate_template( $html, false, true );
823 + unset( $html );
824 + die();
825 + break;
826 + case 'pdf-page': /* Content for PDF from archive or searching page */
827 + $html = '';
828 + $titles = array();
829 + $authors = array();
830 + include ( 'mpdf/mpdf.php' );
831 + $mpdf = new mPDF( get_bloginfo( 'charset' ) );
832 + $mpdf = new mPDF('+aCJK');
833 + foreach ( $posts as $p ) {
834 + if ( ! in_array( get_post_type( $p ), $pdfprnt_options_array['use_types_posts'] ) )
835 + continue;
836 + $titles[] = $p->post_title;
837 + $user_info = get_userdata( $p->post_author );
838 + $authors[] = $user_info->display_name;
839 + $html .= '<div class="container">
840 + <div class="title"><h1><a href="' . get_permalink( $p->ID ) . '">' . $p->post_title . '</a></h1></div><br/>
841 + <div class="content">' . apply_filters( 'the_content', $p->post_content ) . '</div>
842 + </div><br/><hr/><br/>';
843 + unset( $user_info );
1363 844 }
845 + $titles = array_unique( $titles );
846 + $authors = array_unique( $authors );
847 + $mpdf->SetAutoFont(AUTOFONT_ALL);
848 + $mpdf->SetTitle( implode( ',', $titles ) );
849 + $mpdf->SetAuthor( implode( ',', $authors ) );
850 + $mpdf->SetSubject( get_bloginfo( 'blogdescription' ) );
851 + $mpdf->WriteHTML( pdfprnt_generate_template( $html, $pdfprnt_options_array['tmpl_search'] ) );
852 + $mpdf->Output();
853 + unset( $authors );
854 + unset( $titles );
855 + unset( $html );
856 + unset( $mpdf );
857 + die();
1364 858 break;
1365 - case 'search':
1366 - do_action( 'pdfprnt_rewrite_posts_woocommerce' );
859 + case 'print-page': /* Content for printing from archive or searching page */
860 + $html = '';
861 + foreach ( $posts as $p ) {
862 + if ( ! in_array( get_post_type( $p ), $pdfprnt_options_array['use_types_posts'] ) )
863 + continue;
864 + $html .= '<div class="container">
865 + <div class="title"><h1>' . $p->post_title . '</h1></div><br/>
866 + <div class="content">' . apply_filters( 'the_content', $p->post_content ) . '</div>
867 + </div><br/><hr/><br/>';
868 + }
869 + echo pdfprnt_generate_template( $html, $pdfprnt_options_array['tmpl_search'], true );
870 + unset( $html );
871 + die();
1367 872 break;
1368 - default:
873 + case 'pdf-portfolio': /* Content for PDF from portfolio post */
874 + include ( 'mpdf/mpdf.php' );
875 + $mpdf = new mPDF( get_bloginfo( 'charset' ) );
876 + $mpdf = new mPDF( '+aCJK' );
877 + $user_info = get_userdata( $post->post_author );
878 + $mpdf->SetAutoFont( AUTOFONT_ALL );
879 + $mpdf->SetAuthor( $user_info->display_name );
880 + $mpdf->SetTitle( $post->post_title );
881 + $mpdf->SetSubject( get_bloginfo( 'blogdescription' ) );
882 + $html = '<div class="container">
883 + <div class="title"><h1><a href="' . get_permalink( $post->ID ) . '">' . $post->post_title . '</a></h1></div><br/>
884 + <div class="content">' . pdfprnt_generate_template_for_bws_portfolio() . '</div>
885 + </div>';
886 + $mpdf->WriteHTML( pdfprnt_generate_template( $html, $pdfprnt_options_array['tmpl_custom'] ) );
887 + $mpdf->Output();
888 + unset( $html );
889 + unset( $user_info );
890 + unset( $mpdf );
891 + die();
1369 892 break;
1370 - }
1371 - /* for single posts or pages */
1372 - } elseif (
1373 - ( is_ssl() ? 'https://' : 'http://' ) . sanitize_text_field( wp_unslash( $_SERVER['HTTP_HOST'] ) ) . sanitize_text_field( wp_unslash( urldecode( $_SERVER['REQUEST_URI'] ) ) ) === get_home_url() . '/?print=' . $doc_type[0]
1374 - &&
1375 - 'page' === get_option( 'show_on_front' )
1376 - ) {
1377 - $post_id = get_option( 'page_on_front' );
1378 - $posts = query_posts( array( 'page_id' => $post_id ) );
1379 - } else {
1380 - if ( ! is_home() ) {
1381 - $posts = array( $post );
1382 - $count_generation = get_post_meta( $post->ID, 'pdfprnt_count_generation', true );
1383 - update_post_meta( $post->ID, 'pdfprnt_count_generation', (int) ++$count_generation );
1384 - }
1385 - }
1386 -
1387 - switch ( $doc_type[0] ) {
1388 - case 'pdf':
1389 - /* set path to directory with fonts */
1390 - if ( ! ( 0 === intval( $pdfprnt_options['additional_fonts'] ) && defined( '_MPDF_SYSTEM_TTFONTS' ) ) ) {
1391 - if ( is_multisite() ) {
1392 - switch_to_blog( 1 );
1393 - $upload_dir = wp_upload_dir();
1394 - restore_current_blog();
1395 - } else {
1396 - $upload_dir = wp_upload_dir();
893 + case 'print-portfolio': /* Content for printing from porfolio post */
894 + $html = '<div class="container">
895 + <div class="title"><h1>' . $post->post_title . '</h1></div><br/>
896 + <div class="content">' . pdfprnt_generate_template_for_bws_portfolio() . '</div>
897 + </div>';
898 + echo pdfprnt_generate_template( $html, $pdfprnt_options_array['tmpl_custom'], true );
899 + unset( $html );
900 + die();
901 + break;
902 + case 'pdf-portfolio-page': /* Content for PDF from portfolio page */
903 + $html = '';
904 + $titles = array();
905 + $authors = array();
906 + generate_query_posts_for_portfolio();
907 + while ( have_posts() ) {
908 + the_post();
909 + global $post;
910 + if ( ! in_array( get_post_type( $post ), $pdfprnt_options_array['use_types_posts'] ) )
911 + continue;
912 + $titles[] = $post->post_title;
913 + $user_info = get_userdata( $post->post_author );
914 + $authors[] = $user_info->display_name;
915 + $html .= '<div class="container">
916 + <div class="title"><h1><a href="' . get_permalink( $post->ID ) . '">' . $post->post_title . '</a></h1></div><br/>
917 + <div class="content">' . pdfprnt_generate_template_for_bws_portfolio() . '</div>
918 + </div><br/><hr/><br/>';
919 + unset( $user_info );
1397 920 }
1398 - @define( '_MPDF_SYSTEM_TTFONTS', $upload_dir['basedir'] . '/pdf-print-fonts/' );
1399 - }
1400 -
1401 - /* prepare data */
1402 - $titles = array();
1403 - $authors = array();
1404 - $default_font = 0 === intval( $pdfprnt_options['additional_fonts'] ) ? 'dejavusansmono' : '';
1405 - $last = count( $posts );
1406 - $i = 1;
1407 - $html = '<div id="content">';
1408 - foreach ( $posts as $p ) {
1409 - if ( function_exists( 'et_theme_builder_get_template_layouts' ) && function_exists( 'et_theme_builder_frontend_render_header' ) ) {
1410 - $layouts = et_theme_builder_get_template_layouts();
1411 - ob_start();
1412 - et_theme_builder_frontend_render_header(
1413 - $layouts[ ET_THEME_BUILDER_HEADER_LAYOUT_POST_TYPE ]['id'],
1414 - $layouts[ ET_THEME_BUILDER_HEADER_LAYOUT_POST_TYPE ]['enabled'],
1415 - $layouts[ ET_THEME_BUILDER_TEMPLATE_POST_TYPE ]
1416 - );
1417 - $html .= ob_get_clean();
921 + include ( 'mpdf/mpdf.php' );
922 + $mpdf = new mPDF( get_bloginfo( 'charset' ) );
923 + $mpdf = new mPDF( '+aCJK' );
924 + $titles = array_unique( $titles );
925 + $authors = array_unique( $authors );
926 + $mpdf->SetAutoFont( AUTOFONT_ALL );
927 + $mpdf->SetTitle( implode( ',', $titles ) );
928 + $mpdf->SetAuthor( implode( ',', $authors ) );
929 + $mpdf->SetSubject( get_bloginfo( 'blogdescription' ) );
930 + $mpdf->WriteHTML( pdfprnt_generate_template( $html, $pdfprnt_options_array['tmpl_custom'] ) );
931 + $mpdf->Output();
932 + unset( $authors );
933 + unset( $titles );
934 + unset( $html );
935 + unset( $mpdf );
936 + die();
937 + break;
938 + case 'print-portfolio-page': /* Content for printing from portfolio page */
939 + generate_query_posts_for_portfolio();
940 + $html = '';
941 + while ( have_posts() ) {
942 + the_post();
943 + global $post;
944 + if ( ! in_array( get_post_type( $post ), $pdfprnt_options_array['use_types_posts'] ) )
945 + continue;
946 + $html .= '<div class="container">
947 + <div class="title"><h1>' . $post->post_title . '</h1></div><br/>
948 + <div class="content">' . pdfprnt_generate_template_for_bws_portfolio() . '</div>
949 + </div><br/><hr/><br/>';
1418 950 }
1419 - $title_filter = apply_filters( 'bwsplgns_get_pdf_print_title', apply_filters( 'the_title', $p->post_title, $p->ID ), $p );
1420 - $titles[] = $title_filter;
1421 - $user_info = get_userdata( $p->post_author );
1422 - $authors[] = $user_info->display_name;
1423 - $title = 1 === intval( $pdfprnt_options['show_title'] ) ? '<div class="entry-header"><h1 class="entry-title"><a href="' . get_permalink( $p ) . '">' . $title_filter . '</a></h1></div>' : '';
1424 - $image = 1 === intval( $pdfprnt_options['show_featured_image'] ) && has_post_thumbnail( $p->ID ) ? '<div class="entry-thumbnail">' . get_the_post_thumbnail( $p->ID, $pdfprnt_options['featured_image_size'] ) . '</div>' : '';
1425 - $date = 1 === intval( $pdfprnt_options['show_date'] ) ? '<span class="entry-date">' . get_the_date( get_option( 'date_format' ) ) . '</span>' : '';
1426 - $author = 1 === intval( $pdfprnt_options['show_author'] ) ? '<span class="entry-author">' . esc_html__( 'written by', 'pdf-print' ) . ' ' . get_the_author_meta( 'display_name', $p->post_author ) . '</span>' : '';
1427 - $category = 1 === intval( $pdfprnt_options['show_category'] ) && has_category( '', $p->ID ) ? '<div class="entry-category">' . __( 'Category', 'pdf-print-pro' ) . ': ' . implode( ',', wp_get_post_categories( $p->ID, array( 'fields' => 'names' ) ) ) . '</div>' : '';
1428 - /* replacing shortcodes to an empty string which were added to the content */
1429 - if ( $pattern && preg_match_all( '/' . $pattern . '/s', $p->post_content, $matches ) ) {
1430 - foreach ( array_unique( $matches[0] ) as $value ) {
1431 - $p->post_content = str_replace( $value, '', $p->post_content );
1432 - }
951 + echo pdfprnt_generate_template( $html, $pdfprnt_options_array['tmpl_custom'], true );
952 + unset( $html );
953 + die();
954 + break;
955 + case 'pdf-custom-page': /* Content for PDF from custom post */
956 + $html = '';
957 + $titles = $authors = array();
958 + foreach ( $posts as $p ) {
959 + if ( ! in_array( get_post_type( $p ), $pdfprnt_options_array['use_types_posts'] ) )
960 + continue;
961 + $titles[] = $p->post_title;
962 + $user_info = get_userdata( $p->post_author );
963 + $authors[] = $user_info->display_name;
964 + $html .= '<div class="container">';
965 + $html .= '<div class="title"><h1><a href="' . get_permalink( $p->ID ) . '">' . $p->post_title . '</a></h1></div><br/>';
966 + $html .= '<div class="content">';
967 + if ( has_post_thumbnail( $p->ID ) )
968 + $html .= get_the_post_thumbnail( $p->ID, 'thumbnail' );
969 + $html .= apply_filters( 'the_content', $p->post_content ) . '</div></div><br/><hr/><br/>';
970 + unset( $user_info );
1433 971 }
1434 - if ( 1 === intval( $pdfprnt_options['remove_links'] ) ) {
1435 - $p->post_content = preg_replace( '~<a\b[^>]*+>|</a\b[^>]*+>~', '$2', $p->post_content );
1436 - $p->post_content = preg_replace( '@((https?://)?([-\w]+\.[-\w\.]+)+\w(:\d+)?(/([-\w/_\.]*(\?\S+)?)?)*)@', '', $p->post_content );
1437 - }
1438 - if ( 1 === intval( $pdfprnt_options['disable_links'] ) ) {
1439 - $html .= '<style> a {text-decoration: none; color:#000000 !important; } </style>';
1440 - }
1441 -
1442 - $post_visible = ( ! empty( $p->post_excerpt ) && ! is_singular() ) ? $p->post_excerpt : $p->post_content;
1443 - $post_content = apply_filters( 'bwsplgns_get_pdf_print_content', $post_visible, $p );
1444 - $shortcodes = implode( '|', apply_filters( 'bwsplgns_pdf_print_remove_shortcodes', array( 'vc_', 'az_', 'multilanguage_switcher' ) ) );
1445 - $post_content = preg_replace( "/\[\/?({$shortcodes})[^\]]*?\]/", '', $post_content );
1446 - $post_content = apply_filters( 'the_content', $post_content );
1447 - $post_content = apply_filters( 'bwsplgns_pdf_customize_content', $post_content );
1448 - $post_content = apply_filters( 'bwsplgns_pdf_replace_content', $post_content );
1449 - $separator = '';
1450 - if ( ! empty( $author ) && ! empty( $date ) ) {
1451 - $separator = ' | ';
1452 - }
1453 - $html .=
1454 - '<div class="post">' .
1455 - $title .
1456 - $category .
1457 - '<div class="postmetadata">' . $author . $separator . $date . '</div>' .
1458 - $image .
1459 - '<div class="entry-content">' . $post_content . '</div>
1460 - </div>';
1461 - if ( $i !== $last ) {
1462 - $html .= '<br/><hr/><br/>';
1463 - $i ++;
1464 - }
1465 - }
1466 - if ( function_exists( 'et_theme_builder_get_template_layouts' ) && function_exists( 'et_theme_builder_frontend_render_footer' ) ) {
1467 - ob_start();
1468 - et_theme_builder_frontend_render_footer(
1469 - $layouts[ ET_THEME_BUILDER_FOOTER_LAYOUT_POST_TYPE ]['id'],
1470 - $layouts[ ET_THEME_BUILDER_FOOTER_LAYOUT_POST_TYPE ]['enabled'],
1471 - $layouts[ ET_THEME_BUILDER_TEMPLATE_POST_TYPE ]
1472 - );
1473 - $html .= ob_get_clean();
1474 - }
1475 - $html .= '</div>';
1476 - $titles = array_unique( $titles );
1477 - $authors = array_unique( $authors );
1478 -
1479 - $pdfprnt_links = $pdfprnt_options['disable_links'];
1480 -
1481 - /* generate PDF-document */
1482 - $path = $upload_dir['basedir'] . '/vendor/mpdf';
1483 - $is_installed = file_exists( $path );
1484 - if ( $is_installed ) {
1485 - /* Implement mPDF v7.1.5 */
1486 - if ( ! class_exists( '\Mpdf\Mpdf' ) ) {
1487 - include $upload_dir['basedir'] . '/vendor/autoload.php';
1488 - }
1489 - $mpdf_config = array(
1490 - 'mode' => '+aCJK',
1491 - 'format' => $pdfprnt_options['pdf_page_size'],
1492 - 'default_font_size' => 0,
1493 - 'default_font' => $default_font,
1494 - 'margin_left' => $pdfprnt_options['pdf_margins']['left'],
1495 - 'margin_right' => $pdfprnt_options['pdf_margins']['right'],
1496 - 'margin_top' => $pdfprnt_options['pdf_margins']['top'],
1497 - 'margin_bottom' => $pdfprnt_options['pdf_margins']['bottom'],
1498 - );
1499 - $mpdf = new \Mpdf\Mpdf( $mpdf_config );
1500 -
1501 - } else {
1502 - include dirname( __FILE__ ) . '/mpdf/mpdf.php';
1503 - $mpdf = new mPDF(
1504 - '+aCJK',
1505 - $pdfprnt_options['pdf_page_size'],
1506 - 0,
1507 - $default_font,
1508 - $pdfprnt_options['pdf_margins']['left'],
1509 - $pdfprnt_options['pdf_margins']['right'],
1510 - $pdfprnt_options['pdf_margins']['top'],
1511 - $pdfprnt_options['pdf_margins']['bottom']
1512 - );
1513 - }
1514 - $mpdf->allow_charset_conversion = true;
1515 - $mpdf->charset_in = get_bloginfo( 'charset' );
1516 - if ( 0 !== intval( $pdfprnt_options['additional_fonts'] ) ) {
1517 - $mpdf->autoScriptToLang = true;
1518 - $mpdf->autoLangToFont = true;
1519 - $mpdf->baseScript = 1;
1520 - $mpdf->autoVietnamese = true;
1521 - $mpdf->autoArabic = true;
1522 - }
1523 - if ( is_rtl() ) {
1524 - $mpdf->SetDirectionality( 'rtl' );
1525 - }
1526 - $mpdf->SetTitle( htmlspecialchars_decode( implode( ',', $titles ) ) );
1527 - $mpdf->SetAuthor( implode( ',', $authors ) );
1528 - $mpdf->SetSubject( get_bloginfo( 'blogdescription' ) );
1529 - $mpdf->WriteHTML( pdfprnt_generate_template( $html ) );
1530 - do_action_ref_array( 'bwsplgns_mpdf', array( &$mpdf ) );
1531 - if ( 'download' === $pdfprnt_options['file_action'] ) {
1532 - $mpdf->Output( '', 'D' );
1533 - } else {
972 + include ( 'mpdf/mpdf.php' );
973 + $mpdf = new mPDF( get_bloginfo( 'charset' ) );
974 + $mpdf = new mPDF( '+aCJK' );
975 + $titles = array_unique( $titles );
976 + $authors = array_unique( $authors );
977 + $mpdf->SetAutoFont( AUTOFONT_ALL );
978 + $mpdf->SetTitle( implode( ',', $titles ) );
979 + $mpdf->SetAuthor( implode( ',', $authors ) );
980 + $mpdf->SetSubject( get_bloginfo( 'blogdescription' ) );
981 + $mpdf->WriteHTML( pdfprnt_generate_template( $html, $pdfprnt_options_array['tmpl_custom'] ) );
1534 982 $mpdf->Output();
1535 - }
1536 - die();
1537 - break;
1538 - case 'print':
1539 - $last = count( $posts );
1540 - $i = 1;
1541 - $html = '<div id="content">';
1542 - foreach ( $posts as $p ) {
1543 - if ( function_exists( 'et_theme_builder_get_template_layouts' ) && function_exists( 'et_theme_builder_frontend_render_header' ) ) {
1544 - $layouts = et_theme_builder_get_template_layouts();
1545 - ob_start();
1546 - et_theme_builder_frontend_render_header(
1547 - $layouts[ ET_THEME_BUILDER_HEADER_LAYOUT_POST_TYPE ]['id'],
1548 - $layouts[ ET_THEME_BUILDER_HEADER_LAYOUT_POST_TYPE ]['enabled'],
1549 - $layouts[ ET_THEME_BUILDER_TEMPLATE_POST_TYPE ]
1550 - );
1551 - $html .= ob_get_clean();
983 + unset( $authors );
984 + unset( $titles );
985 + unset( $html );
986 + unset( $mpdf );
987 + die();
988 + break;
989 + case 'print-custom-page': /* Content for printing from custom post */
990 + $html = '';
991 + foreach ( $posts as $p ) {
992 + if ( ! in_array( get_post_type( $p ), $pdfprnt_options_array['use_types_posts'] ) )
993 + continue;
994 + $html .= '<div class="container">';
995 + $html .= '<div class="title"><h1>' . $p->post_title . '</h1></div><br/>';
996 + $html .= '<div class="content">';
997 + if ( has_post_thumbnail( $p->ID ) )
998 + $html .= get_the_post_thumbnail( $p->ID, 'thumbnail' );
999 + $html .= apply_filters( 'the_content', $p->post_content ) . '</div>
1000 + </div><br/><hr/><br/>';
1552 1001 }
1553 -
1554 - $title = 1 === intval( $pdfprnt_options['show_title'] ) ? '<div class="entry-header"><h1 class="entry-title">' . apply_filters( 'bwsplgns_get_pdf_print_title', apply_filters( 'the_title', $p->post_title, $p->ID ), $p ) . '</h1></div>' : '';
1555 - $image = 1 === intval( $pdfprnt_options['show_featured_image'] ) && has_post_thumbnail( $p->ID ) ? '<div class="entry-thumbnail">' . get_the_post_thumbnail( $p->ID, $pdfprnt_options['featured_image_size'] ) . '</div>' : '';
1556 - $date = 1 === intval( $pdfprnt_options['show_date'] ) ? '<span class="entry-date">' . get_the_date( get_option( 'date_format' ) ) . '</span>' : '';
1557 - $author = 1 === intval( $pdfprnt_options['show_author'] ) ? '<span class="entry-author">' . esc_html__( 'written by', 'pdf-print' ) . ' ' . get_the_author_meta( 'display_name', $p->post_author ) . '</span>' : '';
1558 - $category = 1 === intval( $pdfprnt_options['show_category'] ) && has_category( '', $p->ID ) ? '<div class="entry-category">' . __( 'Category', 'pdf-print-pro' ) . ': ' . implode( ',', wp_get_post_categories( $p->ID, array( 'fields' => 'names' ) ) ) . '</div>' : '';
1559 - /* replacing shortcodes to an empty string which were added to the content */
1560 - if ( $pattern && preg_match_all( '/' . $pattern . '/s', $p->post_content, $matches ) ) {
1561 - foreach ( array_unique( $matches[0] ) as $value ) {
1562 - $p->post_content = str_replace( $value, '', $p->post_content );
1563 - }
1564 - }
1565 - if ( 1 === intval( $pdfprnt_options['remove_links'] ) ) {
1566 - $p->post_content = preg_replace( '~<a\b[^>]*+>|</a\b[^>]*+>~', '$2', $p->post_content );
1567 - $p->post_content = preg_replace( '@((https?://)?([-\w]+\.[-\w\.]+)+\w(:\d+)?(/([-\w/_\.]*(\?\S+)?)?)*)@', '', $p->post_content );
1568 - }
1569 - if ( 1 === intval( $pdfprnt_options['disable_links'] ) ) {
1570 - $html .= '<style> a {text-decoration: none; color:#000000 !important; } </style>';
1571 - }
1572 -
1573 - $post_content = apply_filters( 'bwsplgns_get_pdf_print_content', $p->post_content, $p );
1574 - $shortcodes = implode( '|', apply_filters( 'bwsplgns_pdf_print_remove_shortcodes', array( 'vc_', 'az_', 'multilanguage_switcher' ) ) );
1575 - $post_content = preg_replace( "/\[\/?({$shortcodes})[^\]]*?\]/", '', $post_content );
1576 - $post_content = apply_filters( 'the_content', $post_content );
1577 - $separator = '';
1578 -
1579 - if ( ! empty( $author ) && ! empty( $date ) ) {
1580 - $separator = ' | ';
1581 - }
1582 -
1583 - ob_start();
1584 - ?>
1585 - <div class="post">
1586 - <?php
1587 - echo wp_kses_post( $title ) .
1588 - wp_kses_post( $category ) .
1589 - '<div class="postmetadata">' . wp_kses_post( $author . $separator . $date ) . '</div>' .
1590 - wp_kses_post( $image );
1591 - ?>
1592 - <div class="entry-content"><?php echo $post_content; ?></div>
1593 - </div>
1594 - <?php
1595 - $html .= ob_get_clean();
1596 - if ( $i !== $last ) {
1597 - $html .= '<br/><hr/><br/>';
1598 - $i ++;
1599 - }
1600 - }
1601 - if ( function_exists( 'et_theme_builder_get_template_layouts' ) && function_exists( 'et_theme_builder_frontend_render_footer' ) ) {
1602 - ob_start();
1603 - et_theme_builder_frontend_render_footer(
1604 - $layouts[ ET_THEME_BUILDER_FOOTER_LAYOUT_POST_TYPE ]['id'],
1605 - $layouts[ ET_THEME_BUILDER_FOOTER_LAYOUT_POST_TYPE ]['enabled'],
1606 - $layouts[ ET_THEME_BUILDER_TEMPLATE_POST_TYPE ]
1607 - );
1608 - $html .= ob_get_clean();
1609 - }
1610 - $html .= '</div>';
1611 - echo pdfprnt_generate_template( $html, true );
1612 - die();
1613 - default:
1614 - break;
1002 + echo pdfprnt_generate_template( $html, $pdfprnt_options_array['tmpl_custom'], true );
1003 + unset( $html );
1004 + die();
1005 + break;
1006 + }
1615 1007 }
1616 1008 }
1617 1009 }
1618 1010
1619 -if ( ! function_exists( 'pdfprnt_print_vars_callback' ) ) {
1620 - /**
1621 - * Add query vars
1622 - *
1623 - * @param array $query_vars Query vars array.
1624 - */
1625 - function pdfprnt_print_vars_callback( $query_vars ) {
1626 - $query_vars[] = 'print';
1011 +/* Add query vars */
1012 +if ( ! function_exists( 'print_vars_callback' ) ) {
1013 + function print_vars_callback( $query_vars ) {
1014 + $query_vars[] = 'print';
1015 + $query_vars[] = 'tmpl';
1627 1016 return $query_vars;
1628 1017 }
1629 1018 }
1630 1019
1631 -if ( class_exists( 'ZipArchive' ) && ! class_exists( 'Pdfprnt_ZipArchive' ) ) {
1632 - /**
1633 - * Class Pdfprnt_ZipArchive for extracting
1634 - * necessary folder from zip-archive
1635 - */
1636 - class Pdfprnt_ZipArchive extends ZipArchive {
1637 - /**
1638 - * Constructor of class
1639 - *
1640 - * @param string $destination Directory for zip.
1641 - * @param string $subdir Subdirectory for zip.
1642 - */
1643 - public function extractSubdirTo( $destination, $subdir ) {
1644 - $errors = array();
1645 - $charset = get_bloginfo( 'charset' );
1646 - /* Prepare dirs */
1647 - $destination = str_replace( array( '/', '\\' ), DIRECTORY_SEPARATOR, $destination );
1648 - $subdir = str_replace( array( '/', '\\' ), '/', $subdir );
1649 -
1650 - if ( substr( $destination, mb_strlen( DIRECTORY_SEPARATOR, $charset ) * -1 ) !== DIRECTORY_SEPARATOR ) {
1651 - $destination .= DIRECTORY_SEPARATOR;
1020 +/* Add custom admin bar menu */
1021 +if ( ! function_exists( 'pdfprnt_admin_bar_menu' ) ) {
1022 + function pdfprnt_admin_bar_menu() {
1023 + global $pdfprnt_options_array, $wp_admin_bar, $wp, $posts;
1024 + if ( ! is_super_admin() || ! is_admin_bar_showing() ) /* Checking user */
1025 + return;
1026 + if ( ( ! is_search() && ! is_archive() ) || ( is_category() || ! have_posts() ) )
1027 + return;
1028 + $is_return = true;
1029 + foreach ( $posts as $post ) {
1030 + if ( in_array( get_post_type( $post ), $pdfprnt_options_array['use_types_posts'] ) ) {
1031 + $is_return = false;
1032 + break;
1652 1033 }
1653 -
1654 - if ( substr( $subdir, -1 ) !== '/' ) {
1655 - $subdir .= '/';
1656 - }
1657 - /* Extract files */
1658 - for ( $i = 0; $i < $this->numFiles; $i++ ) {
1659 - $filename = $this->getNameIndex( $i );
1660 -
1661 - if ( substr( $filename, 0, mb_strlen( $subdir, $charset ) ) === $subdir ) {
1662 - $relative_path = substr( $filename, mb_strlen( $subdir, $charset ) );
1663 - $relative_path = str_replace( array( '/', '\\' ), DIRECTORY_SEPARATOR, $relative_path );
1664 -
1665 - if ( mb_strlen( $relative_path, $charset ) > 0 ) {
1666 - if ( substr( $filename, -1 ) === '/' ) {
1667 - if ( ! is_dir( $destination . $relative_path ) ) {
1668 - if ( ! @mkdir( $destination . $relative_path, 0755, true ) ) {
1669 - $errors[ $i ] = $filename;
1670 - }
1671 - }
1672 - } else {
1673 - if ( dirname( $relative_path ) !== '.' ) {
1674 - if ( ! is_dir( $destination . dirname( $relative_path ) ) ) {
1675 - /* New dir (for file) */
1676 - @mkdir( $destination . dirname( $relative_path ), 0755, true );
1677 - }
1678 - }
1679 - /* New file */
1680 - if ( @file_put_contents( $destination . $relative_path, $this->getFromIndex( $i ) ) === false ) {
1681 - $errors[ $i ] = $filename;
1682 - }
1683 - }
1684 - }
1685 - }
1686 - }
1687 - return $errors;
1688 1034 }
1035 + if ( $is_return )
1036 + return;
1037 + if ( empty( $wp->request ) )
1038 + $current_url = add_query_arg( $wp->query_string, '', home_url() );
1039 + else
1040 + $current_url = home_url( $wp->request );
1041 + $permalink = add_query_arg( 'print', 'pdf-page', $current_url );
1042 + $wp_admin_bar->add_menu( array(
1043 + 'id' => 'pdfprnt-bar-menu',
1044 + 'title' => '<span class="admin-bar-menu-bws-icon"></span>PDF',
1045 + 'href' => $permalink
1046 + ) );
1047 + $template_url = add_query_arg( 'tmpl', '1', $permalink ); /* Adding parametrs to link */
1048 + $wp_admin_bar->add_menu( array(
1049 + 'parent' => 'pdfprnt-bar-menu',
1050 + 'id' => 'pdfprnt-template-1',
1051 + 'title' => '<img src="' . plugins_url( 'images/template_left.jpg', __FILE__ ) . '" alt="template_left" />',
1052 + 'href' => $template_url
1053 + ) );
1054 + $template_url = add_query_arg( 'tmpl', '2', $permalink ); /* Adding parametrs to link */
1055 + $wp_admin_bar->add_menu( array(
1056 + 'parent' => 'pdfprnt-bar-menu',
1057 + 'id' => 'pdfprnt-template-2',
1058 + 'title' => '<img src="' . plugins_url( 'images/template_center.jpg', __FILE__ ) . '" alt="template_center" />',
1059 + 'href' => $template_url
1060 + ) );
1061 + $template_url = add_query_arg( 'tmpl', '3', $permalink ); /* Adding parametrs to link */
1062 + $wp_admin_bar->add_menu( array(
1063 + 'parent' => 'pdfprnt-bar-menu',
1064 + 'id' => 'pdfprnt-template-3',
1065 + 'title' => '<img src="' . plugins_url( 'images/template_right.jpg', __FILE__ ) . '" alt="template_right" />',
1066 + 'href' => $template_url
1067 + ) );
1068 + unset( $current_url );
1069 + unset( $permalink );
1070 + unset( $template_url );
1689 1071 }
1690 1072 }
1691 1073
1692 -if ( ! function_exists( 'pdfprnt_download_zip' ) ) {
1693 - /**
1694 - * Download Zip
1695 - *
1696 - * @param array $zip_file Zip file name.
1697 - * @param array $upload_dir Path for upload directory.
1698 - * @param array $url Url for Curl.
1699 - * @return array $result
1700 - */
1701 - function pdfprnt_download_zip( $zip_file, $upload_dir, $url ) {
1702 - /* Check permissions */
1703 - if ( is_writable( $upload_dir ) ) {
1704 - /* Load ZIP-archive */
1705 - $result = array();
1706 - $fp = fopen( $zip_file, 'w+' );
1707 - /* File size is too big to use wp_remote_get function */
1708 - $curl = curl_init();
1709 - $curl_parametres = array(
1710 - CURLOPT_URL => $url,
1711 - CURLOPT_FILE => $fp,
1712 - CURLOPT_USERAGENT => ( isset( $_SERVER['HTTP_USER_AGENT'] ) ? sanitize_text_field( wp_unslash( $_SERVER['HTTP_USER_AGENT'] ) ) : 'Mozilla/5.0 (Windows NT 6.1; WOW64; rv:18.0) Gecko/20100101 Firefox/18.0' ),
1713 - );
1714 - curl_setopt_array( $curl, $curl_parametres );
1715 - if ( curl_exec( $curl ) ) {
1716 - $result['done'] = 'ok';
1717 - } else {
1718 - $result['error'] = curl_error( $curl ) . '<br />' . esc_html__( 'Check your internet connection', 'pdf-print' );
1719 - }
1720 - curl_close( $curl );
1721 - fclose( $fp );
1722 - } else {
1723 - $result['error'] = esc_html__( 'Cannot load files in to "uploads" folder. Check your permissions', 'pdf-print' );
1724 - }
1725 - return $result;
1074 +if ( ! function_exists('pdfprnt_admin_js') ) {
1075 + function pdfprnt_admin_js() {
1076 + if ( isset( $_GET['page'] ) && "pdf-print.php" == $_GET['page'] ) {
1077 + /* Add notice about changing in the settings page */
1078 + ?>
1079 + <script type="text/javascript">
1080 + (function($) {
1081 + $(document).ready( function() {
1082 + $( '#pdfprnt_settings_form input' ).bind( "change click select", function() {
1083 + if ( $( this ).attr( 'type' ) != 'submit' ) {
1084 + $( '.updated.fade' ).css( 'display', 'none' );
1085 + $( '#pdfprnt_settings_notice' ).css( 'display', 'block' );
1086 + };
1087 + });
1088 + $( '#pdfprnt_settings_form select' ).bind( "change", function() {
1089 + $( '.updated.fade' ).css( 'display', 'none' );
1090 + $( '#pdfprnt_settings_notice' ).css( 'display', 'block' );
1091 + });
1092 + });
1093 + })(jQuery);
1094 + </script>
1095 + <?php }
1726 1096 }
1727 1097 }
1728 1098
1729 -if ( ! function_exists( 'pdfprnt_copy_fonts' ) ) {
1730 - /**
1731 - * Extract additional fonts to uploads/pdf-print-fonts
1732 - *
1733 - * @param string $zip_file Path to zip archive.
1734 - * @param string $upload_dir Name for zip archive.
1735 - */
1736 - function pdfprnt_copy_fonts( $zip_file, $upload_dir ) {
1737 - global $pdfprnt_options;
1738 - if ( empty( $pdfprnt_options ) ) {
1739 - $pdfprnt_options = get_option( 'pdfprnt_options' );
1740 - }
1741 - $destination = $upload_dir . '/pdf-print-fonts';
1742 - if ( ! file_exists( $destination ) ) {
1743 - mkdir( $destination, 0755, true );
1744 - }
1745 - $result = array();
1746 - /* check permissions */
1747 - if ( is_writable( $destination ) ) {
1748 - $zip = new Pdfprnt_ZipArchive();
1749 - /* open zip-archive */
1750 - if ( true === $zip->open( $zip_file ) ) {
1751 - /* extract folder with fonts */
1752 - $errors = $zip->extractSubdirTo( $destination, 'mpdf-master/ttfonts' );
1753 - $zip->close();
1754 - if ( empty( $errors ) ) {
1755 - $result['done'] = esc_html__( 'Additional fonts were loaded successfully.', 'pdf-print' );
1756 - unlink( $zip_file );
1757 - } else {
1758 - $result['error'] = esc_html__( 'Some errors occurred during loading files.', 'pdf-print' );
1759 - }
1760 - } else {
1761 - $result['error'] = esc_html__( 'Can not extract files from zip-archive.', 'pdf-print' );
1762 - unlink( $zip_file );
1763 - }
1764 - } else {
1765 - $result['error'] = sprintf( esc_html__( 'Cannot create %s folder. Check your permissions.', 'pdf-print' ), '"uploads/pdf-print-fonts"' );
1766 - }
1767 - $files = scandir( $destination );
1768 - $value = isset( $result['error'] ) ? -1 : count( $files );
1769 - $opt = 'additional_fonts';
1770 - pdfprnt_update_option( $opt, $value, true );
1771 - return $result;
1772 - }
1773 -}
1774 -
1775 -
1776 -if ( ! function_exists( 'pdfprnt_extract_mpdf_library' ) ) {
1777 - /**
1778 - * Extract mPDF library ( verson 7.1.5 ) from zip-archive
1779 - *
1780 - * @param string $zip_file Path to zip-archive.
1781 - * @param string $upload_dir Path to "Upload" folder.
1782 - * @return string $result Result message.
1783 - */
1784 - function pdfprnt_extract_mpdf_library( $zip_file, $upload_dir ) {
1785 - global $wpdb;
1786 -
1787 - $result = array();
1788 - /* check permissions */
1789 - if ( is_writable( $upload_dir ) ) {
1790 - $zip = new Pdfprnt_ZipArchive();
1791 - /* open zip-archive */
1792 - if ( true === $zip->open( $zip_file ) ) {
1793 - /* extract folder with fonts */
1794 - $errors = $zip->extractSubdirTo( $upload_dir, 'mpdf' );
1795 - $zip->close();
1796 - if ( empty( $errors ) ) {
1797 - $options_default = pdfprnt_get_options_default();
1798 - $value = $options_default['mpdf_library_version'];
1799 - $result['done'] = esc_html__( 'The mPDF library has been loaded successfully.', 'pdf-print' );
1800 - unlink( $zip_file );
1801 - } else {
1802 - $result['error'] = esc_html__( 'Some errors occurred during loading files.', 'pdf-print' );
1803 - }
1804 - } else {
1805 - $result['error'] = esc_html__( 'Can not extract files from zip-archive.', 'pdf-print' );
1806 - unlink( $zip_file );
1807 - }
1808 - } else {
1809 - $result['error'] = sprintf( esc_html__( 'Cannot extract files into %s folder. Check your permissions.', 'pdf-print' ), $upload_dir );
1810 - }
1811 - if ( ! isset( $value ) ) {
1812 - $value = '6.1';
1813 - }
1814 -
1815 - $opt = 'mpdf_library_version';
1816 - pdfprnt_update_option( $opt, $value, true );
1817 - return $result;
1818 - }
1819 -}
1820 -
1821 -if ( ! function_exists( 'pdfprnt_load_and_copy' ) ) {
1822 - /**
1823 - * Download ZIP-archive with MPDF library,
1824 - * copy fonts to folder 'pdf-print-fons'
1825 - *
1826 - * @param string $zip_file path to zip-archive.
1827 - * @param string $upload_dir path to "Upload" folder.
1828 - * @param boolean $url url for archive.
1829 - * @param boolean $old_dir old dir for archive.
1830 - * @return string $result result message.
1831 - */
1832 - function pdfprnt_load_and_copy( $zip_file, $upload_dir, $url, $old_dir = '' ) {
1833 - $result = file_exists( $zip_file ) ? array( 'done' => 'ok' ) : pdfprnt_download_zip( $zip_file, $upload_dir, $url );
1834 - if ( is_multisite() ) {
1835 - switch_to_blog( 1 );
1836 - $dir = wp_upload_dir();
1837 - restore_current_blog();
1838 - } else {
1839 - $dir = wp_upload_dir();
1840 - }
1841 - if ( ! empty( $old_dir ) && plugin_dir_path( __FILE__ ) . 'mpdf' === $old_dir && isset( $result['done'] ) ) {
1842 - $result = pdfprnt_extract_mpdf_library( $zip_file, $upload_dir );
1843 - } elseif ( isset( $result['done'] ) ) {
1844 - $result = pdfprnt_copy_fonts( $zip_file, $upload_dir );
1845 - }
1846 - return $result;
1847 - }
1848 -}
1849 -
1850 -
1851 -if ( ! function_exists( 'pdfprnt_load_fonts' ) ) {
1852 - /**
1853 - * Function to load fonts for MPDF library
1854 - */
1855 - function pdfprnt_load_fonts() {
1856 - global $pdfprnt_options;
1857 - if ( empty( $pdfprnt_options ) ) {
1858 - $pdfprnt_options = get_option( 'pdfprnt_options' );
1859 - }
1860 - $ajax_request = isset( $_REQUEST['action'] ) && 'pdfprnt_load_fonts' === sanitize_text_field( wp_unslash( $_REQUEST['action'] ) ) ? true : false;
1861 - $php_request = isset( $_REQUEST['pdfprnt_action'] ) && 'pdfprnt_load_fonts' === sanitize_text_field( wp_unslash( $_REQUEST['pdfprnt_action'] ) ) ? true : false;
1862 - $verified = isset( $_REQUEST['pdfprnt_ajax_nonce'] ) && wp_verify_nonce( sanitize_text_field( wp_unslash( $_REQUEST['pdfprnt_ajax_nonce'] ) ), 'pdfprnt_ajax_nonce' ) ? true : false;
1863 - /* Sourse of the fonts */
1864 - $url = 'https://bestwebsoft.com/wp-content/plugins/paid-products/plugins/fontdownloads/?action=loading_fonts';
1865 - if ( ( $ajax_request || $php_request ) && $verified ) {
1866 - $result = array();
1867 - $flag = false;
1868 - /* get path to directory for ZIP-archive uploading */
1869 - if ( is_multisite() ) {
1870 - switch_to_blog( 1 );
1871 - $upload_dir = wp_upload_dir();
1872 - restore_current_blog();
1873 - } else {
1874 - $upload_dir = wp_upload_dir();
1875 - }
1876 - $zip_file = $upload_dir['basedir'] . '/mpdf-master.zip';
1877 - $destination = $upload_dir['basedir'] . '/pdf-print-fonts';
1878 - if ( file_exists( $destination ) ) { /* if folder with fonts already exists */
1879 - if ( is_multisite() ) {
1880 - $network_options = get_site_option( 'pdfprnt_options' ); /* get network options */
1881 - $files = scandir( $destination );
1882 - if ( intval( $network_options['additional_fonts'] ) === count( $files ) ) { /* if all fonts was loaded successfully */
1883 - $result['done'] = esc_html__( 'Additional fonts were loaded successfully.', 'pdf-print' );
1884 - $opt = 'additional_fonts';
1885 - pdfprnt_update_option( $opt, $network_options['additional_fonts'], true );
1886 - } else { /* if something wrong */
1887 - $result = pdfprnt_load_and_copy( $zip_file, $upload_dir['basedir'], $url ); /* load fonts */
1888 - }
1889 - } else {
1890 - $result = pdfprnt_load_and_copy( $zip_file, $upload_dir['basedir'], $url ); /* load fonts */
1891 - }
1892 - } else {
1893 - mkdir( $destination, 0755, true );
1894 - $result = pdfprnt_load_and_copy( $zip_file, $upload_dir['basedir'], $url );
1895 - }
1896 - if ( $ajax_request ) {
1897 - echo wp_json_encode( $result );
1898 - } else {
1899 - return $result;
1900 - }
1901 - }
1902 - if ( $ajax_request ) {
1903 - die();
1904 - }
1905 - }
1906 -}
1907 -
1908 -if ( ! function_exists( 'pdfprnt_upgrade_library' ) ) {
1909 - /**
1910 - * Function to upgrade the MPDF library from version 6.1 to verson 7.1.5
1911 - *
1912 - * @return string $result result message
1913 - */
1914 - function pdfprnt_upgrade_library() {
1915 - global $pdfprnt_options, $wpdb;
1916 -
1917 - $ajax_request = isset( $_REQUEST['action'] ) && 'pdfprnt_upgrade_library' === $_REQUEST['action'] ? true : false;
1918 -
1919 - $php_request = isset( $_REQUEST['pdfprnt_action'] ) && 'pdfprnt_upgrade_library' === sanitize_text_field( wp_unslash( $_REQUEST['pdfprnt_action'] ) ) ? true : false;
1920 - $verified = isset( $_REQUEST['pdfprnt_ajax_nonce'] ) && wp_verify_nonce( sanitize_text_field( wp_unslash( $_REQUEST['pdfprnt_ajax_nonce'] ) ), 'pdfprnt_ajax_nonce' ) ? true : false;
1921 - $old_dir = plugin_dir_path( __FILE__ ) . 'mpdf';
1922 - $result = array();
1923 - if ( ( $ajax_request || $php_request ) && true === $verified ) {
1924 - /* get path to directory for ZIP-archive uploading */
1925 - if ( is_multisite() ) {
1926 - switch_to_blog( 1 );
1927 - $upload_dir = wp_upload_dir();
1928 - restore_current_blog();
1929 - } else {
1930 - $upload_dir = wp_upload_dir();
1931 - }
1932 - $zip_file = $upload_dir['basedir'] . '/mpdf.zip';
1933 -
1934 - /* Sourse of the MPDF library */
1935 - $url = 'https://bestwebsoft.com/wp-content/plugins/paid-products/plugins/pdf-print-mpdf/?action=loading_library';
1936 - $new_dir = $upload_dir['basedir'] . '/vendor';
1937 -
1938 - if ( ! file_exists( $new_dir ) ) {
1939 - $result = pdfprnt_load_and_copy( $zip_file, $upload_dir['basedir'], $url, $old_dir ); /* load library */
1940 - }
1941 - if ( ! isset( $result['error'] ) ) {
1942 - pdfprnt_delete_old_library( $old_dir );
1943 - }
1944 - }
1945 - if ( true === $ajax_request ) {
1946 - echo wp_json_encode( $result );
1947 - wp_die();
1948 - } else {
1949 - return $result;
1950 - }
1951 - }
1952 -}
1953 -
1954 -if ( ! function_exists( 'pdfprnt_pdf_count' ) ) {
1955 - /**
1956 - * Function to update pdf count generation
1957 - */
1958 - function pdfprnt_pdf_count() {
1959 - global $pdfprnt_options;
1960 - if ( empty( $pdfprnt_options ) ) {
1961 - $pdfprnt_options = get_option( 'pdfprnt_options' );
1962 - }
1963 - if ( 1 === $pdfprnt_options['count_generation'] ) {
1964 - $verified = isset( $_REQUEST['pdfprnt_ajax_nonce'] ) && wp_verify_nonce( sanitize_text_field( wp_unslash( $_REQUEST['pdfprnt_ajax_nonce'] ) ), 'pdfprnt_ajax_nonce' ) ? true : false;
1965 - if ( true === $verified && isset( $_REQUEST['id'] ) ) {
1966 - $count_generation = get_post_meta( intval( $_REQUEST['id'] ), 'pdfprnt_count_generation', true );
1967 - update_post_meta( intval( $_REQUEST['id'] ), 'pdfprnt_count_generation', (int) ++$count_generation );
1968 - }
1969 - }
1970 - wp_die();
1971 - }
1972 -}
1973 -
1974 -if ( ! function_exists( 'pdfprnt_delete_old_library' ) ) {
1975 - /**
1976 - * Delete old library
1977 - *
1978 - * @param string $dir path to library dir.
1979 - * @return bool resullt removing dir.
1980 - */
1981 - function pdfprnt_delete_old_library( $dir ) {
1982 - $files = scandir( $dir );
1983 - $files = array_diff( $files, array( '.', '..' ) );
1984 - foreach ( $files as $file ) {
1985 - ( is_dir( "$dir/$file" ) ) ? pdfprnt_delete_old_library( "$dir/$file" ) : unlink( "$dir/$file" );
1986 - }
1987 - return rmdir( $dir );
1988 - }
1989 -}
1990 -
1991 -if ( ! function_exists( 'pdfprnt_update_option' ) ) {
1992 - /**
1993 - * Update options
1994 - *
1995 - * @param string $opt option slug.
1996 - * @param string $value new value.
1997 - * @param bool $update_network (Optional) flag for update network.
1998 - */
1999 - function pdfprnt_update_option( $opt, $value, $update_network = false ) {
2000 - global $pdfprnt_options;
2001 - if ( empty( $pdfprnt_options ) ) {
2002 - $pdfprnt_options = get_option( 'pdfprnt_options' );
2003 - }
2004 - $pdfprnt_options[ $opt ] = $value;
2005 - update_option( 'pdfprnt_options', $pdfprnt_options );
2006 - if ( $update_network ) {
2007 - $network_options = get_site_option( 'pdfprnt_options' );
2008 - $network_options[ $opt ] = $value;
2009 - update_site_option( 'pdfprnt_options', $network_options );
2010 - }
2011 - }
2012 -}
2013 -
2014 -if ( ! function_exists( 'pdfprnt_get_pdf_page_sizes' ) ) {
2015 - /**
2016 - * Pafe sizes array
2017 - */
2018 - function pdfprnt_get_pdf_page_sizes() {
2019 - $page_sizes = array(
2020 - 'A0',
2021 - 'A1',
2022 - 'A2',
2023 - 'A3',
2024 - 'A4',
2025 - 'A5',
2026 - 'A6',
2027 - 'A7',
2028 - 'A8',
2029 - 'A9',
2030 - 'A10',
2031 - 'B0',
2032 - 'B1',
2033 - 'B2',
2034 - 'B3',
2035 - 'B4',
2036 - 'B5',
2037 - 'B6',
2038 - 'B7',
2039 - 'B8',
2040 - 'B9',
2041 - 'B10',
2042 - 'C0',
2043 - 'C1',
2044 - 'C2',
2045 - 'C3',
2046 - 'C4',
2047 - 'C5',
2048 - 'C6',
2049 - 'C7',
2050 - 'C8',
2051 - 'C9',
2052 - 'C10',
2053 - '4A0',
2054 - '2A0',
2055 - 'RA0',
2056 - 'RA1',
2057 - 'RA2',
2058 - 'RA3',
2059 - 'RA4',
2060 - 'SRA0',
2061 - 'SRA1',
2062 - 'SRA2',
2063 - 'SRA3',
2064 - 'SRA4',
2065 - 'Letter',
2066 - 'Legal',
2067 - 'Executive',
2068 - 'Folio',
2069 - 'Demy',
2070 - 'Royal',
2071 - 'A',
2072 - 'B',
2073 - );
2074 - $page_sizes = apply_filters( 'pdfprnt_get_pdf_page_sizes', $page_sizes );
2075 - return $page_sizes;
2076 - }
2077 -}
2078 -
2079 -if ( ! function_exists( 'pdfprnt_plugin_banner' ) ) {
2080 - /**
2081 - * Display plugn banner
2082 - */
2083 - function pdfprnt_plugin_banner() {
2084 - global $hook_suffix, $pdfprnt_plugin_info;
2085 - if ( 'plugins.php' === $hook_suffix ) {
2086 - bws_plugin_banner_to_settings( $pdfprnt_plugin_info, 'pdfprnt_options', 'pdf-print', 'admin.php?page=pdf-print.php' );
2087 - if ( function_exists( 'bws_plugin_banner_to_promo' ) ) {
2088 - bws_plugin_banner_to_promo( $pdfprnt_plugin_info, 'pdfprnt_options', 'pdf-print', 'admin.php?page=pdf-print.php', array( __( 'Test your PDF Generation Settings', 'bestwebsoft' ), __( "Ensure your PDF & Print plugin is correctly configured. Check your settings now!", 'bestwebsoft' ) ) );
2089 - }
2090 -
2091 - if ( isset( $_REQUEST['page'] ) && 'pdf-print.php' === $_REQUEST['page'] ) {
2092 - bws_plugin_suggest_feature_banner( $pdfprnt_plugin_info, 'pdfprnt_options', 'pdf-print' );
2093 - }
2094 - }
2095 - }
2096 -}
2097 -
2098 -if ( ! function_exists( 'pdfprnt_register_buttons_widget' ) ) {
2099 - /**
2100 - * Register buttons Widget
2101 - */
2102 - function pdfprnt_register_buttons_widget() {
2103 - global $pdfprnt_is_old_php;
2104 - if ( ! $pdfprnt_is_old_php ) {
2105 - if ( ! class_exists( 'Pdfprnt_Buttons_Widget' ) ) {
2106 - require_once dirname( __FILE__ ) . '/includes/class-pdfprnt-buttons-widget.php';
2107 - }
2108 - register_widget( 'Pdfprnt_Buttons_Widget' );
2109 - }
2110 - }
2111 -}
2112 -
2113 -
2114 -if ( ! function_exists( 'pdfprnt_uninstall' ) ) {
2115 - /**
2116 - * Deleting plugin options on uninstalling
2117 - */
1099 +/* Deleting plugin options on uninstalling */
1100 +if( ! function_exists( 'pdfprnt_uninstall' ) ) {
2118 1101 function pdfprnt_uninstall() {
2119 - if ( ! function_exists( 'get_plugins' ) ) {
2120 - require_once ABSPATH . 'wp-admin/includes/plugin.php';
2121 - }
2122 - $all_plugins = get_plugins();
2123 -
2124 - if ( ! array_key_exists( 'pdf-print-pro/pdf-print-pro.php' /*pls */ && ! array_key_exists( 'pdf-print-plus/pdf-print-plus.php', $all_plugins )/* pls*/, $all_plugins ) ) {
2125 - global $wpdb;
2126 - if ( is_multisite() ) {
2127 - /* Get all blog ids */
2128 - $blogids = $wpdb->get_col( "SELECT `blog_id` FROM $wpdb->blogs" );
2129 - $tables = '';
2130 - $old_blog = $wpdb->blogid;
2131 - foreach ( $blogids as $blog_id ) {
2132 - switch_to_blog( $blog_id );
2133 - delete_option( 'pdfprnt_options' );
2134 - delete_option( 'widget_pdfprint_buttons' );
2135 - }
2136 - switch_to_blog( $old_blog );
2137 - delete_site_option( 'pdfprnt_options' );
2138 - delete_option( 'widget_pdfprnt_buttons' );
2139 - } else {
2140 - delete_option( 'pdfprnt_options' );
2141 - delete_option( 'widget_pdfprnt_buttons' );
2142 - }
2143 - }
2144 -
2145 - require_once dirname( __FILE__ ) . '/bws_menu/bws_include.php';
2146 - bws_include_init( plugin_basename( __FILE__ ) );
2147 - bws_delete_plugin( plugin_basename( __FILE__ ) );
1102 + delete_option( 'pdfprnt_options_array' );
1103 + delete_site_option( 'pdfprnt_options_array' );
2148 1104 }
2149 1105 }
2150 1106
2151 1107 /* Adding function to output PDF document or pirnt page */
2152 -register_activation_hook( __FILE__, 'pdfprnt_plugin_activate' );
2153 -add_action( 'wp', 'pdfprnt_print', 20, 1 );
2154 -add_action( 'wp_head', 'pdfprnt_auto_show_buttons_search_archive' );
2155 -add_action( 'plugins_loaded', 'pdfprnt_plugins_loaded' );
2156 -/* Initialization */
2157 -add_action( 'init', 'pdfprnt_init' );
2158 -add_action( 'admin_init', 'pdfprnt_admin_init' );
1108 +add_action( 'wp', 'pdfprnt_print' );
1109 +/* Initialization default plugin settings */
1110 +add_action( 'init', 'pdfprnt_settings' );
1111 +/* Checks version of Wordpress required for plugin */
1112 +add_action( 'admin_init', 'pdfprnt_version_check' );
1113 +/* Load internationalization */
1114 +add_action( 'init', 'pdfprnt_plugin_init' );
2159 1115 /* Adding stylesheets */
2160 -add_action( 'admin_enqueue_scripts', 'pdfprnt_admin_head' );
2161 -add_action( 'wp_enqueue_scripts', 'pdfprnt_admin_head' );
1116 +add_action( 'init', 'pdfprnt_admin_head' );
2162 1117 /* Adding 'BWS Plugins' admin menu */
2163 -add_action( 'admin_menu', 'pdfprnt_add_admin_menu' );
1118 +add_action( 'admin_menu', 'pdfprnt_add_pages' );
1119 +/* Add menu to bar menu WordPress */
1120 +add_action( 'admin_bar_menu', 'pdfprnt_admin_bar_menu', 1000 );
1121 +add_action( 'admin_head', 'pdfprnt_admin_js' );
1122 +
2164 1123 /* Add query vars */
2165 -add_filter( 'query_vars', 'pdfprnt_print_vars_callback' );
2166 -
2167 -add_shortcode( 'bws_pdfprint', 'pdfprnt_shortcode' );
2168 -add_shortcode( 'bws_pdfprint_pagebreak', 'pdfprnt_shortcode_pagebreak' );
2169 -
2170 -add_filter( 'bwsplgns_pdf_replace_content', 'pdfprnt_qr_code_content', 10, 1 );
2171 -
2172 -/* custom filter for bws button in tinyMCE */
2173 -add_filter( 'bws_shortcode_button_content', 'pdfprnt_shortcode_button_content' );
2174 -
1124 +add_filter( 'query_vars', 'print_vars_callback' );
1125 +/* Adds "Settings" link to the plugin action page */
1126 +add_filter( 'plugin_action_links', 'pdfprnt_action_links', 10, 2 );
2175 1127 /* Additional links on the plugin page */
2176 -add_filter( 'plugin_action_links', 'pdfprnt_action_links', 10, 2 );
2177 1128 add_filter( 'plugin_row_meta', 'pdfprnt_links', 10, 2 );
2178 1129 /* Adding buttons plugin to content */
2179 1130 add_filter( 'the_content', 'pdfprnt_content' );
2180 -/* Remove Print word from excerpt */
2181 -add_filter( 'get_the_excerpt', 'pdfprnt_excerpt' );
2182 -/* load additional fonts */
2183 -add_action( 'wp_ajax_pdfprnt_load_fonts', 'pdfprnt_load_fonts' );
2184 -/* load mPDF library */
2185 -add_action( 'wp_ajax_pdfprnt_upgrade_library', 'pdfprnt_upgrade_library' );
2186 -add_action( 'wp_ajax_pdfprnt_pdf_count', 'pdfprnt_pdf_count' );
2187 -add_action( 'wp_ajax_nopriv_pdfprnt_pdf_count', 'pdfprnt_pdf_count' );
2188 -/* Adding banner */
2189 -add_action( 'admin_notices', 'pdfprnt_plugin_banner' );
2190 1131
2191 -/* Register widget */
2192 -add_action( 'widgets_init', 'pdfprnt_register_buttons_widget' );
2193 -
2194 -add_action( 'bwsplgns_display_pdf_print_buttons', 'pdfprnt_display_plugin_buttons', 10, 2 );
1132 +register_uninstall_hook( __FILE__, 'pdfprnt_uninstall' );
1133 +?>