PluginProbe
E2Pdf – Export Pdf Tool for WordPress / trunk
E2Pdf – Export Pdf Tool for WordPress vtrunk
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 1.08.09 All 71 releases
e2pdf / classes / model / e2pdf-options.php

e2pdf-options.php in E2Pdf – Export Pdf Tool for WordPress trunk, at classes/model/e2pdf-options.php

896 lines 41.5 KB
No matching file
Up and down to move Enter to open Esc to close
Raw Download Zip
1 <?php
2
3 /**
4 * File: /model/e2pdf-options.php
5 *
6 * @package E2Pdf
7 * @license GPLv3
8 * @link https://e2pdf.com
9 */
10 if (!defined('ABSPATH')) {
11 die('Access denied.');
12 }
13
14 class Model_E2pdf_Options extends Model_E2pdf_Model {
15
16 // get options
17 public static function get_options($all = true, $only_group = array(), $exclude = false) {
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
112 $options = array(
113 'static_group' => array(
114 'name' => '',
115 'options' => array(
116 array(
117 'key' => 'e2pdf_version',
118 'value' => $helper->get('version'),
119 ),
120 array(
121 'key' => 'e2pdf_license',
122 'value' => get_option('e2pdf_license', false),
123 ),
124 array(
125 'key' => 'e2pdf_email',
126 'value' => get_option('e2pdf_email', ''),
127 ),
128 array(
129 'key' => 'e2pdf_templates_screen_per_page',
130 'value' => get_option('e2pdf_templates_screen_per_page', '20'),
131 ),
132 array(
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 ),
141 ),
142 'common_group' => array(
143 'name' => __('Common', 'e2pdf'),
144 'options' => array(
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(
195 'name' => __('PDF Processor', 'e2pdf'),
196 'key' => 'e2pdf_processor',
197 'value' => get_option('e2pdf_processor', '0'),
198 'default_value' => '0',
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',
208 'options' => array(
209 'Plain Fonts',
210 'Complex Fonts',
211 ),
212 ),
213 array(
214 'name' => __('Release Candidate Builds', 'e2pdf'),
215 'key' => 'e2pdf_dev_update',
216 'value' => get_option('e2pdf_dev_update', '0'),
217 'default_value' => '0',
218 'type' => 'checkbox',
219 'checkbox_value' => '1',
220 'placeholder' => __('Update from E2Pdf.com', 'e2pdf'),
221 ),
222 array(
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'),
331 'key' => 'e2pdf_hide_warnings',
332 'value' => get_option('e2pdf_hide_warnings', '0'),
333 'default_value' => '0',
334 'type' => 'checkbox',
335 'checkbox_value' => '1',
336 'placeholder' => __('Hide Warnings', 'e2pdf'),
337 ),
338 array(
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',
352 'type' => 'text',
353 'class' => 'e2pdf-numbers',
354 'placeholder' => '0',
355 ),
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(
401 'name' => __('Memory/Time Usage', 'e2pdf'),
402 'key' => 'e2pdf_memory_time',
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',
407 'placeholder' => __('Show Memory/Time Usage', 'e2pdf'),
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(
429 array(
430 'name' => 'Site URL',
431 'value' => $helper->get_site_url(),
432 'default_value' => '',
433 'type' => 'text',
434 'readonly' => 'readonly',
435 'class' => 'e2pdf-copy-field',
436 ),
437 array(
438 'name' => 'API Key',
439 'key' => 'e2pdf_zapier_api_key',
440 'value' => get_option('e2pdf_zapier_api_key'),
441 'default_value' => '',
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 ),
505 )
506 ),
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 ),
807 ),
808 'extensions_group' => array(
809 'name' => __('Extensions', 'e2pdf'),
810 'action' => 'extensions',
811 'options' => $extensions_options,
812 ),
813 );
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
842 $options = apply_filters('e2pdf_model_options_get_options_options', $options);
843
844 if ($all) {
845 $opt = array();
846 foreach ($options as $group_key => $group) {
847 foreach ($group['options'] as $option_key => $option) {
848 if (isset($option['key'])) {
849 $opt[$option['key']] = isset($option['value']) ? $option['value'] : '';
850 }
851 }
852 }
853 return $opt;
854 } else {
855 foreach ($options as $group_key => $group) {
856 if ($exclude) {
857 if (in_array($group_key, $only_group, true)) {
858 unset($options[$group_key]);
859 }
860 } else {
861 if (!in_array($group_key, $only_group, true)) {
862 unset($options[$group_key]);
863 }
864 }
865 }
866
867 return $options;
868 }
869 }
870
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 }
891 }
892 }
893 return true;
894 }
895 }
896