PluginProbe
E2Pdf – Export Pdf Tool for WordPress / 1.32.49
E2Pdf – Export Pdf Tool for WordPress v1.32.49
1.32.49 1.32.48 1.32.43 1.32.40 1.32.34 1.32.32 1.32.31 1.32.26 1.32.22 1.32.23 1.32.18 1.32.17 1.32.15 trunk 1.00.00 1.00.13 1.01.01 1.02.02 1.03.07 1.04.07 1.05.03 1.06.02 1.07.11 1.08.00 1.08.06 All 72 releases
← All changes | classes/model/e2pdf-options.php +806 -87 1.00.131.32.49 View file →
@@ -1,14 +1,12 @@
1 1 <?php
2 2
3 3 /**
4 - * E2pdf Options Helper
5 - *
6 - * @copyright Copyright 2017 https://e2pdf.com
7 - * @license GPL v2
8 - * @version 1
9 - * @link https://e2pdf.com
10 - * @since 0.00.01
4 + * File: /model/e2pdf-options.php
5 + *
6 + * @package E2Pdf
7 + * @license GPLv3
8 + * @link https://e2pdf.com
11 9 */
12 10 if (!defined('ABSPATH')) {
13 11 die('Access denied.');
14 12 }
@@ -14,119 +12,834 @@
14 12 }
15 13
16 14 class Model_E2pdf_Options extends Model_E2pdf_Model {
17 15
18 - /**
19 - * Get Options list
20 - *
21 - * @param bool $all - Get all options
22 - * @param array $exclude_group - Array list of groups to exclude from the list
23 - *
24 - * @return array() - List of options
25 - */
26 - function __construct() {
27 - parent::__construct();
28 - }
29 -
16 + // get options
30 17 public static function get_options($all = true, $only_group = array(), $exclude = false) {
31 18 $helper = Helper_E2pdf_Helper::instance();
19 + $extensions_options = array();
20 + if ($all) {
21 + $extensions_options[] = array(
22 + 'key' => 'e2pdf_disabled_extensions',
23 + 'value' => get_option('e2pdf_disabled_extensions', array()),
24 + );
25 + } else {
26 + $model_e2pdf_extension = new Model_E2pdf_Extension();
27 + $extensions = $model_e2pdf_extension->extensions(false);
28 + $disabled_extensions = get_option('e2pdf_disabled_extensions', array());
29 + foreach ($extensions as $extension) {
30 + $extension_title = ucfirst($extension);
31 + switch ($extension) {
32 + case 'caldera':
33 + $extension_title = 'Caldera Forms';
34 + break;
35 + case 'calc':
36 + $extension_title = 'Cost Calculator Builder';
37 + break;
38 + case 'divi':
39 + $extension_title = 'Divi Contact Forms';
40 + break;
41 + case 'elementor':
42 + $extension_title = 'Elementor Forms';
43 + break;
44 + case 'fluent':
45 + $extension_title = 'Fluent Forms';
46 + break;
47 + case 'formidable':
48 + $extension_title = 'Formidable Forms';
49 + break;
50 + case 'forminator':
51 + $extension_title = 'Forminator Forms';
52 + break;
53 + case 'gravity':
54 + $extension_title = 'Gravity Forms';
55 + break;
56 + case 'ninja':
57 + $extension_title = 'Ninja Forms';
58 + break;
59 + case 'woocommerce':
60 + $extension_title = 'WooCommerce';
61 + break;
62 + // phpcs:ignore WordPress.WP.CapitalPDangit.Misspelled
63 + case 'wordpress':
64 + $extension_title = 'WordPress';
65 + break;
66 + case 'wpcf7':
67 + $extension_title = 'Contact Form 7';
68 + break;
69 + case 'wpforms':
70 + $extension_title = 'WPForms';
71 + break;
72 + case 'jetformbuilder':
73 + $extension_title = 'JetFormBuilder';
74 + break;
75 + default:
76 + break;
77 + }
78 + $extensions_options[] = array(
79 + 'name' => $extension_title,
80 + 'key' => 'e2pdf_disabled_extensions[]',
81 + 'value' => is_array($disabled_extensions) && in_array($extension, $disabled_extensions, true) ? $extension : '',
82 + 'default_value' => '',
83 + 'type' => 'select',
84 + 'options' => array(
85 + array(
86 + 'key' => '',
87 + 'value' => __('Enabled', 'e2pdf'),
88 + ),
89 + array(
90 + 'key' => $extension,
91 + 'value' => __('Disabled', 'e2pdf'),
92 + ),
93 + ),
94 + );
95 + }
96 + if (isset($extensions_options['0'])) {
97 + $extensions_options['0']['header'] = __('Extensions', 'e2pdf');
98 + }
99 + }
100 +
101 + $processors = array(
102 + '0' => 'Default (Stable Version)',
103 + );
104 + if (get_option('e2pdf_debug', '0')) {
105 + $processors = array(
106 + '0' => 'Default (Stable Version)',
107 + '2' => 'Backport (1.16.19 Version)',
108 + '1' => 'Release Candidate (Debug Mode)',
109 + );
110 + }
111 +
32 112 $options = array(
33 113 'static_group' => array(
34 - 'name' => __('Static', 'e2pdf'),
114 + 'name' => '',
35 115 'options' => array(
36 116 array(
37 117 'key' => 'e2pdf_version',
38 - 'value' => $helper->get('version')
118 + 'value' => $helper->get('version'),
39 119 ),
40 120 array(
41 121 'key' => 'e2pdf_license',
42 - 'value' => get_option('e2pdf_license') === false ? false : get_option('e2pdf_license'),
122 + 'value' => get_option('e2pdf_license', false),
43 123 ),
44 124 array(
45 - 'key' => 'e2pdf_force_update',
46 - 'value' => get_site_option('e2pdf_force_update') === false ? false : get_site_option('e2pdf_force_update'),
125 + 'key' => 'e2pdf_email',
126 + 'value' => get_option('e2pdf_email', ''),
47 127 ),
48 128 array(
49 - 'key' => 'e2pdf_extensions',
50 - 'value' => get_option('e2pdf_extensions') === false ? array() : get_option('e2pdf_extensions'),
129 + 'key' => 'e2pdf_templates_screen_per_page',
130 + 'value' => get_option('e2pdf_templates_screen_per_page', '20'),
51 131 ),
52 132 array(
53 - 'key' => 'e2pdf_email',
54 - 'value' => get_option('e2pdf_email') === false ? false : get_option('e2pdf_email'),
55 - )
56 - )
133 + 'key' => 'e2pdf_cached_fonts',
134 + 'value' => get_option('e2pdf_cached_fonts', array()),
135 + ),
136 + array(
137 + 'key' => 'e2pdf_nonce_key',
138 + 'value' => get_option('e2pdf_nonce_key', wp_generate_password('64')),
139 + ),
140 + ),
57 141 ),
58 142 'common_group' => array(
59 143 'name' => __('Common', 'e2pdf'),
60 144 'options' => array(
61 145 array(
146 + 'name' => __('E2Pdf.com Account E-mail Address', 'e2pdf'),
147 + 'key' => 'e2pdf_user_email',
148 + 'default_value' => '',
149 + 'value' => get_option('e2pdf_user_email', ''),
150 + 'type' => 'text',
151 + 'placeholder' => __('E2Pdf.com Account E-mail Address', 'e2pdf'),
152 + ),
153 + array(
154 + 'name' => __('API Server', 'e2pdf'),
155 + 'key' => 'e2pdf_api_custom',
156 + 'value' => apply_filters('e2pdf_api', get_option('e2pdf_api', 'api.e2pdf.com')),
157 + 'default_value' => 'api.e2pdf.com',
158 + 'type' => get_option('e2pdf_api', 'api.e2pdf.com') !== apply_filters('e2pdf_api', get_option('e2pdf_api', 'api.e2pdf.com')) ? 'text' : 'hidden',
159 + 'readonly' => 'readonly',
160 + ),
161 + array(
162 + 'name' => __('API Server', 'e2pdf'),
163 + 'key' => 'e2pdf_api',
164 + 'value' => get_option('e2pdf_api', 'api.e2pdf.com'),
165 + 'default_value' => 'api.e2pdf.com',
166 + 'type' => get_option('e2pdf_api', 'api.e2pdf.com') !== apply_filters('e2pdf_api', get_option('e2pdf_api', 'api.e2pdf.com')) ? 'hidden' : 'select',
167 + 'options' => array(
168 + 'api.e2pdf.com' => 'api.e2pdf.com (US, Cloudflare)',
169 + 'api2.e2pdf.com' => 'api2.e2pdf.com (US)',
170 + 'api3.e2pdf.com' => 'api3.e2pdf.com (EU, Cloudflare)',
171 + 'api4.e2pdf.com' => 'api4.e2pdf.com (EU)',
172 + ),
173 + ),
174 + array(
175 + 'name' => __('API Transfer', 'e2pdf'),
176 + 'key' => 'e2pdf_api_protocol',
177 + 'value' => get_option('e2pdf_api_protocol', '0'),
178 + 'default_value' => '0',
179 + 'type' => 'select',
180 + 'options' => array(
181 + '0' => 'Base64 Encoding',
182 + '1' => 'Raw Encoding',
183 + ),
184 + ),
185 + array(
186 + 'name' => __('API Connection Timout (sec)', 'e2pdf'),
187 + 'key' => 'e2pdf_connection_timeout',
188 + 'value' => get_option('e2pdf_connection_timeout', '300'),
189 + 'default_value' => '300',
190 + 'type' => 'text',
191 + 'class' => 'e2pdf-numbers',
192 + 'placeholder' => '0',
193 + ),
194 + array(
62 195 'name' => __('PDF Processor', 'e2pdf'),
63 196 'key' => 'e2pdf_processor',
64 - 'value' => get_option('e2pdf_processor') === false ? 0 : get_option('e2pdf_processor'),
65 - 'default_value' => 0,
197 + 'value' => get_option('e2pdf_processor', '0'),
198 + 'default_value' => '0',
66 199 'type' => 'select',
200 + 'options' => $processors,
201 + ),
202 + array(
203 + 'name' => __('Font Processor', 'e2pdf'),
204 + 'key' => 'e2pdf_font_processor',
205 + 'value' => get_option('e2pdf_font_processor', '0'),
206 + 'default_value' => '0',
207 + 'type' => 'hidden',
67 208 'options' => array(
68 - 'Latest', 'Dev'
69 - )
209 + 'Plain Fonts',
210 + 'Complex Fonts',
211 + ),
70 212 ),
71 213 array(
72 - 'name' => __('Debug', 'e2pdf'),
73 - 'key' => 'e2pdf_debug',
74 - 'value' => get_option('e2pdf_debug') === false ? 0 : get_option('e2pdf_debug'),
75 - 'default_value' => 0,
214 + 'name' => __('Release Candidate Builds', 'e2pdf'),
215 + 'key' => 'e2pdf_dev_update',
216 + 'value' => get_option('e2pdf_dev_update', '0'),
217 + 'default_value' => '0',
76 218 'type' => 'checkbox',
77 - 'placeholder' => __('Turn on Debug mode', 'e2pdf'),
219 + 'checkbox_value' => '1',
220 + 'placeholder' => __('Update from E2Pdf.com', 'e2pdf'),
78 221 ),
79 222 array(
80 - 'name' => __('Hide warnings', 'e2pdf'),
223 + 'name' => __('URL Format', 'e2pdf'),
224 + 'key' => 'e2pdf_url_format',
225 + 'value' => get_option('e2pdf_url_format', 'auto'),
226 + 'default_value' => 'auto',
227 + 'type' => 'select',
228 + 'options' => array(
229 + 'auto' => 'Auto',
230 + 'siteurl' => 'WordPress Address (URL)',
231 + 'home' => 'Site Address (URL)',
232 + ),
233 + ),
234 + array(
235 + 'name' => __('URL Rewrite', 'e2pdf'),
236 + 'key' => 'e2pdf_mod_rewrite',
237 + 'value' => get_option('e2pdf_mod_rewrite', '0'),
238 + 'default_value' => '0',
239 + 'type' => 'checkbox',
240 + 'checkbox_value' => '1',
241 + 'placeholder' => __('URL Rewrite', 'e2pdf'),
242 + ),
243 + array(
244 + 'name' => '',
245 + 'key' => 'e2pdf_mod_rewrite_url',
246 + 'default_value' => '',
247 + 'value' => get_option('e2pdf_mod_rewrite_url', 'e2pdf/%uid%/'),
248 + 'type' => 'text',
249 + 'class' => 'e2pdf-mod-rewrite-url',
250 + 'placeholder' => 'e2pdf/%uid%/',
251 + 'prefield' => rtrim($helper->get_frontend_site_url(), '/') . '/',
252 + ),
253 + array(
254 + 'name' => __('Cache', 'e2pdf'),
255 + 'key' => 'e2pdf_cache',
256 + 'value' => get_option('e2pdf_cache', '1'),
257 + 'default_value' => '0',
258 + 'type' => 'checkbox',
259 + 'checkbox_value' => '1',
260 + 'placeholder' => __('Objects Cache', 'e2pdf'),
261 + ),
262 + array(
263 + 'name' => '',
264 + 'key' => 'e2pdf_cache_fonts',
265 + 'value' => get_option('e2pdf_cache_fonts', '1'),
266 + 'default_value' => '0',
267 + 'type' => 'checkbox',
268 + 'checkbox_value' => '1',
269 + 'placeholder' => __('Fonts Cache', 'e2pdf'),
270 + ),
271 + array(
272 + 'name' => '',
273 + 'key' => 'e2pdf_cache_pdfs',
274 + 'value' => get_option('e2pdf_cache_pdfs', '0'),
275 + 'default_value' => '0',
276 + 'type' => 'checkbox',
277 + 'checkbox_value' => '1',
278 + 'placeholder' => __('PDFs Cache', 'e2pdf'),
279 + ),
280 + array(
281 + 'name' => '',
282 + 'key' => 'e2pdf_cache_pdfs_ttl',
283 + 'default_value' => '',
284 + 'value' => max(10, (int) get_option('e2pdf_cache_pdfs_ttl', '180')),
285 + 'type' => 'text',
286 + 'placeholder' => '10',
287 + 'prefield' => __('TTL (sec)', 'e2pdf') . ':',
288 + ),
289 + array(
290 + 'name' => __('PDF Ajax Loader', 'e2pdf'),
291 + 'key' => 'e2pdf_download_loader',
292 + 'value' => get_option('e2pdf_download_loader', '0'),
293 + 'default_value' => '0',
294 + 'type' => 'select',
295 + 'options' => array(
296 + '0' => __('Disabled', 'e2pdf'),
297 + '1' => __('Enabled', 'e2pdf'),
298 + ),
299 + ),
300 + array(
301 + 'name' => __('Fallback PDF Viewer', 'e2pdf'),
302 + 'key' => 'e2pdf_download_inline_fallback_viewer',
303 + 'value' => get_option('e2pdf_download_inline_fallback_viewer', '0'),
304 + 'default_value' => '0',
305 + 'type' => 'select',
306 + 'options' => array(
307 + '0' => __('Disabled', 'e2pdf'),
308 + '1' => 'PDF.js',
309 + ),
310 + ),
311 + array(
312 + 'name' => '',
313 + 'key' => 'e2pdf_download_inline_chrome_ios_fix',
314 + 'value' => get_option('e2pdf_download_inline_chrome_ios_fix', '0'),
315 + 'default_value' => '0',
316 + 'type' => 'checkbox',
317 + 'checkbox_value' => '1',
318 + 'placeholder' => __('Fix Chrome iOS Download Name (might be not compatible with certain setups)', 'e2pdf'),
319 + ),
320 + array(
321 + 'name' => __('New Edit Layout', 'e2pdf'),
322 + 'key' => 'e2pdf_new_edit_layout',
323 + 'value' => get_option('e2pdf_new_edit_layout', '1'),
324 + 'default_value' => '0',
325 + 'type' => 'checkbox',
326 + 'checkbox_value' => '1',
327 + 'placeholder' => __('New Edit Layout', 'e2pdf'),
328 + ),
329 + array(
330 + 'name' => __('Hide Warnings', 'e2pdf'),
81 331 'key' => 'e2pdf_hide_warnings',
82 - 'value' => get_option('e2pdf_hide_warnings') === false ? 0 : get_option('e2pdf_hide_warnings'),
83 - 'default_value' => 0,
332 + 'value' => get_option('e2pdf_hide_warnings', '0'),
333 + 'default_value' => '0',
84 334 'type' => 'checkbox',
85 - 'placeholder' => __('Hide warnings', 'e2pdf'),
335 + 'checkbox_value' => '1',
336 + 'placeholder' => __('Hide Warnings', 'e2pdf'),
86 337 ),
87 338 array(
88 - 'name' => __('Connection Timout', 'e2pdf'),
89 - 'key' => 'e2pdf_connection_timeout',
90 - 'value' => get_option('e2pdf_connection_timeout') === false ? 300 : get_option('e2pdf_connection_timeout'),
91 - 'default_value' => 30,
339 + 'name' => __('Local Images', 'e2pdf'),
340 + 'key' => 'e2pdf_images_remote_request',
341 + 'value' => get_option('e2pdf_images_remote_request', '0'),
342 + 'default_value' => '0',
343 + 'type' => 'checkbox',
344 + 'checkbox_value' => '1',
345 + 'placeholder' => __('Load via Remote Request', 'e2pdf'),
346 + ),
347 + array(
348 + 'name' => __('Images Timout (sec)', 'e2pdf'),
349 + 'key' => 'e2pdf_images_timeout',
350 + 'value' => get_option('e2pdf_images_timeout', '30'),
351 + 'default_value' => '30',
92 352 'type' => 'text',
93 353 'class' => 'e2pdf-numbers',
94 - 'placeholder' => 0
354 + 'placeholder' => '0',
95 355 ),
96 356 array(
357 + 'name' => __('Bulk Export Interval (sec)', 'e2pdf'),
358 + 'key' => 'e2pdf_bulk_export_interval',
359 + 'value' => max(10, (int) get_option('e2pdf_bulk_export_interval', '10')),
360 + 'default_value' => '10',
361 + 'type' => 'text',
362 + 'class' => 'e2pdf-numbers',
363 + 'placeholder' => '10',
364 + ),
365 + array(
366 + 'name' => __('Undo Limit', 'e2pdf'),
367 + 'key' => 'e2pdf_undo_limit',
368 + 'value' => get_option('e2pdf_undo_limit', '20'),
369 + 'default_value' => '20',
370 + 'type' => 'text',
371 + 'class' => 'e2pdf-numbers',
372 + 'placeholder' => '0',
373 + ),
374 + array(
375 + 'name' => __('Revisions Limit', 'e2pdf'),
376 + 'key' => 'e2pdf_revisions_limit',
377 + 'value' => get_option('e2pdf_revisions_limit', '3'),
378 + 'default_value' => '3',
379 + 'type' => 'text',
380 + 'class' => 'e2pdf-numbers',
381 + 'placeholder' => '0',
382 + ),
383 + array(
384 + 'name' => __('Debug Mode', 'e2pdf'),
385 + 'key' => 'e2pdf_debug',
386 + 'value' => get_option('e2pdf_debug', '0'),
387 + 'default_value' => '0',
388 + 'type' => 'checkbox',
389 + 'checkbox_value' => '1',
390 + 'placeholder' => __('Enable Debug Mode', 'e2pdf'),
391 + ),
392 + array(
393 + 'name' => __('Recovery Mode E-mail', 'e2pdf'),
394 + 'key' => 'e2pdf_recovery_mode_email',
395 + 'value' => get_option('e2pdf_recovery_mode_email', ''),
396 + 'default_value' => '',
397 + 'type' => get_option('e2pdf_debug', '0') ? 'text' : 'hidden',
398 + 'placeholder' => __('Recovery Mode E-mail', 'e2pdf'),
399 + ),
400 + array(
97 401 'name' => __('Memory/Time Usage', 'e2pdf'),
98 402 'key' => 'e2pdf_memory_time',
99 - 'value' => get_option('e2pdf_memory_time') === false ? 0 : get_option('e2pdf_memory_time'),
100 - 'default_value' => 0,
101 - 'type' => 'checkbox',
403 + 'value' => get_option('e2pdf_memory_time', '0'),
404 + 'default_value' => '0',
405 + 'type' => get_option('e2pdf_debug', '0') ? 'checkbox' : 'hidden',
406 + 'checkbox_value' => '1',
102 407 'placeholder' => __('Show Memory/Time Usage', 'e2pdf'),
103 408 ),
409 + ),
410 + ),
411 + 'maintenance_group' => array(
412 + 'name' => __('Maintenance', 'e2pdf'),
413 + 'action' => 'maintenance',
414 + 'options' => array(),
415 + ),
416 + 'fonts_group' => array(
417 + 'name' => __('Fonts', 'e2pdf'),
418 + 'action' => 'fonts',
419 + 'options' => array(),
420 + ),
421 + 'permissions_group' => array(
422 + 'name' => __('Permissions', 'e2pdf'),
423 + 'action' => 'permissions',
424 + 'options' => array(),
425 + ),
426 + 'zapier_group' => array(
427 + 'name' => 'Zapier',
428 + 'options' => array(
104 429 array(
105 - 'name' => __('Developer Mode', 'e2pdf'),
106 - 'key' => 'e2pdf_developer',
107 - 'value' => get_option('e2pdf_developer') === false ? 0 : get_option('e2pdf_developer'),
108 - 'default_value' => 0,
109 - 'type' => 'checkbox',
110 - 'placeholder' => __('Turn on Developer mode', 'e2pdf'),
430 + 'name' => 'Site URL',
431 + 'value' => $helper->get_site_url(),
432 + 'default_value' => '',
433 + 'type' => 'text',
434 + 'readonly' => 'readonly',
435 + 'class' => 'e2pdf-copy-field',
111 436 ),
112 437 array(
113 - 'name' => __('Developer IPs', 'e2pdf'),
114 - 'key' => 'e2pdf_developer_ips',
115 - 'value' => get_option('e2pdf_developer_ips') === false ? '' : get_option('e2pdf_developer_ips'),
438 + 'name' => 'API Key',
439 + 'key' => 'e2pdf_zapier_api_key',
440 + 'value' => get_option('e2pdf_zapier_api_key'),
116 441 'default_value' => '',
117 - 'type' => 'textarea',
118 - 'placeholder' => __('Developer IPs', 'e2pdf'),
119 - )
442 + 'type' => 'text',
443 + 'readonly' => 'readonly',
444 + 'class' => 'e2pdf-copy-field',
445 + ),
446 + ),
447 + ),
448 + 'gdrive_group' => array(
449 + 'name' => 'Google Drive',
450 + 'action' => 'gdrive',
451 + 'options' => array(
452 + array(
453 + 'name' => 'Redirect URI',
454 + 'value' =>
455 + site_url('/e2pdf-rpc/v1/gdrive/auth?api_key=' . get_option('e2pdf_gdrive_api_key')),
456 + 'default_value' => '',
457 + 'type' => 'text',
458 + 'readonly' => 'readonly',
459 + 'class' => 'e2pdf-copy-field',
460 + ),
461 + array(
462 + 'name' => 'Status',
463 + 'key' => 'e2pdf_gdrive_status',
464 + 'value' => get_option('e2pdf_gdrive_refresh_token') ? __('Authorized', 'e2pdf') : __('Not Authorized', 'e2pdf'),
465 + 'default_value' => '',
466 + 'type' => 'text',
467 + 'readonly' => 'readonly',
468 + ),
469 + array(
470 + 'name' => 'Refresh Token',
471 + 'key' => 'e2pdf_gdrive_refresh_token',
472 + 'value' => get_option('e2pdf_gdrive_refresh_token', ''),
473 + 'default_value' => '',
474 + 'type' => 'text',
475 + 'placeholder' => '',
476 + 'type' => get_option('e2pdf_debug', '0') ? 'text' : 'hidden',
477 + 'readonly' => 'readonly',
478 + ),
479 + array(
480 + 'name' => 'Access Token',
481 + 'key' => 'e2pdf_gdrive_access_token',
482 + 'value' => get_transient('e2pdf_gdrive_access_token') === false ? '' : get_transient('e2pdf_gdrive_access_token'),
483 + 'default_value' => '',
484 + 'type' => get_option('e2pdf_debug', '0') ? 'text' : 'hidden',
485 + 'placeholder' => '',
486 + 'readonly' => 'readonly',
487 + ),
488 + array(
489 + 'header' => 'Configuration',
490 + 'name' => 'Client ID',
491 + 'key' => 'e2pdf_gdrive_client_id',
492 + 'value' => get_option('e2pdf_gdrive_client_id', ''),
493 + 'default_value' => '',
494 + 'type' => 'text',
495 + 'placeholder' => '',
496 + ),
497 + array(
498 + 'name' => 'Client Secret',
499 + 'key' => 'e2pdf_gdrive_client_secret',
500 + 'value' => get_option('e2pdf_gdrive_client_secret', ''),
501 + 'default_value' => '',
502 + 'type' => 'password',
503 + 'placeholder' => '',
504 + ),
120 505 )
121 506 ),
122 - 'fonts_group' => array(
123 - 'name' => __('Fonts', 'e2pdf'),
124 - 'action' => 'fonts',
125 - 'options' => array()
507 + 'adobesign_group' => array(
508 + 'name' => 'Adobe Sign',
509 + 'action' => 'adobesign',
510 + 'options' => array(
511 + array(
512 + 'name' => 'Redirect URI',
513 + 'value' =>
514 + get_option('e2pdf_adobe_api_version') == '1' ? site_url('/e2pdf-rpc/v1/adobe/auth?api_key=' . get_option('e2pdf_adobe_api_key')) : $helper->get_url(
515 + array(
516 + 'page' => 'e2pdf-settings',
517 + 'action' => 'adobesign',
518 + )
519 + ),
520 + 'default_value' => '',
521 + 'type' => 'text',
522 + 'readonly' => 'readonly',
523 + 'class' => 'e2pdf-copy-field',
524 + ),
525 + array(
526 + 'name' => 'API Version',
527 + 'value' => get_option('e2pdf_adobe_api_version'),
528 + 'default_value' => '',
529 + 'type' => 'hidden',
530 + ),
531 + array(
532 + 'name' => 'Status',
533 + 'key' => 'e2pdf_adobesign_status',
534 + 'value' => get_option('e2pdf_adobesign_refresh_token') ? __('Authorized', 'e2pdf') : __('Not Authorized', 'e2pdf'),
535 + 'default_value' => '',
536 + 'type' => 'text',
537 + 'readonly' => 'readonly',
538 + ),
539 + array(
540 + 'header' => 'Configuration',
541 + 'name' => 'Client ID',
542 + 'key' => 'e2pdf_adobesign_client_id',
543 + 'value' => get_option('e2pdf_adobesign_client_id') === false ? '' : get_option('e2pdf_adobesign_client_id'),
544 + 'default_value' => '',
545 + 'type' => 'text',
546 + 'placeholder' => '',
547 + ),
548 + array(
549 + 'name' => 'Client Secret',
550 + 'key' => 'e2pdf_adobesign_client_secret',
551 + 'value' => get_option('e2pdf_adobesign_client_secret') === false ? '' : get_option('e2pdf_adobesign_client_secret'),
552 + 'default_value' => '',
553 + 'type' => 'password',
554 + 'placeholder' => '',
555 + ),
556 + array(
557 + 'name' => 'Region',
558 + 'key' => 'e2pdf_adobesign_region',
559 + 'value' => get_option('e2pdf_adobesign_region') === false ? '' : get_option('e2pdf_adobesign_region'),
560 + 'default_value' => '',
561 + 'type' => 'text',
562 + 'placeholder' => 'na2',
563 + ),
564 + array(
565 + 'name' => 'Code',
566 + 'key' => 'e2pdf_adobesign_code',
567 + 'value' => get_option('e2pdf_adobesign_code') === false ? '' : get_option('e2pdf_adobesign_code'),
568 + 'default_value' => '',
569 + 'type' => get_option('e2pdf_debug', '0') ? 'text' : 'hidden',
570 + 'placeholder' => '',
571 + 'readonly' => 'readonly',
572 + ),
573 + array(
574 + 'name' => 'Web Access Point',
575 + 'key' => 'e2pdf_adobesign_web_access_point',
576 + 'value' => get_option('e2pdf_adobesign_web_access_point') === false ? '' : get_option('e2pdf_adobesign_web_access_point'),
577 + 'default_value' => '',
578 + 'type' => get_option('e2pdf_debug', '0') ? 'text' : 'hidden',
579 + 'placeholder' => '',
580 + 'readonly' => 'readonly',
581 + ),
582 + array(
583 + 'name' => 'Api Access Point',
584 + 'key' => 'e2pdf_adobesign_api_access_point',
585 + 'value' => get_option('e2pdf_adobesign_api_access_point') === false ? '' : get_option('e2pdf_adobesign_api_access_point'),
586 + 'default_value' => '',
587 + 'type' => get_option('e2pdf_debug', '0') ? 'text' : 'hidden',
588 + 'placeholder' => '',
589 + 'readonly' => 'readonly',
590 + ),
591 + array(
592 + 'name' => 'Refresh Token',
593 + 'key' => 'e2pdf_adobesign_refresh_token',
594 + 'value' => get_option('e2pdf_adobesign_refresh_token') === false ? '' : get_option('e2pdf_adobesign_refresh_token'),
595 + 'default_value' => '',
596 + 'type' => 'text',
597 + 'placeholder' => '',
598 + 'type' => get_option('e2pdf_debug', '0') ? 'text' : 'hidden',
599 + 'readonly' => 'readonly',
600 + ),
601 + array(
602 + 'name' => 'Access Token',
603 + 'key' => 'e2pdf_adobesign_access_token',
604 + 'value' => get_transient('e2pdf_adobesign_access_token') === false ? '' : get_transient('e2pdf_adobesign_access_token'),
605 + 'default_value' => '',
606 + 'type' => get_option('e2pdf_debug', '0') ? 'text' : 'hidden',
607 + 'placeholder' => '',
608 + 'readonly' => 'readonly',
609 + ),
610 + array(
611 + 'header' => 'Scopes',
612 + 'name' => 'user_read',
613 + 'key' => 'e2pdf_adobesign_scope_user_read',
614 + 'value' => get_option('e2pdf_adobesign_scope_user_read', ''),
615 + 'default_value' => '',
616 + 'type' => 'select',
617 + 'options' => array(
618 + '' => 'disabled',
619 + 'self' => 'self',
620 + 'group' => 'group',
621 + 'account' => 'account',
622 + ),
623 + ),
624 + array(
625 + 'name' => 'user_write',
626 + 'key' => 'e2pdf_adobesign_scope_user_write',
627 + 'value' => get_option('e2pdf_adobesign_scope_user_write', ''),
628 + 'default_value' => '',
629 + 'type' => 'select',
630 + 'options' => array(
631 + '' => 'disabled',
632 + 'self' => 'self',
633 + 'group' => 'group',
634 + 'account' => 'account',
635 + ),
636 + ),
637 + array(
638 + 'name' => 'user_login',
639 + 'key' => 'e2pdf_adobesign_scope_user_login',
640 + 'value' => get_option('e2pdf_adobesign_scope_user_login', ''),
641 + 'default_value' => '',
642 + 'type' => 'select',
643 + 'options' => array(
644 + '' => 'disabled',
645 + 'self' => 'self',
646 + 'group' => 'group',
647 + 'account' => 'account',
648 + ),
649 + ),
650 + array(
651 + 'name' => 'agreement_read',
652 + 'key' => 'e2pdf_adobesign_scope_agreement_read',
653 + 'value' => get_option('e2pdf_adobesign_scope_agreement_read', ''),
654 + 'default_value' => '',
655 + 'type' => 'select',
656 + 'options' => array(
657 + '' => 'disabled',
658 + 'self' => 'self',
659 + 'group' => 'group',
660 + 'account' => 'account',
661 + ),
662 + ),
663 + array(
664 + 'name' => 'agreement_write',
665 + 'key' => 'e2pdf_adobesign_scope_agreement_write',
666 + 'value' => get_option('e2pdf_adobesign_scope_agreement_write', ''),
667 + 'default_value' => '',
668 + 'type' => 'select',
669 + 'options' => array(
670 + '' => 'disabled',
671 + 'self' => 'self',
672 + 'group' => 'group',
673 + 'account' => 'account',
674 + ),
675 + ),
676 + array(
677 + 'name' => 'agreement_send',
678 + 'key' => 'e2pdf_adobesign_scope_agreement_send',
679 + 'value' => get_option('e2pdf_adobesign_scope_agreement_send', ''),
680 + 'default_value' => '',
681 + 'type' => 'select',
682 + 'options' => array(
683 + '' => 'disabled',
684 + 'self' => 'self',
685 + 'group' => 'group',
686 + 'account' => 'account',
687 + ),
688 + ),
689 + array(
690 + 'name' => 'widget_read',
691 + 'key' => 'e2pdf_adobesign_scope_widget_read',
692 + 'value' => get_option('e2pdf_adobesign_scope_widget_read', ''),
693 + 'default_value' => '',
694 + 'type' => 'select',
695 + 'options' => array(
696 + '' => 'disabled',
697 + 'self' => 'self',
698 + 'group' => 'group',
699 + 'account' => 'account',
700 + ),
701 + ),
702 + array(
703 + 'name' => 'widget_write',
704 + 'key' => 'e2pdf_adobesign_scope_widget_write',
705 + 'value' => get_option('e2pdf_adobesign_scope_widget_write', ''),
706 + 'default_value' => '',
707 + 'type' => 'select',
708 + 'options' => array(
709 + '' => 'disabled',
710 + 'self' => 'self',
711 + 'group' => 'group',
712 + 'account' => 'account',
713 + ),
714 + ),
715 + array(
716 + 'name' => 'library_read',
717 + 'key' => 'e2pdf_adobesign_scope_library_read',
718 + 'value' => get_option('e2pdf_adobesign_scope_library_read', ''),
719 + 'default_value' => '',
720 + 'type' => 'select',
721 + 'options' => array(
722 + '' => 'disabled',
723 + 'self' => 'self',
724 + 'group' => 'group',
725 + 'account' => 'account',
726 + ),
727 + ),
728 + array(
729 + 'name' => 'library_write',
730 + 'key' => 'e2pdf_adobesign_scope_library_write',
731 + 'value' => get_option('e2pdf_adobesign_scope_library_write', ''),
732 + 'default_value' => '',
733 + 'type' => 'select',
734 + 'options' => array(
735 + '' => 'disabled',
736 + 'self' => 'self',
737 + 'group' => 'group',
738 + 'account' => 'account',
739 + ),
740 + ),
741 + array(
742 + 'name' => 'workflow_read',
743 + 'key' => 'e2pdf_adobesign_scope_workflow_read',
744 + 'value' => get_option('e2pdf_adobesign_scope_workflow_read', ''),
745 + 'default_value' => '',
746 + 'type' => 'select',
747 + 'options' => array(
748 + '' => 'disabled',
749 + 'self' => 'self',
750 + 'group' => 'group',
751 + 'account' => 'account',
752 + ),
753 + ),
754 + array(
755 + 'name' => 'workflow_write',
756 + 'key' => 'e2pdf_adobesign_scope_workflow_write',
757 + 'value' => get_option('e2pdf_adobesign_scope_workflow_write', ''),
758 + 'default_value' => '',
759 + 'type' => 'select',
760 + 'options' => array(
761 + '' => 'disabled',
762 + 'self' => 'self',
763 + 'group' => 'group',
764 + 'account' => 'account',
765 + ),
766 + ),
767 + array(
768 + 'name' => 'webhook_read',
769 + 'key' => 'e2pdf_adobesign_scope_webhook_read',
770 + 'value' => get_option('e2pdf_adobesign_scope_webhook_read', ''),
771 + 'default_value' => '',
772 + 'type' => 'select',
773 + 'options' => array(
774 + '' => 'disabled',
775 + 'self' => 'self',
776 + 'group' => 'group',
777 + 'account' => 'account',
778 + ),
779 + ),
780 + array(
781 + 'name' => 'webhook_write',
782 + 'key' => 'e2pdf_adobesign_scope_webhook_write',
783 + 'value' => get_option('e2pdf_adobesign_scope_webhook_write', ''),
784 + 'default_value' => '',
785 + 'type' => 'select',
786 + 'options' => array(
787 + '' => 'disabled',
788 + 'self' => 'self',
789 + 'group' => 'group',
790 + 'account' => 'account',
791 + ),
792 + ),
793 + array(
794 + 'name' => 'webhook_retention',
795 + 'key' => 'e2pdf_adobesign_scope_webhook_retention',
796 + 'value' => get_option('e2pdf_adobesign_scope_webhook_retention', ''),
797 + 'default_value' => '',
798 + 'type' => 'select',
799 + 'options' => array(
800 + '' => 'disabled',
801 + 'self' => 'self',
802 + 'group' => 'group',
803 + 'account' => 'account',
804 + ),
805 + ),
806 + ),
126 807 ),
808 + 'extensions_group' => array(
809 + 'name' => __('Extensions', 'e2pdf'),
810 + 'action' => 'extensions',
811 + 'options' => $extensions_options,
812 + ),
127 813 );
128 814
815 + if (
816 + class_exists('TRP_Translate_Press') ||
817 + class_exists('WeglotWP\Services\Translate_Service_Weglot') ||
818 + (function_exists('icl_register_string') && !defined('POLYLANG_VERSION')) ||
819 + defined('POLYLANG_VERSION') ||
820 + $all
821 + ) {
822 + $options['translation_group'] = array(
823 + 'name' => __('Translation', 'e2pdf'),
824 + 'action' => 'translation',
825 + 'options' => array(
826 + array(
827 + 'name' => __('PDF Translation', 'e2pdf'),
828 + 'key' => 'e2pdf_pdf_translation',
829 + 'value' => get_option('e2pdf_pdf_translation', '2'),
830 + 'default_value' => '2',
831 + 'type' => 'select',
832 + 'options' => array(
833 + '0' => __('No Translation', 'e2pdf'),
834 + '1' => __('Partial Translation', 'e2pdf'),
835 + '2' => __('Full Translation', 'e2pdf'),
836 + ),
837 + ),
838 + ),
839 + );
840 + }
841 +
129 842 $options = apply_filters('e2pdf_model_options_get_options_options', $options);
130 843
131 844 if ($all) {
132 845 $opt = array();
@@ -131,9 +844,11 @@
131 844 if ($all) {
132 845 $opt = array();
133 846 foreach ($options as $group_key => $group) {
134 847 foreach ($group['options'] as $option_key => $option) {
135 - $opt[$option['key']] = $option['value'];
848 + if (isset($option['key'])) {
849 + $opt[$option['key']] = isset($option['value']) ? $option['value'] : '';
850 + }
136 851 }
137 852 }
138 853 return $opt;
139 854 } else {
@@ -138,13 +853,13 @@
138 853 return $opt;
139 854 } else {
140 855 foreach ($options as $group_key => $group) {
141 856 if ($exclude) {
142 - if (in_array($group_key, $only_group)) {
857 + if (in_array($group_key, $only_group, true)) {
143 858 unset($options[$group_key]);
144 859 }
145 860 } else {
146 - if (!in_array($group_key, $only_group)) {
861 + if (!in_array($group_key, $only_group, true)) {
147 862 unset($options[$group_key]);
148 863 }
149 864 }
150 865 }
@@ -152,25 +867,29 @@
152 867 return $options;
153 868 }
154 869 }
155 870
156 - /**
157 - * Get Option value
158 - *
159 - * @param string $key - Option key
160 - *
161 - * @return mixed - Option value
162 - */
163 - function get_option($key) {
164 - if ($key === 'e2pdf_developer_ips') {
165 - $option = get_option($key);
166 - $developers = explode("\r\n", $option);
167 - if (!empty($developers)) {
168 - return $developers;
871 + // update options
872 + public static function update_options($group = '', $data = array()) {
873 + $options = self::get_options(false, array($group));
874 + foreach ($options as $group_key => $group) {
875 + foreach ($group['options'] as $option_key => $option_value) {
876 + if (isset($option_value['key']) && array_key_exists($option_value['key'], $data)) {
877 + if (isset($option_value['readonly']) && $option_value['readonly'] == 'readonly') { // phpcs:ignore Generic.CodeAnalysis.EmptyStatement.DetectedIf
878 + } else {
879 + if ($option_value['key'] == 'e2pdf_mod_rewrite_url') {
880 + if (false === strpos($data[$option_value['key']], '%uid%')) {
881 + $data[$option_value['key']] = rtrim($data[$option_value['key']], '/') . '/%uid%/';
882 + }
883 + if (!trim(str_replace(array('/', '%uid%'), array('', ''), $data[$option_value['key']]))) {
884 + $data[$option_value['key']] = 'e2pdf/%uid%/';
885 + }
886 + $data[$option_value['key']] = ltrim($data[$option_value['key']], '/');
887 + }
888 + update_option($option_value['key'], $data[$option_value['key']]);
889 + }
890 + }
169 891 }
170 - return array();
171 - } else {
172 - return get_option($key);
173 892 }
893 + return true;
174 894 }
175 -
176 895 }