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

Version Description

  • 2017-11-27
Download this release

Release Info

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

Code changes from version 2.2.5 to 2.3.0

CHANGELOG.md CHANGED
@@ -1,4 +1,9 @@
1
 
 
 
 
 
 
2
  ### v2.2.5 - 2017-11-16
3
  **Changes:**
4
  * Adds compatibility with WordPress 4.9
1
 
2
+ ### v2.3.0 - 2017-11-27
3
+ **Changes:**
4
+ * Adds email content wysiwyg editor.
5
+ * Improves layout for custom spam trap.
6
+
7
  ### v2.2.5 - 2017-11-16
8
  **Changes:**
9
  * Adds compatibility with WordPress 4.9
admin/class-pirateforms-admin.php CHANGED
@@ -70,9 +70,9 @@ class PirateForms_Admin {
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
- 'i10n' => array(
76
  'recaptcha' => __( 'Please specify the Site Key and Secret Key.', 'pirate-forms' ),
77
  ),
78
  )
@@ -177,10 +177,51 @@ class PirateForms_Admin {
177
  function settings() {
178
  global $current_user;
179
  $pirate_forms_options = PirateForms_Util::get_option();
180
- $plugin_options = $this->pirate_forms_plugin_options();
181
  include_once PIRATEFORMS_DIR . 'admin/partials/pirateforms-settings-display.php';
182
  }
183
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
184
  /**
185
  *
186
  * OPTIONS
@@ -188,56 +229,25 @@ class PirateForms_Admin {
188
  * @since 1.0.0
189
  * name; id; desc; type; default; options
190
  */
191
- function pirate_forms_plugin_options() {
192
- /**
193
- ********** Default values from Zerif Lite */
194
- $zerif_contactus_sitekey = get_theme_mod( 'zerif_contactus_sitekey' );
195
- if ( ! empty( $zerif_contactus_sitekey ) ) :
196
- $pirate_forms_contactus_sitekey = $zerif_contactus_sitekey;
197
- else :
198
- $pirate_forms_contactus_sitekey = '';
199
- endif;
200
- $zerif_contactus_secretkey = get_theme_mod( 'zerif_contactus_secretkey' );
201
- if ( ! empty( $zerif_contactus_secretkey ) ) :
202
- $pirate_forms_contactus_secretkey = $zerif_contactus_secretkey;
203
- else :
204
- $pirate_forms_contactus_secretkey = '';
205
- endif;
206
- $zerif_contactus_recaptcha_show = get_theme_mod( 'zerif_contactus_recaptcha_show' );
207
- if ( isset( $zerif_contactus_recaptcha_show ) && ( $zerif_contactus_recaptcha_show == '1' ) ) :
208
- $pirate_forms_contactus_recaptcha_show = '';
209
- else :
210
- $pirate_forms_contactus_recaptcha_show = 'custom';
211
- endif;
212
- $zerif_contactus_button_label = get_theme_mod( 'zerif_contactus_button_label', __( 'Send Message', 'pirate-forms' ) );
213
- if ( ! empty( $zerif_contactus_button_label ) ) :
214
- $pirate_forms_contactus_button_label = $zerif_contactus_button_label;
215
- else :
216
- $pirate_forms_contactus_button_label = __( 'Send Message', 'pirate-forms' );
217
- endif;
218
- $zerif_contactus_email = get_theme_mod( 'zerif_contactus_email' );
219
- $zerif_email = get_theme_mod( 'zerif_email' );
220
- $pirate_forms_contactus_email = '';
221
- if ( ! empty( $zerif_contactus_email ) ) :
222
- $pirate_forms_contactus_email = $zerif_contactus_email;
223
- elseif ( ! empty( $zerif_email ) ) :
224
- $pirate_forms_contactus_email = $zerif_email;
225
- else :
226
- $pirate_forms_contactus_email = get_bloginfo( 'admin_email' );
227
- endif;
228
 
229
  // check if akismet is installed
230
  $akismet_status = false;
231
  if ( is_plugin_active( 'akismet/akismet.php' ) ) {
232
- $akismet_key = get_option( 'wordpress_api_key' );
233
  if ( ! empty( $akismet_key ) ) {
234
  $akismet_status = true;
235
  }
236
  }
237
 
238
- $akismet_msg = '';
239
  if ( ! $akismet_status ) {
240
- $akismet_msg = __( 'To use this option, please ensure Akismet is activated with a valid key.', 'pirate-forms' );
241
  }
242
 
243
  // the key(s) will be added to the div as class names
@@ -362,9 +372,9 @@ class PirateForms_Admin {
362
  'options' => PirateForms_Util::get_thank_you_pages(),
363
  ),
364
  array(
365
- 'id' => 'pirateformsopt_akismet',
366
- 'type' => 'checkbox',
367
- 'label' => array(
368
  'value' => __( 'Integrate with Akismet?', 'pirate-forms' ),
369
  'html' => '<span class="dashicons dashicons-editor-help"></span>',
370
  'desc' => array(
@@ -372,12 +382,12 @@ class PirateForms_Admin {
372
  'class' => 'pirate_forms_option_description',
373
  ),
374
  ),
375
- 'value' => PirateForms_Util::get_option( 'pirateformsopt_akismet' ),
376
- 'wrap' => array(
377
  'type' => 'div',
378
  'class' => 'pirate-forms-grouped',
379
  ),
380
- 'options' => array(
381
  'yes' => __( 'Yes', 'pirate-forms' ),
382
  ),
383
  'disabled' => ! empty( $akismet_msg ),
@@ -497,9 +507,9 @@ class PirateForms_Admin {
497
  'class' => 'pirate-forms-grouped',
498
  ),
499
  'options' => array(
500
- '' => __( 'No', 'pirate-forms' ),
501
  'custom' => __( 'Custom', 'pirate-forms' ),
502
- 'yes' => __( 'Google reCAPTCHA', 'pirate-forms' ),
503
  ),
504
  ),
505
  /* Site key */
@@ -514,7 +524,6 @@ class PirateForms_Admin {
514
  'class' => 'pirate_forms_option_description',
515
  ),
516
  ),
517
- 'default' => $pirate_forms_contactus_sitekey,
518
  'value' => PirateForms_Util::get_option( 'pirateformsopt_recaptcha_sitekey' ),
519
  'wrap' => array(
520
  'type' => 'div',
@@ -528,7 +537,6 @@ class PirateForms_Admin {
528
  'label' => array(
529
  'value' => __( 'Secret key', 'pirate-forms' ),
530
  ),
531
- 'default' => $pirate_forms_contactus_secretkey,
532
  'value' => PirateForms_Util::get_option( 'pirateformsopt_recaptcha_secretkey' ),
533
  'wrap' => array(
534
  'type' => 'div',
@@ -538,7 +546,7 @@ class PirateForms_Admin {
538
  )
539
  ),
540
  ),
541
- 'pirate_labels' => array(
542
  'heading' => __( 'Fields Labels', 'pirate-forms' ),
543
  'controls' => apply_filters(
544
  'pirate_forms_admin_controls_for_field_labels', array(
@@ -607,6 +615,25 @@ class PirateForms_Admin {
607
  'class' => 'pirate-forms-grouped',
608
  ),
609
  ),
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
610
  )
611
  ),
612
  ),
@@ -823,7 +850,7 @@ class PirateForms_Admin {
823
  public function settings_init() {
824
  if ( ! PirateForms_Util::get_option() ) {
825
  $new_opt = array();
826
- foreach ( $this->pirate_forms_plugin_options() as $tab => $array ) {
827
  foreach ( $array['controls'] as $controls ) {
828
  $new_opt[ $controls['id'] ] = isset( $controls['default'] ) ? $controls['default'] : '';
829
  }
@@ -937,12 +964,12 @@ class PirateForms_Admin {
937
  public function manage_contact_posts_custom_column( $column, $id ) {
938
  switch ( $column ) {
939
  case 'pf_mailstatus':
940
- $response = get_post_meta( $id, PIRATEFORMS_SLUG . 'mail-status', true );
941
- $failed = $response == 'false';
942
  echo empty( $response ) ? __( 'Status not captured', 'pirate-forms' ) : ( $failed ? __( 'Mail sending failed!', 'pirate-forms' ) : __( 'Mail sent successfully!', 'pirate-forms' ) );
943
 
944
  if ( $failed ) {
945
- $reason = get_post_meta( $id, PIRATEFORMS_SLUG . 'mail-status-reason', true );
946
  if ( ! empty( $reason ) ) {
947
  echo ' (' . $reason . ')';
948
  }
@@ -960,15 +987,15 @@ class PirateForms_Admin {
960
  public function test_email() {
961
  check_ajax_referer( PIRATEFORMS_SLUG, 'security' );
962
  add_filter( 'pirateformpro_get_form_attributes', array( $this, 'test_configuration' ), 999, 2 );
963
- add_action( 'pirate_forms_after_processing', array( $this, 'test_result'), 10, 1 );
964
- add_filter( 'pirate_forms_validate_request', array( $this, 'test_alter_session'), 10, 3 );
965
- $_POST = array(
966
- 'honeypot' => '',
967
- 'pirate_forms_form_id' => isset( $_POST['pirate_forms_form_id'] ) ? $_POST['pirate_forms_form_id'] : '',
968
- 'pirate-forms-contact-name' => 'Test Name',
969
- 'pirate-forms-contact-email' => get_bloginfo( 'admin_email' ),
970
- 'pirate-forms-contact-subject' => 'Test Email',
971
- 'pirate-forms-contact-message' => 'This is a test.',
972
  );
973
  do_action( 'pirate_forms_send_email', true );
974
  }
@@ -978,9 +1005,10 @@ class PirateForms_Admin {
978
  */
979
  public function test_configuration( $options, $id ) {
980
  // disable captcha
981
- $options['pirateformsopt_recaptcha_field'] = 'no';
982
  // disable attachments
983
  $options['pirateformsopt_attachment_field'] = 'no';
 
984
  return $options;
985
  }
986
 
@@ -996,6 +1024,7 @@ class PirateForms_Admin {
996
  */
997
  public function test_alter_session( $body, $error_key, $pirate_forms_options ) {
998
  $_SESSION[ $error_key ] = '';
 
999
  return $body;
1000
  }
1001
  }
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
+ 'i10n' => array(
76
  'recaptcha' => __( 'Please specify the Site Key and Secret Key.', 'pirate-forms' ),
77
  ),
78
  )
177
  function settings() {
178
  global $current_user;
179
  $pirate_forms_options = PirateForms_Util::get_option();
180
+ $plugin_options = $this->get_plugin_options();
181
  include_once PIRATEFORMS_DIR . 'admin/partials/pirateforms-settings-display.php';
182
  }
183
 
184
+ /**
185
+ * Get any options that might be configured through the theme.
186
+ */
187
+ function get_theme_options() {
188
+ $recaptcha_show = '';
189
+ $button_label = __( 'Send Message', 'pirate-forms' );
190
+ $email = get_bloginfo( 'admin_email' );
191
+
192
+ $theme = strtolower( wp_get_theme()->__get( 'name' ) );
193
+
194
+ // Default values from Zerif Lite.
195
+ if ( strpos( $theme, 'zerif' ) === 0 ) {
196
+ $zerif_contactus_recaptcha_show = get_theme_mod( 'zerif_contactus_recaptcha_show' );
197
+ if ( isset( $zerif_contactus_recaptcha_show ) && ( $zerif_contactus_recaptcha_show == '1' ) ) {
198
+ $recaptcha_show = '';
199
+ } else {
200
+ $recaptcha_show = 'custom';
201
+ }
202
+
203
+ $zerif_contactus_button_label = get_theme_mod( 'zerif_contactus_button_label', __( 'Send Message', 'pirate-forms' ) );
204
+ if ( ! empty( $zerif_contactus_button_label ) ) {
205
+ $button_label = $zerif_contactus_button_label;
206
+ }
207
+
208
+ $zerif_contactus_email = get_theme_mod( 'zerif_contactus_email' );
209
+ $zerif_email = get_theme_mod( 'zerif_email' );
210
+ if ( ! empty( $zerif_contactus_email ) ) {
211
+ $email = $zerif_contactus_email;
212
+ } elseif ( ! empty( $zerif_email ) ) {
213
+ $email = $zerif_email;
214
+ }
215
+ }
216
+
217
+ return array(
218
+ $recaptcha_show,
219
+ $button_label,
220
+ $email,
221
+ );
222
+ }
223
+
224
+
225
  /**
226
  *
227
  * OPTIONS
229
  * @since 1.0.0
230
  * name; id; desc; type; default; options
231
  */
232
+ function get_plugin_options() {
233
+ list(
234
+ $pirate_forms_contactus_recaptcha_show,
235
+ $pirate_forms_contactus_button_label,
236
+ $pirate_forms_contactus_email
237
+ ) = $this->get_theme_options();
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
238
 
239
  // check if akismet is installed
240
  $akismet_status = false;
241
  if ( is_plugin_active( 'akismet/akismet.php' ) ) {
242
+ $akismet_key = get_option( 'wordpress_api_key' );
243
  if ( ! empty( $akismet_key ) ) {
244
  $akismet_status = true;
245
  }
246
  }
247
 
248
+ $akismet_msg = '';
249
  if ( ! $akismet_status ) {
250
+ $akismet_msg = __( 'To use this option, please ensure Akismet is activated with a valid key.', 'pirate-forms' );
251
  }
252
 
253
  // the key(s) will be added to the div as class names
372
  'options' => PirateForms_Util::get_thank_you_pages(),
373
  ),
374
  array(
375
+ 'id' => 'pirateformsopt_akismet',
376
+ 'type' => 'checkbox',
377
+ 'label' => array(
378
  'value' => __( 'Integrate with Akismet?', 'pirate-forms' ),
379
  'html' => '<span class="dashicons dashicons-editor-help"></span>',
380
  'desc' => array(
382
  'class' => 'pirate_forms_option_description',
383
  ),
384
  ),
385
+ 'value' => PirateForms_Util::get_option( 'pirateformsopt_akismet' ),
386
+ 'wrap' => array(
387
  'type' => 'div',
388
  'class' => 'pirate-forms-grouped',
389
  ),
390
+ 'options' => array(
391
  'yes' => __( 'Yes', 'pirate-forms' ),
392
  ),
393
  'disabled' => ! empty( $akismet_msg ),
507
  'class' => 'pirate-forms-grouped',
508
  ),
509
  'options' => array(
510
+ '' => __( 'No', 'pirate-forms' ),
511
  'custom' => __( 'Custom', 'pirate-forms' ),
512
+ 'yes' => __( 'Google reCAPTCHA', 'pirate-forms' ),
513
  ),
514
  ),
515
  /* Site key */
524
  'class' => 'pirate_forms_option_description',
525
  ),
526
  ),
 
527
  'value' => PirateForms_Util::get_option( 'pirateformsopt_recaptcha_sitekey' ),
528
  'wrap' => array(
529
  'type' => 'div',
537
  'label' => array(
538
  'value' => __( 'Secret key', 'pirate-forms' ),
539
  ),
 
540
  'value' => PirateForms_Util::get_option( 'pirateformsopt_recaptcha_secretkey' ),
541
  'wrap' => array(
542
  'type' => 'div',
546
  )
547
  ),
548
  ),
549
+ 'pirate_labels pirate_dashicons' => array(
550
  'heading' => __( 'Fields Labels', 'pirate-forms' ),
551
  'controls' => apply_filters(
552
  'pirate_forms_admin_controls_for_field_labels', array(
615
  'class' => 'pirate-forms-grouped',
616
  ),
617
  ),
618
+ array(
619
+ 'id' => 'pirateformsopt_email_content',
620
+ 'type' => 'wysiwyg',
621
+ 'label' => array(
622
+ 'value' => __( 'Email content', 'pirate-forms' ),
623
+ 'html' => '<br/><br/>' . esc_attr( __( 'You can use the next magic tags:', 'pirate-forms' ) ) . '<br/>' . PirateForms_Util::get_magic_tags(),
624
+ ),
625
+ 'default' => PirateForms_Util::get_default_email_content(),
626
+ 'value' => PirateForms_Util::get_option( 'pirateformsopt_email_content' ),
627
+ 'wrap' => array(
628
+ 'type' => 'div',
629
+ 'class' => 'pirate-forms-grouped',
630
+ ),
631
+ 'wysiwyg' => array(
632
+ 'quicktags' => false,
633
+ 'editor_class' => 'pirate-forms-wysiwyg',
634
+ 'editor_height' => 500,
635
+ ),
636
+ ),
637
  )
638
  ),
639
  ),
850
  public function settings_init() {
851
  if ( ! PirateForms_Util::get_option() ) {
852
  $new_opt = array();
853
+ foreach ( $this->get_plugin_options() as $tab => $array ) {
854
  foreach ( $array['controls'] as $controls ) {
855
  $new_opt[ $controls['id'] ] = isset( $controls['default'] ) ? $controls['default'] : '';
856
  }
964
  public function manage_contact_posts_custom_column( $column, $id ) {
965
  switch ( $column ) {
966
  case 'pf_mailstatus':
967
+ $response = get_post_meta( $id, PIRATEFORMS_SLUG . 'mail-status', true );
968
+ $failed = $response == 'false';
969
  echo empty( $response ) ? __( 'Status not captured', 'pirate-forms' ) : ( $failed ? __( 'Mail sending failed!', 'pirate-forms' ) : __( 'Mail sent successfully!', 'pirate-forms' ) );
970
 
971
  if ( $failed ) {
972
+ $reason = get_post_meta( $id, PIRATEFORMS_SLUG . 'mail-status-reason', true );
973
  if ( ! empty( $reason ) ) {
974
  echo ' (' . $reason . ')';
975
  }
987
  public function test_email() {
988
  check_ajax_referer( PIRATEFORMS_SLUG, 'security' );
989
  add_filter( 'pirateformpro_get_form_attributes', array( $this, 'test_configuration' ), 999, 2 );
990
+ add_action( 'pirate_forms_after_processing', array( $this, 'test_result' ), 10, 1 );
991
+ add_filter( 'pirate_forms_validate_request', array( $this, 'test_alter_session' ), 10, 3 );
992
+ $_POST = array(
993
+ 'honeypot' => '',
994
+ 'pirate_forms_form_id' => isset( $_POST['pirate_forms_form_id'] ) ? $_POST['pirate_forms_form_id'] : '',
995
+ 'pirate-forms-contact-name' => 'Test Name',
996
+ 'pirate-forms-contact-email' => get_bloginfo( 'admin_email' ),
997
+ 'pirate-forms-contact-subject' => 'Test Email',
998
+ 'pirate-forms-contact-message' => 'This is a test.',
999
  );
1000
  do_action( 'pirate_forms_send_email', true );
1001
  }
1005
  */
1006
  public function test_configuration( $options, $id ) {
1007
  // disable captcha
1008
+ $options['pirateformsopt_recaptcha_field'] = 'no';
1009
  // disable attachments
1010
  $options['pirateformsopt_attachment_field'] = 'no';
1011
+
1012
  return $options;
1013
  }
1014
 
1024
  */
1025
  public function test_alter_session( $body, $error_key, $pirate_forms_options ) {
1026
  $_SESSION[ $error_key ] = '';
1027
+
1028
  return $body;
1029
  }
1030
  }
admin/css/wp-admin.css CHANGED
@@ -371,4 +371,4 @@ input#save.pirate-forms-save-button {
371
 
372
  .pirate-forms-password-toggle span.dashicons {
373
  cursor: pointer;
374
- }
371
 
372
  .pirate-forms-password-toggle span.dashicons {
373
  cursor: pointer;
374
+ }
admin/js/scripts-admin.js CHANGED
@@ -1,5 +1,6 @@
1
  /* global cwp_top_ajaxload */
2
  /* global console */
 
3
 
4
  jQuery(document).ready(function() {
5
  initAll();
@@ -17,6 +18,7 @@ function initAll(){
17
 
18
  jQuery('.pirate-forms-save-button').click(function (e) {
19
  e.preventDefault();
 
20
  cwpTopUpdateForm();
21
  return false;
22
  });
1
  /* global cwp_top_ajaxload */
2
  /* global console */
3
+ /* global tinyMCE */
4
 
5
  jQuery(document).ready(function() {
6
  initAll();
18
 
19
  jQuery('.pirate-forms-save-button').click(function (e) {
20
  e.preventDefault();
21
+ tinyMCE.triggerSave();
22
  cwpTopUpdateForm();
23
  return false;
24
  });
admin/partials/pirateforms-settings-sidebar-subscribe.php CHANGED
@@ -6,6 +6,9 @@ if ( ! defined( 'PIRATEFORMSPRO_BASEFILE' ) ) :
6
  <ul>
7
  <li>Multiple forms builder</li>
8
  <li>MailChimp integration</li>
 
 
 
9
  <li>Developer friendly</li>
10
  <li>Custom fields</li>
11
  <li>12 months Support & Updates</li>
6
  <ul>
7
  <li>Multiple forms builder</li>
8
  <li>MailChimp integration</li>
9
+ <li>Aweber integration</li>
10
+ <li>GetResponse integration</li>
11
+ <li>Sendinblue integration</li>
12
  <li>Developer friendly</li>
13
  <li>Custom fields</li>
14
  <li>12 months Support & Updates</li>
includes/class-pirateforms-html.php CHANGED
@@ -85,7 +85,7 @@ class PirateForms_HTML {
85
  if ( isset( $args['label']['desc']['class'] ) ) {
86
  $html .= ' class="' . esc_attr( $args['label']['desc']['class'] ) . '"';
87
  }
88
- $html .= '>' . esc_html( $args['label']['desc']['value'] ) . '</div>';
89
  }
90
  $html .= '</label>';
91
  }
@@ -374,4 +374,16 @@ class PirateForms_HTML {
374
  return $this->get_wrap( $args, $html );
375
  }
376
 
 
 
 
 
 
 
 
 
 
 
 
 
377
  }
85
  if ( isset( $args['label']['desc']['class'] ) ) {
86
  $html .= ' class="' . esc_attr( $args['label']['desc']['class'] ) . '"';
87
  }
88
+ $html .= '>' . $args['label']['desc']['value'] . '</div>';
89
  }
90
  $html .= '</label>';
91
  }
374
  return $this->get_wrap( $args, $html );
375
  }
376
 
377
+ /**
378
+ * The WYSIWYG element.
379
+ */
380
+ private function wysiwyg( $args ) {
381
+ $html = $this->get_label( $args );
382
+ $content = isset( $args['value'] ) && ! empty( $args['value'] ) ? $args['value'] : $args['default'];
383
+ ob_start();
384
+ wp_editor( $content, $args['id'], $args['wysiwyg'] );
385
+ $html .= ob_get_clean();
386
+ return $this->get_wrap( $args, $html );
387
+ }
388
+
389
  }
includes/class-pirateforms-phpformbuilder.php CHANGED
@@ -47,9 +47,13 @@ class PirateForms_PhpFormBuilder {
47
  $classes[] = $val['id'] . '-on';
48
  } else {
49
  $element = $html_helper->add( $val, false );
50
- if ( 'form_honeypot' === $val['id'] || in_array( $val['type'], array( 'hidden', 'div' ) ) ) {
 
51
  $form_end .= $element;
52
  }
 
 
 
53
  $this->set_element( $val['id'], $element );
54
  $classes[] = $val['id'] . '-on';
55
  }
47
  $classes[] = $val['id'] . '-on';
48
  } else {
49
  $element = $html_helper->add( $val, false );
50
+ if ( ( 'form_honeypot' === $val['id'] || in_array( $val['type'], array( 'hidden', 'div' ) ) ) && $val['id'] !== 'pirate-forms-maps-custom'
51
+ ) {
52
  $form_end .= $element;
53
  }
54
+ if ( $val['id'] === 'pirate-forms-maps-custom' ) {
55
+ $this->set_element( 'captcha', $element );
56
+ }
57
  $this->set_element( $val['id'], $element );
58
  $classes[] = $val['id'] . '-on';
59
  }
includes/class-pirateforms-util.php CHANGED
@@ -7,6 +7,9 @@
7
  */
8
  class PirateForms_Util {
9
 
 
 
 
10
  /**
11
  * Return the table.
12
  *
@@ -228,4 +231,111 @@ class PirateForms_Util {
228
  unset( $_SESSION[ $error_key ] );
229
  return false;
230
  }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
231
  }
7
  */
8
  class PirateForms_Util {
9
 
10
+ const MAGIC_TAG_PREFIX = '{';
11
+ const MAGIC_TAG_POSTFIX = '}';
12
+
13
  /**
14
  * Return the table.
15
  *
231
  unset( $_SESSION[ $error_key ] );
232
  return false;
233
  }
234
+
235
+ /**
236
+ * The default email content.
237
+ */
238
+ public static function get_default_email_content( $html = true, $id = null ) {
239
+ $body = array();
240
+ $body['heading'] = sprintf( __( 'Contact form submission from %s', 'pirate-forms' ), get_bloginfo( 'name' ) . ' (' . site_url() . ')' );
241
+ $body['body'] = array();
242
+ $pirate_forms_options = PirateForms_Util::get_form_options( $id );
243
+
244
+ $elements = array( 'name', 'email', 'subject', 'message' );
245
+ foreach ( $elements as $k ) {
246
+ $display = $pirate_forms_options[ 'pirateformsopt_' . $k . '_field' ];
247
+ if ( empty( $display ) ) {
248
+ continue;
249
+ }
250
+ $val = $pirate_forms_options[ 'pirateformsopt_label_' . $k ];
251
+ if ( empty( $val ) ) {
252
+ $val = ucwords( $k );
253
+ }
254
+ $body['body'][ $val ] = self::MAGIC_TAG_PREFIX . $k . self::MAGIC_TAG_POSTFIX;
255
+ }
256
+ $body['body'][ __( 'IP address', 'pirate-forms' ) ] = self::MAGIC_TAG_PREFIX . 'ip' . self::MAGIC_TAG_POSTFIX;
257
+ $body['body'][ __( 'IP search', 'pirate-forms' ) ] = 'http://whatismyipaddress.com/ip/' . self::MAGIC_TAG_PREFIX . 'ip' . self::MAGIC_TAG_POSTFIX;
258
+ $body['body'][ __( 'Came from', 'pirate-forms' ) ] = self::MAGIC_TAG_PREFIX . 'referer' . self::MAGIC_TAG_POSTFIX;
259
+ $body['body'][ __( 'Sent from page', 'pirate-forms' ) ] = self::MAGIC_TAG_PREFIX . 'permalink' . self::MAGIC_TAG_POSTFIX;
260
+
261
+ if ( ! empty( $id ) ) {
262
+ $fields = self::get_post_meta( $id, 'custom' );
263
+ if ( $fields ) {
264
+ foreach ( $fields[0] as $custom ) {
265
+ if ( empty( $custom['label'] ) || empty( $custom['display'] ) ) {
266
+ continue;
267
+ }
268
+ // replace . and space with _ (PHP does not like dots in variable names so it automatically converts them to _).
269
+ $field = strtolower( str_replace( array( ' ', '.' ), '_', stripslashes( sanitize_text_field( $custom['label'] ) ) ) );
270
+ $body['body'][ stripslashes( $custom['label'] ) ] = self::MAGIC_TAG_PREFIX . stripslashes( $custom['label'] ) . self::MAGIC_TAG_POSTFIX;
271
+ }
272
+ }
273
+ }
274
+
275
+ if ( $html ) {
276
+ return self::get_table( $body );
277
+ }
278
+
279
+ return $body;
280
+ }
281
+
282
+ /**
283
+ * Replace the magic tags with their values.
284
+ */
285
+ public static function get_magic_tags( $id = null ) {
286
+ $pirate_forms_options = PirateForms_Util::get_form_options( $id );
287
+
288
+ $elements = array( 'name', 'email', 'subject', 'message' );
289
+ foreach ( $elements as $k ) {
290
+ $val = $pirate_forms_options[ 'pirateformsopt_label_' . $k ];
291
+ if ( empty( $val ) ) {
292
+ $val = ucwords( $k );
293
+ }
294
+ $tags[ $k ] = $val;
295
+ }
296
+
297
+ $tags += array(
298
+ 'ip' => __( 'IP address', 'pirate-forms' ),
299
+ 'referer' => __( 'Came from', 'pirate-forms' ),
300
+ 'permalink' => __( 'Sent from page', 'pirate-forms' ),
301
+ );
302
+ if ( ! empty( $id ) ) {
303
+ $fields = self::get_post_meta( $id, 'custom' );
304
+ if ( $fields ) {
305
+ foreach ( $fields[0] as $custom ) {
306
+ if ( empty( $custom['label'] ) ) {
307
+ continue;
308
+ }
309
+ // replace . and space with _ (PHP does not like dots in variable names so it automatically converts them to _).
310
+ $field = strtolower( str_replace( array( ' ', '.' ), '_', stripslashes( sanitize_text_field( $custom['label'] ) ) ) );
311
+ $tags[ $field ] = stripslashes( $custom['label'] );
312
+ }
313
+ }
314
+ }
315
+
316
+ $tags = apply_filters( 'pirate_forms_register_magic_tags', $tags );
317
+ $html = '';
318
+ foreach ( $tags as $k => $v ) {
319
+ $html .= '<b>' . self::MAGIC_TAG_PREFIX . $k . self::MAGIC_TAG_POSTFIX . '</b>: ' . $v . '<br/>';
320
+ }
321
+ return $html;
322
+ }
323
+
324
+ /**
325
+ * Replace the magic tags with their values.
326
+ */
327
+ public static function replace_magic_tags( $content, $body ) {
328
+ $html = $content;
329
+ foreach ( $body['magic_tags'] as $tag => $value ) {
330
+ $html = str_replace( self::MAGIC_TAG_PREFIX . $tag . self::MAGIC_TAG_POSTFIX, $value, $html );
331
+ }
332
+
333
+ $html = apply_filters( 'pirate_forms_replace_magic_tags', $html, $body['magic_tags'] );
334
+
335
+ // any tags that are left, should be replaced with an empty string.
336
+ $html = preg_replace( '/\{.+\}/', '', $html );
337
+
338
+ do_action( 'themeisle_log_event', PIRATEFORMS_NAME, sprintf( 'replace tags in %s with %s to finally give %s', $content, print_r( $body['magic_tags'], true ), $html ), 'debug', __FILE__, __LINE__ );
339
+ return $html;
340
+ }
341
  }
includes/class-pirateforms.php CHANGED
@@ -69,7 +69,7 @@ class PirateForms {
69
  public function __construct() {
70
 
71
  $this->plugin_name = 'pirateforms';
72
- $this->version = '2.2.5';
73
 
74
  $this->load_dependencies();
75
  $this->set_locale();
@@ -129,9 +129,9 @@ class PirateForms {
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.
@@ -277,4 +277,11 @@ class PirateForms {
277
  );
278
  register_post_type( 'pf_contact', $args );
279
  }
 
 
 
 
 
 
 
280
  }
69
  public function __construct() {
70
 
71
  $this->plugin_name = 'pirateforms';
72
+ $this->version = '2.3.0';
73
 
74
  $this->load_dependencies();
75
  $this->set_locale();
129
  */
130
  private function define_common_hooks() {
131
  $this->loader->add_action( 'init', $this, 'register_content_type', 10 );
132
+ $this->loader->add_filter( 'pirate_forms_version_supports', $this, 'version_supports' );
133
  }
134
 
 
135
  /**
136
  * Register all of the hooks related to the admin area functionality
137
  * of the plugin.
277
  );
278
  register_post_type( 'pf_contact', $args );
279
  }
280
+
281
+ /**
282
+ * Return the new features that have been introduced so that the pro plugin can take an action on the basis of that.
283
+ */
284
+ public function version_supports( $null = null ) {
285
+ return array( 'wysiwyg' );
286
+ }
287
  }
languages/pirate-forms.pot CHANGED
@@ -1,665 +1 @@
1
- # Copyright (C) 2017 Themeisle
2
- # This file is distributed under the GPLv2.
3
- msgid ""
4
- msgstr ""
5
- "Project-Id-Version: Free & Simple Contact Form Plugin - Pirateforms 2.2.2\n"
6
- "Report-Msgid-Bugs-To: https://github.com/Codeinwp/pirate-forms/issues\n"
7
- "POT-Creation-Date: 2017-10-23 10:41:06+00:00\n"
8
- "MIME-Version: 1.0\n"
9
- "Content-Type: text/plain; charset=utf-8\n"
10
- "Content-Transfer-Encoding: 8bit\n"
11
- "PO-Revision-Date: 2017-MO-DA HO:MI+ZONE\n"
12
- "Last-Translator: Themeisle Translate Team <friends@themeisle.com>\n"
13
- "Language-Team: Themeisle Translate <friends@themeisle.com>\n"
14
- "X-Generator: grunt-wp-i18n 0.5.4\n"
15
- "X-Poedit-KeywordsList: "
16
- "__;_e;_x:1,2c;_ex:1,2c;_n:1,2;_nx:1,2,4c;_n_noop:1,2;_nx_noop:1,2,3c;esc_"
17
- "attr__;esc_html__;esc_attr_e;esc_html_e;esc_attr_x:1,2c;esc_html_x:1,2c;\n"
18
- "Language: en\n"
19
- "Plural-Forms: nplurals=2; plural=(n != 1);\n"
20
- "X-Poedit-Country: United States\n"
21
- "X-Poedit-SourceCharset: UTF-8\n"
22
- "X-Poedit-Basepath: ../\n"
23
- "X-Poedit-SearchPath-0: .\n"
24
- "X-Poedit-Bookmarks: \n"
25
- "X-Textdomain-Support: yes\n"
26
-
27
- #: admin/class-pirateforms-admin.php:76
28
- msgid "Please specify the Site Key and Secret Key."
29
- msgstr ""
30
-
31
- #: admin/class-pirateforms-admin.php:123 admin/class-pirateforms-admin.php:147
32
- msgid "Settings"
33
- msgstr ""
34
-
35
- #: admin/class-pirateforms-admin.php:154
36
- msgid "More Features"
37
- msgstr ""
38
-
39
- #: admin/class-pirateforms-admin.php:212 admin/class-pirateforms-admin.php:216
40
- msgid "Send Message"
41
- msgstr ""
42
-
43
- #: admin/class-pirateforms-admin.php:240
44
- msgid "To use this option, please ensure Akismet is activated with a valid key."
45
- msgstr ""
46
-
47
- #: admin/class-pirateforms-admin.php:248
48
- msgid "Form processing options"
49
- msgstr ""
50
-
51
- #: admin/class-pirateforms-admin.php:255
52
- msgid "Contact notification email address"
53
- msgstr ""
54
-
55
- #: admin/class-pirateforms-admin.php:258
56
- msgid "Insert [email] to use the contact form submitter's email."
57
- msgstr ""
58
-
59
- #: admin/class-pirateforms-admin.php:258
60
- msgid ""
61
- "The notification email will be sent from this address both to the "
62
- "recipients below and the contact form submitter (if this is activated below "
63
- "in email confirmation, in which case the domain for this email address "
64
- "should match your site's domain)."
65
- msgstr ""
66
-
67
- #: admin/class-pirateforms-admin.php:274
68
- msgid "Contact submission recipients"
69
- msgstr ""
70
-
71
- #: admin/class-pirateforms-admin.php:277
72
- msgid ""
73
- "Email address(es) to receive contact submission notifications. You can "
74
- "separate multiple emails with a comma."
75
- msgstr ""
76
-
77
- #: admin/class-pirateforms-admin.php:293
78
- msgid "Store submissions in the database"
79
- msgstr ""
80
-
81
- #: admin/class-pirateforms-admin.php:296
82
- msgid ""
83
- "Should the submissions be stored in the admin area? If chosen, contact form "
84
- "submissions will be saved under \"All Entries\" on the left (appears after "
85
- "this option is activated)."
86
- msgstr ""
87
-
88
- #: admin/class-pirateforms-admin.php:306 admin/class-pirateforms-admin.php:325
89
- #: admin/class-pirateforms-admin.php:381 admin/class-pirateforms-admin.php:723
90
- #: admin/class-pirateforms-admin.php:766
91
- msgid "Yes"
92
- msgstr ""
93
-
94
- #: admin/class-pirateforms-admin.php:312
95
- msgid "Add a nonce to the contact form:"
96
- msgstr ""
97
-
98
- #: admin/class-pirateforms-admin.php:315
99
- msgid ""
100
- "Should the form use a WordPress nonce? This helps reduce spam by ensuring "
101
- "that the form submittor is on the site when submitting the form rather than "
102
- "submitting remotely. This could, however, cause problems with sites using a "
103
- "page caching plugin. Turn this off if you are getting complaints about "
104
- "forms not being able to be submitted with an error of \"Nonce failed!\""
105
- msgstr ""
106
-
107
- #: admin/class-pirateforms-admin.php:331
108
- msgid "Send email confirmation to form submitter"
109
- msgstr ""
110
-
111
- #: admin/class-pirateforms-admin.php:334
112
- msgid ""
113
- "Adding text here will send an email to the form submitter. The email uses "
114
- "the \"Successful form submission text\" field from the \"Alert Messages\" "
115
- "tab as the subject line. Plain text only here, no HTML."
116
- msgstr ""
117
-
118
- #: admin/class-pirateforms-admin.php:350
119
- msgid "Success Page"
120
- msgstr ""
121
-
122
- #: admin/class-pirateforms-admin.php:353
123
- msgid ""
124
- "Select the page that displays after a successful form submission. The page "
125
- "will be displayed without pausing on the email form, so please be sure to "
126
- "configure a relevant thank you message in this page."
127
- msgstr ""
128
-
129
- #: admin/class-pirateforms-admin.php:368
130
- msgid "Integrate with Akismet?"
131
- msgstr ""
132
-
133
- #: admin/class-pirateforms-admin.php:371
134
- msgid ""
135
- "Checking this option will verify the content of the message with Akismet to "
136
- "check if it's spam. If it is determined to be spam, the message will be "
137
- "blocked. %s"
138
- msgstr ""
139
-
140
- #: admin/class-pirateforms-admin.php:389
141
- #: admin/partials/pirateforms-settings-display.php:31
142
- msgid "Fields Settings"
143
- msgstr ""
144
-
145
- #: admin/class-pirateforms-admin.php:397 admin/class-pirateforms-admin.php:549
146
- msgid "Name"
147
- msgstr ""
148
-
149
- #: admin/class-pirateforms-admin.php:406 admin/class-pirateforms-admin.php:425
150
- #: admin/class-pirateforms-admin.php:444 admin/class-pirateforms-admin.php:463
151
- #: admin/class-pirateforms-admin.php:481
152
- msgid "Do not display"
153
- msgstr ""
154
-
155
- #: admin/class-pirateforms-admin.php:407 admin/class-pirateforms-admin.php:426
156
- #: admin/class-pirateforms-admin.php:445 admin/class-pirateforms-admin.php:464
157
- #: admin/class-pirateforms-admin.php:482
158
- msgid "Display but not required"
159
- msgstr ""
160
-
161
- #: admin/class-pirateforms-admin.php:408 admin/class-pirateforms-admin.php:427
162
- #: admin/class-pirateforms-admin.php:446 admin/class-pirateforms-admin.php:465
163
- #: admin/class-pirateforms-admin.php:483
164
- msgid "Required"
165
- msgstr ""
166
-
167
- #: admin/class-pirateforms-admin.php:416
168
- msgid "Email address"
169
- msgstr ""
170
-
171
- #: admin/class-pirateforms-admin.php:435 admin/class-pirateforms-admin.php:575
172
- #: admin/class-pirateforms-admin.php:577
173
- msgid "Subject"
174
- msgstr ""
175
-
176
- #: admin/class-pirateforms-admin.php:454 admin/class-pirateforms-admin.php:588
177
- msgid "Message"
178
- msgstr ""
179
-
180
- #: admin/class-pirateforms-admin.php:473
181
- #: public/class-pirateforms-public.php:980
182
- msgid "Attachment"
183
- msgstr ""
184
-
185
- #: admin/class-pirateforms-admin.php:491
186
- msgid "Add a spam trap"
187
- msgstr ""
188
-
189
- #: admin/class-pirateforms-admin.php:500 admin/class-pirateforms-admin.php:785
190
- msgid "No"
191
- msgstr ""
192
-
193
- #: admin/class-pirateforms-admin.php:501
194
- msgid "Custom"
195
- msgstr ""
196
-
197
- #: admin/class-pirateforms-admin.php:502
198
- msgid "Google reCAPTCHA"
199
- msgstr ""
200
-
201
- #: admin/class-pirateforms-admin.php:510
202
- msgid "Site key"
203
- msgstr ""
204
-
205
- #: admin/class-pirateforms-admin.php:513
206
- msgid "Create an account here "
207
- msgstr ""
208
-
209
- #: admin/class-pirateforms-admin.php:513
210
- msgid "to get the Site key and the Secret key for the reCaptcha."
211
- msgstr ""
212
-
213
- #: admin/class-pirateforms-admin.php:529
214
- msgid "Secret key"
215
- msgstr ""
216
-
217
- #: admin/class-pirateforms-admin.php:542
218
- #: admin/partials/pirateforms-settings-display.php:34
219
- msgid "Fields Labels"
220
- msgstr ""
221
-
222
- #: admin/class-pirateforms-admin.php:551
223
- msgid "Your Name"
224
- msgstr ""
225
-
226
- #: admin/class-pirateforms-admin.php:562
227
- msgid "Email"
228
- msgstr ""
229
-
230
- #: admin/class-pirateforms-admin.php:564
231
- msgid "Your Email"
232
- msgstr ""
233
-
234
- #: admin/class-pirateforms-admin.php:590
235
- msgid "Your message"
236
- msgstr ""
237
-
238
- #: admin/class-pirateforms-admin.php:601
239
- msgid "Submit button"
240
- msgstr ""
241
-
242
- #: admin/class-pirateforms-admin.php:614
243
- #: admin/partials/pirateforms-settings-display.php:37
244
- msgid "Alert Messages"
245
- msgstr ""
246
-
247
- #: admin/class-pirateforms-admin.php:621
248
- msgid "Name required and missing"
249
- msgstr ""
250
-
251
- #: admin/class-pirateforms-admin.php:623
252
- msgid "Enter your name"
253
- msgstr ""
254
-
255
- #: admin/class-pirateforms-admin.php:634
256
- msgid "E-mail required and missing"
257
- msgstr ""
258
-
259
- #: admin/class-pirateforms-admin.php:636
260
- msgid "Enter valid email"
261
- msgstr ""
262
-
263
- #: admin/class-pirateforms-admin.php:647
264
- msgid "Subject required and missing"
265
- msgstr ""
266
-
267
- #: admin/class-pirateforms-admin.php:649
268
- msgid "Please enter a subject"
269
- msgstr ""
270
-
271
- #: admin/class-pirateforms-admin.php:660
272
- msgid "Question/comment is missing"
273
- msgstr ""
274
-
275
- #: admin/class-pirateforms-admin.php:662
276
- msgid "Enter your question or comment"
277
- msgstr ""
278
-
279
- #: admin/class-pirateforms-admin.php:673
280
- msgid "Attachment is missing"
281
- msgstr ""
282
-
283
- #: admin/class-pirateforms-admin.php:675
284
- msgid "Please add an attachment"
285
- msgstr ""
286
-
287
- #: admin/class-pirateforms-admin.php:686
288
- msgid "Successful form submission text"
289
- msgstr ""
290
-
291
- #: admin/class-pirateforms-admin.php:689
292
- msgid ""
293
- "This text is used on the page if no Success Page is chosen above. This is "
294
- "also used as the confirmation email title, if one is set to send out."
295
- msgstr ""
296
-
297
- #: admin/class-pirateforms-admin.php:693
298
- msgid "Thanks, your email was sent successfully!"
299
- msgstr ""
300
-
301
- #: admin/class-pirateforms-admin.php:704
302
- msgid "SMTP Options"
303
- msgstr ""
304
-
305
- #: admin/class-pirateforms-admin.php:711
306
- msgid "Use SMTP to send emails?"
307
- msgstr ""
308
-
309
- #: admin/class-pirateforms-admin.php:714
310
- msgid "Instead of PHP mail function"
311
- msgstr ""
312
-
313
- #: admin/class-pirateforms-admin.php:729
314
- msgid "SMTP Host"
315
- msgstr ""
316
-
317
- #: admin/class-pirateforms-admin.php:741
318
- msgid "SMTP Port"
319
- msgstr ""
320
-
321
- #: admin/class-pirateforms-admin.php:753
322
- msgid "Use SMTP Authentication?"
323
- msgstr ""
324
-
325
- #: admin/class-pirateforms-admin.php:756 admin/class-pirateforms-admin.php:775
326
- msgid ""
327
- "If you check this box, make sure the SMTP Username and SMTP Password are "
328
- "completed."
329
- msgstr ""
330
-
331
- #: admin/class-pirateforms-admin.php:772
332
- msgid "Security?"
333
- msgstr ""
334
-
335
- #: admin/class-pirateforms-admin.php:786
336
- msgid "SSL"
337
- msgstr ""
338
-
339
- #: admin/class-pirateforms-admin.php:787
340
- msgid "TLS"
341
- msgstr ""
342
-
343
- #: admin/class-pirateforms-admin.php:794
344
- msgid "SMTP Username"
345
- msgstr ""
346
-
347
- #: admin/class-pirateforms-admin.php:806
348
- msgid "SMTP Password"
349
- msgstr ""
350
-
351
- #: admin/class-pirateforms-admin.php:919
352
- msgid "Mail Status"
353
- msgstr ""
354
-
355
- #: admin/class-pirateforms-admin.php:942
356
- msgid "Status not captured"
357
- msgstr ""
358
-
359
- #: admin/class-pirateforms-admin.php:942
360
- msgid "Mail sending failed!"
361
- msgstr ""
362
-
363
- #: admin/class-pirateforms-admin.php:942
364
- msgid "Mail sent successfully!"
365
- msgstr ""
366
-
367
- #: admin/class-pirateforms-admin.php:991
368
- msgid "Sent email successfully!"
369
- msgstr ""
370
-
371
- #: admin/class-pirateforms-admin.php:991
372
- msgid "Sent email failed!"
373
- msgstr ""
374
-
375
- #: admin/partials/pirateforms-settings-display.php:20
376
- #: includes/class-pirateforms-widget.php:18
377
- #: includes/class-pirateforms-widget.php:21
378
- msgid "Pirate Forms"
379
- msgstr ""
380
-
381
- #: admin/partials/pirateforms-settings-display.php:25
382
- msgid "How to use"
383
- msgstr ""
384
-
385
- #: admin/partials/pirateforms-settings-display.php:28
386
- msgid "Options"
387
- msgstr ""
388
-
389
- #: admin/partials/pirateforms-settings-display.php:40
390
- msgid "SMTP"
391
- msgstr ""
392
-
393
- #: admin/partials/pirateforms-settings-display.php:47
394
- msgid "Welcome to Pirate Forms!"
395
- msgstr ""
396
-
397
- #: admin/partials/pirateforms-settings-display.php:48
398
- msgid "To get started, just "
399
- msgstr ""
400
-
401
- #: admin/partials/pirateforms-settings-display.php:49
402
- msgid "configure all the options "
403
- msgstr ""
404
-
405
- #: admin/partials/pirateforms-settings-display.php:49
406
- msgid "you need, hit save and start using the created form."
407
- msgstr ""
408
-
409
- #: admin/partials/pirateforms-settings-display.php:54
410
- msgid "There are 3 ways of using the newly created form:"
411
- msgstr ""
412
-
413
- #: admin/partials/pirateforms-settings-display.php:56
414
- msgid "Add a "
415
- msgstr ""
416
-
417
- #: admin/partials/pirateforms-settings-display.php:57
418
- msgid "widget"
419
- msgstr ""
420
-
421
- #: admin/partials/pirateforms-settings-display.php:59
422
- #: admin/partials/pirateforms-settings-display.php:62
423
- msgid "Use the shortcode "
424
- msgstr ""
425
-
426
- #: admin/partials/pirateforms-settings-display.php:60
427
- msgid " in any page or post."
428
- msgstr ""
429
-
430
- #: admin/partials/pirateforms-settings-display.php:64
431
- msgid " in the theme's files."
432
- msgstr ""
433
-
434
- #: admin/partials/pirateforms-settings-display.php:71
435
- msgid ""
436
- "If you are using the default (non-SMTP) configuration which uses the WP/PHP "
437
- "mail, mails might either land in the spam/junk folders or they might get "
438
- "lost. So, you might not receive the email even if the status against an "
439
- "entry reads the mail has been sent successfully. If you face this, please "
440
- "contact your system administrator. If you continue to face this problem, "
441
- "you can switch to the SMTP configuration to ensure email deliverability."
442
- msgstr ""
443
-
444
- #: admin/partials/pirateforms-settings-display.php:76
445
- msgid "Are you enjoying Pirate Forms?"
446
- msgstr ""
447
-
448
- #: admin/partials/pirateforms-settings-display.php:81
449
- #. translators: link to WordPress.org repo for PirateForms
450
- msgid "Rate our plugin on %1$s WordPress.org %2$s. We'd really appreciate it!"
451
- msgstr ""
452
-
453
- #: admin/partials/pirateforms-settings-display.php:95
454
- #. translators: link to blog article about contact form plugins
455
- msgid ""
456
- "If you want a more complex Contact Form Plugin please check %1$s this link "
457
- "%2$s."
458
- msgstr ""
459
-
460
- #: admin/partials/pirateforms-settings-display.php:129
461
- msgid "Save changes"
462
- msgstr ""
463
-
464
- #: admin/partials/pirateforms-settings-display.php:138
465
- msgid "Send Test Email"
466
- msgstr ""
467
-
468
- #: admin/partials/pirateforms-settings-sidebar-subscribe.php:5
469
- msgid "Extend to FULL version"
470
- msgstr ""
471
-
472
- #: admin/partials/pirateforms-settings-sidebar-subscribe.php:15
473
- #: admin/partials/pirateforms-settings-sidebar-subscribe.php:16
474
- msgid "View more features"
475
- msgstr ""
476
-
477
- #: admin/partials/pirateforms-settings-sidebar-subscribe.php:22
478
- msgid "Get Our Free Email Course"
479
- msgstr ""
480
-
481
- #: admin/partials/pirateforms-settings-sidebar-subscribe.php:46
482
- msgid ""
483
- "Ready to learn how to reduce your website loading times by half? Come and "
484
- "join the 1st lesson here!"
485
- msgstr ""
486
-
487
- #: admin/partials/pirateforms-settings-sidebar-subscribe.php:48
488
- msgid ""
489
- "Thank you for subscribing! You have been added to the mailing list and will "
490
- "receive the next email information in the coming weeks. If you ever wish to "
491
- "unsubscribe, simply use the \"Unsubscribe\" link included in each "
492
- "newsletter."
493
- msgstr ""
494
-
495
- #: includes/class-pirateforms-html.php:183
496
- msgid "Upload file"
497
- msgstr ""
498
-
499
- #: includes/class-pirateforms-util.php:150
500
- msgid "Form submission blocked!"
501
- msgstr ""
502
-
503
- #: includes/class-pirateforms-util.php:166
504
- msgid "None"
505
- msgstr ""
506
-
507
- #: includes/class-pirateforms-widget.php:97
508
- msgid "Title"
509
- msgstr ""
510
-
511
- #: includes/class-pirateforms-widget.php:98
512
- msgid "Text above form"
513
- msgstr ""
514
-
515
- #: includes/class-pirateforms-widget.php:101
516
- msgid "Title:"
517
- msgstr ""
518
-
519
- #: includes/class-pirateforms-widget.php:107
520
- msgid "Subtext:"
521
- msgstr ""
522
-
523
- #: includes/class-pirateforms-widget.php:112
524
- msgid ""
525
- "Need more forms ? Check our <a href=\"%s\" target=\"_blank\">extended</a> "
526
- "version for more features"
527
- msgstr ""
528
-
529
- #: includes/class-pirateforms.php:251
530
- msgid "Edit Entry"
531
- msgstr ""
532
-
533
- #: includes/class-pirateforms.php:252
534
- msgid "View Entry"
535
- msgstr ""
536
-
537
- #: includes/class-pirateforms.php:253
538
- msgid "All Entries"
539
- msgstr ""
540
-
541
- #: includes/class-pirateforms.php:254
542
- msgid "Search Entries"
543
- msgstr ""
544
-
545
- #: includes/class-pirateforms.php:255
546
- msgid "Parent Entries:"
547
- msgstr ""
548
-
549
- #: includes/class-pirateforms.php:256
550
- msgid "No entries found."
551
- msgstr ""
552
-
553
- #: includes/class-pirateforms.php:257
554
- msgid "No entries found in Trash."
555
- msgstr ""
556
-
557
- #: includes/class-pirateforms.php:261
558
- msgid "Entries from Pirate Forms"
559
- msgstr ""
560
-
561
- #: public/class-pirateforms-public.php:104
562
- msgid "I'm human!"
563
- msgstr ""
564
-
565
- #: public/class-pirateforms-public.php:358
566
- msgid "Submit"
567
- msgstr ""
568
-
569
- #: public/class-pirateforms-public.php:458
570
- msgid "Sorry, an error occured."
571
- msgstr ""
572
-
573
- #: public/class-pirateforms-public.php:520
574
- msgid "Nonce failed!"
575
- msgstr ""
576
-
577
- #: public/class-pirateforms-public.php:528
578
- #: public/class-pirateforms-public.php:585
579
- msgid "Form submission failed!"
580
- msgstr ""
581
-
582
- #: public/class-pirateforms-public.php:541
583
- msgid "Contact form submission from %s"
584
- msgstr ""
585
-
586
- #: public/class-pirateforms-public.php:550
587
- msgid "Please enter one or more Contact submission recipients"
588
- msgstr ""
589
-
590
- #: public/class-pirateforms-public.php:565
591
- msgid "IP address"
592
- msgstr ""
593
-
594
- #: public/class-pirateforms-public.php:566
595
- msgid "IP search"
596
- msgstr ""
597
-
598
- #: public/class-pirateforms-public.php:571
599
- msgid "Came from"
600
- msgstr ""
601
-
602
- #: public/class-pirateforms-public.php:575
603
- msgid "Sent from page"
604
- msgstr ""
605
-
606
- #: public/class-pirateforms-public.php:793
607
- #: public/class-pirateforms-public.php:805
608
- msgid "Wrong reCAPTCHA"
609
- msgstr ""
610
-
611
- #: public/class-pirateforms-public.php:814
612
- msgid "Submission blocked!"
613
- msgstr ""
614
-
615
- #: public/class-pirateforms-public.php:942
616
- msgid "Uploaded file type is not allowed for %s"
617
- msgstr ""
618
-
619
- #: public/class-pirateforms-public.php:950
620
- msgid "Uploaded file is too large %s"
621
- msgstr ""
622
-
623
- #: public/class-pirateforms-public.php:964
624
- msgid "There was an unknown error uploading the file %s"
625
- msgstr ""
626
-
627
- #. Plugin Name of the plugin/theme
628
- msgid "Free & Simple Contact Form Plugin - Pirateforms"
629
- msgstr ""
630
-
631
- #. Plugin URI of the plugin/theme
632
- msgid "http://themeisle.com/plugins/pirate-forms/"
633
- msgstr ""
634
-
635
- #. Description of the plugin/theme
636
- msgid "Easily creates a nice looking, simple contact form on your WP site."
637
- msgstr ""
638
-
639
- #. Author of the plugin/theme
640
- msgid "Themeisle"
641
- msgstr ""
642
-
643
- #. Author URI of the plugin/theme
644
- msgid "http://themeisle.com"
645
- msgstr ""
646
-
647
- #: includes/class-pirateforms.php:247
648
- msgctxt "post type general name"
649
- msgid "Entries"
650
- msgstr ""
651
-
652
- #: includes/class-pirateforms.php:248
653
- msgctxt "post type singular name"
654
- msgid "Entry"
655
- msgstr ""
656
-
657
- #: includes/class-pirateforms.php:249
658
- msgctxt "admin menu"
659
- msgid "Entries"
660
- msgstr ""
661
-
662
- #: includes/class-pirateforms.php:250
663
- msgctxt "add new on admin bar"
664
- msgid "Entry"
665
- msgstr ""
1
+
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
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.2.5
20
  * Author: Themeisle
21
  * Author URI: http://themeisle.com
22
  * Text Domain: pirate-forms
@@ -36,7 +36,7 @@ if ( ! defined( 'WPINC' ) ) {
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.2.5' );
40
  define( 'PIRATEFORMS_DIR', trailingslashit( plugin_dir_path( __FILE__ ) ) );
41
  define( 'PIRATEFORMS_URL', plugin_dir_url( __FILE__ ) );
42
  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.3.0
20
  * Author: Themeisle
21
  * Author URI: http://themeisle.com
22
  * Text Domain: pirate-forms
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.3.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
@@ -377,7 +377,7 @@ class PirateForms_Public {
377
  if ( ! empty( $_SERVER['HTTP_REFERER'] ) ) {
378
  $elements[] = array(
379
  'type' => 'hidden',
380
- 'id' => 'contact-referrer',
381
  'value' => $_SERVER['HTTP_REFERER'],
382
  );
383
  }
@@ -544,6 +544,9 @@ class PirateForms_Public {
544
  $body = array();
545
  $body['heading'] = sprintf( __( 'Contact form submission from %s', 'pirate-forms' ), get_bloginfo( 'name' ) . ' (' . site_url() . ')' );
546
  $body['body'] = array();
 
 
 
547
 
548
  list( $pirate_forms_contact_email, $pirate_forms_contact_name, $pirate_forms_contact_subject, $msg ) = $this->validate_request( $error_key, $pirate_forms_options, $body );
549
 
@@ -568,15 +571,20 @@ class PirateForms_Public {
568
  if ( ! empty( $contact_ip ) ) {
569
  $body['body'][ __( 'IP address', 'pirate-forms' ) ] = $contact_ip;
570
  $body['body'][ __( 'IP search', 'pirate-forms' ) ] = "http://whatismyipaddress.com/ip/$contact_ip";
 
571
  }
572
 
573
  // Sanitize and prepare referrer;
574
  if ( ! empty( $_POST['pirate-forms-contact-referrer'] ) ) {
575
- $body['body'][ __( 'Came from', 'pirate-forms' ) ] = sanitize_text_field( $_POST['pirate-forms-contact-referrer'] );
 
 
576
  }
577
 
578
  // Show the page this contact form was submitted on
579
- $body['body'][ __( 'Sent from page', 'pirate-forms' ) ] = get_permalink( get_the_id() );
 
 
580
 
581
  // Check the blacklist
582
  $blocked = PirateForms_Util::is_blacklisted( $error_key, $pirate_forms_contact_email, $contact_ip );
@@ -636,10 +644,8 @@ class PirateForms_Public {
636
  $subject = $pirate_forms_contact_subject;
637
  }
638
 
639
- $mail_body = apply_filters( 'pirate_forms_get_mail_body', $body );
640
- if ( is_array( $mail_body ) ) {
641
- $mail_body = PirateForms_Util::get_table( $mail_body );
642
- }
643
 
644
  do_action( 'pirate_forms_before_sending', $pirate_forms_contact_email, $site_recipients, $subject, $mail_body, $headers, $attachments );
645
  do_action( 'themeisle_log_event', PIRATEFORMS_NAME, sprintf( 'before sending email to = %s, subject = %s, body = %s, headers = %s, attachments = %s', $site_recipients, $subject, $mail_body, $headers, print_r( $attachments, true ) ), 'debug', __FILE__, __LINE__ );
@@ -839,6 +845,7 @@ class PirateForms_Public {
839
 
840
  foreach ( $fields as $field ) {
841
  $value = isset( $_POST[ 'pirate-forms-contact-' . $field ] ) ? sanitize_text_field( trim( $_POST[ 'pirate-forms-contact-' . $field ] ) ) : '';
 
842
  if ( 'req' === $pirate_forms_options[ 'pirateformsopt_' . $field . '_field' ] && empty( $value ) ) {
843
  $_SESSION[ $error_key ][ 'pirate-forms-contact-' . $field ] = $pirate_forms_options[ 'pirateformsopt_label_err_' . $field ];
844
  } elseif ( ! empty( $value ) ) {
@@ -982,6 +989,7 @@ class PirateForms_Public {
982
  $files[] = basename( $file );
983
  }
984
  $body['body'][ __( 'Attachment', 'pirate-forms' ) ] = implode( ',', $files );
 
985
  }
986
  do_action( 'themeisle_log_event', PIRATEFORMS_NAME, sprintf( 'finally attaching attachment(s): %s', print_r( $attachments, true ) ), 'info', __FILE__, __LINE__ );
987
 
377
  if ( ! empty( $_SERVER['HTTP_REFERER'] ) ) {
378
  $elements[] = array(
379
  'type' => 'hidden',
380
+ 'id' => 'pirate-forms-contact-referrer',
381
  'value' => $_SERVER['HTTP_REFERER'],
382
  );
383
  }
544
  $body = array();
545
  $body['heading'] = sprintf( __( 'Contact form submission from %s', 'pirate-forms' ), get_bloginfo( 'name' ) . ' (' . site_url() . ')' );
546
  $body['body'] = array();
547
+ // lets collect the values for ALL potential magic tags in the form $tag_name => $tag_value e.g. 'name' => 'some name'.
548
+ // the tag name should be without the curly braces.
549
+ $body['magic_tags'] = array();
550
 
551
  list( $pirate_forms_contact_email, $pirate_forms_contact_name, $pirate_forms_contact_subject, $msg ) = $this->validate_request( $error_key, $pirate_forms_options, $body );
552
 
571
  if ( ! empty( $contact_ip ) ) {
572
  $body['body'][ __( 'IP address', 'pirate-forms' ) ] = $contact_ip;
573
  $body['body'][ __( 'IP search', 'pirate-forms' ) ] = "http://whatismyipaddress.com/ip/$contact_ip";
574
+ $body['magic_tags'] += array( 'ip' => $contact_ip );
575
  }
576
 
577
  // Sanitize and prepare referrer;
578
  if ( ! empty( $_POST['pirate-forms-contact-referrer'] ) ) {
579
+ $page = sanitize_text_field( $_POST['pirate-forms-contact-referrer'] );
580
+ $body['body'][ __( 'Came from', 'pirate-forms' ) ] = $page;
581
+ $body['magic_tags'] += array( 'referer' => $page );
582
  }
583
 
584
  // Show the page this contact form was submitted on
585
+ $permalink = get_permalink( get_the_id() );
586
+ $body['body'][ __( 'Sent from page', 'pirate-forms' ) ] = $permalink;
587
+ $body['magic_tags'] += array( 'permalink' => $permalink );
588
 
589
  // Check the blacklist
590
  $blocked = PirateForms_Util::is_blacklisted( $error_key, $pirate_forms_contact_email, $contact_ip );
644
  $subject = $pirate_forms_contact_subject;
645
  }
646
 
647
+ $mail_body = ! empty( $pirate_forms_options['pirateformsopt_email_content'] ) ? $pirate_forms_options['pirateformsopt_email_content'] : PirateForms_Util::get_default_email_content( true, $form_id );
648
+ $mail_body = PirateForms_Util::replace_magic_tags( $mail_body, $body );
 
 
649
 
650
  do_action( 'pirate_forms_before_sending', $pirate_forms_contact_email, $site_recipients, $subject, $mail_body, $headers, $attachments );
651
  do_action( 'themeisle_log_event', PIRATEFORMS_NAME, sprintf( 'before sending email to = %s, subject = %s, body = %s, headers = %s, attachments = %s', $site_recipients, $subject, $mail_body, $headers, print_r( $attachments, true ) ), 'debug', __FILE__, __LINE__ );
845
 
846
  foreach ( $fields as $field ) {
847
  $value = isset( $_POST[ 'pirate-forms-contact-' . $field ] ) ? sanitize_text_field( trim( $_POST[ 'pirate-forms-contact-' . $field ] ) ) : '';
848
+ $body['magic_tags'] += array( $field => $value );
849
  if ( 'req' === $pirate_forms_options[ 'pirateformsopt_' . $field . '_field' ] && empty( $value ) ) {
850
  $_SESSION[ $error_key ][ 'pirate-forms-contact-' . $field ] = $pirate_forms_options[ 'pirateformsopt_label_err_' . $field ];
851
  } elseif ( ! empty( $value ) ) {
989
  $files[] = basename( $file );
990
  }
991
  $body['body'][ __( 'Attachment', 'pirate-forms' ) ] = implode( ',', $files );
992
+ $body['magic_tags'] += array( 'attachments' => implode( ',', $files ) );
993
  }
994
  do_action( 'themeisle_log_event', PIRATEFORMS_NAME, sprintf( 'finally attaching attachment(s): %s', print_r( $attachments, true ) ), 'info', __FILE__, __LINE__ );
995
 
public/css/front.css CHANGED
@@ -1,12 +1,11 @@
1
  /*
2
- Version: 2.2.5
3
  */
4
  .pirate_forms_wrap .form_field_wrap {
5
  margin-bottom: 20px;
6
  }
7
 
8
  .pirate_forms_wrap {
9
- float: left;
10
  width: 100%;
11
  }
12
 
@@ -90,3 +89,7 @@ Version: 2.2.5
90
  -webkit-transition: all 0.2s ease-in;
91
  transition: all 0.2s ease-in;
92
  }
 
 
 
 
1
  /*
2
+ Version: 2.3.0
3
  */
4
  .pirate_forms_wrap .form_field_wrap {
5
  margin-bottom: 20px;
6
  }
7
 
8
  .pirate_forms_wrap {
 
9
  width: 100%;
10
  }
11
 
89
  -webkit-transition: all 0.2s ease-in;
90
  transition: all 0.2s ease-in;
91
  }
92
+
93
+ .pirate-forms-maps-custom span {
94
+ margin-left: 5px;
95
+ }
public/js/scripts-general.js CHANGED
@@ -12,7 +12,7 @@ jQuery(document).ready(function() {
12
  }
13
 
14
  if(jQuery('.pirate-forms-maps-custom').length > 0){
15
- jQuery('.pirate-forms-maps-custom').html(jQuery('<input name="xobkcehc" type="' + 'xobkcehc'.split('').reverse().join('') + '" value="' + pirateFormsObject.spam.value + '"><span>' + pirateFormsObject.spam.label + '</span>'));
16
  }
17
 
18
  });
12
  }
13
 
14
  if(jQuery('.pirate-forms-maps-custom').length > 0){
15
+ jQuery('.pirate-forms-maps-custom').html(jQuery('<input id="xobkcehc" name="xobkcehc" type="' + 'xobkcehc'.split('').reverse().join('') + '" value="' + pirateFormsObject.spam.value + '"><label for="xobkcehc"><span>' + pirateFormsObject.spam.label + '</span></label>'));
16
  }
17
 
18
  });
readme.md CHANGED
@@ -17,7 +17,7 @@ This is an easy-to-use WordPress contact form with captcha plugin. To create a c
17
  > **Time-saving features available in the FULL version:**
18
  >
19
  > * Create multiple forms
20
- > * Mailchimp Integration
21
  > * Custom fields
22
  > * Developer friendly
23
  > * 12 months Support & Updates
@@ -177,6 +177,12 @@ Activating the Pirate Contact Form plugin is just like any other plugin. If you'
177
  4. Screenshot 4. Enabling SMTP
178
 
179
  ## Changelog ##
 
 
 
 
 
 
180
  ### 2.2.5 - 2017-11-16 ###
181
 
182
  * Adds compatibility with WordPress 4.9
17
  > **Time-saving features available in the FULL version:**
18
  >
19
  > * Create multiple forms
20
+ > * Mailchimp, GetResponse, Aweber, Sendinblue Integration
21
  > * Custom fields
22
  > * Developer friendly
23
  > * 12 months Support & Updates
177
  4. Screenshot 4. Enabling SMTP
178
 
179
  ## Changelog ##
180
+ ### 2.3.0 - 2017-11-27 ###
181
+
182
+ * Adds email content wysiwyg editor.
183
+ * Improves layout for custom spam trap.
184
+
185
+
186
  ### 2.2.5 - 2017-11-16 ###
187
 
188
  * Adds compatibility with WordPress 4.9
readme.txt CHANGED
@@ -17,7 +17,7 @@ This is an easy-to-use WordPress contact form with captcha plugin. To create a c
17
  > **Time-saving features available in the FULL version:**
18
  >
19
  > * Create multiple forms
20
- > * Mailchimp Integration
21
  > * Custom fields
22
  > * Developer friendly
23
  > * 12 months Support & Updates
@@ -177,6 +177,12 @@ Activating the Pirate Contact Form plugin is just like any other plugin. If you'
177
  4. Screenshot 4. Enabling SMTP
178
 
179
  == Changelog ==
 
 
 
 
 
 
180
  = 2.2.5 - 2017-11-16 =
181
 
182
  * Adds compatibility with WordPress 4.9
17
  > **Time-saving features available in the FULL version:**
18
  >
19
  > * Create multiple forms
20
+ > * Mailchimp, GetResponse, Aweber, Sendinblue Integration
21
  > * Custom fields
22
  > * Developer friendly
23
  > * 12 months Support & Updates
177
  4. Screenshot 4. Enabling SMTP
178
 
179
  == Changelog ==
180
+ = 2.3.0 - 2017-11-27 =
181
+
182
+ * Adds email content wysiwyg editor.
183
+ * Improves layout for custom spam trap.
184
+
185
+
186
  = 2.2.5 - 2017-11-16 =
187
 
188
  * Adds compatibility with WordPress 4.9
vendor/autoload.php CHANGED
@@ -4,4 +4,4 @@
4
 
5
  require_once __DIR__ . '/composer' . '/autoload_real.php';
6
 
7
- return ComposerAutoloaderInitc4666d619a322e30a8cedaeeab73973a::getLoader();
4
 
5
  require_once __DIR__ . '/composer' . '/autoload_real.php';
6
 
7
+ return ComposerAutoloaderInitee8868fb85498203ce6a1cdc3be4909f::getLoader();
vendor/autoload_52.php CHANGED
@@ -4,4 +4,4 @@
4
 
5
  require_once dirname(__FILE__) . '/composer'.'/autoload_real_52.php';
6
 
7
- return ComposerAutoloaderInit763a6d75da00247e856f61391a569b7e::getLoader();
4
 
5
  require_once dirname(__FILE__) . '/composer'.'/autoload_real_52.php';
6
 
7
+ return ComposerAutoloaderInit30e0d35d9f2c7d783fb1a973f446e13b::getLoader();
vendor/codeinwp/themeisle-sdk/class-themeisle-sdk-product.php CHANGED
@@ -60,7 +60,7 @@ if ( ! class_exists( 'ThemeIsle_SDK_Product' ) ) :
60
  /**
61
  * @var array $allowed_authors The allowed authors.
62
  */
63
- private $allowed_authors = array( 'proteusthemes.com', 'anarieldesign.com', 'prothemedesign.com' );
64
  /**
65
  * @var bool $requires_license Either user needs to activate it with license.
66
  */
60
  /**
61
  * @var array $allowed_authors The allowed authors.
62
  */
63
+ private $allowed_authors = array( 'proteusthemes.com', 'anarieldesign.com', 'prothemedesign.com', 'cssigniter.com' );
64
  /**
65
  * @var bool $requires_license Either user needs to activate it with license.
66
  */
vendor/codeinwp/themeisle-sdk/load.php CHANGED
@@ -11,7 +11,7 @@
11
  */
12
 
13
  // Current SDK version and path.
14
- $themeisle_sdk_version = '1.9.1';
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.9.2';
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 ComposerAutoloaderInitc4666d619a322e30a8cedaeeab73973a
6
  {
7
  private static $loader;
8
 
@@ -19,9 +19,9 @@ class ComposerAutoloaderInitc4666d619a322e30a8cedaeeab73973a
19
  return self::$loader;
20
  }
21
 
22
- spl_autoload_register(array('ComposerAutoloaderInitc4666d619a322e30a8cedaeeab73973a', 'loadClassLoader'), true, true);
23
  self::$loader = $loader = new \Composer\Autoload\ClassLoader();
24
- spl_autoload_unregister(array('ComposerAutoloaderInitc4666d619a322e30a8cedaeeab73973a', 'loadClassLoader'));
25
 
26
  $map = require __DIR__ . '/autoload_namespaces.php';
27
  foreach ($map as $namespace => $path) {
@@ -42,14 +42,14 @@ class ComposerAutoloaderInitc4666d619a322e30a8cedaeeab73973a
42
 
43
  $includeFiles = require __DIR__ . '/autoload_files.php';
44
  foreach ($includeFiles as $fileIdentifier => $file) {
45
- composerRequirec4666d619a322e30a8cedaeeab73973a($fileIdentifier, $file);
46
  }
47
 
48
  return $loader;
49
  }
50
  }
51
 
52
- function composerRequirec4666d619a322e30a8cedaeeab73973a($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 ComposerAutoloaderInitee8868fb85498203ce6a1cdc3be4909f
6
  {
7
  private static $loader;
8
 
19
  return self::$loader;
20
  }
21
 
22
+ spl_autoload_register(array('ComposerAutoloaderInitee8868fb85498203ce6a1cdc3be4909f', 'loadClassLoader'), true, true);
23
  self::$loader = $loader = new \Composer\Autoload\ClassLoader();
24
+ spl_autoload_unregister(array('ComposerAutoloaderInitee8868fb85498203ce6a1cdc3be4909f', '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
+ composerRequireee8868fb85498203ce6a1cdc3be4909f($fileIdentifier, $file);
46
  }
47
 
48
  return $loader;
49
  }
50
  }
51
 
52
+ function composerRequireee8868fb85498203ce6a1cdc3be4909f($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 ComposerAutoloaderInit763a6d75da00247e856f61391a569b7e {
6
  private static $loader;
7
 
8
  public static function loadClassLoader($class) {
@@ -19,9 +19,9 @@ class ComposerAutoloaderInit763a6d75da00247e856f61391a569b7e {
19
  return self::$loader;
20
  }
21
 
22
- spl_autoload_register(array('ComposerAutoloaderInit763a6d75da00247e856f61391a569b7e', 'loadClassLoader'), true /*, true */);
23
  self::$loader = $loader = new xrstf_Composer52_ClassLoader();
24
- spl_autoload_unregister(array('ComposerAutoloaderInit763a6d75da00247e856f61391a569b7e', '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 ComposerAutoloaderInit30e0d35d9f2c7d783fb1a973f446e13b {
6
  private static $loader;
7
 
8
  public static function loadClassLoader($class) {
19
  return self::$loader;
20
  }
21
 
22
+ spl_autoload_register(array('ComposerAutoloaderInit30e0d35d9f2c7d783fb1a973f446e13b', 'loadClassLoader'), true /*, true */);
23
  self::$loader = $loader = new xrstf_Composer52_ClassLoader();
24
+ spl_autoload_unregister(array('ComposerAutoloaderInit30e0d35d9f2c7d783fb1a973f446e13b', 'loadClassLoader'));
25
 
26
  $vendorDir = dirname(dirname(__FILE__));
27
  $baseDir = dirname($vendorDir);
vendor/composer/installed.json CHANGED
@@ -6,15 +6,15 @@
6
  "source": {
7
  "type": "git",
8
  "url": "https://github.com/Codeinwp/themeisle-sdk.git",
9
- "reference": "a05ab89594381a935573300f0aafdae8c28cefe5"
10
  },
11
  "dist": {
12
  "type": "zip",
13
- "url": "https://api.github.com/repos/Codeinwp/themeisle-sdk/zipball/a05ab89594381a935573300f0aafdae8c28cefe5",
14
- "reference": "a05ab89594381a935573300f0aafdae8c28cefe5",
15
  "shasum": ""
16
  },
17
- "time": "2017-11-13 10:52:46",
18
  "type": "library",
19
  "installation-source": "dist",
20
  "autoload": {
6
  "source": {
7
  "type": "git",
8
  "url": "https://github.com/Codeinwp/themeisle-sdk.git",
9
+ "reference": "1933233168091b9e72df9df60b234b7650d6b00b"
10
  },
11
  "dist": {
12
  "type": "zip",
13
+ "url": "https://api.github.com/repos/Codeinwp/themeisle-sdk/zipball/1933233168091b9e72df9df60b234b7650d6b00b",
14
+ "reference": "1933233168091b9e72df9df60b234b7650d6b00b",
15
  "shasum": ""
16
  },
17
+ "time": "2017-11-23 13:26:34",
18
  "type": "library",
19
  "installation-source": "dist",
20
  "autoload": {