User registration & user profile – Profile Builder - Version 3.6.7

Version Description

  • Fix: issue with back-end Users with unconfirmed emails page
  • Misc: remove unnecessary code
  • Misc: sanitize outputted register sucesss message
Download this release

Release Info

Developer raster02
Plugin Icon 128x128 User registration & user profile – Profile Builder
Version 3.6.7
Comparing to
See all releases

Code changes from version 3.6.6 to 3.6.7

assets/lib/class-mustache-templates/class-mustache-templates.css DELETED
@@ -1,193 +0,0 @@
1
- /* Mustache Library for Creating */
2
-
3
- /*--------------------------------------------------------------
4
- >>> TABLE OF CONTENTS:
5
- ----------------------------------------------------------------
6
- 1.0 - Basic Structure
7
- 2.0 - Textarea Codemirror Styling
8
- 3.0 - Other Form Elements
9
- 4.0 - Save Button
10
- 5.0 - Media Queries
11
- 6.0 - Other
12
- --------------------------------------------------------------*/
13
-
14
- /*--------------------------------------------------------------
15
- 1.0 Basic Structure
16
- --------------------------------------------------------------*/
17
-
18
- .side .form-table th {
19
- width: 20%;
20
- font-weight: bold;
21
- text-align: left;
22
- padding-left: 0;
23
- }
24
-
25
- .wck-post-body{
26
- clear: left;
27
- float: left;
28
- margin-right: -2000px;
29
- width: 100%;
30
- }
31
-
32
- .metabox-holder .column-1 {
33
- margin-right:300px;
34
- }
35
- .metabox-holder .column-2 {
36
- float: right;
37
- width: 280px;
38
- clear:right;
39
- position:relative;
40
- }
41
- .metabox-holder .column-3 {
42
- clear: both;
43
- margin-right:300px;
44
- }
45
- /*--------------------------------------------------------------
46
- 2.0 Textarea Codemirror styling
47
- --------------------------------------------------------------*/
48
- .textarea .stp-extra{
49
- border:1px solid #ccc;
50
- border-left:0;
51
- float: left;
52
- overflow: auto;
53
- width: 39%;
54
- height:400px;
55
- }
56
- .textarea .stp-extra h4 {
57
- height: 20px;
58
- margin: 1px 0;
59
- padding:10px 20px;
60
- overflow: hidden;
61
- cursor:pointer;
62
- background:#F1F1F1;
63
- }
64
- .textarea .stp-extra h4:hover{
65
- background:#FCFCFC;
66
- }
67
- .textarea .stp-extra pre {
68
- display: block;
69
- height: 253px;
70
- margin: 12px 0;
71
- max-height: 253px;
72
- overflow: auto;
73
- padding-left: 20px;
74
- vertical-align: top;
75
- width: auto;
76
- }
77
- .textarea label.wppb_mustache_label {
78
- display: none;
79
- }
80
- .cm-s-default.CodeMirror {
81
- border: 1px solid #CCCCCC;
82
- float: left;
83
- font-family: Monaco,Menlo,"Andale Mono","lucida console","Courier New",monospace !important;
84
- line-height: 1.4em !important;
85
- width: 60%;
86
- }
87
- .cm-s-default {
88
- min-height: 400px;
89
- }
90
- .mustache-box{
91
- table-layout:fixed;
92
- }
93
- /*--------------------------------------------------------------
94
- 3.0 Other Form Elements
95
- --------------------------------------------------------------*/
96
- .text label.wppb_mustache_label {
97
- display: inline-block;
98
- min-width: 150px;
99
- font-weight: bold;
100
- }
101
-
102
- .checkbox label.wppb_mustache_label {
103
- font-weight: bold;
104
- margin-right: 8px;
105
- }
106
-
107
- .mustache-box input[type="text"]{
108
- width:400px;
109
- min-width: auto;
110
- }
111
-
112
- .mustache-box .description{
113
- display: block;
114
- }
115
-
116
- .mustache-box.form-table td.header{
117
- padding-top: 0;
118
- padding-bottom: 0;
119
- }
120
-
121
- /*--------------------------------------------------------------
122
- 4.0 Save Button
123
- --------------------------------------------------------------*/
124
- .mustache-save{
125
- width: 100%;
126
- text-align: center;
127
- }
128
-
129
- #page-save-metabox .hndle{
130
- background: #333333;
131
- color: #fff;
132
- }
133
- #page-save-metabox .inside{
134
- padding: 30px;
135
- }
136
-
137
- /*--------------------------------------------------------------
138
- 5.0 Media Queries
139
- --------------------------------------------------------------*/
140
- @media screen and ( max-width: 878px ) {
141
- .wck-post-body{
142
- float:none;
143
- margin-right: 0;
144
- }
145
-
146
- .metabox-holder .column-2{
147
- float:none;
148
- width:100%;
149
- }
150
-
151
- .metabox-holder .column-1{
152
- margin-right:0;
153
- }
154
-
155
- .textarea .stp-extra{
156
- float:none;
157
- width:auto;
158
- border:1px solid #ccc;
159
- border-top:0;
160
- }
161
- .cm-s-default.CodeMirror{
162
- float:none;
163
- width: auto;
164
- }
165
- #page-save-metabox .inside{
166
- text-align: right;
167
- }
168
- .mustache-save{
169
- width: auto;
170
- text-align: center;
171
- }
172
-
173
- }
174
-
175
- /*--------------------------------------------------------------
176
- 6.0 Other
177
- --------------------------------------------------------------*/
178
- /* show email toggle checkbox inline for User/Admin Email Customizers */
179
- .profile-builder_page_user-email-customizer .wck-post-body .postbox:not(:first-child) tr:nth-child(1), .profile-builder_page_admin-email-customizer .wck-post-body .postbox:not(:first-child) tr:nth-child(1) {
180
- width: 50%;
181
- display: inline-block;
182
- }
183
-
184
- .profile-builder_page_user-email-customizer .wck-post-body .postbox:not(:first-child) tr:nth-child(2), .profile-builder_page_admin-email-customizer .wck-post-body .postbox:not(:first-child) tr:nth-child(2) {
185
- text-align: left;
186
- width: 50%;
187
- display: inline-block;
188
- }
189
-
190
- .profile-builder_page_user-email-customizer .wck-post-body .postbox:not(:first-child) tr:nth-child(2) td, .profile-builder_page_admin-email-customizer .wck-post-body .postbox:not(:first-child) tr:nth-child(2) td {
191
- float: right;
192
- padding-right: 20px;
193
- }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
assets/lib/class-mustache-templates/class-mustache-templates.js DELETED
@@ -1,80 +0,0 @@
1
- CodeMirror.defineMode("mustache", function(config, parserConfig) {
2
- var mustacheOverlay = {
3
- token: function(stream, state) {
4
- var ch;
5
- if (stream.match("{{")) {
6
- while ((ch = stream.next()) != null)
7
- if (ch == "}" && stream.next() == "}") break;
8
- stream.eat("}");
9
- return "mustache";
10
- }
11
- while (stream.next() != null && !stream.match("{{", false)) {}
12
- return null;
13
- }
14
- };
15
- return CodeMirror.overlayMode(CodeMirror.getMode(config, parserConfig.backdrop || "text/html"), mustacheOverlay);
16
- });
17
-
18
-
19
- jQuery(function(){
20
- var wck_stp_textareas = ["wppb_mustache_template"];
21
- var length = wck_stp_textareas.length;
22
- element = null;
23
-
24
- for ( var i=0; i < length; i++ ){
25
- element = wck_stp_textareas[i];
26
-
27
- if ( jQuery( 'textarea[class="' + element + '"]' ).length > 0 ){
28
- jQuery( 'textarea[class|="' + element + '"]' ).each( function(){
29
- var editor = CodeMirror.fromTextArea( this, {
30
- mode: "mustache",
31
- lineNumbers: true,
32
- //lineWrapping:true,
33
- extraKeys: {
34
- "F11": function(cm) {
35
- cm.setOption("fullScreen", !cm.getOption("fullScreen"));
36
- },
37
- "Esc": function(cm) {
38
- if (cm.getOption("fullScreen")) cm.setOption("fullScreen", false);
39
- }
40
- }
41
- });
42
- });
43
- }
44
- }
45
- })
46
-
47
- jQuery(function() {
48
- jQuery( ".stp-extra" ).accordion();
49
- });
50
-
51
- //add hidden input with off value for checkboxes
52
- jQuery(function() {
53
-
54
- jQuery('form .wck-post-body input[type="checkbox"]').each( function() {
55
-
56
- if ( !jQuery(this).is(':checked') ) {
57
- var wppb_mustache_checkbox_off = document.createElement('input');
58
- wppb_mustache_checkbox_off.type = 'hidden';
59
- wppb_mustache_checkbox_off.value = 'off';
60
- wppb_mustache_checkbox_off.name = jQuery(this).attr('name');
61
-
62
- jQuery(this).after(wppb_mustache_checkbox_off);
63
- }
64
-
65
- });
66
-
67
- jQuery('form .wck-post-body input[type="checkbox"]').on( 'change', function() {
68
- var wppb_mustache_checkbox_off = document.createElement('input');
69
- wppb_mustache_checkbox_off.type = 'hidden';
70
- wppb_mustache_checkbox_off.value = 'off';
71
- wppb_mustache_checkbox_off.name = jQuery(this).attr('name');
72
-
73
- if ( jQuery(this).is(':checked') )
74
- jQuery( '.' + jQuery(this).attr('name') + ' input[type="hidden"]' ).remove();
75
- else
76
- jQuery(this).after(wppb_mustache_checkbox_off);
77
-
78
- });
79
-
80
- });
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
assets/lib/class-mustache-templates/class-mustache-templates.php DELETED
@@ -1,575 +0,0 @@
1
- <?php
2
- /**
3
- * @param array() $mustache_vars is the array containing the names of the variable that must be proccessed by mustache in the template. The array must be in this form:
4
- * array( array( 'name' => '', 'type' => '' ) ... ), and for loop tags it also contains a 'children' element which contains other mustache_vars array( array( 'name' => 'users', 'type' => 'loop_tag', 'children' => $merge_tags )
5
- * @param string $template the template that needs to be procesed
6
- * @param array $extra_values in this array we can pass any variables that are required for that specific implementation of the mustache processing system
7
- *
8
- */
9
- class PB_Mustache_Generate_Template{
10
- var $mustache_vars = array( );
11
- var $template = '';
12
- var $extra_values = array( );
13
-
14
- /**
15
- * constructor for the class
16
- *
17
- * @param array $mustache_vars the array of variables
18
- * @param string $template the html template
19
- * @param $extra_values in this array we can pass any variables that are required for that specific implementation of the mustache processing system
20
- *
21
- * @since 2.0.0
22
- *
23
- */
24
- function __construct( $mustache_vars, $template, $extra_values ){
25
-
26
- // Include Mustache Templates
27
- if( !class_exists( 'Mustache_Autoloader' ) )
28
- require_once( WPPB_PLUGIN_DIR.'/assets/lib/Mustache/Autoloader.php' );
29
-
30
- Mustache_Autoloader::register();
31
-
32
- $this->mustache_vars = $mustache_vars;
33
- $this->template = $template;
34
- $this->extra_values = $extra_values;
35
-
36
- $this->process_mustache_vars();
37
- }
38
-
39
- /**
40
- * construct the mustache_vars_array from $mustache_vars through filters
41
- *
42
- * @since 2.0.0
43
- *
44
- */
45
- function process_mustache_vars(){
46
- if( !empty( $this->mustache_vars ) ){
47
- foreach( $this->mustache_vars as $var ){
48
- foreach( $var['variables'] as $variables ){
49
- if( empty( $variables['children'] ) )
50
- $variables['children'] = array();
51
- $this->mustache_vars_array[ $variables['name'] ] = apply_filters( 'mustache_variable_'. $variables['type'], '', $variables['name'], $variables['children'], $this->extra_values );
52
- }
53
- }
54
- }
55
- }
56
-
57
-
58
- /**
59
- * Process the mustache template from the html template and the processed mustache variable array.
60
- *
61
- * @since 2.0.0
62
- *
63
- * @return $content the proccessed template ready for output.
64
- */
65
- function process_template(){
66
- $m = new Mustache_Engine;
67
- try {
68
- if( !empty( $this->mustache_vars_array ) ){
69
- foreach( $this->mustache_vars_array as $key => $value ){
70
- if( is_string( $value ) ) {
71
- $this->mustache_vars_array[$key] = str_replace('[', '&#91;', $value);
72
- $this->mustache_vars_array[$key] = str_replace(']', '&#93;', $value);
73
- }
74
- }
75
- }
76
- $content = do_shortcode( $m->render( $this->template, $this->mustache_vars_array ) );
77
- } catch (Exception $e) {
78
- $content = $e->getMessage();
79
- }
80
-
81
- return apply_filters( 'wppb_mustache_template', $content );
82
- }
83
-
84
- /**
85
- * Handle toString method
86
- *
87
- * @since 2.0.0
88
- *
89
- * @return string $html html for the template.
90
- */
91
- public function __toString() {
92
- $html = $this->process_template();
93
- return "{$html}";
94
- }
95
-
96
-
97
- }
98
-
99
-
100
- class PB_Mustache_Generate_Admin_Box{
101
-
102
- var $id; // string meta box id
103
- var $title; // string title
104
- var $page; // string|array post type to add meta box to
105
- var $priority;
106
- var $mustache_vars;
107
- var $default_value;
108
-
109
-
110
- /**
111
- * constructor for the class
112
- *
113
- * @param string $id the meta box id
114
- * @param string $title the title of the metabox
115
- * @param string|array $page post type to add meta box to
116
- * @param string $priority the priority within the context where the boxes should show ('high', 'core', 'default' or 'low')
117
- * @param array $mustache_vars is the array containing the names of the variable that must be proccessed by mustache in the template. The array must be in this form:
118
- * array( array( 'name' => '', 'type' => '' ) ... ), and for loop tags it also contains a 'children' element which contains other mustache_vars array( array( 'name' => 'users', 'type' => 'loop_tag', 'children' => $merge_tags )
119
- * @param string $default_value the default template that populates the codemirror box.
120
- *
121
- * @since 2.0.0
122
- *
123
- */
124
- function __construct( $id, $title, $page, $priority, $mustache_vars, $default_value = '', $fields = array() ){
125
-
126
- $this->mustache_vars = $mustache_vars;
127
-
128
- $this->id = $id;
129
- $this->title = $title;
130
- $this->page = $page;
131
- $this->priority = $priority;
132
- $this->default_value = $default_value;
133
-
134
- if(!is_array($this->page)) {
135
- $this->page = array($this->page);
136
- }
137
-
138
- if( empty( $fields ) ){
139
- $this->fields = array(
140
- array( // Textarea
141
- 'label' => '', // <label>
142
- 'desc' => '', // description
143
- 'id' => $id, // field id and name
144
- 'type' => 'textarea', // type of field
145
- 'default' => $default_value, // type of field
146
- )
147
- );
148
- }
149
- else{
150
- $this->fields = $fields;
151
- }
152
-
153
- $this->save_default_values();
154
-
155
- if( defined( 'DOING_AJAX' ) && DOING_AJAX )
156
- return;
157
-
158
- add_action( 'add_meta_boxes', array( $this, 'add_box' ) );
159
- add_action( 'save_post', array( $this, 'save_box' ), 11, 2);
160
- add_action( 'wp_insert_post', array( $this, 'save_box' ), 11, 2);
161
- add_action( 'admin_enqueue_scripts', array( $this, 'wppb_print_mustache_script' ) );
162
- add_action( 'admin_head', array( $this, 'wppb_print_codemirror_script' ) );
163
-
164
- add_action( 'wck_before_meta_boxes', array( $this, 'wppb_mustache_page_before' ) );
165
- add_action( 'wck_after_meta_boxes', array( $this, 'wppb_mustache_page_after' ) );
166
- }
167
-
168
- /**
169
- * Function that print the required scripts for the mustache templates
170
- *
171
- * @param string $hook the page hook
172
- *
173
- * @since 2.0.0
174
- *
175
- */
176
- function wppb_print_mustache_script( $hook ){
177
- if ( isset( $_GET['post_type'] ) || isset( $_GET['post'] ) || isset( $_GET['page'] ) ){
178
- if ( isset( $_GET['post_type'] ) )
179
- $post_type = sanitize_text_field( $_GET['post_type'] );
180
-
181
- elseif ( isset( $_GET['post'] ) )
182
- $post_type = get_post_type( absint( $_GET['post'] ) );
183
- else if( isset( $_GET['page'] ) ){
184
- $screen = get_current_screen();
185
- $post_type = $screen->id;
186
- }
187
-
188
- if ( ( $this->page[0] == $post_type ) ){
189
- wp_enqueue_style( 'codemirror-style', WPPB_PLUGIN_URL . 'assets/lib/codemirror/lib/codemirror.css', false, PROFILE_BUILDER_VERSION );
190
- if( !wp_script_is( 'codemirror', 'registered' ) && !wp_script_is( 'codemirror', 'enqueued' ) ) {
191
- wp_enqueue_script('codemirror', WPPB_PLUGIN_URL . 'assets/lib/codemirror/lib/codemirror.js', array(), PROFILE_BUILDER_VERSION);
192
- wp_enqueue_script('codemirror-mode-overlay-js', WPPB_PLUGIN_URL . 'assets/lib/codemirror/addon/mode/overlay.js', array(), '1.0');
193
- wp_enqueue_script('codemirror-mode-xml-js', WPPB_PLUGIN_URL . 'assets/lib/codemirror/mode/xml/xml.js', array(), '1.0');
194
- wp_enqueue_script('codemirror-fullscreen-js', WPPB_PLUGIN_URL . 'assets/lib/codemirror/addon/display/fullscreen.js', array(), '1.0');
195
- }
196
-
197
- wp_enqueue_script('jquery-ui-accordion');
198
- }
199
- }
200
- }
201
-
202
- /**
203
- * Function that prints the codemirror initialization and the css
204
- *
205
- * @param string $hook the page hook
206
- *
207
- * @since 2.0.0
208
- *
209
- */
210
- function wppb_print_codemirror_script(){
211
- global $printed_codemirror_scripts;
212
-
213
- if( $printed_codemirror_scripts )
214
- return;
215
-
216
- $post_type = NULL;
217
-
218
- if ( isset( $_GET['post_type'] ) || isset( $_GET['post'] ) || isset( $_GET['page'] ) ){
219
- if ( isset( $_GET['post_type'] ) )
220
- $post_type = sanitize_text_field( $_GET['post_type'] );
221
- elseif ( isset( $_GET['post'] ) )
222
- $post_type = get_post_type( absint( $_GET['post'] ) );
223
- else if( isset( $_GET['page'] ) ){
224
- $screen = get_current_screen();
225
- if( $screen !== null && is_object( $screen ) ) {
226
- $post_type = $screen->id;
227
- }
228
- }
229
-
230
- if ( ( $this->page[0] == $post_type ) ){
231
- wp_enqueue_style( 'class-mustache-css', WPPB_PLUGIN_URL . 'assets/lib/class-mustache-templates/class-mustache-templates.css', false, PROFILE_BUILDER_VERSION );
232
- if( wp_script_is( 'codemirror-mode-overlay-js', 'enqueued' ) ) {
233
- wp_enqueue_script('class-mustache-js', WPPB_PLUGIN_URL . 'assets/lib/class-mustache-templates/class-mustache-templates.js', array("jquery"), PROFILE_BUILDER_VERSION);
234
- }
235
-
236
- $printed_codemirror_scripts = true;
237
- }
238
- }
239
- }
240
-
241
- /**
242
- * Function that adds the mustache metabox
243
- *
244
- * @since 2.0.0
245
- *
246
- */
247
- function add_box() {
248
- global $post_type;
249
-
250
- foreach ( $this->page as $page ) {
251
- add_meta_box( $this->id, $this->title, array( $this, 'meta_box_callback' ), $page, 'normal', $this->priority, array( 'post_type' => $post_type ) );
252
-
253
- /* if it's not a post type add a side metabox with a save button */
254
- if( isset( $_GET['page'] ) )
255
- add_meta_box( 'page-save-metabox', __( 'Save', 'profile-builder' ), array( $this, 'page_save_meta_box' ), $page, 'side' );
256
- }
257
- }
258
-
259
- /**
260
- * Function output the content for the metabox
261
- *
262
- *
263
- * @since 2.0.0
264
- *
265
- */
266
- function meta_box_callback( $post, $metabox ) {
267
- global $post;
268
- if( isset( $_GET['page'] ) )
269
- $post_type = NULL;
270
- else
271
- $post_type = $metabox['args']['post_type'];
272
-
273
- /* save default values in the database as post meta for post types */
274
- if( !empty( $this->fields ) && !empty( $post->ID ) ){
275
- foreach( $this->fields as $field ){
276
- if( !empty( $field['default'] ) ){
277
- /* see if we have an option with this name, if we have don't do anything */
278
- $field_saved_value = get_post_meta( $post->ID, $field['id'], true );
279
- if( empty( $field_saved_value ) ){
280
- add_post_meta( $post->ID, $field['id'], $field['default'], true );
281
- }
282
- }
283
- }
284
- }
285
-
286
- // Use nonce for verification
287
- echo '<input type="hidden" name="' . esc_attr( $post_type ) . '_meta_box_nonce" value="' . esc_attr( wp_create_nonce( basename( __FILE__) ) ) . '" />';
288
-
289
- // Begin the field table and loop
290
- echo '<table class="form-table meta_box mustache-box">';
291
- foreach ( $this->fields as $field ) {
292
-
293
- // get data for this field
294
- extract( $field );
295
- if ( !empty( $desc ) )
296
- $desc = '<span class="description">' . $desc . '</span>';
297
-
298
- // get value of this field if it exists for this post
299
- if( isset( $_GET['page'] ) ){
300
- $meta = get_option( $id );
301
- }
302
- else{
303
- $meta = get_post_meta( $post->ID, $id, true );
304
- }
305
-
306
- //try to set a default value
307
- if( empty( $meta ) && !empty( $default ) ){
308
- $meta = $default;
309
- }
310
-
311
-
312
- // begin a table row with
313
- echo '<tr>
314
- <td class="' . esc_attr( $id ) . ' ' . esc_attr( $type ) . '">';
315
- if( $type != 'header' && !empty( $label ) ){
316
- echo '<label for="' . esc_attr( $id ) . '" class="wppb_mustache_label">' . esc_html( $label ) . '</label>';
317
- }
318
- switch( $type ) {
319
- // text
320
- case 'text':
321
- echo '<input type="text" name="' . esc_attr( $id ) . '" id="' . esc_attr( $id ) . '" value="' . esc_attr( $meta ) . '" size="30" />
322
- <br />' . wp_kses_post( $desc ) ;
323
- break;
324
- // textarea
325
- case 'textarea':
326
-
327
- echo '<textarea name="' . esc_attr( $id ) . '" id="' . esc_attr( $id ) . '" cols="220" rows="4" class="wppb_mustache_template">' . esc_textarea( $meta ) . '</textarea>';
328
- echo wp_kses_post( $desc ) ;
329
- break;
330
- // checkbox
331
- case 'checkbox':
332
- echo '<input type="checkbox" name="' . esc_attr( $id ) . '" id="' . esc_attr( $id ) . '"' . checked( esc_attr( $meta ), 'on', false ) . ' value="on" />
333
- <label for="' . esc_attr( $id ) . '">' . esc_html( $desc ) . '</label>';
334
- break;
335
- // select
336
- case 'select':
337
- echo '<select name="' . esc_attr( $id ) . '" id="' . esc_attr( $id ) . '">';
338
- foreach ( $options as $option )
339
- echo '<option' . selected( esc_attr( $meta ), $option['value'], false ) . ' value="' . esc_attr( $option['value'] ) . '">' . esc_html( $option['label'] ) . '</option>';
340
- echo '</select><br />' . wp_kses_post( $desc );
341
- break;
342
- // radio
343
- case 'radio':
344
- foreach ( $options as $option )
345
- echo '<input type="radio" name="' . esc_attr( $id ) . '" id="' . esc_attr( $id ) . '-' . esc_attr( $option['value'] ) . '" value="' . esc_attr( $option['value'] ) . '"' . checked( esc_attr( $meta ), $option['value'], false ) . ' />
346
- <label for="' . esc_attr( $id ) . '-' . esc_attr( $option['value'] ) . '">' . esc_html( $option['label'] ) . '</label><br />';
347
- echo '' . wp_kses_post( $desc );
348
- break;
349
- // checkbox_group
350
- case 'checkbox_group':
351
- foreach ( $options as $option )
352
- echo '<input type="checkbox" value="' . esc_attr( $option['value'] ) . '" name="' . $id . '[]" id="' . $id . '-' . $option['value'] . '"' , is_array( $meta ) && in_array( $option['value'], $meta ) ? ' checked="checked"' : '' , ' />
353
- <label for="' . esc_attr( $id ) . '-' . esc_attr( $option['value'] ) . '">' . esc_html( $option['label'] ) . '</label><br />';
354
- echo '' . wp_kses_post( $desc );
355
- break;
356
- // text
357
- case 'header':
358
- echo '<h4>'. esc_html( $default ) .'</h4>';
359
- break;
360
- } //end switch
361
-
362
- if( $type == 'textarea' ){
363
- ?>
364
- <div class="stp-extra">
365
- <?php
366
- if( !empty( $this->mustache_vars ) ){
367
- foreach( $this->mustache_vars as $mustache_var_group ){
368
- ?>
369
- <h4><?php echo esc_html( $mustache_var_group['group-title'] ); ?></h4>
370
- <pre><?php do_action( 'wppb_before_mustache_vars_display', $mustache_var_group, $id, $post_type ); $this->display_mustache_available_vars( $mustache_var_group['variables'], 0 ); ?></pre>
371
- <?php
372
- }
373
- }
374
- ?>
375
- </div>
376
- <?php
377
- }
378
- echo '</td></tr>';
379
- } // end foreach
380
- echo '</table>'; // end table
381
- }
382
-
383
- /**
384
- * Function that ads a side metabox on pages ( not post types ) with a save button
385
- *
386
- *
387
- * @since 2.0.0
388
- *
389
- */
390
- function page_save_meta_box() {
391
- ?>
392
- <input type="submit" value="<?php esc_html_e( 'Save Changes', 'profile-builder' ); ?>" class="button button-primary button-large mustache-save">
393
- <?php
394
- }
395
-
396
- /**
397
- * Function that ads a form start on pages ( not post types ) and also the 'save_post' action
398
- *
399
- *
400
- * @since 2.0.0
401
- *
402
- */
403
- function wppb_mustache_page_before( $hook ){
404
- global $started_mustache_form;
405
-
406
- if( $started_mustache_form )
407
- return;
408
-
409
- if( isset( $_GET['page'] ) && $hook == $this->page[0] ){
410
- /* if we are saving do the action 'save_post' */
411
- if( isset( $_GET['mustache_action'] ) && $_GET['mustache_action'] == 'save' ) {
412
- /* to avoid conflicts with other plugins we send an empty post object as the second parameter with a fake post type */
413
- $post = new WP_Post( new stdClass() );
414
- $post->post_type = 'wppb-mustache-settings-page';
415
- remove_all_actions('save_post', 10 );//remove all actions that could run on the save_post hook on priority 10 than could expect a numeric post id instead of a string like $this->id. Ex: add_action( 'save_post', array( $this, 'refresh_post_word_count' ) ); in WPML translation management
416
- remove_all_actions('save_post', PHP_INT_MAX );//same for PHP_INT_MAX priority: add_action( 'save_post', array( $this, 'queue_save_post_actions' ), PHP_INT_MAX, 2 );
417
- do_action( 'save_post', $this->id, $post, false );
418
- }
419
-
420
- echo '<form action="'. esc_url( add_query_arg( array('mustache_action' => 'save') ) ) .'" method="post">';
421
- $started_mustache_form = true;
422
- }
423
- }
424
-
425
- /**
426
- * Function that ads a form end on pages ( not post types )
427
- *
428
- *
429
- * @since 2.0.0
430
- *
431
- */
432
- function wppb_mustache_page_after( $hook ){
433
- global $ended_mustache_form;
434
- if( $ended_mustache_form )
435
- return;
436
-
437
- if( isset( $_GET['page'] ) && $hook == $this->page[0] ){
438
- echo '</form>';
439
- $ended_mustache_form = true;
440
- }
441
- }
442
-
443
-
444
- /**
445
- * Function that transforms and echoes the $mustache_vars into despayable forms. It takes care of nested levels and adds {{}} as well
446
- *
447
- * @param array $mustache_vars is the array containing the names of the variable that must be proccessed by mustache in the template. The array must be in this form:
448
- * array( array( 'name' => '', 'type' => '' ) ... ), and for loop tags it also contains a 'children' element which contains other mustache_vars array( array( 'name' => 'users', 'type' => 'loop_tag', 'children' => $merge_tags )
449
- * @param int $level the current level of the nested variables.
450
- *
451
- * @since 2.0.0
452
- *
453
- */
454
- function display_mustache_available_vars( $mustache_vars, $level ){
455
- if( !empty( $mustache_vars ) ){
456
- foreach( $mustache_vars as $var ){
457
- if ( $var[ 'name' ] != 'password' ) {
458
- if ( empty( $var[ 'children' ] ) ) {
459
- echo str_repeat( "&nbsp;&nbsp;", $level );//phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped
460
- if ( !empty( $var[ 'label' ] ) )
461
- echo esc_html( apply_filters( 'wppb_variable_label', $var[ 'label' ] . ':' ) );
462
- if ( !empty( $var[ 'unescaped' ] ) && $var[ 'unescaped' ] === true )
463
- echo '{{{';
464
- else
465
- echo '{{';
466
- echo esc_html( $var[ 'name' ] );
467
- if ( !empty( $var[ 'unescaped' ] ) && $var[ 'unescaped' ] === true )
468
- echo '}}}';
469
- else
470
- echo '}}';
471
- echo PHP_EOL;
472
- } else {
473
- echo str_repeat( "&nbsp;&nbsp;", $level ); //phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped
474
- echo '{{#' . esc_html( $var[ 'name' ] ) . '}}' . PHP_EOL;
475
- $level++;
476
- $this->display_mustache_available_vars( $var[ 'children' ], $level );
477
- $level--;
478
- echo str_repeat( "&nbsp;&nbsp;", $level ); //phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped
479
- echo '{{/' . esc_html( $var[ 'name' ] ) . '}}' . PHP_EOL;
480
- }
481
- }
482
- }
483
- }
484
- }
485
-
486
- /**
487
- * Function that saves the values from the metabox
488
- *
489
- * @param int $post_id the post id
490
- * @param post object $post
491
- *
492
- * @since 2.0.0
493
- *
494
- */
495
- function save_box( $post_id, $post ){
496
- global $post_type;
497
- /* addition to save as option if we are not on a post type */
498
- if( !is_numeric( $post_id ) && isset( $_POST['_meta_box_nonce'] ) && @wp_verify_nonce( sanitize_text_field( $_POST['_meta_box_nonce'] ), basename( __FILE__ ) ) ){
499
- foreach ( $this->fields as $field ) {
500
-
501
- if ( isset( $_POST[$field['id']] ) ) {
502
- update_option( $field['id'], wp_unslash( $_POST[$field['id']] ) );//phpcs:ignore WordPress.Security.ValidatedSanitizedInput.InputNotSanitized
503
- }
504
-
505
- }
506
- }
507
-
508
- // verify nonce
509
- if ( ! ( in_array( $post_type, $this->page ) && isset( $_POST[$post_type . '_meta_box_nonce'] ) && @wp_verify_nonce( sanitize_text_field( $_POST[$post_type . '_meta_box_nonce'] ), basename( __FILE__ ) ) ) )
510
- return $post_id;
511
- // check autosave
512
- if ( defined( 'DOING_AUTOSAVE' ) && DOING_AUTOSAVE )
513
- return $post_id;
514
- // check permissions
515
- if ( !current_user_can( 'edit_page', $post_id ) )
516
- return $post_id;
517
-
518
- // loop through fields and save the data
519
- foreach ( $this->fields as $field ) {
520
- if( $field['type'] == 'tax_select' ) {
521
- // save taxonomies
522
- if ( isset( $_POST[$field['id']] ) )
523
- $term = $_POST[$field['id']]; //phpcs:ignore WordPress.Security.ValidatedSanitizedInput.InputNotSanitized
524
- wp_set_object_terms( $post_id, $term, $field['id'] );
525
- }
526
- else {
527
- // save the rest
528
- $old = get_post_meta( $post_id, $field['id'], true );
529
- if ( isset( $_POST[$field['id']] ) ) {
530
- $new = $_POST[$field['id']]; /* phpcs:ignore WordPress.Security.ValidatedSanitizedInput.InputNotSanitized */
531
- } else {
532
- $new = '';
533
- }
534
-
535
- if ( $new && $new != $old ) {
536
- if ( is_array( $new ) ) {
537
- foreach ( $new as &$item ) {
538
- //$item = esc_attr( $item );
539
- }
540
- unset( $item );
541
- } else {
542
- //$new = esc_attr( $new );
543
- }
544
- update_post_meta( $post_id, $field['id'], $new );
545
- } elseif ( '' == $new && $old ) {
546
- delete_post_meta( $post_id, $field['id'], $old );
547
- }
548
- }
549
- } // end foreach
550
- }
551
-
552
-
553
- /**
554
- * Function that saves the default values for each field in the database for options
555
- *
556
- *
557
- * @since 2.0.0
558
- *
559
- */
560
-
561
- function save_default_values(){
562
- /* only do it on pages where we save as options and we have fields */
563
- if( !empty( $this->fields ) && !post_type_exists($this->page[0]) ){
564
- foreach( $this->fields as $field ){
565
- if( !empty( $field['default'] ) ){
566
- /* see if we have an option with this name, if we have don't do anything */
567
- $field_saved_value = get_option( $field['id'] );
568
- if( empty( $field_saved_value ) ) {
569
- update_option( $field['id'], $field['default'] );
570
- }
571
- }
572
- }
573
- }
574
- }
575
- }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
features/email-confirmation/email-confirmation.php CHANGED
@@ -60,7 +60,7 @@ function wppb_add_pending_users_header_script(){
60
  actionText = '<?php esc_html_e( 'Do you want to', 'profile-builder' ); ?>' + ' ' + actionText;
61
 
62
  if (confirm(actionText)) {
63
- jQuery.post( ajaxurl , { action:"wppb_handle_email_confirmation_cases", URL:URL, todo:todo, user_email:user_email, nonce:<?php wp_create_nonce( 'wppb_handle_email_confirmation' ) ?>}, function(response) {
64
  if (response.trim() == 'ok')
65
  window.location=URL;
66
 
60
  actionText = '<?php esc_html_e( 'Do you want to', 'profile-builder' ); ?>' + ' ' + actionText;
61
 
62
  if (confirm(actionText)) {
63
+ jQuery.post( ajaxurl , { action:"wppb_handle_email_confirmation_cases", URL:URL, todo:todo, user_email:user_email, nonce:"<?php echo esc_js( wp_create_nonce( 'wppb_handle_email_confirmation' ) ) ?>" }, function(response) {
64
  if (response.trim() == 'ok')
65
  window.location=URL;
66
 
front-end/class-formbuilder.php CHANGED
@@ -384,7 +384,7 @@ class Profile_Builder_Form_Creator{
384
  $redirect = $this->wppb_log_in_user( $this->args['redirect_url'], $redirect );
385
  }
386
 
387
- echo $form_message_tpl_start . $wppb_register_success_message . $form_message_tpl_end . $redirect; /* phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped */ /* properly escaped above */
388
  //action hook after registration success
389
  do_action( 'wppb_register_success', $_REQUEST, $this->args['form_name'], $user_id );
390
  return;
384
  $redirect = $this->wppb_log_in_user( $this->args['redirect_url'], $redirect );
385
  }
386
 
387
+ echo $form_message_tpl_start . wp_kses_post( $wppb_register_success_message ) . $form_message_tpl_end . $redirect; /* phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped */ /* properly escaped above */
388
  //action hook after registration success
389
  do_action( 'wppb_register_success', $_REQUEST, $this->args['form_name'], $user_id );
390
  return;
front-end/login.php CHANGED
@@ -267,8 +267,10 @@ function wppb_resend_confirmation_email() {
267
  return;
268
 
269
  include_once(plugin_dir_path(__FILE__) . '../features/email-confirmation/email-confirmation.php');
270
- if ( !class_exists('PB_Mustache_Generate_Template'))
 
271
  include_once(plugin_dir_path(__FILE__) . '../assets/lib/class-mustache-templates/class-mustache-templates.php');
 
272
  global $wpdb;
273
  $sql_result = $wpdb->get_row( $wpdb->prepare("SELECT * FROM " . $wpdb->base_prefix . "signups WHERE user_email = %s", sanitize_email( $_GET['email'] )), ARRAY_A );
274
 
267
  return;
268
 
269
  include_once(plugin_dir_path(__FILE__) . '../features/email-confirmation/email-confirmation.php');
270
+
271
+ if ( !class_exists('PB_Mustache_Generate_Template') && file_exists( plugin_dir_path(__FILE__) . '../assets/lib/class-mustache-templates/class-mustache-templates.php' ) )
272
  include_once(plugin_dir_path(__FILE__) . '../assets/lib/class-mustache-templates/class-mustache-templates.php');
273
+
274
  global $wpdb;
275
  $sql_result = $wpdb->get_row( $wpdb->prepare("SELECT * FROM " . $wpdb->base_prefix . "signups WHERE user_email = %s", sanitize_email( $_GET['email'] )), ARRAY_A );
276
 
index.php CHANGED
@@ -3,7 +3,7 @@
3
  Plugin Name: Profile Builder
4
  Plugin URI: https://www.cozmoslabs.com/wordpress-profile-builder/
5
  Description: Login, registration and edit profile shortcodes for the front-end. Also you can choose what fields should be displayed or add new (custom) ones both in the front-end and in the dashboard.
6
- Version: 3.6.6
7
  Author: Cozmoslabs
8
  Author URI: https://www.cozmoslabs.com/
9
  Text Domain: profile-builder
@@ -70,7 +70,7 @@ function wppb_free_plugin_init() {
70
  *
71
  *
72
  */
73
- define('PROFILE_BUILDER_VERSION', '3.6.6' );
74
  define('WPPB_PLUGIN_DIR', plugin_dir_path(__FILE__));
75
  define('WPPB_PLUGIN_URL', plugin_dir_url(__FILE__));
76
  define('WPPB_PLUGIN_BASENAME', plugin_basename(__FILE__));
3
  Plugin Name: Profile Builder
4
  Plugin URI: https://www.cozmoslabs.com/wordpress-profile-builder/
5
  Description: Login, registration and edit profile shortcodes for the front-end. Also you can choose what fields should be displayed or add new (custom) ones both in the front-end and in the dashboard.
6
+ Version: 3.6.7
7
  Author: Cozmoslabs
8
  Author URI: https://www.cozmoslabs.com/
9
  Text Domain: profile-builder
70
  *
71
  *
72
  */
73
+ define('PROFILE_BUILDER_VERSION', '3.6.7' );
74
  define('WPPB_PLUGIN_DIR', plugin_dir_path(__FILE__));
75
  define('WPPB_PLUGIN_URL', plugin_dir_url(__FILE__));
76
  define('WPPB_PLUGIN_BASENAME', plugin_basename(__FILE__));
readme.txt CHANGED
@@ -4,7 +4,7 @@ Donate link: http://www.cozmoslabs.com/wordpress-profile-builder/
4
  Tags: user registration, user profile, registration, profile, user registration form, user fields, edit profile, user custom fields, front-end login, front-end edit profile, front-end user registration, email confirmation, login form, content restriction, restrict content
5
  Requires at least: 3.1
6
  Tested up to: 5.9
7
- Stable tag: 3.6.6
8
  License: GPLv2 or later
9
  License URI: http://www.gnu.org/licenses/gpl-2.0.html
10
 
@@ -177,6 +177,11 @@ This plugin adds/removes user fields in the front-end. Both default and extra pr
177
  15. Edit or Add New User Role
178
 
179
  == Changelog ==
 
 
 
 
 
180
  = 3.6.6 =
181
  * Feature: login users automatically after a password reset. Can be activated from the Advanced Settings -> Forms tab
182
  * Fix: notice when deleting a labels edit add-on entry
4
  Tags: user registration, user profile, registration, profile, user registration form, user fields, edit profile, user custom fields, front-end login, front-end edit profile, front-end user registration, email confirmation, login form, content restriction, restrict content
5
  Requires at least: 3.1
6
  Tested up to: 5.9
7
+ Stable tag: 3.6.7
8
  License: GPLv2 or later
9
  License URI: http://www.gnu.org/licenses/gpl-2.0.html
10
 
177
  15. Edit or Add New User Role
178
 
179
  == Changelog ==
180
+ = 3.6.7 =
181
+ * Fix: issue with back-end Users with unconfirmed emails page
182
+ * Misc: remove unnecessary code
183
+ * Misc: sanitize outputted register sucesss message
184
+
185
  = 3.6.6 =
186
  * Feature: login users automatically after a password reset. Can be activated from the Advanced Settings -> Forms tab
187
  * Fix: notice when deleting a labels edit add-on entry
translation/profile-builder.pot CHANGED
@@ -377,7 +377,7 @@ msgstr ""
377
  msgid "Edit Profile"
378
  msgstr ""
379
 
380
- #: ../pb-add-on-custom-profile-menus/index.php:311, ../pb-add-on-custom-profile-menus/wppb-custom-profile-menus.php:74, front-end/class-formbuilder.php:464, front-end/login.php:581, assets/misc/elementor/widgets/class-pb-widget-rf.php:32
381
  msgid "Register"
382
  msgstr ""
383
 
@@ -2077,11 +2077,11 @@ msgstr ""
2077
  msgid "Username and Email"
2078
  msgstr ""
2079
 
2080
- #: admin/general-settings.php:302, admin/manage-fields.php:333, front-end/login.php:337, front-end/login.php:351, front-end/login.php:535, add-ons/custom-redirects/custom_redirects_admin.php:60, add-ons/email-customizer/email-customizer.php:28, add-ons/user-listing/userlisting.php:113, add-ons/user-listing/userlisting.php:336, add-ons/user-listing/userlisting.php:878, add-ons/user-listing/userlisting.php:2526, features/admin-approval/class-admin-approval.php:174, features/email-confirmation/class-email-confirmation.php:168, admin/advanced-settings/includes/views/view-fields.php:121
2081
  msgid "Username"
2082
  msgstr ""
2083
 
2084
- #: admin/general-settings.php:303, front-end/login.php:532, front-end/recover.php:118, add-ons/email-customizer/email-customizer.php:29, add-ons/user-listing/userlisting.php:119, add-ons/user-listing/userlisting.php:884, add-ons/user-listing/userlisting.php:2527, features/admin-approval/class-admin-approval.php:177, features/email-confirmation/class-email-confirmation.php:169, admin/advanced-settings/includes/shortcodes/resend-activation.php:9
2085
  msgid "Email"
2086
  msgstr ""
2087
 
@@ -4649,7 +4649,7 @@ msgstr ""
4649
  msgid "Only an administrator can add new users."
4650
  msgstr ""
4651
 
4652
- #: front-end/class-formbuilder.php:302, front-end/login.php:639, assets/lib/wck-api/wordpress-creation-kit.php:787
4653
  msgid "You are not allowed to do this."
4654
  msgstr ""
4655
 
@@ -4718,79 +4718,79 @@ msgstr ""
4718
  msgid "Log In"
4719
  msgstr ""
4720
 
4721
- #: front-end/login.php:280
4722
  msgid "SUCCESS"
4723
  msgstr ""
4724
 
4725
- #: front-end/login.php:280
4726
  msgid "Activation email sent to %s"
4727
  msgstr ""
4728
 
4729
- #: front-end/login.php:316, front-end/login.php:408, front-end/login.php:446, front-end/recover.php:18, front-end/recover.php:324, features/two-factor-authentication/class-two-factor-authentication.php:574, front-end/extra-fields/extra-fields.php:95
4730
  msgid "ERROR"
4731
  msgstr ""
4732
 
4733
- #: front-end/login.php:316
4734
  msgid "You need to confirm your Email Address before logging in! To resend the Confirmation Email %1$sclick here%2$s"
4735
  msgstr ""
4736
 
4737
- #: front-end/login.php:412
4738
  msgid "The password field is empty."
4739
  msgstr ""
4740
 
4741
- #: front-end/login.php:416
4742
  msgid "The password you entered is incorrect."
4743
  msgstr ""
4744
 
4745
- #: front-end/login.php:425
4746
  msgid "The username field is empty"
4747
  msgstr ""
4748
 
4749
- #: front-end/login.php:423
4750
  msgid "The username/email field is empty"
4751
  msgstr ""
4752
 
4753
- #: front-end/login.php:421
4754
  msgid "The email field is empty."
4755
  msgstr ""
4756
 
4757
- #: front-end/login.php:434
4758
  msgid "Invalid username."
4759
  msgstr ""
4760
 
4761
- #: front-end/login.php:432
4762
  msgid "Invalid username or email."
4763
  msgstr ""
4764
 
4765
- #: front-end/login.php:430
4766
  msgid "Invalid email."
4767
  msgstr ""
4768
 
4769
- #: front-end/login.php:440
4770
  msgid "Password Lost and Found."
4771
  msgstr ""
4772
 
4773
- #: front-end/login.php:440, front-end/login.php:587
4774
  msgid "Lost your password?"
4775
  msgstr ""
4776
 
4777
- #: front-end/login.php:446
4778
  msgid "Both fields are empty."
4779
  msgstr ""
4780
 
4781
- #: front-end/login.php:626, front-end/logout.php:38
4782
  msgid "Log out of this account"
4783
  msgstr ""
4784
 
4785
- #: front-end/login.php:626, front-end/logout.php:25
4786
  msgid "Log out &raquo;"
4787
  msgstr ""
4788
 
4789
- #: front-end/login.php:627
4790
  msgid "You are currently logged in as %1$s. %2$s"
4791
  msgstr ""
4792
 
4793
- #: front-end/login.php:539, front-end/recover.php:122
4794
  msgid "Username or Email"
4795
  msgstr ""
4796
 
377
  msgid "Edit Profile"
378
  msgstr ""
379
 
380
+ #: ../pb-add-on-custom-profile-menus/index.php:311, ../pb-add-on-custom-profile-menus/wppb-custom-profile-menus.php:74, front-end/class-formbuilder.php:464, front-end/login.php:583, assets/misc/elementor/widgets/class-pb-widget-rf.php:32
381
  msgid "Register"
382
  msgstr ""
383
 
2077
  msgid "Username and Email"
2078
  msgstr ""
2079
 
2080
+ #: admin/general-settings.php:302, admin/manage-fields.php:333, front-end/login.php:339, front-end/login.php:353, front-end/login.php:537, add-ons/custom-redirects/custom_redirects_admin.php:60, add-ons/email-customizer/email-customizer.php:28, add-ons/user-listing/userlisting.php:113, add-ons/user-listing/userlisting.php:336, add-ons/user-listing/userlisting.php:878, add-ons/user-listing/userlisting.php:2526, features/admin-approval/class-admin-approval.php:174, features/email-confirmation/class-email-confirmation.php:168, admin/advanced-settings/includes/views/view-fields.php:121
2081
  msgid "Username"
2082
  msgstr ""
2083
 
2084
+ #: admin/general-settings.php:303, front-end/login.php:534, front-end/recover.php:118, add-ons/email-customizer/email-customizer.php:29, add-ons/user-listing/userlisting.php:119, add-ons/user-listing/userlisting.php:884, add-ons/user-listing/userlisting.php:2527, features/admin-approval/class-admin-approval.php:177, features/email-confirmation/class-email-confirmation.php:169, admin/advanced-settings/includes/shortcodes/resend-activation.php:9
2085
  msgid "Email"
2086
  msgstr ""
2087
 
4649
  msgid "Only an administrator can add new users."
4650
  msgstr ""
4651
 
4652
+ #: front-end/class-formbuilder.php:302, front-end/login.php:641, assets/lib/wck-api/wordpress-creation-kit.php:787
4653
  msgid "You are not allowed to do this."
4654
  msgstr ""
4655
 
4718
  msgid "Log In"
4719
  msgstr ""
4720
 
4721
+ #: front-end/login.php:282
4722
  msgid "SUCCESS"
4723
  msgstr ""
4724
 
4725
+ #: front-end/login.php:282
4726
  msgid "Activation email sent to %s"
4727
  msgstr ""
4728
 
4729
+ #: front-end/login.php:318, front-end/login.php:410, front-end/login.php:448, front-end/recover.php:18, front-end/recover.php:324, features/two-factor-authentication/class-two-factor-authentication.php:574, front-end/extra-fields/extra-fields.php:95
4730
  msgid "ERROR"
4731
  msgstr ""
4732
 
4733
+ #: front-end/login.php:318
4734
  msgid "You need to confirm your Email Address before logging in! To resend the Confirmation Email %1$sclick here%2$s"
4735
  msgstr ""
4736
 
4737
+ #: front-end/login.php:414
4738
  msgid "The password field is empty."
4739
  msgstr ""
4740
 
4741
+ #: front-end/login.php:418
4742
  msgid "The password you entered is incorrect."
4743
  msgstr ""
4744
 
4745
+ #: front-end/login.php:427
4746
  msgid "The username field is empty"
4747
  msgstr ""
4748
 
4749
+ #: front-end/login.php:425
4750
  msgid "The username/email field is empty"
4751
  msgstr ""
4752
 
4753
+ #: front-end/login.php:423
4754
  msgid "The email field is empty."
4755
  msgstr ""
4756
 
4757
+ #: front-end/login.php:436
4758
  msgid "Invalid username."
4759
  msgstr ""
4760
 
4761
+ #: front-end/login.php:434
4762
  msgid "Invalid username or email."
4763
  msgstr ""
4764
 
4765
+ #: front-end/login.php:432
4766
  msgid "Invalid email."
4767
  msgstr ""
4768
 
4769
+ #: front-end/login.php:442
4770
  msgid "Password Lost and Found."
4771
  msgstr ""
4772
 
4773
+ #: front-end/login.php:442, front-end/login.php:589
4774
  msgid "Lost your password?"
4775
  msgstr ""
4776
 
4777
+ #: front-end/login.php:448
4778
  msgid "Both fields are empty."
4779
  msgstr ""
4780
 
4781
+ #: front-end/login.php:628, front-end/logout.php:38
4782
  msgid "Log out of this account"
4783
  msgstr ""
4784
 
4785
+ #: front-end/login.php:628, front-end/logout.php:25
4786
  msgid "Log out &raquo;"
4787
  msgstr ""
4788
 
4789
+ #: front-end/login.php:629
4790
  msgid "You are currently logged in as %1$s. %2$s"
4791
  msgstr ""
4792
 
4793
+ #: front-end/login.php:541, front-end/recover.php:122
4794
  msgid "Username or Email"
4795
  msgstr ""
4796