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/controller/e2pdf-settings.php +303 -200 1.03.071.32.49 View file →
@@ -1,11 +1,10 @@
1 1 <?php
2 2
3 3 /**
4 4 * E2pdf Settings Controller
5 - *
6 5 * @copyright Copyright 2017 https://e2pdf.com
7 - * @license GPL v2
6 + * @license GPLv3
8 7 * @version 1
9 8 * @link https://e2pdf.com
10 9 * @since 0.00.01
11 10 */
@@ -18,204 +17,356 @@
18 17 /**
19 18 * @url admin.php?page=e2pdf-settings
20 19 */
21 20 public function index_action() {
22 - if ($this->post->get()) {
23 - $this->check_nonce($this->post->get('_nonce'), 'e2pdf_post');
24 - $options = Model_E2pdf_Options::get_options(false, array('common_group'));
25 - foreach ($options as $group_key => $group) {
26 - foreach ($group['options'] as $option_key => $option_value) {
27 - if (array_key_exists($option_value['key'], $this->post->get())) {
28 - update_option($option_value['key'], $this->post->get($option_value['key']));
29 - }
21 + if ($this->post->get('_wpnonce')) {
22 + if (wp_verify_nonce($this->post->get('_wpnonce'), 'e2pdf_settings')) {
23 + $reload = false;
24 + if (
25 + get_option('e2pdf_debug', '0') != $this->post->get('e2pdf_debug') ||
26 + get_option('e2pdf_recovery_mode_email', '') != $this->post->get('e2pdf_recovery_mode_email') ||
27 + ($this->post->get('e2pdf_debug') && get_option('e2pdf_memory_time', '0') != $this->post->get('e2pdf_debug'))
28 + ) {
29 + $reload = true;
30 30 }
31 - }
32 - $this->add_notification('update', __('Settings saved', 'e2pdf'));
33 - }
34 31
35 - $options = Model_E2pdf_Options::get_options(false, array('common_group'));
36 - $groups = $this->get_groups();
32 + $check_update = false;
33 + if (get_option('e2pdf_dev_update', '0') != $this->post->get('e2pdf_dev_update')) {
34 + $check_update = true;
35 + }
37 36
38 - $this->view('options', $options);
39 - $this->view('groups', $groups);
40 - }
37 + if ($this->post->get('e2pdf_api') && $this->post->get('e2pdf_api') != get_option('e2pdf_api', 'api.e2pdf.com')) {
38 + update_option('e2pdf_cached_fonts', array());
39 + }
41 40
42 - /**
43 - * @url admin.php?page=e2pdf-settings&action=fonts
44 - */
45 - public function fonts_action() {
41 + if (get_option('e2pdf_user_email', '') != $this->post->get('e2pdf_user_email')) {
42 + $model_e2pdf_api = new Model_E2pdf_Api();
43 + $model_e2pdf_api->set(
44 + array(
45 + 'action' => 'common/owner',
46 + 'data' => array(
47 + 'email' => trim($this->post->get('e2pdf_user_email')),
48 + ),
49 + )
50 + );
51 + $request = $model_e2pdf_api->request();
46 52
47 - $model_e2pdf_font = new Model_E2pdf_Font();
48 - $groups = $this->get_groups();
53 + if (isset($request['error'])) {
54 + if ($request['error'] === 'incorrect_email') {
55 + $request['error'] = sprintf(__('An account with that E-mail address was not found at E2Pdf.com. You can register at %s', 'e2pdf'), 'https://e2pdf.com/register');
56 + }
57 + $this->post->set('e2pdf_user_email', get_option('e2pdf_user_email', ''));
58 + $this->add_notification('error', $request['error']);
59 + }
60 + }
49 61
50 - if ($this->post->get()) {
51 - $this->check_nonce($this->post->get('_nonce'), 'e2pdf_post');
62 + if (get_option('e2pdf_cache', '1') !== $this->post->get('e2pdf_cache')) {
63 + $this->helper->load('cache')->purge_objects_cache();
64 + }
52 65
53 - $allowed_ext = array(
54 - 'ttf'
55 - );
66 + if (get_option('e2pdf_cache_fonts', '1') !== $this->post->get('e2pdf_cache_fonts')) {
67 + $this->helper->load('cache')->purge_fonts_cache();
68 + }
56 69
57 - $font = $this->files->get('font');
70 + if (get_option('e2pdf_cache_pdfs', '0') !== $this->post->get('e2pdf_cache_pdfs')) {
71 + $this->helper->load('cache')->purge_pdfs_cache();
72 + }
58 73
59 - $name = $font['name'];
60 - $tmp = $font['tmp_name'];
74 + Model_E2pdf_Options::update_options('common_group', $this->post->get());
75 + $this->add_notification('update', __('Settings Saved', 'e2pdf'));
61 76
77 + if ($this->post->get('e2pdf_cache_pdfs')) {
78 + if (!wp_next_scheduled('e2pdf_cache_pdfs_cron')) {
79 + wp_schedule_event(time(), 'hourly', 'e2pdf_cache_pdfs_cron');
80 + }
81 + } else {
82 + wp_clear_scheduled_hook('e2pdf_cache_pdfs_cron');
83 + $this->helper->load('cache')->purge_pdfs_cache();
84 + }
62 85
63 - $filename = pathinfo($name, PATHINFO_FILENAME);
64 - $ext = strtolower(pathinfo($name, PATHINFO_EXTENSION));
65 - $name = $filename . "." . $ext;
86 + if ($check_update) {
87 + delete_site_transient('update_plugins');
88 + }
89 + if ($reload) {
90 + $this->redirect($this->helper->get_url(array('page' => 'e2pdf-settings')));
91 + }
92 + } else {
93 + wp_die($this->message('wp_verify_nonce_error'));
94 + }
95 + }
66 96
67 - $fonts = $model_e2pdf_font->get_fonts();
97 + $this->view('options', Model_E2pdf_Options::get_options(false, array('common_group')));
98 + $this->view('groups', $this->get_groups());
99 + }
68 100
69 - $font_info = false;
70 - $exist = false;
71 -
72 - if (in_array($ext, $allowed_ext)) {
73 - $font_info = $model_e2pdf_font->get_font_info(false, 4, $tmp);
74 - if ($font_info) {
75 - $exist = array_search($font_info, $fonts);
101 + /**
102 + * @url admin.php?page=e2pdf-settings&action=maintenance
103 + */
104 + public function maintenance_action() {
105 + global $wpdb;
106 + if ($this->post->get('_wpnonce')) {
107 + if (wp_verify_nonce($this->post->get('_wpnonce'), 'e2pdf_settings')) {
108 + if ($this->post->get('e2pdf_purge_objects_cache')) {
109 + $this->helper->load('cache')->purge_objects_cache();
110 + $this->redirect(
111 + $this->helper->get_url(
112 + [
113 + 'page' => 'e2pdf-settings',
114 + 'action' => 'maintenance',
115 + 'notification' => $this->add_notification('update', __('Success', 'e2pdf')),
116 + ]
117 + )
118 + );
119 + } elseif ($this->post->get('e2pdf_purge_fonts_cache')) {
120 + $this->helper->load('cache')->purge_fonts_cache();
121 + $this->redirect(
122 + $this->helper->get_url(
123 + [
124 + 'page' => 'e2pdf-settings',
125 + 'action' => 'maintenance',
126 + 'notification' => $this->add_notification('update', __('Success', 'e2pdf')),
127 + ]
128 + )
129 + );
130 + } elseif ($this->post->get('e2pdf_purge_pdfs_cache')) {
131 + $this->helper->load('cache')->purge_pdfs_cache();
132 + $this->redirect(
133 + $this->helper->get_url(
134 + [
135 + 'page' => 'e2pdf-settings',
136 + 'action' => 'maintenance',
137 + 'notification' => $this->add_notification('update', __('Success', 'e2pdf')),
138 + ]
139 + )
140 + );
141 + } elseif ($this->post->get('e2pdf_purge_cache')) {
142 + $this->helper->load('cache')->purge_cache();
143 + $this->redirect(
144 + $this->helper->get_url(
145 + [
146 + 'page' => 'e2pdf-settings',
147 + 'action' => 'maintenance',
148 + 'notification' => $this->add_notification('update', __('Success', 'e2pdf')),
149 + ]
150 + )
151 + );
152 + } elseif ($this->post->get('e2pdf_db_optimize')) {
153 + $db_prefix = $wpdb->prefix;
154 + $this->helper->load('db')->db_optimize($db_prefix);
155 + $this->redirect(
156 + $this->helper->get_url(
157 + [
158 + 'page' => 'e2pdf-settings',
159 + 'action' => 'maintenance',
160 + 'notification' => $this->add_notification('update', __('Success', 'e2pdf')),
161 + ]
162 + )
163 + );
164 + } elseif ($this->post->get('e2pdf_recovery_mode_limit')) {
165 + delete_option('recovery_mode_email_last_sent');
166 + $this->redirect(
167 + $this->helper->get_url(
168 + [
169 + 'page' => 'e2pdf-settings',
170 + 'action' => 'maintenance',
171 + 'notification' => $this->add_notification('update', __('Success', 'e2pdf')),
172 + ]
173 + )
174 + );
76 175 }
176 + } else {
177 + wp_die($this->message('wp_verify_nonce_error'));
77 178 }
78 -
79 - if (!$tmp) {
80 - $this->add_notification('error', __('Please choose font to upload', 'e2pdf'));
81 - } else if ($font['error']) {
82 - $this->add_notification('error', $font['error']);
83 - } elseif (!in_array($ext, $allowed_ext)) {
84 - $this->add_notification('error', __('Incorrect file extension', 'e2pdf'));
85 - } elseif (!$font_info) {
86 - $this->add_notification('error', __('Incompatible type', 'e2pdf'));
87 - } elseif (array_key_exists($name, $fonts)) {
88 - $this->add_notification('error', __('Font with this filename already exists', 'e2pdf'));
89 - } elseif ($exist) {
90 - $this->add_notification('error', __('Font with this name already exists', 'e2pdf'));
91 - } elseif (move_uploaded_file($font['tmp_name'], $this->helper->get('fonts_dir') . $name)) {
92 - $this->add_notification('update', __('Font uploaded successfully', 'e2pdf'));
93 - }
94 179 }
95 180
96 - $fonts = $model_e2pdf_font->get_fonts();
97 -
98 - $this->view('fonts', $fonts);
99 - $this->view('groups', $groups);
181 + $this->view('groups', $this->get_groups());
100 182 }
101 183
102 184 /**
103 - * @url admin.php?page=e2pdf-settings&action=adobesign
185 + * @url admin.php?page=e2pdf-settings&action=fonts
104 186 */
105 - public function adobesign_action() {
187 + public function fonts_action() {
188 + $model_e2pdf_font = new Model_E2pdf_Font();
189 + if ($this->post->get('_wpnonce')) {
106 190
107 - if ($this->post->get()) {
191 + if (!wp_verify_nonce($this->post->get('_wpnonce'), 'e2pdf_settings')) {
192 + wp_die($this->message('wp_verify_nonce_error'));
193 + }
108 194
109 - $this->check_nonce($this->post->get('_nonce'), 'e2pdf_post');
110 - $options = Model_E2pdf_Options::get_options(false, array('adobesign_group'));
111 -
112 - foreach ($options as $group_key => $group) {
113 - foreach ($group['options'] as $option_key => $option_value) {
114 - if (array_key_exists($option_value['key'], $this->post->get())) {
115 - update_option($option_value['key'], $this->post->get($option_value['key']));
195 + $file = $this->helper->load('files')->upload($this->files->get('font'), $model_e2pdf_font->get_allowed_extensions());
196 + if (isset($file['error'])) {
197 + $this->add_notification('error', $file['error']);
198 + } else {
199 + $font_name = false;
200 + $exist = false;
201 + $fonts = $model_e2pdf_font->get_fonts();
202 + $font_name = $model_e2pdf_font->get_font_info(false, 4, $file['tmp_name']);
203 + $name = pathinfo($file['name'], PATHINFO_FILENAME) . '.' . $file['ext'];
204 + if ($font_name) {
205 + $exist = array_search($font_name, $fonts);
206 + }
207 + if (!$font_name) {
208 + $this->add_notification('error', __('Invalid Type', 'e2pdf'));
209 + } elseif (array_key_exists($name, $fonts) || $exist) {
210 + $this->add_notification('error', __('A Font with this name already exists', 'e2pdf'));
211 + } else {
212 + if (!move_uploaded_file($file['tmp_name'], $this->helper->get('fonts_dir') . $name)) {
213 + $this->add_notification('error', __('Failed to move uploaded file', 'e2pdf'));
214 + } else {
215 + $this->add_notification('update', __('Font Uploaded', 'e2pdf'));
116 216 }
117 217 }
118 218 }
219 + }
119 220
120 - $model_e2pdf_adobesign = new Model_E2pdf_AdobeSign();
121 - $request = $model_e2pdf_adobesign->request_code();
221 + $fonts = $model_e2pdf_font->get_fonts();
122 222
123 - if (isset($request['error'])) {
124 - $this->add_notification('error', $request['error']);
125 - } elseif (isset($request['redirect'])) {
126 - $this->redirect($request['redirect']);
127 - } else {
128 - $this->add_notification('update', __('Settings saved', 'e2pdf'));
129 - }
130 - } elseif ($this->get->get('code') && $this->get->get('api_access_point')) {
131 - update_option('e2pdf_adobesign_code', $this->get->get('code'));
132 - update_option('e2pdf_adobesign_api_access_point', $this->get->get('api_access_point'));
223 + $this->view('fonts', $fonts);
224 + $this->view('allowed_extensions', $model_e2pdf_font->get_allowed_extensions());
225 + $this->view('cached_fonts', get_option('e2pdf_cached_fonts', array()));
226 + $this->view('groups', $this->get_groups());
227 + $this->view('upload_max_filesize', $this->helper->load('files')->get_upload_max_filesize());
228 + }
133 229
134 - $model_e2pdf_adobesign = new Model_E2pdf_AdobeSign();
135 - $request = $model_e2pdf_adobesign->request_refresh_token();
230 + /**
231 + * @url admin.php?page=e2pdf-settings&action=adobesign
232 + * Backward Compatibility
233 + */
234 + public function adobesign_action() {
235 + $redirect_url = [
236 + 'page' => 'e2pdf-integrations',
237 + 'action' => 'adobesign',
238 + ];
239 + if ($this->get->get('code') && get_option('e2pdf_adobesign_client_id', '') && get_option('e2pdf_adobesign_client_secret', '')) {
240 + $redirect_url['code'] = $this->get->get('code');
241 + $redirect_url['_wpnonce'] = wp_create_nonce('e2pdf_adobe');
242 + }
243 + $this->redirect(
244 + $this->helper->get_url(
245 + $redirect_url
246 + )
247 + );
248 + }
136 249
137 - if (isset($request['error'])) {
138 - $this->add_notification('error', $request['error']);
250 + /**
251 + * @url admin.php?page=e2pdf-settings&action=extension
252 + */
253 + public function extension_action() {
254 + $group_key = $this->get->get('group');
255 + if ($this->post->get('_wpnonce')) {
256 + if (wp_verify_nonce($this->post->get('_wpnonce'), 'e2pdf_settings')) {
257 + Model_E2pdf_Options::update_options($group_key, $this->post->get());
258 + $this->add_notification('update', __('Settings Saved', 'e2pdf'));
139 259 } else {
140 - $this->add_notification('update', __('App authorized successfully', 'e2pdf'));
260 + wp_die($this->message('wp_verify_nonce_error'));
141 261 }
142 - $location = $this->helper->get_url(array('page' => 'e2pdf-settings', 'action' => 'adobesign'));
143 - $this->redirect($location);
144 - return;
145 262 }
146 263
147 - $options = Model_E2pdf_Options::get_options(false, array('adobesign_group'));
148 -
149 - $this->view('options', $options);
150 - $groups = $this->get_groups();
151 - $this->view('groups', $groups);
264 + $this->view('options', Model_E2pdf_Options::get_options(false, array($group_key)));
265 + $this->view('groups', $this->get_groups());
152 266 }
153 267
154 268 /**
155 - * @url admin.php?page=e2pdf-settings&action=docusign
269 + * @url admin.php?page=e2pdf-settings&action=extensions
156 270 */
157 - public function docusign_action() {
271 + public function extensions_action() {
158 272
159 - if ($this->post->get()) {
160 -
161 - $this->check_nonce($this->post->get('_nonce'), 'e2pdf_post');
162 - $options = Model_E2pdf_Options::get_options(false, array('docusign_group'));
163 -
164 - foreach ($options as $group_key => $group) {
165 - foreach ($group['options'] as $option_key => $option_value) {
166 - if (array_key_exists($option_value['key'], $this->post->get())) {
167 - update_option($option_value['key'], $this->post->get($option_value['key']));
168 - }
273 + if ($this->post->get('_wpnonce')) {
274 + if (wp_verify_nonce($this->post->get('_wpnonce'), 'e2pdf_settings')) {
275 + if (!$this->post->get('e2pdf_disabled_extensions')) {
276 + update_option('e2pdf_disabled_extensions', array());
277 + } else {
278 + update_option('e2pdf_disabled_extensions', array_filter($this->post->get('e2pdf_disabled_extensions')));
169 279 }
280 + $this->redirect(
281 + $this->helper->get_url(
282 + [
283 + 'page' => 'e2pdf-settings',
284 + 'action' => 'extensions',
285 + 'notification' => $this->add_notification('update', __('Settings Saved', 'e2pdf')),
286 + ]
287 + )
288 + );
289 + } else {
290 + wp_die($this->message('wp_verify_nonce_error'));
170 291 }
171 -
172 - $this->add_notification('update', __('Settings saved', 'e2pdf'));
173 292 }
174 -
175 - $options = Model_E2pdf_Options::get_options(false, array('docusign_group'));
176 -
177 - $this->view('options', $options);
178 - $groups = $this->get_groups();
179 - $this->view('groups', $groups);
293 + $this->view('options', Model_E2pdf_Options::get_options(false, array('extensions_group')));
294 + $this->view('groups', $this->get_groups());
180 295 }
181 296
182 - public function extension_action() {
183 -
184 - $group_key = $this->get->get('group');
185 -
186 - if ($this->post->get()) {
187 -
188 - $this->check_nonce($this->post->get('_nonce'), 'e2pdf_post');
189 - $options = Model_E2pdf_Options::get_options(false, array($group_key));
190 -
191 - foreach ($options as $group_key => $group) {
192 - foreach ($group['options'] as $option_key => $option_value) {
193 - if (array_key_exists($option_value['key'], $this->post->get())) {
194 - update_option($option_value['key'], $this->post->get($option_value['key']));
297 + /**
298 + * @url admin.php?page=e2pdf-settings&action=permissions
299 + */
300 + public function permissions_action() {
301 + if ($this->post->get('_wpnonce')) {
302 + if (wp_verify_nonce($this->post->get('_wpnonce'), 'e2pdf_settings')) {
303 + $permissions = $this->post->get('permissions');
304 + $roles = wp_roles()->roles;
305 + $caps = $this->helper->get_caps();
306 + foreach ($permissions as $permission_key => $permission) {
307 + $role = get_role($permission_key);
308 + if ($role) {
309 + foreach ($permission as $cap_key => $cap) {
310 + if (isset($caps[$cap_key])) {
311 + if ($cap) {
312 + $role->add_cap($cap_key);
313 + } else {
314 + $role->remove_cap($cap_key);
315 + }
316 + }
317 + }
195 318 }
196 319 }
320 + $this->add_notification('update', __('Settings Saved', 'e2pdf'));
321 + } else {
322 + wp_die($this->message('wp_verify_nonce_error'));
197 323 }
324 + }
198 325
199 - $this->add_notification('update', __('Settings saved', 'e2pdf'));
326 + $roles = wp_roles()->roles;
327 + foreach ($roles as $role_key => $role) {
328 + if (isset($role['capabilities']['manage_options']) && $role['capabilities']['manage_options']) {
329 + unset($roles[$role_key]);
330 + }
200 331 }
201 332
202 - $options = Model_E2pdf_Options::get_options(false, array($group_key));
203 - $groups = $this->get_groups();
333 + $this->view('groups', $this->get_groups());
334 + $this->view('roles', $roles);
335 + $this->view('caps', $this->helper->get_caps());
336 + }
204 337
205 - $this->view('options', $options);
206 - $this->view('groups', $groups);
338 + /**
339 + * @url admin.php?page=e2pdf-settings&action=extensions
340 + */
341 + public function translation_action() {
342 + if ($this->post->get('_wpnonce')) {
343 + if (wp_verify_nonce($this->post->get('_wpnonce'), 'e2pdf_settings')) {
344 + Model_E2pdf_Options::update_options('translation_group', $this->post->get());
345 + $this->add_notification('update', __('Settings Saved', 'e2pdf'));
346 + } else {
347 + wp_die($this->message('wp_verify_nonce_error'));
348 + }
349 + }
350 + $this->view('options', Model_E2pdf_Options::get_options(false, array('translation_group')));
351 + $this->view('groups', $this->get_groups());
207 352 }
208 353
209 354 /**
210 355 * Get options list
211 - *
212 356 * @return array() - Options list
213 357 */
214 358 public function get_groups() {
215 - $groups = Model_E2pdf_Options::get_options(false, array(
359 + $groups = Model_E2pdf_Options::get_options(
360 + false,
361 + array(
216 362 'static_group',
217 - ), true);
363 + 'adobesign_group',
364 + 'gdrive_group',
365 + 'zapier_group',
366 + ),
367 + true
368 + );
218 369
219 370 return $groups;
220 371 }
221 372
@@ -222,75 +373,27 @@
222 373 /**
223 374 * Remove font via ajax
224 375 * action: wp_ajax_e2pdf_delete_font
225 376 * function: e2pdf_delete_font
226 - *
227 377 * @return json
228 378 */
229 379 public function ajax_delete_font() {
230 -
231 - $this->check_nonce($this->get->get('_nonce'), 'e2pdf_ajax');
232 - $font = $this->post->get('data');
233 -
234 - $model_e2pdf_font = new Model_E2pdf_Font();
235 - $model_e2pdf_font->delete_font($font);
236 -
237 - $response = array(
238 - 'redirect' => $this->helper->get_url(array(
239 - 'page' => 'e2pdf-settings',
240 - 'action' => 'fonts'
241 - )
242 - )
243 - );
244 -
245 - $this->add_notification('update', __('Font removed successfully', 'e2pdf'));
246 - $this->json_response($response);
247 - }
248 -
249 - public function ajax_email() {
250 - $this->check_nonce($this->get->get('_nonce'), 'e2pdf_ajax');
251 -
252 - $data = $this->post->get('data');
253 - $email = isset($data['email']) ? trim($data['email']) : '';
254 - $email_code = isset($data['email_code']) ? trim($data['email_code']) : '';
255 -
256 -
257 - $model_e2pdf_api = new Model_E2pdf_Api();
258 - $model_e2pdf_api->set(array(
259 - 'action' => 'common/email',
260 - 'data' => array(
261 - 'email' => $email,
262 - 'email_code' => $email_code,
263 - 'email_confirm' => isset($data['email_code'])
264 - )
265 - ));
266 - $request = $model_e2pdf_api->request();
267 -
268 -
269 -
270 - if (isset($request['error'])) {
271 - if ($request['error'] === 'incorrect_email') {
272 - $response = array(
273 - 'error' => __('E-mail address incorrect', 'e2pdf')
274 - );
275 - } elseif ($request['error'] === 'incorrect_code') {
276 - $response = array(
277 - 'error' => __('Confirmation code incorrect', 'e2pdf')
278 - );
279 - } else {
280 - $response = array(
281 - 'error' => $request['error']
282 - );
283 - }
284 - } elseif (isset($request['success'])) {
380 + if (wp_verify_nonce($this->get->get('_wpnonce'), 'e2pdf_settings')) {
381 + $font = $this->post->get('data');
382 + $model_e2pdf_font = new Model_E2pdf_Font();
383 + $model_e2pdf_font->delete_font($font);
285 384 $response = array(
286 - 'content' => $request['success']
385 + 'redirect' => $this->helper->get_url(
386 + array(
387 + 'page' => 'e2pdf-settings',
388 + 'action' => 'fonts',
389 + 'notification' => $this->add_notification('update', __('Font Deleted', 'e2pdf')),
390 + )
391 + ),
287 392 );
288 - if ($request['success'] == 'subscribed') {
289 - update_option('e2pdf_email', $email);
290 - }
393 + } else {
394 + $response['error'] = $this->message('wp_verify_nonce_error');
291 395 }
292 396
293 397 $this->json_response($response);
294 398 }
295 -
296 399 }