WP User Frontend – Membership, Profile, Registration & Post Submission Plugin for WordPress - Version 3.3.0

Version Description

Download this release

Release Info

Developer tareq1988
Plugin Icon 128x128 WP User Frontend – Membership, Profile, Registration & Post Submission Plugin for WordPress
Version 3.3.0
Comparing to
See all releases

Code changes from version 3.2.0 to 3.3.0

Files changed (43) hide show
  1. admin/class-admin-settings.php +9 -0
  2. admin/form-builder/assets/js/components/field-option-data/index.js +4 -1
  3. admin/form-builder/assets/js/components/field-option-data/template.php +21 -5
  4. admin/form-builder/assets/js/components/help-text/index.js +9 -1
  5. admin/form-builder/assets/js/components/help-text/template.php +1 -1
  6. admin/form-builder/assets/less/form-builder.less +31 -0
  7. admin/html/whats-new.php +145 -3
  8. assets/css/admin.css +7 -2
  9. assets/css/frontend-forms.css +14 -1
  10. assets/css/wpuf-form-builder.css +23 -0
  11. assets/js-templates/form-components.php +22 -6
  12. assets/js/billing-address.js +20 -13
  13. assets/js/frontend-form.js +5 -1
  14. assets/js/frontend-form.min.js +1 -1
  15. assets/js/upload.js +4 -8
  16. assets/js/upload.min.js +1 -1
  17. assets/js/wpuf-form-builder-components.js +13 -2
  18. assets/less/frontend-forms.less +16 -1
  19. assets/less/whats-new.less +7 -2
  20. class/payment.php +10 -5
  21. class/upload.php +85 -18
  22. includes/class-billing-address.php +11 -9
  23. includes/class-frontend-render-form.php +20 -6
  24. includes/class-whats-new.php +5 -1
  25. includes/fields/class-abstract-fields.php +3 -3
  26. includes/fields/class-field-checkbox.php +45 -0
  27. includes/fields/class-field-dropdown.php +34 -0
  28. includes/fields/class-field-html.php +1 -0
  29. includes/fields/class-field-multidropdown.php +45 -0
  30. includes/fields/class-field-radio.php +35 -0
  31. includes/fields/class-field-recaptcha.php +1 -1
  32. includes/fields/class-field-text.php +30 -0
  33. includes/fields/class-field-textarea.php +30 -0
  34. includes/free/class-login.php +50 -6
  35. includes/free/class-registration.php +126 -22
  36. languages/wp-user-frontend.pot +423 -343
  37. readme.txt +25 -2
  38. templates/login-form.php +1 -1
  39. vendor/autoload.php +1 -1
  40. vendor/composer/autoload_real.php +7 -4
  41. vendor/composer/autoload_static.php +4 -4
  42. wpuf-functions.php +194 -57
  43. wpuf.php +13 -12
admin/class-admin-settings.php CHANGED
@@ -524,6 +524,15 @@ class WPUF_Admin_Settings {
524
  );
525
  }
526
 
 
 
 
 
 
 
 
 
 
527
  if ( ! class_exists( 'WPUF_Admin_Tools' ) ) {
528
  require_once WPUF_ROOT . '/admin/class-tools.php';
529
  }
524
  );
525
  }
526
 
527
+ $filetype = wp_check_filetype( $file, [ 'json' => 'application/json' ] );
528
+
529
+ if ( ! isset( $filetype['type'] ) || 'application/json' !== $filetype['type'] ) {
530
+ wp_send_json_error(
531
+ new WP_Error( 'wpuf_ajax_import_forms_error', __( 'Provided file is not a JSON file.', 'wp-user-frontend' ) ),
532
+ WP_Http::UNSUPPORTED_MEDIA_TYPE
533
+ );
534
+ }
535
+
536
  if ( ! class_exists( 'WPUF_Admin_Tools' ) ) {
537
  require_once WPUF_ROOT . '/admin/class-tools.php';
538
  }
admin/form-builder/assets/js/components/field-option-data/index.js CHANGED
@@ -12,6 +12,7 @@ Vue.component('field-option-data', {
12
  data: function () {
13
  return {
14
  show_value: false,
 
15
  options: [],
16
  selected: []
17
  };
@@ -91,7 +92,9 @@ Vue.component('field-option-data', {
91
  },
92
 
93
  set_option_label: function (index, label) {
94
- this.options[index].value = label.toLocaleLowerCase().replace( /\s/g, '_' );
 
 
95
  }
96
  },
97
 
12
  data: function () {
13
  return {
14
  show_value: false,
15
+ sync_value: true,
16
  options: [],
17
  selected: []
18
  };
92
  },
93
 
94
  set_option_label: function (index, label) {
95
+ if (this.sync_value) {
96
+ this.options[index].value = label.toLocaleLowerCase().replace( /\s/g, '_' );
97
+ }
98
  }
99
  },
100
 
admin/form-builder/assets/js/components/field-option-data/template.php CHANGED
@@ -1,10 +1,26 @@
1
  <div class="panel-field-opt panel-field-opt-text">
2
- <label class="clearfix">
3
  {{ option_field.title }} <help-text v-if="option_field.help_text" :text="option_field.help_text"></help-text>
4
- <span class="pull-right">
5
- <input type="checkbox" v-model="show_value"> <?php _e( 'Show values', 'wp-user-frontend' ); ?>
6
- </span>
7
- </label>
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
8
 
9
  <ul :class="['option-field-option-chooser', show_value ? 'show-value' : '']">
10
  <li class="clearfix margin-0 header">
1
  <div class="panel-field-opt panel-field-opt-text">
2
+ <div>
3
  {{ option_field.title }} <help-text v-if="option_field.help_text" :text="option_field.help_text"></help-text>
4
+ <ul class="pull-right list-inline field-option-actions">
5
+ <li>
6
+ <label>
7
+ <input
8
+ type="checkbox"
9
+ v-model="show_value"
10
+ /><?php _e( 'Show values', 'wp-user-frontend' ); ?>
11
+ </label>
12
+ </li>
13
+ <li>
14
+ <label>
15
+ <input
16
+ type="checkbox"
17
+ v-model="sync_value"
18
+ /><?php _e( 'Sync values', 'wp-user-frontend' ); ?>
19
+ </label>
20
+ <help-text placement="left" text="<?php _e( 'When enabled, option values will update according to their labels.', 'wp-user-frontend' ); ?>" />
21
+ </li>
22
+ </ul>
23
+ </div>
24
 
25
  <ul :class="['option-field-option-chooser', show_value ? 'show-value' : '']">
26
  <li class="clearfix margin-0 header">
admin/form-builder/assets/js/components/help-text/index.js CHANGED
@@ -5,10 +5,18 @@ Vue.component('help-text', {
5
  text: {
6
  type: String,
7
  default: ''
 
 
 
 
 
 
 
 
8
  }
9
  },
10
 
11
  mounted: function () {
12
- $(".wpuf-tooltip").tooltip();
13
  }
14
  });
5
  text: {
6
  type: String,
7
  default: ''
8
+ },
9
+
10
+ placement: {
11
+ type: String,
12
+ default: 'top',
13
+ validator: function (placement) {
14
+ return ['top', 'right', 'bottom', 'left'].indexOf(placement) >= 0;
15
+ }
16
  }
17
  },
18
 
19
  mounted: function () {
20
+ $(this.$el).tooltip();
21
  }
22
  });
admin/form-builder/assets/js/components/help-text/template.php CHANGED
@@ -1 +1 @@
1
- <i class="fa fa-question-circle field-helper-text wpuf-tooltip" data-placement="top" :title="text"></i>
1
+ <i class="fa fa-question-circle field-helper-text wpuf-tooltip" :data-placement="placement" :title="text"></i>
admin/form-builder/assets/less/form-builder.less CHANGED
@@ -810,6 +810,37 @@
810
  display: block;
811
  margin-bottom: 3px;
812
  }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
813
  }
814
  }
815
 
810
  display: block;
811
  margin-bottom: 3px;
812
  }
813
+
814
+ .field-option-actions {
815
+ margin: 0;
816
+ line-height: 1.2;
817
+
818
+ li {
819
+ position: relative;
820
+ margin: 0;
821
+
822
+ &:not(:last-child):after {
823
+ content: "|";
824
+ position: absolute;
825
+ top: 0;
826
+ right: -3px;
827
+ opacity: .5;
828
+ }
829
+ }
830
+
831
+ .field-helper-text {
832
+ position: relative;
833
+ top: 1px;
834
+ margin-left: 0;
835
+ }
836
+
837
+ .tooltip {
838
+
839
+ .tooltip-inner {
840
+ width: 200px;
841
+ }
842
+ }
843
+ }
844
  }
845
  }
846
 
admin/html/whats-new.php CHANGED
@@ -1,5 +1,145 @@
1
  <?php
2
  $changelog = [
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
3
  [
4
  'version' => 'Version 3.1.18',
5
  'released' => '2020-03-13',
@@ -609,9 +749,11 @@ function _wpuf_changelog_content( $content ) {
609
  <span class="label <?php echo esc_html( strtolower( $change['type'] ) ); ?>"><?php echo esc_html( $change['type'] ); ?></span>
610
  </h4>
611
 
612
- <div class="description">
613
- <?php echo wp_kses_post( _wpuf_changelog_content( $change['description'] ) ); ?>
614
- </div>
 
 
615
  </li>
616
  <?php } ?>
617
  </ul>
1
  <?php
2
  $changelog = [
3
+ [
4
+ 'version' => 'Version 3.3.0',
5
+ 'released' => '2020-06-11',
6
+ 'changes' => [
7
+ [
8
+ 'title' => 'Add Namibian Dollar in currency list',
9
+ 'type' => 'Enhancement',
10
+ ],
11
+ [
12
+ 'title' => 'Add sync values option for option data fields',
13
+ 'type' => 'Enhancement',
14
+ ],
15
+ [
16
+ 'title' => 'Allow uploading image that having filesize meets php ini settings',
17
+ 'type' => 'Tweak',
18
+ ],
19
+ [
20
+ 'title' => 'Limit the selection of one image at a time',
21
+ 'type' => 'Tweak',
22
+ ],
23
+ [
24
+ 'title' => 'Use file name and size to generate hash to prevent duplicant image upload',
25
+ 'type' => 'Tweak',
26
+ ],
27
+ [
28
+ 'title' => 'Sanitize text and textarea field data',
29
+ 'type' => 'Tweak',
30
+ ],
31
+ [
32
+ 'title' => 'Show label instead of values for radio, checkbox, dropdown and multiselect data',
33
+ 'type' => 'Tweak',
34
+ ],
35
+ [
36
+ 'title' => 'Saving custom taxonomies for type text input',
37
+ 'type' => 'Fix',
38
+ ],
39
+ [
40
+ 'title' => 'Admin settings link for recaptcha helper text',
41
+ 'type' => 'Fix',
42
+ ],
43
+ [
44
+ 'title' => 'Undefined name property for Custom HTML fields',
45
+ 'type' => 'Fix',
46
+ ],
47
+ [
48
+ 'title' => 'Delete attachment process',
49
+ 'type' => 'Fix',
50
+ ],
51
+ [
52
+ 'title' => 'Missing billing address in invoice PDF',
53
+ 'type' => 'Fix',
54
+ ],
55
+ [
56
+ 'title' => 'Showing country field value in frontend post content',
57
+ 'type' => 'Fix',
58
+ ],
59
+ [
60
+ 'title' => 'Avatar size display not complying with admin settings size',
61
+ 'type' => 'Fix',
62
+ ],
63
+ [
64
+ 'title' => 'Display default avatars on admin settings discussion page',
65
+ 'type' => 'Fix',
66
+ ],
67
+ [
68
+ 'title' => 'Redirect to subscription page at registration',
69
+ 'type' => 'Fix',
70
+ ],
71
+ [
72
+ 'title' => 'Error notice regarding registration page redirect',
73
+ 'type' => 'Fix',
74
+ ],
75
+ [
76
+ 'title' => 'Escaping html in registration errors',
77
+ 'type' => 'Fix',
78
+ ],
79
+ [
80
+ 'title' => 'Default login redirect link',
81
+ 'type' => 'Fix',
82
+ ],
83
+ [
84
+ 'title' => 'Implementing default WP login page override option',
85
+ 'type' => 'Fix',
86
+ ],
87
+ [
88
+ 'title' => 'Transparent background of autosuggestion dropdown',
89
+ 'type' => 'Fix',
90
+ ],
91
+ ],
92
+ ],
93
+ [
94
+ 'version' => 'Version 3.2.0',
95
+ 'released' => '2020-04-14',
96
+ 'changes' => [
97
+ [
98
+ 'title' => __( 'Import forms system', 'wp-user-frontend' ),
99
+ 'type' => 'Improvement',
100
+ ],
101
+ [
102
+ 'title' => __( 'Password reset system', 'wp-user-frontend' ),
103
+ 'type' => 'Improvement',
104
+ ],
105
+ [
106
+ 'title' => __( 'Updated url validation regex to support modern tlds', 'wp-user-frontend' ),
107
+ 'type' => 'Improvement',
108
+ ],
109
+ [
110
+ 'title' => __( 'Export WPUF forms individually from admin tools page', 'wp-user-frontend' ),
111
+ 'type' => 'Fix',
112
+ ],
113
+ [
114
+ 'title' => __( 'Subscription cycle label translation issue', 'wp-user-frontend' ),
115
+ 'type' => 'Fix',
116
+ ],
117
+ [
118
+ 'title' => __( 'ACF integration for checkbox fields', 'wp-user-frontend' ),
119
+ 'type' => 'Fix',
120
+ ],
121
+ [
122
+ 'title' => __( 'Illegal string offset warning while updating settings', 'wp-user-frontend' ),
123
+ 'type' => 'Fix',
124
+ ],
125
+ [
126
+ 'title' => __( 'Conditional logic for Section Break field', 'wp-user-frontend' ),
127
+ 'type' => 'Fix',
128
+ ],
129
+ [
130
+ 'title' => __( 'Subscriptions cannot be deleted from backend', 'wp-user-frontend' ),
131
+ 'type' => 'Fix',
132
+ ],
133
+ [
134
+ 'title' => __( 'A regression regarding saving checkbox data', 'wp-user-frontend' ),
135
+ 'type' => 'Fix',
136
+ ],
137
+ [
138
+ 'title' => __( 'Default value of multi-select fields is not showing', 'wp-user-frontend' ),
139
+ 'type' => 'Fix',
140
+ ],
141
+ ],
142
+ ],
143
  [
144
  'version' => 'Version 3.1.18',
145
  'released' => '2020-03-13',
749
  <span class="label <?php echo esc_html( strtolower( $change['type'] ) ); ?>"><?php echo esc_html( $change['type'] ); ?></span>
750
  </h4>
751
 
752
+ <?php if ( ! empty( $change['description'] ) ): ?>
753
+ <div class="description">
754
+ <?php echo wp_kses_post( _wpuf_changelog_content( $change['description'] ) ); ?>
755
+ </div>
756
+ <?php endif; ?>
757
  </li>
758
  <?php } ?>
759
  </ul>
assets/css/admin.css CHANGED
@@ -916,7 +916,7 @@ ul.wpuf-form .wpuf-field-columns .wpuf-column-field-inner-columns .wpuf-column .
916
  font-size: 14px;
917
  }
918
  .wpuf-whats-new .wedevs-changelog .wedevs-changelog-history li {
919
- margin-bottom: 30px;
920
  }
921
  .wpuf-whats-new .wedevs-changelog .wedevs-changelog-history h4 {
922
  margin: 0 0 10px 0;
@@ -949,7 +949,8 @@ ul.wpuf-form .wpuf-field-columns .wpuf-column-field-inner-columns .wpuf-column .
949
  background: #3778ff;
950
  border: 1px solid #3778ff;
951
  }
952
- .wpuf-whats-new .wedevs-changelog .wedevs-changelog-history span.label.improvement {
 
953
  background: #3aaa55;
954
  border: 1px solid #3aaa a;
955
  }
@@ -957,6 +958,10 @@ ul.wpuf-form .wpuf-field-columns .wpuf-column-field-inner-columns .wpuf-column .
957
  background: #ff4772;
958
  border: 1px solid #ff4772;
959
  }
 
 
 
 
960
  #wpuf_subs_metabox .inside {
961
  margin: 0;
962
  padding: 0;
916
  font-size: 14px;
917
  }
918
  .wpuf-whats-new .wedevs-changelog .wedevs-changelog-history li {
919
+ margin-bottom: 20px;
920
  }
921
  .wpuf-whats-new .wedevs-changelog .wedevs-changelog-history h4 {
922
  margin: 0 0 10px 0;
949
  background: #3778ff;
950
  border: 1px solid #3778ff;
951
  }
952
+ .wpuf-whats-new .wedevs-changelog .wedevs-changelog-history span.label.improvement,
953
+ .wpuf-whats-new .wedevs-changelog .wedevs-changelog-history span.label.enhancement {
954
  background: #3aaa55;
955
  border: 1px solid #3aaa a;
956
  }
958
  background: #ff4772;
959
  border: 1px solid #ff4772;
960
  }
961
+ .wpuf-whats-new .wedevs-changelog .wedevs-changelog-history span.label.tweak {
962
+ background: #f9a825;
963
+ border: 1px solid #ffa000;
964
+ }
965
  #wpuf_subs_metabox .inside {
966
  margin: 0;
967
  padding: 0;
assets/css/frontend-forms.css CHANGED
@@ -65,7 +65,7 @@
65
  background-color: #f2dede;
66
  color: #a94442;
67
  border: 1px solid #ebccd1;
68
- margin: 10px 0 20px 0;
69
  padding: 10px;
70
  -webkit-border-radius: 3px;
71
  -moz-border-radius: 3px;
@@ -1656,3 +1656,16 @@ ul.wpuf-form .wpuf-field-columns .wpuf-column-field-inner-columns .wpuf-column .
1656
  ul.wpuf-form .wpuf-field-columns .wpuf-column-field-inner-columns .wpuf-column .wpuf-column-inner-fields ul.wpuf-column-fields li textarea {
1657
  width: 100%;
1658
  }
 
 
 
 
 
 
 
 
 
 
 
 
 
65
  background-color: #f2dede;
66
  color: #a94442;
67
  border: 1px solid #ebccd1;
68
+ margin: 10px 10px 20px;
69
  padding: 10px;
70
  -webkit-border-radius: 3px;
71
  -moz-border-radius: 3px;
1656
  ul.wpuf-form .wpuf-field-columns .wpuf-column-field-inner-columns .wpuf-column .wpuf-column-inner-fields ul.wpuf-column-fields li textarea {
1657
  width: 100%;
1658
  }
1659
+ .ac_results {
1660
+ z-index: 99999 !important;
1661
+ background-color: #fff !important;
1662
+ color: #000;
1663
+ position: auto !important;
1664
+ width: 390px !important;
1665
+ }
1666
+ .ac_results li {
1667
+ border-bottom: 1px solid #ddd;
1668
+ margin-left: 0px;
1669
+ padding-left: 5px !important;
1670
+ text-decoration: none !important;
1671
+ }
assets/css/wpuf-form-builder.css CHANGED
@@ -631,6 +631,29 @@
631
  display: block;
632
  margin-bottom: 3px;
633
  }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
634
  .option-field-option-chooser {
635
  margin: 12px 0 0;
636
  }
631
  display: block;
632
  margin-bottom: 3px;
633
  }
634
+ .wpuf-form-builder-field-options .panel-field-opt .field-option-actions {
635
+ margin: 0;
636
+ line-height: 1.2;
637
+ }
638
+ .wpuf-form-builder-field-options .panel-field-opt .field-option-actions li {
639
+ position: relative;
640
+ margin: 0;
641
+ }
642
+ .wpuf-form-builder-field-options .panel-field-opt .field-option-actions li:not(:last-child):after {
643
+ content: "|";
644
+ position: absolute;
645
+ top: 0;
646
+ right: -3px;
647
+ opacity: .5;
648
+ }
649
+ .wpuf-form-builder-field-options .panel-field-opt .field-option-actions .field-helper-text {
650
+ position: relative;
651
+ top: 1px;
652
+ margin-left: 0;
653
+ }
654
+ .wpuf-form-builder-field-options .panel-field-opt .field-option-actions .tooltip .tooltip-inner {
655
+ width: 200px;
656
+ }
657
  .option-field-option-chooser {
658
  margin: 12px 0 0;
659
  }
assets/js-templates/form-components.php CHANGED
@@ -112,12 +112,28 @@
112
 
113
  <script type="text/x-template" id="tmpl-wpuf-field-option-data">
114
  <div class="panel-field-opt panel-field-opt-text">
115
- <label class="clearfix">
116
  {{ option_field.title }} <help-text v-if="option_field.help_text" :text="option_field.help_text"></help-text>
117
- <span class="pull-right">
118
- <input type="checkbox" v-model="show_value"> <?php _e( 'Show values', 'wp-user-frontend' ); ?>
119
- </span>
120
- </label>
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
121
 
122
  <ul :class="['option-field-option-chooser', show_value ? 'show-value' : '']">
123
  <li class="clearfix margin-0 header">
@@ -816,7 +832,7 @@
816
  </script>
817
 
818
  <script type="text/x-template" id="tmpl-wpuf-help-text">
819
- <i class="fa fa-question-circle field-helper-text wpuf-tooltip" data-placement="top" :title="text"></i>
820
  </script>
821
 
822
  <script type="text/x-template" id="tmpl-wpuf-text-editor">
112
 
113
  <script type="text/x-template" id="tmpl-wpuf-field-option-data">
114
  <div class="panel-field-opt panel-field-opt-text">
115
+ <div>
116
  {{ option_field.title }} <help-text v-if="option_field.help_text" :text="option_field.help_text"></help-text>
117
+ <ul class="pull-right list-inline field-option-actions">
118
+ <li>
119
+ <label>
120
+ <input
121
+ type="checkbox"
122
+ v-model="show_value"
123
+ /><?php _e( 'Show values', 'wp-user-frontend' ); ?>
124
+ </label>
125
+ </li>
126
+ <li>
127
+ <label>
128
+ <input
129
+ type="checkbox"
130
+ v-model="sync_value"
131
+ /><?php _e( 'Sync values', 'wp-user-frontend' ); ?>
132
+ </label>
133
+ <help-text placement="left" text="<?php _e( 'When enabled, option values will update according to their labels.', 'wp-user-frontend' ); ?>" />
134
+ </li>
135
+ </ul>
136
+ </div>
137
 
138
  <ul :class="['option-field-option-chooser', show_value ? 'show-value' : '']">
139
  <li class="clearfix margin-0 header">
832
  </script>
833
 
834
  <script type="text/x-template" id="tmpl-wpuf-help-text">
835
+ <i class="fa fa-question-circle field-helper-text wpuf-tooltip" :data-placement="placement" :title="text"></i>
836
  </script>
837
 
838
  <script type="text/x-template" id="tmpl-wpuf-text-editor">
assets/js/billing-address.js CHANGED
@@ -22,27 +22,34 @@ jQuery(function($){
22
  return isValid;
23
  };
24
 
25
- $('#wpuf-payment-gateway').submit(function (e) {
26
  if ( ! window.wpuf_validate_address(e) ) {
27
  alert( ajax_object.fill_notice );
28
  }
29
 
30
- $('#wpuf-ajax-address-form').trigger('submit');
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
31
  });
32
 
33
  $('#wpuf-ajax-address-form').submit(function (e) {
34
  e.preventDefault();
35
- var $wpuf_cc_address = jQuery('#wpuf-address-country-state');
36
- $.post(ajax_object.ajaxurl, {
37
- _wpnonce: $("#_wpnonce").val(),
38
- action: 'wpuf_address_ajax_action',
39
- billing_country: $wpuf_cc_address.find('#wpuf_biiling_country').val(),
40
- billing_state: $wpuf_cc_address.find('#wpuf_biiling_state').val(),
41
- billing_add_line1: $wpuf_cc_address.find('#wpuf_biiling_add_line_1').val(),
42
- billing_add_line2: $wpuf_cc_address.find('#wpuf_biiling_add_line_2').val(),
43
- billing_city: $wpuf_cc_address.find('#wpuf_biiling_city').val(),
44
- billing_zip: $wpuf_cc_address.find('#wpuf_biiling_zip_code').val(),
45
- });
46
  });
47
 
48
  $( document.body ).on('change', 'select#wpuf_biiling_country', function() {
22
  return isValid;
23
  };
24
 
25
+ $( '#wpuf-payment-gateway' ).submit(function (e) {
26
  if ( ! window.wpuf_validate_address(e) ) {
27
  alert( ajax_object.fill_notice );
28
  }
29
 
30
+ var billing_address_form = $( '#wpuf-ajax-address-form' );
31
+
32
+ if ( billing_address_form.length ) {
33
+ var inputs = [
34
+ { id: '#wpuf_biiling_country', name: 'billing_country' },
35
+ { id: '#wpuf_biiling_state', name: 'billing_state' },
36
+ { id: '#wpuf_biiling_add_line_1', name: 'billing_add_line1' },
37
+ { id: '#wpuf_biiling_add_line_2', name: 'billing_add_line2' },
38
+ { id: '#wpuf_biiling_city', name: 'billing_city' },
39
+ { id: '#wpuf_biiling_zip_code', name: 'billing_zip' },
40
+ ];
41
+
42
+ inputs.map( function ( input ) {
43
+ $( '<input type="hidden" name="billing_address[' + input.name + ']" />' )
44
+ .appendTo( '#wpuf-payment-gateway' )
45
+ .val( $( input.id ).val() );
46
+ } );
47
+ }
48
  });
49
 
50
  $('#wpuf-ajax-address-form').submit(function (e) {
51
  e.preventDefault();
52
+ $( '#wpuf-payment-gateway' ).trigger( 'submit' );
 
 
 
 
 
 
 
 
 
 
53
  });
54
 
55
  $( document.body ).on('change', 'select#wpuf_biiling_country', function() {
assets/js/frontend-form.js CHANGED
@@ -746,7 +746,7 @@
746
  multi_selection: false,
747
  urlstream_upload: true,
748
  file_data_name: 'wpuf_file',
749
- max_file_size: '2mb',
750
  url: wpuf_frontend_upload.plupload.url,
751
  flash_swf_url: wpuf_frontend_upload.flash_swf_url,
752
  filters: [{
@@ -953,6 +953,10 @@
953
  }
954
  )
955
  }
 
 
 
 
956
  }
957
  };
958
 
746
  multi_selection: false,
747
  urlstream_upload: true,
748
  file_data_name: 'wpuf_file',
749
+ max_file_size: wpuf_frontend_upload.max_filesize,
750
  url: wpuf_frontend_upload.plupload.url,
751
  flash_swf_url: wpuf_frontend_upload.flash_swf_url,
752
  filters: [{
953
  }
954
  )
955
  }
956
+ },
957
+
958
+ doUncheckRadioBtn: function ( el ) {
959
+ el.checked = false;
960
  }
961
  };
962
 
assets/js/frontend-form.min.js CHANGED
@@ -1 +1 @@
1
- !function(a,b){a.fn.listautowidth=function(){return this.each(function(){var b=a(this).width(),c=b/a(this).children("li").length;a(this).children("li").each(function(){var b=a(this).outerWidth(!0)-a(this).width();a(this).width(c-b)})})},b.WP_User_Frontend={init:function(){this.enableMultistep(this),a(".wpuf-form").on("click","img.wpuf-clone-field",this.cloneField),a(".wpuf-form").on("click","img.wpuf-remove-field",this.removeField),a(".wpuf-form").on("click","a.wpuf-delete-avatar",this.deleteAvatar),a(".wpuf-form").on("click","a#wpuf-post-draft",this.draftPost),a(".wpuf-form").on("click","button#wpuf-account-update-profile",this.account_update_profile),a(".wpuf-form-add").on("submit",this.formSubmit),a("form#post").on("submit",this.adminPostSubmit),a(".wpuf-form").on("step-change-fieldset",function(a,b,c){if(wpuf_plupload_items.length)for(var d=wpuf_plupload_items.length-1;d>=0;d--)wpuf_plupload_items[d].refresh();if(wpuf_map_items.length)for(var d=wpuf_map_items.length-1;d>=0;d--)google.maps.event.trigger(wpuf_map_items[d].map,"resize"),wpuf_map_items[d].map.setCenter(wpuf_map_items[d].center)}),this.ajaxCategory(),a(':submit[name="wpuf_user_subscription_cancel"]').click(function(b){b.preventDefault(),swal({text:wpuf_frontend.cancelSubMsg,type:"warning",showCancelButton:!0,confirmButtonColor:"#d54e21",confirmButtonText:wpuf_frontend.delete_it,cancelButtonText:wpuf_frontend.cancel_it,confirmButtonClass:"btn btn-success",cancelButtonClass:"btn btn-danger"}).then(function(b){if(!b)return!1;a("#wpuf_cancel_subscription").submit()})})},check_pass_strength:function(){var b=a("#pass1").val();if(a("#pass-strength-result").show(),a("#pass-strength-result").removeClass("short bad good strong"),!b)return a("#pass-strength-result").html("&nbsp;"),void a("#pass-strength-result").hide();if(void 0!==wp.passwordStrength)switch(wp.passwordStrength.meter(b,wp.passwordStrength.userInputBlacklist(),b)){case 2:a("#pass-strength-result").addClass("bad").html(pwsL10n.bad);break;case 3:a("#pass-strength-result").addClass("good").html(pwsL10n.good);break;case 4:a("#pass-strength-result").addClass("strong").html(pwsL10n.strong);break;case 5:a("#pass-strength-result").addClass("short").html(pwsL10n.mismatch);break;default:a("#pass-strength-result").addClass("short").html(pwsL10n.short)}},enableMultistep:function(c){var d=this,e=0,f=a(':hidden[name="wpuf_multistep_type"]').val();if(null!=f){if(a("fieldset.wpuf-multistep-fieldset").find(".wpuf-multistep-prev-btn").first().remove(),a("fieldset.wpuf-multistep-fieldset").find(".wpuf-multistep-next-btn").last().remove(),a(".wpuf-form fieldset").removeClass("field-active").first().addClass("field-active"),"progressive"==f&&0!=a(".wpuf-form .wpuf-multistep-fieldset").length){a("fieldset.wpuf-multistep-fieldset legend").first();a(".wpuf-multistep-progressbar").html('<div class="wpuf-progress-percentage"></div>');var g=a(".wpuf-multistep-progressbar"),h=a(".wpuf-progress-percentage");a(".wpuf-multistep-progressbar").progressbar({change:function(){h.text(g.progressbar("value")+"%")}}),a(".wpuf-multistep-fieldset legend").hide()}else a(".wpuf-form").each(function(){var b=a(this),c=a(".wpuf-multistep-progressbar",b),d="";c.addClass("wizard-steps"),d+='<ul class="wpuf-step-wizard">',a(".wpuf-multistep-fieldset",this).each(function(){d+="<li>"+a.trim(a("legend",this).text())+"</li>",a("legend",this).hide()}),d+="</ul>",c.append(d),a(".wpuf-step-wizard li",c).first().addClass("active-step"),a(".wpuf-step-wizard",c).listautowidth()});this.change_fieldset(e,f),a("fieldset .wpuf-multistep-prev-btn, fieldset .wpuf-multistep-next-btn").click(function(g){if(a(this).hasClass("wpuf-multistep-next-btn")){0!=d.formStepCheck("",a(this).closest("fieldset"))&&c.change_fieldset(++e,f)}else a(this).hasClass("wpuf-multistep-prev-btn")&&c.change_fieldset(--e,f);var h=a("form.wpuf-form-add"),i=h.offset().top;return b.scrollTo({top:i-32,behavior:"smooth"}),!1})}},change_fieldset:function(b,c){var d=a("fieldset.wpuf-multistep-fieldset").eq(b);a("fieldset.wpuf-multistep-fieldset").removeClass("field-active").eq(b).addClass("field-active"),a(".wpuf-step-wizard li").each(function(){a(this).index()<=b?"step_by_step"==c?a(this).addClass("passed-wpuf-ms-bar"):a(".wpuf-ps-bar",this).addClass("passed-wpuf-ms-bar"):"step_by_step"==c?a(this).removeClass("passed-wpuf-ms-bar"):a(".wpuf-ps-bar",this).removeClass("passed-wpuf-ms-bar")}),a(".wpuf-step-wizard li").removeClass("wpuf-ms-bar-active active-step completed-step"),a(".passed-wpuf-ms-bar").addClass("completed-step").last().addClass("wpuf-ms-bar-active"),a(".wpuf-ms-bar-active").addClass("active-step");var e=a("fieldset.wpuf-multistep-fieldset").eq(b).find("legend").text();if(e=a.trim(e),"progressive"==c&&0!=a(".wpuf-form .wpuf-multistep-fieldset").length){var f=100*(b+1)/a("fieldset.wpuf-multistep-fieldset").length,f=Number(f.toFixed(2));a(".wpuf-multistep-progressbar").progressbar({value:f}),a(".wpuf-progress-percentage").text(e+" ("+f+"%)")}a(".wpuf-form").trigger("step-change-fieldset",[b,d])},ajaxCategory:function(){a(".category-wrap").on("change",".cat-ajax",function(){var b=a(this).data("form-id");currentLevel=parseInt(a(this).parent().attr("level")),WP_User_Frontend.getChildCats(a(this),currentLevel+1,"category",b)})},getChildCats:function(b,c,d,e){var f=a(b).val(),g="wpuf-category-dropdown-lvl-"+c,d=void 0!==d?d:"category",h=a(b).siblings("span").data("taxonomy");a.ajax({type:"post",url:wpuf_frontend.ajaxurl,data:{action:"wpuf_get_child_cat",catID:f,nonce:wpuf_frontend.nonce,field_attr:h,form_id:e},beforeSend:function(){a(b).parent().parent().next(".loading").addClass("wpuf-loading")},complete:function(){a(b).parent().parent().next(".loading").removeClass("wpuf-loading")},success:function(e){a(b).parent().nextAll().each(function(){a(this).remove()}),""!=e&&(a(b).parent().addClass("hasChild").parent().append('<div id="'+g+'" level="'+c+'"></div>'),b.parent().parent().find("#"+g).html(e).slideDown("fast")),a(document).trigger("wpuf-ajax-fetched-child-categories",g,c,d)}})},cloneField:function(b){b.preventDefault();var c=a(this).closest("tr"),d=c.clone();d.find("input").val(""),d.find(":checked").attr("checked",""),c.after(d)},removeField:function(){var b=a(this).closest("tr");b.siblings().andSelf().length>1&&b.remove()},adminPostSubmit:function(b){b.preventDefault();var c=a(this);if(WP_User_Frontend.validateForm(c))return!0},draftPost:function(b){b.preventDefault();var c=a(this),d=a(this).closest("form"),e=d.serialize()+"&action=wpuf_draft_post",f=d.find('input[type="hidden"][name="post_id"]').val(),g=[];a(".wpuf-rich-validation").each(function(b,c){var c=a(c),d=c.data("id"),e=c.data("name"),f=a.trim(tinyMCE.get(d).getContent());g.push(e+"="+encodeURIComponent(f))}),e=e+"&"+g.join("&"),c.after(' <span class="wpuf-loading"></span>'),a.post(wpuf_frontend.ajaxurl,e,function(b){if(void 0===f){var e='<input type="hidden" name="post_id" value="'+b.post_id+'">';e+='<input type="hidden" name="post_date" value="'+b.date+'">',e+='<input type="hidden" name="post_author" value="'+b.post_author+'">',e+='<input type="hidden" name="comment_status" value="'+b.comment_status+'">',d.append(e)}c.next("span.wpuf-loading").remove(),c.after('<span class="wpuf-draft-saved">&nbsp; Post Saved</span>'),a(".wpuf-draft-saved").delay(2500).fadeOut("fast",function(){a(this).remove()})})},account_update_profile:function(b){b.preventDefault();var c=a(this).closest("form");a.post(wpuf_frontend.ajaxurl,c.serialize(),function(a){a.success?(c.find(".wpuf-error").hide(),c.find(".wpuf-success").show()):(c.find(".wpuf-success").hide(),c.find(".wpuf-error").show(),c.find(".wpuf-error").text(a.data))})},formStepCheck:function(a,b){var c=b;c.find("input[type=submit]");return form_data=WP_User_Frontend.validateForm(c),0==form_data&&WP_User_Frontend.addErrorNotice(self,"bottom"),form_data},formSubmit:function(c){c.preventDefault();var d=a(this),e=d.find("input[type=submit]");form_data=WP_User_Frontend.validateForm(d),form_data&&(d.find("li.wpuf-submit").append('<span class="wpuf-loading"></span>'),e.attr("disabled","disabled").addClass("button-primary-disabled"),a.post(wpuf_frontend.ajaxurl,form_data,function(c){if(c.success)a("body").trigger("wpuf:postform:success",c),1==c.show_message?(d.before('<div class="wpuf-success">'+c.message+"</div>"),d.slideUp("fast",function(){d.remove()}),a("html, body").animate({scrollTop:a(".wpuf-success").offset().top-100},"fast")):b.location=c.redirect_to;else{if(void 0!==c.type&&"login"===c.type)return void(confirm(c.error)?b.location=c.redirect_to:(e.removeAttr("disabled"),e.removeClass("button-primary-disabled"),d.find("span.wpuf-loading").remove()));d.find(".g-recaptcha").length>0&&grecaptcha.reset(),swal({html:c.error,type:"warning",showCancelButton:!1,confirmButtonColor:"#d54e21",confirmButtonText:"OK",cancelButtonClass:"btn btn-danger"}),e.removeAttr("disabled")}e.removeClass("button-primary-disabled"),d.find("span.wpuf-loading").remove()}))},validateForm:function(b){var c=!1;error_type="",WP_User_Frontend.removeErrors(b),WP_User_Frontend.removeErrorNotice(b),b.find('[data-required="yes"]:visible').each(function(b,d){var e=a(d).data("type");switch(j="",e){case"rich":var f=a(d).data("id");""===(j=a.trim(tinyMCE.get(f).getContent()))&&(c=!0,WP_User_Frontend.markError(d));break;case"textarea":case"text":""===(j=a.trim(a(d).val()))&&(c=!0,error_type="required",WP_User_Frontend.markError(d,error_type));break;case"password":case"confirm_password":var g=a(d).data("repeat");if(j=a.trim(a(d).val()),""===j&&(c=!0,error_type="required",WP_User_Frontend.markError(d,error_type)),g){var h=a('[data-type="confirm_password"]').eq(0);h.val()!=j&&(c=!0,error_type="mismatch",WP_User_Frontend.markError(h,error_type))}break;case"select":(j=a(d).val())&&"-1"!==j||(c=!0,error_type="required",WP_User_Frontend.markError(d,error_type));break;case"multiselect":null!==(j=a(d).val())&&0!==j.length||(c=!0,error_type="required",WP_User_Frontend.markError(d,error_type));break;case"tax-checkbox":var i=a(d).children().find("input:checked").length;i||(c=!0,error_type="required",WP_User_Frontend.markError(d,error_type));break;case"radio":var i=a(d).find("input:checked").length;i||(c=!0,error_type="required",WP_User_Frontend.markError(d,error_type));break;case"file":var i=a(d).find("ul").children().length;i||(c=!0,error_type="required",WP_User_Frontend.markError(d,error_type));break;case"email":var j=a(d).val();""!==j?WP_User_Frontend.isValidEmail(j)||(c=!0,error_type="validation",WP_User_Frontend.markError(d,error_type)):""===j&&(c=!0,error_type="required",WP_User_Frontend.markError(d,error_type));break;case"url":var j=a(d).val();""!==j&&(WP_User_Frontend.isValidURL(j)||(c=!0,error_type="validation",WP_User_Frontend.markError(d,error_type)))}});var d=b.find('[data-required="yes"][name="google_map"]');if(d){","==a(d).val()&&(c=!0,error_type="required",WP_User_Frontend.markError(d,error_type))}if(c)return WP_User_Frontend.addErrorNotice(b,"end"),!1;var e=b.serialize(),f=[];return a(".wpuf-rich-validation",b).each(function(b,c){var c=a(c),d=c.data("id"),e=c.data("name"),g=a.trim(tinyMCE.get(d).getContent());f.push(e+"="+encodeURIComponent(g))}),e=e+"&"+f.join("&")},addErrorNotice:function(b,c){"bottom"==c?a(".wpuf-multistep-fieldset:visible").append('<div class="wpuf-errors">'+wpuf_frontend.error_message+"</div>"):a(b).find("li.wpuf-submit").append('<div class="wpuf-errors">'+wpuf_frontend.error_message+"</div>")},removeErrorNotice:function(b){a(b).find(".wpuf-errors").remove()},markError:function(b,c){var d="";if(a(b).closest("li").addClass("has-error"),c){switch(d=a(b).closest("li").data("label"),c){case"required":case"mismatch":case"validation":d=d+" "+error_str_obj[c]}a(b).siblings(".wpuf-error-msg").remove(),a(b).after('<div class="wpuf-error-msg">'+d+"</div>")}a(b).focus()},removeErrors:function(b){a(b).find(".has-error").removeClass("has-error"),a(".wpuf-error-msg").remove()},isValidEmail:function(a){return new RegExp(/^((([a-z]|\d|[!#\$%&'\*\+\-\/=\?\^_`{\|}~]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])+(\.([a-z]|\d|[!#\$%&'\*\+\-\/=\?\^_`{\|}~]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])+)*)|((\x22)((((\x20|\x09)*(\x0d\x0a))?(\x20|\x09)+)?(([\x01-\x08\x0b\x0c\x0e-\x1f\x7f]|\x21|[\x23-\x5b]|[\x5d-\x7e]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(\\([\x01-\x09\x0b\x0c\x0d-\x7f]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF]))))*(((\x20|\x09)*(\x0d\x0a))?(\x20|\x09)+)?(\x22)))@((([a-z]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(([a-z]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])*([a-z]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])))\.)+(([a-z]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(([a-z]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])*([a-z]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])))\.?$/i).test(a)},isValidURL:function(a){return new RegExp("^(http://www.|https://www.|ftp://www.|www.|http://|https://){1}([0-9A-Za-z]+.)").test(a)},insertImage:function(b,c){if(a("#"+b).length){var d=new plupload.Uploader({runtimes:"html5,html4",browse_button:b,container:"wpuf-insert-image-container",multipart:!0,multipart_params:{action:"wpuf_insert_image",form_id:a("#"+b).data("form_id")},multiple_queues:!1,multi_selection:!1,urlstream_upload:!0,file_data_name:"wpuf_file",max_file_size:"2mb",url:wpuf_frontend_upload.plupload.url,flash_swf_url:wpuf_frontend_upload.flash_swf_url,filters:[{title:"Allowed Files",extensions:"jpg,jpeg,gif,png,bmp"}]});d.bind("Init",function(a,b){}),d.bind("FilesAdded",function(b,c){var d=a("#wpuf-insert-image-container");a.each(c,function(a,b){d.append('<div class="upload-item" id="'+b.id+'"><div class="progress progress-striped active"><div class="bar"></div></div></div>')}),b.refresh(),b.start()}),d.bind("QueueChanged",function(a){d.start()}),d.bind("UploadProgress",function(b,c){var d=a("#"+c.id);a(".bar",d).css({width:c.percent+"%"}),a(".percent",d).html(c.percent+"%")}),d.bind("Error",function(a,b){alert("Error #"+b.code+": "+b.message)}),d.bind("FileUploaded",function(b,d,e){if(a("#"+d.id).remove(),"error"!==e.response){if("undefined"!=typeof tinyMCE)if("function"!=typeof tinyMCE.execInstanceCommand){var f=tinyMCE.get("post_content_"+c);null!==f&&f.insertContent(e.response)}else tinyMCE.execInstanceCommand("post_content_"+c,"mceInsertContent",!1,e.response);var g=a("#post_content_"+c);g.val(g.val()+e.response)}else alert("Something went wrong")}),d.init()}},deleteAvatar:function(b){b.preventDefault(),confirm(a(this).data("confirm"))&&a.post(wpuf_frontend.ajaxurl,{action:"wpuf_delete_avatar",_wpnonce:wpuf_frontend.nonce},function(){a(b.target).parent().remove(),a("[id^=wpuf-avatar]").css("display","")})},editorLimit:{bind:function(b,c,d){"no"===d?(a("textarea#"+c).keydown(function(a){WP_User_Frontend.editorLimit.textLimit.call(this,a,b)}),a("input#"+c).keydown(function(a){WP_User_Frontend.editorLimit.textLimit.call(this,a,b)}),a("textarea#"+c).on("paste",function(c){var d=a(this);setTimeout(function(){WP_User_Frontend.editorLimit.textLimit.call(d,c,b)},100)}),a("input#"+c).on("paste",function(c){var d=a(this);setTimeout(function(){WP_User_Frontend.editorLimit.textLimit.call(d,c,b)},100)})):setTimeout(function(){tinyMCE.get(c).onKeyDown.add(function(a,c){WP_User_Frontend.editorLimit.tinymce.onKeyDown(a,c,b)}),tinyMCE.get(c).onPaste.add(function(a,c){setTimeout(function(){WP_User_Frontend.editorLimit.tinymce.onPaste(a,c,b)},100)})},1e3)},tinymce:{getStats:function(a){var b=a.getBody(),c=tinymce.trim(b.innerText||b.textContent);return{chars:c.length,words:c.split(/[\w\u2019\'-]+/).length}},onKeyDown:function(b,c,d){var e=WP_User_Frontend.editorLimit.tinymce.getStats(b).words-1;d&&a(".mce-path-item.mce-last",b.container).html("Word Limit : "+e+"/"+d),d&&e>d&&(WP_User_Frontend.editorLimit.blockTyping(c),jQuery(".mce-path-item.mce-last",b.container).html(wpuf_frontend.word_limit))},onPaste:function(a,b,c){var d=a.getContent().split(" ").slice(0,c).join(" ");a.setContent(d),WP_User_Frontend.editorLimit.make_media_embed_code(d,a)}},textLimit:function(b,c){var d=a(this),e=d.val().split(" ");c&&e.length>c?(d.closest(".wpuf-fields").find("span.wpuf-wordlimit-message").html(wpuf_frontend.word_limit),WP_User_Frontend.editorLimit.blockTyping(b)):d.closest(".wpuf-fields").find("span.wpuf-wordlimit-message").html(""),"paste"===b.type&&d.val(e.slice(0,c).join(" "))},blockTyping:function(b){-1!==a.inArray(b.keyCode,[46,8,9,27,13,110,190,189])||65==b.keyCode&&!0===b.ctrlKey||b.keyCode>=35&&b.keyCode<=40||(b.preventDefault(),b.stopPropagation())},make_media_embed_code:function(b,c){a.post(ajaxurl,{action:"make_media_embed_code",content:b},function(a){c.setContent(c.getContent()+c.setContent(a))})}}},a(function(){if(WP_User_Frontend.init(),a("ul.wpuf-payment-gateways").on("click","input[type=radio]",function(b){a(".wpuf-payment-instruction").slideUp(250),a(this).parents("li").find(".wpuf-payment-instruction").slideDown(250)}),a("ul.wpuf-payment-gateways li").find("input[type=radio]").is(":checked")){a("ul.wpuf-payment-gateways li").find("input[type=radio]:checked").parents("li").find(".wpuf-payment-instruction").slideDown(250)}else a("ul.wpuf-payment-gateways li").first().find("input[type=radio]").click()}),a(function(){a('input[name="first_name"], input[name="last_name"]').on("change keyup",function(){var b,c=a.makeArray(a('input[name="first_name"], input[name="last_name"]').map(function(){if(b=a(this).val())return b})).join(" ");a('input[name="display_name"]').val(c)})}),a(function(a){a('.wpuf-form-add input[name="dokan_store_name"]').on("focusout",function(){var b=a(this).val().toLowerCase().replace(/-+/g,"").replace(/\s+/g,"-").replace(/[^a-z0-9-]/g,"");a('input[name="shopurl"]').val(b),a("#url-alart").text(b),a('input[name="shopurl"]').focus()}),a('.wpuf-form-add input[name="shopurl"]').keydown(function(b){a(this).val();-1!==a.inArray(b.keyCode,[46,8,9,27,13,91,109,110,173,189,190])||65==b.keyCode&&!0===b.ctrlKey||b.keyCode>=35&&b.keyCode<=39||(b.shiftKey||(b.keyCode<65||b.keyCode>90)&&(b.keyCode<48||b.keyCode>57))&&(b.keyCode<96||b.keyCode>105)&&b.preventDefault()}),a('.wpuf-form-add input[name="shopurl"]').keyup(function(b){a("#url-alart").text(a(this).val())}),a('.wpuf-form-add input[name="shopurl"]').on("focusout",function(){var b=a(this),c={action:"shop_url",url_slug:b.val(),_nonce:dokan.nonce};""!==b.val()&&a.post(dokan.ajaxurl,c,function(b){0==b?(a("#url-alart").removeClass("text-success").addClass("text-danger"),a("#url-alart-mgs").removeClass("text-success").addClass("text-danger").text(dokan.seller.notAvailable)):(a("#url-alart").removeClass("text-danger").addClass("text-success"),a("#url-alart-mgs").removeClass("text-danger").addClass("text-success").text(dokan.seller.available))})}),a(".wpuf-form-add #wpuf-map-add-location").attr("name","find_address")})}(jQuery,window);
1
+ !function(a,b){a.fn.listautowidth=function(){return this.each(function(){var b=a(this).width(),c=b/a(this).children("li").length;a(this).children("li").each(function(){var b=a(this).outerWidth(!0)-a(this).width();a(this).width(c-b)})})},b.WP_User_Frontend={init:function(){this.enableMultistep(this),a(".wpuf-form").on("click","img.wpuf-clone-field",this.cloneField),a(".wpuf-form").on("click","img.wpuf-remove-field",this.removeField),a(".wpuf-form").on("click","a.wpuf-delete-avatar",this.deleteAvatar),a(".wpuf-form").on("click","a#wpuf-post-draft",this.draftPost),a(".wpuf-form").on("click","button#wpuf-account-update-profile",this.account_update_profile),a(".wpuf-form-add").on("submit",this.formSubmit),a("form#post").on("submit",this.adminPostSubmit),a(".wpuf-form").on("step-change-fieldset",function(a,b,c){if(wpuf_plupload_items.length)for(var d=wpuf_plupload_items.length-1;d>=0;d--)wpuf_plupload_items[d].refresh();if(wpuf_map_items.length)for(var d=wpuf_map_items.length-1;d>=0;d--)google.maps.event.trigger(wpuf_map_items[d].map,"resize"),wpuf_map_items[d].map.setCenter(wpuf_map_items[d].center)}),this.ajaxCategory(),a(':submit[name="wpuf_user_subscription_cancel"]').click(function(b){b.preventDefault(),swal({text:wpuf_frontend.cancelSubMsg,type:"warning",showCancelButton:!0,confirmButtonColor:"#d54e21",confirmButtonText:wpuf_frontend.delete_it,cancelButtonText:wpuf_frontend.cancel_it,confirmButtonClass:"btn btn-success",cancelButtonClass:"btn btn-danger"}).then(function(b){if(!b)return!1;a("#wpuf_cancel_subscription").submit()})})},check_pass_strength:function(){var b=a("#pass1").val();if(a("#pass-strength-result").show(),a("#pass-strength-result").removeClass("short bad good strong"),!b)return a("#pass-strength-result").html("&nbsp;"),void a("#pass-strength-result").hide();if(void 0!==wp.passwordStrength)switch(wp.passwordStrength.meter(b,wp.passwordStrength.userInputBlacklist(),b)){case 2:a("#pass-strength-result").addClass("bad").html(pwsL10n.bad);break;case 3:a("#pass-strength-result").addClass("good").html(pwsL10n.good);break;case 4:a("#pass-strength-result").addClass("strong").html(pwsL10n.strong);break;case 5:a("#pass-strength-result").addClass("short").html(pwsL10n.mismatch);break;default:a("#pass-strength-result").addClass("short").html(pwsL10n.short)}},enableMultistep:function(c){var d=this,e=0,f=a(':hidden[name="wpuf_multistep_type"]').val();if(null!=f){if(a("fieldset.wpuf-multistep-fieldset").find(".wpuf-multistep-prev-btn").first().remove(),a("fieldset.wpuf-multistep-fieldset").find(".wpuf-multistep-next-btn").last().remove(),a(".wpuf-form fieldset").removeClass("field-active").first().addClass("field-active"),"progressive"==f&&0!=a(".wpuf-form .wpuf-multistep-fieldset").length){a("fieldset.wpuf-multistep-fieldset legend").first();a(".wpuf-multistep-progressbar").html('<div class="wpuf-progress-percentage"></div>');var g=a(".wpuf-multistep-progressbar"),h=a(".wpuf-progress-percentage");a(".wpuf-multistep-progressbar").progressbar({change:function(){h.text(g.progressbar("value")+"%")}}),a(".wpuf-multistep-fieldset legend").hide()}else a(".wpuf-form").each(function(){var b=a(this),c=a(".wpuf-multistep-progressbar",b),d="";c.addClass("wizard-steps"),d+='<ul class="wpuf-step-wizard">',a(".wpuf-multistep-fieldset",this).each(function(){d+="<li>"+a.trim(a("legend",this).text())+"</li>",a("legend",this).hide()}),d+="</ul>",c.append(d),a(".wpuf-step-wizard li",c).first().addClass("active-step"),a(".wpuf-step-wizard",c).listautowidth()});this.change_fieldset(e,f),a("fieldset .wpuf-multistep-prev-btn, fieldset .wpuf-multistep-next-btn").click(function(g){if(a(this).hasClass("wpuf-multistep-next-btn")){0!=d.formStepCheck("",a(this).closest("fieldset"))&&c.change_fieldset(++e,f)}else a(this).hasClass("wpuf-multistep-prev-btn")&&c.change_fieldset(--e,f);var h=a("form.wpuf-form-add"),i=h.offset().top;return b.scrollTo({top:i-32,behavior:"smooth"}),!1})}},change_fieldset:function(b,c){var d=a("fieldset.wpuf-multistep-fieldset").eq(b);a("fieldset.wpuf-multistep-fieldset").removeClass("field-active").eq(b).addClass("field-active"),a(".wpuf-step-wizard li").each(function(){a(this).index()<=b?"step_by_step"==c?a(this).addClass("passed-wpuf-ms-bar"):a(".wpuf-ps-bar",this).addClass("passed-wpuf-ms-bar"):"step_by_step"==c?a(this).removeClass("passed-wpuf-ms-bar"):a(".wpuf-ps-bar",this).removeClass("passed-wpuf-ms-bar")}),a(".wpuf-step-wizard li").removeClass("wpuf-ms-bar-active active-step completed-step"),a(".passed-wpuf-ms-bar").addClass("completed-step").last().addClass("wpuf-ms-bar-active"),a(".wpuf-ms-bar-active").addClass("active-step");var e=a("fieldset.wpuf-multistep-fieldset").eq(b).find("legend").text();if(e=a.trim(e),"progressive"==c&&0!=a(".wpuf-form .wpuf-multistep-fieldset").length){var f=100*(b+1)/a("fieldset.wpuf-multistep-fieldset").length,f=Number(f.toFixed(2));a(".wpuf-multistep-progressbar").progressbar({value:f}),a(".wpuf-progress-percentage").text(e+" ("+f+"%)")}a(".wpuf-form").trigger("step-change-fieldset",[b,d])},ajaxCategory:function(){a(".category-wrap").on("change",".cat-ajax",function(){var b=a(this).data("form-id");currentLevel=parseInt(a(this).parent().attr("level")),WP_User_Frontend.getChildCats(a(this),currentLevel+1,"category",b)})},getChildCats:function(b,c,d,e){var f=a(b).val(),g="wpuf-category-dropdown-lvl-"+c,d=void 0!==d?d:"category",h=a(b).siblings("span").data("taxonomy");a.ajax({type:"post",url:wpuf_frontend.ajaxurl,data:{action:"wpuf_get_child_cat",catID:f,nonce:wpuf_frontend.nonce,field_attr:h,form_id:e},beforeSend:function(){a(b).parent().parent().next(".loading").addClass("wpuf-loading")},complete:function(){a(b).parent().parent().next(".loading").removeClass("wpuf-loading")},success:function(e){a(b).parent().nextAll().each(function(){a(this).remove()}),""!=e&&(a(b).parent().addClass("hasChild").parent().append('<div id="'+g+'" level="'+c+'"></div>'),b.parent().parent().find("#"+g).html(e).slideDown("fast")),a(document).trigger("wpuf-ajax-fetched-child-categories",g,c,d)}})},cloneField:function(b){b.preventDefault();var c=a(this).closest("tr"),d=c.clone();d.find("input").val(""),d.find(":checked").attr("checked",""),c.after(d)},removeField:function(){var b=a(this).closest("tr");b.siblings().andSelf().length>1&&b.remove()},adminPostSubmit:function(b){b.preventDefault();var c=a(this);if(WP_User_Frontend.validateForm(c))return!0},draftPost:function(b){b.preventDefault();var c=a(this),d=a(this).closest("form"),e=d.serialize()+"&action=wpuf_draft_post",f=d.find('input[type="hidden"][name="post_id"]').val(),g=[];a(".wpuf-rich-validation").each(function(b,c){var c=a(c),d=c.data("id"),e=c.data("name"),f=a.trim(tinyMCE.get(d).getContent());g.push(e+"="+encodeURIComponent(f))}),e=e+"&"+g.join("&"),c.after(' <span class="wpuf-loading"></span>'),a.post(wpuf_frontend.ajaxurl,e,function(b){if(void 0===f){var e='<input type="hidden" name="post_id" value="'+b.post_id+'">';e+='<input type="hidden" name="post_date" value="'+b.date+'">',e+='<input type="hidden" name="post_author" value="'+b.post_author+'">',e+='<input type="hidden" name="comment_status" value="'+b.comment_status+'">',d.append(e)}c.next("span.wpuf-loading").remove(),c.after('<span class="wpuf-draft-saved">&nbsp; Post Saved</span>'),a(".wpuf-draft-saved").delay(2500).fadeOut("fast",function(){a(this).remove()})})},account_update_profile:function(b){b.preventDefault();var c=a(this).closest("form");a.post(wpuf_frontend.ajaxurl,c.serialize(),function(a){a.success?(c.find(".wpuf-error").hide(),c.find(".wpuf-success").show()):(c.find(".wpuf-success").hide(),c.find(".wpuf-error").show(),c.find(".wpuf-error").text(a.data))})},formStepCheck:function(a,b){var c=b;c.find("input[type=submit]");return form_data=WP_User_Frontend.validateForm(c),0==form_data&&WP_User_Frontend.addErrorNotice(self,"bottom"),form_data},formSubmit:function(c){c.preventDefault();var d=a(this),e=d.find("input[type=submit]");form_data=WP_User_Frontend.validateForm(d),form_data&&(d.find("li.wpuf-submit").append('<span class="wpuf-loading"></span>'),e.attr("disabled","disabled").addClass("button-primary-disabled"),a.post(wpuf_frontend.ajaxurl,form_data,function(c){if(c.success)a("body").trigger("wpuf:postform:success",c),1==c.show_message?(d.before('<div class="wpuf-success">'+c.message+"</div>"),d.slideUp("fast",function(){d.remove()}),a("html, body").animate({scrollTop:a(".wpuf-success").offset().top-100},"fast")):b.location=c.redirect_to;else{if(void 0!==c.type&&"login"===c.type)return void(confirm(c.error)?b.location=c.redirect_to:(e.removeAttr("disabled"),e.removeClass("button-primary-disabled"),d.find("span.wpuf-loading").remove()));d.find(".g-recaptcha").length>0&&grecaptcha.reset(),swal({html:c.error,type:"warning",showCancelButton:!1,confirmButtonColor:"#d54e21",confirmButtonText:"OK",cancelButtonClass:"btn btn-danger"}),e.removeAttr("disabled")}e.removeClass("button-primary-disabled"),d.find("span.wpuf-loading").remove()}))},validateForm:function(b){var c=!1;error_type="",WP_User_Frontend.removeErrors(b),WP_User_Frontend.removeErrorNotice(b),b.find('[data-required="yes"]:visible').each(function(b,d){var e=a(d).data("type");switch(j="",e){case"rich":var f=a(d).data("id");""===(j=a.trim(tinyMCE.get(f).getContent()))&&(c=!0,WP_User_Frontend.markError(d));break;case"textarea":case"text":""===(j=a.trim(a(d).val()))&&(c=!0,error_type="required",WP_User_Frontend.markError(d,error_type));break;case"password":case"confirm_password":var g=a(d).data("repeat");if(j=a.trim(a(d).val()),""===j&&(c=!0,error_type="required",WP_User_Frontend.markError(d,error_type)),g){var h=a('[data-type="confirm_password"]').eq(0);h.val()!=j&&(c=!0,error_type="mismatch",WP_User_Frontend.markError(h,error_type))}break;case"select":(j=a(d).val())&&"-1"!==j||(c=!0,error_type="required",WP_User_Frontend.markError(d,error_type));break;case"multiselect":null!==(j=a(d).val())&&0!==j.length||(c=!0,error_type="required",WP_User_Frontend.markError(d,error_type));break;case"tax-checkbox":var i=a(d).children().find("input:checked").length;i||(c=!0,error_type="required",WP_User_Frontend.markError(d,error_type));break;case"radio":var i=a(d).find("input:checked").length;i||(c=!0,error_type="required",WP_User_Frontend.markError(d,error_type));break;case"file":var i=a(d).find("ul").children().length;i||(c=!0,error_type="required",WP_User_Frontend.markError(d,error_type));break;case"email":var j=a(d).val();""!==j?WP_User_Frontend.isValidEmail(j)||(c=!0,error_type="validation",WP_User_Frontend.markError(d,error_type)):""===j&&(c=!0,error_type="required",WP_User_Frontend.markError(d,error_type));break;case"url":var j=a(d).val();""!==j&&(WP_User_Frontend.isValidURL(j)||(c=!0,error_type="validation",WP_User_Frontend.markError(d,error_type)))}});var d=b.find('[data-required="yes"][name="google_map"]');if(d){","==a(d).val()&&(c=!0,error_type="required",WP_User_Frontend.markError(d,error_type))}if(c)return WP_User_Frontend.addErrorNotice(b,"end"),!1;var e=b.serialize(),f=[];return a(".wpuf-rich-validation",b).each(function(b,c){var c=a(c),d=c.data("id"),e=c.data("name"),g=a.trim(tinyMCE.get(d).getContent());f.push(e+"="+encodeURIComponent(g))}),e=e+"&"+f.join("&")},addErrorNotice:function(b,c){"bottom"==c?a(".wpuf-multistep-fieldset:visible").append('<div class="wpuf-errors">'+wpuf_frontend.error_message+"</div>"):a(b).find("li.wpuf-submit").append('<div class="wpuf-errors">'+wpuf_frontend.error_message+"</div>")},removeErrorNotice:function(b){a(b).find(".wpuf-errors").remove()},markError:function(b,c){var d="";if(a(b).closest("li").addClass("has-error"),c){switch(d=a(b).closest("li").data("label"),c){case"required":case"mismatch":case"validation":d=d+" "+error_str_obj[c]}a(b).siblings(".wpuf-error-msg").remove(),a(b).after('<div class="wpuf-error-msg">'+d+"</div>")}a(b).focus()},removeErrors:function(b){a(b).find(".has-error").removeClass("has-error"),a(".wpuf-error-msg").remove()},isValidEmail:function(a){return new RegExp(/^((([a-z]|\d|[!#\$%&'\*\+\-\/=\?\^_`{\|}~]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])+(\.([a-z]|\d|[!#\$%&'\*\+\-\/=\?\^_`{\|}~]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])+)*)|((\x22)((((\x20|\x09)*(\x0d\x0a))?(\x20|\x09)+)?(([\x01-\x08\x0b\x0c\x0e-\x1f\x7f]|\x21|[\x23-\x5b]|[\x5d-\x7e]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(\\([\x01-\x09\x0b\x0c\x0d-\x7f]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF]))))*(((\x20|\x09)*(\x0d\x0a))?(\x20|\x09)+)?(\x22)))@((([a-z]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(([a-z]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])*([a-z]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])))\.)+(([a-z]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(([a-z]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])*([a-z]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])))\.?$/i).test(a)},isValidURL:function(a){return new RegExp("^(http://www.|https://www.|ftp://www.|www.|http://|https://){1}([0-9A-Za-z]+.)").test(a)},insertImage:function(b,c){if(a("#"+b).length){var d=new plupload.Uploader({runtimes:"html5,html4",browse_button:b,container:"wpuf-insert-image-container",multipart:!0,multipart_params:{action:"wpuf_insert_image",form_id:a("#"+b).data("form_id")},multiple_queues:!1,multi_selection:!1,urlstream_upload:!0,file_data_name:"wpuf_file",max_file_size:wpuf_frontend_upload.max_filesize,url:wpuf_frontend_upload.plupload.url,flash_swf_url:wpuf_frontend_upload.flash_swf_url,filters:[{title:"Allowed Files",extensions:"jpg,jpeg,gif,png,bmp"}]});d.bind("Init",function(a,b){}),d.bind("FilesAdded",function(b,c){var d=a("#wpuf-insert-image-container");a.each(c,function(a,b){d.append('<div class="upload-item" id="'+b.id+'"><div class="progress progress-striped active"><div class="bar"></div></div></div>')}),b.refresh(),b.start()}),d.bind("QueueChanged",function(a){d.start()}),d.bind("UploadProgress",function(b,c){var d=a("#"+c.id);a(".bar",d).css({width:c.percent+"%"}),a(".percent",d).html(c.percent+"%")}),d.bind("Error",function(a,b){alert("Error #"+b.code+": "+b.message)}),d.bind("FileUploaded",function(b,d,e){if(a("#"+d.id).remove(),"error"!==e.response){if("undefined"!=typeof tinyMCE)if("function"!=typeof tinyMCE.execInstanceCommand){var f=tinyMCE.get("post_content_"+c);null!==f&&f.insertContent(e.response)}else tinyMCE.execInstanceCommand("post_content_"+c,"mceInsertContent",!1,e.response);var g=a("#post_content_"+c);g.val(g.val()+e.response)}else alert("Something went wrong")}),d.init()}},deleteAvatar:function(b){b.preventDefault(),confirm(a(this).data("confirm"))&&a.post(wpuf_frontend.ajaxurl,{action:"wpuf_delete_avatar",_wpnonce:wpuf_frontend.nonce},function(){a(b.target).parent().remove(),a("[id^=wpuf-avatar]").css("display","")})},editorLimit:{bind:function(b,c,d){"no"===d?(a("textarea#"+c).keydown(function(a){WP_User_Frontend.editorLimit.textLimit.call(this,a,b)}),a("input#"+c).keydown(function(a){WP_User_Frontend.editorLimit.textLimit.call(this,a,b)}),a("textarea#"+c).on("paste",function(c){var d=a(this);setTimeout(function(){WP_User_Frontend.editorLimit.textLimit.call(d,c,b)},100)}),a("input#"+c).on("paste",function(c){var d=a(this);setTimeout(function(){WP_User_Frontend.editorLimit.textLimit.call(d,c,b)},100)})):setTimeout(function(){tinyMCE.get(c).onKeyDown.add(function(a,c){WP_User_Frontend.editorLimit.tinymce.onKeyDown(a,c,b)}),tinyMCE.get(c).onPaste.add(function(a,c){setTimeout(function(){WP_User_Frontend.editorLimit.tinymce.onPaste(a,c,b)},100)})},1e3)},tinymce:{getStats:function(a){var b=a.getBody(),c=tinymce.trim(b.innerText||b.textContent);return{chars:c.length,words:c.split(/[\w\u2019\'-]+/).length}},onKeyDown:function(b,c,d){var e=WP_User_Frontend.editorLimit.tinymce.getStats(b).words-1;d&&a(".mce-path-item.mce-last",b.container).html("Word Limit : "+e+"/"+d),d&&e>d&&(WP_User_Frontend.editorLimit.blockTyping(c),jQuery(".mce-path-item.mce-last",b.container).html(wpuf_frontend.word_limit))},onPaste:function(a,b,c){var d=a.getContent().split(" ").slice(0,c).join(" ");a.setContent(d),WP_User_Frontend.editorLimit.make_media_embed_code(d,a)}},textLimit:function(b,c){var d=a(this),e=d.val().split(" ");c&&e.length>c?(d.closest(".wpuf-fields").find("span.wpuf-wordlimit-message").html(wpuf_frontend.word_limit),WP_User_Frontend.editorLimit.blockTyping(b)):d.closest(".wpuf-fields").find("span.wpuf-wordlimit-message").html(""),"paste"===b.type&&d.val(e.slice(0,c).join(" "))},blockTyping:function(b){-1!==a.inArray(b.keyCode,[46,8,9,27,13,110,190,189])||65==b.keyCode&&!0===b.ctrlKey||b.keyCode>=35&&b.keyCode<=40||(b.preventDefault(),b.stopPropagation())},make_media_embed_code:function(b,c){a.post(ajaxurl,{action:"make_media_embed_code",content:b},function(a){c.setContent(c.getContent()+c.setContent(a))})}},doUncheckRadioBtn:function(a){a.checked=!1}},a(function(){if(WP_User_Frontend.init(),a("ul.wpuf-payment-gateways").on("click","input[type=radio]",function(b){a(".wpuf-payment-instruction").slideUp(250),a(this).parents("li").find(".wpuf-payment-instruction").slideDown(250)}),a("ul.wpuf-payment-gateways li").find("input[type=radio]").is(":checked")){a("ul.wpuf-payment-gateways li").find("input[type=radio]:checked").parents("li").find(".wpuf-payment-instruction").slideDown(250)}else a("ul.wpuf-payment-gateways li").first().find("input[type=radio]").click()}),a(function(){a('input[name="first_name"], input[name="last_name"]').on("change keyup",function(){var b,c=a.makeArray(a('input[name="first_name"], input[name="last_name"]').map(function(){if(b=a(this).val())return b})).join(" ");a('input[name="display_name"]').val(c)})}),a(function(a){a('.wpuf-form-add input[name="dokan_store_name"]').on("focusout",function(){var b=a(this).val().toLowerCase().replace(/-+/g,"").replace(/\s+/g,"-").replace(/[^a-z0-9-]/g,"");a('input[name="shopurl"]').val(b),a("#url-alart").text(b),a('input[name="shopurl"]').focus()}),a('.wpuf-form-add input[name="shopurl"]').keydown(function(b){a(this).val();-1!==a.inArray(b.keyCode,[46,8,9,27,13,91,109,110,173,189,190])||65==b.keyCode&&!0===b.ctrlKey||b.keyCode>=35&&b.keyCode<=39||(b.shiftKey||(b.keyCode<65||b.keyCode>90)&&(b.keyCode<48||b.keyCode>57))&&(b.keyCode<96||b.keyCode>105)&&b.preventDefault()}),a('.wpuf-form-add input[name="shopurl"]').keyup(function(b){a("#url-alart").text(a(this).val())}),a('.wpuf-form-add input[name="shopurl"]').on("focusout",function(){var b=a(this),c={action:"shop_url",url_slug:b.val(),_nonce:dokan.nonce};""!==b.val()&&a.post(dokan.ajaxurl,c,function(b){0==b?(a("#url-alart").removeClass("text-success").addClass("text-danger"),a("#url-alart-mgs").removeClass("text-success").addClass("text-danger").text(dokan.seller.notAvailable)):(a("#url-alart").removeClass("text-danger").addClass("text-success"),a("#url-alart-mgs").removeClass("text-danger").addClass("text-success").text(dokan.seller.available))})}),a(".wpuf-form-add #wpuf-map-add-location").attr("name","find_address")})}(jQuery,window);
assets/js/upload.js CHANGED
@@ -38,9 +38,7 @@
38
  action: 'wpuf_upload_file',
39
  form_id: $( '#' + browse_button ).data('form_id')
40
  },
41
- max_file_count : 2,
42
- multiple_queues: false,
43
- multi_selection: ( ( browse_button == 'wpuf-avatar-pickfiles' || browse_button == 'wpuf-featured_image-pickfiles' ) ? false : true ),
44
  urlstream_upload: true,
45
  file_data_name: 'wpuf_file',
46
  max_file_size: max_file_size + 'kb',
@@ -162,7 +160,7 @@
162
  $container.append(response.response);
163
 
164
  if ( this.perFileCount > this.max ) {
165
- var attach_id = $('.wpuf-image-wrap:last a.attachment-delete',$container).data('attach_id');
166
  self.removeExtraAttachment(attach_id);
167
  $('.wpuf-image-wrap',$container).last().remove();
168
  this.perFileCount--;
@@ -209,12 +207,12 @@
209
  cancelButtonClass: 'btn btn-danger',
210
  }).then(function () {
211
  var data = {
212
- 'attach_id' : el.data('attach_id'),
213
  'nonce' : wpuf_frontend_upload.nonce,
214
  'action' : 'wpuf_file_del'
215
  };
216
  self.removed_files.push(data);
217
- jQuery('#del_attach').val(el.data('attach_id'));
218
  jQuery.post(wpuf_frontend_upload.ajaxurl, data, function() {
219
  self.perFileCount--;
220
  el.parent().parent().remove();
@@ -227,8 +225,6 @@
227
  },
228
 
229
  removeExtraAttachment : function( attach_id ) {
230
-
231
-
232
  var self = this;
233
 
234
  var data = {
38
  action: 'wpuf_upload_file',
39
  form_id: $( '#' + browse_button ).data('form_id')
40
  },
41
+ multi_selection: false,
 
 
42
  urlstream_upload: true,
43
  file_data_name: 'wpuf_file',
44
  max_file_size: max_file_size + 'kb',
160
  $container.append(response.response);
161
 
162
  if ( this.perFileCount > this.max ) {
163
+ var attach_id = $('.wpuf-image-wrap:last a.attachment-delete',$container).data('attach-id');
164
  self.removeExtraAttachment(attach_id);
165
  $('.wpuf-image-wrap',$container).last().remove();
166
  this.perFileCount--;
207
  cancelButtonClass: 'btn btn-danger',
208
  }).then(function () {
209
  var data = {
210
+ 'attach_id' : el.data('attach-id'),
211
  'nonce' : wpuf_frontend_upload.nonce,
212
  'action' : 'wpuf_file_del'
213
  };
214
  self.removed_files.push(data);
215
+ jQuery('#del_attach').val(el.data('attach-id'));
216
  jQuery.post(wpuf_frontend_upload.ajaxurl, data, function() {
217
  self.perFileCount--;
218
  el.parent().parent().remove();
225
  },
226
 
227
  removeExtraAttachment : function( attach_id ) {
 
 
228
  var self = this;
229
 
230
  var data = {
assets/js/upload.min.js CHANGED
@@ -1 +1 @@
1
- !function(a){window.WPUF_Uploader=function(b,c,d,e,f,g){if(this.removed_files=[],this.container=c,this.browse_button=b,this.max=d||1,this.count=a("#"+c).find(".wpuf-attachment-list > li").length,this.perFileCount=0,this.UploadedFiles=0,a("#"+b).length)return a("ul.wpuf-attachment-list").sortable({placeholder:"highlight"}),a("ul.wpuf-attachment-list").disableSelection(),this.uploader=new plupload.Uploader({runtimes:"html5,html4",browse_button:b,container:c,multipart:!0,multipart_params:{action:"wpuf_upload_file",form_id:a("#"+b).data("form_id")},max_file_count:2,multiple_queues:!1,multi_selection:"wpuf-avatar-pickfiles"!=b&&"wpuf-featured_image-pickfiles"!=b,urlstream_upload:!0,file_data_name:"wpuf_file",max_file_size:g+"kb",url:wpuf_frontend_upload.plupload.url+"&type="+e,flash_swf_url:wpuf_frontend_upload.flash_swf_url,filters:[{title:"Allowed Files",extensions:f}]}),this.uploader.bind("Init",a.proxy(this,"init")),this.uploader.bind("FilesAdded",a.proxy(this,"added")),this.uploader.bind("QueueChanged",a.proxy(this,"upload")),this.uploader.bind("UploadProgress",a.proxy(this,"progress")),this.uploader.bind("Error",a.proxy(this,"error")),this.uploader.bind("FileUploaded",a.proxy(this,"uploaded")),this.uploader.init(),a("#"+c).on("click","a.attachment-delete",a.proxy(this.removeAttachment,this)),this.uploader},WPUF_Uploader.prototype={init:function(b,c){this.showHide(),a("#"+this.container).prepend('<div class="wpuf-file-warning"></div>')},showHide:function(){if(this.count>=this.max)return this.count,this.max,a("#"+this.container+" .wpuf-file-warning").html(wpuf_frontend_upload.warning),void a("#"+this.container).find(".file-selector").hide();a("#"+this.container+" .wpuf-file-warning").html(""),a("#"+this.container).find(".file-selector").show()},added:function(b,c){var d=a("#"+this.container).find(".wpuf-attachment-upload-filelist");this.showHide(),a.each(c,function(b,c){a(".wpuf-submit-button").attr("disabled","disabled"),d.append('<div class="upload-item" id="'+c.id+'"><div class="progress progress-striped active"><div class="bar"></div></div><div class="filename original">'+c.name+" ("+plupload.formatSize(c.size)+") <b></b></div></div>")}),b.refresh(),b.start()},upload:function(a){this.count=a.files.length-this.removed_files.length,this.showHide()},progress:function(b,c){var d=a("#"+c.id);a(".bar",d).css({width:c.percent+"%"}),a(".percent",d).html(c.percent+"%")},error:function(b,c){a("#"+this.container).find("#"+c.file.id).remove();var d="";switch(c.code){case-600:d=wpuf_frontend_upload.plupload.size_error;break;case-601:d=wpuf_frontend_upload.plupload.type_error;break;default:d="Error #"+c.code+": "+c.message}alert(d),this.count-=1,this.showHide(),this.uploader.refresh()},uploaded:function(b,c,d){var e=this;if(a("#"+c.id+" b").html("100%"),a("#"+c.id).remove(),"error"!==d.response){this.perFileCount++,this.UploadedFiles++;var f=a("#"+this.container).find(".wpuf-attachment-list");if(f.append(d.response),this.perFileCount>this.max){var g=a(".wpuf-image-wrap:last a.attachment-delete",f).data("attach_id");e.removeExtraAttachment(g),a(".wpuf-image-wrap",f).last().remove(),this.perFileCount--}}else alert(d.error),this.count-=1,this.showHide();var h=this.UploadedFiles,i=b.files.length;if(a("ul.wpuf-attachment-list > li").length>=this.max&&a("#"+this.container).find(".file-selector").hide(),i===h){if("undefined"!=typeof grecaptcha&&!grecaptcha.getResponse().length)return;a(".wpuf-submit-button").removeAttr("disabled")}},removeAttachment:function(b){b.preventDefault();var c=this,d=a(b.currentTarget);swal({text:wpuf_frontend_upload.confirmMsg,type:"warning",showCancelButton:!0,confirmButtonColor:"#d54e21",confirmButtonText:wpuf_frontend_upload.delete_it,cancelButtonText:wpuf_frontend_upload.cancel_it,confirmButtonClass:"btn btn-success",cancelButtonClass:"btn btn-danger"}).then(function(){var a={attach_id:d.data("attach_id"),nonce:wpuf_frontend_upload.nonce,action:"wpuf_file_del"};c.removed_files.push(a),jQuery("#del_attach").val(d.data("attach_id")),jQuery.post(wpuf_frontend_upload.ajaxurl,a,function(){c.perFileCount--,d.parent().parent().remove(),c.count-=1,c.showHide(),c.uploader.refresh()})})},removeExtraAttachment:function(a){var b=this,c={attach_id:a,nonce:wpuf_frontend_upload.nonce,action:"wpuf_file_del"};this.removed_files.push(c),jQuery.post(wpuf_frontend_upload.ajaxurl,c,function(){b.count-=1,b.showHide(),b.uploader.refresh()})}}}(jQuery);
1
+ !function(a){window.WPUF_Uploader=function(b,c,d,e,f,g){if(this.removed_files=[],this.container=c,this.browse_button=b,this.max=d||1,this.count=a("#"+c).find(".wpuf-attachment-list > li").length,this.perFileCount=0,this.UploadedFiles=0,a("#"+b).length)return a("ul.wpuf-attachment-list").sortable({placeholder:"highlight"}),a("ul.wpuf-attachment-list").disableSelection(),this.uploader=new plupload.Uploader({runtimes:"html5,html4",browse_button:b,container:c,multipart:!0,multipart_params:{action:"wpuf_upload_file",form_id:a("#"+b).data("form_id")},multi_selection:!1,urlstream_upload:!0,file_data_name:"wpuf_file",max_file_size:g+"kb",url:wpuf_frontend_upload.plupload.url+"&type="+e,flash_swf_url:wpuf_frontend_upload.flash_swf_url,filters:[{title:"Allowed Files",extensions:f}]}),this.uploader.bind("Init",a.proxy(this,"init")),this.uploader.bind("FilesAdded",a.proxy(this,"added")),this.uploader.bind("QueueChanged",a.proxy(this,"upload")),this.uploader.bind("UploadProgress",a.proxy(this,"progress")),this.uploader.bind("Error",a.proxy(this,"error")),this.uploader.bind("FileUploaded",a.proxy(this,"uploaded")),this.uploader.init(),a("#"+c).on("click","a.attachment-delete",a.proxy(this.removeAttachment,this)),this.uploader},WPUF_Uploader.prototype={init:function(b,c){this.showHide(),a("#"+this.container).prepend('<div class="wpuf-file-warning"></div>')},showHide:function(){if(this.count>=this.max)return this.count,this.max,a("#"+this.container+" .wpuf-file-warning").html(wpuf_frontend_upload.warning),void a("#"+this.container).find(".file-selector").hide();a("#"+this.container+" .wpuf-file-warning").html(""),a("#"+this.container).find(".file-selector").show()},added:function(b,c){var d=a("#"+this.container).find(".wpuf-attachment-upload-filelist");this.showHide(),a.each(c,function(b,c){a(".wpuf-submit-button").attr("disabled","disabled"),d.append('<div class="upload-item" id="'+c.id+'"><div class="progress progress-striped active"><div class="bar"></div></div><div class="filename original">'+c.name+" ("+plupload.formatSize(c.size)+") <b></b></div></div>")}),b.refresh(),b.start()},upload:function(a){this.count=a.files.length-this.removed_files.length,this.showHide()},progress:function(b,c){var d=a("#"+c.id);a(".bar",d).css({width:c.percent+"%"}),a(".percent",d).html(c.percent+"%")},error:function(b,c){a("#"+this.container).find("#"+c.file.id).remove();var d="";switch(c.code){case-600:d=wpuf_frontend_upload.plupload.size_error;break;case-601:d=wpuf_frontend_upload.plupload.type_error;break;default:d="Error #"+c.code+": "+c.message}alert(d),this.count-=1,this.showHide(),this.uploader.refresh()},uploaded:function(b,c,d){var e=this;if(a("#"+c.id+" b").html("100%"),a("#"+c.id).remove(),"error"!==d.response){this.perFileCount++,this.UploadedFiles++;var f=a("#"+this.container).find(".wpuf-attachment-list");if(f.append(d.response),this.perFileCount>this.max){var g=a(".wpuf-image-wrap:last a.attachment-delete",f).data("attach-id");e.removeExtraAttachment(g),a(".wpuf-image-wrap",f).last().remove(),this.perFileCount--}}else alert(d.error),this.count-=1,this.showHide();var h=this.UploadedFiles,i=b.files.length;if(a("ul.wpuf-attachment-list > li").length>=this.max&&a("#"+this.container).find(".file-selector").hide(),i===h){if("undefined"!=typeof grecaptcha&&!grecaptcha.getResponse().length)return;a(".wpuf-submit-button").removeAttr("disabled")}},removeAttachment:function(b){b.preventDefault();var c=this,d=a(b.currentTarget);swal({text:wpuf_frontend_upload.confirmMsg,type:"warning",showCancelButton:!0,confirmButtonColor:"#d54e21",confirmButtonText:wpuf_frontend_upload.delete_it,cancelButtonText:wpuf_frontend_upload.cancel_it,confirmButtonClass:"btn btn-success",cancelButtonClass:"btn btn-danger"}).then(function(){var a={attach_id:d.data("attach-id"),nonce:wpuf_frontend_upload.nonce,action:"wpuf_file_del"};c.removed_files.push(a),jQuery("#del_attach").val(d.data("attach-id")),jQuery.post(wpuf_frontend_upload.ajaxurl,a,function(){c.perFileCount--,d.parent().parent().remove(),c.count-=1,c.showHide(),c.uploader.refresh()})})},removeExtraAttachment:function(a){var b=this,c={attach_id:a,nonce:wpuf_frontend_upload.nonce,action:"wpuf_file_del"};this.removed_files.push(c),jQuery.post(wpuf_frontend_upload.ajaxurl,c,function(){b.count-=1,b.showHide(),b.uploader.refresh()})}}}(jQuery);
assets/js/wpuf-form-builder-components.js CHANGED
@@ -287,6 +287,7 @@ Vue.component('field-option-data', {
287
  data: function () {
288
  return {
289
  show_value: false,
 
290
  options: [],
291
  selected: []
292
  };
@@ -366,7 +367,9 @@ Vue.component('field-option-data', {
366
  },
367
 
368
  set_option_label: function (index, label) {
369
- this.options[index].value = label.toLocaleLowerCase().replace( /\s/g, '_' );
 
 
370
  }
371
  },
372
 
@@ -1632,11 +1635,19 @@ Vue.component('help-text', {
1632
  text: {
1633
  type: String,
1634
  default: ''
 
 
 
 
 
 
 
 
1635
  }
1636
  },
1637
 
1638
  mounted: function () {
1639
- $(".wpuf-tooltip").tooltip();
1640
  }
1641
  });
1642
 
287
  data: function () {
288
  return {
289
  show_value: false,
290
+ sync_value: true,
291
  options: [],
292
  selected: []
293
  };
367
  },
368
 
369
  set_option_label: function (index, label) {
370
+ if (this.sync_value) {
371
+ this.options[index].value = label.toLocaleLowerCase().replace( /\s/g, '_' );
372
+ }
373
  }
374
  },
375
 
1635
  text: {
1636
  type: String,
1637
  default: ''
1638
+ },
1639
+
1640
+ placement: {
1641
+ type: String,
1642
+ default: 'top',
1643
+ validator: function (placement) {
1644
+ return ['top', 'right', 'bottom', 'left'].indexOf(placement) >= 0;
1645
+ }
1646
  }
1647
  },
1648
 
1649
  mounted: function () {
1650
+ $(this.$el).tooltip();
1651
  }
1652
  });
1653
 
assets/less/frontend-forms.less CHANGED
@@ -109,7 +109,7 @@
109
  background-color: #f2dede;
110
  color: #a94442;
111
  border: 1px solid #ebccd1;
112
- margin: 10px 0 20px 0;
113
  padding: 10px;
114
  .border-radius(3px);
115
  font-size: 13px;
@@ -1923,3 +1923,18 @@ ul.wpuf-form{
1923
  }
1924
  }
1925
  }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
109
  background-color: #f2dede;
110
  color: #a94442;
111
  border: 1px solid #ebccd1;
112
+ margin: 10px 10px 20px;
113
  padding: 10px;
114
  .border-radius(3px);
115
  font-size: 13px;
1923
  }
1924
  }
1925
  }
1926
+
1927
+ .ac_results {
1928
+ z-index: 99999 !important;
1929
+ background-color: #fff !important;
1930
+ color: #000;
1931
+ position: auto !important;
1932
+ width: 390px !important;
1933
+ }
1934
+
1935
+ .ac_results li {
1936
+ border-bottom: 1px solid #ddd;
1937
+ margin-left: 0px;
1938
+ padding-left: 5px !important;
1939
+ text-decoration: none !important;
1940
+ }
assets/less/whats-new.less CHANGED
@@ -62,7 +62,7 @@
62
  font-size: 14px;
63
 
64
  li {
65
- margin-bottom: 30px;
66
  }
67
 
68
  h4 {
@@ -100,7 +100,8 @@
100
  border: 1px solid #3778ff;
101
  }
102
 
103
- &.improvement {
 
104
  background: #3aaa55;
105
  border: 1px solid #3aaa
106
  }
@@ -110,6 +111,10 @@
110
  border: 1px solid #ff4772;
111
  }
112
 
 
 
 
 
113
  }
114
  }
115
  }
62
  font-size: 14px;
63
 
64
  li {
65
+ margin-bottom: 20px;
66
  }
67
 
68
  h4 {
100
  border: 1px solid #3778ff;
101
  }
102
 
103
+ &.improvement,
104
+ &.enhancement {
105
  background: #3aaa55;
106
  border: 1px solid #3aaa
107
  }
111
  border: 1px solid #ff4772;
112
  }
113
 
114
+ &.tweak {
115
+ background: #f9a825;
116
+ border: 1px solid #ffa000;
117
+ }
118
  }
119
  }
120
  }
class/payment.php CHANGED
@@ -390,9 +390,14 @@ class WPUF_Payment {
390
  'custom' => isset( $custom ) ? $custom : '',
391
  ];
392
 
393
- $address_fields = wpuf_get_user_address();
 
 
 
 
 
394
 
395
- if ( !empty( $address_fields ) ) {
396
  update_user_meta( $userdata->ID, 'wpuf_address_fields', $address_fields );
397
  }
398
 
@@ -439,11 +444,11 @@ class WPUF_Payment {
439
  $data['tax'] = floatval( $data['cost'] ) - floatval( $data['subtotal'] );
440
  }
441
 
442
- if ( wpuf_get_option( 'show_address', 'wpuf_address_options', false ) ) {
443
- $data['payer_address'] = wpuf_get_user_address();
444
  }
445
 
446
- if ( !empty( $data['payer_address'] ) ) {
447
  $data['payer_address'] = maybe_serialize( $data['payer_address'] );
448
  }
449
 
390
  'custom' => isset( $custom ) ? $custom : '',
391
  ];
392
 
393
+ if ( isset( $_POST['billing_address'] ) ) {
394
+ $billing_address = wp_unslash( $_POST['billing_address'] );
395
+ $address_fields = array_map( 'sanitize_text_field', $billing_address );
396
+ } else {
397
+ $address_fields = wpuf_get_user_address();
398
+ }
399
 
400
+ if ( ! empty( $address_fields ) ) {
401
  update_user_meta( $userdata->ID, 'wpuf_address_fields', $address_fields );
402
  }
403
 
444
  $data['tax'] = floatval( $data['cost'] ) - floatval( $data['subtotal'] );
445
  }
446
 
447
+ if ( wpuf_get_option( 'show_address', 'wpuf_address_options', false ) && ! empty( $data['user_id'] ) ) {
448
+ $data['payer_address'] = wpuf_get_user_address( $data['user_id'] );
449
  }
450
 
451
+ if ( ! empty( $data['payer_address'] ) ) {
452
  $data['payer_address'] = maybe_serialize( $data['payer_address'] );
453
  }
454
 
class/upload.php CHANGED
@@ -45,6 +45,18 @@ class WPUF_Upload {
45
  die( 'error' );
46
  }
47
 
 
 
 
 
 
 
 
 
 
 
 
 
48
  // check if guest post enabled for guests
49
  if ( ! is_user_logged_in() ) {
50
  $guest_post = false;
@@ -91,13 +103,35 @@ class WPUF_Upload {
91
  $image_size = wpuf_get_option( 'insert_photo_size', 'wpuf_frontend_posting', 'thumbnail' );
92
  $image_type = wpuf_get_option( 'insert_photo_type', 'wpuf_frontend_posting', 'link' );
93
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
94
  if ( $image_type == 'link' ) {
95
  $response['html'] = wp_get_attachment_link( $attach['attach_id'], $image_size );
96
  } else {
97
  $response['html'] = wp_get_attachment_image( $attach['attach_id'], $image_size );
98
  }
99
  } else {
100
- $response['html'] = $this->attach_html( $attach['attach_id'] );
101
  }
102
 
103
  echo wp_kses( $response['html'], [
@@ -108,8 +142,9 @@ class WPUF_Upload {
108
  'class' => []
109
  ],
110
  'img' => [
111
- 'src' => [],
112
- 'alt' => [],
 
113
  ],
114
  'input' => [
115
  'type' => [],
@@ -124,7 +159,7 @@ class WPUF_Upload {
124
  'a' => [
125
  'href' => [],
126
  'class' => [],
127
- 'data-attach_id' => [],
128
  ],
129
  'span' => [
130
  'class' => []
@@ -134,8 +169,6 @@ class WPUF_Upload {
134
  echo wp_kses_post( $attach['error'] );
135
  }
136
 
137
- // $response = array('success' => false, 'message' => $attach['error']);
138
- // echo json_encode( $response );
139
  exit;
140
  }
141
 
@@ -159,7 +192,7 @@ class WPUF_Upload {
159
  if ( isset( $uploaded_file['file'] ) ) {
160
  $file_loc = $uploaded_file['file'];
161
  $file_name = basename( $upload_data['name'] );
162
- $upload_hash = md5( $upload_data['name'] );
163
  $file_type = wp_check_filetype( $file_name );
164
 
165
  $attachment = [
@@ -180,7 +213,7 @@ class WPUF_Upload {
180
  return [ 'success' => false, 'error' => $uploaded_file['error'] ];
181
  }
182
 
183
- public static function attach_html( $attach_id, $type = null ) {
184
  if ( ! $type ) {
185
  $type = isset( $_GET['type'] ) ? sanitize_text_field( wp_unslash( $_GET['type'] ) ) : 'image';
186
  }
@@ -192,14 +225,35 @@ class WPUF_Upload {
192
  }
193
 
194
  if ( wp_attachment_is_image( $attach_id ) ) {
195
- $image = wp_get_attachment_image_src( $attach_id, 'thumbnail' );
 
 
 
 
 
 
 
 
 
 
 
196
  $image = $image[0];
197
  } else {
198
  $image = wp_mime_type_icon( $attach_id );
199
  }
200
 
 
 
 
 
 
 
 
 
 
 
201
  $html = '<li class="ui-state-default wpuf-image-wrap thumbnail">';
202
- $html .= sprintf( '<div class="attachment-name"><img src="%s" alt="%s" /></div>', $image, esc_attr( $attachment->post_title ) );
203
 
204
  if ( wpuf_get_option( 'image_caption', 'wpuf_frontend_posting', 'off' ) == 'on' ) {
205
  $html .= '<div class="wpuf-file-input-wrap">';
@@ -211,7 +265,7 @@ class WPUF_Upload {
211
 
212
  $html .= sprintf( '<input type="hidden" name="wpuf_files[%s][]" value="%d">', $type, $attach_id );
213
  $html .= '<div class="caption">';
214
- $html .= sprintf( '<a href="#" class="attachment-delete" data-attach_id="%d"> <img src="%s" /></a>', $attach_id, WPUF_ASSET_URI . '/images/del-img.png' );
215
  $html .= sprintf( '<span class="wpuf-drag-file"> <img src="%s" /></span>', WPUF_ASSET_URI . '/images/move-img.png' );
216
  $html .= '</div>';
217
  $html .= '</li>';
@@ -222,15 +276,28 @@ class WPUF_Upload {
222
  public function delete_file() {
223
  check_ajax_referer( 'wpuf_nonce', 'nonce' );
224
 
225
- $attach_id = isset( $_POST['attach_id'] ) ? intval( wp_unslash( $_POST['attach_id'] ) ) : 0;
226
- $attachment = get_post( $attach_id );
 
227
 
228
- //post author or editor role
229
- if ( get_current_user_id() == $attachment->post_author || current_user_can( 'delete_private_pages' ) ) {
230
- echo 'success';
231
  }
232
 
233
- exit;
 
 
 
 
 
 
 
 
 
 
 
 
 
234
  }
235
 
236
  public function associate_file( $attach_id, $post_id ) {
@@ -254,7 +321,7 @@ class WPUF_Upload {
254
  function duplicate_upload( $file ) {
255
  global $wpdb;
256
 
257
- $upload_hash = md5( $file['name'] );
258
 
259
  $sql = $wpdb->prepare( "SELECT post_id FROM $wpdb->postmeta m JOIN $wpdb->posts p ON p.ID = m.post_id WHERE m.meta_key = 'wpuf_file_hash' AND m.meta_value = %s AND p.post_status != 'trash' LIMIT 1;", $upload_hash );
260
  $match = $wpdb->get_var( $sql );
45
  die( 'error' );
46
  }
47
 
48
+ $field_type = isset( $_REQUEST['type'] ) ? sanitize_text_field( wp_unslash( $_REQUEST['type'] ) ) : '';
49
+
50
+ /**
51
+ * Hook fires before begining upload process
52
+ *
53
+ * @since 3.3.0
54
+ *
55
+ * @param int $form_id
56
+ * @param string $field_type
57
+ */
58
+ do_action( 'wpuf_upload_file_init', $form_id, $field_type );
59
+
60
  // check if guest post enabled for guests
61
  if ( ! is_user_logged_in() ) {
62
  $guest_post = false;
103
  $image_size = wpuf_get_option( 'insert_photo_size', 'wpuf_frontend_posting', 'thumbnail' );
104
  $image_type = wpuf_get_option( 'insert_photo_type', 'wpuf_frontend_posting', 'link' );
105
 
106
+ /**
107
+ * Filter upload image size for response
108
+ *
109
+ * @since 3.3.0
110
+ *
111
+ * @param string $image_size
112
+ * @param int $form_id
113
+ * @param string $field_type
114
+ */
115
+ $image_size = apply_filters( 'wpuf_upload_response_image_size', $image_size, $form_id, $field_type );
116
+
117
+ /**
118
+ * Filter upload image type for response
119
+ *
120
+ * @since 3.3.0
121
+ *
122
+ * @param string $image_size
123
+ * @param int $form_id
124
+ * @param string $field_type
125
+ */
126
+ $image_type = apply_filters( 'wpuf_upload_response_image_type', $image_type, $form_id, $field_type );
127
+
128
  if ( $image_type == 'link' ) {
129
  $response['html'] = wp_get_attachment_link( $attach['attach_id'], $image_size );
130
  } else {
131
  $response['html'] = wp_get_attachment_image( $attach['attach_id'], $image_size );
132
  }
133
  } else {
134
+ $response['html'] = self::attach_html( $attach['attach_id'], $field_type, $form_id );
135
  }
136
 
137
  echo wp_kses( $response['html'], [
142
  'class' => []
143
  ],
144
  'img' => [
145
+ 'src' => [],
146
+ 'alt' => [],
147
+ 'class' => [],
148
  ],
149
  'input' => [
150
  'type' => [],
159
  'a' => [
160
  'href' => [],
161
  'class' => [],
162
+ 'data-attach-id' => [],
163
  ],
164
  'span' => [
165
  'class' => []
169
  echo wp_kses_post( $attach['error'] );
170
  }
171
 
 
 
172
  exit;
173
  }
174
 
192
  if ( isset( $uploaded_file['file'] ) ) {
193
  $file_loc = $uploaded_file['file'];
194
  $file_name = basename( $upload_data['name'] );
195
+ $upload_hash = md5( $upload_data['name'] . $upload_data['size'] );
196
  $file_type = wp_check_filetype( $file_name );
197
 
198
  $attachment = [
213
  return [ 'success' => false, 'error' => $uploaded_file['error'] ];
214
  }
215
 
216
+ public static function attach_html( $attach_id, $type = null, $form_id = null ) {
217
  if ( ! $type ) {
218
  $type = isset( $_GET['type'] ) ? sanitize_text_field( wp_unslash( $_GET['type'] ) ) : 'image';
219
  }
225
  }
226
 
227
  if ( wp_attachment_is_image( $attach_id ) ) {
228
+ /**
229
+ * Filter upload image size for response
230
+ *
231
+ * @since 3.3.0
232
+ *
233
+ * @param string $image_size
234
+ * @param int $form_id
235
+ * @param string $field_type
236
+ */
237
+ $image_size = apply_filters( 'wpuf_upload_response_image_size', 'thumbnail', $form_id, $type );
238
+
239
+ $image = wp_get_attachment_image_src( $attach_id, $image_size );
240
  $image = $image[0];
241
  } else {
242
  $image = wp_mime_type_icon( $attach_id );
243
  }
244
 
245
+ /**
246
+ * Filter uploaded image class names for the reponse
247
+ *
248
+ * @since 3.3.0
249
+ *
250
+ * @param array $class_names
251
+ */
252
+ $attachment_class_names = apply_filters( 'wpuf_upload_response_image_class_names', [ 'wpuf-attachment-image' ] );
253
+ $attachment_class_names = implode( ' ', $attachment_class_names );
254
+
255
  $html = '<li class="ui-state-default wpuf-image-wrap thumbnail">';
256
+ $html .= sprintf( '<div class="attachment-name"><img src="%s" alt="%s" class="%s" /></div>', $image, esc_attr( $attachment->post_title ), esc_attr( $attachment_class_names ) );
257
 
258
  if ( wpuf_get_option( 'image_caption', 'wpuf_frontend_posting', 'off' ) == 'on' ) {
259
  $html .= '<div class="wpuf-file-input-wrap">';
265
 
266
  $html .= sprintf( '<input type="hidden" name="wpuf_files[%s][]" value="%d">', $type, $attach_id );
267
  $html .= '<div class="caption">';
268
+ $html .= sprintf( '<a href="#" class="attachment-delete" data-attach-id="%d"> <img src="%s" /></a>', $attach_id, WPUF_ASSET_URI . '/images/del-img.png' );
269
  $html .= sprintf( '<span class="wpuf-drag-file"> <img src="%s" /></span>', WPUF_ASSET_URI . '/images/move-img.png' );
270
  $html .= '</div>';
271
  $html .= '</li>';
276
  public function delete_file() {
277
  check_ajax_referer( 'wpuf_nonce', 'nonce' );
278
 
279
+ $post_data = wp_unslash( $_POST );
280
+
281
+ $attachment_id = isset( $post_data['attach_id'] ) ? absint( $post_data['attach_id'] ) : 0;
282
 
283
+ if ( empty( $attachment_id ) ) {
284
+ wp_send_json_error( [ 'message' => __( 'attach_id is required.', 'wp-user-frontend' ) ], 422 );
 
285
  }
286
 
287
+ $attachment = get_post( $attachment_id );
288
+
289
+ // post author or editor role
290
+ if ( get_current_user_id() == absint( $attachment->post_author ) || current_user_can( 'delete_private_pages' ) ) {
291
+ $deleted = wp_delete_attachment( $attachment_id, true );
292
+
293
+ if ( $deleted ) {
294
+ wp_send_json_success( [ 'message' => __( 'Attachment deleted successfully.', 'wp-user-frontend' ) ] );
295
+ }
296
+
297
+ wp_send_json_error( [ 'message' => __( 'Could not deleted the attachment', 'wp-user-frontend' ) ], 422 );
298
+ }
299
+
300
+ wp_send_json_error( [ 'message' => __( 'Something went wrong.', 'wp-user-frontend' ) ], 422 );
301
  }
302
 
303
  public function associate_file( $attach_id, $post_id ) {
321
  function duplicate_upload( $file ) {
322
  global $wpdb;
323
 
324
+ $upload_hash = md5( $file['name'] . $file['size'] );
325
 
326
  $sql = $wpdb->prepare( "SELECT post_id FROM $wpdb->postmeta m JOIN $wpdb->posts p ON p.ID = m.post_id WHERE m.meta_key = 'wpuf_file_hash' AND m.meta_value = %s AND p.post_status != 'trash' LIMIT 1;", $upload_hash );
327
  $match = $wpdb->get_var( $sql );
includes/class-billing-address.php CHANGED
@@ -139,14 +139,20 @@ class WPUF_Ajax_Address_Form {
139
  break;
140
  }
141
 
 
 
 
 
 
 
 
 
142
  if ( $show_address ) {
143
  ?>
144
 
145
  <form class="wpuf-form form-label-above" id="wpuf-ajax-address-form" action="" method="post">
146
- <?php
147
- wp_nonce_field( 'wpuf-ajax-address' );
148
- wp_nonce_field( 'wpuf_address_ajax_action', 'wpuf_save_address_nonce' );
149
- ?>
150
 
151
  <table id="wpuf-address-country-state" class="wp-list-table widefat">
152
  <tr>
@@ -285,11 +291,7 @@ class WPUF_Ajax_Address_Form {
285
  * Ajax Form action
286
  */
287
  public function ajax_form_action() {
288
- $nonce = isset( $_POST['wpuf_save_address_nonce'] ) ? sanitize_key( wp_unslash( $_POST['wpuf_save_address_nonce'] ) ) : '';
289
-
290
- if ( ! empty( $nonce ) && ! wp_verify_nonce( $nonce, 'wpuf_address_ajax_action' ) ) {
291
- return;
292
- }
293
 
294
  $post_data = wp_unslash( $_POST );
295
 
139
  break;
140
  }
141
 
142
+ if ( is_user_logged_in() ) {
143
+ $user_id = get_current_user_id();
144
+ } else if ( isset( $_GET['user_id'] ) ) {
145
+ $user_id = absint( $_GET['user_id'] );
146
+ } else {
147
+ return;
148
+ }
149
+
150
  if ( $show_address ) {
151
  ?>
152
 
153
  <form class="wpuf-form form-label-above" id="wpuf-ajax-address-form" action="" method="post">
154
+ <?php wp_nonce_field( 'wpuf-ajax-address' ); ?>
155
+ <input type="hidden" name="user_id" value="<?php echo esc_attr( $user_id ); ?>">
 
 
156
 
157
  <table id="wpuf-address-country-state" class="wp-list-table widefat">
158
  <tr>
291
  * Ajax Form action
292
  */
293
  public function ajax_form_action() {
294
+ check_ajax_referer( 'wpuf-ajax-address' );
 
 
 
 
295
 
296
  $post_data = wp_unslash( $_POST );
297
 
includes/class-frontend-render-form.php CHANGED
@@ -557,10 +557,27 @@ class WPUF_Frontend_Render_Form {
557
  $taxonomy_name = array_map( 'sanitize_text_field', wp_unslash( $_POST[$taxonomy['name']] ) );
558
  }
559
 
560
- if ( isset( $_POST[$taxonomy['name']] ) && !is_array( $_POST[$taxonomy['name']] ) ) {
561
  $taxonomy_name = sanitize_text_field( wp_unslash( $_POST[$taxonomy['name']] ) );
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
562
  }
563
 
 
564
  if ( isset( $taxonomy_name ) && $taxonomy_name !=0 && $taxonomy_name !=-1 ) {
565
  if ( is_object_in_taxonomy( $this->form_settings['post_type'], $taxonomy['name'] ) ) {
566
  $tax = $taxonomy_name;
@@ -570,9 +587,7 @@ class WPUF_Frontend_Render_Form {
570
  }
571
 
572
  if ( $taxonomy['type'] == 'text' ) {
573
- $hierarchical = array_map( 'trim', array_map( 'strip_tags', explode( ',', $taxonomy_name ) ) );
574
-
575
- wp_set_object_terms( $post_id, $hierarchical, $taxonomy['name'] );
576
 
577
  // woocommerce check
578
  if ( isset( $taxonomy['woo_attr'] ) && $taxonomy['woo_attr'] == 'yes' && !empty( $taxonomy_name ) ) {
@@ -662,8 +677,7 @@ class WPUF_Frontend_Render_Form {
662
  if( isset( $post_data[$value['name']] ) && is_array( $post_data[$value['name']] ) ) {
663
  $value_name = isset( $post_data[$value['name']] ) ? array_map( 'sanitize_text_field', wp_unslash( $post_data[$value['name']] ) ): '';
664
  } else {
665
- // $value_name = isset( $post_data[$value['name']] ) ? sanitize_text_field( wp_unslash( $post_data[$value['name']] ) ): '';
666
- $value_name = isset( $post_data[$value['name']] ) ? wp_unslash( $post_data[$value['name']] ): '';
667
  }
668
 
669
  if ( isset( $post_data['wpuf_files'][$value['name']] ) ) {
557
  $taxonomy_name = array_map( 'sanitize_text_field', wp_unslash( $_POST[$taxonomy['name']] ) );
558
  }
559
 
560
+ if ( isset( $_POST[$taxonomy['name']] ) && ! is_array( $_POST[$taxonomy['name']] ) ) {
561
  $taxonomy_name = sanitize_text_field( wp_unslash( $_POST[$taxonomy['name']] ) );
562
+
563
+ if ( 'text' === $taxonomy['type'] ) {
564
+ $terms = explode( ',', $taxonomy_name );
565
+ $terms = array_map( function ( $term_name ) use ( $taxonomy ) {
566
+ $term = get_term_by( 'name', $term_name, $taxonomy['name'] );
567
+
568
+ if ( $term instanceof WP_Term ) {
569
+ return $term->term_id;
570
+ }
571
+
572
+ return null;
573
+
574
+ }, $terms );
575
+
576
+ $taxonomy_name = array_filter( $terms );
577
+ }
578
  }
579
 
580
+ // At this point $taxonomy_name should be a single id or array of ids
581
  if ( isset( $taxonomy_name ) && $taxonomy_name !=0 && $taxonomy_name !=-1 ) {
582
  if ( is_object_in_taxonomy( $this->form_settings['post_type'], $taxonomy['name'] ) ) {
583
  $tax = $taxonomy_name;
587
  }
588
 
589
  if ( $taxonomy['type'] == 'text' ) {
590
+ wp_set_object_terms( $post_id, $taxonomy_name, $taxonomy['name'] );
 
 
591
 
592
  // woocommerce check
593
  if ( isset( $taxonomy['woo_attr'] ) && $taxonomy['woo_attr'] == 'yes' && !empty( $taxonomy_name ) ) {
677
  if( isset( $post_data[$value['name']] ) && is_array( $post_data[$value['name']] ) ) {
678
  $value_name = isset( $post_data[$value['name']] ) ? array_map( 'sanitize_text_field', wp_unslash( $post_data[$value['name']] ) ): '';
679
  } else {
680
+ $value_name = isset( $post_data[$value['name']] ) ? sanitize_text_field( wp_unslash( $post_data[$value['name']] ) ): '';
 
681
  }
682
 
683
  if ( isset( $post_data['wpuf_files'][$value['name']] ) ) {
includes/class-whats-new.php CHANGED
@@ -86,7 +86,11 @@ class WPUF_Whats_New {
86
  public function admin_notice() {
87
  if ( !$this->has_new() ) {
88
  return;
89
- } ?>
 
 
 
 
90
  <div class="notice notice-success wpuf-whats-new-notice free">
91
 
92
  <div class="wpuf-whats-new-icon">
86
  public function admin_notice() {
87
  if ( !$this->has_new() ) {
88
  return;
89
+ }
90
+
91
+ wp_enqueue_script( 'wp-util' );
92
+
93
+ ?>
94
  <div class="notice notice-success wpuf-whats-new-notice free">
95
 
96
  <div class="wpuf-whats-new-icon">
includes/fields/class-abstract-fields.php CHANGED
@@ -675,9 +675,9 @@ abstract class WPUF_Field_Contract {
675
 
676
  public function after_field_print_label() {
677
  if ( is_admin() ) {
678
- echo wp_kses_post( '</td> </tr>' );
679
  } else {
680
- echo wp_kses_post( '</li>' );
681
  }
682
  }
683
 
@@ -771,7 +771,7 @@ abstract class WPUF_Field_Contract {
771
 
772
  if ( $cond_inputs['condition_status'] == 'yes' ) {
773
  $cond_inputs['type'] = isset( $form_field['input_type'] ) ? $form_field['input_type'] : '';
774
- $cond_inputs['name'] = isset( $form_field['name'] ) ? $form_field['name'] : '';
775
  $cond_inputs['form_id'] = $form_id;
776
  $condition = json_encode( $cond_inputs );
777
  } else {
675
 
676
  public function after_field_print_label() {
677
  if ( is_admin() ) {
678
+ ?></td></tr><?php
679
  } else {
680
+ ?></li><?php
681
  }
682
  }
683
 
771
 
772
  if ( $cond_inputs['condition_status'] == 'yes' ) {
773
  $cond_inputs['type'] = isset( $form_field['input_type'] ) ? $form_field['input_type'] : '';
774
+ $cond_inputs['name'] = isset( $form_field['name'] ) ? $form_field['name'] : $form_field['template'] . '_' . $form_field['id'];
775
  $cond_inputs['form_id'] = $form_id;
776
  $condition = json_encode( $cond_inputs );
777
  } else {
includes/fields/class-field-checkbox.php CHANGED
@@ -164,4 +164,49 @@ class WPUF_Form_Field_Checkbox extends WPUF_Field_Contract {
164
 
165
  return $formatted_value;
166
  }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
167
  }
164
 
165
  return $formatted_value;
166
  }
167
+
168
+ /**
169
+ * Render checkbox field data
170
+ *
171
+ * @since 3.3.0
172
+ *
173
+ * @param mixed $data
174
+ * @param array $field
175
+ *
176
+ * @return string
177
+ */
178
+ public function render_field_data( $data, $field ) {
179
+ if ( empty( $field['options'] ) || ! is_array( $field['options'] ) ) {
180
+ return;
181
+ }
182
+
183
+ $data = is_array( $data ) ? array_pop( $data ) : $data;
184
+ $data = explode( '|' , $data );
185
+ $selected = [];
186
+
187
+ foreach ( $data as $item ) {
188
+ $item = trim( $item );
189
+
190
+ if ( isset( $field['options'][ $item ] ) ) {
191
+ $selected[] = $field['options'][ $item ];
192
+ }
193
+ }
194
+
195
+ $hide_label = isset( $field['hide_field_label'] )
196
+ ? wpuf_validate_boolean( $field['hide_field_label'] )
197
+ : false;
198
+
199
+ $container_classnames = [ 'wpuf-field-data', 'wpuf-field-data-' . $this->input_type ];
200
+
201
+ ob_start();
202
+ ?>
203
+ <li class="<?php echo esc_attr( implode( ' ' , $container_classnames ) ); ?>">
204
+ <?php if ( ! $hide_label ): ?>
205
+ <label><?php echo esc_html( $field['label'] ); ?></label>
206
+ <?php endif; ?>
207
+ <?php echo esc_html( implode( ' | ' , $selected ) ); ?>
208
+ </li>
209
+ <?php
210
+ return ob_get_clean();
211
+ }
212
  }
includes/fields/class-field-dropdown.php CHANGED
@@ -160,4 +160,38 @@ class WPUF_Form_Field_Dropdown extends WPUF_Field_Contract {
160
 
161
  return $posts;
162
  }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
163
  }
160
 
161
  return $posts;
162
  }
163
+
164
+ /**
165
+ * Render radio field data
166
+ *
167
+ * @since 3.3.0
168
+ *
169
+ * @param mixed $data
170
+ * @param array $field
171
+ *
172
+ * @return string
173
+ */
174
+ public function render_field_data( $data, $field ) {
175
+ $data = is_array( $data ) ? array_pop( $data ) : $data;
176
+ $hide_label = isset( $field['hide_field_label'] )
177
+ ? wpuf_validate_boolean( $field['hide_field_label'] )
178
+ : false;
179
+
180
+ $container_classnames = [ 'wpuf-field-data', 'wpuf-field-data-' . $this->input_type ];
181
+
182
+ if ( empty( $field['options'] ) || ! is_array( $field['options'] ) || ! isset( $field['options'][ $data ] ) ) {
183
+ return;
184
+ }
185
+
186
+ ob_start();
187
+ ?>
188
+ <li class="<?php echo esc_attr( implode( ' ' , $container_classnames ) ); ?>">
189
+ <?php if ( ! $hide_label ): ?>
190
+ <label><?php echo esc_html( $field['label'] ); ?></label>
191
+ <?php endif; ?>
192
+ <?php echo esc_html( $field['options'][ $data ] ); ?>
193
+ </li>
194
+ <?php
195
+ return ob_get_clean();
196
+ }
197
  }
includes/fields/class-field-html.php CHANGED
@@ -22,6 +22,7 @@ class WPUF_Form_Field_HTML extends WPUF_Field_Contract {
22
  * @return void
23
  */
24
  public function render( $field_settings, $form_id, $type = 'post', $post_id = null ) {
 
25
  ?>
26
  <li <?php $this->print_list_attributes( $field_settings ); ?>>
27
 
22
  * @return void
23
  */
24
  public function render( $field_settings, $form_id, $type = 'post', $post_id = null ) {
25
+ $field_settings['name'] = isset( $field_settings['name'] ) ? $field_settings['name'] : $this->input_type . '_' . $field_settings['id'];
26
  ?>
27
  <li <?php $this->print_list_attributes( $field_settings ); ?>>
28
 
includes/fields/class-field-multidropdown.php CHANGED
@@ -116,4 +116,49 @@ class WPUF_Form_Field_MultiDropdown extends WPUF_Form_Field_Dropdown {
116
 
117
  return $entry_value;
118
  }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
119
  }
116
 
117
  return $entry_value;
118
  }
119
+
120
+ /**
121
+ * Render multiselect field data
122
+ *
123
+ * @since 3.3.0
124
+ *
125
+ * @param mixed $data
126
+ * @param array $field
127
+ *
128
+ * @return string
129
+ */
130
+ public function render_field_data( $data, $field ) {
131
+ if ( empty( $field['options'] ) || ! is_array( $field['options'] ) ) {
132
+ return;
133
+ }
134
+
135
+ $data = is_array( $data ) ? array_pop( $data ) : $data;
136
+ $data = explode( '|' , $data );
137
+ $selected = [];
138
+
139
+ foreach ( $data as $item ) {
140
+ $item = trim( $item );
141
+
142
+ if ( isset( $field['options'][ $item ] ) ) {
143
+ $selected[] = $field['options'][ $item ];
144
+ }
145
+ }
146
+
147
+ $hide_label = isset( $field['hide_field_label'] )
148
+ ? wpuf_validate_boolean( $field['hide_field_label'] )
149
+ : false;
150
+
151
+ $container_classnames = [ 'wpuf-field-data', 'wpuf-field-data-' . $this->input_type ];
152
+
153
+ ob_start();
154
+ ?>
155
+ <li class="<?php echo esc_attr( implode( ' ' , $container_classnames ) ); ?>">
156
+ <?php if ( ! $hide_label ): ?>
157
+ <label><?php echo esc_html( $field['label'] ); ?></label>
158
+ <?php endif; ?>
159
+ <?php echo esc_html( implode( ' | ' , $selected ) ); ?>
160
+ </li>
161
+ <?php
162
+ return ob_get_clean();
163
+ }
164
  }
includes/fields/class-field-radio.php CHANGED
@@ -51,6 +51,7 @@ class WPUF_Form_Field_Radio extends WPUF_Form_Field_Checkbox {
51
  class="<?php echo esc_attr( 'wpuf_' . $field_settings['name'] . '_' . $form_id ); ?>"
52
  type="radio"
53
  value="<?php echo esc_attr( $value ); ?>"<?php checked( $selected, $value ); ?>
 
54
  />
55
  <?php echo $option; // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped ?>
56
  </label>
@@ -130,4 +131,38 @@ class WPUF_Form_Field_Radio extends WPUF_Form_Field_Checkbox {
130
 
131
  return isset( $field['options'][$val] ) ? $field['options'][$val] : '';
132
  }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
133
  }
51
  class="<?php echo esc_attr( 'wpuf_' . $field_settings['name'] . '_' . $form_id ); ?>"
52
  type="radio"
53
  value="<?php echo esc_attr( $value ); ?>"<?php checked( $selected, $value ); ?>
54
+ ondblclick="WP_User_Frontend.doUncheckRadioBtn(this)"
55
  />
56
  <?php echo $option; // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped ?>
57
  </label>
131
 
132
  return isset( $field['options'][$val] ) ? $field['options'][$val] : '';
133
  }
134
+
135
+ /**
136
+ * Render radio field data
137
+ *
138
+ * @since 3.3.0
139
+ *
140
+ * @param mixed $data
141
+ * @param array $field
142
+ *
143
+ * @return string
144
+ */
145
+ public function render_field_data( $data, $field ) {
146
+ $data = is_array( $data ) ? array_pop( $data ) : $data;
147
+ $hide_label = isset( $field['hide_field_label'] )
148
+ ? wpuf_validate_boolean( $field['hide_field_label'] )
149
+ : false;
150
+
151
+ $container_classnames = [ 'wpuf-field-data', 'wpuf-field-data-' . $this->input_type ];
152
+
153
+ if ( empty( $field['options'] ) || ! is_array( $field['options'] ) || ! isset( $field['options'][ $data ] ) ) {
154
+ return;
155
+ }
156
+
157
+ ob_start();
158
+ ?>
159
+ <li class="<?php echo esc_attr( implode( ' ' , $container_classnames ) ); ?>">
160
+ <?php if ( ! $hide_label ): ?>
161
+ <label><?php echo esc_html( $field['label'] ); ?></label>
162
+ <?php endif; ?>
163
+ <?php echo esc_html( $field['options'][ $data ] ); ?>
164
+ </li>
165
+ <?php
166
+ return ob_get_clean();
167
+ }
168
  }
includes/fields/class-field-recaptcha.php CHANGED
@@ -126,7 +126,7 @@ class WPUF_Form_Field_reCaptcha extends WPUF_Field_Contract {
126
  'msg_title' => __( 'Site key and Secret key', 'wp-user-frontend' ),
127
  'msg' => sprintf(
128
  __( 'You need to set Site key and Secret key in <a href="%s" target="_blank">Settings</a> in order to use "Recaptcha" field. <a href="%s" target="_blank">Click here to get the these key</a>.', 'wp-user-frontend' ),
129
- admin_url( 'admin.php?page=wpuf#/settings' ),
130
  'https://www.google.com/recaptcha/'
131
  ),
132
  ];
126
  'msg_title' => __( 'Site key and Secret key', 'wp-user-frontend' ),
127
  'msg' => sprintf(
128
  __( 'You need to set Site key and Secret key in <a href="%s" target="_blank">Settings</a> in order to use "Recaptcha" field. <a href="%s" target="_blank">Click here to get the these key</a>.', 'wp-user-frontend' ),
129
+ admin_url( 'admin.php?page=wpuf-settings' ),
130
  'https://www.google.com/recaptcha/'
131
  ),
132
  ];
includes/fields/class-field-text.php CHANGED
@@ -146,4 +146,34 @@ class WPUF_Form_Field_Text extends WPUF_Field_Contract {
146
  // return sanitize_text_field( trim( $_POST[$field['name']] ) );
147
  return $value;
148
  }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
149
  }
146
  // return sanitize_text_field( trim( $_POST[$field['name']] ) );
147
  return $value;
148
  }
149
+
150
+ /**
151
+ * Render text field data
152
+ *
153
+ * @since 3.3.0
154
+ *
155
+ * @param mixed $data
156
+ * @param array $field
157
+ *
158
+ * @return string
159
+ */
160
+ public function render_field_data( $data, $field ) {
161
+ $data = implode( ',' , $data );
162
+ $hide_label = isset( $field['hide_field_label'] )
163
+ ? wpuf_validate_boolean( $field['hide_field_label'] )
164
+ : false;
165
+
166
+ $container_classnames = [ 'wpuf-field-data', 'wpuf-field-data-' . $this->input_type ];
167
+
168
+ ob_start();
169
+ ?>
170
+ <li class="<?php echo esc_attr( implode( ' ' , $container_classnames ) ); ?>">
171
+ <?php if ( ! $hide_label ): ?>
172
+ <label><?php echo esc_html( $field['label'] ); ?></label>
173
+ <?php endif; ?>
174
+ <?php echo esc_html( $data ); ?>
175
+ </li>
176
+ <?php
177
+ return ob_get_clean();
178
+ }
179
  }
includes/fields/class-field-textarea.php CHANGED
@@ -145,4 +145,34 @@ class WPUF_Form_Field_Textarea extends WPUF_Field_Contract {
145
  $field = isset( $_POST[$field['name']] ) ? sanitize_text_field( wp_unslash( $_POST[$field['name']] ) ) : '';
146
  return trim( $field );
147
  }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
148
  }
145
  $field = isset( $_POST[$field['name']] ) ? sanitize_text_field( wp_unslash( $_POST[$field['name']] ) ) : '';
146
  return trim( $field );
147
  }
148
+
149
+ /**
150
+ * Render textarea field data
151
+ *
152
+ * @since 3.3.0
153
+ *
154
+ * @param mixed $data
155
+ * @param array $field
156
+ *
157
+ * @return string
158
+ */
159
+ public function render_field_data( $data, $field ) {
160
+ $data = implode( ',' , $data );
161
+ $hide_label = isset( $field['hide_field_label'] )
162
+ ? wpuf_validate_boolean( $field['hide_field_label'] )
163
+ : false;
164
+
165
+ $container_classnames = [ 'wpuf-field-data', 'wpuf-field-data-' . $this->input_type ];
166
+
167
+ ob_start();
168
+ ?>
169
+ <li class="<?php echo esc_attr( implode( ' ' , $container_classnames ) ); ?>">
170
+ <?php if ( ! $hide_label ): ?>
171
+ <label><?php echo esc_html( $field['label'] ); ?></label>
172
+ <?php endif; ?>
173
+ <?php echo wp_kses_post( wpautop( make_clickable( $data ) ) ); ?>
174
+ </li>
175
+ <?php
176
+ return ob_get_clean();
177
+ }
178
  }
includes/free/class-login.php CHANGED
@@ -34,6 +34,7 @@ class WPUF_Simple_Login {
34
  add_filter( 'register_url', [$this, 'get_registration_url'] );
35
 
36
  add_filter( 'login_redirect', [ $this, 'default_login_redirect' ] );
 
37
 
38
  add_filter( 'authenticate', [$this, 'successfully_authenticate'], 30, 3 );
39
  }
@@ -333,8 +334,10 @@ class WPUF_Simple_Login {
333
  * @return string
334
  */
335
  public function login_form() {
 
 
336
  $login_page = $this->get_login_url();
337
- $reset = isset( $_GET['reset'] ) ? sanitize_text_field( wp_unslash( $_GET['reset'] ) ) : '';
338
 
339
  if ( false === $login_page ) {
340
  return;
@@ -347,10 +350,11 @@ class WPUF_Simple_Login {
347
  'user' => wp_get_current_user(),
348
  ] );
349
  } else {
350
- $action = isset( $_GET['action'] ) ? sanitize_text_field( wp_unslash( $_GET['action'] ) ) : 'login';
351
 
352
  $args = [
353
- 'action_url' => $login_page,
 
354
  ];
355
 
356
  switch ( $action ) {
@@ -377,9 +381,9 @@ class WPUF_Simple_Login {
377
  break;
378
 
379
  default:
380
- $checkemail = isset( $_GET['checkemail'] ) ? sanitize_email( wp_unslash( $_GET['checkemail'] ) ) : '';
381
 
382
- $loggedout = isset( $_GET['loggedout'] ) ? sanitize_text_field( wp_unslash( $_GET['loggedout'] ) ) : '';
383
 
384
  if ( $checkemail == 'confirm' ) {
385
  $this->messages[] = __( 'Check your e-mail for the confirmation link.', 'wp-user-frontend' );
@@ -505,6 +509,10 @@ class WPUF_Simple_Login {
505
  return;
506
  }
507
 
 
 
 
 
508
  $redirect_to = wpuf_get_option( 'redirect_after_login_page', 'wpuf_profile', false );
509
 
510
  if ( 'previous_page' == $redirect_to && !empty( $_POST['redirect_to'] ) ) {
@@ -536,7 +544,7 @@ class WPUF_Simple_Login {
536
  return $redirect;
537
  }
538
 
539
- return $this->login_redirect();
540
  }
541
 
542
  /**
@@ -983,4 +991,40 @@ class WPUF_Simple_Login {
983
 
984
  return '';
985
  }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
986
  }
34
  add_filter( 'register_url', [$this, 'get_registration_url'] );
35
 
36
  add_filter( 'login_redirect', [ $this, 'default_login_redirect' ] );
37
+ add_filter( 'login_form_login', [ $this, 'default_wp_login_override' ] );
38
 
39
  add_filter( 'authenticate', [$this, 'successfully_authenticate'], 30, 3 );
40
  }
334
  * @return string
335
  */
336
  public function login_form() {
337
+ $getdata = wp_unslash( $_GET );
338
+
339
  $login_page = $this->get_login_url();
340
+ $reset = isset( $getdata['reset'] ) ? sanitize_text_field( $getdata['reset'] ) : '';
341
 
342
  if ( false === $login_page ) {
343
  return;
350
  'user' => wp_get_current_user(),
351
  ] );
352
  } else {
353
+ $action = isset( $getdata['action'] ) ? sanitize_text_field( $getdata['action'] ) : 'login';
354
 
355
  $args = [
356
+ 'action_url' => $login_page,
357
+ 'redirect_to' => isset( $getdata['redirect_to'] ) ? $getdata['redirect_to'] : '',
358
  ];
359
 
360
  switch ( $action ) {
381
  break;
382
 
383
  default:
384
+ $checkemail = isset( $getdata['checkemail'] ) ? sanitize_email( $getdata['checkemail'] ) : '';
385
 
386
+ $loggedout = isset( $getdata['loggedout'] ) ? sanitize_text_field( $getdata['loggedout'] ) : '';
387
 
388
  if ( $checkemail == 'confirm' ) {
389
  $this->messages[] = __( 'Check your e-mail for the confirmation link.', 'wp-user-frontend' );
509
  return;
510
  }
511
 
512
+ if ( isset( $_REQUEST['redirect_to'] ) ) {
513
+ return esc_url_raw( wp_unslash( $_REQUEST['redirect_to'] ) );
514
+ }
515
+
516
  $redirect_to = wpuf_get_option( 'redirect_after_login_page', 'wpuf_profile', false );
517
 
518
  if ( 'previous_page' == $redirect_to && !empty( $_POST['redirect_to'] ) ) {
544
  return $redirect;
545
  }
546
 
547
+ return $link;
548
  }
549
 
550
  /**
991
 
992
  return '';
993
  }
994
+
995
+ /**
996
+ * WP default login page override
997
+ *
998
+ * This hook only works in wp-login.php.
999
+ *
1000
+ * @since 3.3.0
1001
+ *
1002
+ * @return void
1003
+ */
1004
+ public function default_wp_login_override() {
1005
+ $override = wpuf_get_option( 'register_link_override', 'wpuf_profile', false );
1006
+ $login_redirect = wpuf_get_option( 'wp_default_login_redirect', 'wpuf_profile', false );
1007
+ $login_page = wpuf_get_option( 'login_page', 'wpuf_profile', null );
1008
+
1009
+ $login_page_url = get_permalink( $login_page );
1010
+
1011
+ if ( wpuf_validate_boolean( $override ) && wpuf_validate_boolean( $login_redirect ) && ! empty( $login_page_url ) ) {
1012
+ if ( isset( $_REQUEST['redirect_to'] ) ) {
1013
+ $redirect_to = esc_url_raw( wp_unslash( $_REQUEST['redirect_to'] ) );
1014
+ } else {
1015
+ $redirect_to_pg_id = wpuf_get_option( 'redirect_after_login_page', 'wpuf_profile', null );
1016
+ $redirect_to_pg = get_permalink( $redirect_to_pg_id );
1017
+ $redirect_to = $redirect_to_pg ? $redirect_to_pg : home_url();
1018
+ }
1019
+
1020
+ $login_page_url = add_query_arg(
1021
+ 'redirect_to',
1022
+ $redirect_to,
1023
+ $login_page_url
1024
+ );
1025
+
1026
+ wp_safe_redirect( $login_page_url );
1027
+ exit;
1028
+ }
1029
+ }
1030
  }
includes/free/class-registration.php CHANGED
@@ -21,8 +21,10 @@ class WPUF_Registration {
21
 
22
  add_action( 'init', [$this, 'process_registration'] );
23
  add_action( 'init', [$this, 'wp_registration_page_redirect'] );
 
24
 
25
  add_filter( 'register_url', [$this, 'get_registration_url'] );
 
26
  }
27
 
28
  /**
@@ -117,7 +119,7 @@ class WPUF_Registration {
117
  $links = [];
118
 
119
  if ( $args['register'] && get_option( 'users_can_register' ) ) {
120
- $links[] = sprintf( '<a href="%s">%s</a>', $this->get_action_url( 'register' ), __( 'Register', 'wp-user-frontend' ) );
121
  }
122
 
123
  return implode( ' | ', $links );
@@ -151,10 +153,14 @@ class WPUF_Registration {
151
  'user' => wp_get_current_user(),
152
  ] );
153
  } else {
154
- $action = isset( $_GET['action'] ) ? sanitize_text_field( wp_unslash( $_GET['action'] ) ) : 'register';
 
 
 
 
155
 
156
  $args = [
157
- 'action_url' => $reg_page,
158
  'userrole' => $roleencoded,
159
  ];
160
 
@@ -191,55 +197,55 @@ class WPUF_Registration {
191
  $validation_error = apply_filters( 'wpuf_process_registration_errors', $validation_error, $reg_fname, $reg_lname, $reg_email, $log, $pwd1, $pwd2 );
192
 
193
  if ( $validation_error->get_error_code() ) {
194
- $this->registration_errors[] = '<strong>' . __( 'Error', 'wp-user-frontend' ) . ':</strong> ' . $validation_error->get_error_message();
195
 
196
  return;
197
  }
198
 
199
  if ( empty( $reg_fname ) ) {
200
- $this->registration_errors[] = '<strong>' . __( 'Error', 'wp-user-frontend' ) . ':</strong> ' . __( 'First name is required.', 'wp-user-frontend' );
201
 
202
  return;
203
  }
204
 
205
  if ( empty( $reg_lname ) ) {
206
- $this->registration_errors[] = '<strong>' . __( 'Error', 'wp-user-frontend' ) . ':</strong> ' . __( 'Last name is required.', 'wp-user-frontend' );
207
 
208
  return;
209
  }
210
 
211
  if ( empty( $reg_email ) ) {
212
- $this->registration_errors[] = '<strong>' . __( 'Error', 'wp-user-frontend' ) . ':</strong> ' . __( 'Email is required.', 'wp-user-frontend' );
213
 
214
  return;
215
  }
216
 
217
  if ( empty( $log ) ) {
218
- $this->registration_errors[] = '<strong>' . __( 'Error', 'wp-user-frontend' ) . ':</strong> ' . __( 'Username is required.', 'wp-user-frontend' );
219
 
220
  return;
221
  }
222
 
223
  if ( empty( $pwd1 ) ) {
224
- $this->registration_errors[] = '<strong>' . __( 'Error', 'wp-user-frontend' ) . ':</strong> ' . __( 'Password is required.', 'wp-user-frontend' );
225
 
226
  return;
227
  }
228
 
229
  if ( empty( $pwd2 ) ) {
230
- $this->registration_errors[] = '<strong>' . __( 'Error', 'wp-user-frontend' ) . ':</strong> ' . __( 'Confirm Password is required.', 'wp-user-frontend' );
231
 
232
  return;
233
  }
234
 
235
  if ( $pwd1 != $pwd2 ) {
236
- $this->registration_errors[] = '<strong>' . __( 'Error', 'wp-user-frontend' ) . ':</strong> ' . __( 'Passwords are not same.', 'wp-user-frontend' );
237
 
238
  return;
239
  }
240
 
241
  if ( get_user_by( 'login', $log ) === $log ) {
242
- $this->registration_errors[] = '<strong>' . __( 'Error', 'wp-user-frontend' ) . ':</strong> ' . __( 'A user with same username already exists.', 'wp-user-frontend' );
243
 
244
  return;
245
  }
@@ -250,7 +256,7 @@ class WPUF_Registration {
250
  if ( isset( $user->user_login ) ) {
251
  $userdata['user_login'] = $user->user_login;
252
  } else {
253
- $this->registration_errors[] = '<strong>' . __( 'Error', 'wp-user-frontend' ) . ':</strong> ' . __( 'A user could not be found with this email address.', 'wp-user-frontend' );
254
 
255
  return;
256
  }
@@ -281,17 +287,17 @@ class WPUF_Registration {
281
  $user_email = stripslashes( $wpuf_user->user_email );
282
  $blogname = wp_specialchars_decode( get_option( 'blogname' ), ENT_QUOTES );
283
 
284
- $message = sprintf( __( 'New user registration on your site %s:', 'wp-user-frontend' ), get_option( 'blogname' ) ) . "\r\n\r\n";
285
- $message .= sprintf( __( 'Username: %s', 'wp-user-frontend' ), $user_login ) . "\r\n\r\n";
286
- $message .= sprintf( __( 'E-mail: %s', 'wp-user-frontend' ), $user_email ) . "\r\n";
287
  $subject = 'New User Registration';
288
 
289
  $subject = apply_filters( 'wpuf_default_reg_admin_mail_subject', $subject );
290
  $message = apply_filters( 'wpuf_default_reg_admin_mail_body', $message );
291
 
292
- wp_mail( get_option( 'admin_email' ), sprintf( __( '[%s] %s', 'wp-user-frontend' ), $blogname, $subject ), $message );
293
 
294
- $message = sprintf( __( 'Hi, %s', 'wp-user-frontend' ), $user_login ) . "\r\n";
295
  $message .= 'Congrats! You are Successfully registered to ' . $blogname . "\r\n\r\n";
296
  $message .= 'Thanks';
297
  $subject = 'Thank you for registering';
@@ -299,7 +305,7 @@ class WPUF_Registration {
299
  $subject = apply_filters( 'wpuf_default_reg_mail_subject', $subject );
300
  $message = apply_filters( 'wpuf_default_reg_mail_body', $message );
301
 
302
- wp_mail( $user_email, sprintf( __( '[%s] %s', 'wp-user-frontend' ), $blogname, $subject ), $message );
303
  }
304
 
305
  $autologin_after_registration = wpuf_get_option( 'autologin_after_registration', 'wpuf_profile', 'on' );
@@ -346,17 +352,63 @@ class WPUF_Registration {
346
  }
347
  }
348
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
349
  /**
350
  * Show errors on the form
351
  *
352
  * @return void
353
  */
354
  public function show_errors() {
 
 
 
 
 
 
 
 
 
 
 
355
  if ( $this->registration_errors ) {
356
  foreach ( $this->registration_errors as $error ) {
357
- echo wp_kses_post( '<div class="wpuf-error">' );
358
- esc_html_e( $error, 'wp-user-frontend' );
359
- echo wp_kses_post( '</div>' );
 
360
  }
361
  }
362
  }
@@ -382,6 +434,8 @@ class WPUF_Registration {
382
  * @return string
383
  */
384
  public static function get_posted_value( $key ) {
 
 
385
  if ( isset( $_REQUEST[$key] ) ) {
386
  $required_key = sanitize_text_field( wp_unslash( $_REQUEST[$key] ) );
387
  return $required_key;
@@ -389,4 +443,54 @@ class WPUF_Registration {
389
 
390
  return '';
391
  }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
392
  }
21
 
22
  add_action( 'init', [$this, 'process_registration'] );
23
  add_action( 'init', [$this, 'wp_registration_page_redirect'] );
24
+ add_action( 'template_redirect', [ $this, 'registration_page_redirects' ] );
25
 
26
  add_filter( 'register_url', [$this, 'get_registration_url'] );
27
+ add_filter( 'wpuf_registration_redirect', [ $this, 'redirect_to_payment_page' ], 10, 2 );
28
  }
29
 
30
  /**
119
  $links = [];
120
 
121
  if ( $args['register'] && get_option( 'users_can_register' ) ) {
122
+ $links[] = sprintf( '<a href="%s">%s</a>', $this->get_action_url( 'register' ), esc_html__( 'Register', 'wp-user-frontend' ) );
123
  }
124
 
125
  return implode( ' | ', $links );
153
  'user' => wp_get_current_user(),
154
  ] );
155
  } else {
156
+ $queries = wp_unslash( $_GET );
157
+
158
+ array_walk( $queries, function ( &$a ) {
159
+ $a = sanitize_text_field( $a );
160
+ } );
161
 
162
  $args = [
163
+ 'action_url' => add_query_arg( $queries, $reg_page ),
164
  'userrole' => $roleencoded,
165
  ];
166
 
197
  $validation_error = apply_filters( 'wpuf_process_registration_errors', $validation_error, $reg_fname, $reg_lname, $reg_email, $log, $pwd1, $pwd2 );
198
 
199
  if ( $validation_error->get_error_code() ) {
200
+ $this->registration_errors[] = '<strong>' . esc_html__( 'Error', 'wp-user-frontend' ) . ':</strong> ' . $validation_error->get_error_message();
201
 
202
  return;
203
  }
204
 
205
  if ( empty( $reg_fname ) ) {
206
+ $this->registration_errors[] = '<strong>' . esc_html__( 'Error', 'wp-user-frontend' ) . ':</strong> ' . esc_html__( 'First name is required.', 'wp-user-frontend' );
207
 
208
  return;
209
  }
210
 
211
  if ( empty( $reg_lname ) ) {
212
+ $this->registration_errors[] = '<strong>' . esc_html__( 'Error', 'wp-user-frontend' ) . ':</strong> ' . esc_html__( 'Last name is required.', 'wp-user-frontend' );
213
 
214
  return;
215
  }
216
 
217
  if ( empty( $reg_email ) ) {
218
+ $this->registration_errors[] = '<strong>' . esc_html__( 'Error', 'wp-user-frontend' ) . ':</strong> ' . esc_html__( 'Email is required.', 'wp-user-frontend' );
219
 
220
  return;
221
  }
222
 
223
  if ( empty( $log ) ) {
224
+ $this->registration_errors[] = '<strong>' . esc_html__( 'Error', 'wp-user-frontend' ) . ':</strong> ' . esc_html__( 'Username is required.', 'wp-user-frontend' );
225
 
226
  return;
227
  }
228
 
229
  if ( empty( $pwd1 ) ) {
230
+ $this->registration_errors[] = '<strong>' . esc_html__( 'Error', 'wp-user-frontend' ) . ':</strong> ' . esc_html__( 'Password is required.', 'wp-user-frontend' );
231
 
232
  return;
233
  }
234
 
235
  if ( empty( $pwd2 ) ) {
236
+ $this->registration_errors[] = '<strong>' . esc_html__( 'Error', 'wp-user-frontend' ) . ':</strong> ' . esc_html__( 'Confirm Password is required.', 'wp-user-frontend' );
237
 
238
  return;
239
  }
240
 
241
  if ( $pwd1 != $pwd2 ) {
242
+ $this->registration_errors[] = '<strong>' . esc_html__( 'Error', 'wp-user-frontend' ) . ':</strong> ' . esc_html__( 'Passwords are not same.', 'wp-user-frontend' );
243
 
244
  return;
245
  }
246
 
247
  if ( get_user_by( 'login', $log ) === $log ) {
248
+ $this->registration_errors[] = '<strong>' . esc_html__( 'Error', 'wp-user-frontend' ) . ':</strong> ' . esc_html__( 'A user with same username already exists.', 'wp-user-frontend' );
249
 
250
  return;
251
  }
256
  if ( isset( $user->user_login ) ) {
257
  $userdata['user_login'] = $user->user_login;
258
  } else {
259
+ $this->registration_errors[] = '<strong>' . esc_html__( 'Error', 'wp-user-frontend' ) . ':</strong> ' . esc_html__( 'A user could not be found with this email address.', 'wp-user-frontend' );
260
 
261
  return;
262
  }
287
  $user_email = stripslashes( $wpuf_user->user_email );
288
  $blogname = wp_specialchars_decode( get_option( 'blogname' ), ENT_QUOTES );
289
 
290
+ $message = sprintf( esc_html__( 'New user registration on your site %s:', 'wp-user-frontend' ), get_option( 'blogname' ) ) . "\r\n\r\n";
291
+ $message .= sprintf( esc_html__( 'Username: %s', 'wp-user-frontend' ), $user_login ) . "\r\n\r\n";
292
+ $message .= sprintf( esc_html__( 'E-mail: %s', 'wp-user-frontend' ), $user_email ) . "\r\n";
293
  $subject = 'New User Registration';
294
 
295
  $subject = apply_filters( 'wpuf_default_reg_admin_mail_subject', $subject );
296
  $message = apply_filters( 'wpuf_default_reg_admin_mail_body', $message );
297
 
298
+ wp_mail( get_option( 'admin_email' ), sprintf( esc_html__( '[%s] %s', 'wp-user-frontend' ), $blogname, $subject ), $message );
299
 
300
+ $message = sprintf( esc_html__( 'Hi, %s', 'wp-user-frontend' ), $user_login ) . "\r\n";
301
  $message .= 'Congrats! You are Successfully registered to ' . $blogname . "\r\n\r\n";
302
  $message .= 'Thanks';
303
  $subject = 'Thank you for registering';
305
  $subject = apply_filters( 'wpuf_default_reg_mail_subject', $subject );
306
  $message = apply_filters( 'wpuf_default_reg_mail_body', $message );
307
 
308
+ wp_mail( $user_email, sprintf( esc_html__( '[%s] %s', 'wp-user-frontend' ), $blogname, $subject ), $message );
309
  }
310
 
311
  $autologin_after_registration = wpuf_get_option( 'autologin_after_registration', 'wpuf_profile', 'on' );
352
  }
353
  }
354
 
355
+ /**
356
+ * Redirect to subscription page
357
+ *
358
+ * @since 3.3.0
359
+ *
360
+ * @return void
361
+ */
362
+ public function registration_page_redirects() {
363
+ global $post;
364
+
365
+ $registration_page = wpuf_get_option( 'reg_override_page', 'wpuf_profile' );
366
+
367
+ if ( ! isset( $post->ID ) || $post->ID !== absint( $registration_page ) ) {
368
+ return;
369
+ }
370
+
371
+ // Choose subscription pack first then register
372
+ if ( $this->is_activated_subscription_on_registration() ) {
373
+ $subscription_page_id = wpuf_get_option( 'subscription_page', 'wpuf_payment' );
374
+
375
+ if ( empty( $subscription_page_id ) ) {
376
+ WP_User_Frontend::log( 'subscription-on-registration', esc_html__( 'Subscription Page settings not set in admin settings', 'wp-user-frontend' ) );
377
+ return;
378
+ }
379
+
380
+ if ( isset( $_GET['type'] ) && 'wpuf_sub' === $_GET['type'] && ! empty( $_GET['pack_id'] ) ) {
381
+ return;
382
+ }
383
+
384
+ wp_safe_redirect( get_permalink( $subscription_page_id ) );
385
+ exit;
386
+ }
387
+ }
388
+
389
  /**
390
  * Show errors on the form
391
  *
392
  * @return void
393
  */
394
  public function show_errors() {
395
+ /**
396
+ * Filter the allowed html for registration error notice
397
+ *
398
+ * @since 3.3.0
399
+ *
400
+ * @param array $allowed_html
401
+ */
402
+ $allowed_html = apply_filters( 'wpuf_registration_errors_allowed_html', [
403
+ 'strong' => [],
404
+ ] );
405
+
406
  if ( $this->registration_errors ) {
407
  foreach ( $this->registration_errors as $error ) {
408
+ printf(
409
+ '<div class="wpuf-error">%s</div>',
410
+ wp_kses( $error, $allowed_html )
411
+ );
412
  }
413
  }
414
  }
434
  * @return string
435
  */
436
  public static function get_posted_value( $key ) {
437
+ $get = wp_unslash( $_GET );
438
+
439
  if ( isset( $_REQUEST[$key] ) ) {
440
  $required_key = sanitize_text_field( wp_unslash( $_REQUEST[$key] ) );
441
  return $required_key;
443
 
444
  return '';
445
  }
446
+
447
+ /**
448
+ * Check if subscription need to be selected before registration
449
+ *
450
+ * Settings could be found under Payments section in WPUF admin settings.
451
+ *
452
+ * @since 3.3.0
453
+ *
454
+ * @return bool
455
+ */
456
+ public function is_activated_subscription_on_registration() {
457
+ $enable_payment = wpuf_get_option( 'enable_payment', 'wpuf_payment' );
458
+ $register_subscription = wpuf_get_option( 'register_subscription', 'wpuf_payment' );
459
+
460
+ if ( wpuf_validate_boolean( $enable_payment ) && wpuf_validate_boolean( $register_subscription ) ) {
461
+ return true;
462
+ }
463
+
464
+ return false;
465
+ }
466
+
467
+ /**
468
+ * Filter the redirect page url to payment page
469
+ *
470
+ * @since 3.3.0
471
+ *
472
+ * @param string $redirect
473
+ * @param int $user
474
+ *
475
+ * @return string
476
+ */
477
+ public function redirect_to_payment_page( $redirect, $user ) {
478
+ $get = wp_unslash( $_GET );
479
+
480
+ if ( isset( $get['type'] ) && 'wpuf_sub' === $get['type'] && ! empty( $get['pack_id'] ) && $user ) {
481
+ $payment_page_id = wpuf_get_option( 'payment_page', 'wpuf_payment' );
482
+ $payment_page = get_permalink( $payment_page_id );
483
+
484
+ if ( $payment_page ) {
485
+ $redirect = add_query_arg( [
486
+ 'action' => 'wpuf_pay',
487
+ 'user_id' => $user,
488
+ 'type' => 'pack',
489
+ 'pack_id' => $get['pack_id'],
490
+ ], $payment_page );
491
+ }
492
+ }
493
+
494
+ return $redirect;
495
+ }
496
  }
languages/wp-user-frontend.pot CHANGED
@@ -1,10 +1,10 @@
1
- # Copyright (C) 2020 Tareq Hasan
2
  # This file is distributed under the GPL2 or later.
3
  msgid ""
4
  msgstr ""
5
- "Project-Id-Version: WP User Frontend 3.2.0\n"
6
  "Report-Msgid-Bugs-To: https://wedevs.com/contact/\n"
7
- "POT-Creation-Date: 2020-04-14 13:32:38+00:00\n"
8
  "MIME-Version: 1.0\n"
9
  "Content-Type: text/plain; charset=utf-8\n"
10
  "Content-Transfer-Encoding: 8bit\n"
@@ -99,7 +99,11 @@ msgstr ""
99
  msgid "JSON file not found"
100
  msgstr ""
101
 
102
- #: admin/class-admin-settings.php:538
 
 
 
 
103
  msgid "Forms imported successfully."
104
  msgstr ""
105
 
@@ -173,7 +177,7 @@ msgstr ""
173
  #: includes/fields/class-abstract-fields.php:346
174
  #: includes/fields/class-abstract-fields.php:409
175
  #: includes/fields/class-field-checkbox.php:74
176
- #: includes/fields/class-field-radio.php:82 includes/free/form-element.php:460
177
  #: wpuf.php:712
178
  msgid "Yes"
179
  msgstr ""
@@ -188,7 +192,7 @@ msgstr ""
188
  #: includes/fields/class-abstract-fields.php:347
189
  #: includes/fields/class-abstract-fields.php:410
190
  #: includes/fields/class-field-checkbox.php:75
191
- #: includes/fields/class-field-radio.php:83 includes/free/form-element.php:461
192
  #: wpuf.php:713
193
  msgid "No"
194
  msgstr ""
@@ -360,7 +364,7 @@ msgstr ""
360
 
361
  #: admin/class-tools.php:43 admin/class-tools.php:106
362
  #: admin/post-forms-list-table.php:43 class/transactions-list-table.php:87
363
- #: includes/class-list-table-subscribers.php:136 wpuf-functions.php:2867
364
  msgid "All"
365
  msgstr ""
366
 
@@ -494,22 +498,30 @@ msgstr ""
494
  msgid "value"
495
  msgstr ""
496
 
497
- #: admin/form-builder/assets/js/components/field-option-data/template.php:5
498
  #: admin/template.php:231
499
  msgid "Show values"
500
  msgstr ""
501
 
502
- #: admin/form-builder/assets/js/components/field-option-data/template.php:16
 
 
 
 
 
 
 
 
503
  #: admin/template.php:234 admin/template.php:286
504
  msgid "Label"
505
  msgstr ""
506
 
507
- #: admin/form-builder/assets/js/components/field-option-data/template.php:20
508
  #: admin/template.php:234 admin/template.php:286
509
  msgid "Value"
510
  msgstr ""
511
 
512
- #: admin/form-builder/assets/js/components/field-option-data/template.php:68
513
  msgid "Clear Selection"
514
  msgstr ""
515
 
@@ -601,7 +613,7 @@ msgstr ""
601
  #: includes/fields/class-field-checkbox.php:101
602
  #: includes/fields/class-field-dropdown.php:105
603
  #: includes/fields/class-field-multidropdown.php:82
604
- #: includes/fields/class-field-radio.php:108
605
  msgid "Option"
606
  msgstr ""
607
 
@@ -1393,180 +1405,224 @@ msgstr ""
1393
  msgid "Contact Support"
1394
  msgstr ""
1395
 
1396
- #: admin/html/whats-new.php:8
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1397
  msgid "Hide post edit option when subscription is expired"
1398
  msgstr ""
1399
 
1400
- #: admin/html/whats-new.php:10
1401
  msgid "Hide post edit option from users whose subscription pack is expired."
1402
  msgstr ""
1403
 
1404
- #: admin/html/whats-new.php:13
1405
  msgid "Check files to prevent duplicity in media upload"
1406
  msgstr ""
1407
 
1408
- #: admin/html/whats-new.php:15
1409
  msgid ""
1410
  "A simple measure has been taken to prevent maliciously flooding the site by "
1411
  "uploading same file multiple times. Though this won't work with already "
1412
  "uploaded medias."
1413
  msgstr ""
1414
 
1415
- #: admin/html/whats-new.php:18
1416
  msgid "Refactor address fields in Account section"
1417
  msgstr ""
1418
 
1419
- #: admin/html/whats-new.php:20
1420
  msgid "Address edit section from Account section has been rewritten to improve UX."
1421
  msgstr ""
1422
 
1423
- #: admin/html/whats-new.php:23
1424
  msgid "Update Paypal payment gateway"
1425
  msgstr ""
1426
 
1427
- #: admin/html/whats-new.php:25
1428
  msgid "Paypal payment gateway has seen some improvements."
1429
  msgstr ""
1430
 
1431
- #: admin/html/whats-new.php:28
1432
  msgid "Default Category selection improvements"
1433
  msgstr ""
1434
 
1435
- #: admin/html/whats-new.php:30
1436
  msgid ""
1437
  "An intuitive way of selecting default category of a selected post type has "
1438
  "been introduced."
1439
  msgstr ""
1440
 
1441
- #: admin/html/whats-new.php:33
1442
  msgid "Compatibility issue with ACF date time field"
1443
  msgstr ""
1444
 
1445
- #: admin/html/whats-new.php:35
1446
  msgid "A Compatibility issue with ACF date time field has been addressed."
1447
  msgstr ""
1448
 
1449
- #: admin/html/whats-new.php:38
1450
  msgid "Media title, caption & description not saving"
1451
  msgstr ""
1452
 
1453
- #: admin/html/whats-new.php:40
1454
  msgid ""
1455
  "Media title, caption & description were not saving from frontend. They will "
1456
  "now."
1457
  msgstr ""
1458
 
1459
- #: admin/html/whats-new.php:43
1460
  msgid ""
1461
  "The Events Calendar venue and organizer fields issue in WPUF Custom Fields "
1462
  "metabox"
1463
  msgstr ""
1464
 
1465
- #: admin/html/whats-new.php:45
1466
  msgid ""
1467
  "A workaround has been introduced to save The Events Calendar Venue and "
1468
  "Organizer fields properly from WPUF Custom Fields metabox."
1469
  msgstr ""
1470
 
1471
- #: admin/html/whats-new.php:48
1472
  msgid "Checkbox data not saving from WPUF Custom Fields metabox"
1473
  msgstr ""
1474
 
1475
- #: admin/html/whats-new.php:50
1476
  msgid ""
1477
  "Checkboxe data from WPUF Custom Fields metabox were not saving. It has been "
1478
  "fixed."
1479
  msgstr ""
1480
 
1481
- #: admin/html/whats-new.php:53
1482
  msgid "Multi-column Repeater field data saving issue"
1483
  msgstr ""
1484
 
1485
- #: admin/html/whats-new.php:55
1486
  msgid ""
1487
  "Multi-column Repeater field data from a form was not saving. It has been "
1488
  "fixed."
1489
  msgstr ""
1490
 
1491
- #: admin/html/whats-new.php:58
1492
  msgid "Multistep form conflict with Elementor"
1493
  msgstr ""
1494
 
1495
- #: admin/html/whats-new.php:60
1496
  msgid "Multistep form had a conflict with Elementor. It has been fixed."
1497
  msgstr ""
1498
 
1499
- #: admin/html/whats-new.php:63
1500
  msgid "Multiple images showing issue in frontend"
1501
  msgstr ""
1502
 
1503
- #: admin/html/whats-new.php:65
1504
  msgid "Multiple images in a post were not showing in frontend. Now they will."
1505
  msgstr ""
1506
 
1507
- #: admin/html/whats-new.php:74
1508
  msgid "Nonce not verify on login"
1509
  msgstr ""
1510
 
1511
- #: admin/html/whats-new.php:76
1512
  msgid "Return of function wp_verify_nonce() was ignored."
1513
  msgstr ""
1514
 
1515
- #: admin/html/whats-new.php:85
1516
  msgid "Option to set which tab shows as active on the account page"
1517
  msgstr ""
1518
 
1519
- #: admin/html/whats-new.php:87
1520
  msgid ""
1521
  "Option to set which tab shows as active on the account page. To configure "
1522
  "this setting navigate to wp-admin->User Frontend->Settings->My "
1523
  "Account->Active Tab "
1524
  msgstr ""
1525
 
1526
- #: admin/html/whats-new.php:90
1527
  msgid "Unlock option was unavailable after the post being locked"
1528
  msgstr ""
1529
 
1530
- #: admin/html/whats-new.php:92
1531
  msgid "Unlock option was unavailable after the post being locked."
1532
  msgstr ""
1533
 
1534
- #: admin/html/whats-new.php:95
1535
  msgid "Gutenberg block of WPUF didn't work on bedrock installation"
1536
  msgstr ""
1537
 
1538
- #: admin/html/whats-new.php:97
1539
  msgid "Gutenberg block of WPUF didn't work on bedrock installation."
1540
  msgstr ""
1541
 
1542
- #: admin/html/whats-new.php:100
1543
  msgid "Sending admin payment received email twice"
1544
  msgstr ""
1545
 
1546
- #: admin/html/whats-new.php:102
1547
  msgid ""
1548
  "After processing payment admin & user was receiving payment received email "
1549
  "twice."
1550
  msgstr ""
1551
 
1552
- #: admin/html/whats-new.php:105
1553
  msgid ""
1554
  "Add shortcode support to display post information in the Post Expiration "
1555
  "Message"
1556
  msgstr ""
1557
 
1558
- #: admin/html/whats-new.php:107
1559
  msgid ""
1560
  "Add shortcode support to display post information in the Post Expiration "
1561
  "Message. You can use: <strong>{post_author} {post_url} {blogname} "
1562
  "{post_title} {post_status}</strong>"
1563
  msgstr ""
1564
 
1565
- #: admin/html/whats-new.php:110
1566
  msgid "Add optin on the setup wizard"
1567
  msgstr ""
1568
 
1569
- #: admin/html/whats-new.php:112
1570
  msgid ""
1571
  "Added optin on the setup wizard, admin can choose whether he/she wants to "
1572
  "share server environment details (php, mysql, server, WordPress versions), "
@@ -1574,126 +1630,126 @@ msgid ""
1574
  "name and url, admin name and email address. No sensitive data is tracked"
1575
  msgstr ""
1576
 
1577
- #: admin/html/whats-new.php:121
1578
  msgid "Post Owner problem"
1579
  msgstr ""
1580
 
1581
- #: admin/html/whats-new.php:123
1582
  msgid ""
1583
  "Posts were not assigned to the selected default post owner, this issue has "
1584
  "been fixed."
1585
  msgstr ""
1586
 
1587
- #: admin/html/whats-new.php:126
1588
  msgid "Google reCaptcha was not working"
1589
  msgstr ""
1590
 
1591
- #: admin/html/whats-new.php:128
1592
  msgid ""
1593
  "Google reCaptcha was not working, users could submit the form without "
1594
  "reCaptcha validation."
1595
  msgstr ""
1596
 
1597
- #: admin/html/whats-new.php:137
1598
  msgid "Added column field"
1599
  msgstr ""
1600
 
1601
- #: admin/html/whats-new.php:142
1602
  msgid "Unable to render the events on the front-end dashboard"
1603
  msgstr ""
1604
 
1605
- #: admin/html/whats-new.php:144
1606
  msgid ""
1607
  "On the frontend dashboard, the submitted events were not showing, you will "
1608
  "get it fixed in this version."
1609
  msgstr ""
1610
 
1611
- #: admin/html/whats-new.php:147
1612
  msgid "Page order getting 0(zero) after editing from the frontend"
1613
  msgstr ""
1614
 
1615
- #: admin/html/whats-new.php:149
1616
  msgid ""
1617
  "Page order was not saving while editing a post using WPUF form, it has been "
1618
  "fixed."
1619
  msgstr ""
1620
 
1621
- #: admin/html/whats-new.php:152
1622
  msgid "Text input field for taxonomies not working"
1623
  msgstr ""
1624
 
1625
- #: admin/html/whats-new.php:154
1626
  msgid ""
1627
  "When taxonomy field type is set to `Text Input` then a fatal error was "
1628
  "showing on the frontend, no error with taxonomy field in the latest version."
1629
  msgstr ""
1630
 
1631
- #: admin/html/whats-new.php:157
1632
  msgid ""
1633
  "In radio and checkbox field use conditional logic that value does not save "
1634
  "in database"
1635
  msgstr ""
1636
 
1637
- #: admin/html/whats-new.php:159
1638
  msgid ""
1639
  "The selected value of radio and checkbox field were not showing while "
1640
  "editing posts from the backend or frontend, you can see the selected value "
1641
  "in this version."
1642
  msgstr ""
1643
 
1644
- #: admin/html/whats-new.php:162
1645
  msgid "The args param not working with get_avatar filter"
1646
  msgstr ""
1647
 
1648
- #: admin/html/whats-new.php:164
1649
  msgid "The args parameter did not exist with get_avatar filter, which now exists."
1650
  msgstr ""
1651
 
1652
- #: admin/html/whats-new.php:167
1653
  msgid "The item in ajax taxonomy field was not selected"
1654
  msgstr ""
1655
 
1656
- #: admin/html/whats-new.php:169
1657
  msgid ""
1658
  "When the taxonomy field type is set to Ajax, the submitted terms were not "
1659
  "showing in the backend and frontend which have been fixed."
1660
  msgstr ""
1661
 
1662
- #: admin/html/whats-new.php:178
1663
  msgid "Unable to send new user registration email"
1664
  msgstr ""
1665
 
1666
- #: admin/html/whats-new.php:180
1667
  msgid ""
1668
  "WP User Frontend default registration form `[wpuf-registration]` was unable "
1669
  "to send the new user registration email."
1670
  msgstr ""
1671
 
1672
- #: admin/html/whats-new.php:183
1673
  msgid "WPUF forms block compatibility issue with the latest WP version"
1674
  msgstr ""
1675
 
1676
- #: admin/html/whats-new.php:185
1677
  msgid ""
1678
  "With the latest version of WordPress the gutenberg block of WP User "
1679
  "Frontend were not working. In this version, you will get it fixed."
1680
  msgstr ""
1681
 
1682
- #: admin/html/whats-new.php:188
1683
  msgid "Page not update where `[wpuf_dashboard]` shortcode exist"
1684
  msgstr ""
1685
 
1686
- #: admin/html/whats-new.php:190
1687
  msgid ""
1688
  "While using Gutenberg, the page were not being updated with WPUF shortcode "
1689
  "[wpuf dashboard]"
1690
  msgstr ""
1691
 
1692
- #: admin/html/whats-new.php:193
1693
  msgid "Retain default when determining whether to display the admin bar"
1694
  msgstr ""
1695
 
1696
- #: admin/html/whats-new.php:195
1697
  msgid ""
1698
  "From the User Frontend Settings, set that Administrator, Editor, Vendor can "
1699
  "see the admin bar. Now, the super admin want, one specific user ( who has "
@@ -1703,11 +1759,11 @@ msgid ""
1703
  "frontend."
1704
  msgstr ""
1705
 
1706
- #: admin/html/whats-new.php:198
1707
  msgid "Fatal error when use PHP lower version (5.4 or lower)"
1708
  msgstr ""
1709
 
1710
- #: admin/html/whats-new.php:200
1711
  msgid ""
1712
  "It was unable to install WP User Frontend with PHP 5.4 or lower version. "
1713
  "Here is the error details: <br><br><strong>Fatal error: Can't use method "
@@ -1715,42 +1771,42 @@ msgid ""
1715
  "/wp-user-frontend/class/frontend-form-post.php on line 194</strong>"
1716
  msgstr ""
1717
 
1718
- #: admin/html/whats-new.php:203
1719
  msgid "Product form was unable to show the single gallery image"
1720
  msgstr ""
1721
 
1722
- #: admin/html/whats-new.php:205
1723
  msgid ""
1724
  "When user upload single image for product gallery using WPUF WooCommerce "
1725
  "product form, that image were not showing on the frontend."
1726
  msgstr ""
1727
 
1728
- #: admin/html/whats-new.php:214
1729
  msgid "WooCommerce gallery images not getting saved"
1730
  msgstr ""
1731
 
1732
- #: admin/html/whats-new.php:216
1733
  msgid ""
1734
  "After releasing version 2.9.3, WooCommerce gallery image field stopped "
1735
  "working. You will get it fixed in this version."
1736
  msgstr ""
1737
 
1738
- #: admin/html/whats-new.php:225
1739
  msgid "The Events Calendar Integration Form"
1740
  msgstr ""
1741
 
1742
- #: admin/html/whats-new.php:227
1743
  msgid ""
1744
  "Now admin can allow users to create event from the frontend. Currently WPUF "
1745
  "has a one click pre-build event form that has been integrated with The "
1746
  "Events Calendar plugin"
1747
  msgstr ""
1748
 
1749
- #: admin/html/whats-new.php:230
1750
  msgid "Post Submission Facility From Account Page"
1751
  msgstr ""
1752
 
1753
- #: admin/html/whats-new.php:232
1754
  msgid ""
1755
  "On the frontend account page, added a new menu item named <b>Submit "
1756
  "Post</b>. Now admin can allow users to submit post from their default "
@@ -1759,504 +1815,504 @@ msgid ""
1759
  "you can assign any post form that will use to submit posts."
1760
  msgstr ""
1761
 
1762
- #: admin/html/whats-new.php:235
1763
  msgid "Login/Lost Password Link Under Registration Form"
1764
  msgstr ""
1765
 
1766
- #: admin/html/whats-new.php:237
1767
  msgid "Added Login/Lost Password link under registration form"
1768
  msgstr ""
1769
 
1770
- #: admin/html/whats-new.php:246
1771
  msgid "Added drag and drop image ordering on image upload"
1772
  msgstr ""
1773
 
1774
- #: admin/html/whats-new.php:248
1775
  msgid ""
1776
  "Now frontend users can drag & drop the images/files to change the order "
1777
  "while uploading."
1778
  msgstr ""
1779
 
1780
- #: admin/html/whats-new.php:251
1781
  msgid "Added reCAPTCHA field in login form"
1782
  msgstr ""
1783
 
1784
- #: admin/html/whats-new.php:253
1785
  msgid ""
1786
  "Admin has the option to show reCAPTCHA field in login form. Check the "
1787
  "related settings from <strong>User Frontend > Settings > "
1788
  "Login/Registration</strong>"
1789
  msgstr ""
1790
 
1791
- #: admin/html/whats-new.php:256
1792
  msgid "Added preview option in forms"
1793
  msgstr ""
1794
 
1795
- #: admin/html/whats-new.php:258
1796
  msgid ""
1797
  "You can see a nice <strong>Preview</strong> button with <strong>Save "
1798
  "Form</strong> button, admin can take a quick look of the form without using "
1799
  "shortcode"
1800
  msgstr ""
1801
 
1802
- #: admin/html/whats-new.php:261
1803
  msgid "Fixed hiding “Select Image” button while uploading multiple images."
1804
  msgstr ""
1805
 
1806
- #: admin/html/whats-new.php:263
1807
  msgid ""
1808
  "The upload button will not be hidden until the user selects max number of "
1809
  "files "
1810
  msgstr ""
1811
 
1812
- #: admin/html/whats-new.php:266
1813
  msgid "Added form limit notice before form submission"
1814
  msgstr ""
1815
 
1816
- #: admin/html/whats-new.php:268
1817
  msgid ""
1818
  "Limit notice message was showing after submission, now it is showing when "
1819
  "rendering the form"
1820
  msgstr ""
1821
 
1822
- #: admin/html/whats-new.php:271
1823
  msgid "Fixed: default post category not saving"
1824
  msgstr ""
1825
 
1826
- #: admin/html/whats-new.php:273
1827
  msgid ""
1828
  "From the form <strong>Settings > Post Settings</strong>, default post "
1829
  "category options were not saving. Now, it's fixed."
1830
  msgstr ""
1831
 
1832
- #: admin/html/whats-new.php:276
1833
  msgid ""
1834
  "WPUF dashboard shortcode with form_id attribute was not showing posts "
1835
  "properly"
1836
  msgstr ""
1837
 
1838
- #: admin/html/whats-new.php:278
1839
  msgid ""
1840
  "Now you can list posts on the frontend by using <strong>form_id<strong/> "
1841
  "attribute with <strong>[wpuf_dashboard]</strong> shortcode"
1842
  msgstr ""
1843
 
1844
- #: admin/html/whats-new.php:287
1845
  msgid "Changed text domain to `wp-user-frontend` from `wpuf` "
1846
  msgstr ""
1847
 
1848
- #: admin/html/whats-new.php:289
1849
  msgid ""
1850
  "If you are using other language than English. Please <b>rename</b> your "
1851
  "<i>.po and .mo </i> files to `wp-user-frontend_` from `wpuf_` <br> This "
1852
  "change was made to support translations from translate.wordpress.org"
1853
  msgstr ""
1854
 
1855
- #: admin/html/whats-new.php:292
1856
  msgid "Added WP User Frontend Data export and erase functionality."
1857
  msgstr ""
1858
 
1859
- #: admin/html/whats-new.php:294
1860
  msgid "Added functionality to export WP User Frontend Data to comply with GDPR."
1861
  msgstr ""
1862
 
1863
- #: admin/html/whats-new.php:297
1864
  msgid "Added billing address customizer."
1865
  msgstr ""
1866
 
1867
- #: admin/html/whats-new.php:299
1868
  msgid "Added customizer options for billing address in payment page."
1869
  msgstr ""
1870
 
1871
- #: admin/html/whats-new.php:302
1872
  msgid "Make the payment page responsive."
1873
  msgstr ""
1874
 
1875
- #: admin/html/whats-new.php:304
1876
  msgid "Some css adjustments are made in payment page to make it responsive."
1877
  msgstr ""
1878
 
1879
- #: admin/html/whats-new.php:307
1880
  msgid "Fixed image upload issue in Safari."
1881
  msgstr ""
1882
 
1883
- #: admin/html/whats-new.php:309
1884
  msgid "Images were not showing after upload in safari, it is fixed now."
1885
  msgstr ""
1886
 
1887
- #: admin/html/whats-new.php:312
1888
  msgid "Post update issue after updating or removing post images."
1889
  msgstr ""
1890
 
1891
- #: admin/html/whats-new.php:314
1892
  msgid ""
1893
  "Posts cannot be updated after updating or removing post images, it is fixed "
1894
  "now."
1895
  msgstr ""
1896
 
1897
- #: admin/html/whats-new.php:323
1898
  msgid "Allow overriding form input styles using theme styling."
1899
  msgstr ""
1900
 
1901
- #: admin/html/whats-new.php:325
1902
  msgid "Overriding form input styles using theme style is now possible."
1903
  msgstr ""
1904
 
1905
- #: admin/html/whats-new.php:328
1906
  msgid "Fixed Auto Login after registration."
1907
  msgstr ""
1908
 
1909
- #: admin/html/whats-new.php:330
1910
  msgid "Auto Login after registration was not working is fixed now."
1911
  msgstr ""
1912
 
1913
- #: admin/html/whats-new.php:333
1914
  msgid "Fixed fallback cost calculation"
1915
  msgstr ""
1916
 
1917
- #: admin/html/whats-new.php:335
1918
  msgid "Fallback cost calculation was inaccurate for some cases, it is fixed now."
1919
  msgstr ""
1920
 
1921
- #: admin/html/whats-new.php:338
1922
  msgid "Removal of subscription from User Profile gets reverted if updated"
1923
  msgstr ""
1924
 
1925
- #: admin/html/whats-new.php:340
1926
  msgid "User subscription deletion gets reverted if updated is fixed."
1927
  msgstr ""
1928
 
1929
- #: admin/html/whats-new.php:343
1930
  msgid "Show Free pack users in subscribers list."
1931
  msgstr ""
1932
 
1933
- #: admin/html/whats-new.php:345
1934
  msgid "Free pack users were not showing in subscribers list, now they will."
1935
  msgstr ""
1936
 
1937
- #: admin/html/whats-new.php:354
1938
  msgid "WP User Frontend Guten Block is added"
1939
  msgstr ""
1940
 
1941
- #: admin/html/whats-new.php:356
1942
  msgid ""
1943
  "WPUF Form Block is now available to be used within gutenberg editor with "
1944
  "preview of the form. "
1945
  msgstr ""
1946
 
1947
- #: admin/html/whats-new.php:359
1948
  msgid "Advanced Custom Fields plugin compatibility"
1949
  msgstr ""
1950
 
1951
- #: admin/html/whats-new.php:361
1952
  msgid "Now all your ACF fields can be used within WPUF Post forms. "
1953
  msgstr ""
1954
 
1955
- #: admin/html/whats-new.php:364
1956
  msgid "Taxonomy Terms not showing for custom post types"
1957
  msgstr ""
1958
 
1959
- #: admin/html/whats-new.php:366
1960
  msgid ""
1961
  "Fixed an issue with taxonomy terms not appearing for Custom Post types "
1962
  "within Form Settings and Dashboard Post Listing"
1963
  msgstr ""
1964
 
1965
- #: admin/html/whats-new.php:369
1966
  msgid "Various other code optimizations"
1967
  msgstr ""
1968
 
1969
- #: admin/html/whats-new.php:371 admin/html/whats-new.php:428
1970
  msgid "Code structure organization and optimization for better performance"
1971
  msgstr ""
1972
 
1973
- #: admin/html/whats-new.php:380
1974
  msgid "WoooCommerce billing address Sync"
1975
  msgstr ""
1976
 
1977
- #: admin/html/whats-new.php:382
1978
  msgid ""
1979
  "If an existing customer has previously set his billing address, that will "
1980
  "be imported into WPUF Billing address "
1981
  msgstr ""
1982
 
1983
- #: admin/html/whats-new.php:385
1984
  msgid "Trial subscription message not showing properly"
1985
  msgstr ""
1986
 
1987
- #: admin/html/whats-new.php:387
1988
  msgid "Subscriptions with Trial now shows trial notices"
1989
  msgstr ""
1990
 
1991
- #: admin/html/whats-new.php:390
1992
  msgid "Reset email Key not working"
1993
  msgstr ""
1994
 
1995
- #: admin/html/whats-new.php:392
1996
  msgid "Reset Email key was not working in some cases"
1997
  msgstr ""
1998
 
1999
- #: admin/html/whats-new.php:395
2000
  msgid "Post count not showing on the frontend dashboard"
2001
  msgstr ""
2002
 
2003
- #: admin/html/whats-new.php:397
2004
  msgid ""
2005
  "Dashboard with multiple post type was not showing post counts properly, is "
2006
  "now fixed and shows count for each post type"
2007
  msgstr ""
2008
 
2009
- #: admin/html/whats-new.php:400
2010
  msgid "Login Redirect showing blank page is fixed"
2011
  msgstr ""
2012
 
2013
- #: admin/html/whats-new.php:402
2014
  msgid ""
2015
  "If \"Previous Page\" was set for redirection, login redirect was "
2016
  "redirecting to blank page for users who hit login page directly"
2017
  msgstr ""
2018
 
2019
- #: admin/html/whats-new.php:411
2020
  msgid "Enhanced Login Redirect to redirect users to previous page"
2021
  msgstr ""
2022
 
2023
- #: admin/html/whats-new.php:413
2024
  msgid ""
2025
  "You can choose Previous Page as Login Redirect page settings now to "
2026
  "redirect users to the page from which they went for Login. "
2027
  msgstr ""
2028
 
2029
- #: admin/html/whats-new.php:416
2030
  msgid "Email HTML links not Rendreing properly issue is fixed"
2031
  msgstr ""
2032
 
2033
- #: admin/html/whats-new.php:418
2034
  msgid ""
2035
  "For some clients emails were not rendering the HTML links properly, this is "
2036
  "now fixed"
2037
  msgstr ""
2038
 
2039
- #: admin/html/whats-new.php:421
2040
  msgid "Form Builder : Form Field's Help text styles not showing properly"
2041
  msgstr ""
2042
 
2043
- #: admin/html/whats-new.php:423
2044
  msgid "Help texts styling is now fixed and much easier to read and understand"
2045
  msgstr ""
2046
 
2047
- #: admin/html/whats-new.php:426
2048
  msgid "Various other code improvements"
2049
  msgstr ""
2050
 
2051
- #: admin/html/whats-new.php:437
2052
  msgid "Dashboard Post Listing now supports multiple post types"
2053
  msgstr ""
2054
 
2055
- #: admin/html/whats-new.php:439
2056
  msgid ""
2057
  "Now you can show multiple post type in user dashboard using shortcode like "
2058
  "this : <br><b>[wpuf_dashboard post_type=\"post,page,custom_type\"]</b> "
2059
  msgstr ""
2060
 
2061
- #: admin/html/whats-new.php:442
2062
  msgid "Added Login Redirect Settings"
2063
  msgstr ""
2064
 
2065
- #: admin/html/whats-new.php:444
2066
  msgid ""
2067
  "You can now set a page from <i>WPUF Settings > Login/Registration > "
2068
  "Redirect after Login</i>. When login redirection is active the user will be "
2069
  "redirected to this page after login."
2070
  msgstr ""
2071
 
2072
- #: admin/html/whats-new.php:447
2073
  msgid "Image Upload field button text can be changed"
2074
  msgstr ""
2075
 
2076
- #: admin/html/whats-new.php:449
2077
  msgid ""
2078
  "The upload button text can now be changed for image upload fields which "
2079
  "defaults to \"Select Image\" if not set. "
2080
  msgstr ""
2081
 
2082
- #: admin/html/whats-new.php:452
2083
  msgid "Multi Step Form styles made compatible with more themes"
2084
  msgstr ""
2085
 
2086
- #: admin/html/whats-new.php:454
2087
  msgid "Multi Step form can now be styled more easily with other themes "
2088
  msgstr ""
2089
 
2090
- #: admin/html/whats-new.php:457
2091
  msgid "Required field condition for google map not working is fixed"
2092
  msgstr ""
2093
 
2094
- #: admin/html/whats-new.php:459
2095
  msgid ""
2096
  "If Google Map field was set as required users were able to submit form "
2097
  "without changing the default value."
2098
  msgstr ""
2099
 
2100
- #: admin/html/whats-new.php:468
2101
  msgid "Admin form builder is now fully responsive."
2102
  msgstr ""
2103
 
2104
- #: admin/html/whats-new.php:470
2105
  msgid ""
2106
  "Now you can edit forms from your mobile devices directly. Our improved "
2107
  "responsive layouts of form builder makes it easy for you to build forms on "
2108
  "the go."
2109
  msgstr ""
2110
 
2111
- #: admin/html/whats-new.php:473
2112
  msgid "Added color schemes for creating attractive form layouts."
2113
  msgstr ""
2114
 
2115
- #: admin/html/whats-new.php:475
2116
  msgid ""
2117
  "We have added 3 new color schemes for the form layouts which you can choose "
2118
  "from each form's new display settings."
2119
  msgstr ""
2120
 
2121
- #: admin/html/whats-new.php:478
2122
  msgid "Restrict Free subscription pack to be enabled multiple times "
2123
  msgstr ""
2124
 
2125
- #: admin/html/whats-new.php:480
2126
  msgid ""
2127
  "Free subscription packs now can only be purchased once and the limit "
2128
  "applies properly"
2129
  msgstr ""
2130
 
2131
- #: admin/html/whats-new.php:483
2132
  msgid "Various other bug fixes and improvements were made "
2133
  msgstr ""
2134
 
2135
- #: admin/html/whats-new.php:485
2136
  msgid "Please see the change log to see full details."
2137
  msgstr ""
2138
 
2139
- #: admin/html/whats-new.php:494
2140
  msgid "Added upgrade function for default category"
2141
  msgstr ""
2142
 
2143
- #: admin/html/whats-new.php:496
2144
  msgid "Upgrader added to upgrade previously set default post category."
2145
  msgstr ""
2146
 
2147
- #: admin/html/whats-new.php:499
2148
  msgid "Subscription pack cannot be canceled"
2149
  msgstr ""
2150
 
2151
- #: admin/html/whats-new.php:501
2152
  msgid ""
2153
  "Fixed recurring subscription pack cannot be canceled from my account page "
2154
  "in subscription details section."
2155
  msgstr ""
2156
 
2157
- #: admin/html/whats-new.php:504
2158
  msgid "page installer admin notice logic issue"
2159
  msgstr ""
2160
 
2161
- #: admin/html/whats-new.php:506
2162
  msgid ""
2163
  "Fixed page installer admin notice logic problem due to new payment settings "
2164
  "default value not set."
2165
  msgstr ""
2166
 
2167
- #: admin/html/whats-new.php:516
2168
  msgid "Setup Wizard"
2169
  msgstr ""
2170
 
2171
- #: admin/html/whats-new.php:518
2172
  msgid "Setup Wizard added to turn off payment options and install pages."
2173
  msgstr ""
2174
 
2175
- #: admin/html/whats-new.php:522
2176
  msgid "Multi-select Category"
2177
  msgstr ""
2178
 
2179
- #: admin/html/whats-new.php:524
2180
  msgid "Add multi-select to default category in post form settings."
2181
  msgstr ""
2182
 
2183
- #: admin/html/whats-new.php:528
2184
  msgid "Select Text option for Taxonomy"
2185
  msgstr ""
2186
 
2187
- #: admin/html/whats-new.php:530
2188
  msgid ""
2189
  "Add Select Text option for taxonomy fields. Now you can add default text "
2190
  "with empty value as first option for Taxonomy dropdown."
2191
  msgstr ""
2192
 
2193
- #: admin/html/whats-new.php:533
2194
  msgid "Taxonomy Checkbox Inline"
2195
  msgstr ""
2196
 
2197
- #: admin/html/whats-new.php:535
2198
  msgid ""
2199
  "Added checkbox inline option to taxonomy checkbox. You can now display "
2200
  "Taxonomy checkbox fields inline."
2201
  msgstr ""
2202
 
2203
- #: admin/html/whats-new.php:545
2204
  msgid "Manage schedule for form submission"
2205
  msgstr ""
2206
 
2207
- #: admin/html/whats-new.php:547
2208
  msgid ""
2209
  "Do not accept form submission if the current date is not between the date "
2210
  "range of the schedule."
2211
  msgstr ""
2212
 
2213
- #: admin/html/whats-new.php:551
2214
  msgid "Restrict form submission based on the user roles"
2215
  msgstr ""
2216
 
2217
- #: admin/html/whats-new.php:553
2218
  msgid ""
2219
  "Restrict form submission based on the user roles. Now you can manage user "
2220
  "role base permission on form submission."
2221
  msgstr ""
2222
 
2223
- #: admin/html/whats-new.php:557
2224
  msgid "Limit how many entries a form will accept"
2225
  msgstr ""
2226
 
2227
- #: admin/html/whats-new.php:559
2228
  msgid ""
2229
  "Limit how many entries a form will accept and display a custom message when "
2230
  "that limit is reached."
2231
  msgstr ""
2232
 
2233
- #: admin/html/whats-new.php:563
2234
  msgid "Show/hide Admin Bar"
2235
  msgstr ""
2236
 
2237
- #: admin/html/whats-new.php:565
2238
  msgid "Control the admin bar visibility based on user roles."
2239
  msgstr ""
2240
 
2241
- #: admin/html/whats-new.php:569
2242
  msgid "Ajax Login widget"
2243
  msgstr ""
2244
 
2245
- #: admin/html/whats-new.php:571
2246
  msgid ""
2247
  "Login user is more simple now with Ajax Login Widget. The simple ajax login "
2248
  "form do not required page loading for login."
2249
  msgstr ""
2250
 
2251
- #: admin/html/whats-new.php:575
2252
  msgid "Form submission with Captcha field"
2253
  msgstr ""
2254
 
2255
- #: admin/html/whats-new.php:577
2256
  msgid "Form field validation process updated if form submits with captcha field."
2257
  msgstr ""
2258
 
2259
- #: admin/html/whats-new.php:591
2260
  msgid "What's New in WPUF?"
2261
  msgstr ""
2262
 
@@ -2279,7 +2335,7 @@ msgid "Congratulations!"
2279
  msgstr ""
2280
 
2281
  #: admin/installer.php:84 admin/settings-options.php:24
2282
- #: includes/free/admin/shortcode-button.php:79 wpuf-functions.php:1813
2283
  msgid "Dashboard"
2284
  msgstr ""
2285
 
@@ -2295,7 +2351,7 @@ msgstr ""
2295
  #: admin/installer.php:95 class/subscription.php:381 class/subscription.php:401
2296
  #: class/subscription.php:402 class/subscription.php:403
2297
  #: includes/free/admin/shortcode-button.php:99
2298
- #: templates/dashboard/dashboard.php:19 wpuf-functions.php:1816
2299
  msgid "Subscription"
2300
  msgstr ""
2301
 
@@ -2395,19 +2451,19 @@ msgstr ""
2395
  msgid "Are you sure?"
2396
  msgstr ""
2397
 
2398
- #: admin/posting.php:80 class/asset-loader.php:63 wpuf.php:731
2399
  msgid "Allowed Files"
2400
  msgstr ""
2401
 
2402
- #: admin/posting.php:83 class/asset-loader.php:66 wpuf.php:737
2403
  msgid "Maximum number of files reached!"
2404
  msgstr ""
2405
 
2406
- #: admin/posting.php:84 class/asset-loader.php:67 wpuf.php:738
2407
  msgid "The file you have uploaded exceeds the file size limit. Please try again."
2408
  msgstr ""
2409
 
2410
- #: admin/posting.php:85 class/asset-loader.php:68 wpuf.php:739
2411
  msgid "You have uploaded an incorrect file type. Please try again."
2412
  msgstr ""
2413
 
@@ -3513,10 +3569,10 @@ msgid "Select Text"
3513
  msgstr ""
3514
 
3515
  #: admin/template.php:520 admin/template.php:578 admin/template.php:656
3516
- #: class/upload.php:206 includes/fields/class-field-recaptcha.php:147
3517
  #: includes/fields/class-field-sectionbreak.php:55
3518
  #: templates/dashboard/posts.php:89 templates/dashboard.php:104
3519
- #: wpuf-functions.php:845
3520
  msgid "Title"
3521
  msgstr ""
3522
 
@@ -3532,8 +3588,8 @@ msgstr ""
3532
  msgid "Enter the meta value"
3533
  msgstr ""
3534
 
3535
- #: admin/template.php:583 class/upload.php:208
3536
- #: includes/fields/class-field-sectionbreak.php:63 wpuf-functions.php:853
3537
  msgid "Description"
3538
  msgstr ""
3539
 
@@ -3716,7 +3772,7 @@ msgid "You already have activated a free package previously."
3716
  msgstr ""
3717
 
3718
  #: class/payment.php:138 includes/class-customizer.php:56
3719
- #: wpuf-functions.php:1817
3720
  msgid "Billing Address"
3721
  msgstr ""
3722
 
@@ -3764,11 +3820,11 @@ msgstr ""
3764
  msgid "No Payment gateway found"
3765
  msgstr ""
3766
 
3767
- #: class/payment.php:475 lib/gateway/bank.php:107
3768
  msgid "[%s] Payment Received"
3769
  msgstr ""
3770
 
3771
- #: class/payment.php:476
3772
  msgid "New payment received at %s"
3773
  msgstr ""
3774
 
@@ -3896,7 +3952,7 @@ msgid "Strength indicator"
3896
  msgstr ""
3897
 
3898
  #: class/render-form.php:1401 includes/fields/class-field-post-taxonomy.php:122
3899
- #: wpuf-functions.php:1601
3900
  msgid "-- Select --"
3901
  msgstr ""
3902
 
@@ -4110,10 +4166,26 @@ msgstr ""
4110
  msgid "No transactions found."
4111
  msgstr ""
4112
 
4113
- #: class/upload.php:207 wpuf-functions.php:849
4114
  msgid "Caption"
4115
  msgstr ""
4116
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
4117
  #: includes/class-acf.php:169
4118
  msgid "%s Detected"
4119
  msgstr ""
@@ -4152,54 +4224,54 @@ msgstr ""
4152
  msgid "Some Required Fields are not filled!"
4153
  msgstr ""
4154
 
4155
- #: includes/class-billing-address.php:155 includes/class-customizer.php:22
4156
  #: includes/class-customizer.php:66 includes/class-privacy.php:265
4157
  #: templates/dashboard/billing-address.php:52
4158
  msgid "Country"
4159
  msgstr ""
4160
 
4161
- #: includes/class-billing-address.php:178
4162
  #: templates/dashboard/billing-address.php:66
4163
  msgid "Choose a country"
4164
  msgstr ""
4165
 
4166
- #: includes/class-billing-address.php:197 includes/class-customizer.php:23
4167
  #: includes/class-customizer.php:67 templates/dashboard/billing-address.php:85
4168
  msgid "State/Province/Region"
4169
  msgstr ""
4170
 
4171
- #: includes/class-billing-address.php:211
4172
  #: templates/dashboard/billing-address.php:100
4173
  msgid "Choose a state"
4174
  msgstr ""
4175
 
4176
- #: includes/class-billing-address.php:230
4177
  #: templates/dashboard/billing-address.php:120
4178
  msgid "Address Line 1 "
4179
  msgstr ""
4180
 
4181
- #: includes/class-billing-address.php:241
4182
  #: templates/dashboard/billing-address.php:129
4183
  msgid "Address Line 2 "
4184
  msgstr ""
4185
 
4186
- #: includes/class-billing-address.php:252 includes/class-customizer.php:26
4187
  #: includes/class-customizer.php:70 includes/class-privacy.php:253
4188
  #: templates/dashboard/billing-address.php:137
4189
  msgid "City"
4190
  msgstr ""
4191
 
4192
- #: includes/class-billing-address.php:262 includes/class-customizer.php:27
4193
  #: includes/class-customizer.php:71
4194
  msgid "Postal Code/ZIP"
4195
  msgstr ""
4196
 
4197
- #: includes/class-billing-address.php:272
4198
  #: templates/dashboard/billing-address.php:156
4199
  msgid "Update Billing Address"
4200
  msgstr ""
4201
 
4202
- #: includes/class-billing-address.php:319
4203
  #: templates/dashboard/billing-address.php:32
4204
  msgid "Billing address is updated."
4205
  msgstr ""
@@ -4231,7 +4303,7 @@ msgstr ""
4231
 
4232
  #: includes/class-dokan-integration.php:34
4233
  #: includes/class-wc-vendors-integration.php:108
4234
- #: templates/dashboard/dashboard.php:15 wpuf-functions.php:1814
4235
  msgid "Posts"
4236
  msgstr ""
4237
 
@@ -4351,8 +4423,8 @@ msgid ""
4351
  "Please check your inbox!"
4352
  msgstr ""
4353
 
4354
- #: includes/class-frontend-render-form.php:819
4355
- #: includes/free/class-login.php:445
4356
  msgid "Empty reCaptcha Field"
4357
  msgstr ""
4358
 
@@ -4429,20 +4501,20 @@ msgstr ""
4429
  msgid "Someone has requested a password reset for the following account:"
4430
  msgstr ""
4431
 
4432
- #: includes/class-login-widget.php:147 includes/free/class-login.php:820
4433
- #: includes/free/class-login.php:901 includes/free/class-registration.php:285
4434
  msgid "Username: %s"
4435
  msgstr ""
4436
 
4437
- #: includes/class-login-widget.php:148 includes/free/class-login.php:902
4438
  msgid "If this was a mistake, just ignore this email and nothing will happen."
4439
  msgstr ""
4440
 
4441
- #: includes/class-login-widget.php:149 includes/free/class-login.php:903
4442
  msgid "To reset your password, visit the following address:"
4443
  msgstr ""
4444
 
4445
- #: includes/class-login-widget.php:154 includes/free/class-login.php:914
4446
  msgid "[%s] Password Reset"
4447
  msgstr ""
4448
 
@@ -4453,7 +4525,7 @@ msgid ""
4453
  msgstr ""
4454
 
4455
  #: includes/class-login-widget.php:216 includes/class-login-widget.php:252
4456
- #: includes/free/class-login.php:320 includes/free/class-registration.php:120
4457
  #: includes/free/form-element.php:332
4458
  msgid "Register"
4459
  msgstr ""
@@ -4499,8 +4571,8 @@ msgstr ""
4499
  msgid "Remember Me"
4500
  msgstr ""
4501
 
4502
- #: includes/class-login-widget.php:281 includes/free/class-login.php:316
4503
- #: includes/free/class-login.php:368 templates/login-form.php:75
4504
  msgid "Log In"
4505
  msgstr ""
4506
 
@@ -4910,21 +4982,21 @@ msgstr ""
4910
  msgid "Whats New"
4911
  msgstr ""
4912
 
4913
- #: includes/class-whats-new.php:97
4914
  msgid "WP User Frontend - Version %s"
4915
  msgstr ""
4916
 
4917
- #: includes/class-whats-new.php:98
4918
  msgid ""
4919
  "Welcome to the new version of WP User Frontend. See what's been changed in "
4920
  "the <strong>%s</strong> version."
4921
  msgstr ""
4922
 
4923
- #: includes/class-whats-new.php:102
4924
  msgid "What's New?"
4925
  msgstr ""
4926
 
4927
- #: includes/class-whats-new.php:103 lib/class-weforms-upsell.php:76
4928
  #: lib/class-weforms-upsell.php:77
4929
  msgid "Dismiss this notice."
4930
  msgstr ""
@@ -4997,13 +5069,13 @@ msgstr ""
4997
 
4998
  #: includes/fields/class-abstract-fields.php:406
4999
  #: includes/fields/class-field-checkbox.php:71
5000
- #: includes/fields/class-field-radio.php:79
5001
  msgid "Show in inline list"
5002
  msgstr ""
5003
 
5004
  #: includes/fields/class-abstract-fields.php:416
5005
  #: includes/fields/class-field-checkbox.php:81
5006
- #: includes/fields/class-field-radio.php:89
5007
  msgid "Show this option in an inline list"
5008
  msgstr ""
5009
 
@@ -5067,15 +5139,15 @@ msgstr ""
5067
  msgid "Custom HTML"
5068
  msgstr ""
5069
 
5070
- #: includes/fields/class-field-html.php:55
5071
  msgid "Html Codes"
5072
  msgstr ""
5073
 
5074
- #: includes/fields/class-field-html.php:59
5075
  msgid "Paste your HTML codes, WordPress shortcodes will also work here"
5076
  msgstr ""
5077
 
5078
- #: includes/fields/class-field-html.php:76
5079
  msgid "HTML Section"
5080
  msgstr ""
5081
 
@@ -5246,46 +5318,45 @@ msgstr ""
5246
  msgid " Add Form"
5247
  msgstr ""
5248
 
5249
- #: includes/free/class-login.php:324
5250
  msgid "Lost Password"
5251
  msgstr ""
5252
 
5253
- #: includes/free/class-login.php:359
5254
  msgid ""
5255
  "Please enter your username or email address. You will receive a link to "
5256
  "create a new password via email."
5257
  msgstr ""
5258
 
5259
- #: includes/free/class-login.php:368
5260
  msgid "Your password has been reset. %s"
5261
  msgstr ""
5262
 
5263
- #: includes/free/class-login.php:372
5264
  msgid "Enter your new password below."
5265
  msgstr ""
5266
 
5267
- #: includes/free/class-login.php:385
5268
  msgid "Check your e-mail for the confirmation link."
5269
  msgstr ""
5270
 
5271
- #: includes/free/class-login.php:389
5272
  msgid "You are now logged out."
5273
  msgstr ""
5274
 
5275
- #: includes/free/class-login.php:413
5276
  msgid "Nonce is invalid"
5277
  msgstr ""
5278
 
5279
- #: includes/free/class-login.php:432 includes/free/class-registration.php:218
5280
  msgid "Username is required."
5281
  msgstr ""
5282
 
5283
- #: includes/free/class-login.php:438 includes/free/class-registration.php:224
5284
  msgid "Password is required."
5285
  msgstr ""
5286
 
5287
- #: includes/free/class-login.php:461 includes/free/class-registration.php:194
5288
- #: includes/free/class-registration.php:200
5289
  #: includes/free/class-registration.php:206
5290
  #: includes/free/class-registration.php:212
5291
  #: includes/free/class-registration.php:218
@@ -5293,144 +5364,149 @@ msgstr ""
5293
  #: includes/free/class-registration.php:230
5294
  #: includes/free/class-registration.php:236
5295
  #: includes/free/class-registration.php:242
5296
- #: includes/free/class-registration.php:253
 
5297
  msgid "Error"
5298
  msgstr ""
5299
 
5300
- #: includes/free/class-login.php:461 includes/free/class-registration.php:253
5301
  msgid "A user could not be found with this email address."
5302
  msgstr ""
5303
 
5304
- #: includes/free/class-login.php:608
5305
  msgid "Please enter your password."
5306
  msgstr ""
5307
 
5308
- #: includes/free/class-login.php:614
5309
  msgid "Passwords do not match."
5310
  msgstr ""
5311
 
5312
- #: includes/free/class-login.php:662
5313
  msgid "Enter a username or e-mail address."
5314
  msgstr ""
5315
 
5316
- #: includes/free/class-login.php:669
5317
  msgid "There is no user registered with that email address."
5318
  msgstr ""
5319
 
5320
- #: includes/free/class-login.php:686
5321
  msgid "Invalid username or e-mail."
5322
  msgstr ""
5323
 
5324
- #: includes/free/class-login.php:700
5325
  msgid "Password reset is not allowed for this user"
5326
  msgstr ""
5327
 
5328
- #: includes/free/class-login.php:738
5329
  msgid ""
5330
  "<strong>Your account is not active.</strong><br>Please check your email for "
5331
  "activation link. <br><a href=\"%s\">Click here</a> to resend the activation "
5332
  "link"
5333
  msgstr ""
5334
 
5335
- #: includes/free/class-login.php:759 includes/free/class-login.php:784
5336
  msgid "Activation URL is not valid"
5337
  msgstr ""
5338
 
5339
- #: includes/free/class-login.php:770
5340
  msgid "Invalid User activation url"
5341
  msgstr ""
5342
 
5343
- #: includes/free/class-login.php:776
5344
  msgid "User already verified"
5345
  msgstr ""
5346
 
5347
- #: includes/free/class-login.php:792 includes/free/class-login.php:856
5348
  msgid "Your account has been activated"
5349
  msgstr ""
5350
 
5351
- #: includes/free/class-login.php:795
5352
  msgid ""
5353
  "Your account has been verified , but you can't login until manually "
5354
  "approved your account by an administrator."
5355
  msgstr ""
5356
 
5357
- #: includes/free/class-login.php:818
5358
  msgid "[%s] Your username and password info"
5359
  msgstr ""
5360
 
5361
- #: includes/free/class-login.php:821
5362
  msgid "To set your password, visit the following address:"
5363
  msgstr ""
5364
 
5365
- #: includes/free/class-login.php:831
5366
  msgid "[%s] Account has been activated"
5367
  msgstr ""
5368
 
5369
- #: includes/free/class-login.php:833
5370
  msgid "Hi %s,"
5371
  msgstr ""
5372
 
5373
- #: includes/free/class-login.php:834
5374
  msgid "Congrats! Your account has been activated. To login visit the following url:"
5375
  msgstr ""
5376
 
5377
- #: includes/free/class-login.php:836
5378
  msgid "Thanks"
5379
  msgstr ""
5380
 
5381
- #: includes/free/class-login.php:899
5382
  msgid "Someone requested that the password be reset for the following account:"
5383
  msgstr ""
5384
 
5385
- #: includes/free/class-login.php:920
5386
  msgid "The e-mail could not be sent."
5387
  msgstr ""
5388
 
5389
- #: includes/free/class-login.php:920
5390
  msgid "Possible reason: your host may have disabled the mail() function."
5391
  msgstr ""
5392
 
5393
- #: includes/free/class-registration.php:200
5394
  msgid "First name is required."
5395
  msgstr ""
5396
 
5397
- #: includes/free/class-registration.php:206
5398
  msgid "Last name is required."
5399
  msgstr ""
5400
 
5401
- #: includes/free/class-registration.php:212
5402
  msgid "Email is required."
5403
  msgstr ""
5404
 
5405
- #: includes/free/class-registration.php:230
5406
  msgid "Confirm Password is required."
5407
  msgstr ""
5408
 
5409
- #: includes/free/class-registration.php:236
5410
  msgid "Passwords are not same."
5411
  msgstr ""
5412
 
5413
- #: includes/free/class-registration.php:242
5414
  msgid "A user with same username already exists."
5415
  msgstr ""
5416
 
5417
- #: includes/free/class-registration.php:284
5418
  msgid "New user registration on your site %s:"
5419
  msgstr ""
5420
 
5421
- #: includes/free/class-registration.php:286
5422
  msgid "E-mail: %s"
5423
  msgstr ""
5424
 
5425
- #: includes/free/class-registration.php:292
5426
- #: includes/free/class-registration.php:302
5427
  msgid "[%s] %s"
5428
  msgstr ""
5429
 
5430
- #: includes/free/class-registration.php:294
5431
  msgid "Hi, %s"
5432
  msgstr ""
5433
 
 
 
 
 
5434
  #: includes/free/edit-profile.php:32 includes/free/edit-user.php:40
5435
  #: templates/unauthorized.php:4
5436
  msgid "This page is restricted. Please %s to view this page."
@@ -6195,7 +6271,7 @@ msgstr ""
6195
  msgid "Private"
6196
  msgstr ""
6197
 
6198
- #: wpuf-functions.php:210 wpuf-functions.php:1832
6199
  msgid "-- select --"
6200
  msgstr ""
6201
 
@@ -6231,223 +6307,227 @@ msgstr ""
6231
  msgid "CSV"
6232
  msgstr ""
6233
 
6234
- #: wpuf-functions.php:872
6235
  msgid "Directions »"
6236
  msgstr ""
6237
 
6238
- #: wpuf-functions.php:1815
6239
  msgid "Edit Profile"
6240
  msgstr ""
6241
 
6242
- #: wpuf-functions.php:1944
6243
  msgid "United Arab Emirates Dirham"
6244
  msgstr ""
6245
 
6246
- #: wpuf-functions.php:1945
6247
  msgid "Australian Dollars"
6248
  msgstr ""
6249
 
6250
- #: wpuf-functions.php:1946
6251
  msgid "Argentine Peso"
6252
  msgstr ""
6253
 
6254
- #: wpuf-functions.php:1947
6255
  msgid "Bangladeshi Taka"
6256
  msgstr ""
6257
 
6258
- #: wpuf-functions.php:1948
6259
  msgid "Brazilian Real"
6260
  msgstr ""
6261
 
6262
- #: wpuf-functions.php:1949
6263
  msgid "Bulgarian Lev"
6264
  msgstr ""
6265
 
6266
- #: wpuf-functions.php:1950
6267
  msgid "Canadian Dollars"
6268
  msgstr ""
6269
 
6270
- #: wpuf-functions.php:1951
6271
  msgid "Chilean Peso"
6272
  msgstr ""
6273
 
6274
- #: wpuf-functions.php:1952
6275
  msgid "Chinese Yuan"
6276
  msgstr ""
6277
 
6278
- #: wpuf-functions.php:1953
6279
  msgid "Colombian Peso"
6280
  msgstr ""
6281
 
6282
- #: wpuf-functions.php:1954
6283
  msgid "Czech Koruna"
6284
  msgstr ""
6285
 
6286
- #: wpuf-functions.php:1955
6287
  msgid "Danish Krone"
6288
  msgstr ""
6289
 
6290
- #: wpuf-functions.php:1956
6291
  msgid "Dominican Peso"
6292
  msgstr ""
6293
 
6294
- #: wpuf-functions.php:1957
6295
  msgid "Algerian Dinar"
6296
  msgstr ""
6297
 
6298
- #: wpuf-functions.php:1958
6299
  msgid "Euros"
6300
  msgstr ""
6301
 
6302
- #: wpuf-functions.php:1959
6303
  msgid "Hong Kong Dollar"
6304
  msgstr ""
6305
 
6306
- #: wpuf-functions.php:1960
6307
  msgid "Croatia kuna"
6308
  msgstr ""
6309
 
6310
- #: wpuf-functions.php:1961
6311
  msgid "Hungarian Forint"
6312
  msgstr ""
6313
 
6314
- #: wpuf-functions.php:1962
6315
  msgid "Icelandic krona"
6316
  msgstr ""
6317
 
6318
- #: wpuf-functions.php:1963
6319
  msgid "Indonesia Rupiah"
6320
  msgstr ""
6321
 
6322
- #: wpuf-functions.php:1964
6323
  msgid "Indian Rupee"
6324
  msgstr ""
6325
 
6326
- #: wpuf-functions.php:1965
6327
  msgid "Nepali Rupee"
6328
  msgstr ""
6329
 
6330
- #: wpuf-functions.php:1966
6331
  msgid "Israeli Shekel"
6332
  msgstr ""
6333
 
6334
- #: wpuf-functions.php:1967
6335
  msgid "Japanese Yen"
6336
  msgstr ""
6337
 
6338
- #: wpuf-functions.php:1968
6339
  msgid "Lao Kip"
6340
  msgstr ""
6341
 
6342
- #: wpuf-functions.php:1969
6343
  msgid "South Korean Won"
6344
  msgstr ""
6345
 
6346
- #: wpuf-functions.php:1970
6347
  msgid "Malaysian Ringgits"
6348
  msgstr ""
6349
 
6350
- #: wpuf-functions.php:1971
6351
  msgid "Mexican Peso"
6352
  msgstr ""
6353
 
6354
- #: wpuf-functions.php:1972
6355
  msgid "Nigerian Naira"
6356
  msgstr ""
6357
 
6358
- #: wpuf-functions.php:1973
6359
  msgid "Norwegian Krone"
6360
  msgstr ""
6361
 
6362
- #: wpuf-functions.php:1974
6363
  msgid "New Zealand Dollar"
6364
  msgstr ""
6365
 
6366
- #: wpuf-functions.php:1975
 
 
 
 
6367
  msgid "Omani Rial"
6368
  msgstr ""
6369
 
6370
- #: wpuf-functions.php:1976
6371
  msgid "Iranian Rial"
6372
  msgstr ""
6373
 
6374
- #: wpuf-functions.php:1977
6375
  msgid "Pakistani Rupee"
6376
  msgstr ""
6377
 
6378
- #: wpuf-functions.php:1978
6379
  msgid "Paraguayan Guaraní"
6380
  msgstr ""
6381
 
6382
- #: wpuf-functions.php:1979
6383
  msgid "Philippine Pesos"
6384
  msgstr ""
6385
 
6386
- #: wpuf-functions.php:1980
6387
  msgid "Polish Zloty"
6388
  msgstr ""
6389
 
6390
- #: wpuf-functions.php:1981
6391
  msgid "Pounds Sterling"
6392
  msgstr ""
6393
 
6394
- #: wpuf-functions.php:1982
6395
  msgid "Romanian Leu"
6396
  msgstr ""
6397
 
6398
- #: wpuf-functions.php:1983
6399
  msgid "Russian Ruble"
6400
  msgstr ""
6401
 
6402
- #: wpuf-functions.php:1984
6403
  msgid "Saudi Riyal"
6404
  msgstr ""
6405
 
6406
- #: wpuf-functions.php:1985
6407
  msgid "Singapore Dollar"
6408
  msgstr ""
6409
 
6410
- #: wpuf-functions.php:1986
6411
  msgid "South African rand"
6412
  msgstr ""
6413
 
6414
- #: wpuf-functions.php:1987
6415
  msgid "Swedish Krona"
6416
  msgstr ""
6417
 
6418
- #: wpuf-functions.php:1988
6419
  msgid "Swiss Franc"
6420
  msgstr ""
6421
 
6422
- #: wpuf-functions.php:1989
6423
  msgid "Taiwan New Dollars"
6424
  msgstr ""
6425
 
6426
- #: wpuf-functions.php:1990
6427
  msgid "Thai Baht"
6428
  msgstr ""
6429
 
6430
- #: wpuf-functions.php:1991
6431
  msgid "Turkish Lira"
6432
  msgstr ""
6433
 
6434
- #: wpuf-functions.php:1992
6435
  msgid "US Dollar"
6436
  msgstr ""
6437
 
6438
- #: wpuf-functions.php:1993
6439
  msgid "Vietnamese Dong"
6440
  msgstr ""
6441
 
6442
- #: wpuf-functions.php:1994
6443
  msgid "Egyptian Pound"
6444
  msgstr ""
6445
 
6446
- #: wpuf-functions.php:1995
6447
  msgid "Jordanian dinar"
6448
  msgstr ""
6449
 
6450
- #: wpuf-functions.php:2868
6451
  msgid "None"
6452
  msgstr ""
6453
 
@@ -6492,7 +6572,7 @@ msgstr ""
6492
  msgid "Please Cancel Your Currently Active Pack first!"
6493
  msgstr ""
6494
 
6495
- #: wpuf.php:883
6496
  msgid "Error: Nonce verification failed"
6497
  msgstr ""
6498
 
@@ -6507,11 +6587,11 @@ msgid ""
6507
  msgstr ""
6508
 
6509
  #. Author of the plugin/theme
6510
- msgid "Tareq Hasan"
6511
  msgstr ""
6512
 
6513
  #. Author URI of the plugin/theme
6514
- msgid "https://tareq.co"
6515
  msgstr ""
6516
 
6517
  #: includes/setup-wizard.php:41
@@ -6574,7 +6654,7 @@ msgctxt "enhanced select"
6574
  msgid "Searching&hellip;"
6575
  msgstr ""
6576
 
6577
- #: wpuf-functions.php:1319
6578
  msgctxt "tag delimiter"
6579
  msgid ","
6580
  msgstr ""
1
+ # Copyright (C) 2020 weDevs
2
  # This file is distributed under the GPL2 or later.
3
  msgid ""
4
  msgstr ""
5
+ "Project-Id-Version: WP User Frontend 3.3.0\n"
6
  "Report-Msgid-Bugs-To: https://wedevs.com/contact/\n"
7
+ "POT-Creation-Date: 2020-06-11 10:17:15+00:00\n"
8
  "MIME-Version: 1.0\n"
9
  "Content-Type: text/plain; charset=utf-8\n"
10
  "Content-Transfer-Encoding: 8bit\n"
99
  msgid "JSON file not found"
100
  msgstr ""
101
 
102
+ #: admin/class-admin-settings.php:531
103
+ msgid "Provided file is not a JSON file."
104
+ msgstr ""
105
+
106
+ #: admin/class-admin-settings.php:547
107
  msgid "Forms imported successfully."
108
  msgstr ""
109
 
177
  #: includes/fields/class-abstract-fields.php:346
178
  #: includes/fields/class-abstract-fields.php:409
179
  #: includes/fields/class-field-checkbox.php:74
180
+ #: includes/fields/class-field-radio.php:83 includes/free/form-element.php:460
181
  #: wpuf.php:712
182
  msgid "Yes"
183
  msgstr ""
192
  #: includes/fields/class-abstract-fields.php:347
193
  #: includes/fields/class-abstract-fields.php:410
194
  #: includes/fields/class-field-checkbox.php:75
195
+ #: includes/fields/class-field-radio.php:84 includes/free/form-element.php:461
196
  #: wpuf.php:713
197
  msgid "No"
198
  msgstr ""
364
 
365
  #: admin/class-tools.php:43 admin/class-tools.php:106
366
  #: admin/post-forms-list-table.php:43 class/transactions-list-table.php:87
367
+ #: includes/class-list-table-subscribers.php:136 wpuf-functions.php:2973
368
  msgid "All"
369
  msgstr ""
370
 
498
  msgid "value"
499
  msgstr ""
500
 
501
+ #: admin/form-builder/assets/js/components/field-option-data/template.php:10
502
  #: admin/template.php:231
503
  msgid "Show values"
504
  msgstr ""
505
 
506
+ #: admin/form-builder/assets/js/components/field-option-data/template.php:18
507
+ msgid "Sync values"
508
+ msgstr ""
509
+
510
+ #: admin/form-builder/assets/js/components/field-option-data/template.php:20
511
+ msgid "When enabled, option values will update according to their labels."
512
+ msgstr ""
513
+
514
+ #: admin/form-builder/assets/js/components/field-option-data/template.php:32
515
  #: admin/template.php:234 admin/template.php:286
516
  msgid "Label"
517
  msgstr ""
518
 
519
+ #: admin/form-builder/assets/js/components/field-option-data/template.php:36
520
  #: admin/template.php:234 admin/template.php:286
521
  msgid "Value"
522
  msgstr ""
523
 
524
+ #: admin/form-builder/assets/js/components/field-option-data/template.php:84
525
  msgid "Clear Selection"
526
  msgstr ""
527
 
613
  #: includes/fields/class-field-checkbox.php:101
614
  #: includes/fields/class-field-dropdown.php:105
615
  #: includes/fields/class-field-multidropdown.php:82
616
+ #: includes/fields/class-field-radio.php:109
617
  msgid "Option"
618
  msgstr ""
619
 
1405
  msgid "Contact Support"
1406
  msgstr ""
1407
 
1408
+ #: admin/html/whats-new.php:98
1409
+ msgid "Import forms system"
1410
+ msgstr ""
1411
+
1412
+ #: admin/html/whats-new.php:102
1413
+ msgid "Password reset system"
1414
+ msgstr ""
1415
+
1416
+ #: admin/html/whats-new.php:106
1417
+ msgid "Updated url validation regex to support modern tlds"
1418
+ msgstr ""
1419
+
1420
+ #: admin/html/whats-new.php:110
1421
+ msgid "Export WPUF forms individually from admin tools page"
1422
+ msgstr ""
1423
+
1424
+ #: admin/html/whats-new.php:114
1425
+ msgid "Subscription cycle label translation issue"
1426
+ msgstr ""
1427
+
1428
+ #: admin/html/whats-new.php:118
1429
+ msgid "ACF integration for checkbox fields"
1430
+ msgstr ""
1431
+
1432
+ #: admin/html/whats-new.php:122
1433
+ msgid "Illegal string offset warning while updating settings"
1434
+ msgstr ""
1435
+
1436
+ #: admin/html/whats-new.php:126
1437
+ msgid "Conditional logic for Section Break field"
1438
+ msgstr ""
1439
+
1440
+ #: admin/html/whats-new.php:130
1441
+ msgid "Subscriptions cannot be deleted from backend"
1442
+ msgstr ""
1443
+
1444
+ #: admin/html/whats-new.php:134
1445
+ msgid "A regression regarding saving checkbox data"
1446
+ msgstr ""
1447
+
1448
+ #: admin/html/whats-new.php:138
1449
+ msgid "Default value of multi-select fields is not showing"
1450
+ msgstr ""
1451
+
1452
+ #: admin/html/whats-new.php:148
1453
  msgid "Hide post edit option when subscription is expired"
1454
  msgstr ""
1455
 
1456
+ #: admin/html/whats-new.php:150
1457
  msgid "Hide post edit option from users whose subscription pack is expired."
1458
  msgstr ""
1459
 
1460
+ #: admin/html/whats-new.php:153
1461
  msgid "Check files to prevent duplicity in media upload"
1462
  msgstr ""
1463
 
1464
+ #: admin/html/whats-new.php:155
1465
  msgid ""
1466
  "A simple measure has been taken to prevent maliciously flooding the site by "
1467
  "uploading same file multiple times. Though this won't work with already "
1468
  "uploaded medias."
1469
  msgstr ""
1470
 
1471
+ #: admin/html/whats-new.php:158
1472
  msgid "Refactor address fields in Account section"
1473
  msgstr ""
1474
 
1475
+ #: admin/html/whats-new.php:160
1476
  msgid "Address edit section from Account section has been rewritten to improve UX."
1477
  msgstr ""
1478
 
1479
+ #: admin/html/whats-new.php:163
1480
  msgid "Update Paypal payment gateway"
1481
  msgstr ""
1482
 
1483
+ #: admin/html/whats-new.php:165
1484
  msgid "Paypal payment gateway has seen some improvements."
1485
  msgstr ""
1486
 
1487
+ #: admin/html/whats-new.php:168
1488
  msgid "Default Category selection improvements"
1489
  msgstr ""
1490
 
1491
+ #: admin/html/whats-new.php:170
1492
  msgid ""
1493
  "An intuitive way of selecting default category of a selected post type has "
1494
  "been introduced."
1495
  msgstr ""
1496
 
1497
+ #: admin/html/whats-new.php:173
1498
  msgid "Compatibility issue with ACF date time field"
1499
  msgstr ""
1500
 
1501
+ #: admin/html/whats-new.php:175
1502
  msgid "A Compatibility issue with ACF date time field has been addressed."
1503
  msgstr ""
1504
 
1505
+ #: admin/html/whats-new.php:178
1506
  msgid "Media title, caption & description not saving"
1507
  msgstr ""
1508
 
1509
+ #: admin/html/whats-new.php:180
1510
  msgid ""
1511
  "Media title, caption & description were not saving from frontend. They will "
1512
  "now."
1513
  msgstr ""
1514
 
1515
+ #: admin/html/whats-new.php:183
1516
  msgid ""
1517
  "The Events Calendar venue and organizer fields issue in WPUF Custom Fields "
1518
  "metabox"
1519
  msgstr ""
1520
 
1521
+ #: admin/html/whats-new.php:185
1522
  msgid ""
1523
  "A workaround has been introduced to save The Events Calendar Venue and "
1524
  "Organizer fields properly from WPUF Custom Fields metabox."
1525
  msgstr ""
1526
 
1527
+ #: admin/html/whats-new.php:188
1528
  msgid "Checkbox data not saving from WPUF Custom Fields metabox"
1529
  msgstr ""
1530
 
1531
+ #: admin/html/whats-new.php:190
1532
  msgid ""
1533
  "Checkboxe data from WPUF Custom Fields metabox were not saving. It has been "
1534
  "fixed."
1535
  msgstr ""
1536
 
1537
+ #: admin/html/whats-new.php:193
1538
  msgid "Multi-column Repeater field data saving issue"
1539
  msgstr ""
1540
 
1541
+ #: admin/html/whats-new.php:195
1542
  msgid ""
1543
  "Multi-column Repeater field data from a form was not saving. It has been "
1544
  "fixed."
1545
  msgstr ""
1546
 
1547
+ #: admin/html/whats-new.php:198
1548
  msgid "Multistep form conflict with Elementor"
1549
  msgstr ""
1550
 
1551
+ #: admin/html/whats-new.php:200
1552
  msgid "Multistep form had a conflict with Elementor. It has been fixed."
1553
  msgstr ""
1554
 
1555
+ #: admin/html/whats-new.php:203
1556
  msgid "Multiple images showing issue in frontend"
1557
  msgstr ""
1558
 
1559
+ #: admin/html/whats-new.php:205
1560
  msgid "Multiple images in a post were not showing in frontend. Now they will."
1561
  msgstr ""
1562
 
1563
+ #: admin/html/whats-new.php:214
1564
  msgid "Nonce not verify on login"
1565
  msgstr ""
1566
 
1567
+ #: admin/html/whats-new.php:216
1568
  msgid "Return of function wp_verify_nonce() was ignored."
1569
  msgstr ""
1570
 
1571
+ #: admin/html/whats-new.php:225
1572
  msgid "Option to set which tab shows as active on the account page"
1573
  msgstr ""
1574
 
1575
+ #: admin/html/whats-new.php:227
1576
  msgid ""
1577
  "Option to set which tab shows as active on the account page. To configure "
1578
  "this setting navigate to wp-admin->User Frontend->Settings->My "
1579
  "Account->Active Tab "
1580
  msgstr ""
1581
 
1582
+ #: admin/html/whats-new.php:230
1583
  msgid "Unlock option was unavailable after the post being locked"
1584
  msgstr ""
1585
 
1586
+ #: admin/html/whats-new.php:232
1587
  msgid "Unlock option was unavailable after the post being locked."
1588
  msgstr ""
1589
 
1590
+ #: admin/html/whats-new.php:235
1591
  msgid "Gutenberg block of WPUF didn't work on bedrock installation"
1592
  msgstr ""
1593
 
1594
+ #: admin/html/whats-new.php:237
1595
  msgid "Gutenberg block of WPUF didn't work on bedrock installation."
1596
  msgstr ""
1597
 
1598
+ #: admin/html/whats-new.php:240
1599
  msgid "Sending admin payment received email twice"
1600
  msgstr ""
1601
 
1602
+ #: admin/html/whats-new.php:242
1603
  msgid ""
1604
  "After processing payment admin & user was receiving payment received email "
1605
  "twice."
1606
  msgstr ""
1607
 
1608
+ #: admin/html/whats-new.php:245
1609
  msgid ""
1610
  "Add shortcode support to display post information in the Post Expiration "
1611
  "Message"
1612
  msgstr ""
1613
 
1614
+ #: admin/html/whats-new.php:247
1615
  msgid ""
1616
  "Add shortcode support to display post information in the Post Expiration "
1617
  "Message. You can use: <strong>{post_author} {post_url} {blogname} "
1618
  "{post_title} {post_status}</strong>"
1619
  msgstr ""
1620
 
1621
+ #: admin/html/whats-new.php:250
1622
  msgid "Add optin on the setup wizard"
1623
  msgstr ""
1624
 
1625
+ #: admin/html/whats-new.php:252
1626
  msgid ""
1627
  "Added optin on the setup wizard, admin can choose whether he/she wants to "
1628
  "share server environment details (php, mysql, server, WordPress versions), "
1630
  "name and url, admin name and email address. No sensitive data is tracked"
1631
  msgstr ""
1632
 
1633
+ #: admin/html/whats-new.php:261
1634
  msgid "Post Owner problem"
1635
  msgstr ""
1636
 
1637
+ #: admin/html/whats-new.php:263
1638
  msgid ""
1639
  "Posts were not assigned to the selected default post owner, this issue has "
1640
  "been fixed."
1641
  msgstr ""
1642
 
1643
+ #: admin/html/whats-new.php:266
1644
  msgid "Google reCaptcha was not working"
1645
  msgstr ""
1646
 
1647
+ #: admin/html/whats-new.php:268
1648
  msgid ""
1649
  "Google reCaptcha was not working, users could submit the form without "
1650
  "reCaptcha validation."
1651
  msgstr ""
1652
 
1653
+ #: admin/html/whats-new.php:277
1654
  msgid "Added column field"
1655
  msgstr ""
1656
 
1657
+ #: admin/html/whats-new.php:282
1658
  msgid "Unable to render the events on the front-end dashboard"
1659
  msgstr ""
1660
 
1661
+ #: admin/html/whats-new.php:284
1662
  msgid ""
1663
  "On the frontend dashboard, the submitted events were not showing, you will "
1664
  "get it fixed in this version."
1665
  msgstr ""
1666
 
1667
+ #: admin/html/whats-new.php:287
1668
  msgid "Page order getting 0(zero) after editing from the frontend"
1669
  msgstr ""
1670
 
1671
+ #: admin/html/whats-new.php:289
1672
  msgid ""
1673
  "Page order was not saving while editing a post using WPUF form, it has been "
1674
  "fixed."
1675
  msgstr ""
1676
 
1677
+ #: admin/html/whats-new.php:292
1678
  msgid "Text input field for taxonomies not working"
1679
  msgstr ""
1680
 
1681
+ #: admin/html/whats-new.php:294
1682
  msgid ""
1683
  "When taxonomy field type is set to `Text Input` then a fatal error was "
1684
  "showing on the frontend, no error with taxonomy field in the latest version."
1685
  msgstr ""
1686
 
1687
+ #: admin/html/whats-new.php:297
1688
  msgid ""
1689
  "In radio and checkbox field use conditional logic that value does not save "
1690
  "in database"
1691
  msgstr ""
1692
 
1693
+ #: admin/html/whats-new.php:299
1694
  msgid ""
1695
  "The selected value of radio and checkbox field were not showing while "
1696
  "editing posts from the backend or frontend, you can see the selected value "
1697
  "in this version."
1698
  msgstr ""
1699
 
1700
+ #: admin/html/whats-new.php:302
1701
  msgid "The args param not working with get_avatar filter"
1702
  msgstr ""
1703
 
1704
+ #: admin/html/whats-new.php:304
1705
  msgid "The args parameter did not exist with get_avatar filter, which now exists."
1706
  msgstr ""
1707
 
1708
+ #: admin/html/whats-new.php:307
1709
  msgid "The item in ajax taxonomy field was not selected"
1710
  msgstr ""
1711
 
1712
+ #: admin/html/whats-new.php:309
1713
  msgid ""
1714
  "When the taxonomy field type is set to Ajax, the submitted terms were not "
1715
  "showing in the backend and frontend which have been fixed."
1716
  msgstr ""
1717
 
1718
+ #: admin/html/whats-new.php:318
1719
  msgid "Unable to send new user registration email"
1720
  msgstr ""
1721
 
1722
+ #: admin/html/whats-new.php:320
1723
  msgid ""
1724
  "WP User Frontend default registration form `[wpuf-registration]` was unable "
1725
  "to send the new user registration email."
1726
  msgstr ""
1727
 
1728
+ #: admin/html/whats-new.php:323
1729
  msgid "WPUF forms block compatibility issue with the latest WP version"
1730
  msgstr ""
1731
 
1732
+ #: admin/html/whats-new.php:325
1733
  msgid ""
1734
  "With the latest version of WordPress the gutenberg block of WP User "
1735
  "Frontend were not working. In this version, you will get it fixed."
1736
  msgstr ""
1737
 
1738
+ #: admin/html/whats-new.php:328
1739
  msgid "Page not update where `[wpuf_dashboard]` shortcode exist"
1740
  msgstr ""
1741
 
1742
+ #: admin/html/whats-new.php:330
1743
  msgid ""
1744
  "While using Gutenberg, the page were not being updated with WPUF shortcode "
1745
  "[wpuf dashboard]"
1746
  msgstr ""
1747
 
1748
+ #: admin/html/whats-new.php:333
1749
  msgid "Retain default when determining whether to display the admin bar"
1750
  msgstr ""
1751
 
1752
+ #: admin/html/whats-new.php:335
1753
  msgid ""
1754
  "From the User Frontend Settings, set that Administrator, Editor, Vendor can "
1755
  "see the admin bar. Now, the super admin want, one specific user ( who has "
1759
  "frontend."
1760
  msgstr ""
1761
 
1762
+ #: admin/html/whats-new.php:338
1763
  msgid "Fatal error when use PHP lower version (5.4 or lower)"
1764
  msgstr ""
1765
 
1766
+ #: admin/html/whats-new.php:340
1767
  msgid ""
1768
  "It was unable to install WP User Frontend with PHP 5.4 or lower version. "
1769
  "Here is the error details: <br><br><strong>Fatal error: Can't use method "
1771
  "/wp-user-frontend/class/frontend-form-post.php on line 194</strong>"
1772
  msgstr ""
1773
 
1774
+ #: admin/html/whats-new.php:343
1775
  msgid "Product form was unable to show the single gallery image"
1776
  msgstr ""
1777
 
1778
+ #: admin/html/whats-new.php:345
1779
  msgid ""
1780
  "When user upload single image for product gallery using WPUF WooCommerce "
1781
  "product form, that image were not showing on the frontend."
1782
  msgstr ""
1783
 
1784
+ #: admin/html/whats-new.php:354
1785
  msgid "WooCommerce gallery images not getting saved"
1786
  msgstr ""
1787
 
1788
+ #: admin/html/whats-new.php:356
1789
  msgid ""
1790
  "After releasing version 2.9.3, WooCommerce gallery image field stopped "
1791
  "working. You will get it fixed in this version."
1792
  msgstr ""
1793
 
1794
+ #: admin/html/whats-new.php:365
1795
  msgid "The Events Calendar Integration Form"
1796
  msgstr ""
1797
 
1798
+ #: admin/html/whats-new.php:367
1799
  msgid ""
1800
  "Now admin can allow users to create event from the frontend. Currently WPUF "
1801
  "has a one click pre-build event form that has been integrated with The "
1802
  "Events Calendar plugin"
1803
  msgstr ""
1804
 
1805
+ #: admin/html/whats-new.php:370
1806
  msgid "Post Submission Facility From Account Page"
1807
  msgstr ""
1808
 
1809
+ #: admin/html/whats-new.php:372
1810
  msgid ""
1811
  "On the frontend account page, added a new menu item named <b>Submit "
1812
  "Post</b>. Now admin can allow users to submit post from their default "
1815
  "you can assign any post form that will use to submit posts."
1816
  msgstr ""
1817
 
1818
+ #: admin/html/whats-new.php:375
1819
  msgid "Login/Lost Password Link Under Registration Form"
1820
  msgstr ""
1821
 
1822
+ #: admin/html/whats-new.php:377
1823
  msgid "Added Login/Lost Password link under registration form"
1824
  msgstr ""
1825
 
1826
+ #: admin/html/whats-new.php:386
1827
  msgid "Added drag and drop image ordering on image upload"
1828
  msgstr ""
1829
 
1830
+ #: admin/html/whats-new.php:388
1831
  msgid ""
1832
  "Now frontend users can drag & drop the images/files to change the order "
1833
  "while uploading."
1834
  msgstr ""
1835
 
1836
+ #: admin/html/whats-new.php:391
1837
  msgid "Added reCAPTCHA field in login form"
1838
  msgstr ""
1839
 
1840
+ #: admin/html/whats-new.php:393
1841
  msgid ""
1842
  "Admin has the option to show reCAPTCHA field in login form. Check the "
1843
  "related settings from <strong>User Frontend > Settings > "
1844
  "Login/Registration</strong>"
1845
  msgstr ""
1846
 
1847
+ #: admin/html/whats-new.php:396
1848
  msgid "Added preview option in forms"
1849
  msgstr ""
1850
 
1851
+ #: admin/html/whats-new.php:398
1852
  msgid ""
1853
  "You can see a nice <strong>Preview</strong> button with <strong>Save "
1854
  "Form</strong> button, admin can take a quick look of the form without using "
1855
  "shortcode"
1856
  msgstr ""
1857
 
1858
+ #: admin/html/whats-new.php:401
1859
  msgid "Fixed hiding “Select Image” button while uploading multiple images."
1860
  msgstr ""
1861
 
1862
+ #: admin/html/whats-new.php:403
1863
  msgid ""
1864
  "The upload button will not be hidden until the user selects max number of "
1865
  "files "
1866
  msgstr ""
1867
 
1868
+ #: admin/html/whats-new.php:406
1869
  msgid "Added form limit notice before form submission"
1870
  msgstr ""
1871
 
1872
+ #: admin/html/whats-new.php:408
1873
  msgid ""
1874
  "Limit notice message was showing after submission, now it is showing when "
1875
  "rendering the form"
1876
  msgstr ""
1877
 
1878
+ #: admin/html/whats-new.php:411
1879
  msgid "Fixed: default post category not saving"
1880
  msgstr ""
1881
 
1882
+ #: admin/html/whats-new.php:413
1883
  msgid ""
1884
  "From the form <strong>Settings > Post Settings</strong>, default post "
1885
  "category options were not saving. Now, it's fixed."
1886
  msgstr ""
1887
 
1888
+ #: admin/html/whats-new.php:416
1889
  msgid ""
1890
  "WPUF dashboard shortcode with form_id attribute was not showing posts "
1891
  "properly"
1892
  msgstr ""
1893
 
1894
+ #: admin/html/whats-new.php:418
1895
  msgid ""
1896
  "Now you can list posts on the frontend by using <strong>form_id<strong/> "
1897
  "attribute with <strong>[wpuf_dashboard]</strong> shortcode"
1898
  msgstr ""
1899
 
1900
+ #: admin/html/whats-new.php:427
1901
  msgid "Changed text domain to `wp-user-frontend` from `wpuf` "
1902
  msgstr ""
1903
 
1904
+ #: admin/html/whats-new.php:429
1905
  msgid ""
1906
  "If you are using other language than English. Please <b>rename</b> your "
1907
  "<i>.po and .mo </i> files to `wp-user-frontend_` from `wpuf_` <br> This "
1908
  "change was made to support translations from translate.wordpress.org"
1909
  msgstr ""
1910
 
1911
+ #: admin/html/whats-new.php:432
1912
  msgid "Added WP User Frontend Data export and erase functionality."
1913
  msgstr ""
1914
 
1915
+ #: admin/html/whats-new.php:434
1916
  msgid "Added functionality to export WP User Frontend Data to comply with GDPR."
1917
  msgstr ""
1918
 
1919
+ #: admin/html/whats-new.php:437
1920
  msgid "Added billing address customizer."
1921
  msgstr ""
1922
 
1923
+ #: admin/html/whats-new.php:439
1924
  msgid "Added customizer options for billing address in payment page."
1925
  msgstr ""
1926
 
1927
+ #: admin/html/whats-new.php:442
1928
  msgid "Make the payment page responsive."
1929
  msgstr ""
1930
 
1931
+ #: admin/html/whats-new.php:444
1932
  msgid "Some css adjustments are made in payment page to make it responsive."
1933
  msgstr ""
1934
 
1935
+ #: admin/html/whats-new.php:447
1936
  msgid "Fixed image upload issue in Safari."
1937
  msgstr ""
1938
 
1939
+ #: admin/html/whats-new.php:449
1940
  msgid "Images were not showing after upload in safari, it is fixed now."
1941
  msgstr ""
1942
 
1943
+ #: admin/html/whats-new.php:452
1944
  msgid "Post update issue after updating or removing post images."
1945
  msgstr ""
1946
 
1947
+ #: admin/html/whats-new.php:454
1948
  msgid ""
1949
  "Posts cannot be updated after updating or removing post images, it is fixed "
1950
  "now."
1951
  msgstr ""
1952
 
1953
+ #: admin/html/whats-new.php:463
1954
  msgid "Allow overriding form input styles using theme styling."
1955
  msgstr ""
1956
 
1957
+ #: admin/html/whats-new.php:465
1958
  msgid "Overriding form input styles using theme style is now possible."
1959
  msgstr ""
1960
 
1961
+ #: admin/html/whats-new.php:468
1962
  msgid "Fixed Auto Login after registration."
1963
  msgstr ""
1964
 
1965
+ #: admin/html/whats-new.php:470
1966
  msgid "Auto Login after registration was not working is fixed now."
1967
  msgstr ""
1968
 
1969
+ #: admin/html/whats-new.php:473
1970
  msgid "Fixed fallback cost calculation"
1971
  msgstr ""
1972
 
1973
+ #: admin/html/whats-new.php:475
1974
  msgid "Fallback cost calculation was inaccurate for some cases, it is fixed now."
1975
  msgstr ""
1976
 
1977
+ #: admin/html/whats-new.php:478
1978
  msgid "Removal of subscription from User Profile gets reverted if updated"
1979
  msgstr ""
1980
 
1981
+ #: admin/html/whats-new.php:480
1982
  msgid "User subscription deletion gets reverted if updated is fixed."
1983
  msgstr ""
1984
 
1985
+ #: admin/html/whats-new.php:483
1986
  msgid "Show Free pack users in subscribers list."
1987
  msgstr ""
1988
 
1989
+ #: admin/html/whats-new.php:485
1990
  msgid "Free pack users were not showing in subscribers list, now they will."
1991
  msgstr ""
1992
 
1993
+ #: admin/html/whats-new.php:494
1994
  msgid "WP User Frontend Guten Block is added"
1995
  msgstr ""
1996
 
1997
+ #: admin/html/whats-new.php:496
1998
  msgid ""
1999
  "WPUF Form Block is now available to be used within gutenberg editor with "
2000
  "preview of the form. "
2001
  msgstr ""
2002
 
2003
+ #: admin/html/whats-new.php:499
2004
  msgid "Advanced Custom Fields plugin compatibility"
2005
  msgstr ""
2006
 
2007
+ #: admin/html/whats-new.php:501
2008
  msgid "Now all your ACF fields can be used within WPUF Post forms. "
2009
  msgstr ""
2010
 
2011
+ #: admin/html/whats-new.php:504
2012
  msgid "Taxonomy Terms not showing for custom post types"
2013
  msgstr ""
2014
 
2015
+ #: admin/html/whats-new.php:506
2016
  msgid ""
2017
  "Fixed an issue with taxonomy terms not appearing for Custom Post types "
2018
  "within Form Settings and Dashboard Post Listing"
2019
  msgstr ""
2020
 
2021
+ #: admin/html/whats-new.php:509
2022
  msgid "Various other code optimizations"
2023
  msgstr ""
2024
 
2025
+ #: admin/html/whats-new.php:511 admin/html/whats-new.php:568
2026
  msgid "Code structure organization and optimization for better performance"
2027
  msgstr ""
2028
 
2029
+ #: admin/html/whats-new.php:520
2030
  msgid "WoooCommerce billing address Sync"
2031
  msgstr ""
2032
 
2033
+ #: admin/html/whats-new.php:522
2034
  msgid ""
2035
  "If an existing customer has previously set his billing address, that will "
2036
  "be imported into WPUF Billing address "
2037
  msgstr ""
2038
 
2039
+ #: admin/html/whats-new.php:525
2040
  msgid "Trial subscription message not showing properly"
2041
  msgstr ""
2042
 
2043
+ #: admin/html/whats-new.php:527
2044
  msgid "Subscriptions with Trial now shows trial notices"
2045
  msgstr ""
2046
 
2047
+ #: admin/html/whats-new.php:530
2048
  msgid "Reset email Key not working"
2049
  msgstr ""
2050
 
2051
+ #: admin/html/whats-new.php:532
2052
  msgid "Reset Email key was not working in some cases"
2053
  msgstr ""
2054
 
2055
+ #: admin/html/whats-new.php:535
2056
  msgid "Post count not showing on the frontend dashboard"
2057
  msgstr ""
2058
 
2059
+ #: admin/html/whats-new.php:537
2060
  msgid ""
2061
  "Dashboard with multiple post type was not showing post counts properly, is "
2062
  "now fixed and shows count for each post type"
2063
  msgstr ""
2064
 
2065
+ #: admin/html/whats-new.php:540
2066
  msgid "Login Redirect showing blank page is fixed"
2067
  msgstr ""
2068
 
2069
+ #: admin/html/whats-new.php:542
2070
  msgid ""
2071
  "If \"Previous Page\" was set for redirection, login redirect was "
2072
  "redirecting to blank page for users who hit login page directly"
2073
  msgstr ""
2074
 
2075
+ #: admin/html/whats-new.php:551
2076
  msgid "Enhanced Login Redirect to redirect users to previous page"
2077
  msgstr ""
2078
 
2079
+ #: admin/html/whats-new.php:553
2080
  msgid ""
2081
  "You can choose Previous Page as Login Redirect page settings now to "
2082
  "redirect users to the page from which they went for Login. "
2083
  msgstr ""
2084
 
2085
+ #: admin/html/whats-new.php:556
2086
  msgid "Email HTML links not Rendreing properly issue is fixed"
2087
  msgstr ""
2088
 
2089
+ #: admin/html/whats-new.php:558
2090
  msgid ""
2091
  "For some clients emails were not rendering the HTML links properly, this is "
2092
  "now fixed"
2093
  msgstr ""
2094
 
2095
+ #: admin/html/whats-new.php:561
2096
  msgid "Form Builder : Form Field's Help text styles not showing properly"
2097
  msgstr ""
2098
 
2099
+ #: admin/html/whats-new.php:563
2100
  msgid "Help texts styling is now fixed and much easier to read and understand"
2101
  msgstr ""
2102
 
2103
+ #: admin/html/whats-new.php:566
2104
  msgid "Various other code improvements"
2105
  msgstr ""
2106
 
2107
+ #: admin/html/whats-new.php:577
2108
  msgid "Dashboard Post Listing now supports multiple post types"
2109
  msgstr ""
2110
 
2111
+ #: admin/html/whats-new.php:579
2112
  msgid ""
2113
  "Now you can show multiple post type in user dashboard using shortcode like "
2114
  "this : <br><b>[wpuf_dashboard post_type=\"post,page,custom_type\"]</b> "
2115
  msgstr ""
2116
 
2117
+ #: admin/html/whats-new.php:582
2118
  msgid "Added Login Redirect Settings"
2119
  msgstr ""
2120
 
2121
+ #: admin/html/whats-new.php:584
2122
  msgid ""
2123
  "You can now set a page from <i>WPUF Settings > Login/Registration > "
2124
  "Redirect after Login</i>. When login redirection is active the user will be "
2125
  "redirected to this page after login."
2126
  msgstr ""
2127
 
2128
+ #: admin/html/whats-new.php:587
2129
  msgid "Image Upload field button text can be changed"
2130
  msgstr ""
2131
 
2132
+ #: admin/html/whats-new.php:589
2133
  msgid ""
2134
  "The upload button text can now be changed for image upload fields which "
2135
  "defaults to \"Select Image\" if not set. "
2136
  msgstr ""
2137
 
2138
+ #: admin/html/whats-new.php:592
2139
  msgid "Multi Step Form styles made compatible with more themes"
2140
  msgstr ""
2141
 
2142
+ #: admin/html/whats-new.php:594
2143
  msgid "Multi Step form can now be styled more easily with other themes "
2144
  msgstr ""
2145
 
2146
+ #: admin/html/whats-new.php:597
2147
  msgid "Required field condition for google map not working is fixed"
2148
  msgstr ""
2149
 
2150
+ #: admin/html/whats-new.php:599
2151
  msgid ""
2152
  "If Google Map field was set as required users were able to submit form "
2153
  "without changing the default value."
2154
  msgstr ""
2155
 
2156
+ #: admin/html/whats-new.php:608
2157
  msgid "Admin form builder is now fully responsive."
2158
  msgstr ""
2159
 
2160
+ #: admin/html/whats-new.php:610
2161
  msgid ""
2162
  "Now you can edit forms from your mobile devices directly. Our improved "
2163
  "responsive layouts of form builder makes it easy for you to build forms on "
2164
  "the go."
2165
  msgstr ""
2166
 
2167
+ #: admin/html/whats-new.php:613
2168
  msgid "Added color schemes for creating attractive form layouts."
2169
  msgstr ""
2170
 
2171
+ #: admin/html/whats-new.php:615
2172
  msgid ""
2173
  "We have added 3 new color schemes for the form layouts which you can choose "
2174
  "from each form's new display settings."
2175
  msgstr ""
2176
 
2177
+ #: admin/html/whats-new.php:618
2178
  msgid "Restrict Free subscription pack to be enabled multiple times "
2179
  msgstr ""
2180
 
2181
+ #: admin/html/whats-new.php:620
2182
  msgid ""
2183
  "Free subscription packs now can only be purchased once and the limit "
2184
  "applies properly"
2185
  msgstr ""
2186
 
2187
+ #: admin/html/whats-new.php:623
2188
  msgid "Various other bug fixes and improvements were made "
2189
  msgstr ""
2190
 
2191
+ #: admin/html/whats-new.php:625
2192
  msgid "Please see the change log to see full details."
2193
  msgstr ""
2194
 
2195
+ #: admin/html/whats-new.php:634
2196
  msgid "Added upgrade function for default category"
2197
  msgstr ""
2198
 
2199
+ #: admin/html/whats-new.php:636
2200
  msgid "Upgrader added to upgrade previously set default post category."
2201
  msgstr ""
2202
 
2203
+ #: admin/html/whats-new.php:639
2204
  msgid "Subscription pack cannot be canceled"
2205
  msgstr ""
2206
 
2207
+ #: admin/html/whats-new.php:641
2208
  msgid ""
2209
  "Fixed recurring subscription pack cannot be canceled from my account page "
2210
  "in subscription details section."
2211
  msgstr ""
2212
 
2213
+ #: admin/html/whats-new.php:644
2214
  msgid "page installer admin notice logic issue"
2215
  msgstr ""
2216
 
2217
+ #: admin/html/whats-new.php:646
2218
  msgid ""
2219
  "Fixed page installer admin notice logic problem due to new payment settings "
2220
  "default value not set."
2221
  msgstr ""
2222
 
2223
+ #: admin/html/whats-new.php:656
2224
  msgid "Setup Wizard"
2225
  msgstr ""
2226
 
2227
+ #: admin/html/whats-new.php:658
2228
  msgid "Setup Wizard added to turn off payment options and install pages."
2229
  msgstr ""
2230
 
2231
+ #: admin/html/whats-new.php:662
2232
  msgid "Multi-select Category"
2233
  msgstr ""
2234
 
2235
+ #: admin/html/whats-new.php:664
2236
  msgid "Add multi-select to default category in post form settings."
2237
  msgstr ""
2238
 
2239
+ #: admin/html/whats-new.php:668
2240
  msgid "Select Text option for Taxonomy"
2241
  msgstr ""
2242
 
2243
+ #: admin/html/whats-new.php:670
2244
  msgid ""
2245
  "Add Select Text option for taxonomy fields. Now you can add default text "
2246
  "with empty value as first option for Taxonomy dropdown."
2247
  msgstr ""
2248
 
2249
+ #: admin/html/whats-new.php:673
2250
  msgid "Taxonomy Checkbox Inline"
2251
  msgstr ""
2252
 
2253
+ #: admin/html/whats-new.php:675
2254
  msgid ""
2255
  "Added checkbox inline option to taxonomy checkbox. You can now display "
2256
  "Taxonomy checkbox fields inline."
2257
  msgstr ""
2258
 
2259
+ #: admin/html/whats-new.php:685
2260
  msgid "Manage schedule for form submission"
2261
  msgstr ""
2262
 
2263
+ #: admin/html/whats-new.php:687
2264
  msgid ""
2265
  "Do not accept form submission if the current date is not between the date "
2266
  "range of the schedule."
2267
  msgstr ""
2268
 
2269
+ #: admin/html/whats-new.php:691
2270
  msgid "Restrict form submission based on the user roles"
2271
  msgstr ""
2272
 
2273
+ #: admin/html/whats-new.php:693
2274
  msgid ""
2275
  "Restrict form submission based on the user roles. Now you can manage user "
2276
  "role base permission on form submission."
2277
  msgstr ""
2278
 
2279
+ #: admin/html/whats-new.php:697
2280
  msgid "Limit how many entries a form will accept"
2281
  msgstr ""
2282
 
2283
+ #: admin/html/whats-new.php:699
2284
  msgid ""
2285
  "Limit how many entries a form will accept and display a custom message when "
2286
  "that limit is reached."
2287
  msgstr ""
2288
 
2289
+ #: admin/html/whats-new.php:703
2290
  msgid "Show/hide Admin Bar"
2291
  msgstr ""
2292
 
2293
+ #: admin/html/whats-new.php:705
2294
  msgid "Control the admin bar visibility based on user roles."
2295
  msgstr ""
2296
 
2297
+ #: admin/html/whats-new.php:709
2298
  msgid "Ajax Login widget"
2299
  msgstr ""
2300
 
2301
+ #: admin/html/whats-new.php:711
2302
  msgid ""
2303
  "Login user is more simple now with Ajax Login Widget. The simple ajax login "
2304
  "form do not required page loading for login."
2305
  msgstr ""
2306
 
2307
+ #: admin/html/whats-new.php:715
2308
  msgid "Form submission with Captcha field"
2309
  msgstr ""
2310
 
2311
+ #: admin/html/whats-new.php:717
2312
  msgid "Form field validation process updated if form submits with captcha field."
2313
  msgstr ""
2314
 
2315
+ #: admin/html/whats-new.php:731
2316
  msgid "What's New in WPUF?"
2317
  msgstr ""
2318
 
2335
  msgstr ""
2336
 
2337
  #: admin/installer.php:84 admin/settings-options.php:24
2338
+ #: includes/free/admin/shortcode-button.php:79 wpuf-functions.php:1918
2339
  msgid "Dashboard"
2340
  msgstr ""
2341
 
2351
  #: admin/installer.php:95 class/subscription.php:381 class/subscription.php:401
2352
  #: class/subscription.php:402 class/subscription.php:403
2353
  #: includes/free/admin/shortcode-button.php:99
2354
+ #: templates/dashboard/dashboard.php:19 wpuf-functions.php:1921
2355
  msgid "Subscription"
2356
  msgstr ""
2357
 
2451
  msgid "Are you sure?"
2452
  msgstr ""
2453
 
2454
+ #: admin/posting.php:80 class/asset-loader.php:63 wpuf.php:732
2455
  msgid "Allowed Files"
2456
  msgstr ""
2457
 
2458
+ #: admin/posting.php:83 class/asset-loader.php:66 wpuf.php:738
2459
  msgid "Maximum number of files reached!"
2460
  msgstr ""
2461
 
2462
+ #: admin/posting.php:84 class/asset-loader.php:67 wpuf.php:739
2463
  msgid "The file you have uploaded exceeds the file size limit. Please try again."
2464
  msgstr ""
2465
 
2466
+ #: admin/posting.php:85 class/asset-loader.php:68 wpuf.php:740
2467
  msgid "You have uploaded an incorrect file type. Please try again."
2468
  msgstr ""
2469
 
3569
  msgstr ""
3570
 
3571
  #: admin/template.php:520 admin/template.php:578 admin/template.php:656
3572
+ #: class/upload.php:260 includes/fields/class-field-recaptcha.php:147
3573
  #: includes/fields/class-field-sectionbreak.php:55
3574
  #: templates/dashboard/posts.php:89 templates/dashboard.php:104
3575
+ #: wpuf-functions.php:951
3576
  msgid "Title"
3577
  msgstr ""
3578
 
3588
  msgid "Enter the meta value"
3589
  msgstr ""
3590
 
3591
+ #: admin/template.php:583 class/upload.php:262
3592
+ #: includes/fields/class-field-sectionbreak.php:63 wpuf-functions.php:959
3593
  msgid "Description"
3594
  msgstr ""
3595
 
3772
  msgstr ""
3773
 
3774
  #: class/payment.php:138 includes/class-customizer.php:56
3775
+ #: wpuf-functions.php:1922
3776
  msgid "Billing Address"
3777
  msgstr ""
3778
 
3820
  msgid "No Payment gateway found"
3821
  msgstr ""
3822
 
3823
+ #: class/payment.php:480 lib/gateway/bank.php:107
3824
  msgid "[%s] Payment Received"
3825
  msgstr ""
3826
 
3827
+ #: class/payment.php:481
3828
  msgid "New payment received at %s"
3829
  msgstr ""
3830
 
3952
  msgstr ""
3953
 
3954
  #: class/render-form.php:1401 includes/fields/class-field-post-taxonomy.php:122
3955
+ #: wpuf-functions.php:1706
3956
  msgid "-- Select --"
3957
  msgstr ""
3958
 
4166
  msgid "No transactions found."
4167
  msgstr ""
4168
 
4169
+ #: class/upload.php:261 wpuf-functions.php:955
4170
  msgid "Caption"
4171
  msgstr ""
4172
 
4173
+ #: class/upload.php:284
4174
+ msgid "attach_id is required."
4175
+ msgstr ""
4176
+
4177
+ #: class/upload.php:294
4178
+ msgid "Attachment deleted successfully."
4179
+ msgstr ""
4180
+
4181
+ #: class/upload.php:297
4182
+ msgid "Could not deleted the attachment"
4183
+ msgstr ""
4184
+
4185
+ #: class/upload.php:300
4186
+ msgid "Something went wrong."
4187
+ msgstr ""
4188
+
4189
  #: includes/class-acf.php:169
4190
  msgid "%s Detected"
4191
  msgstr ""
4224
  msgid "Some Required Fields are not filled!"
4225
  msgstr ""
4226
 
4227
+ #: includes/class-billing-address.php:161 includes/class-customizer.php:22
4228
  #: includes/class-customizer.php:66 includes/class-privacy.php:265
4229
  #: templates/dashboard/billing-address.php:52
4230
  msgid "Country"
4231
  msgstr ""
4232
 
4233
+ #: includes/class-billing-address.php:184
4234
  #: templates/dashboard/billing-address.php:66
4235
  msgid "Choose a country"
4236
  msgstr ""
4237
 
4238
+ #: includes/class-billing-address.php:203 includes/class-customizer.php:23
4239
  #: includes/class-customizer.php:67 templates/dashboard/billing-address.php:85
4240
  msgid "State/Province/Region"
4241
  msgstr ""
4242
 
4243
+ #: includes/class-billing-address.php:217
4244
  #: templates/dashboard/billing-address.php:100
4245
  msgid "Choose a state"
4246
  msgstr ""
4247
 
4248
+ #: includes/class-billing-address.php:236
4249
  #: templates/dashboard/billing-address.php:120
4250
  msgid "Address Line 1 "
4251
  msgstr ""
4252
 
4253
+ #: includes/class-billing-address.php:247
4254
  #: templates/dashboard/billing-address.php:129
4255
  msgid "Address Line 2 "
4256
  msgstr ""
4257
 
4258
+ #: includes/class-billing-address.php:258 includes/class-customizer.php:26
4259
  #: includes/class-customizer.php:70 includes/class-privacy.php:253
4260
  #: templates/dashboard/billing-address.php:137
4261
  msgid "City"
4262
  msgstr ""
4263
 
4264
+ #: includes/class-billing-address.php:268 includes/class-customizer.php:27
4265
  #: includes/class-customizer.php:71
4266
  msgid "Postal Code/ZIP"
4267
  msgstr ""
4268
 
4269
+ #: includes/class-billing-address.php:278
4270
  #: templates/dashboard/billing-address.php:156
4271
  msgid "Update Billing Address"
4272
  msgstr ""
4273
 
4274
+ #: includes/class-billing-address.php:321
4275
  #: templates/dashboard/billing-address.php:32
4276
  msgid "Billing address is updated."
4277
  msgstr ""
4303
 
4304
  #: includes/class-dokan-integration.php:34
4305
  #: includes/class-wc-vendors-integration.php:108
4306
+ #: templates/dashboard/dashboard.php:15 wpuf-functions.php:1919
4307
  msgid "Posts"
4308
  msgstr ""
4309
 
4423
  "Please check your inbox!"
4424
  msgstr ""
4425
 
4426
+ #: includes/class-frontend-render-form.php:833
4427
+ #: includes/free/class-login.php:449
4428
  msgid "Empty reCaptcha Field"
4429
  msgstr ""
4430
 
4501
  msgid "Someone has requested a password reset for the following account:"
4502
  msgstr ""
4503
 
4504
+ #: includes/class-login-widget.php:147 includes/free/class-login.php:828
4505
+ #: includes/free/class-login.php:909 includes/free/class-registration.php:291
4506
  msgid "Username: %s"
4507
  msgstr ""
4508
 
4509
+ #: includes/class-login-widget.php:148 includes/free/class-login.php:910
4510
  msgid "If this was a mistake, just ignore this email and nothing will happen."
4511
  msgstr ""
4512
 
4513
+ #: includes/class-login-widget.php:149 includes/free/class-login.php:911
4514
  msgid "To reset your password, visit the following address:"
4515
  msgstr ""
4516
 
4517
+ #: includes/class-login-widget.php:154 includes/free/class-login.php:922
4518
  msgid "[%s] Password Reset"
4519
  msgstr ""
4520
 
4525
  msgstr ""
4526
 
4527
  #: includes/class-login-widget.php:216 includes/class-login-widget.php:252
4528
+ #: includes/free/class-login.php:321 includes/free/class-registration.php:122
4529
  #: includes/free/form-element.php:332
4530
  msgid "Register"
4531
  msgstr ""
4571
  msgid "Remember Me"
4572
  msgstr ""
4573
 
4574
+ #: includes/class-login-widget.php:281 includes/free/class-login.php:317
4575
+ #: includes/free/class-login.php:372 templates/login-form.php:75
4576
  msgid "Log In"
4577
  msgstr ""
4578
 
4982
  msgid "Whats New"
4983
  msgstr ""
4984
 
4985
+ #: includes/class-whats-new.php:101
4986
  msgid "WP User Frontend - Version %s"
4987
  msgstr ""
4988
 
4989
+ #: includes/class-whats-new.php:102
4990
  msgid ""
4991
  "Welcome to the new version of WP User Frontend. See what's been changed in "
4992
  "the <strong>%s</strong> version."
4993
  msgstr ""
4994
 
4995
+ #: includes/class-whats-new.php:106
4996
  msgid "What's New?"
4997
  msgstr ""
4998
 
4999
+ #: includes/class-whats-new.php:107 lib/class-weforms-upsell.php:76
5000
  #: lib/class-weforms-upsell.php:77
5001
  msgid "Dismiss this notice."
5002
  msgstr ""
5069
 
5070
  #: includes/fields/class-abstract-fields.php:406
5071
  #: includes/fields/class-field-checkbox.php:71
5072
+ #: includes/fields/class-field-radio.php:80
5073
  msgid "Show in inline list"
5074
  msgstr ""
5075
 
5076
  #: includes/fields/class-abstract-fields.php:416
5077
  #: includes/fields/class-field-checkbox.php:81
5078
+ #: includes/fields/class-field-radio.php:90
5079
  msgid "Show this option in an inline list"
5080
  msgstr ""
5081
 
5139
  msgid "Custom HTML"
5140
  msgstr ""
5141
 
5142
+ #: includes/fields/class-field-html.php:56
5143
  msgid "Html Codes"
5144
  msgstr ""
5145
 
5146
+ #: includes/fields/class-field-html.php:60
5147
  msgid "Paste your HTML codes, WordPress shortcodes will also work here"
5148
  msgstr ""
5149
 
5150
+ #: includes/fields/class-field-html.php:77
5151
  msgid "HTML Section"
5152
  msgstr ""
5153
 
5318
  msgid " Add Form"
5319
  msgstr ""
5320
 
5321
+ #: includes/free/class-login.php:325
5322
  msgid "Lost Password"
5323
  msgstr ""
5324
 
5325
+ #: includes/free/class-login.php:363
5326
  msgid ""
5327
  "Please enter your username or email address. You will receive a link to "
5328
  "create a new password via email."
5329
  msgstr ""
5330
 
5331
+ #: includes/free/class-login.php:372
5332
  msgid "Your password has been reset. %s"
5333
  msgstr ""
5334
 
5335
+ #: includes/free/class-login.php:376
5336
  msgid "Enter your new password below."
5337
  msgstr ""
5338
 
5339
+ #: includes/free/class-login.php:389
5340
  msgid "Check your e-mail for the confirmation link."
5341
  msgstr ""
5342
 
5343
+ #: includes/free/class-login.php:393
5344
  msgid "You are now logged out."
5345
  msgstr ""
5346
 
5347
+ #: includes/free/class-login.php:417
5348
  msgid "Nonce is invalid"
5349
  msgstr ""
5350
 
5351
+ #: includes/free/class-login.php:436 includes/free/class-registration.php:224
5352
  msgid "Username is required."
5353
  msgstr ""
5354
 
5355
+ #: includes/free/class-login.php:442 includes/free/class-registration.php:230
5356
  msgid "Password is required."
5357
  msgstr ""
5358
 
5359
+ #: includes/free/class-login.php:465 includes/free/class-registration.php:200
 
5360
  #: includes/free/class-registration.php:206
5361
  #: includes/free/class-registration.php:212
5362
  #: includes/free/class-registration.php:218
5364
  #: includes/free/class-registration.php:230
5365
  #: includes/free/class-registration.php:236
5366
  #: includes/free/class-registration.php:242
5367
+ #: includes/free/class-registration.php:248
5368
+ #: includes/free/class-registration.php:259
5369
  msgid "Error"
5370
  msgstr ""
5371
 
5372
+ #: includes/free/class-login.php:465 includes/free/class-registration.php:259
5373
  msgid "A user could not be found with this email address."
5374
  msgstr ""
5375
 
5376
+ #: includes/free/class-login.php:616
5377
  msgid "Please enter your password."
5378
  msgstr ""
5379
 
5380
+ #: includes/free/class-login.php:622
5381
  msgid "Passwords do not match."
5382
  msgstr ""
5383
 
5384
+ #: includes/free/class-login.php:670
5385
  msgid "Enter a username or e-mail address."
5386
  msgstr ""
5387
 
5388
+ #: includes/free/class-login.php:677
5389
  msgid "There is no user registered with that email address."
5390
  msgstr ""
5391
 
5392
+ #: includes/free/class-login.php:694
5393
  msgid "Invalid username or e-mail."
5394
  msgstr ""
5395
 
5396
+ #: includes/free/class-login.php:708
5397
  msgid "Password reset is not allowed for this user"
5398
  msgstr ""
5399
 
5400
+ #: includes/free/class-login.php:746
5401
  msgid ""
5402
  "<strong>Your account is not active.</strong><br>Please check your email for "
5403
  "activation link. <br><a href=\"%s\">Click here</a> to resend the activation "
5404
  "link"
5405
  msgstr ""
5406
 
5407
+ #: includes/free/class-login.php:767 includes/free/class-login.php:792
5408
  msgid "Activation URL is not valid"
5409
  msgstr ""
5410
 
5411
+ #: includes/free/class-login.php:778
5412
  msgid "Invalid User activation url"
5413
  msgstr ""
5414
 
5415
+ #: includes/free/class-login.php:784
5416
  msgid "User already verified"
5417
  msgstr ""
5418
 
5419
+ #: includes/free/class-login.php:800 includes/free/class-login.php:864
5420
  msgid "Your account has been activated"
5421
  msgstr ""
5422
 
5423
+ #: includes/free/class-login.php:803
5424
  msgid ""
5425
  "Your account has been verified , but you can't login until manually "
5426
  "approved your account by an administrator."
5427
  msgstr ""
5428
 
5429
+ #: includes/free/class-login.php:826
5430
  msgid "[%s] Your username and password info"
5431
  msgstr ""
5432
 
5433
+ #: includes/free/class-login.php:829
5434
  msgid "To set your password, visit the following address:"
5435
  msgstr ""
5436
 
5437
+ #: includes/free/class-login.php:839
5438
  msgid "[%s] Account has been activated"
5439
  msgstr ""
5440
 
5441
+ #: includes/free/class-login.php:841
5442
  msgid "Hi %s,"
5443
  msgstr ""
5444
 
5445
+ #: includes/free/class-login.php:842
5446
  msgid "Congrats! Your account has been activated. To login visit the following url:"
5447
  msgstr ""
5448
 
5449
+ #: includes/free/class-login.php:844
5450
  msgid "Thanks"
5451
  msgstr ""
5452
 
5453
+ #: includes/free/class-login.php:907
5454
  msgid "Someone requested that the password be reset for the following account:"
5455
  msgstr ""
5456
 
5457
+ #: includes/free/class-login.php:928
5458
  msgid "The e-mail could not be sent."
5459
  msgstr ""
5460
 
5461
+ #: includes/free/class-login.php:928
5462
  msgid "Possible reason: your host may have disabled the mail() function."
5463
  msgstr ""
5464
 
5465
+ #: includes/free/class-registration.php:206
5466
  msgid "First name is required."
5467
  msgstr ""
5468
 
5469
+ #: includes/free/class-registration.php:212
5470
  msgid "Last name is required."
5471
  msgstr ""
5472
 
5473
+ #: includes/free/class-registration.php:218
5474
  msgid "Email is required."
5475
  msgstr ""
5476
 
5477
+ #: includes/free/class-registration.php:236
5478
  msgid "Confirm Password is required."
5479
  msgstr ""
5480
 
5481
+ #: includes/free/class-registration.php:242
5482
  msgid "Passwords are not same."
5483
  msgstr ""
5484
 
5485
+ #: includes/free/class-registration.php:248
5486
  msgid "A user with same username already exists."
5487
  msgstr ""
5488
 
5489
+ #: includes/free/class-registration.php:290
5490
  msgid "New user registration on your site %s:"
5491
  msgstr ""
5492
 
5493
+ #: includes/free/class-registration.php:292
5494
  msgid "E-mail: %s"
5495
  msgstr ""
5496
 
5497
+ #: includes/free/class-registration.php:298
5498
+ #: includes/free/class-registration.php:308
5499
  msgid "[%s] %s"
5500
  msgstr ""
5501
 
5502
+ #: includes/free/class-registration.php:300
5503
  msgid "Hi, %s"
5504
  msgstr ""
5505
 
5506
+ #: includes/free/class-registration.php:376
5507
+ msgid "Subscription Page settings not set in admin settings"
5508
+ msgstr ""
5509
+
5510
  #: includes/free/edit-profile.php:32 includes/free/edit-user.php:40
5511
  #: templates/unauthorized.php:4
5512
  msgid "This page is restricted. Please %s to view this page."
6271
  msgid "Private"
6272
  msgstr ""
6273
 
6274
+ #: wpuf-functions.php:210 wpuf-functions.php:1937
6275
  msgid "-- select --"
6276
  msgstr ""
6277
 
6307
  msgid "CSV"
6308
  msgstr ""
6309
 
6310
+ #: wpuf-functions.php:978
6311
  msgid "Directions »"
6312
  msgstr ""
6313
 
6314
+ #: wpuf-functions.php:1920
6315
  msgid "Edit Profile"
6316
  msgstr ""
6317
 
6318
+ #: wpuf-functions.php:2049
6319
  msgid "United Arab Emirates Dirham"
6320
  msgstr ""
6321
 
6322
+ #: wpuf-functions.php:2050
6323
  msgid "Australian Dollars"
6324
  msgstr ""
6325
 
6326
+ #: wpuf-functions.php:2051
6327
  msgid "Argentine Peso"
6328
  msgstr ""
6329
 
6330
+ #: wpuf-functions.php:2052
6331
  msgid "Bangladeshi Taka"
6332
  msgstr ""
6333
 
6334
+ #: wpuf-functions.php:2053
6335
  msgid "Brazilian Real"
6336
  msgstr ""
6337
 
6338
+ #: wpuf-functions.php:2054
6339
  msgid "Bulgarian Lev"
6340
  msgstr ""
6341
 
6342
+ #: wpuf-functions.php:2055
6343
  msgid "Canadian Dollars"
6344
  msgstr ""
6345
 
6346
+ #: wpuf-functions.php:2056
6347
  msgid "Chilean Peso"
6348
  msgstr ""
6349
 
6350
+ #: wpuf-functions.php:2057
6351
  msgid "Chinese Yuan"
6352
  msgstr ""
6353
 
6354
+ #: wpuf-functions.php:2058
6355
  msgid "Colombian Peso"
6356
  msgstr ""
6357
 
6358
+ #: wpuf-functions.php:2059
6359
  msgid "Czech Koruna"
6360
  msgstr ""
6361
 
6362
+ #: wpuf-functions.php:2060
6363
  msgid "Danish Krone"
6364
  msgstr ""
6365
 
6366
+ #: wpuf-functions.php:2061
6367
  msgid "Dominican Peso"
6368
  msgstr ""
6369
 
6370
+ #: wpuf-functions.php:2062
6371
  msgid "Algerian Dinar"
6372
  msgstr ""
6373
 
6374
+ #: wpuf-functions.php:2063
6375
  msgid "Euros"
6376
  msgstr ""
6377
 
6378
+ #: wpuf-functions.php:2064
6379
  msgid "Hong Kong Dollar"
6380
  msgstr ""
6381
 
6382
+ #: wpuf-functions.php:2065
6383
  msgid "Croatia kuna"
6384
  msgstr ""
6385
 
6386
+ #: wpuf-functions.php:2066
6387
  msgid "Hungarian Forint"
6388
  msgstr ""
6389
 
6390
+ #: wpuf-functions.php:2067
6391
  msgid "Icelandic krona"
6392
  msgstr ""
6393
 
6394
+ #: wpuf-functions.php:2068
6395
  msgid "Indonesia Rupiah"
6396
  msgstr ""
6397
 
6398
+ #: wpuf-functions.php:2069
6399
  msgid "Indian Rupee"
6400
  msgstr ""
6401
 
6402
+ #: wpuf-functions.php:2070
6403
  msgid "Nepali Rupee"
6404
  msgstr ""
6405
 
6406
+ #: wpuf-functions.php:2071
6407
  msgid "Israeli Shekel"
6408
  msgstr ""
6409
 
6410
+ #: wpuf-functions.php:2072
6411
  msgid "Japanese Yen"
6412
  msgstr ""
6413
 
6414
+ #: wpuf-functions.php:2073
6415
  msgid "Lao Kip"
6416
  msgstr ""
6417
 
6418
+ #: wpuf-functions.php:2074
6419
  msgid "South Korean Won"
6420
  msgstr ""
6421
 
6422
+ #: wpuf-functions.php:2075
6423
  msgid "Malaysian Ringgits"
6424
  msgstr ""
6425
 
6426
+ #: wpuf-functions.php:2076
6427
  msgid "Mexican Peso"
6428
  msgstr ""
6429
 
6430
+ #: wpuf-functions.php:2077
6431
  msgid "Nigerian Naira"
6432
  msgstr ""
6433
 
6434
+ #: wpuf-functions.php:2078
6435
  msgid "Norwegian Krone"
6436
  msgstr ""
6437
 
6438
+ #: wpuf-functions.php:2079
6439
  msgid "New Zealand Dollar"
6440
  msgstr ""
6441
 
6442
+ #: wpuf-functions.php:2080
6443
+ msgid "Namibian dollar"
6444
+ msgstr ""
6445
+
6446
+ #: wpuf-functions.php:2081
6447
  msgid "Omani Rial"
6448
  msgstr ""
6449
 
6450
+ #: wpuf-functions.php:2082
6451
  msgid "Iranian Rial"
6452
  msgstr ""
6453
 
6454
+ #: wpuf-functions.php:2083
6455
  msgid "Pakistani Rupee"
6456
  msgstr ""
6457
 
6458
+ #: wpuf-functions.php:2084
6459
  msgid "Paraguayan Guaraní"
6460
  msgstr ""
6461
 
6462
+ #: wpuf-functions.php:2085
6463
  msgid "Philippine Pesos"
6464
  msgstr ""
6465
 
6466
+ #: wpuf-functions.php:2086
6467
  msgid "Polish Zloty"
6468
  msgstr ""
6469
 
6470
+ #: wpuf-functions.php:2087
6471
  msgid "Pounds Sterling"
6472
  msgstr ""
6473
 
6474
+ #: wpuf-functions.php:2088
6475
  msgid "Romanian Leu"
6476
  msgstr ""
6477
 
6478
+ #: wpuf-functions.php:2089
6479
  msgid "Russian Ruble"
6480
  msgstr ""
6481
 
6482
+ #: wpuf-functions.php:2090
6483
  msgid "Saudi Riyal"
6484
  msgstr ""
6485
 
6486
+ #: wpuf-functions.php:2091
6487
  msgid "Singapore Dollar"
6488
  msgstr ""
6489
 
6490
+ #: wpuf-functions.php:2092
6491
  msgid "South African rand"
6492
  msgstr ""
6493
 
6494
+ #: wpuf-functions.php:2093
6495
  msgid "Swedish Krona"
6496
  msgstr ""
6497
 
6498
+ #: wpuf-functions.php:2094
6499
  msgid "Swiss Franc"
6500
  msgstr ""
6501
 
6502
+ #: wpuf-functions.php:2095
6503
  msgid "Taiwan New Dollars"
6504
  msgstr ""
6505
 
6506
+ #: wpuf-functions.php:2096
6507
  msgid "Thai Baht"
6508
  msgstr ""
6509
 
6510
+ #: wpuf-functions.php:2097
6511
  msgid "Turkish Lira"
6512
  msgstr ""
6513
 
6514
+ #: wpuf-functions.php:2098
6515
  msgid "US Dollar"
6516
  msgstr ""
6517
 
6518
+ #: wpuf-functions.php:2099
6519
  msgid "Vietnamese Dong"
6520
  msgstr ""
6521
 
6522
+ #: wpuf-functions.php:2100
6523
  msgid "Egyptian Pound"
6524
  msgstr ""
6525
 
6526
+ #: wpuf-functions.php:2101
6527
  msgid "Jordanian dinar"
6528
  msgstr ""
6529
 
6530
+ #: wpuf-functions.php:2974
6531
  msgid "None"
6532
  msgstr ""
6533
 
6572
  msgid "Please Cancel Your Currently Active Pack first!"
6573
  msgstr ""
6574
 
6575
+ #: wpuf.php:884
6576
  msgid "Error: Nonce verification failed"
6577
  msgstr ""
6578
 
6587
  msgstr ""
6588
 
6589
  #. Author of the plugin/theme
6590
+ msgid "weDevs"
6591
  msgstr ""
6592
 
6593
  #. Author URI of the plugin/theme
6594
+ msgid "https://wedevs.com/?utm_source=WPUF_Author_URI"
6595
  msgstr ""
6596
 
6597
  #: includes/setup-wizard.php:41
6654
  msgid "Searching&hellip;"
6655
  msgstr ""
6656
 
6657
+ #: wpuf-functions.php:1424
6658
  msgctxt "tag delimiter"
6659
  msgid ","
6660
  msgstr ""
readme.txt CHANGED
@@ -3,9 +3,9 @@ Contributors: tareq1988, nizamuddinbabu, wedevs
3
  Donate link: https://tareq.co/donate/
4
  Tags: Forms, registration, profile-builder, login, membership
5
  Requires at least: 4.0
6
- Tested up to: 5.4
7
  Requires PHP: 5.6
8
- Stable tag: 3.2.0
9
  License: GPLv2
10
  License URI: https://www.gnu.org/licenses/gpl-2.0.html
11
 
@@ -264,6 +264,29 @@ redirected to the edit page with that post id. Then you'll see the edit post for
264
 
265
  == Changelog ==
266
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
267
  = v3.2.0 (14 April, 2020) =
268
  * **Improvement:** Import forms system
269
  * **Improvement:** Password reset system
3
  Donate link: https://tareq.co/donate/
4
  Tags: Forms, registration, profile-builder, login, membership
5
  Requires at least: 4.0
6
+ Tested up to: 5.4.2
7
  Requires PHP: 5.6
8
+ Stable tag: 3.3.0
9
  License: GPLv2
10
  License URI: https://www.gnu.org/licenses/gpl-2.0.html
11
 
264
 
265
  == Changelog ==
266
 
267
+ = v3.3.0 (11 June, 2020) =
268
+ * Enhancement - Add Namibian Dollar in currency list
269
+ * Enhancement - Add sync values option for option data fields
270
+ * Tweak - Allow uploading image that having filesize meets php ini settings
271
+ * Tweak - Limit the selection of one image at a time
272
+ * Tweak - Use file name and size to generate hash to prevent duplicant image upload
273
+ * Tweak - Sanitize text and textarea field data
274
+ * Tweak - Show label instead of values for radio, checkbox, dropdown and multiselect data
275
+ * Fix - Saving custom taxonomies for type text input
276
+ * Fix - Admin settings link for recaptcha helper text
277
+ * Fix - Undefined name property for Custom HTML fields
278
+ * Fix - Delete attachment process
279
+ * Fix - Missing billing address in invoice PDF
280
+ * Fix - Showing country field value in frontend post content
281
+ * Fix - Avatar size display not complying with admin settings size
282
+ * Fix - Display default avatars on admin settings discussion page
283
+ * Fix - Redirect to subscription page at registration
284
+ * Fix - Error notice regarding registration page redirect
285
+ * Fix - Escaping html in registration errors
286
+ * Fix - Default login redirect link
287
+ * Fix - Implementing default WP login page override option
288
+ * Fix - Transparent background of autosuggestion dropdown
289
+
290
  = v3.2.0 (14 April, 2020) =
291
  * **Improvement:** Import forms system
292
  * **Improvement:** Password reset system
templates/login-form.php CHANGED
@@ -73,7 +73,7 @@
73
 
74
  <p class="submit">
75
  <input type="submit" name="wp-submit" id="wp-submit" value="<?php esc_html_e( 'Log In', 'wp-user-frontend' ); ?>" />
76
- <input type="hidden" name="redirect_to" value="<?php echo esc_attr( wp_get_referer() ); ?>" />
77
  <input type="hidden" name="wpuf_login" value="true" />
78
  <input type="hidden" name="action" value="login" />
79
  <?php wp_nonce_field( 'wpuf_login_action','wpuf-login-nonce' ); ?>
73
 
74
  <p class="submit">
75
  <input type="submit" name="wp-submit" id="wp-submit" value="<?php esc_html_e( 'Log In', 'wp-user-frontend' ); ?>" />
76
+ <input type="hidden" name="redirect_to" value="<?php echo esc_attr( $redirect_to ? $redirect_to : wp_get_referer() ); ?>" />
77
  <input type="hidden" name="wpuf_login" value="true" />
78
  <input type="hidden" name="action" value="login" />
79
  <?php wp_nonce_field( 'wpuf_login_action','wpuf-login-nonce' ); ?>
vendor/autoload.php CHANGED
@@ -4,4 +4,4 @@
4
 
5
  require_once __DIR__ . '/composer/autoload_real.php';
6
 
7
- return ComposerAutoloaderInitf37be1a109746ed1820c3dbc35000967::getLoader();
4
 
5
  require_once __DIR__ . '/composer/autoload_real.php';
6
 
7
+ return ComposerAutoloaderInitfb268cd7f0bd3aa9e60ccbdd9bb3a28b::getLoader();
vendor/composer/autoload_real.php CHANGED
@@ -2,7 +2,7 @@
2
 
3
  // autoload_real.php @generated by Composer
4
 
5
- class ComposerAutoloaderInitf37be1a109746ed1820c3dbc35000967
6
  {
7
  private static $loader;
8
 
@@ -13,21 +13,24 @@ class ComposerAutoloaderInitf37be1a109746ed1820c3dbc35000967
13
  }
14
  }
15
 
 
 
 
16
  public static function getLoader()
17
  {
18
  if (null !== self::$loader) {
19
  return self::$loader;
20
  }
21
 
22
- spl_autoload_register(array('ComposerAutoloaderInitf37be1a109746ed1820c3dbc35000967', 'loadClassLoader'), true, true);
23
  self::$loader = $loader = new \Composer\Autoload\ClassLoader();
24
- spl_autoload_unregister(array('ComposerAutoloaderInitf37be1a109746ed1820c3dbc35000967', 'loadClassLoader'));
25
 
26
  $useStaticLoader = PHP_VERSION_ID >= 50600 && !defined('HHVM_VERSION') && (!function_exists('zend_loader_file_encoded') || !zend_loader_file_encoded());
27
  if ($useStaticLoader) {
28
  require_once __DIR__ . '/autoload_static.php';
29
 
30
- call_user_func(\Composer\Autoload\ComposerStaticInitf37be1a109746ed1820c3dbc35000967::getInitializer($loader));
31
  } else {
32
  $map = require __DIR__ . '/autoload_namespaces.php';
33
  foreach ($map as $namespace => $path) {
2
 
3
  // autoload_real.php @generated by Composer
4
 
5
+ class ComposerAutoloaderInitfb268cd7f0bd3aa9e60ccbdd9bb3a28b
6
  {
7
  private static $loader;
8
 
13
  }
14
  }
15
 
16
+ /**
17
+ * @return \Composer\Autoload\ClassLoader
18
+ */
19
  public static function getLoader()
20
  {
21
  if (null !== self::$loader) {
22
  return self::$loader;
23
  }
24
 
25
+ spl_autoload_register(array('ComposerAutoloaderInitfb268cd7f0bd3aa9e60ccbdd9bb3a28b', 'loadClassLoader'), true, true);
26
  self::$loader = $loader = new \Composer\Autoload\ClassLoader();
27
+ spl_autoload_unregister(array('ComposerAutoloaderInitfb268cd7f0bd3aa9e60ccbdd9bb3a28b', 'loadClassLoader'));
28
 
29
  $useStaticLoader = PHP_VERSION_ID >= 50600 && !defined('HHVM_VERSION') && (!function_exists('zend_loader_file_encoded') || !zend_loader_file_encoded());
30
  if ($useStaticLoader) {
31
  require_once __DIR__ . '/autoload_static.php';
32
 
33
+ call_user_func(\Composer\Autoload\ComposerStaticInitfb268cd7f0bd3aa9e60ccbdd9bb3a28b::getInitializer($loader));
34
  } else {
35
  $map = require __DIR__ . '/autoload_namespaces.php';
36
  foreach ($map as $namespace => $path) {
vendor/composer/autoload_static.php CHANGED
@@ -4,7 +4,7 @@
4
 
5
  namespace Composer\Autoload;
6
 
7
- class ComposerStaticInitf37be1a109746ed1820c3dbc35000967
8
  {
9
  public static $prefixLengthsPsr4 = array (
10
  'C' =>
@@ -121,9 +121,9 @@ class ComposerStaticInitf37be1a109746ed1820c3dbc35000967
121
  public static function getInitializer(ClassLoader $loader)
122
  {
123
  return \Closure::bind(function () use ($loader) {
124
- $loader->prefixLengthsPsr4 = ComposerStaticInitf37be1a109746ed1820c3dbc35000967::$prefixLengthsPsr4;
125
- $loader->prefixDirsPsr4 = ComposerStaticInitf37be1a109746ed1820c3dbc35000967::$prefixDirsPsr4;
126
- $loader->classMap = ComposerStaticInitf37be1a109746ed1820c3dbc35000967::$classMap;
127
 
128
  }, null, ClassLoader::class);
129
  }
4
 
5
  namespace Composer\Autoload;
6
 
7
+ class ComposerStaticInitfb268cd7f0bd3aa9e60ccbdd9bb3a28b
8
  {
9
  public static $prefixLengthsPsr4 = array (
10
  'C' =>
121
  public static function getInitializer(ClassLoader $loader)
122
  {
123
  return \Closure::bind(function () use ($loader) {
124
+ $loader->prefixLengthsPsr4 = ComposerStaticInitfb268cd7f0bd3aa9e60ccbdd9bb3a28b::$prefixLengthsPsr4;
125
+ $loader->prefixDirsPsr4 = ComposerStaticInitfb268cd7f0bd3aa9e60ccbdd9bb3a28b::$prefixDirsPsr4;
126
+ $loader->classMap = ComposerStaticInitfb268cd7f0bd3aa9e60ccbdd9bb3a28b::$classMap;
127
 
128
  }, null, ClassLoader::class);
129
  }
wpuf-functions.php CHANGED
@@ -549,6 +549,62 @@ function wpuf_get_user_roles() {
549
  return $wp_roles->get_names();
550
  }
551
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
552
  /**
553
  * User avatar wrapper for custom uploaded avatar
554
  *
@@ -563,6 +619,10 @@ function wpuf_get_user_roles() {
563
  * @return string image tag of the user avatar
564
  */
565
  function wpuf_get_avatar( $avatar, $id_or_email, $size, $default, $alt, $args ) {
 
 
 
 
566
  if ( is_numeric( $id_or_email ) ) {
567
  $user = get_user_by( 'id', $id_or_email );
568
  } elseif ( is_object( $id_or_email ) ) {
@@ -575,22 +635,56 @@ function wpuf_get_avatar( $avatar, $id_or_email, $size, $default, $alt, $args )
575
  $user = get_user_by( 'email', $id_or_email );
576
  }
577
 
578
- if ( !$user ) {
579
  return $avatar;
580
  }
581
 
582
- // see if there is a user_avatar meta fields
583
- $user_avatar = get_user_meta( $user->ID, 'user_avatar', true );
584
 
585
- if ( empty( $user_avatar ) ) {
586
  return $avatar;
587
  }
588
 
589
- return sprintf( '<img src="%1$s" alt="%2$s" height="%3$s" width="%3$s" class="avatar">', esc_url( $user_avatar ), $alt, $size );
590
  }
591
 
592
  add_filter( 'get_avatar', 'wpuf_get_avatar', 99, 6 );
593
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
594
  function wpuf_update_avatar( $user_id, $attachment_id ) {
595
  $upload_dir = wp_upload_dir();
596
  $relative_url = wp_get_attachment_url( $attachment_id );
@@ -669,7 +763,12 @@ function wpuf_get_gateways( $context = 'admin' ) {
669
  /**
670
  * Show custom fields in post content area
671
  *
672
- * @global object $post
 
 
 
 
 
673
  *
674
  * @param string $content
675
  *
@@ -726,6 +825,8 @@ function wpuf_show_custom_fields( $content ) {
726
  }
727
 
728
  foreach ( $meta as $attr ) {
 
 
729
  if ( !isset( $attr['name'] ) ) {
730
  $attr['name'] = $attr['input_type'];
731
  }
@@ -780,6 +881,11 @@ function wpuf_show_custom_fields( $content ) {
780
  continue;
781
  }
782
 
 
 
 
 
 
783
  switch ( $attr['input_type'] ) {
784
  case 'image_upload':
785
  case 'file_upload':
@@ -960,7 +1066,7 @@ function wpuf_show_custom_fields( $content ) {
960
  $link = '<li>';
961
 
962
  if ( $hide_label == 'no' ) {
963
- $link .= '<label>' . $attr['label'] . '</label>:';
964
  }
965
 
966
  $link .= sprintf( " <a href='%s' target = '%s'>%s</a></li>", $value, $open_in, $value );
@@ -974,26 +1080,25 @@ function wpuf_show_custom_fields( $content ) {
974
  $html .= '<li>';
975
 
976
  if ( $hide_label == 'no' ) {
977
- $html .= '<label>' . $attr['label'] . '</label>:';
978
  }
979
 
980
  $html .= sprintf( ' %s</li>', make_clickable( $value ) );
981
  break;
982
 
983
  case 'country_list':
984
- $value = get_post_meta( $post->ID, $attr['name'], true );
985
- $countries = wpuf_get_countries();
986
-
987
- $value = array_filter( $countries, function( $item ) use ( $value ) {
988
- return $item['code'] == $value;
989
- } );
990
 
991
- $value = $value[0]['name'];
 
 
992
 
993
  $html .= '<li>';
994
 
995
  if ( $hide_label == 'no' ) {
996
- $html .= '<label>' . $attr['label'] . '</label>:';
997
  }
998
 
999
  $html .= sprintf( ' %s</li>', make_clickable( $value ) );
@@ -1014,7 +1119,7 @@ function wpuf_show_custom_fields( $content ) {
1014
  $html .= '<li>';
1015
 
1016
  if ( $hide_label == 'no' ) {
1017
- $html .= '<label>' . $attr['label'] . '</label>:';
1018
  }
1019
 
1020
  $html .= sprintf( ' %s</li>', make_clickable( $modified_value ) );
@@ -1027,7 +1132,7 @@ function wpuf_show_custom_fields( $content ) {
1027
  $html .= '<li>';
1028
 
1029
  if ( $hide_label == 'no' ) {
1030
- $html .= '<label>' . $attr['label'] . '</label>:';
1031
  }
1032
 
1033
  $html .= sprintf( ' %s</li>', make_clickable( $modified_value ) );
@@ -1040,7 +1145,7 @@ function wpuf_show_custom_fields( $content ) {
1040
  $html .= '<li>';
1041
 
1042
  if ( $hide_label == 'no' ) {
1043
- $html .= '<label>' . $attr['label'] . '</label>:';
1044
  }
1045
 
1046
  $html .= sprintf( ' %s</li>', make_clickable( $new ) );
@@ -1972,6 +2077,7 @@ function wpuf_get_currencies() {
1972
  [ 'currency' => 'NGN', 'label' => __( 'Nigerian Naira', 'wp-user-frontend' ), 'symbol' => '&#8358;' ],
1973
  [ 'currency' => 'NOK', 'label' => __( 'Norwegian Krone', 'wp-user-frontend' ), 'symbol' => '&#107;&#114;' ],
1974
  [ 'currency' => 'NZD', 'label' => __( 'New Zealand Dollar', 'wp-user-frontend' ), 'symbol' => '&#36;' ],
 
1975
  [ 'currency' => 'OMR', 'label' => __( 'Omani Rial', 'wp-user-frontend' ), 'symbol' => 'ر.ع.' ],
1976
  [ 'currency' => 'IRR', 'label' => __( 'Iranian Rial', 'wp-user-frontend' ), 'symbol' => '﷼' ],
1977
  [ 'currency' => 'PKR', 'label' => __( 'Pakistani Rupee', 'wp-user-frontend' ), 'symbol' => 'Rs' ],
@@ -3072,11 +3178,7 @@ function wpuf_get_terms( $taxonomy = 'category' ) {
3072
  * @return void
3073
  */
3074
  function wpuf_ajax_get_states_field() {
3075
- $nonce = isset( $_POST['_wpnonce'] ) ? sanitize_key( wp_unslash( $_POST['_wpnonce'] ) ) : '';
3076
-
3077
- if ( isset( $nonce ) && ! wp_verify_nonce( $nonce, 'wpuf-ajax-address' ) ) {
3078
- return ;
3079
- }
3080
 
3081
  $country = isset( $_POST['country'] ) ? sanitize_text_field( wp_unslash( $_POST['country'] ) ) : '';
3082
  $cs = new CountryState();
@@ -3085,8 +3187,7 @@ function wpuf_ajax_get_states_field() {
3085
 
3086
  if ( !empty( $states ) ) {
3087
  $args = [
3088
- 'name' => isset( $_POST['field_name'] ) ? sanitize_text_field( wp_unslash(
3089
- $_POST['field_name'] ) ) : '',
3090
  'id' => isset( $_POST['field_name'] ) ? sanitize_text_field( wp_unslash( $_POST['field_name'] ) ) : '',
3091
  'class' => isset( $_POST['field_name'] ) ? sanitize_text_field( wp_unslash( $_POST['field_name'] ) ) : '',
3092
  'options' => $states,
@@ -3161,8 +3262,8 @@ add_action( 'wp_ajax_nopriv_wpuf_update_billing_address', 'wpuf_update_billing_a
3161
  *
3162
  * @return mixed
3163
  */
3164
- function wpuf_get_user_address() {
3165
- $user_id = get_current_user_id();
3166
  $address_fields = [];
3167
 
3168
  if ( metadata_exists( 'user', $user_id, 'wpuf_address_fields' ) ) {
@@ -3235,35 +3336,6 @@ function wpuf_settings_multiselect( $args ) {
3235
  ] );
3236
  }
3237
 
3238
- /**
3239
- * Filters custom avatar url
3240
- *
3241
- * @param $args
3242
- * @param $id_or_email
3243
- *
3244
- * @return mixed
3245
- */
3246
- function wpuf_get_custom_avatar( $args, $id_or_email ) {
3247
- $user_id = $id_or_email;
3248
-
3249
- if ( $id_or_email instanceof WP_Comment ) {
3250
- $user_id = $id_or_email->user_id;
3251
- } elseif ( is_string( $id_or_email ) && is_email( $id_or_email ) ) {
3252
- $user_id = email_exists( $id_or_email );
3253
- }
3254
-
3255
- if ( $user_id ) {
3256
- $custom_avatar_url = get_user_meta( $user_id, 'user_avatar', true );
3257
- }
3258
-
3259
- if ( !empty( $custom_avatar_url ) ) {
3260
- $args['url'] = $custom_avatar_url;
3261
- }
3262
-
3263
- return $args;
3264
- }
3265
- add_filter( 'get_avatar_data', 'wpuf_get_custom_avatar', 10, 2 );
3266
-
3267
  /**
3268
  * Displays Form Schedule Messages
3269
  *
@@ -3365,3 +3437,68 @@ function wpuf_clean( $var ) {
3365
  return is_scalar( $var ) ? sanitize_text_field( wp_unslash( $var ) ) : $var;
3366
  }
3367
  }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
549
  return $wp_roles->get_names();
550
  }
551
 
552
+ /**
553
+ * Add custom avatar image size
554
+ *
555
+ * @since 3.3.0
556
+ *
557
+ * @return void
558
+ */
559
+ function wpuf_avatar_add_image_size() {
560
+ $avatar_size = wpuf_get_option( 'avatar_size', 'wpuf_profile', '100x100' );
561
+ $avatar_size = explode( 'x', $avatar_size );
562
+ $avatar_width = $avatar_size[0];
563
+ $avatar_height = $avatar_size[1];
564
+
565
+ add_image_size( 'wpuf_avatar_image_size', $avatar_width, $avatar_height, true );
566
+ }
567
+
568
+ /**
569
+ * Custom Avatar uploaded by user
570
+ *
571
+ * @since 3.3.0
572
+ *
573
+ * @param int $user_id
574
+ *
575
+ * @return string
576
+ */
577
+ function wpuf_get_custom_avatar( $user_id ) {
578
+ $avatar = get_user_meta( $user_id, 'user_avatar', true );
579
+
580
+ if ( absint( $avatar ) > 0 ) {
581
+ wpuf_avatar_add_image_size();
582
+
583
+ $avatar_source = wp_get_attachment_image_src( $avatar, 'wpuf_avatar_image_size' );
584
+
585
+ if ( $avatar_source ) {
586
+ $avatar = $avatar_source[0];
587
+ }
588
+ }
589
+
590
+ return $avatar;
591
+ }
592
+
593
+ /**
594
+ * Conditionally ignore using WPUF avatar
595
+ *
596
+ * @since 3.3.0
597
+ *
598
+ * @return bool
599
+ */
600
+ function wpuf_use_default_avatar() {
601
+ if ( has_filter( 'pre_option_show_avatars', '__return_true' ) ) {
602
+ return true;
603
+ }
604
+
605
+ return apply_filters( 'wpuf_use_default_avatar', '__return_true' );
606
+ }
607
+
608
  /**
609
  * User avatar wrapper for custom uploaded avatar
610
  *
619
  * @return string image tag of the user avatar
620
  */
621
  function wpuf_get_avatar( $avatar, $id_or_email, $size, $default, $alt, $args ) {
622
+ if ( wpuf_use_default_avatar() ) {
623
+ return $avatar;
624
+ }
625
+
626
  if ( is_numeric( $id_or_email ) ) {
627
  $user = get_user_by( 'id', $id_or_email );
628
  } elseif ( is_object( $id_or_email ) ) {
635
  $user = get_user_by( 'email', $id_or_email );
636
  }
637
 
638
+ if ( ! $user ) {
639
  return $avatar;
640
  }
641
 
642
+ $custom_avatar = wpuf_get_custom_avatar( $user->ID );
 
643
 
644
+ if ( empty( $custom_avatar ) ) {
645
  return $avatar;
646
  }
647
 
648
+ return sprintf( '<img src="%1$s" alt="%2$s" height="%3$s" width="%3$s" class="avatar">', esc_url( $custom_avatar ), $alt, $size );
649
  }
650
 
651
  add_filter( 'get_avatar', 'wpuf_get_avatar', 99, 6 );
652
 
653
+ /**
654
+ * Filters custom avatar url
655
+ *
656
+ * @param $args
657
+ * @param $id_or_email
658
+ *
659
+ * @return mixed
660
+ */
661
+ function wpuf_custom_avatar_data( $args, $id_or_email ) {
662
+ if ( wpuf_use_default_avatar() ) {
663
+ return $args;
664
+ }
665
+
666
+ $user_id = $id_or_email;
667
+
668
+ if ( $id_or_email instanceof WP_Comment ) {
669
+ $user_id = $id_or_email->user_id;
670
+ } elseif ( is_string( $id_or_email ) && is_email( $id_or_email ) ) {
671
+ $user_id = email_exists( $id_or_email );
672
+ }
673
+
674
+ if ( $user_id ) {
675
+ $custom_avatar_url = wpuf_get_custom_avatar( $user_id );
676
+
677
+ if ( ! empty( $custom_avatar_url ) ) {
678
+ $args['url'] = $custom_avatar_url;
679
+ }
680
+ }
681
+
682
+ return $args;
683
+ }
684
+
685
+ add_filter( 'get_avatar_data', 'wpuf_custom_avatar_data', 10, 2 );
686
+
687
+
688
  function wpuf_update_avatar( $user_id, $attachment_id ) {
689
  $upload_dir = wp_upload_dir();
690
  $relative_url = wp_get_attachment_url( $attachment_id );
763
  /**
764
  * Show custom fields in post content area
765
  *
766
+ * @since 3.3.0 Introducing `render_field_data` to render field value
767
+ * Rendering field values should be in field classes to follow
768
+ * more OOP style.
769
+ *
770
+ * @todo Move the rendering snippets to respective field classes. The default case
771
+ * should be placed in the abstract class.
772
  *
773
  * @param string $content
774
  *
825
  }
826
 
827
  foreach ( $meta as $attr ) {
828
+ $wpuf_field = wpuf()->fields->get_field( $attr['template'] );
829
+
830
  if ( !isset( $attr['name'] ) ) {
831
  $attr['name'] = $attr['input_type'];
832
  }
881
  continue;
882
  }
883
 
884
+ if ( method_exists( $wpuf_field, 'render_field_data' ) ) {
885
+ $html .= $wpuf_field->render_field_data( $field_value, $attr );
886
+ continue;
887
+ }
888
+
889
  switch ( $attr['input_type'] ) {
890
  case 'image_upload':
891
  case 'file_upload':
1066
  $link = '<li>';
1067
 
1068
  if ( $hide_label == 'no' ) {
1069
+ $link .= '<label>' . $attr['label'] . ':</label>';
1070
  }
1071
 
1072
  $link .= sprintf( " <a href='%s' target = '%s'>%s</a></li>", $value, $open_in, $value );
1080
  $html .= '<li>';
1081
 
1082
  if ( $hide_label == 'no' ) {
1083
+ $html .= '<label>' . $attr['label'] . ':</label>';
1084
  }
1085
 
1086
  $html .= sprintf( ' %s</li>', make_clickable( $value ) );
1087
  break;
1088
 
1089
  case 'country_list':
1090
+ $value = get_post_meta( $post->ID, $attr['name'], true );
1091
+ $country_state = new CountryState();
1092
+ $countries = $country_state->countries();
 
 
 
1093
 
1094
+ if ( isset( $countries[ $value ] ) ) {
1095
+ $value = $countries[ $value ];
1096
+ }
1097
 
1098
  $html .= '<li>';
1099
 
1100
  if ( $hide_label == 'no' ) {
1101
+ $html .= '<label>' . $attr['label'] . ':</label>';
1102
  }
1103
 
1104
  $html .= sprintf( ' %s</li>', make_clickable( $value ) );
1119
  $html .= '<li>';
1120
 
1121
  if ( $hide_label == 'no' ) {
1122
+ $html .= '<label>' . $attr['label'] . ':</label>';
1123
  }
1124
 
1125
  $html .= sprintf( ' %s</li>', make_clickable( $modified_value ) );
1132
  $html .= '<li>';
1133
 
1134
  if ( $hide_label == 'no' ) {
1135
+ $html .= '<label>' . $attr['label'] . ':</label>';
1136
  }
1137
 
1138
  $html .= sprintf( ' %s</li>', make_clickable( $modified_value ) );
1145
  $html .= '<li>';
1146
 
1147
  if ( $hide_label == 'no' ) {
1148
+ $html .= '<label>' . $attr['label'] . ':</label>';
1149
  }
1150
 
1151
  $html .= sprintf( ' %s</li>', make_clickable( $new ) );
2077
  [ 'currency' => 'NGN', 'label' => __( 'Nigerian Naira', 'wp-user-frontend' ), 'symbol' => '&#8358;' ],
2078
  [ 'currency' => 'NOK', 'label' => __( 'Norwegian Krone', 'wp-user-frontend' ), 'symbol' => '&#107;&#114;' ],
2079
  [ 'currency' => 'NZD', 'label' => __( 'New Zealand Dollar', 'wp-user-frontend' ), 'symbol' => '&#36;' ],
2080
+ [ 'currency' => 'NAD', 'label' => __( 'Namibian dollar', 'wp-user-frontend' ), 'symbol' => 'N&#36;' ],
2081
  [ 'currency' => 'OMR', 'label' => __( 'Omani Rial', 'wp-user-frontend' ), 'symbol' => 'ر.ع.' ],
2082
  [ 'currency' => 'IRR', 'label' => __( 'Iranian Rial', 'wp-user-frontend' ), 'symbol' => '﷼' ],
2083
  [ 'currency' => 'PKR', 'label' => __( 'Pakistani Rupee', 'wp-user-frontend' ), 'symbol' => 'Rs' ],
3178
  * @return void
3179
  */
3180
  function wpuf_ajax_get_states_field() {
3181
+ check_ajax_referer( 'wpuf-ajax-address' );
 
 
 
 
3182
 
3183
  $country = isset( $_POST['country'] ) ? sanitize_text_field( wp_unslash( $_POST['country'] ) ) : '';
3184
  $cs = new CountryState();
3187
 
3188
  if ( !empty( $states ) ) {
3189
  $args = [
3190
+ 'name' => isset( $_POST['field_name'] ) ? sanitize_text_field( wp_unslash( $_POST['field_name'] ) ) : '',
 
3191
  'id' => isset( $_POST['field_name'] ) ? sanitize_text_field( wp_unslash( $_POST['field_name'] ) ) : '',
3192
  'class' => isset( $_POST['field_name'] ) ? sanitize_text_field( wp_unslash( $_POST['field_name'] ) ) : '',
3193
  'options' => $states,
3262
  *
3263
  * @return mixed
3264
  */
3265
+ function wpuf_get_user_address( $user_id = 0 ) {
3266
+ $user_id = $user_id ? $user_id : get_current_user_id();
3267
  $address_fields = [];
3268
 
3269
  if ( metadata_exists( 'user', $user_id, 'wpuf_address_fields' ) ) {
3336
  ] );
3337
  }
3338
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
3339
  /**
3340
  * Displays Form Schedule Messages
3341
  *
3437
  return is_scalar( $var ) ? sanitize_text_field( wp_unslash( $var ) ) : $var;
3438
  }
3439
  }
3440
+
3441
+ /**
3442
+ * Calculate ini directives in bytes
3443
+ *
3444
+ * @since 3.3.0
3445
+ *
3446
+ * @param string|int $val
3447
+ *
3448
+ * @return int
3449
+ */
3450
+ function wpuf_ini_get_byte( $val ) {
3451
+ $byte = absint( $val );
3452
+ $char = strtolower( str_replace( $byte, '', $val ) );
3453
+
3454
+ switch( $char ) {
3455
+ case 'g':
3456
+ $byte *= GB_IN_BYTES;
3457
+ break;
3458
+
3459
+ case 'm':
3460
+ $byte *= MB_IN_BYTES;
3461
+ break;
3462
+
3463
+ case 'k':
3464
+ $byte *= KB_IN_BYTES;
3465
+ break;
3466
+ }
3467
+
3468
+ return $byte;
3469
+ }
3470
+
3471
+ /**
3472
+ * The maximum file size allowed to upload
3473
+ *
3474
+ * To upload large files, `post_max_size` value must be larger than `upload_max_filesize`
3475
+ *
3476
+ * @see https://www.php.net/manual/en/ini.core.php#ini.post-max-size
3477
+ *
3478
+ * @since 3.3.0
3479
+ *
3480
+ * @return string|int
3481
+ */
3482
+ function wpuf_max_upload_size() {
3483
+ $post_max_size = ini_get( 'post_max_size' );
3484
+ $upload_max_filesize = ini_get( 'upload_max_filesize' );
3485
+
3486
+ if ( wpuf_ini_get_byte( $upload_max_filesize ) > wpuf_ini_get_byte( $post_max_size ) ) {
3487
+ return $post_max_size;
3488
+ }
3489
+
3490
+ return $upload_max_filesize;
3491
+ }
3492
+
3493
+ /**
3494
+ * Validate a boolean variable
3495
+ *
3496
+ * @since 3.3.0
3497
+ *
3498
+ * @param mixed $var
3499
+ *
3500
+ * @return bool
3501
+ */
3502
+ function wpuf_validate_boolean( $var ) {
3503
+ return filter_var( $var, FILTER_VALIDATE_BOOLEAN );
3504
+ }
wpuf.php CHANGED
@@ -3,16 +3,16 @@
3
  Plugin Name: WP User Frontend
4
  Plugin URI: https://wordpress.org/plugins/wp-user-frontend/
5
  Description: Create, edit, delete, manages your post, pages or custom post types from frontend. Create registration forms, frontend profile and more...
6
- Author: Tareq Hasan
7
- Version: 3.2.0
8
- Author URI: https://tareq.co
9
  License: GPL2 or later
10
  License URI: https://www.gnu.org/licenses/gpl-2.0.html
11
  Text Domain: wp-user-frontend
12
  Domain Path: /languages
13
  */
14
 
15
- define( 'WPUF_VERSION', '3.2.0' );
16
  define( 'WPUF_FILE', __FILE__ );
17
  define( 'WPUF_ROOT', __DIR__ );
18
  define( 'WPUF_ROOT_URI', plugins_url( '', __FILE__ ) );
@@ -315,7 +315,6 @@ final class WP_User_Frontend {
315
  } else {
316
  require_once WPUF_ROOT . '/class/frontend-dashboard.php';
317
  require_once WPUF_ROOT . '/includes/free/class-registration.php';
318
- require_once WPUF_ROOT . '/includes/free/class-login.php';
319
  }
320
 
321
  // add reCaptcha library if not found
@@ -324,6 +323,7 @@ final class WP_User_Frontend {
324
  require_once __DIR__ . '/lib/invisible_recaptcha.php';
325
  }
326
 
 
327
  require_once WPUF_ROOT . '/includes/class-frontend-form-post.php';
328
  require_once WPUF_ROOT . '/includes/class-field-manager.php';
329
  require_once WPUF_ROOT . '/includes/class-pro-upgrades.php';
@@ -375,10 +375,10 @@ final class WP_User_Frontend {
375
  } else {
376
  $this->container['dashboard'] = new WPUF_Frontend_Dashboard();
377
  $this->container['payment'] = new WPUF_Payment();
378
- $this->container['login'] = WPUF_Simple_Login::init();
379
  $this->container['registration'] = WPUF_Registration::init();
380
  }
381
 
 
382
  $this->container['fields'] = new WPUF_Field_Manager();
383
  $this->container['frontend_form'] = WPUF_Frontend_Form::init();
384
  $this->container['pro_upgrades'] = new WPUF_Pro_Upgrades();
@@ -718,12 +718,13 @@ final class WP_User_Frontend {
718
  ] ) );
719
 
720
  wp_localize_script( 'wpuf-upload', 'wpuf_frontend_upload', [
721
- 'confirmMsg' => __( 'Are you sure?', 'wp-user-frontend' ),
722
- 'delete_it' => __( 'Yes, delete it', 'wp-user-frontend' ),
723
- 'cancel_it' => __( 'No, cancel it', 'wp-user-frontend' ),
724
- 'nonce' => wp_create_nonce( 'wpuf_nonce' ),
725
- 'ajaxurl' => admin_url( 'admin-ajax.php' ),
726
- 'plupload' => [
 
727
  'url' => admin_url( 'admin-ajax.php' ) . '?nonce=' . wp_create_nonce( 'wpuf-upload-nonce' ),
728
  'flash_swf_url' => includes_url( 'js/plupload/plupload.flash.swf' ),
729
  'filters' => [
3
  Plugin Name: WP User Frontend
4
  Plugin URI: https://wordpress.org/plugins/wp-user-frontend/
5
  Description: Create, edit, delete, manages your post, pages or custom post types from frontend. Create registration forms, frontend profile and more...
6
+ Author: weDevs
7
+ Version: 3.3.0
8
+ Author URI: https://wedevs.com/?utm_source=WPUF_Author_URI
9
  License: GPL2 or later
10
  License URI: https://www.gnu.org/licenses/gpl-2.0.html
11
  Text Domain: wp-user-frontend
12
  Domain Path: /languages
13
  */
14
 
15
+ define( 'WPUF_VERSION', '3.3.0' );
16
  define( 'WPUF_FILE', __FILE__ );
17
  define( 'WPUF_ROOT', __DIR__ );
18
  define( 'WPUF_ROOT_URI', plugins_url( '', __FILE__ ) );
315
  } else {
316
  require_once WPUF_ROOT . '/class/frontend-dashboard.php';
317
  require_once WPUF_ROOT . '/includes/free/class-registration.php';
 
318
  }
319
 
320
  // add reCaptcha library if not found
323
  require_once __DIR__ . '/lib/invisible_recaptcha.php';
324
  }
325
 
326
+ require_once WPUF_ROOT . '/includes/free/class-login.php';
327
  require_once WPUF_ROOT . '/includes/class-frontend-form-post.php';
328
  require_once WPUF_ROOT . '/includes/class-field-manager.php';
329
  require_once WPUF_ROOT . '/includes/class-pro-upgrades.php';
375
  } else {
376
  $this->container['dashboard'] = new WPUF_Frontend_Dashboard();
377
  $this->container['payment'] = new WPUF_Payment();
 
378
  $this->container['registration'] = WPUF_Registration::init();
379
  }
380
 
381
+ $this->container['login'] = WPUF_Simple_Login::init();
382
  $this->container['fields'] = new WPUF_Field_Manager();
383
  $this->container['frontend_form'] = WPUF_Frontend_Form::init();
384
  $this->container['pro_upgrades'] = new WPUF_Pro_Upgrades();
718
  ] ) );
719
 
720
  wp_localize_script( 'wpuf-upload', 'wpuf_frontend_upload', [
721
+ 'confirmMsg' => __( 'Are you sure?', 'wp-user-frontend' ),
722
+ 'delete_it' => __( 'Yes, delete it', 'wp-user-frontend' ),
723
+ 'cancel_it' => __( 'No, cancel it', 'wp-user-frontend' ),
724
+ 'nonce' => wp_create_nonce( 'wpuf_nonce' ),
725
+ 'ajaxurl' => admin_url( 'admin-ajax.php' ),
726
+ 'max_filesize' => wpuf_max_upload_size(),
727
+ 'plupload' => [
728
  'url' => admin_url( 'admin-ajax.php' ) . '?nonce=' . wp_create_nonce( 'wpuf-upload-nonce' ),
729
  'flash_swf_url' => includes_url( 'js/plupload/plupload.flash.swf' ),
730
  'filters' => [