# e2pdf/1.02.02/classes/model/e2pdf-options.php

E2Pdf – Export Pdf Tool for WordPress, version 1.02.02. 427 lines.

- Page: https://pluginprobe.com/plugins/e2pdf/1.02.02/code/classes/model/e2pdf-options.php
- Raw: https://pluginprobe.com/plugins/e2pdf/1.02.02/raw/classes/model/e2pdf-options.php
- Modified: 2018-12-07T12:07:02+00:00

Line numbers below start at 1. Link to a line or a range by appending a fragment to the
page URL, for example `https://pluginprobe.com/plugins/e2pdf/1.02.02/code/classes/model/e2pdf-options.php#L10-L20`.

```php
<?php

/**
 * E2pdf Options Helper
 * 
 * @copyright  Copyright 2017 https://e2pdf.com
 * @license    GPL v2
 * @version    1
 * @link       https://e2pdf.com
 * @since      0.00.01
 */
if (!defined('ABSPATH')) {
    die('Access denied.');
}

class Model_E2pdf_Options extends Model_E2pdf_Model {

    /**
     * Get Options list
     * 
     * @param bool $all - Get all options
     * @param array $exclude_group - Array list of groups to exclude from the list
     * 
     * @return array() - List of options
     */
    function __construct() {
        parent::__construct();
    }

    public static function get_options($all = true, $only_group = array(), $exclude = false) {
        $helper = Helper_E2pdf_Helper::instance();
        $options = array(
            'static_group' => array(
                'name' => __('Static', 'e2pdf'),
                'options' => array(
                    array(
                        'key' => 'e2pdf_version',
                        'value' => $helper->get('version')
                    ),
                    array(
                        'key' => 'e2pdf_license',
                        'value' => get_option('e2pdf_license') === false ? false : get_option('e2pdf_license'),
                    ),
                    array(
                        'key' => 'e2pdf_email',
                        'value' => get_option('e2pdf_email') === false ? false : get_option('e2pdf_email'),
                    )
                )
            ),
            'common_group' => array(
                'name' => __('Common', 'e2pdf'),
                'options' => array(
                    array(
                        'name' => __('PDF Processor', 'e2pdf'),
                        'key' => 'e2pdf_processor',
                        'value' => get_option('e2pdf_processor') === false ? 0 : get_option('e2pdf_processor'),
                        'default_value' => 0,
                        'type' => 'select',
                        'options' => array(
                            'Latest', 'Dev'
                        )
                    ),
                    array(
                        'name' => __('Debug', 'e2pdf'),
                        'key' => 'e2pdf_debug',
                        'value' => get_option('e2pdf_debug') === false ? 0 : get_option('e2pdf_debug'),
                        'default_value' => 0,
                        'type' => 'checkbox',
                        'placeholder' => __('Turn on Debug mode', 'e2pdf'),
                    ),
                    array(
                        'name' => __('Hide warnings', 'e2pdf'),
                        'key' => 'e2pdf_hide_warnings',
                        'value' => get_option('e2pdf_hide_warnings') === false ? 0 : get_option('e2pdf_hide_warnings'),
                        'default_value' => 0,
                        'type' => 'checkbox',
                        'placeholder' => __('Hide warnings', 'e2pdf'),
                    ),
                    array(
                        'name' => __('Connection Timout', 'e2pdf'),
                        'key' => 'e2pdf_connection_timeout',
                        'value' => get_option('e2pdf_connection_timeout') === false ? 300 : get_option('e2pdf_connection_timeout'),
                        'default_value' => 30,
                        'type' => 'text',
                        'class' => 'e2pdf-numbers',
                        'placeholder' => 0
                    ),
                    array(
                        'name' => __('Memory/Time Usage', 'e2pdf'),
                        'key' => 'e2pdf_memory_time',
                        'value' => get_option('e2pdf_memory_time') === false ? 0 : get_option('e2pdf_memory_time'),
                        'default_value' => 0,
                        'type' => 'checkbox',
                        'placeholder' => __('Show Memory/Time Usage', 'e2pdf'),
                    ),
                    array(
                        'name' => __('Developer Mode', 'e2pdf'),
                        'key' => 'e2pdf_developer',
                        'value' => get_option('e2pdf_developer') === false ? 0 : get_option('e2pdf_developer'),
                        'default_value' => 0,
                        'type' => 'checkbox',
                        'placeholder' => __('Turn on Developer mode', 'e2pdf'),
                    ),
                    array(
                        'name' => __('Developer IPs', 'e2pdf'),
                        'key' => 'e2pdf_developer_ips',
                        'value' => get_option('e2pdf_developer_ips') === false ? '' : get_option('e2pdf_developer_ips'),
                        'default_value' => '',
                        'type' => 'textarea',
                        'placeholder' => __('Developer IPs', 'e2pdf'),
                    )
                )
            ),
            'fonts_group' => array(
                'name' => __('Fonts', 'e2pdf'),
                'action' => 'fonts',
                'options' => array()
            ),
            'adobesign_group' => array(
                'name' => __('Adobe Sign', 'e2pdf'),
                'action' => 'adobesign',
                'options' => array(
                    array(
                        'name' => __('Client ID', 'e2pdf'),
                        'key' => 'e2pdf_adobesign_client_id',
                        'value' => get_option('e2pdf_adobesign_client_id') === false ? '' : get_option('e2pdf_adobesign_client_id'),
                        'default_value' => '',
                        'type' => 'text',
                        'placeholder' => ''
                    ),
                    array(
                        'name' => __('Client Secret', 'e2pdf'),
                        'key' => 'e2pdf_adobesign_client_secret',
                        'value' => get_option('e2pdf_adobesign_client_secret') === false ? '' : get_option('e2pdf_adobesign_client_secret'),
                        'default_value' => '',
                        'type' => 'text',
                        'placeholder' => ''
                    ),
                    array(
                        'name' => __('Region', 'e2pdf'),
                        'key' => 'e2pdf_adobesign_region',
                        'value' => get_option('e2pdf_adobesign_region') === false ? '' : get_option('e2pdf_adobesign_region'),
                        'default_value' => '',
                        'type' => 'text',
                        'placeholder' => __('na2', 'e2pdf')
                    ),
                    array(
                        'name' => __('Code', 'e2pdf'),
                        'key' => 'e2pdf_adobesign_code',
                        'value' => get_option('e2pdf_adobesign_code') === false ? '' : get_option('e2pdf_adobesign_code'),
                        'default_value' => '',
                        'type' => get_option('e2pdf_debug') ? 'text' : 'hidden',
                        'placeholder' => ''
                    ),
                    array(
                        'name' => __('Api Access Point', 'e2pdf'),
                        'key' => 'e2pdf_adobesign_api_access_point',
                        'value' => get_option('e2pdf_adobesign_api_access_point') === false ? '' : get_option('e2pdf_adobesign_api_access_point'),
                        'default_value' => '',
                        'type' => get_option('e2pdf_debug') ? 'text' : 'hidden',
                        'placeholder' => ''
                    ),
                    array(
                        'name' => __('Refresh Token', 'e2pdf'),
                        'key' => 'e2pdf_adobesign_refresh_token',
                        'value' => get_option('e2pdf_adobesign_refresh_token') === false ? '' : get_option('e2pdf_adobesign_refresh_token'),
                        'default_value' => '',
                        'type' => get_option('e2pdf_debug') ? 'text' : 'hidden',
                        'placeholder' => ''
                    ),
                    array(
                        'name' => __('Access Token', 'e2pdf'),
                        'key' => 'e2pdf_adobesign_access_token',
                        'value' => get_transient('e2pdf_adobesign_access_token') === false ? '' : get_transient('e2pdf_adobesign_access_token'),
                        'default_value' => '',
                        'type' => get_option('e2pdf_debug') ? 'text' : 'hidden',
                        'placeholder' => ''
                    ),
                    array(
                        'header' => __('Scopes', 'e2pdf'),
                        'name' => __('user_read', 'e2pdf'),
                        'key' => 'e2pdf_adobesign_scope_user_read',
                        'value' => get_option('e2pdf_adobesign_scope_user_read') === false ? '' : get_option('e2pdf_adobesign_scope_user_read'),
                        'default_value' => '',
                        'type' => 'select',
                        'options' => array(
                            '' => __('disabled', 'e2pdf'),
                            'self' => 'self',
                            'group' => 'group',
                            'account' => 'account'
                        )
                    ),
                    array(
                        'name' => __('user_write', 'e2pdf'),
                        'key' => 'e2pdf_adobesign_scope_user_write',
                        'value' => get_option('e2pdf_adobesign_scope_user_write') === false ? '' : get_option('e2pdf_adobesign_scope_user_write'),
                        'default_value' => '',
                        'type' => 'select',
                        'options' => array(
                            '' => __('disabled', 'e2pdf'),
                            'self' => 'self',
                            'group' => 'group',
                            'account' => 'account'
                        )
                    ),
                    array(
                        'name' => __('user_login', 'e2pdf'),
                        'key' => 'e2pdf_adobesign_scope_user_login',
                        'value' => get_option('e2pdf_adobesign_scope_user_login') === false ? '' : get_option('e2pdf_adobesign_scope_user_login'),
                        'default_value' => '',
                        'type' => 'select',
                        'options' => array(
                            '' => __('disabled', 'e2pdf'),
                            'self' => 'self',
                            'group' => 'group',
                            'account' => 'account'
                        )
                    ),
                    array(
                        'name' => __('agreement_read', 'e2pdf'),
                        'key' => 'e2pdf_adobesign_scope_agreement_read',
                        'value' => get_option('e2pdf_adobesign_scope_agreement_read') === false ? '' : get_option('e2pdf_adobesign_scope_agreement_read'),
                        'default_value' => '',
                        'type' => 'select',
                        'options' => array(
                            '' => __('disabled', 'e2pdf'),
                            'self' => 'self',
                            'group' => 'group',
                            'account' => 'account'
                        )
                    ),
                    array(
                        'name' => __('agreement_write', 'e2pdf'),
                        'key' => 'e2pdf_adobesign_scope_agreement_write',
                        'value' => get_option('e2pdf_adobesign_scope_agreement_write') === false ? '' : get_option('e2pdf_adobesign_scope_agreement_write'),
                        'default_value' => '',
                        'type' => 'select',
                        'options' => array(
                            '' => __('disabled', 'e2pdf'),
                            'self' => 'self',
                            'group' => 'group',
                            'account' => 'account'
                        )
                    ),
                    array(
                        'name' => __('agreement_send', 'e2pdf'),
                        'key' => 'e2pdf_adobesign_scope_agreement_send',
                        'value' => get_option('e2pdf_adobesign_scope_agreement_send') === false ? '' : get_option('e2pdf_adobesign_scope_agreement_send'),
                        'default_value' => '',
                        'type' => 'select',
                        'options' => array(
                            '' => __('disabled', 'e2pdf'),
                            'self' => 'self',
                            'group' => 'group',
                            'account' => 'account'
                        )
                    ),
                    array(
                        'name' => __('widget_read', 'e2pdf'),
                        'key' => 'e2pdf_adobesign_scope_widget_read',
                        'value' => get_option('e2pdf_adobesign_scope_widget_read') === false ? '' : get_option('e2pdf_adobesign_scope_widget_read'),
                        'default_value' => '',
                        'type' => 'select',
                        'options' => array(
                            '' => __('disabled', 'e2pdf'),
                            'self' => 'self',
                            'group' => 'group',
                            'account' => 'account'
                        )
                    ),
                    array(
                        'name' => __('widget_write', 'e2pdf'),
                        'key' => 'e2pdf_adobesign_scope_widget_write',
                        'value' => get_option('e2pdf_adobesign_scope_widget_write') === false ? '' : get_option('e2pdf_adobesign_scope_widget_write'),
                        'default_value' => '',
                        'type' => 'select',
                        'options' => array(
                            '' => __('disabled', 'e2pdf'),
                            'self' => 'self',
                            'group' => 'group',
                            'account' => 'account'
                        )
                    ),
                    array(
                        'name' => __('library_read', 'e2pdf'),
                        'key' => 'e2pdf_adobesign_scope_library_read',
                        'value' => get_option('e2pdf_adobesign_scope_library_read') === false ? '' : get_option('e2pdf_adobesign_scope_library_read'),
                        'default_value' => '',
                        'type' => 'select',
                        'options' => array(
                            '' => __('disabled', 'e2pdf'),
                            'self' => 'self',
                            'group' => 'group',
                            'account' => 'account'
                        )
                    ),
                    array(
                        'name' => __('library_write', 'e2pdf'),
                        'key' => 'e2pdf_adobesign_scope_library_write',
                        'value' => get_option('e2pdf_adobesign_scope_library_write') === false ? '' : get_option('e2pdf_adobesign_scope_library_write'),
                        'default_value' => '',
                        'type' => 'select',
                        'options' => array(
                            '' => __('disabled', 'e2pdf'),
                            'self' => 'self',
                            'group' => 'group',
                            'account' => 'account'
                        )
                    ),
                    array(
                        'name' => __('workflow_read', 'e2pdf'),
                        'key' => 'e2pdf_adobesign_scope_workflow_read',
                        'value' => get_option('e2pdf_adobesign_scope_workflow_read') === false ? '' : get_option('e2pdf_adobesign_scope_workflow_read'),
                        'default_value' => '',
                        'type' => 'select',
                        'options' => array(
                            '' => __('disabled', 'e2pdf'),
                            'self' => 'self',
                            'group' => 'group',
                            'account' => 'account'
                        )
                    ),
                    array(
                        'name' => __('workflow_write', 'e2pdf'),
                        'key' => 'e2pdf_adobesign_scope_workflow_write',
                        'value' => get_option('e2pdf_adobesign_scope_workflow_write') === false ? '' : get_option('e2pdf_adobesign_scope_workflow_write'),
                        'default_value' => '',
                        'type' => 'select',
                        'options' => array(
                            '' => __('disabled', 'e2pdf'),
                            'self' => 'self',
                            'group' => 'group',
                            'account' => 'account'
                        )
                    ),
                    array(
                        'name' => __('webhook_read', 'e2pdf'),
                        'key' => 'e2pdf_adobesign_scope_webhook_read',
                        'value' => get_option('e2pdf_adobesign_scope_webhook_read') === false ? '' : get_option('e2pdf_adobesign_scope_webhook_read'),
                        'default_value' => '',
                        'type' => 'select',
                        'options' => array(
                            '' => __('disabled', 'e2pdf'),
                            'self' => 'self',
                            'group' => 'group',
                            'account' => 'account'
                        )
                    ),
                    array(
                        'name' => __('webhook_write', 'e2pdf'),
                        'key' => 'e2pdf_adobesign_scope_webhook_write',
                        'value' => get_option('e2pdf_adobesign_scope_webhook_write') === false ? '' : get_option('e2pdf_adobesign_scope_webhook_write'),
                        'default_value' => '',
                        'type' => 'select',
                        'options' => array(
                            '' => __('disabled', 'e2pdf'),
                            'self' => 'self',
                            'group' => 'group',
                            'account' => 'account'
                        )
                    ),
                    array(
                        'name' => __('webhook_retention', 'e2pdf'),
                        'key' => 'e2pdf_adobesign_scope_webhook_retention',
                        'value' => get_option('e2pdf_adobesign_scope_webhook_retention') === false ? '' : get_option('e2pdf_adobesign_scope_webhook_retention'),
                        'default_value' => '',
                        'type' => 'select',
                        'options' => array(
                            '' => __('disabled', 'e2pdf'),
                            'self' => 'self',
                            'group' => 'group',
                            'account' => 'account'
                        )
                    ),
                )
            ),
        );

        $options = apply_filters('e2pdf_model_options_get_options_options', $options);

        if ($all) {
            $opt = array();
            foreach ($options as $group_key => $group) {
                foreach ($group['options'] as $option_key => $option) {
                    $opt[$option['key']] = $option['value'];
                }
            }
            return $opt;
        } else {
            foreach ($options as $group_key => $group) {
                if ($exclude) {
                    if (in_array($group_key, $only_group)) {
                        unset($options[$group_key]);
                    }
                } else {
                    if (!in_array($group_key, $only_group)) {
                        unset($options[$group_key]);
                    }
                }
            }

            return $options;
        }
    }

    /**
     * Get Option value
     * 
     * @param string $key - Option key
     * 
     * @return mixed - Option value
     */
    function get_option($key) {
        if ($key === 'e2pdf_developer_ips') {
            $option = get_option($key);
            $developers = explode("\r\n", $option);
            if (!empty($developers)) {
                return $developers;
            }
            return array();
        } else {
            return get_option($key);
        }
    }

}

```
