Contact Form & SMTP Plugin for WordPress by PirateForms - Version 2.1.0

Version Description

  • 2017-08-26
Download this release

Release Info

Developer codeinwp
Plugin Icon 128x128 Contact Form & SMTP Plugin for WordPress by PirateForms
Version 2.1.0
Comparing to
See all releases

Code changes from version 2.0.5 to 2.1.0

CHANGELOG.md CHANGED
@@ -1,7 +1,11 @@
1
 
2
- ### v2.0.5 - 2017-08-16
3
  **Changes:**
4
-
 
 
 
 
5
  ### v2.0.5 - 2017-08-16
6
  **Changes:**
7
  * Fixed compatibility with the pro version for multiple fields.
1
 
2
+ ### v2.1.0 - 2017-08-26
3
  **Changes:**
4
+ * Improved compatibility with the pro version.
5
+ * Fixed broken form layout on certain themes.
6
+ * Improved security.
7
+ * Added test email functionality.
8
+
9
  ### v2.0.5 - 2017-08-16
10
  **Changes:**
11
  * Fixed compatibility with the pro version for multiple fields.
admin/class-pirateforms-admin.php CHANGED
@@ -27,7 +27,7 @@ class PirateForms_Admin {
27
  *
28
  * @since 1.0.0
29
  * @access private
30
- * @var string $plugin_name The ID of this plugin.
31
  */
32
  private $plugin_name;
33
 
@@ -36,7 +36,7 @@ class PirateForms_Admin {
36
  *
37
  * @since 1.0.0
38
  * @access private
39
- * @var string $version The current version of this plugin.
40
  */
41
  private $version;
42
 
@@ -44,13 +44,14 @@ class PirateForms_Admin {
44
  * Initialize the class and set its properties.
45
  *
46
  * @since 1.0.0
47
- * @param string $plugin_name The name of this plugin.
48
- * @param string $version The version of this plugin.
 
49
  */
50
  public function __construct( $plugin_name, $version ) {
51
 
52
  $this->plugin_name = $plugin_name;
53
- $this->version = $version;
54
 
55
  }
56
 
@@ -61,6 +62,7 @@ class PirateForms_Admin {
61
  */
62
  public function enqueue_styles_and_scripts() {
63
  global $pagenow;
 
64
  if ( ! empty( $pagenow ) && ( $pagenow == 'options-general.php' || $pagenow == 'admin.php' )
65
  && isset( $_GET['page'] ) && $_GET['page'] == 'pirateforms-admin'
66
  ) {
@@ -68,10 +70,15 @@ class PirateForms_Admin {
68
  wp_enqueue_script( 'pirateforms_scripts_admin', PIRATEFORMS_URL . 'admin/js/scripts-admin.js', array( 'jquery' ), $this->version );
69
  wp_localize_script(
70
  'pirateforms_scripts_admin', 'cwp_top_ajaxload', array(
71
- 'ajaxurl' => admin_url( 'admin-ajax.php' ),
 
72
  )
73
  );
74
  }
 
 
 
 
75
  }
76
 
77
  /**
@@ -124,13 +131,40 @@ class PirateForms_Admin {
124
  *
125
  * Add page to the dashbord menu
126
  *
127
- * @since 1.0.0
128
  */
129
  public function add_to_admin() {
130
- add_menu_page( PIRATEFORMS_NAME, PIRATEFORMS_NAME, 'manage_options', 'pirateforms-admin', array( $this, 'settings' ), 'dashicons-feedback' );
131
- add_submenu_page( 'pirateforms-admin', PIRATEFORMS_NAME, __( 'Settings', 'pirate-forms' ), 'manage_options', 'pirateforms-admin', array( $this, 'settings' ) );
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
132
  }
133
 
 
 
 
 
 
 
 
134
 
135
  /**
136
  * Admin area setting page for the plugin
@@ -143,20 +177,6 @@ class PirateForms_Admin {
143
  $plugin_options = $this->pirate_forms_plugin_options();
144
  include_once PIRATEFORMS_DIR . 'admin/partials/pirateforms-settings-display.php';
145
  }
146
- /**
147
- * ******** Save default options if none exist ***********/
148
- public function settings_init() {
149
- if ( ! PirateForms_Util::get_option() ) {
150
- $new_opt = array();
151
- foreach ( $this->pirate_forms_plugin_options() as $tab => $array ) {
152
- foreach ( $array['controls'] as $controls ) {
153
- $new_opt[ $controls['id'] ] = isset( $controls['default'] ) ? $controls['default'] : '';
154
- }
155
- }
156
- PirateForms_Util::set_option( $new_opt );
157
- }
158
- }
159
-
160
 
161
  /**
162
  *
@@ -208,143 +228,143 @@ class PirateForms_Admin {
208
  return apply_filters(
209
  'pirate_forms_admin_controls', array(
210
  'pirate_options pirate_dashicons' => array(
211
- 'heading' => __( 'Form processing options', 'pirate-forms' ),
212
- 'controls' => apply_filters(
213
  'pirate_forms_admin_controls_for_options', array(
214
  array(
215
- 'id' => 'pirateformsopt_email',
216
- 'type' => 'text',
217
- 'label' => array(
218
  'value' => __( 'Contact notification email address', 'pirate-forms' ),
219
  'html' => '<span class="dashicons dashicons-editor-help"></span>',
220
- 'desc' => array(
221
  'value' => '<strong>' . __( "Insert [email] to use the contact form submitter's email.", 'pirate-forms' ) . '</strong><br>' . __( "The notification email will be sent from this address both to the recipients below and the contact form submitter (if this is activated below in email confirmation, in which case the domain for this email address should match your site's domain).", 'pirate-forms' ),
222
  'class' => 'pirate_forms_option_description',
223
  ),
224
  ),
225
- 'default' => PirateForms_Util::get_from_email(),
226
- 'value' => PirateForms_Util::get_option( 'pirateformsopt_email' ),
227
- 'wrap' => array(
228
  'type' => 'div',
229
  'class' => 'pirate-forms-grouped',
230
  ),
231
- 'class' => 'widefat',
232
  ),
233
  array(
234
- 'id' => 'pirateformsopt_email_recipients',
235
- 'type' => 'text',
236
- 'label' => array(
237
  'value' => __( 'Contact submission recipients', 'pirate-forms' ),
238
  'html' => '<span class="dashicons dashicons-editor-help"></span>',
239
- 'desc' => array(
240
  'value' => __( 'Email address(es) to receive contact submission notifications. You can separate multiple emails with a comma.', 'pirate-forms' ),
241
  'class' => 'pirate_forms_option_description',
242
  ),
243
  ),
244
- 'default' => $pirate_forms_contactus_email,
245
- 'value' => PirateForms_Util::get_option( 'pirateformsopt_email_recipients' ),
246
- 'wrap' => array(
247
  'type' => 'div',
248
  'class' => 'pirate-forms-grouped',
249
  ),
250
- 'class' => 'widefat',
251
  ),
252
  array(
253
- 'id' => 'pirateformsopt_store',
254
- 'type' => 'checkbox',
255
- 'label' => array(
256
  'value' => __( 'Store submissions in the database', 'pirate-forms' ),
257
  'html' => '<span class="dashicons dashicons-editor-help"></span>',
258
- 'desc' => array(
259
  'value' => __( 'Should the submissions be stored in the admin area? If chosen, contact form submissions will be saved in Contacts on the left (appears after this option is activated).', 'pirate-forms' ),
260
  'class' => 'pirate_forms_option_description',
261
  ),
262
  ),
263
- 'default' => 'yes',
264
- 'value' => PirateForms_Util::get_option( 'pirateformsopt_store' ),
265
- 'wrap' => array(
266
  'type' => 'div',
267
  'class' => 'pirate-forms-grouped',
268
  ),
269
- 'options' => array( 'yes' => __( 'Yes', 'pirate-forms' ) ),
270
  ),
271
  array(
272
- 'id' => 'pirateformsopt_nonce',
273
- 'type' => 'checkbox',
274
- 'label' => array(
275
  'value' => __( 'Add a nonce to the contact form:', 'pirate-forms' ),
276
  'html' => '<span class="dashicons dashicons-editor-help"></span>',
277
- 'desc' => array(
278
  'value' => __( 'Should the form use a WordPress nonce? This helps reduce spam by ensuring that the form submittor is on the site when submitting the form rather than submitting remotely. This could, however, cause problems with sites using a page caching plugin. Turn this off if you are getting complaints about forms not being able to be submitted with an error of "Nonce failed!"', 'pirate-forms' ),
279
  'class' => 'pirate_forms_option_description',
280
  ),
281
  ),
282
- 'default' => 'yes',
283
- 'value' => PirateForms_Util::get_option( 'pirateformsopt_nonce' ),
284
- 'wrap' => array(
285
  'type' => 'div',
286
  'class' => 'pirate-forms-grouped',
287
  ),
288
- 'options' => array( 'yes' => __( 'Yes', 'pirate-forms' ) ),
289
  ),
290
  array(
291
- 'id' => 'pirateformsopt_confirm_email',
292
- 'type' => 'textarea',
293
- 'label' => array(
294
  'value' => __( 'Send email confirmation to form submitter', 'pirate-forms' ),
295
  'html' => '<span class="dashicons dashicons-editor-help"></span>',
296
- 'desc' => array(
297
  'value' => __( 'Adding text here will send an email to the form submitter. The email uses the "Successful form submission text" field from the "Alert Messages" tab as the subject line. Plain text only here, no HTML.', 'pirate-forms' ),
298
  'class' => 'pirate_forms_option_description',
299
  ),
300
  ),
301
- 'value' => PirateForms_Util::get_option( 'pirateformsopt_confirm_email' ),
302
- 'wrap' => array(
303
  'type' => 'div',
304
  'class' => 'pirate-forms-grouped',
305
  ),
306
- 'cols' => 70,
307
- 'rows' => 5,
308
  ),
309
  array(
310
- 'id' => 'pirateformsopt_thank_you_url',
311
- 'type' => 'select',
312
- 'label' => array(
313
  'value' => __( 'Success Page', 'pirate-forms' ),
314
  'html' => '<span class="dashicons dashicons-editor-help"></span>',
315
- 'desc' => array(
316
  'value' => __( 'Select the page that displays after a successful form submission. The page will be displayed without pausing on the email form, so please be sure to configure a relevant thank you message in this page.', 'pirate-forms' ),
317
  'class' => 'pirate_forms_option_description',
318
  ),
319
  ),
320
- 'value' => PirateForms_Util::get_option( 'pirateformsopt_thank_you_url' ),
321
- 'wrap' => array(
322
  'type' => 'div',
323
  'class' => 'pirate-forms-grouped',
324
  ),
325
- 'options' => PirateForms_Util::get_thank_you_pages(),
326
  ),
327
  )
328
  ),
329
  ),
330
  'pirate_fields pirate_dashicons' => array(
331
- 'heading' => __( 'Fields Settings', 'pirate-forms' ),
332
- 'controls' => apply_filters(
333
  'pirate_forms_admin_controls_for_fields', array(
334
  /* Name */
335
  array(
336
- 'id' => 'pirateformsopt_name_field',
337
- 'type' => 'select',
338
- 'label' => array(
339
  'value' => __( 'Name', 'pirate-forms' ),
340
  ),
341
- 'default' => 'req',
342
- 'value' => PirateForms_Util::get_option( 'pirateformsopt_name_field' ),
343
- 'wrap' => array(
344
  'type' => 'div',
345
  'class' => 'pirate-forms-grouped',
346
  ),
347
- 'options' => array(
348
  '' => __( 'Do not display', 'pirate-forms' ),
349
  'yes' => __( 'Display but not required', 'pirate-forms' ),
350
  'req' => __( 'Required', 'pirate-forms' ),
@@ -352,18 +372,18 @@ class PirateForms_Admin {
352
  ),
353
  /* Email */
354
  array(
355
- 'id' => 'pirateformsopt_email_field',
356
- 'type' => 'select',
357
- 'label' => array(
358
  'value' => __( 'Email address', 'pirate-forms' ),
359
  ),
360
- 'default' => 'req',
361
- 'value' => PirateForms_Util::get_option( 'pirateformsopt_email_field' ),
362
- 'wrap' => array(
363
  'type' => 'div',
364
  'class' => 'pirate-forms-grouped',
365
  ),
366
- 'options' => array(
367
  '' => __( 'Do not display', 'pirate-forms' ),
368
  'yes' => __( 'Display but not required', 'pirate-forms' ),
369
  'req' => __( 'Required', 'pirate-forms' ),
@@ -371,18 +391,18 @@ class PirateForms_Admin {
371
  ),
372
  /* Subject */
373
  array(
374
- 'id' => 'pirateformsopt_subject_field',
375
- 'type' => 'select',
376
- 'label' => array(
377
  'value' => __( 'Subject', 'pirate-forms' ),
378
  ),
379
- 'default' => 'req',
380
- 'value' => PirateForms_Util::get_option( 'pirateformsopt_subject_field' ),
381
- 'wrap' => array(
382
  'type' => 'div',
383
  'class' => 'pirate-forms-grouped',
384
  ),
385
- 'options' => array(
386
  '' => __( 'Do not display', 'pirate-forms' ),
387
  'yes' => __( 'Display but not required', 'pirate-forms' ),
388
  'req' => __( 'Required', 'pirate-forms' ),
@@ -390,18 +410,18 @@ class PirateForms_Admin {
390
  ),
391
  /* Message */
392
  array(
393
- 'id' => 'pirateformsopt_message_field',
394
- 'type' => 'select',
395
- 'label' => array(
396
  'value' => __( 'Message', 'pirate-forms' ),
397
  ),
398
- 'default' => 'req',
399
- 'value' => PirateForms_Util::get_option( 'pirateformsopt_message_field' ),
400
- 'wrap' => array(
401
  'type' => 'div',
402
  'class' => 'pirate-forms-grouped',
403
  ),
404
- 'options' => array(
405
  '' => __( 'Do not display', 'pirate-forms' ),
406
  'yes' => __( 'Display but not required', 'pirate-forms' ),
407
  'req' => __( 'Required', 'pirate-forms' ),
@@ -409,17 +429,17 @@ class PirateForms_Admin {
409
  ),
410
  /* Attachment */
411
  array(
412
- 'id' => 'pirateformsopt_attachment_field',
413
- 'type' => 'select',
414
- 'label' => array(
415
  'value' => __( 'Attachment', 'pirate-forms' ),
416
  ),
417
- 'value' => PirateForms_Util::get_option( 'pirateformsopt_attachment_field' ),
418
- 'wrap' => array(
419
  'type' => 'div',
420
  'class' => 'pirate-forms-grouped',
421
  ),
422
- 'options' => array(
423
  '' => __( 'Do not display', 'pirate-forms' ),
424
  'yes' => __( 'Display but not required', 'pirate-forms' ),
425
  'req' => __( 'Required', 'pirate-forms' ),
@@ -427,50 +447,50 @@ class PirateForms_Admin {
427
  ),
428
  /* Recaptcha */
429
  array(
430
- 'id' => 'pirateformsopt_recaptcha_field',
431
- 'type' => 'checkbox',
432
- 'label' => array(
433
  'value' => __( 'Add a reCAPTCHA', 'pirate-forms' ),
434
  ),
435
- 'default' => $pirate_forms_contactus_recaptcha_show,
436
- 'value' => PirateForms_Util::get_option( 'pirateformsopt_recaptcha_field' ),
437
- 'wrap' => array(
438
  'type' => 'div',
439
  'class' => 'pirate-forms-grouped',
440
  ),
441
- 'options' => array(
442
  'yes' => __( 'Yes', 'pirate-forms' ),
443
  ),
444
  ),
445
  /* Site key */
446
  array(
447
- 'id' => 'pirateformsopt_recaptcha_sitekey',
448
- 'type' => 'text',
449
- 'label' => array(
450
  'value' => __( 'Site key', 'pirate-forms' ),
451
  'html' => '<span class="dashicons dashicons-editor-help"></span>',
452
- 'desc' => array(
453
  'value' => '<a href="https://www.google.com/recaptcha/admin#list" target="_blank">' . __( 'Create an account here ', 'pirate-forms' ) . '</a>' . __( 'to get the Site key and the Secret key for the reCaptcha.', 'pirate-forms' ),
454
  'class' => 'pirate_forms_option_description',
455
  ),
456
  ),
457
- 'default' => $pirate_forms_contactus_sitekey,
458
- 'value' => PirateForms_Util::get_option( 'pirateformsopt_recaptcha_sitekey' ),
459
- 'wrap' => array(
460
  'type' => 'div',
461
  'class' => 'pirate-forms-grouped',
462
  ),
463
  ),
464
  /* Secret key */
465
  array(
466
- 'id' => 'pirateformsopt_recaptcha_secretkey',
467
- 'type' => 'password',
468
- 'label' => array(
469
  'value' => __( 'Secret key', 'pirate-forms' ),
470
  ),
471
- 'default' => $pirate_forms_contactus_secretkey,
472
- 'value' => PirateForms_Util::get_option( 'pirateformsopt_recaptcha_secretkey' ),
473
- 'wrap' => array(
474
  'type' => 'div',
475
  'class' => 'pirate-forms-grouped',
476
  ),
@@ -478,71 +498,71 @@ class PirateForms_Admin {
478
  )
479
  ),
480
  ),
481
- 'pirate_labels' => array(
482
- 'heading' => __( 'Fields Labels', 'pirate-forms' ),
483
- 'controls' => apply_filters(
484
  'pirate_forms_admin_controls_for_field_labels', array(
485
  array(
486
- 'id' => 'pirateformsopt_label_name',
487
- 'type' => 'text',
488
- 'label' => array(
489
  'value' => __( 'Name', 'pirate-forms' ),
490
  ),
491
- 'default' => __( 'Your Name', 'pirate-forms' ),
492
- 'value' => PirateForms_Util::get_option( 'pirateformsopt_label_name' ),
493
- 'wrap' => array(
494
  'type' => 'div',
495
  'class' => 'pirate-forms-grouped',
496
  ),
497
  ),
498
  array(
499
- 'id' => 'pirateformsopt_label_email',
500
- 'type' => 'text',
501
- 'label' => array(
502
  'value' => __( 'Email', 'pirate-forms' ),
503
  ),
504
- 'default' => __( 'Your Email', 'pirate-forms' ),
505
- 'value' => PirateForms_Util::get_option( 'pirateformsopt_label_email' ),
506
- 'wrap' => array(
507
  'type' => 'div',
508
  'class' => 'pirate-forms-grouped',
509
  ),
510
  ),
511
  array(
512
- 'id' => 'pirateformsopt_label_subject',
513
- 'type' => 'text',
514
- 'label' => array(
515
  'value' => __( 'Subject', 'pirate-forms' ),
516
  ),
517
- 'default' => __( 'Subject', 'pirate-forms' ),
518
- 'value' => PirateForms_Util::get_option( 'pirateformsopt_label_subject' ),
519
- 'wrap' => array(
520
  'type' => 'div',
521
  'class' => 'pirate-forms-grouped',
522
  ),
523
  ),
524
  array(
525
- 'id' => 'pirateformsopt_label_message',
526
- 'type' => 'text',
527
- 'label' => array(
528
  'value' => __( 'Message', 'pirate-forms' ),
529
  ),
530
- 'default' => __( 'Your message', 'pirate-forms' ),
531
- 'value' => PirateForms_Util::get_option( 'pirateformsopt_label_message' ),
532
- 'wrap' => array(
533
  'type' => 'div',
534
  'class' => 'pirate-forms-grouped',
535
  ),
536
  ),
537
  array(
538
- 'id' => 'pirateformsopt_label_submit_btn',
539
- 'type' => 'text',
540
- 'label' => array(
541
  'value' => __( 'Submit button', 'pirate-forms' ),
542
  ),
543
- 'default' => $pirate_forms_contactus_button_label,
544
- 'value' => PirateForms_Util::get_option( 'pirateformsopt_label_submit_btn' ),
545
- 'wrap' => array(
546
  'type' => 'div',
547
  'class' => 'pirate-forms-grouped',
548
  ),
@@ -551,88 +571,88 @@ class PirateForms_Admin {
551
  ),
552
  ),
553
  'pirate_alerts pirate_dashicons' => array(
554
- 'heading' => __( 'Alert Messages', 'pirate-forms' ),
555
- 'controls' => apply_filters(
556
  'pirate_forms_admin_controls_for_alerts', array(
557
  array(
558
- 'id' => 'pirateformsopt_label_err_name',
559
- 'type' => 'text',
560
- 'label' => array(
561
  'value' => __( 'Name required and missing', 'pirate-forms' ),
562
  ),
563
- 'default' => __( 'Enter your name', 'pirate-forms' ),
564
- 'value' => PirateForms_Util::get_option( 'pirateformsopt_label_err_name' ),
565
- 'wrap' => array(
566
  'type' => 'div',
567
  'class' => 'pirate-forms-grouped',
568
  ),
569
  ),
570
  array(
571
- 'id' => 'pirateformsopt_label_err_email',
572
- 'type' => 'text',
573
- 'label' => array(
574
  'value' => __( 'E-mail required and missing', 'pirate-forms' ),
575
  ),
576
- 'default' => __( 'Enter valid email', 'pirate-forms' ),
577
- 'value' => PirateForms_Util::get_option( 'pirateformsopt_label_err_email' ),
578
- 'wrap' => array(
579
  'type' => 'div',
580
  'class' => 'pirate-forms-grouped',
581
  ),
582
  ),
583
  array(
584
- 'id' => 'pirateformsopt_label_err_subject',
585
- 'type' => 'text',
586
- 'label' => array(
587
  'value' => __( 'Subject required and missing', 'pirate-forms' ),
588
  ),
589
- 'default' => __( 'Please enter a subject', 'pirate-forms' ),
590
- 'value' => PirateForms_Util::get_option( 'pirateformsopt_label_err_subject' ),
591
- 'wrap' => array(
592
  'type' => 'div',
593
  'class' => 'pirate-forms-grouped',
594
  ),
595
  ),
596
  array(
597
- 'id' => 'pirateformsopt_label_err_no_content',
598
- 'type' => 'text',
599
- 'label' => array(
600
  'value' => __( 'Question/comment is missing', 'pirate-forms' ),
601
  ),
602
- 'default' => __( 'Enter your question or comment', 'pirate-forms' ),
603
- 'value' => PirateForms_Util::get_option( 'pirateformsopt_label_err_no_content' ),
604
- 'wrap' => array(
605
  'type' => 'div',
606
  'class' => 'pirate-forms-grouped',
607
  ),
608
  ),
609
  array(
610
- 'id' => 'pirateformsopt_label_err_no_attachment',
611
- 'type' => 'text',
612
- 'label' => array(
613
  'value' => __( 'Attachment is missing', 'pirate-forms' ),
614
  ),
615
- 'default' => __( 'Please add an attachment', 'pirate-forms' ),
616
- 'value' => PirateForms_Util::get_option( 'pirateformsopt_label_err_no_attachment' ),
617
- 'wrap' => array(
618
  'type' => 'div',
619
  'class' => 'pirate-forms-grouped',
620
  ),
621
  ),
622
  array(
623
- 'id' => 'pirateformsopt_label_submit',
624
- 'type' => 'text',
625
- 'label' => array(
626
  'value' => __( 'Successful form submission text', 'pirate-forms' ),
627
  'html' => '<span class="dashicons dashicons-editor-help"></span>',
628
- 'desc' => array(
629
  'value' => __( 'This text is used on the page if no Success Page is chosen above. This is also used as the confirmation email title, if one is set to send out.', 'pirate-forms' ),
630
  'class' => 'pirate_forms_option_description',
631
  ),
632
  ),
633
- 'default' => __( 'Thanks, your email was sent successfully!', 'pirate-forms' ),
634
- 'value' => PirateForms_Util::get_option( 'pirateformsopt_label_submit' ),
635
- 'wrap' => array(
636
  'type' => 'div',
637
  'class' => 'pirate-forms-grouped',
638
  ),
@@ -640,113 +660,113 @@ class PirateForms_Admin {
640
  )
641
  ),
642
  ),
643
- 'pirate_smtp pirate_dashicons' => array(
644
- 'heading' => __( 'SMTP Options', 'pirate-forms' ),
645
- 'controls' => apply_filters(
646
  'pirate_forms_admin_controls_for_smtp', array(
647
  array(
648
- 'id' => 'pirateformsopt_use_smtp',
649
- 'type' => 'checkbox',
650
- 'label' => array(
651
  'value' => __( 'Use SMTP to send emails?', 'pirate-forms' ),
652
  'html' => '<span class="dashicons dashicons-editor-help"></span>',
653
- 'desc' => array(
654
  'value' => __( 'Instead of PHP mail function', 'pirate-forms' ),
655
  'class' => 'pirate_forms_option_description',
656
  ),
657
  ),
658
- 'value' => PirateForms_Util::get_option( 'pirateformsopt_use_smtp' ),
659
- 'wrap' => array(
660
  'type' => 'div',
661
  'class' => 'pirate-forms-grouped',
662
  ),
663
- 'options' => array( 'yes' => __( 'Yes', 'pirate-forms' ) ),
664
  ),
665
  array(
666
- 'id' => 'pirateformsopt_smtp_host',
667
- 'type' => 'text',
668
- 'label' => array(
669
  'value' => __( 'SMTP Host', 'pirate-forms' ),
670
  ),
671
- 'value' => PirateForms_Util::get_option( 'pirateformsopt_smtp_host' ),
672
- 'wrap' => array(
673
  'type' => 'div',
674
  'class' => 'pirate-forms-grouped',
675
  ),
676
  ),
677
  array(
678
- 'id' => 'pirateformsopt_smtp_port',
679
- 'type' => 'text',
680
- 'label' => array(
681
  'value' => __( 'SMTP Port', 'pirate-forms' ),
682
  ),
683
- 'value' => PirateForms_Util::get_option( 'pirateformsopt_smtp_port' ),
684
- 'wrap' => array(
685
  'type' => 'div',
686
  'class' => 'pirate-forms-grouped',
687
  ),
688
  ),
689
  array(
690
- 'id' => 'pirateformsopt_use_smtp_authentication',
691
- 'type' => 'checkbox',
692
- 'label' => array(
693
  'value' => __( 'Use SMTP Authentication?', 'pirate-forms' ),
694
  'html' => '<span class="dashicons dashicons-editor-help"></span>',
695
- 'desc' => array(
696
  'value' => __( 'If you check this box, make sure the SMTP Username and SMTP Password are completed.', 'pirate-forms' ),
697
  'class' => 'pirate_forms_option_description',
698
  ),
699
  ),
700
- 'default' => 'yes',
701
- 'value' => PirateForms_Util::get_option( 'pirateformsopt_use_smtp_authentication' ),
702
- 'wrap' => array(
703
  'type' => 'div',
704
  'class' => 'pirate-forms-grouped',
705
  ),
706
- 'options' => array( 'yes' => __( 'Yes', 'pirate-forms' ) ),
707
  ),
708
  array(
709
- 'id' => 'pirateformsopt_use_secure',
710
- 'type' => 'radio',
711
- 'label' => array(
712
  'value' => __( 'Security?', 'pirate-forms' ),
713
  'html' => '<span class="dashicons dashicons-editor-help"></span>',
714
- 'desc' => array(
715
  'value' => __( 'If you check this box, make sure the SMTP Username and SMTP Password are completed.', 'pirate-forms' ),
716
  'class' => 'pirate_forms_option_description',
717
  ),
718
  ),
719
- 'value' => PirateForms_Util::get_option( 'pirateformsopt_use_secure' ),
720
- 'wrap' => array(
721
  'type' => 'div',
722
  'class' => 'pirate-forms-grouped',
723
  ),
724
- 'options' => array(
725
- '' => __( 'No', 'pirate-forms' ),
726
- 'ssl' => __( 'SSL', 'pirate-forms' ),
727
- 'tls' => __( 'TLS', 'pirate-forms' ),
728
  ),
729
  ),
730
  array(
731
- 'id' => 'pirateformsopt_smtp_username',
732
- 'type' => 'text',
733
- 'label' => array(
734
  'value' => __( 'SMTP Username', 'pirate-forms' ),
735
  ),
736
- 'value' => PirateForms_Util::get_option( 'pirateformsopt_smtp_username' ),
737
- 'wrap' => array(
738
  'type' => 'div',
739
  'class' => 'pirate-forms-grouped',
740
  ),
741
  ),
742
  array(
743
- 'id' => 'pirateformsopt_smtp_password',
744
- 'type' => 'password',
745
- 'label' => array(
746
  'value' => __( 'SMTP Password', 'pirate-forms' ),
747
  ),
748
- 'value' => PirateForms_Util::get_option( 'pirateformsopt_smtp_password' ),
749
- 'wrap' => array(
750
  'type' => 'div',
751
  'class' => 'pirate-forms-grouped',
752
  ),
@@ -758,12 +778,28 @@ class PirateForms_Admin {
758
  );
759
  }
760
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
761
  /**
762
  * Save the data
763
  *
764
  * @since 1.0.0
765
  */
766
  public function save_callback() {
 
 
767
  if ( isset( $_POST['dataSent'] ) ) :
768
  $dataSent = $_POST['dataSent'];
769
  $params = array();
@@ -820,6 +856,88 @@ class PirateForms_Admin {
820
  endif;
821
  endif;
822
  die();
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
823
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
824
  }
825
  }
27
  *
28
  * @since 1.0.0
29
  * @access private
30
+ * @var string $plugin_name The ID of this plugin.
31
  */
32
  private $plugin_name;
33
 
36
  *
37
  * @since 1.0.0
38
  * @access private
39
+ * @var string $version The current version of this plugin.
40
  */
41
  private $version;
42
 
44
  * Initialize the class and set its properties.
45
  *
46
  * @since 1.0.0
47
+ *
48
+ * @param string $plugin_name The name of this plugin.
49
+ * @param string $version The version of this plugin.
50
  */
51
  public function __construct( $plugin_name, $version ) {
52
 
53
  $this->plugin_name = $plugin_name;
54
+ $this->version = $version;
55
 
56
  }
57
 
62
  */
63
  public function enqueue_styles_and_scripts() {
64
  global $pagenow;
65
+
66
  if ( ! empty( $pagenow ) && ( $pagenow == 'options-general.php' || $pagenow == 'admin.php' )
67
  && isset( $_GET['page'] ) && $_GET['page'] == 'pirateforms-admin'
68
  ) {
70
  wp_enqueue_script( 'pirateforms_scripts_admin', PIRATEFORMS_URL . 'admin/js/scripts-admin.js', array( 'jquery' ), $this->version );
71
  wp_localize_script(
72
  'pirateforms_scripts_admin', 'cwp_top_ajaxload', array(
73
+ 'ajaxurl' => admin_url( 'admin-ajax.php' ),
74
+ 'nonce' => wp_create_nonce( PIRATEFORMS_SLUG ),
75
  )
76
  );
77
  }
78
+ if ( isset( $_GET['page'] ) && $_GET['page'] == 'pf_more_features' ) {
79
+
80
+ wp_enqueue_style( 'pirateforms_upsell_styles', PIRATEFORMS_URL . 'admin/css/upsell.css', array(), $this->version );
81
+ }
82
  }
83
 
84
  /**
131
  *
132
  * Add page to the dashbord menu
133
  *
134
+ * @since 1.0.0
135
  */
136
  public function add_to_admin() {
137
+ add_menu_page(
138
+ PIRATEFORMS_NAME, PIRATEFORMS_NAME, 'manage_options', 'pirateforms-admin', array(
139
+ $this,
140
+ 'settings',
141
+ ), 'dashicons-feedback'
142
+ );
143
+ add_submenu_page(
144
+ 'pirateforms-admin', PIRATEFORMS_NAME, __( 'Settings', 'pirate-forms' ), 'manage_options', 'pirateforms-admin', array(
145
+ $this,
146
+ 'settings',
147
+ )
148
+ );
149
+ if ( ! defined( 'PIRATEFORMSPRO_URL' ) ) {
150
+ add_submenu_page(
151
+ 'pirateforms-admin', __( 'More Features', 'pirate-forms' ), __( 'More Features', 'pirate-forms' ) . '<span class="dashicons
152
+ dashicons-star-filled more-features-icon" style="width: 17px;height: 17px; margin-left: 4px; color: #ffca54;font-size: 17px;vertical-align: -3px;"></span>', 'manage_options', 'pf_more_features',
153
+ array(
154
+ $this,
155
+ 'render_upsell',
156
+ )
157
+ );
158
+ }
159
  }
160
 
161
+ /**
162
+ * Render the upsell page.
163
+ */
164
+ public function render_upsell() {
165
+
166
+ include_once PIRATEFORMS_DIR . 'admin/partials/upsell.php';
167
+ }
168
 
169
  /**
170
  * Admin area setting page for the plugin
177
  $plugin_options = $this->pirate_forms_plugin_options();
178
  include_once PIRATEFORMS_DIR . 'admin/partials/pirateforms-settings-display.php';
179
  }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
180
 
181
  /**
182
  *
228
  return apply_filters(
229
  'pirate_forms_admin_controls', array(
230
  'pirate_options pirate_dashicons' => array(
231
+ 'heading' => __( 'Form processing options', 'pirate-forms' ),
232
+ 'controls' => apply_filters(
233
  'pirate_forms_admin_controls_for_options', array(
234
  array(
235
+ 'id' => 'pirateformsopt_email',
236
+ 'type' => 'text',
237
+ 'label' => array(
238
  'value' => __( 'Contact notification email address', 'pirate-forms' ),
239
  'html' => '<span class="dashicons dashicons-editor-help"></span>',
240
+ 'desc' => array(
241
  'value' => '<strong>' . __( "Insert [email] to use the contact form submitter's email.", 'pirate-forms' ) . '</strong><br>' . __( "The notification email will be sent from this address both to the recipients below and the contact form submitter (if this is activated below in email confirmation, in which case the domain for this email address should match your site's domain).", 'pirate-forms' ),
242
  'class' => 'pirate_forms_option_description',
243
  ),
244
  ),
245
+ 'default' => PirateForms_Util::get_from_email(),
246
+ 'value' => PirateForms_Util::get_option( 'pirateformsopt_email' ),
247
+ 'wrap' => array(
248
  'type' => 'div',
249
  'class' => 'pirate-forms-grouped',
250
  ),
251
+ 'class' => 'widefat',
252
  ),
253
  array(
254
+ 'id' => 'pirateformsopt_email_recipients',
255
+ 'type' => 'text',
256
+ 'label' => array(
257
  'value' => __( 'Contact submission recipients', 'pirate-forms' ),
258
  'html' => '<span class="dashicons dashicons-editor-help"></span>',
259
+ 'desc' => array(
260
  'value' => __( 'Email address(es) to receive contact submission notifications. You can separate multiple emails with a comma.', 'pirate-forms' ),
261
  'class' => 'pirate_forms_option_description',
262
  ),
263
  ),
264
+ 'default' => $pirate_forms_contactus_email,
265
+ 'value' => PirateForms_Util::get_option( 'pirateformsopt_email_recipients' ),
266
+ 'wrap' => array(
267
  'type' => 'div',
268
  'class' => 'pirate-forms-grouped',
269
  ),
270
+ 'class' => 'widefat',
271
  ),
272
  array(
273
+ 'id' => 'pirateformsopt_store',
274
+ 'type' => 'checkbox',
275
+ 'label' => array(
276
  'value' => __( 'Store submissions in the database', 'pirate-forms' ),
277
  'html' => '<span class="dashicons dashicons-editor-help"></span>',
278
+ 'desc' => array(
279
  'value' => __( 'Should the submissions be stored in the admin area? If chosen, contact form submissions will be saved in Contacts on the left (appears after this option is activated).', 'pirate-forms' ),
280
  'class' => 'pirate_forms_option_description',
281
  ),
282
  ),
283
+ 'default' => 'yes',
284
+ 'value' => PirateForms_Util::get_option( 'pirateformsopt_store' ),
285
+ 'wrap' => array(
286
  'type' => 'div',
287
  'class' => 'pirate-forms-grouped',
288
  ),
289
+ 'options' => array( 'yes' => __( 'Yes', 'pirate-forms' ) ),
290
  ),
291
  array(
292
+ 'id' => 'pirateformsopt_nonce',
293
+ 'type' => 'checkbox',
294
+ 'label' => array(
295
  'value' => __( 'Add a nonce to the contact form:', 'pirate-forms' ),
296
  'html' => '<span class="dashicons dashicons-editor-help"></span>',
297
+ 'desc' => array(
298
  'value' => __( 'Should the form use a WordPress nonce? This helps reduce spam by ensuring that the form submittor is on the site when submitting the form rather than submitting remotely. This could, however, cause problems with sites using a page caching plugin. Turn this off if you are getting complaints about forms not being able to be submitted with an error of "Nonce failed!"', 'pirate-forms' ),
299
  'class' => 'pirate_forms_option_description',
300
  ),
301
  ),
302
+ 'default' => 'yes',
303
+ 'value' => PirateForms_Util::get_option( 'pirateformsopt_nonce' ),
304
+ 'wrap' => array(
305
  'type' => 'div',
306
  'class' => 'pirate-forms-grouped',
307
  ),
308
+ 'options' => array( 'yes' => __( 'Yes', 'pirate-forms' ) ),
309
  ),
310
  array(
311
+ 'id' => 'pirateformsopt_confirm_email',
312
+ 'type' => 'textarea',
313
+ 'label' => array(
314
  'value' => __( 'Send email confirmation to form submitter', 'pirate-forms' ),
315
  'html' => '<span class="dashicons dashicons-editor-help"></span>',
316
+ 'desc' => array(
317
  'value' => __( 'Adding text here will send an email to the form submitter. The email uses the "Successful form submission text" field from the "Alert Messages" tab as the subject line. Plain text only here, no HTML.', 'pirate-forms' ),
318
  'class' => 'pirate_forms_option_description',
319
  ),
320
  ),
321
+ 'value' => PirateForms_Util::get_option( 'pirateformsopt_confirm_email' ),
322
+ 'wrap' => array(
323
  'type' => 'div',
324
  'class' => 'pirate-forms-grouped',
325
  ),
326
+ 'cols' => 70,
327
+ 'rows' => 5,
328
  ),
329
  array(
330
+ 'id' => 'pirateformsopt_thank_you_url',
331
+ 'type' => 'select',
332
+ 'label' => array(
333
  'value' => __( 'Success Page', 'pirate-forms' ),
334
  'html' => '<span class="dashicons dashicons-editor-help"></span>',
335
+ 'desc' => array(
336
  'value' => __( 'Select the page that displays after a successful form submission. The page will be displayed without pausing on the email form, so please be sure to configure a relevant thank you message in this page.', 'pirate-forms' ),
337
  'class' => 'pirate_forms_option_description',
338
  ),
339
  ),
340
+ 'value' => PirateForms_Util::get_option( 'pirateformsopt_thank_you_url' ),
341
+ 'wrap' => array(
342
  'type' => 'div',
343
  'class' => 'pirate-forms-grouped',
344
  ),
345
+ 'options' => PirateForms_Util::get_thank_you_pages(),
346
  ),
347
  )
348
  ),
349
  ),
350
  'pirate_fields pirate_dashicons' => array(
351
+ 'heading' => __( 'Fields Settings', 'pirate-forms' ),
352
+ 'controls' => apply_filters(
353
  'pirate_forms_admin_controls_for_fields', array(
354
  /* Name */
355
  array(
356
+ 'id' => 'pirateformsopt_name_field',
357
+ 'type' => 'select',
358
+ 'label' => array(
359
  'value' => __( 'Name', 'pirate-forms' ),
360
  ),
361
+ 'default' => 'req',
362
+ 'value' => PirateForms_Util::get_option( 'pirateformsopt_name_field' ),
363
+ 'wrap' => array(
364
  'type' => 'div',
365
  'class' => 'pirate-forms-grouped',
366
  ),
367
+ 'options' => array(
368
  '' => __( 'Do not display', 'pirate-forms' ),
369
  'yes' => __( 'Display but not required', 'pirate-forms' ),
370
  'req' => __( 'Required', 'pirate-forms' ),
372
  ),
373
  /* Email */
374
  array(
375
+ 'id' => 'pirateformsopt_email_field',
376
+ 'type' => 'select',
377
+ 'label' => array(
378
  'value' => __( 'Email address', 'pirate-forms' ),
379
  ),
380
+ 'default' => 'req',
381
+ 'value' => PirateForms_Util::get_option( 'pirateformsopt_email_field' ),
382
+ 'wrap' => array(
383
  'type' => 'div',
384
  'class' => 'pirate-forms-grouped',
385
  ),
386
+ 'options' => array(
387
  '' => __( 'Do not display', 'pirate-forms' ),
388
  'yes' => __( 'Display but not required', 'pirate-forms' ),
389
  'req' => __( 'Required', 'pirate-forms' ),
391
  ),
392
  /* Subject */
393
  array(
394
+ 'id' => 'pirateformsopt_subject_field',
395
+ 'type' => 'select',
396
+ 'label' => array(
397
  'value' => __( 'Subject', 'pirate-forms' ),
398
  ),
399
+ 'default' => 'req',
400
+ 'value' => PirateForms_Util::get_option( 'pirateformsopt_subject_field' ),
401
+ 'wrap' => array(
402
  'type' => 'div',
403
  'class' => 'pirate-forms-grouped',
404
  ),
405
+ 'options' => array(
406
  '' => __( 'Do not display', 'pirate-forms' ),
407
  'yes' => __( 'Display but not required', 'pirate-forms' ),
408
  'req' => __( 'Required', 'pirate-forms' ),
410
  ),
411
  /* Message */
412
  array(
413
+ 'id' => 'pirateformsopt_message_field',
414
+ 'type' => 'select',
415
+ 'label' => array(
416
  'value' => __( 'Message', 'pirate-forms' ),
417
  ),
418
+ 'default' => 'req',
419
+ 'value' => PirateForms_Util::get_option( 'pirateformsopt_message_field' ),
420
+ 'wrap' => array(
421
  'type' => 'div',
422
  'class' => 'pirate-forms-grouped',
423
  ),
424
+ 'options' => array(
425
  '' => __( 'Do not display', 'pirate-forms' ),
426
  'yes' => __( 'Display but not required', 'pirate-forms' ),
427
  'req' => __( 'Required', 'pirate-forms' ),
429
  ),
430
  /* Attachment */
431
  array(
432
+ 'id' => 'pirateformsopt_attachment_field',
433
+ 'type' => 'select',
434
+ 'label' => array(
435
  'value' => __( 'Attachment', 'pirate-forms' ),
436
  ),
437
+ 'value' => PirateForms_Util::get_option( 'pirateformsopt_attachment_field' ),
438
+ 'wrap' => array(
439
  'type' => 'div',
440
  'class' => 'pirate-forms-grouped',
441
  ),
442
+ 'options' => array(
443
  '' => __( 'Do not display', 'pirate-forms' ),
444
  'yes' => __( 'Display but not required', 'pirate-forms' ),
445
  'req' => __( 'Required', 'pirate-forms' ),
447
  ),
448
  /* Recaptcha */
449
  array(
450
+ 'id' => 'pirateformsopt_recaptcha_field',
451
+ 'type' => 'checkbox',
452
+ 'label' => array(
453
  'value' => __( 'Add a reCAPTCHA', 'pirate-forms' ),
454
  ),
455
+ 'default' => $pirate_forms_contactus_recaptcha_show,
456
+ 'value' => PirateForms_Util::get_option( 'pirateformsopt_recaptcha_field' ),
457
+ 'wrap' => array(
458
  'type' => 'div',
459
  'class' => 'pirate-forms-grouped',
460
  ),
461
+ 'options' => array(
462
  'yes' => __( 'Yes', 'pirate-forms' ),
463
  ),
464
  ),
465
  /* Site key */
466
  array(
467
+ 'id' => 'pirateformsopt_recaptcha_sitekey',
468
+ 'type' => 'text',
469
+ 'label' => array(
470
  'value' => __( 'Site key', 'pirate-forms' ),
471
  'html' => '<span class="dashicons dashicons-editor-help"></span>',
472
+ 'desc' => array(
473
  'value' => '<a href="https://www.google.com/recaptcha/admin#list" target="_blank">' . __( 'Create an account here ', 'pirate-forms' ) . '</a>' . __( 'to get the Site key and the Secret key for the reCaptcha.', 'pirate-forms' ),
474
  'class' => 'pirate_forms_option_description',
475
  ),
476
  ),
477
+ 'default' => $pirate_forms_contactus_sitekey,
478
+ 'value' => PirateForms_Util::get_option( 'pirateformsopt_recaptcha_sitekey' ),
479
+ 'wrap' => array(
480
  'type' => 'div',
481
  'class' => 'pirate-forms-grouped',
482
  ),
483
  ),
484
  /* Secret key */
485
  array(
486
+ 'id' => 'pirateformsopt_recaptcha_secretkey',
487
+ 'type' => 'password',
488
+ 'label' => array(
489
  'value' => __( 'Secret key', 'pirate-forms' ),
490
  ),
491
+ 'default' => $pirate_forms_contactus_secretkey,
492
+ 'value' => PirateForms_Util::get_option( 'pirateformsopt_recaptcha_secretkey' ),
493
+ 'wrap' => array(
494
  'type' => 'div',
495
  'class' => 'pirate-forms-grouped',
496
  ),
498
  )
499
  ),
500
  ),
501
+ 'pirate_labels' => array(
502
+ 'heading' => __( 'Fields Labels', 'pirate-forms' ),
503
+ 'controls' => apply_filters(
504
  'pirate_forms_admin_controls_for_field_labels', array(
505
  array(
506
+ 'id' => 'pirateformsopt_label_name',
507
+ 'type' => 'text',
508
+ 'label' => array(
509
  'value' => __( 'Name', 'pirate-forms' ),
510
  ),
511
+ 'default' => __( 'Your Name', 'pirate-forms' ),
512
+ 'value' => PirateForms_Util::get_option( 'pirateformsopt_label_name' ),
513
+ 'wrap' => array(
514
  'type' => 'div',
515
  'class' => 'pirate-forms-grouped',
516
  ),
517
  ),
518
  array(
519
+ 'id' => 'pirateformsopt_label_email',
520
+ 'type' => 'text',
521
+ 'label' => array(
522
  'value' => __( 'Email', 'pirate-forms' ),
523
  ),
524
+ 'default' => __( 'Your Email', 'pirate-forms' ),
525
+ 'value' => PirateForms_Util::get_option( 'pirateformsopt_label_email' ),
526
+ 'wrap' => array(
527
  'type' => 'div',
528
  'class' => 'pirate-forms-grouped',
529
  ),
530
  ),
531
  array(
532
+ 'id' => 'pirateformsopt_label_subject',
533
+ 'type' => 'text',
534
+ 'label' => array(
535
  'value' => __( 'Subject', 'pirate-forms' ),
536
  ),
537
+ 'default' => __( 'Subject', 'pirate-forms' ),
538
+ 'value' => PirateForms_Util::get_option( 'pirateformsopt_label_subject' ),
539
+ 'wrap' => array(
540
  'type' => 'div',
541
  'class' => 'pirate-forms-grouped',
542
  ),
543
  ),
544
  array(
545
+ 'id' => 'pirateformsopt_label_message',
546
+ 'type' => 'text',
547
+ 'label' => array(
548
  'value' => __( 'Message', 'pirate-forms' ),
549
  ),
550
+ 'default' => __( 'Your message', 'pirate-forms' ),
551
+ 'value' => PirateForms_Util::get_option( 'pirateformsopt_label_message' ),
552
+ 'wrap' => array(
553
  'type' => 'div',
554
  'class' => 'pirate-forms-grouped',
555
  ),
556
  ),
557
  array(
558
+ 'id' => 'pirateformsopt_label_submit_btn',
559
+ 'type' => 'text',
560
+ 'label' => array(
561
  'value' => __( 'Submit button', 'pirate-forms' ),
562
  ),
563
+ 'default' => $pirate_forms_contactus_button_label,
564
+ 'value' => PirateForms_Util::get_option( 'pirateformsopt_label_submit_btn' ),
565
+ 'wrap' => array(
566
  'type' => 'div',
567
  'class' => 'pirate-forms-grouped',
568
  ),
571
  ),
572
  ),
573
  'pirate_alerts pirate_dashicons' => array(
574
+ 'heading' => __( 'Alert Messages', 'pirate-forms' ),
575
+ 'controls' => apply_filters(
576
  'pirate_forms_admin_controls_for_alerts', array(
577
  array(
578
+ 'id' => 'pirateformsopt_label_err_name',
579
+ 'type' => 'text',
580
+ 'label' => array(
581
  'value' => __( 'Name required and missing', 'pirate-forms' ),
582
  ),
583
+ 'default' => __( 'Enter your name', 'pirate-forms' ),
584
+ 'value' => PirateForms_Util::get_option( 'pirateformsopt_label_err_name' ),
585
+ 'wrap' => array(
586
  'type' => 'div',
587
  'class' => 'pirate-forms-grouped',
588
  ),
589
  ),
590
  array(
591
+ 'id' => 'pirateformsopt_label_err_email',
592
+ 'type' => 'text',
593
+ 'label' => array(
594
  'value' => __( 'E-mail required and missing', 'pirate-forms' ),
595
  ),
596
+ 'default' => __( 'Enter valid email', 'pirate-forms' ),
597
+ 'value' => PirateForms_Util::get_option( 'pirateformsopt_label_err_email' ),
598
+ 'wrap' => array(
599
  'type' => 'div',
600
  'class' => 'pirate-forms-grouped',
601
  ),
602
  ),
603
  array(
604
+ 'id' => 'pirateformsopt_label_err_subject',
605
+ 'type' => 'text',
606
+ 'label' => array(
607
  'value' => __( 'Subject required and missing', 'pirate-forms' ),
608
  ),
609
+ 'default' => __( 'Please enter a subject', 'pirate-forms' ),
610
+ 'value' => PirateForms_Util::get_option( 'pirateformsopt_label_err_subject' ),
611
+ 'wrap' => array(
612
  'type' => 'div',
613
  'class' => 'pirate-forms-grouped',
614
  ),
615
  ),
616
  array(
617
+ 'id' => 'pirateformsopt_label_err_no_content',
618
+ 'type' => 'text',
619
+ 'label' => array(
620
  'value' => __( 'Question/comment is missing', 'pirate-forms' ),
621
  ),
622
+ 'default' => __( 'Enter your question or comment', 'pirate-forms' ),
623
+ 'value' => PirateForms_Util::get_option( 'pirateformsopt_label_err_no_content' ),
624
+ 'wrap' => array(
625
  'type' => 'div',
626
  'class' => 'pirate-forms-grouped',
627
  ),
628
  ),
629
  array(
630
+ 'id' => 'pirateformsopt_label_err_no_attachment',
631
+ 'type' => 'text',
632
+ 'label' => array(
633
  'value' => __( 'Attachment is missing', 'pirate-forms' ),
634
  ),
635
+ 'default' => __( 'Please add an attachment', 'pirate-forms' ),
636
+ 'value' => PirateForms_Util::get_option( 'pirateformsopt_label_err_no_attachment' ),
637
+ 'wrap' => array(
638
  'type' => 'div',
639
  'class' => 'pirate-forms-grouped',
640
  ),
641
  ),
642
  array(
643
+ 'id' => 'pirateformsopt_label_submit',
644
+ 'type' => 'text',
645
+ 'label' => array(
646
  'value' => __( 'Successful form submission text', 'pirate-forms' ),
647
  'html' => '<span class="dashicons dashicons-editor-help"></span>',
648
+ 'desc' => array(
649
  'value' => __( 'This text is used on the page if no Success Page is chosen above. This is also used as the confirmation email title, if one is set to send out.', 'pirate-forms' ),
650
  'class' => 'pirate_forms_option_description',
651
  ),
652
  ),
653
+ 'default' => __( 'Thanks, your email was sent successfully!', 'pirate-forms' ),
654
+ 'value' => PirateForms_Util::get_option( 'pirateformsopt_label_submit' ),
655
+ 'wrap' => array(
656
  'type' => 'div',
657
  'class' => 'pirate-forms-grouped',
658
  ),
660
  )
661
  ),
662
  ),
663
+ 'pirate_smtp pirate_dashicons' => array(
664
+ 'heading' => __( 'SMTP Options', 'pirate-forms' ),
665
+ 'controls' => apply_filters(
666
  'pirate_forms_admin_controls_for_smtp', array(
667
  array(
668
+ 'id' => 'pirateformsopt_use_smtp',
669
+ 'type' => 'checkbox',
670
+ 'label' => array(
671
  'value' => __( 'Use SMTP to send emails?', 'pirate-forms' ),
672
  'html' => '<span class="dashicons dashicons-editor-help"></span>',
673
+ 'desc' => array(
674
  'value' => __( 'Instead of PHP mail function', 'pirate-forms' ),
675
  'class' => 'pirate_forms_option_description',
676
  ),
677
  ),
678
+ 'value' => PirateForms_Util::get_option( 'pirateformsopt_use_smtp' ),
679
+ 'wrap' => array(
680
  'type' => 'div',
681
  'class' => 'pirate-forms-grouped',
682
  ),
683
+ 'options' => array( 'yes' => __( 'Yes', 'pirate-forms' ) ),
684
  ),
685
  array(
686
+ 'id' => 'pirateformsopt_smtp_host',
687
+ 'type' => 'text',
688
+ 'label' => array(
689
  'value' => __( 'SMTP Host', 'pirate-forms' ),
690
  ),
691
+ 'value' => PirateForms_Util::get_option( 'pirateformsopt_smtp_host' ),
692
+ 'wrap' => array(
693
  'type' => 'div',
694
  'class' => 'pirate-forms-grouped',
695
  ),
696
  ),
697
  array(
698
+ 'id' => 'pirateformsopt_smtp_port',
699
+ 'type' => 'text',
700
+ 'label' => array(
701
  'value' => __( 'SMTP Port', 'pirate-forms' ),
702
  ),
703
+ 'value' => PirateForms_Util::get_option( 'pirateformsopt_smtp_port' ),
704
+ 'wrap' => array(
705
  'type' => 'div',
706
  'class' => 'pirate-forms-grouped',
707
  ),
708
  ),
709
  array(
710
+ 'id' => 'pirateformsopt_use_smtp_authentication',
711
+ 'type' => 'checkbox',
712
+ 'label' => array(
713
  'value' => __( 'Use SMTP Authentication?', 'pirate-forms' ),
714
  'html' => '<span class="dashicons dashicons-editor-help"></span>',
715
+ 'desc' => array(
716
  'value' => __( 'If you check this box, make sure the SMTP Username and SMTP Password are completed.', 'pirate-forms' ),
717
  'class' => 'pirate_forms_option_description',
718
  ),
719
  ),
720
+ 'default' => 'yes',
721
+ 'value' => PirateForms_Util::get_option( 'pirateformsopt_use_smtp_authentication' ),
722
+ 'wrap' => array(
723
  'type' => 'div',
724
  'class' => 'pirate-forms-grouped',
725
  ),
726
+ 'options' => array( 'yes' => __( 'Yes', 'pirate-forms' ) ),
727
  ),
728
  array(
729
+ 'id' => 'pirateformsopt_use_secure',
730
+ 'type' => 'radio',
731
+ 'label' => array(
732
  'value' => __( 'Security?', 'pirate-forms' ),
733
  'html' => '<span class="dashicons dashicons-editor-help"></span>',
734
+ 'desc' => array(
735
  'value' => __( 'If you check this box, make sure the SMTP Username and SMTP Password are completed.', 'pirate-forms' ),
736
  'class' => 'pirate_forms_option_description',
737
  ),
738
  ),
739
+ 'value' => PirateForms_Util::get_option( 'pirateformsopt_use_secure' ),
740
+ 'wrap' => array(
741
  'type' => 'div',
742
  'class' => 'pirate-forms-grouped',
743
  ),
744
+ 'options' => array(
745
+ '' => __( 'No', 'pirate-forms' ),
746
+ 'ssl' => __( 'SSL', 'pirate-forms' ),
747
+ 'tls' => __( 'TLS', 'pirate-forms' ),
748
  ),
749
  ),
750
  array(
751
+ 'id' => 'pirateformsopt_smtp_username',
752
+ 'type' => 'text',
753
+ 'label' => array(
754
  'value' => __( 'SMTP Username', 'pirate-forms' ),
755
  ),
756
+ 'value' => PirateForms_Util::get_option( 'pirateformsopt_smtp_username' ),
757
+ 'wrap' => array(
758
  'type' => 'div',
759
  'class' => 'pirate-forms-grouped',
760
  ),
761
  ),
762
  array(
763
+ 'id' => 'pirateformsopt_smtp_password',
764
+ 'type' => 'password',
765
+ 'label' => array(
766
  'value' => __( 'SMTP Password', 'pirate-forms' ),
767
  ),
768
+ 'value' => PirateForms_Util::get_option( 'pirateformsopt_smtp_password' ),
769
+ 'wrap' => array(
770
  'type' => 'div',
771
  'class' => 'pirate-forms-grouped',
772
  ),
778
  );
779
  }
780
 
781
+ /**
782
+ * ******** Save default options if none exist ***********/
783
+ public function settings_init() {
784
+ if ( ! PirateForms_Util::get_option() ) {
785
+ $new_opt = array();
786
+ foreach ( $this->pirate_forms_plugin_options() as $tab => $array ) {
787
+ foreach ( $array['controls'] as $controls ) {
788
+ $new_opt[ $controls['id'] ] = isset( $controls['default'] ) ? $controls['default'] : '';
789
+ }
790
+ }
791
+ PirateForms_Util::set_option( $new_opt );
792
+ }
793
+ }
794
+
795
  /**
796
  * Save the data
797
  *
798
  * @since 1.0.0
799
  */
800
  public function save_callback() {
801
+ check_ajax_referer( PIRATEFORMS_SLUG, 'security' );
802
+
803
  if ( isset( $_POST['dataSent'] ) ) :
804
  $dataSent = $_POST['dataSent'];
805
  $params = array();
856
  endif;
857
  endif;
858
  die();
859
+ }
860
+
861
+ /**
862
+ * Add the columns for contacts listing
863
+ *
864
+ * @param array $columns array of columns.
865
+ *
866
+ * @since 1.0.0
867
+ */
868
+ public function manage_contact_posts_columns( $columns ) {
869
+ $tmp = $columns;
870
+ $columns = array();
871
+ foreach ( $tmp as $key => $val ) {
872
+ if ( 'date' === $key ) {
873
+ // ensure our columns are added before the date.
874
+ $columns['pf_mailstatus'] = __( 'Mail Status', 'pirate-forms' );
875
+ }
876
+ $columns[ $key ] = $val;
877
+ }
878
+
879
+ return $columns;
880
+ }
881
 
882
+ /**
883
+ * Show the additional columns for contacts listing
884
+ *
885
+ * @param string $column the column name.
886
+ * @param numeric $id the post id.
887
+ *
888
+ * @since 1.0.0
889
+ */
890
+ public function manage_contact_posts_custom_column( $column, $id ) {
891
+ switch ( $column ) {
892
+ case 'pf_mailstatus':
893
+ $response = get_post_meta( $id, PIRATEFORMS_SLUG . 'mail-status', true );
894
+ echo empty( $response ) ? __( 'Status not captured', 'pirate-forms' ) : ( $response ? __( 'Mail sent successfully!', 'pirate-forms' ) : __( 'Mail sending failed!', 'pirate-forms' ) );
895
+ break;
896
+ }
897
+ }
898
+
899
+ /**
900
+ * Test sending the email.
901
+ */
902
+ public function test_email() {
903
+ check_ajax_referer( PIRATEFORMS_SLUG, 'security' );
904
+ add_filter( 'pirateformpro_get_form_attributes', array( $this, 'test_configuration' ), 999, 2 );
905
+ add_action( 'pirate_forms_after_processing', array( $this, 'test_result'), 10, 1 );
906
+ add_filter( 'pirate_forms_validate_request', array( $this, 'test_alter_session'), 10, 3 );
907
+ $_POST = array(
908
+ 'honeypot' => '',
909
+ 'pirate_forms_form_id' => isset( $_POST['pirate_forms_form_id'] ) ? $_POST['pirate_forms_form_id'] : '',
910
+ 'pirate-forms-contact-name' => 'Test Name',
911
+ 'pirate-forms-contact-email' => get_bloginfo( 'admin_email' ),
912
+ 'pirate-forms-contact-subject' => 'Test Email',
913
+ 'pirate-forms-contact-message' => 'This is a test.',
914
+ );
915
+ do_action( 'pirate_forms_send_email', true );
916
+ }
917
+
918
+ /**
919
+ * Change the options for testing.
920
+ */
921
+ public function test_configuration( $options, $id ) {
922
+ // disable captcha
923
+ $options['pirateformsopt_recaptcha_field'] = 'no';
924
+ // disable attachments
925
+ $options['pirateformsopt_attachment_field'] = 'no';
926
+ return $options;
927
+ }
928
+
929
+ /**
930
+ * Hook into the sent result.
931
+ */
932
+ public function test_result( $response ) {
933
+ wp_send_json_success( array( 'message' => $response ? __( 'Sent email successfully!', 'pirate-forms' ) : __( 'Sent email failed!', 'pirate-forms' ) ) );
934
+ }
935
+
936
+ /**
937
+ * Clear the session of any errors.
938
+ */
939
+ public function test_alter_session( $body, $error_key, $pirate_forms_options ) {
940
+ $_SESSION[ $error_key ] = '';
941
+ return $body;
942
  }
943
  }
admin/css/icon-128x128.png ADDED
Binary file
admin/css/pirate-forms-extended-custom-forms.jpg ADDED
Binary file
admin/css/pirate-forms-extended-mailchimp-integration.jpg ADDED
Binary file
admin/css/pirate-forms-extended-multiple-forms.jpg ADDED
Binary file
admin/css/upsell.css ADDED
@@ -0,0 +1,210 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ #pf-pro-features .pro-features-header {
2
+ -webkit-box-sizing: border-box;
3
+ box-sizing: border-box;
4
+ padding: 20px 30px 30px;
5
+ border-top: 5px solid #252b37;
6
+ background: #fff;
7
+ }
8
+
9
+ #pf-pro-features .logo {
10
+ display: inline-block;
11
+ margin: 0 0 0 20px;
12
+ padding: 0 0 0 70px;
13
+ color: #3c3c3c;
14
+ background: url(icon-128x128.png) no-repeat left center;
15
+ background-size: 48px;
16
+ font-family: "Open Sans", sans-serif;
17
+ font-size: 28px;
18
+ font-weight: 700;
19
+ line-height: 60px;
20
+ letter-spacing: -1px;
21
+ }
22
+
23
+ #pf-pro-features .slogan {
24
+ display: inline-block;
25
+ margin: 0 0 0 8px;
26
+ padding: 0;
27
+ color: #858585;
28
+ font-family: "Open Sans", sans-serif;
29
+ font-size: 17px;
30
+ line-height: 1;
31
+ vertical-align: 4px;
32
+ }
33
+
34
+ #pf-pro-features .slogan a {
35
+ color: #858585;
36
+ font-weight: 600;
37
+ font-style: italic;
38
+ text-decoration: none;
39
+ -webkit-transition: all 0.250s ease-in-out;
40
+ transition: all 0.250s ease-in-out;
41
+ }
42
+
43
+ #pf-pro-features .slogan a:hover {
44
+ color: #ff6160;
45
+ }
46
+
47
+ #pf-pro-features .slogan a:focus {
48
+ outline: none;
49
+ -webkit-box-shadow: none;
50
+ box-shadow: none;
51
+ }
52
+
53
+ #pf-pro-features .header-btns {
54
+ float: right;
55
+ margin: 7px 20px;
56
+ text-align: right;
57
+ }
58
+
59
+ #pf-pro-features .header-btns .buy-now {
60
+ display: inline-block;
61
+ margin-top: 2px;
62
+ margin-right: 5px;
63
+ padding: 15px 25px;
64
+ border-radius: 3px;
65
+ border-radius: 3px;
66
+ color: #fff;
67
+ background: #e33b3f;
68
+ font-family: "Open Sans", sans-serif;
69
+ font-size: 18px;
70
+ font-weight: bold;
71
+ text-decoration: none;
72
+ text-transform: uppercase;
73
+ -webkit-transition: all 0.250s ease-in-out;
74
+ transition: all 0.250s ease-in-out;
75
+ }
76
+
77
+ #pf-pro-features .header-btns .buy-now:hover {
78
+ background: #252b37;
79
+ }
80
+
81
+ #pf-pro-features .header-btns .buy-now .dashicons {
82
+ padding-right: 3px;
83
+ }
84
+
85
+ #pf-pro-features {
86
+ padding: 0;
87
+ }
88
+
89
+ #pf-pro-features .pro-features-content {
90
+ width: 100%;
91
+ padding: 0;
92
+ }
93
+
94
+ #pf-pro-features .pro-features-header,
95
+ #pf-pro-features .pro-feature {
96
+ display: table;
97
+ float: left;
98
+ -webkit-box-sizing: border-box;
99
+ box-sizing: border-box;
100
+ width: 100%;
101
+ margin: 30px 0 0;
102
+ padding: 30px;
103
+ background-color: #fff;
104
+ -webkit-box-shadow: 0 1px 1px 0 rgba(0,0,0,0.1);
105
+ box-shadow: 0 1px 1px 0 rgba(0,0,0,0.1);
106
+ }
107
+
108
+ #pf-pro-features .pro-feature .pro-feature-features,
109
+ #pf-pro-features .pro-feature .pro-feature-image {
110
+ display: table-cell;
111
+ margin: 0;
112
+ vertical-align: middle;
113
+ }
114
+
115
+ #pf-pro-features .pro-feature .pro-feature-features {
116
+ -webkit-box-sizing: border-box;
117
+ box-sizing: border-box;
118
+ padding: 0 0 20px;
119
+ }
120
+
121
+ #pf-pro-features .pro-feature .pro-feature-image {
122
+ width: 470px;
123
+ }
124
+
125
+ #pf-pro-features .pro-feature .pro-feature-features h2 {
126
+ margin: 0 0 20px;
127
+ font-size: 28px;
128
+ font-weight: 700;
129
+ line-height: 1.2;
130
+ }
131
+
132
+ #pf-pro-features .pro-feature .pro-feature-features h4 {
133
+ margin: 0 0 10px;
134
+ font-size: 24px;
135
+ }
136
+
137
+ #pf-pro-features .pro-feature .pro-feature-features p {
138
+ margin: 0 0 15px;
139
+ font-size: 18px;
140
+ line-height: 1.5;
141
+ }
142
+
143
+ #pf-pro-features .pro-feature .pro-feature-image img {
144
+ width: 100%;
145
+ height: auto;
146
+ }
147
+
148
+ @media screen and (min-width: 768px) {
149
+ #pf-pro-features {
150
+ padding: 0 15px;
151
+ }
152
+ }
153
+
154
+ @media screen and (min-width: 1200px) {
155
+ #pf-pro-features .pro-feature {
156
+ padding: 30px 60px;
157
+ }
158
+
159
+ #pf-pro-features .pro-feature .pro-feature-features {
160
+ padding: 0 30px 0 0;
161
+ }
162
+
163
+ #pf-pro-features .pro-feature .pro-feature-features h2 {
164
+ font-size: 30px;
165
+ }
166
+
167
+ #pf-pro-features .pro-feature .pro-feature-features p {
168
+ font-size: 20px;
169
+ }
170
+ }
171
+
172
+ @media screen and (min-width: 1500px) {
173
+ #pf-pro-features .pro-feature .pro-feature-features {
174
+ padding: 0 120px 0 0;
175
+ }
176
+ }
177
+
178
+ @media screen and (max-width: 1100px) {
179
+ #pf-pro-features {
180
+ text-align: center;
181
+ }
182
+
183
+ #pf-pro-features .logo {
184
+ margin-left: 0;
185
+ }
186
+
187
+ #pf-pro-features .header-btns {
188
+ display: block;
189
+ float: none;
190
+ margin: 10px 0 0;
191
+ text-align: center;
192
+ }
193
+ }
194
+
195
+ @media screen and (max-width: 1200px) {
196
+ #pf-pro-features .pro-feature .pro-feature-features,
197
+ #pf-pro-features .pro-feature .pro-feature-image {
198
+ display: block;
199
+ }
200
+
201
+ #pf-pro-features .pro-feature .pro-feature-image {
202
+ display: inline-block;
203
+ max-width: 100%;
204
+ margin: 0 auto 30px;
205
+ }
206
+
207
+ #pf-pro-features .slogan {
208
+ display: none;
209
+ }
210
+ }
admin/css/wp-admin.css CHANGED
@@ -110,7 +110,7 @@
110
 
111
  .pirate-options {
112
  float: left;
113
- width: 80%;
114
  }
115
 
116
  .pirate-subscribe.postbox {
@@ -196,7 +196,7 @@ div.pirate_dashicons > form > div > label > .pirate_forms_option_description {
196
  padding: 15px;
197
  border-radius: 5px;
198
  color: #fff;
199
- background: rgba(0,0,0,0.8);
200
  font-size: 11px;
201
  line-height: 16px;
202
  text-align: left;
@@ -250,7 +250,7 @@ div.pirate_dashicons > form > div > label {
250
  margin: 0 auto 10px;
251
  }
252
 
253
- @media( max-width: 1360px) {
254
  .pirate-subscribe.postbox {
255
  display: block;
256
  margin-left: 0;
@@ -264,7 +264,7 @@ div.pirate_dashicons > form > div > label {
264
  right: 0;
265
  bottom: 0;
266
  left: 0;
267
- background: url("../img/loader.gif") no-repeat center center, rgba(255,255,255,0.8);
268
  }
269
 
270
  .pirate-forms-hidden {
@@ -272,14 +272,14 @@ div.pirate_dashicons > form > div > label {
272
  }
273
 
274
  #pirate-forms-main {
275
- width: 90%;
276
  }
277
 
278
  #pirate-forms-sidebar {
279
  float: right;
280
- width: 18%;
281
  margin-top: 50px;
282
- margin-left: 2%;
283
  }
284
 
285
  .pirate-custom-emails a:hover {
@@ -331,7 +331,7 @@ div.pirate_dashicons > form > div > label {
331
  }
332
  }
333
 
334
- @media screen and (max-width:1200px) {
335
  #pirate-forms-sidebar {
336
  float: left;
337
  width: 100%;
@@ -352,3 +352,12 @@ div.pirate_dashicons > form > div > label {
352
  margin: auto;
353
  margin-bottom: 5px;
354
  }
 
 
 
 
 
 
 
 
 
110
 
111
  .pirate-options {
112
  float: left;
113
+ width: 77%;
114
  }
115
 
116
  .pirate-subscribe.postbox {
196
  padding: 15px;
197
  border-radius: 5px;
198
  color: #fff;
199
+ background: rgba(0, 0, 0, 0.8);
200
  font-size: 11px;
201
  line-height: 16px;
202
  text-align: left;
250
  margin: 0 auto 10px;
251
  }
252
 
253
+ @media ( max-width: 1360px) {
254
  .pirate-subscribe.postbox {
255
  display: block;
256
  margin-left: 0;
264
  right: 0;
265
  bottom: 0;
266
  left: 0;
267
+ background: url("../img/loader.gif") no-repeat center center, rgba(255, 255, 255, 0.8);
268
  }
269
 
270
  .pirate-forms-hidden {
272
  }
273
 
274
  #pirate-forms-main {
275
+ width: 99%;
276
  }
277
 
278
  #pirate-forms-sidebar {
279
  float: right;
280
+ width: 22%;
281
  margin-top: 50px;
282
+ margin-left: 1%;
283
  }
284
 
285
  .pirate-custom-emails a:hover {
331
  }
332
  }
333
 
334
+ @media screen and (max-width: 1200px) {
335
  #pirate-forms-sidebar {
336
  float: left;
337
  width: 100%;
352
  margin: auto;
353
  margin-bottom: 5px;
354
  }
355
+
356
+ .pirate-forms-warning {
357
+ color: #f00;
358
+ font-weight: bold;
359
+ }
360
+
361
+ .pirate-forms-test-button {
362
+ margin-left: 10px;
363
+ }
admin/js/scripts-admin.js CHANGED
@@ -16,6 +16,34 @@ jQuery(document).ready(function() {
16
  cwpTopUpdateForm();
17
  return false;
18
  });
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
19
  function cwpTopUpdateForm() {
20
 
21
  startAjaxIntro();
@@ -27,8 +55,9 @@ jQuery(document).ready(function() {
27
  url: cwp_top_ajaxload.ajaxurl,
28
 
29
  data: {
30
- action: 'pirate_forms_save',
31
- dataSent: data
 
32
  },
33
  success: function (response) {
34
  console.log(response);
16
  cwpTopUpdateForm();
17
  return false;
18
  });
19
+
20
+ jQuery('.pirate-forms-test-button').click(function (e) {
21
+ e.preventDefault();
22
+ cwpSendTestEmail();
23
+ return false;
24
+ });
25
+
26
+ function cwpSendTestEmail() {
27
+ jQuery('.pirate-forms-test-message').html('');
28
+ startAjaxIntro();
29
+ jQuery.ajax({
30
+ type: 'POST',
31
+ url: cwp_top_ajaxload.ajaxurl,
32
+ data: {
33
+ action : 'pirate_forms_test',
34
+ security : cwp_top_ajaxload.nonce
35
+ },
36
+ success: function (data) {
37
+ jQuery('.pirate-forms-test-message').html(data.data.message);
38
+ },
39
+ error: function (MLHttpRequest, textStatus, errorThrown) {
40
+ console.log('There was an error: ' + errorThrown);
41
+ }
42
+ });
43
+ endAjaxIntro();
44
+ return false;
45
+ }
46
+
47
  function cwpTopUpdateForm() {
48
 
49
  startAjaxIntro();
55
  url: cwp_top_ajaxload.ajaxurl,
56
 
57
  data: {
58
+ action : 'pirate_forms_save',
59
+ dataSent : data,
60
+ security : cwp_top_ajaxload.nonce
61
  },
62
  success: function (response) {
63
  console.log(response);
admin/partials/pirateforms-settings-display.php CHANGED
@@ -67,6 +67,10 @@
67
 
68
  <hr>
69
 
 
 
 
 
70
  <div class="rate_plugin_invite">
71
 
72
  <h4><?php esc_html_e( 'Are you enjoying Pirate Forms?', 'pirate-forms' ); ?></h4>
@@ -126,6 +130,21 @@
126
  )
127
  );
128
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
129
  $html_helper->add(
130
  array(
131
  'type' => 'hidden',
67
 
68
  <hr>
69
 
70
+ <div class="pirate-forms-warning">
71
+ <?php esc_html_e( 'If you are using the default (non-SMTP) configuration which uses the WP/PHP mail, mails might either land in the spam/junk folders or they might get lost. So, you might not receive the email even if the status against an entry reads the mail has been sent successfully. If you face this, please contact your system administrator. If you continue to face this problem, you can switch to the SMTP configuration to ensure email deliverability.', 'pirate-forms' ); ?>
72
+ </div>
73
+
74
  <div class="rate_plugin_invite">
75
 
76
  <h4><?php esc_html_e( 'Are you enjoying Pirate Forms?', 'pirate-forms' ); ?></h4>
130
  )
131
  );
132
 
133
+ $html_helper->add(
134
+ array(
135
+ 'type' => 'submit',
136
+ 'class' => 'button-secondary pirate-forms-test-button',
137
+ 'id' => 'test',
138
+ 'value' => __( 'Send Test Email', 'pirate-forms' ),
139
+ )
140
+ );
141
+ $html_helper->add(
142
+ array(
143
+ 'type' => 'div',
144
+ 'class' => 'pirate-forms-test-message',
145
+ )
146
+ );
147
+
148
  $html_helper->add(
149
  array(
150
  'type' => 'hidden',
admin/partials/pirateforms-settings-sidebar-subscribe.php CHANGED
@@ -11,7 +11,7 @@ if ( ! defined( 'PIRATEFORMSPRO_BASEFILE' ) ) :
11
  <li>12 months Support & Updates</li>
12
  <li>30 days Money Back Guaranteed</li>
13
  </ul>
14
- <a href="https://themeisle.com/plugins/pirate-forms-extended/" target="_blank"
15
  title="<?php esc_attr_e( 'View more features', 'pirate-forms' ); ?>"
16
  class="btn"><?php esc_html_e( 'View more features', 'pirate-forms' ); ?></a>
17
  </div>
11
  <li>12 months Support & Updates</li>
12
  <li>30 days Money Back Guaranteed</li>
13
  </ul>
14
+ <a href="<?php echo PIRATEFORMS_USELL_LINK; ?>" target="_blank"
15
  title="<?php esc_attr_e( 'View more features', 'pirate-forms' ); ?>"
16
  class="btn"><?php esc_html_e( 'View more features', 'pirate-forms' ); ?></a>
17
  </div>
admin/partials/upsell.php ADDED
@@ -0,0 +1,51 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <!--
2
+ Layout For Upsell Page of Pirate forms
3
+ -->
4
+ <div id="pf-pro-features">
5
+
6
+ <div class="pro-features-header">
7
+ <p class="logo">Pirate forms Extended</p>
8
+ <span class="slogan">by <a
9
+ href="https://themeisle.com/">ThemeIsle</a></span>
10
+ <div class="header-btns">
11
+
12
+ <a target="_blank" href="<?php echo PIRATEFORMS_USELL_LINK; ?>" class="buy-now"><span
13
+ class="dashicons dashicons-cart"></span> View features</a>
14
+ </div>
15
+ </div><!-- .pro-features-header -->
16
+
17
+ <div class="pro-features-content">
18
+
19
+ <div class="pro-feature">
20
+ <div class="pro-feature-features">
21
+ <h2>Multiple Forms</h2>
22
+ <p>Create multiple forms with different fields and settings and reuse them across your website.</p>
23
+ </div>
24
+ <div class="pro-feature-image">
25
+ <img src="<?php echo PIRATEFORMS_URL; ?>admin/css/pirate-forms-extended-multiple-forms.jpg" alt="Multiple forms"> </div>
26
+ </div>
27
+ <div class="pro-feature">
28
+ <div class="pro-feature-features">
29
+ <h2>MailChimp Integraton</h2>
30
+ <p>Send your visitors details directly to MailChimp and connect with them via various emailing campaigns.
31
+ </p>
32
+ </div>
33
+ <div class="pro-feature-image">
34
+ <img src="<?php echo PIRATEFORMS_URL; ?>admin/css/pirate-forms-extended-mailchimp-integration.jpg" alt="MailChimp Integration">
35
+ </div>
36
+ </div>
37
+ <div class="pro-feature">
38
+ <div class="pro-feature-features">
39
+ <h2>Custom form Fields</h2>
40
+ <p>Extend the basic form with multiple custom fields like tel, number and many other. Create simple and complex forms, from at least 1 field to up to 30 fields.</p>
41
+ </div>
42
+ <div class="pro-feature-image">
43
+ <img src="<?php echo PIRATEFORMS_URL; ?>admin/css/pirate-forms-extended-custom-forms.jpg" alt="Custom fields">
44
+ </div>
45
+ </div>
46
+
47
+
48
+
49
+ </div><!-- .pro-features-content -->
50
+
51
+ </div>
includes/class-pirateforms-widget.php CHANGED
@@ -7,7 +7,7 @@
7
  */
8
  // @codingStandardsIgnoreStart
9
  class pirate_forms_contact_widget extends WP_Widget {
10
- // @codingStandardsIgnoreEnd
11
 
12
  /**
13
  * Widget constructor
@@ -17,7 +17,7 @@ class pirate_forms_contact_widget extends WP_Widget {
17
  'pirate_forms_contact_widget',
18
  __( 'Pirate Forms', 'pirate-forms' ),
19
  array(
20
- 'classname' => __FUNCTION__,
21
  'description' => __( 'Pirate Forms', 'pirate-forms' ),
22
  )
23
  );
@@ -57,7 +57,16 @@ class pirate_forms_contact_widget extends WP_Widget {
57
  if ( ! empty( $instance['pirate_forms_widget_subtext'] ) ) {
58
  echo wpautop( stripslashes( $instance['pirate_forms_widget_subtext'] ) );
59
  }
60
- echo do_shortcode( '[pirate_forms from="widget"]' );
 
 
 
 
 
 
 
 
 
61
  echo '<div class="pirate_forms_clearfix"></div>';
62
  echo '</div>' . $args['after_widget'];
63
 
@@ -74,6 +83,8 @@ class pirate_forms_contact_widget extends WP_Widget {
74
  $instance['pirate_forms_widget_title'] = apply_filters( 'widget_title', sanitize_text_field( $new_instance['pirate_forms_widget_title'] ) );
75
  $instance['pirate_forms_widget_subtext'] = $new_instance['pirate_forms_widget_subtext'];
76
 
 
 
77
  return $instance;
78
  }
79
 
@@ -87,17 +98,17 @@ class pirate_forms_contact_widget extends WP_Widget {
87
  $pirate_forms_widget_subtext = ! empty( $instance['pirate_forms_widget_subtext'] ) ? $instance['pirate_forms_widget_subtext'] : __( 'Text above form', 'pirate-forms' );
88
  ?>
89
  <p>
90
- <label for="<?php echo $this->get_field_id( 'pirate_forms_widget_title' ); ?>"><?php _e( 'Title:','pirate-forms' ); ?></label>
91
  <input class="widefat" id="<?php echo $this->get_field_id( 'pirate_forms_widget_title' ); ?>"
92
  name="<?php echo $this->get_field_name( 'pirate_forms_widget_title' ); ?>" type="text"
93
  value="<?php echo esc_attr( $pirate_forms_widget_title ); ?>">
94
  </p>
95
  <p>
96
- <label for="<?php echo $this->get_field_id( 'pirate_forms_widget_subtext' ); ?>"><?php _e( 'Subtext:','pirate-forms' ); ?></label>
97
  <textarea class="widefat" id="<?php echo $this->get_field_id( 'pirate_forms_widget_subtext' ); ?>"
98
  name="<?php echo $this->get_field_name( 'pirate_forms_widget_subtext' ); ?>"><?php echo esc_attr( $pirate_forms_widget_subtext ); ?></textarea>
99
  </p>
100
  <?php
101
-
102
  }
103
  }
7
  */
8
  // @codingStandardsIgnoreStart
9
  class pirate_forms_contact_widget extends WP_Widget {
10
+ // @codingStandardsIgnoreEnd
11
 
12
  /**
13
  * Widget constructor
17
  'pirate_forms_contact_widget',
18
  __( 'Pirate Forms', 'pirate-forms' ),
19
  array(
20
+ 'classname' => __FUNCTION__,
21
  'description' => __( 'Pirate Forms', 'pirate-forms' ),
22
  )
23
  );
57
  if ( ! empty( $instance['pirate_forms_widget_subtext'] ) ) {
58
  echo wpautop( stripslashes( $instance['pirate_forms_widget_subtext'] ) );
59
  }
60
+
61
+ $attributes = array( 'from' => 'widget' );
62
+ $attributes = apply_filters( 'pirate_forms_widget_attributes', $attributes, $instance );
63
+
64
+ $shortcode = '[pirate_forms';
65
+ foreach ( $attributes as $k => $v ) {
66
+ $shortcode .= " $k='$v'";
67
+ }
68
+ $shortcode .= ']';
69
+ echo do_shortcode( $shortcode );
70
  echo '<div class="pirate_forms_clearfix"></div>';
71
  echo '</div>' . $args['after_widget'];
72
 
83
  $instance['pirate_forms_widget_title'] = apply_filters( 'widget_title', sanitize_text_field( $new_instance['pirate_forms_widget_title'] ) );
84
  $instance['pirate_forms_widget_subtext'] = $new_instance['pirate_forms_widget_subtext'];
85
 
86
+ $instance = apply_filters( 'pirate_forms_widget_update', $instance, $new_instance );
87
+
88
  return $instance;
89
  }
90
 
98
  $pirate_forms_widget_subtext = ! empty( $instance['pirate_forms_widget_subtext'] ) ? $instance['pirate_forms_widget_subtext'] : __( 'Text above form', 'pirate-forms' );
99
  ?>
100
  <p>
101
+ <label for="<?php echo $this->get_field_id( 'pirate_forms_widget_title' ); ?>"><?php _e( 'Title:', 'pirate-forms' ); ?></label>
102
  <input class="widefat" id="<?php echo $this->get_field_id( 'pirate_forms_widget_title' ); ?>"
103
  name="<?php echo $this->get_field_name( 'pirate_forms_widget_title' ); ?>" type="text"
104
  value="<?php echo esc_attr( $pirate_forms_widget_title ); ?>">
105
  </p>
106
  <p>
107
+ <label for="<?php echo $this->get_field_id( 'pirate_forms_widget_subtext' ); ?>"><?php _e( 'Subtext:', 'pirate-forms' ); ?></label>
108
  <textarea class="widefat" id="<?php echo $this->get_field_id( 'pirate_forms_widget_subtext' ); ?>"
109
  name="<?php echo $this->get_field_name( 'pirate_forms_widget_subtext' ); ?>"><?php echo esc_attr( $pirate_forms_widget_subtext ); ?></textarea>
110
  </p>
111
  <?php
112
+ echo apply_filters( 'pirate_forms_widget_form', sprintf( '<p>%s</p>', sprintf( __( 'Need more forms ? Check our <a href="%s" target="_blank">extended</a> version for more features', 'pirate-forms' ), PIRATEFORMS_USELL_LINK ) ), $instance, $this );
113
  }
114
  }
includes/class-pirateforms.php CHANGED
@@ -69,10 +69,11 @@ class PirateForms {
69
  public function __construct() {
70
 
71
  $this->plugin_name = 'pirateforms';
72
- $this->version = '2.0.5';
73
 
74
  $this->load_dependencies();
75
  $this->set_locale();
 
76
  $this->define_admin_hooks();
77
  $this->define_public_hooks();
78
 
@@ -119,6 +120,18 @@ class PirateForms {
119
 
120
  }
121
 
 
 
 
 
 
 
 
 
 
 
 
 
122
  /**
123
  * Register all of the hooks related to the admin area functionality
124
  * of the plugin.
@@ -131,15 +144,18 @@ class PirateForms {
131
  $plugin_admin = new PirateForms_Admin( $this->get_plugin_name(), $this->get_version() );
132
 
133
  $this->loader->add_action( 'admin_enqueue_scripts', $plugin_admin, 'enqueue_styles_and_scripts' );
134
- $this->loader->add_action( 'admin_menu', $plugin_admin, 'add_to_admin' );
135
  $this->loader->add_action( 'admin_head', $plugin_admin, 'settings_init' );
136
  $this->loader->add_filter( 'plugin_action_links_' . PIRATEFORMS_BASENAME, $plugin_admin, 'add_settings_link' );
137
  $this->loader->add_action( 'wp_ajax_pirate_forms_save', $plugin_admin, 'save_callback' );
 
138
  $this->loader->add_action( 'pirate_forms_load_sidebar', $plugin_admin, 'load_sidebar' );
139
  $this->loader->add_action( 'pirate_forms_load_sidebar_theme', $plugin_admin, 'load_sidebar_theme' );
140
  $this->loader->add_action( 'pirate_forms_load_sidebar_subscribe', $plugin_admin, 'load_sidebar_subscribe' );
141
 
142
- $this->loader->add_action( 'init', $this, 'register_content_type' );
 
 
143
  }
144
 
145
 
@@ -156,13 +172,13 @@ class PirateForms {
156
 
157
  $this->loader->add_action( 'wp_enqueue_scripts', $plugin_public, 'enqueue_styles_and_scripts' );
158
  $this->loader->add_action( 'template_redirect', $plugin_public, 'template_redirect' );
159
- $this->loader->add_action( 'init', $this, 'register_content_type' );
160
 
161
  // ONLY FOR UNIT TESTING: we cannot fire template_redirect without errors, that is why we are creating a manual hook for this
162
  $this->loader->add_action( 'pirate_unittesting_template_redirect', $plugin_public, 'template_redirect' );
163
  $this->loader->add_action( 'pirate_forms_render_thankyou', $plugin_public, 'render_thankyou' );
164
  $this->loader->add_action( 'pirate_forms_render_errors', $plugin_public, 'render_errors' );
165
  $this->loader->add_action( 'pirate_forms_render_fields', $plugin_public, 'render_fields' );
 
166
 
167
  $this->loader->add_filter( 'widget_text', $plugin_public, 'widget_text_filter', 9 );
168
  $this->loader->add_filter( 'pirate_forms_public_controls', $plugin_public, 'compatibility_class', 9 );
@@ -219,24 +235,21 @@ class PirateForms {
219
  */
220
  public function register_content_type() {
221
  $labels = array(
222
- 'name' => _x( 'Contacts', 'post type general name', 'pirate-forms' ),
223
- 'singular_name' => _x( 'Contact', 'post type singular name', 'pirate-forms' ),
224
- 'menu_name' => _x( 'Contacts', 'admin menu', 'pirate-forms' ),
225
- 'name_admin_bar' => _x( 'Contact', 'add new on admin bar', 'pirate-forms' ),
226
- 'add_new' => _x( 'Add New', 'contact', 'pirate-forms' ),
227
- 'add_new_item' => __( 'Add New Contact', 'pirate-forms' ),
228
- 'new_item' => __( 'New Contact', 'pirate-forms' ),
229
- 'edit_item' => __( 'Edit Contact', 'pirate-forms' ),
230
- 'view_item' => __( 'View Contact', 'pirate-forms' ),
231
- 'all_items' => __( 'All Contacts', 'pirate-forms' ),
232
- 'search_items' => __( 'Search Contacts', 'pirate-forms' ),
233
- 'parent_item_colon' => __( 'Parent Contacts:', 'pirate-forms' ),
234
- 'not_found' => __( 'No contacts found.', 'pirate-forms' ),
235
- 'not_found_in_trash' => __( 'No contacts found in Trash.', 'pirate-forms' ),
236
  );
237
  $args = array(
238
  'labels' => $labels,
239
- 'description' => __( 'Contacts from Pirate Forms', 'pirate-forms' ),
240
  'public' => true,
241
  'publicly_queryable' => true,
242
  'show_ui' => true,
@@ -247,6 +260,11 @@ class PirateForms {
247
  'hierarchical' => false,
248
  'menu_position' => null,
249
  'supports' => array( 'title', 'editor', 'custom-fields' ),
 
 
 
 
 
250
  );
251
  register_post_type( 'pf_contact', $args );
252
  }
69
  public function __construct() {
70
 
71
  $this->plugin_name = 'pirateforms';
72
+ $this->version = '2.1.0';
73
 
74
  $this->load_dependencies();
75
  $this->set_locale();
76
+ $this->define_common_hooks();
77
  $this->define_admin_hooks();
78
  $this->define_public_hooks();
79
 
120
 
121
  }
122
 
123
+ /**
124
+ * Register all of the hooks related to common functionality
125
+ * of the plugin.
126
+ *
127
+ * @since 1.0.0
128
+ * @access private
129
+ */
130
+ private function define_common_hooks() {
131
+ $this->loader->add_action( 'init', $this, 'register_content_type', 10 );
132
+ }
133
+
134
+
135
  /**
136
  * Register all of the hooks related to the admin area functionality
137
  * of the plugin.
144
  $plugin_admin = new PirateForms_Admin( $this->get_plugin_name(), $this->get_version() );
145
 
146
  $this->loader->add_action( 'admin_enqueue_scripts', $plugin_admin, 'enqueue_styles_and_scripts' );
147
+ $this->loader->add_action( 'admin_menu', $plugin_admin, 'add_to_admin', 9 );
148
  $this->loader->add_action( 'admin_head', $plugin_admin, 'settings_init' );
149
  $this->loader->add_filter( 'plugin_action_links_' . PIRATEFORMS_BASENAME, $plugin_admin, 'add_settings_link' );
150
  $this->loader->add_action( 'wp_ajax_pirate_forms_save', $plugin_admin, 'save_callback' );
151
+ $this->loader->add_action( 'wp_ajax_pirate_forms_test', $plugin_admin, 'test_email' );
152
  $this->loader->add_action( 'pirate_forms_load_sidebar', $plugin_admin, 'load_sidebar' );
153
  $this->loader->add_action( 'pirate_forms_load_sidebar_theme', $plugin_admin, 'load_sidebar_theme' );
154
  $this->loader->add_action( 'pirate_forms_load_sidebar_subscribe', $plugin_admin, 'load_sidebar_subscribe' );
155
 
156
+ $this->loader->add_filter( 'manage_pf_contact_posts_columns', $plugin_admin, 'manage_contact_posts_columns' );
157
+ $this->loader->add_filter( 'manage_pf_contact_posts_custom_column', $plugin_admin, 'manage_contact_posts_custom_column', 10, 2 );
158
+
159
  }
160
 
161
 
172
 
173
  $this->loader->add_action( 'wp_enqueue_scripts', $plugin_public, 'enqueue_styles_and_scripts' );
174
  $this->loader->add_action( 'template_redirect', $plugin_public, 'template_redirect' );
 
175
 
176
  // ONLY FOR UNIT TESTING: we cannot fire template_redirect without errors, that is why we are creating a manual hook for this
177
  $this->loader->add_action( 'pirate_unittesting_template_redirect', $plugin_public, 'template_redirect' );
178
  $this->loader->add_action( 'pirate_forms_render_thankyou', $plugin_public, 'render_thankyou' );
179
  $this->loader->add_action( 'pirate_forms_render_errors', $plugin_public, 'render_errors' );
180
  $this->loader->add_action( 'pirate_forms_render_fields', $plugin_public, 'render_fields' );
181
+ $this->loader->add_action( 'pirate_forms_send_email', $plugin_public, 'send_email' );
182
 
183
  $this->loader->add_filter( 'widget_text', $plugin_public, 'widget_text_filter', 9 );
184
  $this->loader->add_filter( 'pirate_forms_public_controls', $plugin_public, 'compatibility_class', 9 );
235
  */
236
  public function register_content_type() {
237
  $labels = array(
238
+ 'name' => _x( 'Entries', 'post type general name', 'pirate-forms' ),
239
+ 'singular_name' => _x( 'Entry', 'post type singular name', 'pirate-forms' ),
240
+ 'menu_name' => _x( 'Entries', 'admin menu', 'pirate-forms' ),
241
+ 'name_admin_bar' => _x( 'Entry', 'add new on admin bar', 'pirate-forms' ),
242
+ 'edit_item' => __( 'Edit Entry', 'pirate-forms' ),
243
+ 'view_item' => __( 'View Entry', 'pirate-forms' ),
244
+ 'all_items' => __( 'All Entries', 'pirate-forms' ),
245
+ 'search_items' => __( 'Search Entries', 'pirate-forms' ),
246
+ 'parent_item_colon' => __( 'Parent Entries:', 'pirate-forms' ),
247
+ 'not_found' => __( 'No entries found.', 'pirate-forms' ),
248
+ 'not_found_in_trash' => __( 'No entries found in Trash.', 'pirate-forms' ),
 
 
 
249
  );
250
  $args = array(
251
  'labels' => $labels,
252
+ 'description' => __( 'Entries from Pirate Forms', 'pirate-forms' ),
253
  'public' => true,
254
  'publicly_queryable' => true,
255
  'show_ui' => true,
260
  'hierarchical' => false,
261
  'menu_position' => null,
262
  'supports' => array( 'title', 'editor', 'custom-fields' ),
263
+ 'capabilities' => array(
264
+ 'create_posts' => false,
265
+ ),
266
+ 'map_meta_cap' => true,
267
+
268
  );
269
  register_post_type( 'pf_contact', $args );
270
  }
languages/pirate-forms.pot CHANGED
@@ -2,9 +2,9 @@
2
  # This file is distributed under the GPLv2.
3
  msgid ""
4
  msgstr ""
5
- "Project-Id-Version: Free & Simple Contact Form Plugin - Pirateforms 2.0.4\n"
6
  "Report-Msgid-Bugs-To: https://github.com/Codeinwp/pirate-forms/issues\n"
7
- "POT-Creation-Date: 2017-08-15 19:26:11+00:00\n"
8
  "MIME-Version: 1.0\n"
9
  "Content-Type: text/plain; charset=utf-8\n"
10
  "Content-Transfer-Encoding: 8bit\n"
@@ -24,27 +24,31 @@ msgstr ""
24
  "X-Poedit-Bookmarks: \n"
25
  "X-Textdomain-Support: yes\n"
26
 
27
- #: admin/class-pirateforms-admin.php:113 admin/class-pirateforms-admin.php:131
28
  msgid "Settings"
29
  msgstr ""
30
 
31
- #: admin/class-pirateforms-admin.php:189 admin/class-pirateforms-admin.php:193
 
 
 
 
32
  msgid "Send Message"
33
  msgstr ""
34
 
35
- #: admin/class-pirateforms-admin.php:211
36
  msgid "Form processing options"
37
  msgstr ""
38
 
39
- #: admin/class-pirateforms-admin.php:218
40
  msgid "Contact notification email address"
41
  msgstr ""
42
 
43
- #: admin/class-pirateforms-admin.php:221
44
  msgid "Insert [email] to use the contact form submitter's email."
45
  msgstr ""
46
 
47
- #: admin/class-pirateforms-admin.php:221
48
  msgid ""
49
  "The notification email will be sent from this address both to the "
50
  "recipients below and the contact form submitter (if this is activated below "
@@ -52,38 +56,38 @@ msgid ""
52
  "should match your site's domain)."
53
  msgstr ""
54
 
55
- #: admin/class-pirateforms-admin.php:237
56
  msgid "Contact submission recipients"
57
  msgstr ""
58
 
59
- #: admin/class-pirateforms-admin.php:240
60
  msgid ""
61
  "Email address(es) to receive contact submission notifications. You can "
62
  "separate multiple emails with a comma."
63
  msgstr ""
64
 
65
- #: admin/class-pirateforms-admin.php:256
66
  msgid "Store submissions in the database"
67
  msgstr ""
68
 
69
- #: admin/class-pirateforms-admin.php:259
70
  msgid ""
71
  "Should the submissions be stored in the admin area? If chosen, contact form "
72
  "submissions will be saved in Contacts on the left (appears after this "
73
  "option is activated)."
74
  msgstr ""
75
 
76
- #: admin/class-pirateforms-admin.php:269 admin/class-pirateforms-admin.php:288
77
- #: admin/class-pirateforms-admin.php:442 admin/class-pirateforms-admin.php:663
78
- #: admin/class-pirateforms-admin.php:706
79
  msgid "Yes"
80
  msgstr ""
81
 
82
- #: admin/class-pirateforms-admin.php:275
83
  msgid "Add a nonce to the contact form:"
84
  msgstr ""
85
 
86
- #: admin/class-pirateforms-admin.php:278
87
  msgid ""
88
  "Should the form use a WordPress nonce? This helps reduce spam by ensuring "
89
  "that the form submittor is on the site when submitting the form rather than "
@@ -92,230 +96,254 @@ msgid ""
92
  "forms not being able to be submitted with an error of \"Nonce failed!\""
93
  msgstr ""
94
 
95
- #: admin/class-pirateforms-admin.php:294
96
  msgid "Send email confirmation to form submitter"
97
  msgstr ""
98
 
99
- #: admin/class-pirateforms-admin.php:297
100
  msgid ""
101
  "Adding text here will send an email to the form submitter. The email uses "
102
  "the \"Successful form submission text\" field from the \"Alert Messages\" "
103
  "tab as the subject line. Plain text only here, no HTML."
104
  msgstr ""
105
 
106
- #: admin/class-pirateforms-admin.php:313
107
  msgid "Success Page"
108
  msgstr ""
109
 
110
- #: admin/class-pirateforms-admin.php:316
111
  msgid ""
112
  "Select the page that displays after a successful form submission. The page "
113
  "will be displayed without pausing on the email form, so please be sure to "
114
  "configure a relevant thank you message in this page."
115
  msgstr ""
116
 
117
- #: admin/class-pirateforms-admin.php:331
118
  #: admin/partials/pirateforms-settings-display.php:31
119
  msgid "Fields Settings"
120
  msgstr ""
121
 
122
- #: admin/class-pirateforms-admin.php:339 admin/class-pirateforms-admin.php:489
123
  msgid "Name"
124
  msgstr ""
125
 
126
- #: admin/class-pirateforms-admin.php:348 admin/class-pirateforms-admin.php:367
127
- #: admin/class-pirateforms-admin.php:386 admin/class-pirateforms-admin.php:405
128
- #: admin/class-pirateforms-admin.php:423
129
  msgid "Do not display"
130
  msgstr ""
131
 
132
- #: admin/class-pirateforms-admin.php:349 admin/class-pirateforms-admin.php:368
133
- #: admin/class-pirateforms-admin.php:387 admin/class-pirateforms-admin.php:406
134
- #: admin/class-pirateforms-admin.php:424
135
  msgid "Display but not required"
136
  msgstr ""
137
 
138
- #: admin/class-pirateforms-admin.php:350 admin/class-pirateforms-admin.php:369
139
- #: admin/class-pirateforms-admin.php:388 admin/class-pirateforms-admin.php:407
140
- #: admin/class-pirateforms-admin.php:425
141
  msgid "Required"
142
  msgstr ""
143
 
144
- #: admin/class-pirateforms-admin.php:358
145
  msgid "Email address"
146
  msgstr ""
147
 
148
- #: admin/class-pirateforms-admin.php:377 admin/class-pirateforms-admin.php:515
149
- #: admin/class-pirateforms-admin.php:517
150
  msgid "Subject"
151
  msgstr ""
152
 
153
- #: admin/class-pirateforms-admin.php:396 admin/class-pirateforms-admin.php:528
154
  msgid "Message"
155
  msgstr ""
156
 
157
- #: admin/class-pirateforms-admin.php:415
158
  msgid "Attachment"
159
  msgstr ""
160
 
161
- #: admin/class-pirateforms-admin.php:433
162
  msgid "Add a reCAPTCHA"
163
  msgstr ""
164
 
165
- #: admin/class-pirateforms-admin.php:450
166
  msgid "Site key"
167
  msgstr ""
168
 
169
- #: admin/class-pirateforms-admin.php:453
170
  msgid "Create an account here "
171
  msgstr ""
172
 
173
- #: admin/class-pirateforms-admin.php:453
174
  msgid "to get the Site key and the Secret key for the reCaptcha."
175
  msgstr ""
176
 
177
- #: admin/class-pirateforms-admin.php:469
178
  msgid "Secret key"
179
  msgstr ""
180
 
181
- #: admin/class-pirateforms-admin.php:482
182
  #: admin/partials/pirateforms-settings-display.php:34
183
  msgid "Fields Labels"
184
  msgstr ""
185
 
186
- #: admin/class-pirateforms-admin.php:491
187
  msgid "Your Name"
188
  msgstr ""
189
 
190
- #: admin/class-pirateforms-admin.php:502
191
  msgid "Email"
192
  msgstr ""
193
 
194
- #: admin/class-pirateforms-admin.php:504
195
  msgid "Your Email"
196
  msgstr ""
197
 
198
- #: admin/class-pirateforms-admin.php:530
199
  msgid "Your message"
200
  msgstr ""
201
 
202
- #: admin/class-pirateforms-admin.php:541
203
  msgid "Submit button"
204
  msgstr ""
205
 
206
- #: admin/class-pirateforms-admin.php:554
207
  #: admin/partials/pirateforms-settings-display.php:37
208
  msgid "Alert Messages"
209
  msgstr ""
210
 
211
- #: admin/class-pirateforms-admin.php:561
212
  msgid "Name required and missing"
213
  msgstr ""
214
 
215
- #: admin/class-pirateforms-admin.php:563
216
  msgid "Enter your name"
217
  msgstr ""
218
 
219
- #: admin/class-pirateforms-admin.php:574
220
  msgid "E-mail required and missing"
221
  msgstr ""
222
 
223
- #: admin/class-pirateforms-admin.php:576
224
  msgid "Enter valid email"
225
  msgstr ""
226
 
227
- #: admin/class-pirateforms-admin.php:587
228
  msgid "Subject required and missing"
229
  msgstr ""
230
 
231
- #: admin/class-pirateforms-admin.php:589
232
  msgid "Please enter a subject"
233
  msgstr ""
234
 
235
- #: admin/class-pirateforms-admin.php:600
236
  msgid "Question/comment is missing"
237
  msgstr ""
238
 
239
- #: admin/class-pirateforms-admin.php:602
240
  msgid "Enter your question or comment"
241
  msgstr ""
242
 
243
- #: admin/class-pirateforms-admin.php:613
244
  msgid "Attachment is missing"
245
  msgstr ""
246
 
247
- #: admin/class-pirateforms-admin.php:615
248
  msgid "Please add an attachment"
249
  msgstr ""
250
 
251
- #: admin/class-pirateforms-admin.php:626
252
  msgid "Successful form submission text"
253
  msgstr ""
254
 
255
- #: admin/class-pirateforms-admin.php:629
256
  msgid ""
257
  "This text is used on the page if no Success Page is chosen above. This is "
258
  "also used as the confirmation email title, if one is set to send out."
259
  msgstr ""
260
 
261
- #: admin/class-pirateforms-admin.php:633
262
  msgid "Thanks, your email was sent successfully!"
263
  msgstr ""
264
 
265
- #: admin/class-pirateforms-admin.php:644
266
  msgid "SMTP Options"
267
  msgstr ""
268
 
269
- #: admin/class-pirateforms-admin.php:651
270
  msgid "Use SMTP to send emails?"
271
  msgstr ""
272
 
273
- #: admin/class-pirateforms-admin.php:654
274
  msgid "Instead of PHP mail function"
275
  msgstr ""
276
 
277
- #: admin/class-pirateforms-admin.php:669
278
  msgid "SMTP Host"
279
  msgstr ""
280
 
281
- #: admin/class-pirateforms-admin.php:681
282
  msgid "SMTP Port"
283
  msgstr ""
284
 
285
- #: admin/class-pirateforms-admin.php:693
286
  msgid "Use SMTP Authentication?"
287
  msgstr ""
288
 
289
- #: admin/class-pirateforms-admin.php:696 admin/class-pirateforms-admin.php:715
290
  msgid ""
291
  "If you check this box, make sure the SMTP Username and SMTP Password are "
292
  "completed."
293
  msgstr ""
294
 
295
- #: admin/class-pirateforms-admin.php:712
296
  msgid "Security?"
297
  msgstr ""
298
 
299
- #: admin/class-pirateforms-admin.php:725
300
  msgid "No"
301
  msgstr ""
302
 
303
- #: admin/class-pirateforms-admin.php:726
304
  msgid "SSL"
305
  msgstr ""
306
 
307
- #: admin/class-pirateforms-admin.php:727
308
  msgid "TLS"
309
  msgstr ""
310
 
311
- #: admin/class-pirateforms-admin.php:734
312
  msgid "SMTP Username"
313
  msgstr ""
314
 
315
- #: admin/class-pirateforms-admin.php:746
316
  msgid "SMTP Password"
317
  msgstr ""
318
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
319
  #: admin/partials/pirateforms-settings-display.php:20
320
  #: includes/class-pirateforms-widget.php:18
321
  #: includes/class-pirateforms-widget.php:21
@@ -375,46 +403,60 @@ msgstr ""
375
  msgid " in the theme's files."
376
  msgstr ""
377
 
378
- #: admin/partials/pirateforms-settings-display.php:72
 
 
 
 
 
 
 
 
 
 
379
  msgid "Are you enjoying Pirate Forms?"
380
  msgstr ""
381
 
382
- #: admin/partials/pirateforms-settings-display.php:77
383
  #. translators: link to WordPress.org repo for PirateForms
384
  msgid "Rate our plugin on %1$s WordPress.org %2$s. We'd really appreciate it!"
385
  msgstr ""
386
 
387
- #: admin/partials/pirateforms-settings-display.php:91
388
  #. translators: link to blog article about contact form plugins
389
  msgid ""
390
  "If you want a more complex Contact Form Plugin please check %1$s this link "
391
  "%2$s."
392
  msgstr ""
393
 
394
- #: admin/partials/pirateforms-settings-display.php:125
395
  msgid "Save changes"
396
  msgstr ""
397
 
 
 
 
 
398
  #: admin/partials/pirateforms-settings-sidebar-subscribe.php:5
399
  msgid "Extend to FULL version"
400
  msgstr ""
401
 
402
- #: admin/partials/pirateforms-settings-sidebar-subscribe.php:14
403
  #: admin/partials/pirateforms-settings-sidebar-subscribe.php:15
 
404
  msgid "View more features"
405
  msgstr ""
406
 
407
- #: admin/partials/pirateforms-settings-sidebar-subscribe.php:21
408
  msgid "Get Our Free Email Course"
409
  msgstr ""
410
 
411
- #: admin/partials/pirateforms-settings-sidebar-subscribe.php:45
412
  msgid ""
413
  "Ready to learn how to reduce your website loading times by half? Come and "
414
  "join the 1st lesson here!"
415
  msgstr ""
416
 
417
- #: admin/partials/pirateforms-settings-sidebar-subscribe.php:47
418
  msgid ""
419
  "Thank you for subscribing! You have been added to the mailing list and will "
420
  "receive the next email information in the coming weeks. If you ever wish to "
@@ -430,60 +472,58 @@ msgstr ""
430
  msgid "None"
431
  msgstr ""
432
 
433
- #: includes/class-pirateforms-widget.php:86
434
  msgid "Title"
435
  msgstr ""
436
 
437
- #: includes/class-pirateforms-widget.php:87
438
  msgid "Text above form"
439
  msgstr ""
440
 
441
- #: includes/class-pirateforms-widget.php:90
442
  msgid "Title:"
443
  msgstr ""
444
 
445
- #: includes/class-pirateforms-widget.php:96
446
  msgid "Subtext:"
447
  msgstr ""
448
 
449
- #: includes/class-pirateforms.php:227
450
- msgid "Add New Contact"
451
- msgstr ""
452
-
453
- #: includes/class-pirateforms.php:228
454
- msgid "New Contact"
455
  msgstr ""
456
 
457
- #: includes/class-pirateforms.php:229
458
- msgid "Edit Contact"
459
  msgstr ""
460
 
461
- #: includes/class-pirateforms.php:230
462
- msgid "View Contact"
463
  msgstr ""
464
 
465
- #: includes/class-pirateforms.php:231
466
- msgid "All Contacts"
467
  msgstr ""
468
 
469
- #: includes/class-pirateforms.php:232
470
- msgid "Search Contacts"
471
  msgstr ""
472
 
473
- #: includes/class-pirateforms.php:233
474
- msgid "Parent Contacts:"
475
  msgstr ""
476
 
477
- #: includes/class-pirateforms.php:234
478
- msgid "No contacts found."
479
  msgstr ""
480
 
481
- #: includes/class-pirateforms.php:235
482
- msgid "No contacts found in Trash."
483
  msgstr ""
484
 
485
- #: includes/class-pirateforms.php:239
486
- msgid "Contacts from Pirate Forms"
487
  msgstr ""
488
 
489
  #: public/class-pirateforms-public.php:330
@@ -494,52 +534,52 @@ msgstr ""
494
  msgid "Sorry, an error occured."
495
  msgstr ""
496
 
497
- #: public/class-pirateforms-public.php:474
498
  msgid "Nonce failed!"
499
  msgstr ""
500
 
501
- #: public/class-pirateforms-public.php:483
502
  msgid "Form submission failed!"
503
  msgstr ""
504
 
505
- #: public/class-pirateforms-public.php:495
506
  msgid "Contact form submission from"
507
  msgstr ""
508
 
509
- #: public/class-pirateforms-public.php:506
510
  msgid "Please enter one or more Contact submission recipients"
511
  msgstr ""
512
 
513
- #: public/class-pirateforms-public.php:521
514
  msgid "IP address: "
515
  msgstr ""
516
 
517
- #: public/class-pirateforms-public.php:522
518
  msgid "IP search:"
519
  msgstr ""
520
 
521
- #: public/class-pirateforms-public.php:527
522
  msgid "Came from: "
523
  msgstr ""
524
 
525
- #: public/class-pirateforms-public.php:531
526
  msgid "Sent from page: "
527
  msgstr ""
528
 
529
- #: public/class-pirateforms-public.php:716
530
- #: public/class-pirateforms-public.php:728
531
  msgid "Wrong reCAPTCHA"
532
  msgstr ""
533
 
534
- #: public/class-pirateforms-public.php:761
535
  msgid "Uploaded file is not allowed for file type"
536
  msgstr ""
537
 
538
- #: public/class-pirateforms-public.php:769
539
  msgid "Uploaded file is too large"
540
  msgstr ""
541
 
542
- #: public/class-pirateforms-public.php:785
543
  msgid "There was an unknown error uploading the file."
544
  msgstr ""
545
 
@@ -563,27 +603,22 @@ msgstr ""
563
  msgid "http://themeisle.com"
564
  msgstr ""
565
 
566
- #: includes/class-pirateforms.php:222
567
  msgctxt "post type general name"
568
- msgid "Contacts"
569
  msgstr ""
570
 
571
- #: includes/class-pirateforms.php:223
572
  msgctxt "post type singular name"
573
- msgid "Contact"
574
  msgstr ""
575
 
576
- #: includes/class-pirateforms.php:224
577
  msgctxt "admin menu"
578
- msgid "Contacts"
579
  msgstr ""
580
 
581
- #: includes/class-pirateforms.php:225
582
  msgctxt "add new on admin bar"
583
- msgid "Contact"
584
- msgstr ""
585
-
586
- #: includes/class-pirateforms.php:226
587
- msgctxt "contact"
588
- msgid "Add New"
589
  msgstr ""
2
  # This file is distributed under the GPLv2.
3
  msgid ""
4
  msgstr ""
5
+ "Project-Id-Version: Free & Simple Contact Form Plugin - Pirateforms 2.1.0\n"
6
  "Report-Msgid-Bugs-To: https://github.com/Codeinwp/pirate-forms/issues\n"
7
+ "POT-Creation-Date: 2017-08-26 09:03:11+00:00\n"
8
  "MIME-Version: 1.0\n"
9
  "Content-Type: text/plain; charset=utf-8\n"
10
  "Content-Transfer-Encoding: 8bit\n"
24
  "X-Poedit-Bookmarks: \n"
25
  "X-Textdomain-Support: yes\n"
26
 
27
+ #: admin/class-pirateforms-admin.php:120 admin/class-pirateforms-admin.php:144
28
  msgid "Settings"
29
  msgstr ""
30
 
31
+ #: admin/class-pirateforms-admin.php:151
32
+ msgid "More Features"
33
+ msgstr ""
34
+
35
+ #: admin/class-pirateforms-admin.php:209 admin/class-pirateforms-admin.php:213
36
  msgid "Send Message"
37
  msgstr ""
38
 
39
+ #: admin/class-pirateforms-admin.php:231
40
  msgid "Form processing options"
41
  msgstr ""
42
 
43
+ #: admin/class-pirateforms-admin.php:238
44
  msgid "Contact notification email address"
45
  msgstr ""
46
 
47
+ #: admin/class-pirateforms-admin.php:241
48
  msgid "Insert [email] to use the contact form submitter's email."
49
  msgstr ""
50
 
51
+ #: admin/class-pirateforms-admin.php:241
52
  msgid ""
53
  "The notification email will be sent from this address both to the "
54
  "recipients below and the contact form submitter (if this is activated below "
56
  "should match your site's domain)."
57
  msgstr ""
58
 
59
+ #: admin/class-pirateforms-admin.php:257
60
  msgid "Contact submission recipients"
61
  msgstr ""
62
 
63
+ #: admin/class-pirateforms-admin.php:260
64
  msgid ""
65
  "Email address(es) to receive contact submission notifications. You can "
66
  "separate multiple emails with a comma."
67
  msgstr ""
68
 
69
+ #: admin/class-pirateforms-admin.php:276
70
  msgid "Store submissions in the database"
71
  msgstr ""
72
 
73
+ #: admin/class-pirateforms-admin.php:279
74
  msgid ""
75
  "Should the submissions be stored in the admin area? If chosen, contact form "
76
  "submissions will be saved in Contacts on the left (appears after this "
77
  "option is activated)."
78
  msgstr ""
79
 
80
+ #: admin/class-pirateforms-admin.php:289 admin/class-pirateforms-admin.php:308
81
+ #: admin/class-pirateforms-admin.php:462 admin/class-pirateforms-admin.php:683
82
+ #: admin/class-pirateforms-admin.php:726
83
  msgid "Yes"
84
  msgstr ""
85
 
86
+ #: admin/class-pirateforms-admin.php:295
87
  msgid "Add a nonce to the contact form:"
88
  msgstr ""
89
 
90
+ #: admin/class-pirateforms-admin.php:298
91
  msgid ""
92
  "Should the form use a WordPress nonce? This helps reduce spam by ensuring "
93
  "that the form submittor is on the site when submitting the form rather than "
96
  "forms not being able to be submitted with an error of \"Nonce failed!\""
97
  msgstr ""
98
 
99
+ #: admin/class-pirateforms-admin.php:314
100
  msgid "Send email confirmation to form submitter"
101
  msgstr ""
102
 
103
+ #: admin/class-pirateforms-admin.php:317
104
  msgid ""
105
  "Adding text here will send an email to the form submitter. The email uses "
106
  "the \"Successful form submission text\" field from the \"Alert Messages\" "
107
  "tab as the subject line. Plain text only here, no HTML."
108
  msgstr ""
109
 
110
+ #: admin/class-pirateforms-admin.php:333
111
  msgid "Success Page"
112
  msgstr ""
113
 
114
+ #: admin/class-pirateforms-admin.php:336
115
  msgid ""
116
  "Select the page that displays after a successful form submission. The page "
117
  "will be displayed without pausing on the email form, so please be sure to "
118
  "configure a relevant thank you message in this page."
119
  msgstr ""
120
 
121
+ #: admin/class-pirateforms-admin.php:351
122
  #: admin/partials/pirateforms-settings-display.php:31
123
  msgid "Fields Settings"
124
  msgstr ""
125
 
126
+ #: admin/class-pirateforms-admin.php:359 admin/class-pirateforms-admin.php:509
127
  msgid "Name"
128
  msgstr ""
129
 
130
+ #: admin/class-pirateforms-admin.php:368 admin/class-pirateforms-admin.php:387
131
+ #: admin/class-pirateforms-admin.php:406 admin/class-pirateforms-admin.php:425
132
+ #: admin/class-pirateforms-admin.php:443
133
  msgid "Do not display"
134
  msgstr ""
135
 
136
+ #: admin/class-pirateforms-admin.php:369 admin/class-pirateforms-admin.php:388
137
+ #: admin/class-pirateforms-admin.php:407 admin/class-pirateforms-admin.php:426
138
+ #: admin/class-pirateforms-admin.php:444
139
  msgid "Display but not required"
140
  msgstr ""
141
 
142
+ #: admin/class-pirateforms-admin.php:370 admin/class-pirateforms-admin.php:389
143
+ #: admin/class-pirateforms-admin.php:408 admin/class-pirateforms-admin.php:427
144
+ #: admin/class-pirateforms-admin.php:445
145
  msgid "Required"
146
  msgstr ""
147
 
148
+ #: admin/class-pirateforms-admin.php:378
149
  msgid "Email address"
150
  msgstr ""
151
 
152
+ #: admin/class-pirateforms-admin.php:397 admin/class-pirateforms-admin.php:535
153
+ #: admin/class-pirateforms-admin.php:537
154
  msgid "Subject"
155
  msgstr ""
156
 
157
+ #: admin/class-pirateforms-admin.php:416 admin/class-pirateforms-admin.php:548
158
  msgid "Message"
159
  msgstr ""
160
 
161
+ #: admin/class-pirateforms-admin.php:435
162
  msgid "Attachment"
163
  msgstr ""
164
 
165
+ #: admin/class-pirateforms-admin.php:453
166
  msgid "Add a reCAPTCHA"
167
  msgstr ""
168
 
169
+ #: admin/class-pirateforms-admin.php:470
170
  msgid "Site key"
171
  msgstr ""
172
 
173
+ #: admin/class-pirateforms-admin.php:473
174
  msgid "Create an account here "
175
  msgstr ""
176
 
177
+ #: admin/class-pirateforms-admin.php:473
178
  msgid "to get the Site key and the Secret key for the reCaptcha."
179
  msgstr ""
180
 
181
+ #: admin/class-pirateforms-admin.php:489
182
  msgid "Secret key"
183
  msgstr ""
184
 
185
+ #: admin/class-pirateforms-admin.php:502
186
  #: admin/partials/pirateforms-settings-display.php:34
187
  msgid "Fields Labels"
188
  msgstr ""
189
 
190
+ #: admin/class-pirateforms-admin.php:511
191
  msgid "Your Name"
192
  msgstr ""
193
 
194
+ #: admin/class-pirateforms-admin.php:522
195
  msgid "Email"
196
  msgstr ""
197
 
198
+ #: admin/class-pirateforms-admin.php:524
199
  msgid "Your Email"
200
  msgstr ""
201
 
202
+ #: admin/class-pirateforms-admin.php:550
203
  msgid "Your message"
204
  msgstr ""
205
 
206
+ #: admin/class-pirateforms-admin.php:561
207
  msgid "Submit button"
208
  msgstr ""
209
 
210
+ #: admin/class-pirateforms-admin.php:574
211
  #: admin/partials/pirateforms-settings-display.php:37
212
  msgid "Alert Messages"
213
  msgstr ""
214
 
215
+ #: admin/class-pirateforms-admin.php:581
216
  msgid "Name required and missing"
217
  msgstr ""
218
 
219
+ #: admin/class-pirateforms-admin.php:583
220
  msgid "Enter your name"
221
  msgstr ""
222
 
223
+ #: admin/class-pirateforms-admin.php:594
224
  msgid "E-mail required and missing"
225
  msgstr ""
226
 
227
+ #: admin/class-pirateforms-admin.php:596
228
  msgid "Enter valid email"
229
  msgstr ""
230
 
231
+ #: admin/class-pirateforms-admin.php:607
232
  msgid "Subject required and missing"
233
  msgstr ""
234
 
235
+ #: admin/class-pirateforms-admin.php:609
236
  msgid "Please enter a subject"
237
  msgstr ""
238
 
239
+ #: admin/class-pirateforms-admin.php:620
240
  msgid "Question/comment is missing"
241
  msgstr ""
242
 
243
+ #: admin/class-pirateforms-admin.php:622
244
  msgid "Enter your question or comment"
245
  msgstr ""
246
 
247
+ #: admin/class-pirateforms-admin.php:633
248
  msgid "Attachment is missing"
249
  msgstr ""
250
 
251
+ #: admin/class-pirateforms-admin.php:635
252
  msgid "Please add an attachment"
253
  msgstr ""
254
 
255
+ #: admin/class-pirateforms-admin.php:646
256
  msgid "Successful form submission text"
257
  msgstr ""
258
 
259
+ #: admin/class-pirateforms-admin.php:649
260
  msgid ""
261
  "This text is used on the page if no Success Page is chosen above. This is "
262
  "also used as the confirmation email title, if one is set to send out."
263
  msgstr ""
264
 
265
+ #: admin/class-pirateforms-admin.php:653
266
  msgid "Thanks, your email was sent successfully!"
267
  msgstr ""
268
 
269
+ #: admin/class-pirateforms-admin.php:664
270
  msgid "SMTP Options"
271
  msgstr ""
272
 
273
+ #: admin/class-pirateforms-admin.php:671
274
  msgid "Use SMTP to send emails?"
275
  msgstr ""
276
 
277
+ #: admin/class-pirateforms-admin.php:674
278
  msgid "Instead of PHP mail function"
279
  msgstr ""
280
 
281
+ #: admin/class-pirateforms-admin.php:689
282
  msgid "SMTP Host"
283
  msgstr ""
284
 
285
+ #: admin/class-pirateforms-admin.php:701
286
  msgid "SMTP Port"
287
  msgstr ""
288
 
289
+ #: admin/class-pirateforms-admin.php:713
290
  msgid "Use SMTP Authentication?"
291
  msgstr ""
292
 
293
+ #: admin/class-pirateforms-admin.php:716 admin/class-pirateforms-admin.php:735
294
  msgid ""
295
  "If you check this box, make sure the SMTP Username and SMTP Password are "
296
  "completed."
297
  msgstr ""
298
 
299
+ #: admin/class-pirateforms-admin.php:732
300
  msgid "Security?"
301
  msgstr ""
302
 
303
+ #: admin/class-pirateforms-admin.php:745
304
  msgid "No"
305
  msgstr ""
306
 
307
+ #: admin/class-pirateforms-admin.php:746
308
  msgid "SSL"
309
  msgstr ""
310
 
311
+ #: admin/class-pirateforms-admin.php:747
312
  msgid "TLS"
313
  msgstr ""
314
 
315
+ #: admin/class-pirateforms-admin.php:754
316
  msgid "SMTP Username"
317
  msgstr ""
318
 
319
+ #: admin/class-pirateforms-admin.php:766
320
  msgid "SMTP Password"
321
  msgstr ""
322
 
323
+ #: admin/class-pirateforms-admin.php:874
324
+ msgid "Mail Status"
325
+ msgstr ""
326
+
327
+ #: admin/class-pirateforms-admin.php:894
328
+ msgid "Status not captured"
329
+ msgstr ""
330
+
331
+ #: admin/class-pirateforms-admin.php:894
332
+ msgid "Mail sent successfully!"
333
+ msgstr ""
334
+
335
+ #: admin/class-pirateforms-admin.php:894
336
+ msgid "Mail sending failed!"
337
+ msgstr ""
338
+
339
+ #: admin/class-pirateforms-admin.php:933
340
+ msgid "Sent email successfully!"
341
+ msgstr ""
342
+
343
+ #: admin/class-pirateforms-admin.php:933
344
+ msgid "Sent email failed!"
345
+ msgstr ""
346
+
347
  #: admin/partials/pirateforms-settings-display.php:20
348
  #: includes/class-pirateforms-widget.php:18
349
  #: includes/class-pirateforms-widget.php:21
403
  msgid " in the theme's files."
404
  msgstr ""
405
 
406
+ #: admin/partials/pirateforms-settings-display.php:71
407
+ msgid ""
408
+ "If you are using the default (non-SMTP) configuration which uses the WP/PHP "
409
+ "mail, mails might either land in the spam/junk folders or they might get "
410
+ "lost. So, you might not receive the email even if the status against an "
411
+ "entry reads the mail has been sent successfully. If you face this, please "
412
+ "contact your system administrator. If you continue to face this problem, "
413
+ "you can switch to the SMTP configuration to ensure email deliverability."
414
+ msgstr ""
415
+
416
+ #: admin/partials/pirateforms-settings-display.php:76
417
  msgid "Are you enjoying Pirate Forms?"
418
  msgstr ""
419
 
420
+ #: admin/partials/pirateforms-settings-display.php:81
421
  #. translators: link to WordPress.org repo for PirateForms
422
  msgid "Rate our plugin on %1$s WordPress.org %2$s. We'd really appreciate it!"
423
  msgstr ""
424
 
425
+ #: admin/partials/pirateforms-settings-display.php:95
426
  #. translators: link to blog article about contact form plugins
427
  msgid ""
428
  "If you want a more complex Contact Form Plugin please check %1$s this link "
429
  "%2$s."
430
  msgstr ""
431
 
432
+ #: admin/partials/pirateforms-settings-display.php:129
433
  msgid "Save changes"
434
  msgstr ""
435
 
436
+ #: admin/partials/pirateforms-settings-display.php:138
437
+ msgid "Send Test Email"
438
+ msgstr ""
439
+
440
  #: admin/partials/pirateforms-settings-sidebar-subscribe.php:5
441
  msgid "Extend to FULL version"
442
  msgstr ""
443
 
 
444
  #: admin/partials/pirateforms-settings-sidebar-subscribe.php:15
445
+ #: admin/partials/pirateforms-settings-sidebar-subscribe.php:16
446
  msgid "View more features"
447
  msgstr ""
448
 
449
+ #: admin/partials/pirateforms-settings-sidebar-subscribe.php:22
450
  msgid "Get Our Free Email Course"
451
  msgstr ""
452
 
453
+ #: admin/partials/pirateforms-settings-sidebar-subscribe.php:46
454
  msgid ""
455
  "Ready to learn how to reduce your website loading times by half? Come and "
456
  "join the 1st lesson here!"
457
  msgstr ""
458
 
459
+ #: admin/partials/pirateforms-settings-sidebar-subscribe.php:48
460
  msgid ""
461
  "Thank you for subscribing! You have been added to the mailing list and will "
462
  "receive the next email information in the coming weeks. If you ever wish to "
472
  msgid "None"
473
  msgstr ""
474
 
475
+ #: includes/class-pirateforms-widget.php:97
476
  msgid "Title"
477
  msgstr ""
478
 
479
+ #: includes/class-pirateforms-widget.php:98
480
  msgid "Text above form"
481
  msgstr ""
482
 
483
+ #: includes/class-pirateforms-widget.php:101
484
  msgid "Title:"
485
  msgstr ""
486
 
487
+ #: includes/class-pirateforms-widget.php:107
488
  msgid "Subtext:"
489
  msgstr ""
490
 
491
+ #: includes/class-pirateforms-widget.php:112
492
+ msgid ""
493
+ "Need more forms ? Check our <a href=\"%s\" target=\"_blank\">extended</a> "
494
+ "version for more features"
 
 
495
  msgstr ""
496
 
497
+ #: includes/class-pirateforms.php:242
498
+ msgid "Edit Entry"
499
  msgstr ""
500
 
501
+ #: includes/class-pirateforms.php:243
502
+ msgid "View Entry"
503
  msgstr ""
504
 
505
+ #: includes/class-pirateforms.php:244
506
+ msgid "All Entries"
507
  msgstr ""
508
 
509
+ #: includes/class-pirateforms.php:245
510
+ msgid "Search Entries"
511
  msgstr ""
512
 
513
+ #: includes/class-pirateforms.php:246
514
+ msgid "Parent Entries:"
515
  msgstr ""
516
 
517
+ #: includes/class-pirateforms.php:247
518
+ msgid "No entries found."
519
  msgstr ""
520
 
521
+ #: includes/class-pirateforms.php:248
522
+ msgid "No entries found in Trash."
523
  msgstr ""
524
 
525
+ #: includes/class-pirateforms.php:252
526
+ msgid "Entries from Pirate Forms"
527
  msgstr ""
528
 
529
  #: public/class-pirateforms-public.php:330
534
  msgid "Sorry, an error occured."
535
  msgstr ""
536
 
537
+ #: public/class-pirateforms-public.php:484
538
  msgid "Nonce failed!"
539
  msgstr ""
540
 
541
+ #: public/class-pirateforms-public.php:493
542
  msgid "Form submission failed!"
543
  msgstr ""
544
 
545
+ #: public/class-pirateforms-public.php:505
546
  msgid "Contact form submission from"
547
  msgstr ""
548
 
549
+ #: public/class-pirateforms-public.php:516
550
  msgid "Please enter one or more Contact submission recipients"
551
  msgstr ""
552
 
553
+ #: public/class-pirateforms-public.php:531
554
  msgid "IP address: "
555
  msgstr ""
556
 
557
+ #: public/class-pirateforms-public.php:532
558
  msgid "IP search:"
559
  msgstr ""
560
 
561
+ #: public/class-pirateforms-public.php:537
562
  msgid "Came from: "
563
  msgstr ""
564
 
565
+ #: public/class-pirateforms-public.php:541
566
  msgid "Sent from page: "
567
  msgstr ""
568
 
569
+ #: public/class-pirateforms-public.php:733
570
+ #: public/class-pirateforms-public.php:745
571
  msgid "Wrong reCAPTCHA"
572
  msgstr ""
573
 
574
+ #: public/class-pirateforms-public.php:778
575
  msgid "Uploaded file is not allowed for file type"
576
  msgstr ""
577
 
578
+ #: public/class-pirateforms-public.php:786
579
  msgid "Uploaded file is too large"
580
  msgstr ""
581
 
582
+ #: public/class-pirateforms-public.php:802
583
  msgid "There was an unknown error uploading the file."
584
  msgstr ""
585
 
603
  msgid "http://themeisle.com"
604
  msgstr ""
605
 
606
+ #: includes/class-pirateforms.php:238
607
  msgctxt "post type general name"
608
+ msgid "Entries"
609
  msgstr ""
610
 
611
+ #: includes/class-pirateforms.php:239
612
  msgctxt "post type singular name"
613
+ msgid "Entry"
614
  msgstr ""
615
 
616
+ #: includes/class-pirateforms.php:240
617
  msgctxt "admin menu"
618
+ msgid "Entries"
619
  msgstr ""
620
 
621
+ #: includes/class-pirateforms.php:241
622
  msgctxt "add new on admin bar"
623
+ msgid "Entry"
 
 
 
 
 
624
  msgstr ""
pirate-forms.php CHANGED
@@ -16,7 +16,7 @@
16
  * Plugin Name: Free & Simple Contact Form Plugin - Pirateforms
17
  * Plugin URI: http://themeisle.com/plugins/pirate-forms/
18
  * Description: Easily creates a nice looking, simple contact form on your WP site.
19
- * Version: 2.0.5
20
  * Author: Themeisle
21
  * Author URI: http://themeisle.com
22
  * Text Domain: pirate-forms
@@ -35,7 +35,8 @@ if ( ! defined( 'WPINC' ) ) {
35
 
36
  define( 'PIRATEFORMS_NAME', 'Pirate Forms' );
37
  define( 'PIRATEFORMS_SLUG', 'pirate-forms' );
38
- define( 'PIRATE_FORMS_VERSION', '2.0.5' );
 
39
  define( 'PIRATEFORMS_DIR', trailingslashit( plugin_dir_path( __FILE__ ) ) );
40
  define( 'PIRATEFORMS_URL', plugin_dir_url( __FILE__ ) );
41
  define( 'PIRATEFORMS_BASENAME', plugin_basename( __FILE__ ) );
16
  * Plugin Name: Free & Simple Contact Form Plugin - Pirateforms
17
  * Plugin URI: http://themeisle.com/plugins/pirate-forms/
18
  * Description: Easily creates a nice looking, simple contact form on your WP site.
19
+ * Version: 2.1.0
20
  * Author: Themeisle
21
  * Author URI: http://themeisle.com
22
  * Text Domain: pirate-forms
35
 
36
  define( 'PIRATEFORMS_NAME', 'Pirate Forms' );
37
  define( 'PIRATEFORMS_SLUG', 'pirate-forms' );
38
+ define( 'PIRATEFORMS_USELL_LINK', 'https://themeisle.com/plugins/pirate-forms-extended/' );
39
+ define( 'PIRATE_FORMS_VERSION', '2.1.0' );
40
  define( 'PIRATEFORMS_DIR', trailingslashit( plugin_dir_path( __FILE__ ) ) );
41
  define( 'PIRATEFORMS_URL', plugin_dir_url( __FILE__ ) );
42
  define( 'PIRATEFORMS_BASENAME', plugin_basename( __FILE__ ) );
public/class-pirateforms-public.php CHANGED
@@ -230,7 +230,7 @@ class PirateForms_Public {
230
  if ( ! empty( $field ) && ! empty( $label ) ) :
231
  $required = $field === 'req' ? true : false;
232
  $wrap_classes = array(
233
- 'contact_subject_wrap pirate_forms_three_inputs form_field_wrap',
234
  );
235
  // If this field was submitted with invalid data
236
  if ( isset( $_SESSION[ $error_key ]['contact-subject'] ) ) {
@@ -454,6 +454,16 @@ class PirateForms_Public {
454
  * @throws Exception When file uploading fails.
455
  */
456
  public function template_redirect() {
 
 
 
 
 
 
 
 
 
 
457
  do_action( 'themeisle_log_event', PIRATEFORMS_NAME, sprintf( 'POST data = %s', print_r( $_POST, true ) ), 'debug', __FILE__, __LINE__ );
458
 
459
  // If POST and honeypot are not set, beat it
@@ -469,7 +479,7 @@ class PirateForms_Public {
469
  $_SESSION[ $error_key ] = array();
470
 
471
  // If nonce is not valid, beat it
472
- if ( 'yes' === PirateForms_Util::get_option( 'pirateformsopt_nonce' ) ) {
473
  if ( ! wp_verify_nonce( $_POST['wordpress-nonce'], get_bloginfo( 'admin_email' ) . $nonce_append ) ) {
474
  $_SESSION[ $error_key ]['nonce'] = __( 'Nonce failed!', 'pirate-forms' );
475
  do_action( 'themeisle_log_event', PIRATEFORMS_NAME, 'Nonce failed', 'error', __FILE__, __LINE__ );
@@ -485,7 +495,7 @@ class PirateForms_Public {
485
  return false;
486
  }
487
 
488
- $pirate_forms_options = PirateForms_Util::get_form_options( isset( $_POST['pirate_forms_form_id'] ) ? $_POST['pirate_forms_form_id'] : null );
489
 
490
  if ( ! $this->validate_captcha( $error_key, $pirate_forms_options ) ) {
491
  return false;
@@ -586,6 +596,7 @@ class PirateForms_Public {
586
  do_action( 'themeisle_log_event', PIRATEFORMS_NAME, sprintf( 'before sending email to = %s, subject = %s, body = %s, headers = %s, attachments = %s', $site_recipients, $subject, $body, $headers, print_r( $attachments, true ) ), 'debug', __FILE__, __LINE__ );
587
  $response = wp_mail( $site_recipients, $subject, $body, $headers, $attachments );
588
  if ( ! $response ) {
 
589
  error_log( 'Email not sent' );
590
  }
591
  do_action( 'pirate_forms_after_sending', $pirate_forms_options, $response, $pirate_forms_contact_email, $site_recipients, $subject, $body, $headers, $attachments );
@@ -615,10 +626,11 @@ class PirateForms_Public {
615
 
616
  do_action( 'pirate_forms_before_sending_confirm', $pirate_forms_contact_email, $pirate_forms_contact_email, $subject, $confirm_body, $headers );
617
  do_action( 'themeisle_log_event', PIRATEFORMS_NAME, sprintf( 'before sending confirm email to = %s, subject = %s, body = %s, headers = %s', $pirate_forms_contact_email, $subject, $confirm_body, $headers ), 'debug', __FILE__, __LINE__ );
618
- $response = wp_mail( $pirate_forms_contact_email, $subject, $confirm_body, $headers );
619
- do_action( 'pirate_forms_after_sending_confirm', $pirate_forms_options, $response, $pirate_forms_contact_email, $pirate_forms_contact_email, $subject, $confirm_body, $headers );
620
- do_action( 'themeisle_log_event', PIRATEFORMS_NAME, sprintf( 'after sending confirm email response = %s', $response ), 'debug', __FILE__, __LINE__ );
621
  if ( ! $response ) {
 
622
  error_log( 'Confirm email not sent' );
623
  }
624
  }
@@ -638,25 +650,30 @@ class PirateForms_Public {
638
  if ( isset( $pirate_forms_contact_email ) && ! empty( $pirate_forms_contact_email ) ) {
639
  add_post_meta( $new_post_id, 'Contact email', $pirate_forms_contact_email );
640
  }
 
641
  do_action( 'pirate_forms_update_contact', $pirate_forms_options, $new_post_id );
642
  }
643
 
644
- $pirate_forms_current_theme = wp_get_theme();
645
 
646
- /* If a Thank you page is selected, redirect to that page */
647
- if ( $pirate_forms_options['pirateformsopt_thank_you_url'] ) {
648
- $redirect_id = intval( $pirate_forms_options['pirateformsopt_thank_you_url'] );
649
- $redirect = get_permalink( $redirect_id );
650
- if ( ! empty( $redirect ) ) {
 
 
 
 
 
 
 
 
 
 
 
651
  wp_safe_redirect( $redirect );
652
  }
653
- } elseif ( ( 'Zerif Lite' == $pirate_forms_current_theme->name ) || ( 'Zerif Lite' == $pirate_forms_current_theme->parent_theme ) || ( 'Zerif PRO' == $pirate_forms_current_theme->name ) || ( 'Zerif PRO' == $pirate_forms_current_theme->parent_theme ) ) {
654
- // the fragment identifier should always be the last argument, otherwise the thank you message will not show.
655
- $redirect = add_query_arg( array( 'done' => 'done', 'pcf' => '1#contact' ), $_SERVER['HTTP_REFERER'] );
656
- wp_safe_redirect( $redirect );
657
- } elseif ( isset( $_SERVER['HTTP_REFERER'] ) ) {
658
- $redirect = add_query_arg( array( 'done' => 'done' ), $_SERVER['HTTP_REFERER'] );
659
- wp_safe_redirect( $redirect );
660
  }
661
  }
662
  }
@@ -707,7 +724,7 @@ class PirateForms_Public {
707
  function validate_captcha( $error_key, $pirate_forms_options ) {
708
  $pirateformsopt_recaptcha_sitekey = $pirate_forms_options['pirateformsopt_recaptcha_sitekey'];
709
  $pirateformsopt_recaptcha_secretkey = $pirate_forms_options['pirateformsopt_recaptcha_secretkey'];
710
- $pirateformsopt_recaptcha_field = $pirate_forms_options['pirateformsopt_recaptcha_field'];
711
  if ( ! empty( $pirateformsopt_recaptcha_secretkey ) && ! empty( $pirateformsopt_recaptcha_sitekey ) && ! empty( $pirateformsopt_recaptcha_field ) && ( $pirateformsopt_recaptcha_field == 'yes' ) ) :
712
  if ( isset( $_POST['g-recaptcha-response'] ) ) {
713
  $captcha = $_POST['g-recaptcha-response'];
230
  if ( ! empty( $field ) && ! empty( $label ) ) :
231
  $required = $field === 'req' ? true : false;
232
  $wrap_classes = array(
233
+ 'contact_subject_wrap pirate_forms_three_inputs form_field_wrap col-md-12',
234
  );
235
  // If this field was submitted with invalid data
236
  if ( isset( $_SESSION[ $error_key ]['contact-subject'] ) ) {
454
  * @throws Exception When file uploading fails.
455
  */
456
  public function template_redirect() {
457
+ do_action( 'pirate_forms_send_email', false );
458
+ }
459
+
460
+ /**
461
+ * Process the form after submission
462
+ *
463
+ * @since 1.0.0
464
+ * @throws Exception When file uploading fails.
465
+ */
466
+ public function send_email( $test = false ) {
467
  do_action( 'themeisle_log_event', PIRATEFORMS_NAME, sprintf( 'POST data = %s', print_r( $_POST, true ) ), 'debug', __FILE__, __LINE__ );
468
 
469
  // If POST and honeypot are not set, beat it
479
  $_SESSION[ $error_key ] = array();
480
 
481
  // If nonce is not valid, beat it
482
+ if ( ! $test && 'yes' === PirateForms_Util::get_option( 'pirateformsopt_nonce' ) ) {
483
  if ( ! wp_verify_nonce( $_POST['wordpress-nonce'], get_bloginfo( 'admin_email' ) . $nonce_append ) ) {
484
  $_SESSION[ $error_key ]['nonce'] = __( 'Nonce failed!', 'pirate-forms' );
485
  do_action( 'themeisle_log_event', PIRATEFORMS_NAME, 'Nonce failed', 'error', __FILE__, __LINE__ );
495
  return false;
496
  }
497
 
498
+ $pirate_forms_options = PirateForms_Util::get_form_options( isset( $_POST['pirate_forms_form_id'] ) ? $_POST['pirate_forms_form_id'] : null );
499
 
500
  if ( ! $this->validate_captcha( $error_key, $pirate_forms_options ) ) {
501
  return false;
596
  do_action( 'themeisle_log_event', PIRATEFORMS_NAME, sprintf( 'before sending email to = %s, subject = %s, body = %s, headers = %s, attachments = %s', $site_recipients, $subject, $body, $headers, print_r( $attachments, true ) ), 'debug', __FILE__, __LINE__ );
597
  $response = wp_mail( $site_recipients, $subject, $body, $headers, $attachments );
598
  if ( ! $response ) {
599
+ do_action( 'themeisle_log_event', PIRATEFORMS_NAME, 'Email not sent', 'debug', __FILE__, __LINE__ );
600
  error_log( 'Email not sent' );
601
  }
602
  do_action( 'pirate_forms_after_sending', $pirate_forms_options, $response, $pirate_forms_contact_email, $site_recipients, $subject, $body, $headers, $attachments );
626
 
627
  do_action( 'pirate_forms_before_sending_confirm', $pirate_forms_contact_email, $pirate_forms_contact_email, $subject, $confirm_body, $headers );
628
  do_action( 'themeisle_log_event', PIRATEFORMS_NAME, sprintf( 'before sending confirm email to = %s, subject = %s, body = %s, headers = %s', $pirate_forms_contact_email, $subject, $confirm_body, $headers ), 'debug', __FILE__, __LINE__ );
629
+ $response1 = wp_mail( $pirate_forms_contact_email, $subject, $confirm_body, $headers );
630
+ do_action( 'pirate_forms_after_sending_confirm', $pirate_forms_options, $response1, $pirate_forms_contact_email, $pirate_forms_contact_email, $subject, $confirm_body, $headers );
631
+ do_action( 'themeisle_log_event', PIRATEFORMS_NAME, sprintf( 'after sending confirm email response = %s', $response1 ), 'debug', __FILE__, __LINE__ );
632
  if ( ! $response ) {
633
+ do_action( 'themeisle_log_event', PIRATEFORMS_NAME, 'Confirm email not sent', 'debug', __FILE__, __LINE__ );
634
  error_log( 'Confirm email not sent' );
635
  }
636
  }
650
  if ( isset( $pirate_forms_contact_email ) && ! empty( $pirate_forms_contact_email ) ) {
651
  add_post_meta( $new_post_id, 'Contact email', $pirate_forms_contact_email );
652
  }
653
+ add_post_meta( $new_post_id, PIRATEFORMS_SLUG . 'mail-status', $response );
654
  do_action( 'pirate_forms_update_contact', $pirate_forms_options, $new_post_id );
655
  }
656
 
657
+ do_action( 'pirate_forms_after_processing', $response );
658
 
659
+ if ( ! $test ) {
660
+ $pirate_forms_current_theme = wp_get_theme();
661
+
662
+ /* If a Thank you page is selected, redirect to that page */
663
+ if ( $pirate_forms_options['pirateformsopt_thank_you_url'] ) {
664
+ $redirect_id = intval( $pirate_forms_options['pirateformsopt_thank_you_url'] );
665
+ $redirect = get_permalink( $redirect_id );
666
+ if ( ! empty( $redirect ) ) {
667
+ wp_safe_redirect( $redirect );
668
+ }
669
+ } elseif ( ( 'Zerif Lite' == $pirate_forms_current_theme->name ) || ( 'Zerif Lite' == $pirate_forms_current_theme->parent_theme ) || ( 'Zerif PRO' == $pirate_forms_current_theme->name ) || ( 'Zerif PRO' == $pirate_forms_current_theme->parent_theme ) ) {
670
+ // the fragment identifier should always be the last argument, otherwise the thank you message will not show.
671
+ $redirect = add_query_arg( array( 'done' => 'done', 'pcf' => '1#contact' ), $_SERVER['HTTP_REFERER'] );
672
+ wp_safe_redirect( $redirect );
673
+ } elseif ( isset( $_SERVER['HTTP_REFERER'] ) ) {
674
+ $redirect = add_query_arg( array( 'done' => 'done' ), $_SERVER['HTTP_REFERER'] );
675
  wp_safe_redirect( $redirect );
676
  }
 
 
 
 
 
 
 
677
  }
678
  }
679
  }
724
  function validate_captcha( $error_key, $pirate_forms_options ) {
725
  $pirateformsopt_recaptcha_sitekey = $pirate_forms_options['pirateformsopt_recaptcha_sitekey'];
726
  $pirateformsopt_recaptcha_secretkey = $pirate_forms_options['pirateformsopt_recaptcha_secretkey'];
727
+ $pirateformsopt_recaptcha_field = isset( $pirate_forms_options['pirateformsopt_recaptcha_field'] ) ? $pirate_forms_options['pirateformsopt_recaptcha_field'] : '';
728
  if ( ! empty( $pirateformsopt_recaptcha_secretkey ) && ! empty( $pirateformsopt_recaptcha_sitekey ) && ! empty( $pirateformsopt_recaptcha_field ) && ( $pirateformsopt_recaptcha_field == 'yes' ) ) :
729
  if ( isset( $_POST['g-recaptcha-response'] ) ) {
730
  $captcha = $_POST['g-recaptcha-response'];
public/css/front.css CHANGED
@@ -1,5 +1,5 @@
1
  /*
2
- Version: 2.0.5
3
  */
4
  .pirate_forms_wrap .form_field_wrap {
5
  margin-bottom: 20px;
1
  /*
2
+ Version: 2.1.0
3
  */
4
  .pirate_forms_wrap .form_field_wrap {
5
  margin-bottom: 20px;
readme.txt CHANGED
@@ -134,6 +134,14 @@ Activating the Pirate Contact Form plugin is just like any other plugin. If you'
134
  4. Screenshot 4. Enabling SMTP
135
 
136
  == Changelog ==
 
 
 
 
 
 
 
 
137
  = 2.0.5 - 2017-08-16 =
138
 
139
  * Fixed compatibility with the pro version for multiple fields.
134
  4. Screenshot 4. Enabling SMTP
135
 
136
  == Changelog ==
137
+ = 2.1.0 - 2017-08-26 =
138
+
139
+ * Improved compatibility with the pro version.
140
+ * Fixed broken form layout on certain themes.
141
+ * Improved security.
142
+ * Added test email functionality.
143
+
144
+
145
  = 2.0.5 - 2017-08-16 =
146
 
147
  * Fixed compatibility with the pro version for multiple fields.
vendor/autoload.php CHANGED
@@ -4,4 +4,4 @@
4
 
5
  require_once __DIR__ . '/composer' . '/autoload_real.php';
6
 
7
- return ComposerAutoloaderInita335211086c2f06f359bc403030d5102::getLoader();
4
 
5
  require_once __DIR__ . '/composer' . '/autoload_real.php';
6
 
7
+ return ComposerAutoloaderInite35a1e393f73b97115ea07be77a961ef::getLoader();
vendor/autoload_52.php CHANGED
@@ -4,4 +4,4 @@
4
 
5
  require_once dirname(__FILE__) . '/composer'.'/autoload_real_52.php';
6
 
7
- return ComposerAutoloaderInit065b709dff92c3a8af66aa4d36bda067::getLoader();
4
 
5
  require_once dirname(__FILE__) . '/composer'.'/autoload_real_52.php';
6
 
7
+ return ComposerAutoloaderInitdce8f282021a503be44335db805675ee::getLoader();
vendor/codeinwp/themeisle-sdk/class-themeisle-sdk-feedback-deactivate.php CHANGED
@@ -413,7 +413,7 @@ if ( ! class_exists( 'ThemeIsle_SDK_Feedback_Deactivate' ) ) :
413
  $list .= '<li ti-option-id="' . $id . '"><input type="radio" name="ti-deactivate-option" id="' . $key . $id . '"><label for="' . $key . $id . '">' . str_replace( '{theme}', $this->product->get_name(), $title ) . '</label>';
414
  if ( array_key_exists( 'type', $attributes ) ) {
415
  $list .= '<div>';
416
- $placeholder = array_key_exists( 'placeholder', $attributes ) ? __( $attributes['placeholder'] ) : '';
417
  switch ( $attributes['type'] ) {
418
  case 'text':
419
  $list .= '<textarea style="width: 100%" rows="1" name="comments" placeholder="' . $placeholder . '"></textarea>';
@@ -431,11 +431,11 @@ if ( ! class_exists( 'ThemeIsle_SDK_Feedback_Deactivate' ) ) :
431
  . '<ul class="ti-list">' . $list . '</ul>'
432
  . '<div class="actions">'
433
  . get_submit_button(
434
- __( $button_submit_before ), 'secondary', $this->product->get_key() . 'ti-deactivate-yes', false, array(
435
  'data-after-text' => $button_submit,
436
  )
437
  )
438
- . get_submit_button( __( $button_cancel ), 'primary', $this->product->get_key() . 'ti-deactivate-no', false )
439
  . '</div></div>';
440
  }
441
 
413
  $list .= '<li ti-option-id="' . $id . '"><input type="radio" name="ti-deactivate-option" id="' . $key . $id . '"><label for="' . $key . $id . '">' . str_replace( '{theme}', $this->product->get_name(), $title ) . '</label>';
414
  if ( array_key_exists( 'type', $attributes ) ) {
415
  $list .= '<div>';
416
+ $placeholder = array_key_exists( 'placeholder', $attributes ) ? $attributes['placeholder'] : '';
417
  switch ( $attributes['type'] ) {
418
  case 'text':
419
  $list .= '<textarea style="width: 100%" rows="1" name="comments" placeholder="' . $placeholder . '"></textarea>';
431
  . '<ul class="ti-list">' . $list . '</ul>'
432
  . '<div class="actions">'
433
  . get_submit_button(
434
+ $button_submit_before , 'secondary', $this->product->get_key() . 'ti-deactivate-yes', false, array(
435
  'data-after-text' => $button_submit,
436
  )
437
  )
438
+ . get_submit_button( $button_cancel, 'primary', $this->product->get_key() . 'ti-deactivate-no', false )
439
  . '</div></div>';
440
  }
441
 
vendor/codeinwp/themeisle-sdk/class-themeisle-sdk-logger.php CHANGED
@@ -155,12 +155,12 @@ if ( ! class_exists( 'ThemeIsle_SDK_Logger' ) ) :
155
  . '<p>' . $heading . '</p>'
156
  . '<div class="actions">'
157
  . get_submit_button(
158
- __( $button_submit ), 'primary ' . $this->product->get_key() . '-ti-logger', $this->product->get_key() . 'ti-logger-yes', false, array(
159
  'data-ti-log-enable' => 1,
160
  )
161
  )
162
  . get_submit_button(
163
- __( $button_cancel ), 'secondary ' . $this->product->get_key() . '-ti-logger', $this->product->get_key() . 'ti-logger-no', false, array(
164
  'data-ti-log-enable' => 0,
165
  )
166
  )
155
  . '<p>' . $heading . '</p>'
156
  . '<div class="actions">'
157
  . get_submit_button(
158
+ $button_submit, 'primary ' . $this->product->get_key() . '-ti-logger', $this->product->get_key() . 'ti-logger-yes', false, array(
159
  'data-ti-log-enable' => 1,
160
  )
161
  )
162
  . get_submit_button(
163
+ $button_cancel, 'secondary ' . $this->product->get_key() . '-ti-logger', $this->product->get_key() . 'ti-logger-no', false, array(
164
  'data-ti-log-enable' => 0,
165
  )
166
  )
vendor/codeinwp/themeisle-sdk/load.php CHANGED
@@ -11,7 +11,7 @@
11
  */
12
 
13
  // Current SDK version and path.
14
- $themeisle_sdk_version = '1.5.5';
15
  $themeisle_sdk_path = dirname( __FILE__ );
16
 
17
  global $themeisle_sdk_max_version;
11
  */
12
 
13
  // Current SDK version and path.
14
+ $themeisle_sdk_version = '1.5.6';
15
  $themeisle_sdk_path = dirname( __FILE__ );
16
 
17
  global $themeisle_sdk_max_version;
vendor/composer/autoload_real.php CHANGED
@@ -2,7 +2,7 @@
2
 
3
  // autoload_real.php @generated by Composer
4
 
5
- class ComposerAutoloaderInita335211086c2f06f359bc403030d5102
6
  {
7
  private static $loader;
8
 
@@ -19,9 +19,9 @@ class ComposerAutoloaderInita335211086c2f06f359bc403030d5102
19
  return self::$loader;
20
  }
21
 
22
- spl_autoload_register(array('ComposerAutoloaderInita335211086c2f06f359bc403030d5102', 'loadClassLoader'), true, true);
23
  self::$loader = $loader = new \Composer\Autoload\ClassLoader();
24
- spl_autoload_unregister(array('ComposerAutoloaderInita335211086c2f06f359bc403030d5102', 'loadClassLoader'));
25
 
26
  $map = require __DIR__ . '/autoload_namespaces.php';
27
  foreach ($map as $namespace => $path) {
@@ -42,14 +42,14 @@ class ComposerAutoloaderInita335211086c2f06f359bc403030d5102
42
 
43
  $includeFiles = require __DIR__ . '/autoload_files.php';
44
  foreach ($includeFiles as $fileIdentifier => $file) {
45
- composerRequirea335211086c2f06f359bc403030d5102($fileIdentifier, $file);
46
  }
47
 
48
  return $loader;
49
  }
50
  }
51
 
52
- function composerRequirea335211086c2f06f359bc403030d5102($fileIdentifier, $file)
53
  {
54
  if (empty($GLOBALS['__composer_autoload_files'][$fileIdentifier])) {
55
  require $file;
2
 
3
  // autoload_real.php @generated by Composer
4
 
5
+ class ComposerAutoloaderInite35a1e393f73b97115ea07be77a961ef
6
  {
7
  private static $loader;
8
 
19
  return self::$loader;
20
  }
21
 
22
+ spl_autoload_register(array('ComposerAutoloaderInite35a1e393f73b97115ea07be77a961ef', 'loadClassLoader'), true, true);
23
  self::$loader = $loader = new \Composer\Autoload\ClassLoader();
24
+ spl_autoload_unregister(array('ComposerAutoloaderInite35a1e393f73b97115ea07be77a961ef', 'loadClassLoader'));
25
 
26
  $map = require __DIR__ . '/autoload_namespaces.php';
27
  foreach ($map as $namespace => $path) {
42
 
43
  $includeFiles = require __DIR__ . '/autoload_files.php';
44
  foreach ($includeFiles as $fileIdentifier => $file) {
45
+ composerRequiree35a1e393f73b97115ea07be77a961ef($fileIdentifier, $file);
46
  }
47
 
48
  return $loader;
49
  }
50
  }
51
 
52
+ function composerRequiree35a1e393f73b97115ea07be77a961ef($fileIdentifier, $file)
53
  {
54
  if (empty($GLOBALS['__composer_autoload_files'][$fileIdentifier])) {
55
  require $file;
vendor/composer/autoload_real_52.php CHANGED
@@ -2,7 +2,7 @@
2
 
3
  // autoload_real_52.php generated by xrstf/composer-php52
4
 
5
- class ComposerAutoloaderInit065b709dff92c3a8af66aa4d36bda067 {
6
  private static $loader;
7
 
8
  public static function loadClassLoader($class) {
@@ -19,9 +19,9 @@ class ComposerAutoloaderInit065b709dff92c3a8af66aa4d36bda067 {
19
  return self::$loader;
20
  }
21
 
22
- spl_autoload_register(array('ComposerAutoloaderInit065b709dff92c3a8af66aa4d36bda067', 'loadClassLoader'), true /*, true */);
23
  self::$loader = $loader = new xrstf_Composer52_ClassLoader();
24
- spl_autoload_unregister(array('ComposerAutoloaderInit065b709dff92c3a8af66aa4d36bda067', 'loadClassLoader'));
25
 
26
  $vendorDir = dirname(dirname(__FILE__));
27
  $baseDir = dirname($vendorDir);
2
 
3
  // autoload_real_52.php generated by xrstf/composer-php52
4
 
5
+ class ComposerAutoloaderInitdce8f282021a503be44335db805675ee {
6
  private static $loader;
7
 
8
  public static function loadClassLoader($class) {
19
  return self::$loader;
20
  }
21
 
22
+ spl_autoload_register(array('ComposerAutoloaderInitdce8f282021a503be44335db805675ee', 'loadClassLoader'), true /*, true */);
23
  self::$loader = $loader = new xrstf_Composer52_ClassLoader();
24
+ spl_autoload_unregister(array('ComposerAutoloaderInitdce8f282021a503be44335db805675ee', 'loadClassLoader'));
25
 
26
  $vendorDir = dirname(dirname(__FILE__));
27
  $baseDir = dirname($vendorDir);
vendor/composer/installed.json CHANGED
@@ -39,15 +39,15 @@
39
  "source": {
40
  "type": "git",
41
  "url": "git@github.com:Codeinwp/themeisle-sdk.git",
42
- "reference": "f05bd8f0fe4d628424484e2bdd6d20ee65f454ee"
43
  },
44
  "dist": {
45
  "type": "zip",
46
- "url": "https://api.github.com/repos/Codeinwp/themeisle-sdk/zipball/f05bd8f0fe4d628424484e2bdd6d20ee65f454ee",
47
- "reference": "f05bd8f0fe4d628424484e2bdd6d20ee65f454ee",
48
  "shasum": ""
49
  },
50
- "time": "2017-08-08 22:09:54",
51
  "type": "library",
52
  "installation-source": "dist",
53
  "autoload": {
39
  "source": {
40
  "type": "git",
41
  "url": "git@github.com:Codeinwp/themeisle-sdk.git",
42
+ "reference": "1fb829fd268e739864b6f1822239c1112d80853f"
43
  },
44
  "dist": {
45
  "type": "zip",
46
+ "url": "https://api.github.com/repos/Codeinwp/themeisle-sdk/zipball/1fb829fd268e739864b6f1822239c1112d80853f",
47
+ "reference": "1fb829fd268e739864b6f1822239c1112d80853f",
48
  "shasum": ""
49
  },
50
+ "time": "2017-08-22 16:09:34",
51
  "type": "library",
52
  "installation-source": "dist",
53
  "autoload": {