User registration & user profile – Profile Builder - Version 3.3.9

Version Description

  • Added further support for Elementor styling
  • Fixed some possible warnings
  • Fixed some possible PHP 8 warnings
  • Fixes for Placeholder Labels not displaying correctly some fields
  • Added filter to modify date format for Last Profile Update and Last Login
  • Fixed minor typos in plugin
  • Restricted comments from private/restricted posts and pages from queries
  • Cached the wppb_get_abs_home function result.
  • Added a setting that controls the automatic scrolling of form pages after submit
Download this release

Release Info

Developer madalin.ungureanu
Plugin Icon 128x128 User registration & user profile – Profile Builder
Version 3.3.9
Comparing to
See all releases

Code changes from version 3.3.8 to 3.3.9

Files changed (32) hide show
  1. admin/add-ons.php +4 -4
  2. admin/advanced-settings/advanced-settings.php +1 -1
  3. admin/advanced-settings/includes/fields/automatically-generate-password.php +1 -1
  4. admin/advanced-settings/includes/forms/save-last-login.php +1 -1
  5. admin/advanced-settings/includes/forms/save-last-profile-update.php +1 -1
  6. admin/advanced-settings/includes/views/view-admin.php +1 -1
  7. admin/advanced-settings/includes/views/view-forms.php +19 -0
  8. admin/manage-fields.php +2 -2
  9. assets/css/placeholder-labels-rtl.css +2 -1
  10. assets/css/placeholder-labels.css +3 -1
  11. assets/css/style-front-end.css +1 -1
  12. assets/lib/wck-api/fields/nested repeater.php +1 -1
  13. assets/lib/wck-api/wordpress-creation-kit.php +1 -1
  14. assets/misc/elementor/class-elementor.php +4 -4
  15. assets/misc/elementor/widgets/class-pb-widget-base.php +301 -0
  16. assets/misc/elementor/widgets/class-pb-widget-epf.php +59 -0
  17. assets/misc/elementor/widgets/class-pb-widget-l.php +238 -0
  18. assets/misc/elementor/widgets/class-pb-widget-rf-epf.php +811 -0
  19. assets/misc/elementor/widgets/class-pb-widget-rf.php +59 -0
  20. assets/misc/elementor/widgets/class-pb-widget-rp.php +134 -0
  21. assets/misc/elementor/widgets/class-widget-edit-profile.php +0 -251
  22. assets/misc/elementor/widgets/class-widget-login.php +0 -131
  23. assets/misc/elementor/widgets/class-widget-recover-password.php +0 -80
  24. assets/misc/elementor/widgets/class-widget-register.php +0 -295
  25. features/content-restriction/content-restriction-filtering.php +16 -0
  26. features/functions.php +16 -7
  27. features/upgrades/upgrades-functions.php +6 -2
  28. front-end/class-formbuilder.php +5 -2
  29. index.php +2 -2
  30. readme.txt +13 -2
  31. translation/profile-builder.catalog.php +19 -8
  32. translation/profile-builder.pot +177 -133
admin/add-ons.php CHANGED
@@ -134,16 +134,16 @@ function wppb_add_ons_content() {
134
  'name' => __( 'bbPress', 'profile-builder' ),
135
  'description' => __( 'This add-on allows you to integrate Profile Builder with the popular forums plugin, bbPress.', 'profile-builder' ),
136
  'icon' => 'pb_addon_small_bbpress.png',
137
- 'doc_url' => '?utm_source=wpbackend&utm_medium=clientsite&utm_content=add-on-page&utm_campaign=PBPro',
138
- 'download_url' => '?utm_source=wpbackend&utm_medium=clientsite&utm_content=add-on-page&utm_campaign=PBPro',
139
  ),
140
  array( 'slug' => 'pb-add-on-campaign-monitor/index.php',
141
  'type' => 'plugin',
142
  'name' => __( 'Campaign Monitor', 'profile-builder' ),
143
  'description' => __( 'Easily associate Campaign Monitor client list fields with Profile Builder fields. Use Profile Builder Campaign Monitor Widget to add more subscribers to your lists.', 'profile-builder' ),
144
  'icon' => 'pb_addon_small_campaignmonitor.png',
145
- 'doc_url' => 'https://www.cozmoslabs.com/docs/profile-builder-2/add-ons/bbpress/?utm_source=wpbackend&utm_medium=clientsite&utm_content=add-on-page&utm_campaign=PBPro',
146
- 'download_url' => 'https://www.cozmoslabs.com/add-ons/bbpress/?utm_source=wpbackend&utm_medium=clientsite&utm_content=add-on-page&utm_campaign=PBPro',
147
  ),
148
  array( 'slug' => 'pb-add-on-field-visibility/index.php',
149
  'type' => 'plugin',
134
  'name' => __( 'bbPress', 'profile-builder' ),
135
  'description' => __( 'This add-on allows you to integrate Profile Builder with the popular forums plugin, bbPress.', 'profile-builder' ),
136
  'icon' => 'pb_addon_small_bbpress.png',
137
+ 'doc_url' => 'https://www.cozmoslabs.com/docs/profile-builder-2/add-ons/bbpress/?utm_source=wpbackend&utm_medium=clientsite&utm_content=add-on-page&utm_campaign=PBPro',
138
+ 'download_url' => 'https://www.cozmoslabs.com/add-ons/bbpress/?utm_source=wpbackend&utm_medium=clientsite&utm_content=add-on-page&utm_campaign=PBPro',
139
  ),
140
  array( 'slug' => 'pb-add-on-campaign-monitor/index.php',
141
  'type' => 'plugin',
142
  'name' => __( 'Campaign Monitor', 'profile-builder' ),
143
  'description' => __( 'Easily associate Campaign Monitor client list fields with Profile Builder fields. Use Profile Builder Campaign Monitor Widget to add more subscribers to your lists.', 'profile-builder' ),
144
  'icon' => 'pb_addon_small_campaignmonitor.png',
145
+ 'doc_url' => 'https://www.cozmoslabs.com/docs/profile-builder-2/add-ons/campaign-monitor/?utm_source=wpbackend&utm_medium=clientsite&utm_content=add-on-page&utm_campaign=PBPro',
146
+ 'download_url' => 'https://www.cozmoslabs.com/add-ons/profile-builder-campaign-monitor/?utm_source=wpbackend&utm_medium=clientsite&utm_content=add-on-page&utm_campaign=PBPro',
147
  ),
148
  array( 'slug' => 'pb-add-on-field-visibility/index.php',
149
  'type' => 'plugin',
admin/advanced-settings/advanced-settings.php CHANGED
@@ -106,7 +106,7 @@ if( !class_exists('WPPB_toolbox') ){
106
  //this is for the migration of Multiple Admin Emails Add-on
107
  $wppb_toolbox_admin_settings = get_option('wppb_toolbox_admin_settings', array() );
108
  //make sure it's an array
109
- if( empty($wppb_toolbox_admin_settings) )
110
  $wppb_toolbox_admin_settings = array();
111
 
112
  if( !isset( $wppb_toolbox_admin_settings['multiple-admin-emails'] ) || !isset( $wppb_toolbox_admin_settings['admin-emails'] ) ){
106
  //this is for the migration of Multiple Admin Emails Add-on
107
  $wppb_toolbox_admin_settings = get_option('wppb_toolbox_admin_settings', array() );
108
  //make sure it's an array
109
+ if( empty($wppb_toolbox_admin_settings) || !is_array($wppb_toolbox_admin_settings) )
110
  $wppb_toolbox_admin_settings = array();
111
 
112
  if( !isset( $wppb_toolbox_admin_settings['multiple-admin-emails'] ) || !isset( $wppb_toolbox_admin_settings['admin-emails'] ) ){
admin/advanced-settings/includes/fields/automatically-generate-password.php CHANGED
@@ -25,7 +25,7 @@ function wppb_toolbox_send_credentials($requestdata, $form){
25
  return '<input id="send_credentials_via_email" type="hidden" name="send_credentials_via_email" value="sending" />';
26
  }
27
 
28
- add_action( 'wppb_build_userdata', 'wppb_toolbox_generate_password', 20, 2 );
29
  function wppb_toolbox_generate_password( $userdata, $global_request ) {
30
  if ( $global_request['action'] == 'register' ) {
31
  $userdata['user_pass'] = wp_generate_password();
25
  return '<input id="send_credentials_via_email" type="hidden" name="send_credentials_via_email" value="sending" />';
26
  }
27
 
28
+ add_filter( 'wppb_build_userdata', 'wppb_toolbox_generate_password', 20, 2 );
29
  function wppb_toolbox_generate_password( $userdata, $global_request ) {
30
  if ( $global_request['action'] == 'register' ) {
31
  $userdata['user_pass'] = wp_generate_password();
admin/advanced-settings/includes/forms/save-last-login.php CHANGED
@@ -5,5 +5,5 @@ function wppb_toolbox_count_user_logins( $user_login, $user ) {
5
  if ( empty($user->ID) ) return;
6
 
7
  $now = new DateTime( 'now', wp_timezone() );
8
- update_user_meta( $user->ID, 'last_login_date', $now->format( 'Y-m-d H:i:s' ) );
9
  }
5
  if ( empty($user->ID) ) return;
6
 
7
  $now = new DateTime( 'now', wp_timezone() );
8
+ update_user_meta( $user->ID, 'last_login_date', apply_filters( 'wppb_convert_date_format', $now->format( 'Y-m-d H:i:s' ) ) );
9
  }
admin/advanced-settings/includes/forms/save-last-profile-update.php CHANGED
@@ -2,5 +2,5 @@
2
 
3
  add_action( 'wppb_edit_profile_success', 'wppb_toolbox_save_last_update_date', 20, 3 );
4
  function wppb_toolbox_save_last_update_date( $http_request, $form_name, $user_id ) {
5
- update_user_meta( $user_id, 'last_profile_update_date', date( 'Y-m-d H:i:s' ) );
6
  }
2
 
3
  add_action( 'wppb_edit_profile_success', 'wppb_toolbox_save_last_update_date', 20, 3 );
4
  function wppb_toolbox_save_last_update_date( $http_request, $form_name, $user_id ) {
5
+ update_user_meta( $user_id, 'last_profile_update_date', apply_filters( 'wppb_convert_date_format', date( 'Y-m-d H:i:s' ) ) );
6
  }
admin/advanced-settings/includes/views/view-admin.php CHANGED
@@ -87,7 +87,7 @@
87
  <input class="wppb-text widefat" type="text" name="wppb_toolbox_admin_settings[admin-emails]" value="<?php echo ( ( isset( $settings['admin-emails'] ) ) ? esc_attr( $settings['admin-emails'] ) : '' ); ?>" />
88
  </li>
89
  <li class="description">
90
- <?php echo sprintf( __( 'Add email addresses, separated by comma, for people you wish to receive notifications from Profile Builder. These addresses will overwrite the default Email Adress from <a href="%s">Settings -> General</a>', 'profile-builder' ), get_site_url() . "/wp-admin/options-general.php" ); ?>
91
  </li>
92
  </ul>
93
 
87
  <input class="wppb-text widefat" type="text" name="wppb_toolbox_admin_settings[admin-emails]" value="<?php echo ( ( isset( $settings['admin-emails'] ) ) ? esc_attr( $settings['admin-emails'] ) : '' ); ?>" />
88
  </li>
89
  <li class="description">
90
+ <?php echo sprintf( __( 'Add email addresses, separated by comma, for people you wish to receive notifications from Profile Builder. These addresses will overwrite the default Email Address from <a href="%s">Settings -> General</a>', 'profile-builder' ), get_site_url() . "/wp-admin/options-general.php" ); ?>
91
  </li>
92
  </ul>
93
 
admin/advanced-settings/includes/views/view-forms.php CHANGED
@@ -332,6 +332,25 @@
332
  </td>
333
  </tr>
334
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
335
  </table>
336
 
337
  <?php submit_button( __( 'Save Changes', 'profile-builder' ) ); ?>
332
  </td>
333
  </tr>
334
 
335
+ <tr>
336
+ <th><?php _e( 'Disable automatic scrolling after submit', 'profile-builder' ); ?></th>
337
+
338
+ <td>
339
+ <label><input type="checkbox" name="wppb_toolbox_forms_settings[disable-automatic-scrolling]"<?php echo ( ( isset( $settings['disable-automatic-scrolling'] ) && ( $settings['disable-automatic-scrolling'] == 'yes' ) ) ? ' checked' : '' );?> value="yes">
340
+ <?php _e( 'Yes', 'profile-builder' ); ?>
341
+ </label>
342
+
343
+ <ul>
344
+ <li class="description">
345
+ <?php _e( 'By default, after each form submission the page will automatically scroll to the form message.', 'profile-builder' ); ?>
346
+ </li>
347
+ <li class="description">
348
+ <?php _e( 'If you check this option, automatic scrolling will be disabled.', 'profile-builder' ); ?>
349
+ </li>
350
+ </ul>
351
+ </td>
352
+ </tr>
353
+
354
  </table>
355
 
356
  <?php submit_button( __( 'Save Changes', 'profile-builder' ) ); ?>
admin/manage-fields.php CHANGED
@@ -191,7 +191,7 @@ function wppb_populate_manage_fields(){
191
  array( 'type' => 'text', 'slug' => 'allowed-upload-extensions', 'title' => __( 'Allowed Upload Extensions', 'profile-builder' ), 'default' => '.*', 'description' => __( 'Specify the extension(s) you want to limit to upload<br/>Example: .ext1,.ext2,.ext3<br/>If not specified, defaults to all WordPress allowed file extensions (.*)', 'profile-builder' ) ),
192
  array( 'type' => 'text', 'slug' => 'avatar-size', 'title' => __( 'Avatar Size', 'profile-builder' ), 'default' => 100, 'description' => __( "Enter a value (between 20 and 200) for the size of the 'Avatar'<br/>If not specified, defaults to 100", 'profile-builder' ) ),
193
  array( 'type' => 'text', 'slug' => 'date-format', 'title' => __( 'Date-format', 'profile-builder' ), 'default' => 'mm/dd/yy', 'description' => __( 'Specify the format of the date when using Datepicker<br/>Valid options: mm/dd/yy, mm/yy/dd, dd/yy/mm, dd/mm/yy, yy/dd/mm, yy/mm/dd, mm-dd-yy, yy-mm-dd, D, dd M yy, D, d M y, DD, dd-M-y, D, d M yy, mm/yy, mm/dd, dd/mm, @<br/>If not specified, defaults to mm/dd/yy', 'profile-builder' ) ),
194
- array( 'type' => 'textarea', 'slug' => 'terms-of-agreement', 'title' => __( 'Terms of Agreement', 'profile-builder' ), 'description' => __( 'Enter a detailed description of the temrs of agreement for the user to read.<br/>Links can be inserted by using standard HTML syntax: &lt;a href="custom_url"&gt;custom_text&lt;/a&gt;', 'profile-builder' ) ),
195
  array( 'type' => 'text', 'slug' => 'options', 'title' => __( 'Options', 'profile-builder' ), 'description' => __( "Enter a comma separated list of values<br/>This can be anything, as it is hidden from the user, but should not contain special characters or apostrophes", 'profile-builder' ) ),
196
  array( 'type' => 'text', 'slug' => 'labels', 'title' => __( 'Labels', 'profile-builder' ), 'description' => __( "Enter a comma separated list of labels<br/>Visible for the user", 'profile-builder' ) ),
197
  array( 'type' => 'select', 'slug' => 'recaptcha-type', 'title' => __( 'reCAPTCHA Type', 'profile-builder' ), 'options' => array('%reCAPTCHA V2%v2', '%Invisible reCAPTCHA%invisible'), 'default' => 'v2', 'description' => __( 'Choose the <a href="https://developers.google.com/recaptcha/docs/versions" target="_blank">type of reCAPTCHA</a> you wish to add to this site.', 'profile-builder' ) ),
@@ -1525,7 +1525,7 @@ function wppb_get_user_map_markers( $user_id, $meta_name ) {
1525
  $i = 0;
1526
 
1527
  foreach( $results as $key => $result ) {
1528
- $pattern = '/^' . $meta_name . '_[0-9]+$/';
1529
  preg_match( $pattern, $result[1], $matches );
1530
  if ( count ($matches) > 0 ) {
1531
  $markers[$i] = $result[0];
191
  array( 'type' => 'text', 'slug' => 'allowed-upload-extensions', 'title' => __( 'Allowed Upload Extensions', 'profile-builder' ), 'default' => '.*', 'description' => __( 'Specify the extension(s) you want to limit to upload<br/>Example: .ext1,.ext2,.ext3<br/>If not specified, defaults to all WordPress allowed file extensions (.*)', 'profile-builder' ) ),
192
  array( 'type' => 'text', 'slug' => 'avatar-size', 'title' => __( 'Avatar Size', 'profile-builder' ), 'default' => 100, 'description' => __( "Enter a value (between 20 and 200) for the size of the 'Avatar'<br/>If not specified, defaults to 100", 'profile-builder' ) ),
193
  array( 'type' => 'text', 'slug' => 'date-format', 'title' => __( 'Date-format', 'profile-builder' ), 'default' => 'mm/dd/yy', 'description' => __( 'Specify the format of the date when using Datepicker<br/>Valid options: mm/dd/yy, mm/yy/dd, dd/yy/mm, dd/mm/yy, yy/dd/mm, yy/mm/dd, mm-dd-yy, yy-mm-dd, D, dd M yy, D, d M y, DD, dd-M-y, D, d M yy, mm/yy, mm/dd, dd/mm, @<br/>If not specified, defaults to mm/dd/yy', 'profile-builder' ) ),
194
+ array( 'type' => 'textarea', 'slug' => 'terms-of-agreement', 'title' => __( 'Terms of Agreement', 'profile-builder' ), 'description' => __( 'Enter a detailed description of the terms of agreement for the user to read.<br/>Links can be inserted by using standard HTML syntax: &lt;a href="custom_url"&gt;custom_text&lt;/a&gt;', 'profile-builder' ) ),
195
  array( 'type' => 'text', 'slug' => 'options', 'title' => __( 'Options', 'profile-builder' ), 'description' => __( "Enter a comma separated list of values<br/>This can be anything, as it is hidden from the user, but should not contain special characters or apostrophes", 'profile-builder' ) ),
196
  array( 'type' => 'text', 'slug' => 'labels', 'title' => __( 'Labels', 'profile-builder' ), 'description' => __( "Enter a comma separated list of labels<br/>Visible for the user", 'profile-builder' ) ),
197
  array( 'type' => 'select', 'slug' => 'recaptcha-type', 'title' => __( 'reCAPTCHA Type', 'profile-builder' ), 'options' => array('%reCAPTCHA V2%v2', '%Invisible reCAPTCHA%invisible'), 'default' => 'v2', 'description' => __( 'Choose the <a href="https://developers.google.com/recaptcha/docs/versions" target="_blank">type of reCAPTCHA</a> you wish to add to this site.', 'profile-builder' ) ),
1525
  $i = 0;
1526
 
1527
  foreach( $results as $key => $result ) {
1528
+ $pattern = '/^' . $meta_name . '_[0-9]+(_[0-9]+)*$/';
1529
  preg_match( $pattern, $result[1], $matches );
1530
  if ( count ($matches) > 0 ) {
1531
  $markers[$i] = $result[0];
assets/css/placeholder-labels-rtl.css CHANGED
@@ -17,7 +17,8 @@
17
  .wppb-form-field.wppb-upload.pbpl-class label,
18
  .wppb-form-field.wppb-select-multiple.pbpl-class label,
19
  .wppb-form-field.wppb-timepicker.pbpl-class label,
20
- .wppb-form-field.wppb-avatar.pbpl-class label {
 
21
  right: 0;
22
  }
23
 
17
  .wppb-form-field.wppb-upload.pbpl-class label,
18
  .wppb-form-field.wppb-select-multiple.pbpl-class label,
19
  .wppb-form-field.wppb-timepicker.pbpl-class label,
20
+ .wppb-form-field.wppb-avatar.pbpl-class label,
21
+ .wppb-form-field.wppb-gdpr-communication-preferences.pbpl-class label {
22
  right: 0;
23
  }
24
 
assets/css/placeholder-labels.css CHANGED
@@ -1,6 +1,7 @@
1
  #wppb-recover-password ul li.wppb-form-field label,
2
  .wppb-user-forms #wppb-loginform .login-username label,
3
  .wppb-user-forms #wppb-loginform .login-password label,
 
4
  .wppb-form-field.pbpl-class label {
5
  text-indent: -99999px;
6
  position: absolute;
@@ -15,7 +16,8 @@
15
  .wppb-form-field.wppb-upload.pbpl-class label,
16
  .wppb-form-field.wppb-select-multiple.pbpl-class label,
17
  .wppb-form-field.wppb-timepicker.pbpl-class label,
18
- .wppb-form-field.wppb-avatar.pbpl-class label {
 
19
  text-indent: 0;
20
  position: relative;
21
  left: 0;
1
  #wppb-recover-password ul li.wppb-form-field label,
2
  .wppb-user-forms #wppb-loginform .login-username label,
3
  .wppb-user-forms #wppb-loginform .login-password label,
4
+ .wppb-user-forms #wppb-loginform .wppb-recaptcha label,
5
  .wppb-form-field.pbpl-class label {
6
  text-indent: -99999px;
7
  position: absolute;
16
  .wppb-form-field.wppb-upload.pbpl-class label,
17
  .wppb-form-field.wppb-select-multiple.pbpl-class label,
18
  .wppb-form-field.wppb-timepicker.pbpl-class label,
19
+ .wppb-form-field.wppb-avatar.pbpl-class label,
20
+ .wppb-form-field.wppb-gdpr-communication-preferences.pbpl-class label{
21
  text-indent: 0;
22
  position: relative;
23
  left: 0;
assets/css/style-front-end.css CHANGED
@@ -24,7 +24,7 @@
24
  /*--------------------------------------------------------------
25
  2.0 Forms
26
  --------------------------------------------------------------*/
27
- .wppb-user-forms input:not([type="button"]):not([type="reset"]):not([type="submit"]):not([type="file"]),
28
  .wppb-user-forms select,
29
  .wppb-user-forms textarea{
30
  font-size: 100%; /* Corrects font size not being inherited in all browsers */
24
  /*--------------------------------------------------------------
25
  2.0 Forms
26
  --------------------------------------------------------------*/
27
+ .wppb-user-forms input:not([type="button"]):not([type="reset"]):not([type="submit"]):not([type="file"]):not([value="agree"]),
28
  .wppb-user-forms select,
29
  .wppb-user-forms textarea{
30
  font-size: 100%; /* Corrects font size not being inherited in all browsers */
assets/lib/wck-api/fields/nested repeater.php CHANGED
@@ -5,5 +5,5 @@
5
  * @param string $context Context where the function is used. Depending on it some actions are preformed.;
6
  * @return string $element input element html string. */
7
 
8
- $element .= sprintf( __( 'You can add the information for the %s after you add a entry' ), $details['title'] );
9
  ?>
5
  * @param string $context Context where the function is used. Depending on it some actions are preformed.;
6
  * @return string $element input element html string. */
7
 
8
+ $element .= sprintf( __( 'You can add the information for the %s after you add an entry' ), $details['title'] );
9
  ?>
assets/lib/wck-api/wordpress-creation-kit.php CHANGED
@@ -662,7 +662,7 @@ class Wordpress_Creation_Kit_PB{
662
  }
663
  }
664
  elseif( $this->args['context'] == 'option' ){
665
- if( $pb_wck_pages_hooknames[$this->args['post_type']] == $hook ){
666
  self::wck_enqueue( 'options' );
667
  }
668
  }
662
  }
663
  }
664
  elseif( $this->args['context'] == 'option' ){
665
+ if( !empty( $pb_wck_pages_hooknames ) && isset( $this->args[ 'post_type' ] ) && isset( $pb_wck_pages_hooknames[ $this->args[ 'post_type' ] ] ) && $pb_wck_pages_hooknames[$this->args['post_type']] == $hook ){
666
  self::wck_enqueue( 'options' );
667
  }
668
  }
assets/misc/elementor/class-elementor.php CHANGED
@@ -47,10 +47,10 @@ class PB_Elementor {
47
  * Include Widgets files
48
  */
49
  private function include_widgets_files() {
50
- require_once( __DIR__ . '/widgets/class-widget-edit-profile.php' );
51
- require_once( __DIR__ . '/widgets/class-widget-login.php' );
52
- require_once( __DIR__ . '/widgets/class-widget-recover-password.php' );
53
- require_once( __DIR__ . '/widgets/class-widget-register.php' );
54
  }
55
 
56
  /**
47
  * Include Widgets files
48
  */
49
  private function include_widgets_files() {
50
+ require_once(__DIR__ . '/widgets/class-pb-widget-epf.php');
51
+ require_once(__DIR__ . '/widgets/class-pb-widget-l.php');
52
+ require_once(__DIR__ . '/widgets/class-pb-widget-rp.php');
53
+ require_once(__DIR__ . '/widgets/class-pb-widget-rf.php');
54
  }
55
 
56
  /**
assets/misc/elementor/widgets/class-pb-widget-base.php ADDED
@@ -0,0 +1,301 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+
3
+ // Exit if accessed directly
4
+ if ( ! defined( 'ABSPATH' ) ) exit;
5
+
6
+ use Elementor\Controls_Manager;
7
+ use Elementor\Group_Control_Border;
8
+ use Elementor\Group_Control_Typography;
9
+ use Elementor\Scheme_Typography;
10
+
11
+ /**
12
+ * Base class for the Profile Builder Elementor widgets
13
+ */
14
+ abstract class PB_Elementor_Widget extends \Elementor\Widget_Base {
15
+
16
+ /**
17
+ * Get widget categories.
18
+ *
19
+ */
20
+ public function get_categories() {
21
+ return array( 'profile-builder' );
22
+ }
23
+
24
+ /**
25
+ * Add styling control group and populate it.
26
+ * @param $section_label
27
+ * @param $condition
28
+ * @param $id_prefix
29
+ * @param $sections
30
+ */
31
+ protected function add_styling_control_group($section_label, $condition, $id_prefix, $sections ){
32
+
33
+ $this->start_controls_section(
34
+ $id_prefix.'_style_section',
35
+ [
36
+ 'label' => __( ($section_label === '' ? 'Unlabelled Field' : $section_label), 'profile-builder' ),
37
+ 'tab' => Controls_Manager::TAB_STYLE,
38
+ 'condition' => $condition,
39
+ ]
40
+ );
41
+
42
+ if ( count($sections) > 1 ) {
43
+ foreach ( $sections as $target => $section ) {
44
+ $this->add_control(
45
+ $id_prefix.'_section_'.$target.'_div1',
46
+ [
47
+ 'type' => \Elementor\Controls_Manager::DIVIDER,
48
+ ]
49
+ );
50
+
51
+ $this->add_control(
52
+ $id_prefix.'_target_'.$target,
53
+ [
54
+ 'label' => __($section['section_name'], 'profile-builder'),
55
+ 'type' => Controls_Manager::HEADING,
56
+ ]
57
+ );
58
+
59
+ $this->add_control(
60
+ $id_prefix.'_section_'.$target.'_div2',
61
+ [
62
+ 'type' => \Elementor\Controls_Manager::DIVIDER,
63
+ ]
64
+ );
65
+
66
+ $this->add_styling_control_element($id_prefix . '_' . $target, $section['selector']);
67
+ }
68
+ } else {
69
+ foreach ( $sections as $target => $section ) {
70
+ $this->add_styling_control_element($id_prefix . '_' . $target, $section['selector']);
71
+ }
72
+ }
73
+
74
+ $this->end_controls_section();
75
+ }
76
+
77
+ /**
78
+ * Populate the control groups.
79
+ * @param $id_prefix
80
+ * @param $selector
81
+ * @param array $condition
82
+ */
83
+ private function add_styling_control_element($id_prefix, $selector, $condition = [] ){
84
+
85
+ $wrapped_selector = '';
86
+ if ( is_array($selector )) {
87
+ end($selector);
88
+ $final_key = key($selector);
89
+ reset($selector);
90
+ foreach ($selector as $key => $individual_selector) {
91
+ $wrapped_selector .= '{{WRAPPER}} ' . $individual_selector;
92
+ if ($key !== $final_key) {
93
+ $wrapped_selector .= ', ';
94
+ }
95
+ }
96
+ } else {
97
+ $wrapped_selector .= '{{WRAPPER}} ' . $selector;
98
+ }
99
+
100
+ $this->add_group_control(
101
+ Group_Control_Typography::get_type(),
102
+ [
103
+ 'name' => $id_prefix.'_typography',
104
+ 'selector' => $wrapped_selector,
105
+ 'condition' => $condition,
106
+ ]
107
+ );
108
+
109
+ $this->add_control(
110
+ $id_prefix.'_background',
111
+ [
112
+ 'label' => __( 'Background', 'profile-builder' ),
113
+ 'type' => Controls_Manager::COLOR,
114
+ 'selectors' => [
115
+ $wrapped_selector => 'background-color: {{VALUE}};',
116
+ ],
117
+ 'condition' => $condition,
118
+ ]
119
+ );
120
+
121
+ $this->add_control(
122
+ $id_prefix.'_text_color',
123
+ [
124
+ 'label' => __( 'Color', 'profile-builder' ),
125
+ 'type' => Controls_Manager::COLOR,
126
+ 'selectors' => [
127
+ $wrapped_selector => 'color: {{VALUE}};',
128
+ ],
129
+ 'separator' => 'after',
130
+ 'condition' => $condition,
131
+ ]
132
+ );
133
+
134
+ $this->add_responsive_control(
135
+ $id_prefix.'_width',
136
+ [
137
+ 'label' => __( 'Width', 'profile-builder' ),
138
+ 'type' => Controls_Manager::SLIDER,
139
+ 'range' => [
140
+ 'px' => [
141
+ 'max' => 1000,
142
+ 'step' => 1,
143
+ ],
144
+ '%' => [
145
+ 'max' => 100,
146
+ 'step' => 1,
147
+ ],
148
+ ],
149
+ 'size_units' => [ 'px', 'em', '%' ],
150
+ 'selectors' => [
151
+ $wrapped_selector => 'width: {{SIZE}}{{UNIT}}',
152
+ ],
153
+ 'condition' => $condition,
154
+ ]
155
+ );
156
+
157
+ $this->add_responsive_control(
158
+ $id_prefix.'_height',
159
+ [
160
+ 'label' => __( 'Height', 'profile-builder' ),
161
+ 'type' => Controls_Manager::SLIDER,
162
+ 'range' => [
163
+ 'px' => [
164
+ 'max' => 1000,
165
+ 'step' => 1,
166
+ ],
167
+ '%' => [
168
+ 'max' => 100,
169
+ 'step' => 1,
170
+ ],
171
+ ],
172
+ 'size_units' => [ 'px', 'em', '%' ],
173
+ 'selectors' => [
174
+ $wrapped_selector => 'height: {{SIZE}}{{UNIT}}',
175
+ ],
176
+ 'separator' => 'after',
177
+ 'condition' => $condition,
178
+
179
+ ]
180
+ );
181
+
182
+ $this->add_responsive_control(
183
+ $id_prefix.'_padding',
184
+ [
185
+ 'label' => __( 'Padding', 'profile-builder' ),
186
+ 'type' => Controls_Manager::DIMENSIONS,
187
+ 'size_units' => [ 'px', '%', 'em' ],
188
+ 'selectors' => [
189
+ $wrapped_selector => 'padding: {{TOP}}{{UNIT}} {{RIGHT}}{{UNIT}} {{BOTTOM}}{{UNIT}} {{LEFT}}{{UNIT}};',
190
+ ],
191
+ 'condition' => $condition,
192
+ ]
193
+ );
194
+
195
+ $this->add_responsive_control(
196
+ $id_prefix.'_margin',
197
+ [
198
+ 'label' => __( 'Margin', 'profile-builder' ),
199
+ 'type' => Controls_Manager::DIMENSIONS,
200
+ 'size_units' => [ 'px', '%', 'em' ],
201
+ 'selectors' => [
202
+ $wrapped_selector => 'margin: {{TOP}}{{UNIT}} {{RIGHT}}{{UNIT}} {{BOTTOM}}{{UNIT}} {{LEFT}}{{UNIT}};',
203
+ ],
204
+ 'separator' => 'after',
205
+ 'condition' => $condition,
206
+ ]
207
+ );
208
+
209
+ $this->add_group_control(
210
+ Group_Control_Border::get_type(),
211
+ [
212
+ 'name' => $id_prefix.'_border',
213
+ 'label' => __( 'Border', 'profile-builder' ),
214
+ 'selector' => $wrapped_selector,
215
+ 'condition' => $condition,
216
+ ]
217
+ );
218
+
219
+ $this->add_responsive_control(
220
+ $id_prefix.'_border_radius',
221
+ [
222
+ 'label' => esc_html__( 'Radius', 'profile-builder' ),
223
+ 'type' => Controls_Manager::DIMENSIONS,
224
+ 'selectors' => [
225
+ $wrapped_selector => 'border-radius: {{TOP}}px {{RIGHT}}px {{BOTTOM}}px {{LEFT}}px;',
226
+ ],
227
+ 'condition' => [$id_prefix.'_border_border!' => ''],
228
+ ]
229
+ );
230
+ }
231
+
232
+ /**
233
+ * Check if Placeholder Labels is active.
234
+ * @return bool
235
+ */
236
+ protected function is_placeholder_labels_active(){
237
+ $toolbox_forms_settings = get_option( 'wppb_toolbox_forms_settings', 'not_found' );
238
+
239
+ if ( $toolbox_forms_settings !== 'not_found' && $toolbox_forms_settings['placeholder-labels'] === 'yes' ){
240
+ return true;
241
+ }
242
+
243
+ return false;
244
+ }
245
+
246
+ /**
247
+ * Render the four widget types.
248
+ * @param $form_type
249
+ * @return mixed|Profile_Builder_Form_Creator|string|void
250
+ */
251
+ protected function render_widget( $form_type ){
252
+
253
+ if (!($form_type === 'rf' || $form_type === 'epf' || $form_type === 'l' || $form_type === 'rp')) {
254
+ return;
255
+ }
256
+
257
+ $settings = $this->get_settings_for_display();
258
+
259
+ switch ( $form_type ){
260
+ case 'rf':
261
+ include_once(WPPB_PLUGIN_DIR . '/front-end/register.php');
262
+ include_once(WPPB_PLUGIN_DIR . '/front-end/class-formbuilder.php');
263
+ $form_name = 'unspecified';
264
+ if (array_key_exists('pb_form_name', $settings)) {
265
+ $form_name = substr($settings['pb_form_name'], 1);
266
+ }
267
+ $atts = [
268
+ 'role' => $settings['pb_role'],
269
+ 'form_name' => $form_name,
270
+ 'redirect_url' => $settings['pb_redirect_url'],
271
+ 'logout_redirect_url' => $settings['pb_logout_redirect_url'],
272
+ 'automatic_login' => $settings['pb_automatic_login'],
273
+ ];
274
+ return wppb_front_end_register( $atts );
275
+ case 'epf':
276
+ include_once(WPPB_PLUGIN_DIR . '/front-end/edit-profile.php');
277
+ include_once(WPPB_PLUGIN_DIR . '/front-end/class-formbuilder.php');
278
+ $form_name = 'unspecified';
279
+ if (array_key_exists('pb_form_name', $settings)) {
280
+ $form_name = substr($settings['pb_form_name'], 1);
281
+ }
282
+ $atts = [
283
+ 'form_name' => $form_name,
284
+ 'redirect_url' => $settings['pb_redirect_url'],
285
+ ];
286
+ return wppb_front_end_profile_info( $atts );
287
+ case 'l':
288
+ include_once( WPPB_PLUGIN_DIR.'/front-end/login.php' );
289
+ $atts = [
290
+ 'redirect_url' => $settings['pb_after_login_redirect_url'],
291
+ 'logout_redirect_url' => $settings['pb_after_logout_redirect_url'],
292
+ 'register_url' => $settings['pb_register_url'],
293
+ 'lostpassword_url' => $settings['pb_lostpassword_url'],
294
+ ];
295
+ return wppb_front_end_login( $atts );
296
+ case 'rp':
297
+ include_once( WPPB_PLUGIN_DIR.'/front-end/recover.php' );
298
+ return wppb_front_end_password_recovery();
299
+ }
300
+ }
301
+ }
assets/misc/elementor/widgets/class-pb-widget-epf.php ADDED
@@ -0,0 +1,59 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+
3
+ // Exit if accessed directly
4
+ if ( ! defined( 'ABSPATH' ) ) exit;
5
+
6
+ require_once "class-pb-widget-rf-epf.php";
7
+
8
+ /**
9
+ * Elementor widget for our wppb-edit-profile shortcode
10
+ */
11
+ class PB_Elementor_Edit_Profile_Widget extends PB_Elementor_Register_Edit_Profile_Widget {
12
+
13
+ public function __construct($data = [], $args = null) {
14
+ parent::__construct($data, $args);
15
+
16
+ $this -> register_pb_scripts_styles();
17
+ }
18
+
19
+ /**
20
+ * Get widget name.
21
+ *
22
+ */
23
+ public function get_name() {
24
+ return 'wppb-edit-profile';
25
+ }
26
+
27
+ /**
28
+ * Get widget title.
29
+ *
30
+ */
31
+ public function get_title() {
32
+ return __( 'Edit Profile', 'profile-builder' );
33
+ }
34
+
35
+ /**
36
+ * Get widget icon.
37
+ *
38
+ */
39
+ public function get_icon() {
40
+ return 'eicon-form-horizontal';
41
+ }
42
+
43
+ /**
44
+ * Register widget controls.
45
+ *
46
+ */
47
+ protected function _register_controls() {
48
+ $this -> register_rf_epf_controls( 'epf' );
49
+ }
50
+
51
+ /**
52
+ * Render widget output in the front-end.
53
+ *
54
+ */
55
+ protected function render() {
56
+ $this->render_widget( 'epf');
57
+ }
58
+
59
+ }
assets/misc/elementor/widgets/class-pb-widget-l.php ADDED
@@ -0,0 +1,238 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+
3
+ // Exit if accessed directly
4
+ if ( ! defined( 'ABSPATH' ) ) exit;
5
+
6
+ require_once "class-pb-widget-base.php";
7
+
8
+ /**
9
+ * Elementor widget for our wppb-login shortcode
10
+ */
11
+ class PB_Elementor_Login_Widget extends PB_Elementor_Widget {
12
+
13
+ /**
14
+ * Get widget name.
15
+ *
16
+ */
17
+ public function get_name() {
18
+ return 'wppb-login';
19
+ }
20
+
21
+ /**
22
+ * Get widget title.
23
+ *
24
+ */
25
+ public function get_title() {
26
+ return __( 'Login', 'profile-builder' );
27
+ }
28
+
29
+ /**
30
+ * Get widget icon.
31
+ *
32
+ */
33
+ public function get_icon() {
34
+ return 'eicon-lock-user';
35
+ }
36
+
37
+ /**
38
+ * Register widget controls.
39
+ *
40
+ */
41
+ protected function _register_controls() {
42
+
43
+ $this->start_controls_section(
44
+ 'pb_login_links',
45
+ array(
46
+ 'label' => __( 'Form Settings', 'profile-builder' ),
47
+ 'tab' => \Elementor\Controls_Manager::TAB_CONTENT,
48
+ )
49
+ );
50
+
51
+ $this->add_control(
52
+ 'pb_register_url',
53
+ array(
54
+ 'label' => __( 'Registration', 'profile-builder' ),
55
+ 'type' => \Elementor\Controls_Manager::TEXT,
56
+ 'placeholder' => __( 'Enter URL', 'profile-builder' ),
57
+ )
58
+ );
59
+
60
+ $this->add_control(
61
+ 'pb_lostpassword_url',
62
+ array(
63
+ 'label' => __( 'Recover Password', 'profile-builder' ),
64
+ 'type' => \Elementor\Controls_Manager::TEXT,
65
+ 'placeholder' => __( 'Enter URL', 'profile-builder' ),
66
+ )
67
+ );
68
+
69
+ $this->end_controls_section();
70
+
71
+ $this->start_controls_section(
72
+ 'pb_login_redirects',
73
+ array(
74
+ 'label' => __( 'Redirects', 'profile-builder' ),
75
+ 'tab' => \Elementor\Controls_Manager::TAB_CONTENT,
76
+ )
77
+ );
78
+
79
+ $this->add_control(
80
+ 'pb_after_login_redirect_url',
81
+ array(
82
+ 'label' => __( 'After Login', 'profile-builder' ),
83
+ 'type' => \Elementor\Controls_Manager::TEXT,
84
+ 'placeholder' => __( 'Enter URL', 'profile-builder' ),
85
+ )
86
+ );
87
+
88
+ $this->add_control(
89
+ 'pb_after_logout_redirect_url',
90
+ array(
91
+ 'label' => __( 'After Logout', 'profile-builder' ),
92
+ 'type' => \Elementor\Controls_Manager::TEXT,
93
+ 'placeholder' => __( 'Enter URL', 'profile-builder' ),
94
+ )
95
+ );
96
+
97
+ $this->end_controls_section();
98
+
99
+ // User Login Style tab
100
+ if( !$this->is_placeholder_labels_active() ) {
101
+ $sections['label'] = [
102
+ 'selector' => '#wppb-login-wrap .login-username label[for=user_login]',
103
+ 'section_name' => 'Label',
104
+ ];
105
+ }
106
+ $sections['input'] = [
107
+ 'selector' => '#wppb-login-wrap .login-username input#user_login',
108
+ 'section_name' => 'Input',
109
+ ];
110
+ $this->add_styling_control_group(
111
+ 'User Login',
112
+ '',
113
+ 'pb_user_login_username',
114
+ $sections
115
+ );
116
+ unset($sections);
117
+
118
+ // Password Style tab
119
+ if( !$this->is_placeholder_labels_active() ) {
120
+ $sections['label'] = [
121
+ 'selector' => '#wppb-login-wrap .login-password label[for=user_pass]',
122
+ 'section_name' => 'Label',
123
+ ];
124
+ }
125
+ $sections['input'] = [
126
+ 'selector' => '#wppb-login-wrap .login-password input#user_pass',
127
+ 'section_name' => 'Input',
128
+ ];
129
+ $this->add_styling_control_group(
130
+ 'Password',
131
+ '',
132
+ 'pb_user_login_password',
133
+ $sections
134
+ );
135
+ unset($sections);
136
+
137
+ // reCAPTCHA Style tab
138
+ if( !$this->is_placeholder_labels_active() ) {
139
+ include_once(WPPB_PLUGIN_DIR . '/front-end/default-fields/recaptcha/recaptcha.php');
140
+ $field = wppb_get_recaptcha_field();
141
+ if (!empty($field) && isset($field['captcha-pb-forms']) && (strpos($field['captcha-pb-forms'], 'pb_recover_password') !== false)) {
142
+ $this->add_styling_control_group(
143
+ 'reCAPTCHA',
144
+ '',
145
+ 'pb_user_login_recaptcha',
146
+ [
147
+ 'label' => [
148
+ 'selector' => '#wppb-login-wrap .wppb-form-field.wppb-recaptcha label[for=recaptcha_response_field]',
149
+ 'section_name' => 'Label',
150
+ ]
151
+ ]
152
+ );
153
+ }
154
+ }
155
+
156
+ // Remember Checkbox Style tab
157
+ $this->add_styling_control_group(
158
+ 'Remember Me Checkbox',
159
+ '',
160
+ 'pb_user_login_remember',
161
+ [
162
+ 'label' => [
163
+ 'selector' => '#wppb-login-wrap .login-remember label',
164
+ 'section_name' => 'Label',
165
+ ],
166
+ 'input' => [
167
+ 'selector' => '#wppb-login-wrap .login-remember input',
168
+ 'section_name' => 'Input',
169
+ ]
170
+ ]
171
+ );
172
+
173
+ // Submit Button Style tab
174
+ $this->add_styling_control_group(
175
+ 'Login Button',
176
+ '',
177
+ 'pb_user_login_button',
178
+ [
179
+ 'input' => [
180
+ 'selector' => '#wppb-login-wrap .login-submit input#wppb-submit',
181
+ 'section_name' => 'Input',
182
+ ]
183
+ ]
184
+ );
185
+
186
+ // Social Connect Style tab
187
+ $social_connect_settings = get_option( 'wppb_social_connect_settings' );
188
+ $social_connect_settings = reset($social_connect_settings);
189
+
190
+ if ( strpos($social_connect_settings['display-on-the-following-forms'], 'pb-login' ) !== false ) {
191
+ $this->add_styling_control_group(
192
+ 'Social Connect',
193
+ '',
194
+ 'pb_user_login_social_connect',
195
+ [
196
+ 'sc_heading' => [
197
+ 'selector' => '.wppb-sc-buttons-container .wppb-sc-heading-before-reg-buttons h3',
198
+ 'section_name' => 'Heading',
199
+ ],
200
+ 'sc_buttons' => [
201
+ 'selector' => '.wppb-sc-buttons-container a.wppb-sc-button',
202
+ 'section_name' => 'Buttons',
203
+ ]
204
+ ]
205
+ );
206
+ }
207
+ }
208
+
209
+ /**
210
+ * Render widget output in the front-end.
211
+ *
212
+ */
213
+ protected function render() {
214
+ $output = $this->render_widget( 'l' );
215
+ echo $output;
216
+
217
+ // check if the form is being displayed in the Elementor editor
218
+ $is_elementor_edit_mode = false;
219
+ if( class_exists ( '\Elementor\Plugin' ) ){
220
+ $is_elementor_edit_mode = \Elementor\Plugin::$instance->editor->is_edit_mode();
221
+ $message= "";
222
+ }
223
+
224
+ if ($is_elementor_edit_mode && !empty($output) && $this->is_placeholder_labels_active()) {
225
+ echo '
226
+ <script id="wppb_elementor_login_pbpl_init">
227
+ jQuery(".login-username input, .login-password input").each( function ( index, elem ) {
228
+ var element_id = jQuery( elem ).attr( "id" );
229
+ if( element_id && ( label = jQuery( elem ).parents( "#wppb-login-wrap" ).find( "label[for=" + element_id + "]" ) ).length === 1 ) {
230
+ jQuery( elem ).attr( "placeholder", jQuery( label ).text() );
231
+ }
232
+ });
233
+ </script>
234
+ ';
235
+ }
236
+ }
237
+
238
+ }
assets/misc/elementor/widgets/class-pb-widget-rf-epf.php ADDED
@@ -0,0 +1,811 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+
3
+ // Exit if accessed directly
4
+ if ( ! defined( 'ABSPATH' ) ) exit;
5
+
6
+ require_once "class-pb-widget-base.php";
7
+
8
+ /**
9
+ * Base class for the Profile Builder Elementor Registration and Edit Profile widgets
10
+ */
11
+ abstract class PB_Elementor_Register_Edit_Profile_Widget extends PB_Elementor_Widget {
12
+
13
+ /**
14
+ * Register scripts and styles needed in the Visual Editor.
15
+ */
16
+ protected function register_pb_scripts_styles() {
17
+ //Select2
18
+ wp_register_script('wppb_sl2_lib_js', WPPB_PLUGIN_URL . 'assets/js/select2/select2.min.js', array('jquery'));
19
+
20
+ wp_register_style('wppb_sl2_lib_css', WPPB_PLUGIN_URL . 'assets/css/select2/select2.min.css');
21
+ wp_register_style( 'wppb_sl2_css', WPPB_PLUGIN_URL.'front-end/extra-fields/select2/select2.css', false, PROFILE_BUILDER_VERSION );
22
+
23
+ //SelectCPT
24
+ wp_register_script( 'wppb_select2_js', WPPB_PLUGIN_URL .'assets/js/select2/select2.min.js', array( 'jquery' ), PROFILE_BUILDER_VERSION );
25
+ wp_register_style( 'wppb_select2_css', WPPB_PLUGIN_URL .'assets/css/select2/select2.min.css', array(), PROFILE_BUILDER_VERSION );
26
+ wp_register_style( 'wppb-select-cpt-style', WPPB_PLUGIN_URL.'front-end/extra-fields/select-cpt/style-front-end.css', array(), PROFILE_BUILDER_VERSION );
27
+
28
+ //Upload
29
+ wp_register_style( 'profile-builder-upload-css', WPPB_PLUGIN_URL.'front-end/extra-fields/upload/upload.css', false, PROFILE_BUILDER_VERSION );
30
+
31
+ //Multi-Step Forms compatibility
32
+ wp_register_style( 'wppb-msf-style-frontend', WP_PLUGIN_URL.'/pb-add-on-multi-step-forms/assets/css/frontend-multi-step-forms.css', array(), PROFILE_BUILDER_VERSION );
33
+ }
34
+
35
+ public function get_script_depends() {
36
+ return [
37
+ 'wppb_sl2_lib_js',
38
+ 'wppb_select2_js',
39
+ ];
40
+ }
41
+
42
+ public function get_style_depends() {
43
+ $styles = [
44
+ 'wppb_sl2_lib_css',
45
+ 'wppb_sl2_css',
46
+ 'profile-builder-upload-css',
47
+ 'wppb_select2_css',
48
+ 'wppb-select-cpt-style',
49
+ ];
50
+
51
+ if ( is_plugin_active( 'pb-add-on-multi-step-forms/index.php' ) ) {
52
+ $styles[] = 'wppb-msf-style-frontend';
53
+ }
54
+
55
+ return $styles;
56
+ }
57
+
58
+ /**
59
+ * Add the controls for the Edit Profile and Registration widgets.
60
+ * @param $form_type
61
+ */
62
+ protected function register_rf_epf_controls( $form_type ) {
63
+ switch ( $form_type ){
64
+ case 'rf':
65
+ $section_id_prefix = 'pb_register';
66
+ $post_type = 'wppb-rf-cpt';
67
+ $fields_post_meta_key = 'wppb_rf_fields';
68
+ break;
69
+ case 'epf':
70
+ $section_id_prefix = 'pb_edit_profile';
71
+ $post_type = 'wppb-epf-cpt';
72
+ $fields_post_meta_key = 'wppb_epf_fields';
73
+ break;
74
+ default:
75
+ return;
76
+ }
77
+
78
+ $this->start_controls_section(
79
+ $section_id_prefix.'_settings_section',
80
+ array(
81
+ 'label' => __( 'Form Settings', 'profile-builder' ),
82
+ 'tab' => \Elementor\Controls_Manager::TAB_CONTENT,
83
+ )
84
+ );
85
+
86
+ $args = array(
87
+ 'post_type' => $post_type,
88
+ 'posts_per_page' => -1
89
+ );
90
+ $edit_form_links = array(
91
+ 'default' => ''
92
+ );
93
+ $form_titles = array(
94
+ '' => __( 'Default', 'profile-builder' )
95
+ );
96
+ $form_fields = array(
97
+ 'default' => get_option( 'wppb_manage_fields' )
98
+ );
99
+ $social_connect_settings = get_option( 'wppb_social_connect_settings' );
100
+ $social_connect_settings = reset($social_connect_settings);
101
+ $social_connect = [];
102
+
103
+ $the_query = new WP_Query( $args );
104
+
105
+ if ( $the_query->have_posts() ) {
106
+ foreach ( $the_query->posts as $post ) {
107
+ $form_titles ['-'.Wordpress_Creation_Kit_PB::wck_generate_slug( $post->post_title )] = $post->post_title ;
108
+ $edit_form_links[ Wordpress_Creation_Kit_PB::wck_generate_slug( $post->post_title )] = get_edit_post_link($post->ID);
109
+ $form_fields [ Wordpress_Creation_Kit_PB::wck_generate_slug( $post->post_title )] = get_post_meta($post->ID, $fields_post_meta_key, true);
110
+ $social_connect [ Wordpress_Creation_Kit_PB::wck_generate_slug( $post->post_title )] = get_post_meta($post->ID, 'wppb_sc_rf_epf_active', true);
111
+ }
112
+ wp_reset_postdata();
113
+ }
114
+
115
+ $this->add_control(
116
+ 'pb_form_name',
117
+ array(
118
+ 'label' => __('Form', 'profile-builder' ),
119
+ 'type' => \Elementor\Controls_Manager::SELECT,
120
+ 'options' => $form_titles,
121
+ 'default' => '',
122
+ )
123
+ );
124
+
125
+ if ( $form_type === 'rf' ) {
126
+ if (!function_exists('get_editable_roles')) {
127
+ require_once ABSPATH . 'wp-admin/includes/user.php';
128
+ }
129
+ $user_roles = get_editable_roles();
130
+ foreach ($user_roles as $key => $role) {
131
+ $user_roles[$key] = $role['name'];
132
+ }
133
+
134
+ $this->add_control(
135
+ 'pb_role',
136
+ array(
137
+ 'label' => __('Assigned Role', 'profile-builder'),
138
+ 'type' => \Elementor\Controls_Manager::SELECT,
139
+ 'options' => $user_roles,
140
+ 'default' => get_option('default_role'),
141
+ 'condition' => [
142
+ 'pb_form_name' => '',
143
+ ],
144
+ )
145
+ );
146
+
147
+ $this->add_control(
148
+ 'pb_automatic_login',
149
+ array(
150
+ 'label' => __('Automatic Login', 'profile-builder'),
151
+ 'type' => \Elementor\Controls_Manager::SWITCHER,
152
+ 'label_on' => __('Yes', 'your-plugin'),
153
+ 'label_off' => __('No', 'your-plugin'),
154
+ 'return_value' => 'yes',
155
+ 'default' => '',
156
+ 'condition' => [
157
+ 'pb_form_name' => '',
158
+ ],
159
+ )
160
+ );
161
+ }
162
+
163
+ foreach ( $edit_form_links as $form_slug => $edit_form_link ){
164
+ foreach ($form_fields[$form_slug] as $key_1 => $form_field) {
165
+ if ($form_slug === 'default') {
166
+ $form_fields['default'][$key_1]['control_group_conditions']['pb_form_name'][] = '';
167
+ continue;
168
+ }
169
+ foreach ($form_fields['default'] as $key_2 => $form_field_default) {
170
+ if ($form_field_default['id'] === $form_field['id']) {
171
+ $form_fields['default'][$key_2]['control_group_conditions']['pb_form_name'][] = '-'.$form_slug;
172
+ }
173
+ }
174
+ }
175
+ if( $form_slug === 'default' ){
176
+ continue;
177
+ }
178
+
179
+ // Edit form links
180
+ $this->add_control(
181
+ 'pb_form_'.$form_slug.'_edit_link' ,
182
+ array(
183
+ 'type' => \Elementor\Controls_Manager::RAW_HTML,
184
+ 'raw' => __( 'Edit the Settings for this form <a href="'.esc_url( $edit_form_link ).'" target="_blank">here</a>' , 'profile-builder' ),
185
+ 'condition'=> [
186
+ 'pb_form_name' => [ '-'.$form_slug ],
187
+ ],
188
+ )
189
+ );
190
+ }
191
+
192
+ $this->end_controls_section();
193
+
194
+ $params = [
195
+ 'label' => __( 'Redirects', 'profile-builder' ),
196
+ 'tab' => \Elementor\Controls_Manager::TAB_CONTENT,
197
+ ];
198
+ if ( $form_type === 'epf' ){
199
+ $params['condition'] = [ 'pb_form_name' => '' ];
200
+ }
201
+
202
+ $this->start_controls_section( $section_id_prefix.'_redirects_section', $params );
203
+
204
+ unset($params);
205
+ $params = [
206
+ 'type' => \Elementor\Controls_Manager::TEXT,
207
+ 'placeholder' => __( 'Enter URL', 'profile-builder' ),
208
+ 'condition' => [
209
+ 'pb_form_name'=>'',
210
+ ],
211
+ ];
212
+ if ( $form_type === 'rf' ){
213
+ $params['label'] = __( 'Redirect after Registration', 'profile-builder' );
214
+ } else {
215
+ $params['label'] = __( 'Redirect after Edit Profile', 'profile-builder' );
216
+ }
217
+
218
+ $this->add_control( 'pb_redirect_url', $params );
219
+
220
+ if ( $form_type === 'rf' ) {
221
+ $this->add_control(
222
+ 'pb_logout_redirect_url',
223
+ array(
224
+ 'label' => __('Redirect after Logout', 'profile-builder'),
225
+ 'type' => \Elementor\Controls_Manager::TEXT,
226
+ 'placeholder' => __('Enter URL', 'profile-builder'),
227
+ )
228
+ );
229
+ }
230
+
231
+ $this->end_controls_section();
232
+
233
+ // Style controls for the form fields
234
+ $this->add_fields_styling( $form_fields['default'], $form_type );
235
+
236
+ // Style controls for the 'Send these credentials via email' checkbox
237
+ if ( $form_type === 'rf' ) {
238
+ $this->add_styling_control_group(
239
+ 'Send Credentials Checkbox',
240
+ '',
241
+ 'pb_register_' . $form_slug . '_wppb_send_credentials',
242
+ [
243
+ 'checkbox' => [
244
+ 'selector' => '.wppb-register-user .wppb-send-credentials-checkbox #send_credentials_via_email',
245
+ 'section_name' => 'Checkbox',
246
+ ],
247
+ 'label' => [
248
+ 'selector' => '.wppb-register-user .wppb-send-credentials-checkbox label[for=send_credentials_via_email]',
249
+ 'section_name' => 'Label',
250
+ ]
251
+ ]
252
+ );
253
+ }
254
+
255
+ // Style controls for the 'Register'/'Update' button
256
+ if ( $form_type === 'rf' ) {
257
+ $this->add_styling_control_group(
258
+ 'Register Button',
259
+ '',
260
+ 'pb_register_' . $form_slug . '_register_button',
261
+ [
262
+ 'register_button' => [
263
+ 'selector' => '.wppb-register-user .submit.button',
264
+ 'section_name' => 'Register Button',
265
+ ]
266
+ ]
267
+ );
268
+ } else {
269
+ $this->add_styling_control_group(
270
+ 'Update Button',
271
+ '',
272
+ 'pb_edit_profile_'.$form_slug.'_update_button',
273
+ [
274
+ 'update_button' => [
275
+ 'selector' => '.wppb-edit-user .submit.button',
276
+ 'section_name' => 'Update Button',
277
+ ]
278
+ ]
279
+ );
280
+ }
281
+
282
+ // Style for the Social Connect section
283
+ if ( strpos($social_connect_settings['display-on-the-following-forms'],
284
+ ( $form_type === 'rf' ? 'pb-register' : 'pb-edit-profile' )
285
+ ) ) {
286
+ $conditions = [];
287
+
288
+ foreach ( $edit_form_links as $form_slug => $edit_form_link ) {
289
+ if ( $form_slug === 'default' ) {
290
+ $conditions['pb_form_name'][] = '';
291
+ } elseif ( $social_connect[$form_slug] === 'yes') {
292
+ $conditions['pb_form_name'][] = '-' . $form_slug;
293
+ }
294
+ }
295
+
296
+ $this->add_styling_control_group(
297
+ 'Social Connect Section',
298
+ $conditions,
299
+ $section_id_prefix . '_' . $form_slug . '_social_connect',
300
+ [
301
+ 'sc_heading' => [
302
+ 'selector' => '.wppb-sc-heading-before-reg-buttons h3',
303
+ 'section_name' => 'Heading',
304
+ ],
305
+ 'sc_buttons' => [
306
+ 'selector' => 'a.wppb-sc-button',
307
+ 'section_name' => 'Buttons',
308
+ ]
309
+ ]
310
+ );
311
+ }
312
+ }
313
+
314
+ /**
315
+ * Deal with special cases. Add the targets for each field. Add the styling control groups.
316
+ * @param $form_fields
317
+ * @param $form_type
318
+ */
319
+ protected function add_fields_styling($form_fields, $form_type ){
320
+ switch ( $form_type ){
321
+ case 'rf':
322
+ $section_id_prefix = 'pb_register';
323
+ $form_class = '.wppb-register-user';
324
+ break;
325
+ case 'epf':
326
+ $section_id_prefix = 'pb_edit_profile';
327
+ $form_class = '.wppb-edit-user';
328
+ break;
329
+ default:
330
+ return;
331
+ }
332
+
333
+ foreach ( $form_fields as $form_field ) {
334
+ $targets = [];
335
+ if ($form_field['field-title'] !== '') {
336
+ $targets['label'] = '';
337
+ }
338
+ if ($form_field['description'] !== '') {
339
+ $targets['description'] = '';
340
+ }
341
+ switch ($form_field['field']) {
342
+ case 'Default - Name (Heading)':
343
+ $field_meta = 'default_name_heading';
344
+ $targets = $this->replace_label_with_heading( $targets );
345
+ break;
346
+ case 'Default - Contact Info (Heading)':
347
+ $field_meta = 'default_contact_info_heading';
348
+ $targets = $this->replace_label_with_heading( $targets );
349
+ break;
350
+ case 'Default - About Yourself (Heading)':
351
+ $field_meta = 'default_about_yourself_heading';
352
+ $targets = $this->replace_label_with_heading( $targets );
353
+ break;
354
+ case 'Default - Username':
355
+ $field_meta = 'default_username';
356
+ $targets = $this->handle_placeholder_labels_active( $targets );
357
+ $targets['input'] = '';
358
+ break;
359
+ case 'Default - E-mail':
360
+ $field_meta = 'default_email';
361
+ $targets = $this->handle_placeholder_labels_active( $targets );
362
+ $targets['input'] = '';
363
+ break;
364
+ case 'Default - Password':
365
+ $field_meta = 'default_password';
366
+ $targets = $this->handle_placeholder_labels_active( $targets );
367
+ $targets['input'] = '';
368
+ break;
369
+ case 'Default - Repeat Password':
370
+ $field_meta = 'default_password_repeat';
371
+ $targets = $this->handle_placeholder_labels_active( $targets );
372
+ $targets['input'] = '';
373
+ break;
374
+ case 'Default - Display name publicly as':
375
+ $field_meta = 'default_field_display-name';
376
+ if ( $form_type === 'rf' ){
377
+ // this field is only shown on the Edit Profile form
378
+ unset($targets);
379
+ } else {
380
+ $targets['default_field_display'] = '';
381
+ }
382
+ break;
383
+ case 'Default - Website':
384
+ $field_meta = 'default_website';
385
+ $targets = $this->handle_placeholder_labels_active( $targets );
386
+ $targets['input'] = '';
387
+ break;
388
+ case 'Heading':
389
+ $field_meta = 'heading';
390
+ $targets = $this->replace_label_with_heading( $targets );
391
+ break;
392
+ case 'HTML':
393
+ $field_meta = 'html';
394
+ if ($form_field['html-content'] !== '') {
395
+ $targets['html'] = '';
396
+ }
397
+ break;
398
+ case 'reCAPTCHA':
399
+ $field_meta = 'recaptcha';
400
+ $targets = $this->handle_placeholder_labels_active( $targets );
401
+ if ( $form_type === 'rf' ){
402
+ // this field is only shown on the Registration form
403
+ unset($targets);
404
+ }
405
+ break;
406
+ case 'Select (User Role)':
407
+ $field_meta = 'select_user_role';
408
+ if ( $form_type === 'rf' ){
409
+ $targets['select_user_role'] = '';
410
+ } else {
411
+ $targets['select_user_role_notice'] = '';
412
+ }
413
+ break;
414
+ case 'GDPR Delete Button':
415
+ $field_meta = 'gdpr_delete';
416
+ if ( $form_type === 'rf' ){
417
+ // this field is only shown on the Edit Profile form
418
+ unset($targets);
419
+ } else {
420
+ $targets['gdpr_delete_button'] = '';
421
+ }
422
+ break;
423
+ case 'Email Confirmation':
424
+ $field_meta = 'wppb_email_confirmation';
425
+ $targets = $this->handle_placeholder_labels_active( $targets );
426
+ $targets['input'] = '';
427
+ break;
428
+ case 'Select2':
429
+ $field_meta = $form_field['meta-name'];
430
+ $targets['select2'] = '';
431
+ break;
432
+ case 'Select (CPT)':
433
+ $field_meta = $form_field['meta-name'];
434
+ $targets['select_cpt'] = '';
435
+ break;
436
+ case 'Timepicker':
437
+ $field_meta = $form_field['meta-name'];
438
+ $targets['timepicker_hours'] = '';
439
+ $targets['timepicker_minutes'] = '';
440
+ $targets['timepicker_separator'] = '';
441
+ break;
442
+ case 'Checkbox':
443
+ $field_meta = $form_field['meta-name'];
444
+ $targets['checkbox'] = '';
445
+ $targets['checkbox_labels'] = '';
446
+ break;
447
+ case 'Radio':
448
+ $field_meta = $form_field['meta-name'];
449
+ $targets['radio'] = '';
450
+ $targets['radio_labels'] = '';
451
+ break;
452
+ case 'Upload':
453
+ $field_meta = $form_field['meta-name'];
454
+ $targets['upload'] = '';
455
+ break;
456
+ case 'Avatar':
457
+ $field_meta = $form_field['meta-name'];
458
+ $targets['avatar'] = '';
459
+ break;
460
+ case 'Checkbox (Terms and Conditions)':
461
+ $field_meta = $form_field['meta-name'];
462
+ if ( $form_type === 'rf' ){
463
+ $targets['input'] = '';
464
+ } else {
465
+ // this field is only shown on the Registration form
466
+ unset($targets);
467
+ }
468
+ break;
469
+ case 'Subscription Plans':
470
+ $field_meta = 'pms_subscription_plans';
471
+ if ( $form_type === 'rf' ){
472
+ $targets['heading'] = '';
473
+ $targets['label'] = '';
474
+ } else {
475
+ // this field can only be styled on the Registration form
476
+ unset($targets);
477
+ }
478
+ break;
479
+ case 'Repeater':
480
+ $field_meta = $form_field['meta-name'];
481
+ $repeater_fields = get_option( $form_field['meta-name'], 'not_set' );
482
+ if ( $repeater_fields !== 'not_set' ){
483
+ foreach ( $repeater_fields as $repeater_key => $repeater_field){
484
+ $repeater_fields[$repeater_key]['control_group_conditions'] = $form_field['control_group_conditions'];
485
+ }
486
+ $this->add_fields_styling( $repeater_fields, $form_type );
487
+ }
488
+ unset($targets);
489
+ break;
490
+ case 'WooCommerce Customer Billing Address':
491
+ $field_meta = $form_field['meta-name'];
492
+ $targets = $this->replace_label_with_heading( $targets );
493
+ $targets['woo_billing_label'] = ['billing_country','billing_first_name','billing_last_name','billing_company','billing_address_1','billing_address_2','billing_city','billing_state','billing_postcode','billing_email','billing_phone'];
494
+ $targets['woo_billing_select'] = ['billing_country',];
495
+ $targets['woo_billing_input'] = ['billing_first_name','billing_last_name','billing_company','billing_address_1','billing_address_2','billing_city','billing_state','billing_postcode','billing_email','billing_phone'];
496
+ if ( $form_type === 'rf' ){
497
+ $targets['woo_billing_checkbox'] = ['woo_different_shipping_address'];
498
+ $targets['woo_billing_checkbox_label'] = ['woo_different_shipping_address'];
499
+ }
500
+ break;
501
+ case 'WooCommerce Customer Shipping Address':
502
+ $field_meta = $form_field['meta-name'];
503
+ $targets = $this->replace_label_with_heading( $targets );
504
+ $targets['woo_shipping_label'] = ['shipping_country','shipping_first_name','shipping_last_name','shipping_company','shipping_address_1','shipping_address_2','shipping_city','shipping_state','shipping_postcode'];
505
+ $targets['woo_shipping_select'] = ['shipping_country',];
506
+ $targets['woo_shipping_input'] = ['shipping_first_name','shipping_last_name','shipping_company','shipping_address_1','shipping_address_2','shipping_city','shipping_state','shipping_postcode',];
507
+ break;
508
+ case 'WYSIWYG':
509
+ $field_meta = $form_field['meta-name'];
510
+ $targets['wysiwyg'] = '';
511
+ break;
512
+ case 'Default - First Name':
513
+ case 'Default - Last Name':
514
+ case 'Default - Nickname':
515
+ case 'Default - Biographical Info':
516
+ case 'Input':
517
+ case 'Textarea':
518
+ case 'Phone':
519
+ case 'Colorpicker':
520
+ case 'Datepicker':
521
+ case 'Number':
522
+ case 'Validation':
523
+ case 'Email':
524
+ $field_meta = $form_field['meta-name'];
525
+ $targets = $this->handle_placeholder_labels_active( $targets );
526
+ $targets['input'] = '';
527
+ break;
528
+ default:
529
+ $field_meta = $form_field['meta-name'];
530
+ $targets['input'] = '';
531
+ }
532
+
533
+ if (!empty($targets) && is_array($targets)) {
534
+ $sections = [];
535
+ foreach ($targets as $target => $ids) {
536
+ switch ($target) {
537
+ case 'label':
538
+ $sections[$target] = [
539
+ 'selector' => $form_class . ' #wppb-form-element-' . $form_field['id'] . ' label',
540
+ 'section_name' => 'Label',
541
+ ];
542
+ break;
543
+ case 'input':
544
+ $sections[$target] = [
545
+ 'selector' => $form_class . ' #wppb-form-element-' . $form_field['id'] . ' #' . $field_meta,
546
+ 'section_name' => 'Input',
547
+ ];
548
+ break;
549
+ case 'description':
550
+ $sections[$target] = [
551
+ 'selector' => $form_class . ' #wppb-form-element-' . $form_field['id'] . ' .wppb-description-delimiter',
552
+ 'section_name' => 'Description',
553
+ ];
554
+ break;
555
+ case 'heading':
556
+ $sections[$target] = [
557
+ 'selector' => $form_class . ' #wppb-form-element-' . $form_field['id'] . ' h4',
558
+ 'section_name' => 'Heading',
559
+ ];
560
+ break;
561
+ case 'html':
562
+ $sections[$target] = [
563
+ 'selector' => $form_class . ' #wppb-form-element-' . $form_field['id'] . ' .custom_field_html',
564
+ 'section_name' => 'HTML',
565
+ ];
566
+ break;
567
+ case 'select_user_role':
568
+ $sections[$target] = [
569
+ 'selector' => $form_class . ' #wppb-form-element-' . $form_field['id'] . ' .custom_field_user_role',
570
+ 'section_name' => 'Select User Role',
571
+ ];
572
+ break;
573
+ case 'select_user_role_notice':
574
+ $sections[$target] = [
575
+ 'selector' => $form_class . ' #wppb-form-element-' . $form_field['id'] . ' p',
576
+ 'section_name' => 'Select User Role Notice',
577
+ ];
578
+ break;
579
+ case 'select2':
580
+ $sections[$target] = [
581
+ 'selector' => $form_class . ' #wppb-form-element-' . $form_field['id'] . ' .select2.select2-container',
582
+ 'section_name' => 'Select2',
583
+ ];
584
+ break;
585
+ case 'select_cpt':
586
+ $sections[$target] = [
587
+ 'selector' => $form_class . ' #wppb-form-element-' . $form_field['id'] . ' .select2.select2-container',
588
+ 'section_name' => 'Select (CPT)',
589
+ ];
590
+ break;
591
+ case 'timepicker_hours':
592
+ $sections[$target] = [
593
+ 'selector' => $form_class . ' #wppb-form-element-' . $form_field['id'] . ' .custom_field_timepicker_hours',
594
+ 'section_name' => 'Timepicker Hours',
595
+ ];
596
+ break;
597
+ case 'timepicker_minutes':
598
+ $sections[$target] = [
599
+ 'selector' => $form_class . ' #wppb-form-element-' . $form_field['id'] . ' .custom_field_timepicker_minutes',
600
+ 'section_name' => 'Timepicker Minutes',
601
+ ];
602
+ break;
603
+ case 'timepicker_separator':
604
+ $sections[$target] = [
605
+ 'selector' => $form_class . ' #wppb-form-element-' . $form_field['id'] . ' .wppb-timepicker-separator',
606
+ 'section_name' => 'Timepicker Separator',
607
+ ];
608
+ break;
609
+ case 'checkbox':
610
+ $sections[$target] = [
611
+ 'selector' => $form_class . ' #wppb-form-element-' . $form_field['id'] . ' .custom_field_checkbox',
612
+ 'section_name' => 'Checkbox',
613
+ ];
614
+ break;
615
+ case 'checkbox_labels':
616
+ $sections[$target] = [
617
+ 'selector' => $form_class . ' #wppb-form-element-' . $form_field['id'] . ' .wppb-rc-value',
618
+ 'section_name' => 'Checkbox Labels',
619
+ ];
620
+ break;
621
+ case 'radio':
622
+ $sections[$target] = [
623
+ 'selector' => $form_class . ' #wppb-form-element-' . $form_field['id'] . ' .custom_field_radio',
624
+ 'section_name' => 'Radio',
625
+ ];
626
+ break;
627
+ case 'radio_labels':
628
+ $sections[$target] = [
629
+ 'selector' => $form_class . ' #wppb-form-element-' . $form_field['id'] . ' .wppb-rc-value',
630
+ 'section_name' => 'Radio Labels',
631
+ ];
632
+ break;
633
+ case 'upload':
634
+ $sections[$target] = [
635
+ 'selector' => $form_class . ' #wppb-form-element-' . $form_field['id'] . ' .wppb_upload_button',
636
+ 'section_name' => 'Upload Button',
637
+ ];
638
+ break;
639
+ case 'avatar':
640
+ $sections[$target] = [
641
+ 'selector' => $form_class . ' #wppb-form-element-' . $form_field['id'] . ' .wppb_upload_button',
642
+ 'section_name' => 'Avatar Button',
643
+ ];
644
+ break;
645
+ case 'gdpr_delete_button':
646
+ $sections[$target] = [
647
+ 'selector' => $form_class . ' #wppb-form-element-' . $form_field['id'] . ' .wppb-delete-account',
648
+ 'section_name' => 'GDPR Delete Button',
649
+ ];
650
+ break;
651
+ case 'default_field_display':
652
+ $sections[$target] = [
653
+ 'selector' => $form_class . ' #wppb-form-element-' . $form_field['id'] . ' .' . $field_meta,
654
+ 'section_name' => 'Select Name',
655
+ ];
656
+ break;
657
+ case 'wysiwyg':
658
+ $sections[$target] = [
659
+ 'selector' => $form_class . ' #wppb-form-element-' . $form_field['id'] . ' div#wp-' . $field_meta . '-wrap',
660
+ 'section_name' => 'Input',
661
+ ];
662
+ break;
663
+ case 'woo_billing_label' :
664
+ case 'woo_shipping_label' :
665
+ $sections[$target] = [
666
+ 'selector' => $this->add_ids_to_selector( $form_class . ' #wppb-form-element-' . $form_field['id'] . ' label[for=', $ids, ']' ),
667
+ 'section_name' => 'Labels',
668
+ ];
669
+ break;
670
+ case 'woo_billing_select' :
671
+ case 'woo_shipping_select' :
672
+ $sections[$target] = [
673
+ 'selector' => $this->add_ids_to_selector( $form_class . ' #wppb-form-element-' . $form_field['id'] . ' select#', $ids ),
674
+ 'section_name' => 'Select',
675
+ ];
676
+ break;
677
+ case 'woo_billing_input' :
678
+ case 'woo_shipping_input' :
679
+ $sections[$target] = [
680
+ 'selector' => $this->add_ids_to_selector( $form_class . ' #wppb-form-element-' . $form_field['id'] . ' input#', $ids ),
681
+ 'section_name' => 'Inputs',
682
+ ];
683
+ break;
684
+ case 'woo_billing_checkbox' :
685
+ $sections[$target] = [
686
+ 'selector' => $this->add_ids_to_selector( $form_class . ' #wppb-form-element-' . $form_field['id'] . ' .wppb-shipping-different-address input#', $ids ),
687
+ 'section_name' => 'Checkbox',
688
+ ];
689
+ break;
690
+ case 'woo_billing_checkbox_label' :
691
+ $sections[$target] = [
692
+ 'selector' => $this->add_ids_to_selector( $form_class . ' #wppb-form-element-' . $form_field['id'] . ' .wppb-shipping-different-address label[for=', $ids, ']' ),
693
+ 'section_name' => 'Checkbox Label',
694
+ ];
695
+ break;
696
+ default:
697
+ return;
698
+ }
699
+ }
700
+
701
+ $this->add_styling_control_group(
702
+ $form_field['field-title'],
703
+ $form_field['control_group_conditions'],
704
+ $section_id_prefix . '_' . $field_meta . '_' . $form_field['id'],
705
+ $sections
706
+ );
707
+ }
708
+ }
709
+ }
710
+
711
+ /**
712
+ * Add a selector for each id.
713
+ * @param $ids
714
+ * @param $prefix
715
+ * @param string $suffix
716
+ * @return array
717
+ */
718
+ protected function add_ids_to_selector( $prefix, $ids, $suffix = '' ){
719
+ if ( is_array($ids) ) {
720
+ $selectors = [];
721
+ foreach ($ids as $key => $id) {
722
+ $selectors[] = $prefix . $id . $suffix;
723
+ }
724
+ return $selectors;
725
+ }
726
+ return $prefix . $ids . $suffix;
727
+ }
728
+
729
+ /**
730
+ * Replace label with heading.
731
+ * @param $targets
732
+ * @return array
733
+ */
734
+ protected function replace_label_with_heading( $targets ){
735
+ if (array_key_exists('label', $targets)) {
736
+ $targets['heading'] = $targets['label'];
737
+ unset($targets['label']);
738
+ }
739
+ return $targets;
740
+ }
741
+
742
+ /**
743
+ * Remove control group targeting the field label if Placeholder Labels is active.
744
+ * @param $targets
745
+ * @return array
746
+ */
747
+ protected function handle_placeholder_labels_active( $targets ){
748
+ if( $this->is_placeholder_labels_active() && array_key_exists('label', $targets)) {
749
+ unset($targets['label']);
750
+ }
751
+ return $targets;
752
+ }
753
+
754
+ /**
755
+ * Render the two widget types.
756
+ * @param $form_type
757
+ * @return mixed|Profile_Builder_Form_Creator|string|void
758
+ */
759
+ protected function render_widget($form_type ) {
760
+
761
+ $output = parent::render_widget( $form_type );
762
+ echo $output;
763
+
764
+ // check if the form is being displayed in the Elementor editor
765
+ $is_elementor_edit_mode = false;
766
+ if( class_exists ( '\Elementor\Plugin' ) ){
767
+ $is_elementor_edit_mode = \Elementor\Plugin::$instance->editor->is_edit_mode();
768
+ $message= "";
769
+ }
770
+
771
+ if ( $is_elementor_edit_mode && $output->args !== null ) {
772
+
773
+ //add the scripts for various fields
774
+ foreach ( $output->args['form_fields'] as $form_field ){
775
+ switch ( $form_field['field'] ){
776
+ case 'Select2':
777
+ echo '<script src="'.WPPB_PLUGIN_URL.'front-end/extra-fields/select2/select2.js?ver='.PROFILE_BUILDER_VERSION.'" id="wppb_sl2_js"></script>';
778
+ break;
779
+ case 'WYSIWYG':
780
+ echo '<script>jQuery(document.body).off( "click.add-media-button", ".insert-media" );</script>';
781
+ break;
782
+ case 'Select (CPT)':
783
+ echo '<script src="'.WPPB_PLUGIN_URL.'front-end/extra-fields/select-cpt/select-cpt.js?ver='.PROFILE_BUILDER_VERSION.'" id="wppb-select-cpt-script"></script>';
784
+ break;
785
+ case 'Phone':
786
+ echo '<script src="'.WPPB_PLUGIN_URL.'front-end/extra-fields/phone/jquery.inputmask.bundle.min.js?ver='.PROFILE_BUILDER_VERSION.'" id="wppb-jquery-inputmask"></script>';
787
+ echo '<script src="'.WPPB_PLUGIN_URL.'front-end/extra-fields/phone/script-phone.js?ver='.PROFILE_BUILDER_VERSION.'" id="wppb-phone-script"></script>';
788
+ break;
789
+ default:
790
+ break;
791
+ }
792
+ }
793
+
794
+ //Multi-Step Forms compatibility
795
+ if ( is_plugin_active( 'pb-add-on-multi-step-forms/index.php' ) ) {
796
+ $ajaxUrl = admin_url( 'admin-ajax.php' );
797
+ $ajaxNonce = wp_create_nonce( 'wppb_msf_frontend_nonce' );
798
+ echo '
799
+ <script id="wppb-msf-script-frontend-extra">
800
+ var wppb_msf_data_frontend = {"ajaxUrl":"'.$ajaxUrl.'","ajaxNonce":"'.$ajaxNonce.'"};
801
+ </script>
802
+ ';
803
+ echo '
804
+ <script src="'.WP_PLUGIN_URL.'/pb-add-on-multi-step-forms/assets/js/frontend-multi-step-forms.js?ver='.PROFILE_BUILDER_VERSION.'" id="wppb-msf-script-frontend">
805
+ </script>
806
+ ';
807
+
808
+ }
809
+ }
810
+ }
811
+ }
assets/misc/elementor/widgets/class-pb-widget-rf.php ADDED
@@ -0,0 +1,59 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+
3
+ // Exit if accessed directly
4
+ if ( ! defined( 'ABSPATH' ) ) exit;
5
+
6
+ require_once "class-pb-widget-rf-epf.php";
7
+
8
+ /**
9
+ * Elementor widget for our wppb-register shortcode
10
+ */
11
+ class PB_Elementor_Register_Widget extends PB_Elementor_Register_Edit_Profile_Widget {
12
+
13
+ public function __construct($data = [], $args = null) {
14
+ parent::__construct($data, $args);
15
+
16
+ $this -> register_pb_scripts_styles();
17
+ }
18
+
19
+ /**
20
+ * Get widget name.
21
+ *
22
+ */
23
+ public function get_name() {
24
+ return 'wppb-register';
25
+ }
26
+
27
+ /**
28
+ * Get widget title.
29
+ *
30
+ */
31
+ public function get_title() {
32
+ return __( 'Register', 'profile-builder' );
33
+ }
34
+
35
+ /**
36
+ * Get widget icon.
37
+ *
38
+ */
39
+ public function get_icon() {
40
+ return 'eicon-price-list';
41
+ }
42
+
43
+ /**
44
+ * Register widget controls.
45
+ *
46
+ */
47
+ protected function _register_controls() {
48
+ $this -> register_rf_epf_controls( 'rf' );
49
+ }
50
+
51
+ /**
52
+ * Render widget output in the front-end.
53
+ *
54
+ */
55
+ protected function render() {
56
+ $this->render_widget( 'rf');
57
+ }
58
+
59
+ }
assets/misc/elementor/widgets/class-pb-widget-rp.php ADDED
@@ -0,0 +1,134 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+
3
+ // Exit if accessed directly
4
+ if ( ! defined( 'ABSPATH' ) ) exit;
5
+
6
+ require_once "class-pb-widget-base.php";
7
+
8
+ /**
9
+ * Elementor widget for our wppb-recover-password shortcode
10
+ */
11
+ class PB_Elementor_Recover_Password_Widget extends PB_Elementor_Widget {
12
+
13
+ /**
14
+ * Get widget name.
15
+ *
16
+ */
17
+ public function get_name() {
18
+ return 'wppb-recover-password';
19
+ }
20
+
21
+ /**
22
+ * Get widget title.
23
+ *
24
+ */
25
+ public function get_title() {
26
+ return __( 'Recover Password', 'profile-builder' );
27
+ }
28
+
29
+ /**
30
+ * Get widget icon.
31
+ *
32
+ */
33
+ public function get_icon() {
34
+ return 'eicon-shortcode';
35
+ }
36
+
37
+ /**
38
+ * Register widget controls.
39
+ *
40
+ */
41
+ protected function _register_controls() {
42
+
43
+ $this->start_controls_section(
44
+ 'pb_content_section',
45
+ array(
46
+ 'label' => __( 'Form Settings', 'profile-builder' ),
47
+ 'tab' => \Elementor\Controls_Manager::TAB_CONTENT,
48
+ )
49
+ );
50
+
51
+ $this->add_control(
52
+ 'pb_recovery_no_controls_text',
53
+ array(
54
+ 'type' => \Elementor\Controls_Manager::RAW_HTML,
55
+ 'raw' => __( 'There are no available controls for the Password Recovery form', 'profile-builder' ),
56
+ )
57
+ );
58
+
59
+ $this->end_controls_section();
60
+
61
+ // Instructions Paragraph tab
62
+ $this->add_styling_control_group(
63
+ 'Instructions Paragraph',
64
+ '',
65
+ 'pb_recover_password_instructions',
66
+ [
67
+ 'paragraph' => [
68
+ 'selector' => '#wppb-recover-password p',
69
+ 'section_name' => 'Paragraph',
70
+ ]
71
+ ]
72
+ );
73
+
74
+ // User Login Style tab
75
+ if( !$this->is_placeholder_labels_active() ) {
76
+ $sections['label'] = [
77
+ 'selector' => '.wppb-username-email label',
78
+ 'section_name' => 'Label',
79
+ ];
80
+ }
81
+ $sections['input'] = [
82
+ 'selector' => '.wppb-username-email input',
83
+ 'section_name' => 'Input',
84
+ ];
85
+ $this->add_styling_control_group(
86
+ 'User Login',
87
+ '',
88
+ 'pb_recover_password_username',
89
+ $sections
90
+ );
91
+ unset($sections);
92
+
93
+ // reCAPTCHA Style tab
94
+ if( !$this->is_placeholder_labels_active() ) {
95
+ include_once(WPPB_PLUGIN_DIR . '/front-end/default-fields/recaptcha/recaptcha.php');
96
+ $field = wppb_get_recaptcha_field();
97
+ if (!empty($field) && isset($field['captcha-pb-forms']) && (strpos($field['captcha-pb-forms'], 'pb_recover_password') !== false)) {
98
+ $this->add_styling_control_group(
99
+ 'reCAPTCHA',
100
+ '',
101
+ 'pb_recover_password_recaptcha',
102
+ [
103
+ 'label' => [
104
+ 'selector' => '.wppb-form-field.wppb-recaptcha label',
105
+ 'section_name' => 'Label',
106
+ ]
107
+ ]
108
+ );
109
+ }
110
+ }
111
+
112
+ // Submit Button Style tab
113
+ $this->add_styling_control_group(
114
+ 'Submit Button',
115
+ '',
116
+ 'pb_recover_password_button',
117
+ [
118
+ 'input' => [
119
+ 'selector' => '.form-submit input#wppb-recover-password-button',
120
+ 'section_name' => 'Input',
121
+ ]
122
+ ]
123
+ );
124
+ }
125
+
126
+ /**
127
+ * Render widget output in the front-end.
128
+ *
129
+ */
130
+ protected function render() {
131
+ echo $this->render_widget( 'rp' );
132
+ }
133
+
134
+ }
assets/misc/elementor/widgets/class-widget-edit-profile.php DELETED
@@ -1,251 +0,0 @@
1
- <?php
2
-
3
- // Exit if accessed directly
4
- if ( ! defined( 'ABSPATH' ) ) exit;
5
-
6
- /**
7
- * Elementor widget for our wppb-edit-profile shortcode
8
- */
9
- class PB_Elementor_Edit_Profile_Widget extends \Elementor\Widget_Base {
10
-
11
- public function __construct($data = [], $args = null) {
12
- parent::__construct($data, $args);
13
-
14
- //Select2
15
- wp_register_script('wppb_sl2_lib_js', WPPB_PLUGIN_URL . 'assets/js/select2/select2.min.js', array('jquery'));
16
-
17
- wp_register_style('wppb_sl2_lib_css', WPPB_PLUGIN_URL . 'assets/css/select2/select2.min.css');
18
- wp_register_style( 'wppb_sl2_css', WPPB_PLUGIN_URL.'front-end/extra-fields/select2/select2.css', false, PROFILE_BUILDER_VERSION );
19
-
20
- //SelectCPT
21
- wp_register_script( 'wppb_select2_js', WPPB_PLUGIN_URL .'assets/js/select2/select2.min.js', array( 'jquery' ), PROFILE_BUILDER_VERSION );
22
- wp_register_style( 'wppb_select2_css', WPPB_PLUGIN_URL .'assets/css/select2/select2.min.css', array(), PROFILE_BUILDER_VERSION );
23
- wp_register_style( 'wppb-select-cpt-style', WPPB_PLUGIN_URL.'front-end/extra-fields/select-cpt/style-front-end.css', array(), PROFILE_BUILDER_VERSION );
24
-
25
- //Upload
26
- wp_register_style( 'profile-builder-upload-css', WPPB_PLUGIN_URL.'front-end/extra-fields/upload/upload.css', false, PROFILE_BUILDER_VERSION );
27
-
28
- //Multi-Step Forms compatibility
29
- wp_register_style( 'wppb-msf-style-frontend', WP_PLUGIN_URL.'/pb-add-on-multi-step-forms/assets/css/frontend-multi-step-forms.css', array(), PROFILE_BUILDER_VERSION );
30
- }
31
-
32
- public function get_script_depends() {
33
- return [
34
- 'wppb_sl2_lib_js',
35
- 'wppb_select2_js',
36
- ];
37
- }
38
-
39
- public function get_style_depends() {
40
- $styles = [
41
- 'wppb_sl2_lib_css',
42
- 'wppb_sl2_css',
43
- 'profile-builder-upload-css',
44
- 'wppb_select2_css',
45
- 'wppb-select-cpt-style',
46
- ];
47
-
48
- if ( is_plugin_active( 'pb-add-on-multi-step-forms/index.php' ) ) {
49
- $styles[] = 'wppb-msf-style-frontend';
50
- }
51
-
52
- return $styles;
53
- }
54
-
55
- /**
56
- * Get widget name.
57
- *
58
- */
59
- public function get_name() {
60
- return 'wppb-edit-profile';
61
- }
62
-
63
- /**
64
- * Get widget title.
65
- *
66
- */
67
- public function get_title() {
68
- return __( 'Edit Profile', 'profile-builder' );
69
- }
70
-
71
- /**
72
- * Get widget icon.
73
- *
74
- */
75
- public function get_icon() {
76
- return 'eicon-form-horizontal';
77
- }
78
-
79
- /**
80
- * Get widget categories.
81
- *
82
- */
83
- public function get_categories() {
84
- return array( 'profile-builder' );
85
- }
86
-
87
- /**
88
- * Register widget controls
89
- *
90
- */
91
- protected function _register_controls() {
92
-
93
- $this->start_controls_section(
94
- 'pb_edit_profile_form_settings_section',
95
- array(
96
- 'label' => __( 'Form Settings', 'profile-builder' ),
97
- 'tab' => \Elementor\Controls_Manager::TAB_CONTENT,
98
- )
99
- );
100
-
101
- $args = array(
102
- 'post_type' => 'wppb-epf-cpt',
103
- 'posts_per_page'=> -1
104
- );
105
- $the_query = new WP_Query( $args );
106
- $edit_form_links = array(
107
- 'default' => ''
108
- );
109
- $form_titles = array(
110
- 'default' => __( 'Default', 'profile-builder' )
111
- );
112
-
113
-
114
- if ( $the_query->have_posts() ) {
115
- foreach ( $the_query->posts as $post ) {
116
- $form_titles [ Wordpress_Creation_Kit_PB::wck_generate_slug( $post->post_title )] = $post->post_title ;
117
- $edit_form_links [ Wordpress_Creation_Kit_PB::wck_generate_slug( $post->post_title )] = get_edit_post_link($post->ID);
118
- }
119
- wp_reset_postdata();
120
- }
121
-
122
- $this->add_control(
123
- 'pb_form_name',
124
- array(
125
- 'label' => __('Form', 'profile-builder' ),
126
- 'type' => \Elementor\Controls_Manager::SELECT,
127
- 'options' => $form_titles,
128
- 'default' => 'default',
129
- )
130
- );
131
-
132
- foreach ($edit_form_links as $form_slug => $edit_form_link ) {
133
- if( $form_slug === 'default' ){
134
- continue;
135
- }
136
-
137
- $this->add_control(
138
- 'pb_form_'.$form_slug.'_edit_link' ,
139
- array(
140
- 'type' => \Elementor\Controls_Manager::RAW_HTML,
141
- 'raw' => __( 'Edit the Settings for this form <a href="'.esc_url( $edit_form_link ).'" target="_blank">here</a>' , 'profile-builder' ),
142
- 'condition'=>[
143
- 'pb_form_name' => [ $form_titles[$form_slug], $form_slug ],
144
- ],
145
- )
146
- );
147
- }
148
-
149
- $this->end_controls_section();
150
-
151
- $this->start_controls_section(
152
- 'pb_edit_profile_redirects_section',
153
- array(
154
- 'label' => __( 'Redirects', 'profile-builder' ),
155
- 'tab' => \Elementor\Controls_Manager::TAB_CONTENT,
156
- 'condition'=>[
157
- 'pb_form_name'=>'default',
158
- ],
159
- )
160
- );
161
-
162
- $this->add_control(
163
- 'pb_redirect_url',
164
- array(
165
- 'label' => __( 'Redirect after Edit Profile', 'profile-builder' ),
166
- 'type' => \Elementor\Controls_Manager::TEXT,
167
- 'placeholder' => __( 'Enter URL', 'profile-builder' ),
168
- 'condition'=>[
169
- 'pb_form_name'=>'default',
170
- ],
171
- )
172
- );
173
-
174
- $this->end_controls_section();
175
-
176
- }
177
-
178
- /**
179
- * Render widget output in the front-end
180
- *
181
- */
182
- protected function render() {
183
-
184
- include_once( WPPB_PLUGIN_DIR.'/front-end/edit-profile.php' );
185
- include_once( WPPB_PLUGIN_DIR.'/front-end/class-formbuilder.php' );
186
-
187
- $settings = $this->get_settings_for_display();
188
-
189
- $form_name = 'unspecified';
190
- if ( array_key_exists( 'pb_form_name', $settings ) && $settings['pb_form_name'] !== 'default') {
191
- $form_name = $settings['pb_form_name'];
192
- }
193
-
194
- $atts = [
195
- 'form_name' => $form_name,
196
- 'redirect_url' => $settings['pb_redirect_url'],
197
- ];
198
-
199
- $output = wppb_front_end_profile_info( $atts );
200
-
201
- echo $output;
202
-
203
- // check if the form is being displayed in the Elementor editor
204
- $is_elementor_edit_mode = false;
205
- if( class_exists ( '\Elementor\Plugin' ) ){
206
- $is_elementor_edit_mode = \Elementor\Plugin::$instance->editor->is_edit_mode();
207
- $message= "";
208
- }
209
-
210
- if ( $is_elementor_edit_mode && $output->args !== null ) {
211
-
212
- //add the scripts for various fields
213
- foreach ( $output->args['form_fields'] as $form_field ){
214
- switch ( $form_field['field'] ){
215
- case 'Select2':
216
- echo '<script src="'.WPPB_PLUGIN_URL.'front-end/extra-fields/select2/select2.js?ver='.PROFILE_BUILDER_VERSION.'" id="wppb_sl2_js"></script>';
217
- break;
218
- case 'WYSIWYG':
219
- echo '<script>jQuery(document.body).off( "click.add-media-button", ".insert-media" );</script>';
220
- break;
221
- case 'Select (CPT)':
222
- echo '<script src="'.WPPB_PLUGIN_URL.'front-end/extra-fields/select-cpt/select-cpt.js?ver='.PROFILE_BUILDER_VERSION.'" id="wppb-select-cpt-script"></script>';
223
- break;
224
- case 'Phone':
225
- echo '<script src="'.WPPB_PLUGIN_URL.'front-end/extra-fields/phone/jquery.inputmask.bundle.min.js?ver='.PROFILE_BUILDER_VERSION.'" id="wppb-jquery-inputmask"></script>';
226
- echo '<script src="'.WPPB_PLUGIN_URL.'front-end/extra-fields/phone/script-phone.js?ver='.PROFILE_BUILDER_VERSION.'" id="wppb-phone-script"></script>';
227
- break;
228
- default:
229
- break;
230
- }
231
- }
232
-
233
- //Multi-Step Forms compatibility
234
- if ( is_plugin_active( 'pb-add-on-multi-step-forms/index.php' ) ) {
235
- $ajaxUrl = admin_url( 'admin-ajax.php' );
236
- $ajaxNonce = wp_create_nonce( 'wppb_msf_frontend_nonce' );
237
- echo '
238
- <script id="wppb-msf-script-frontend-extra">
239
- var wppb_msf_data_frontend = {"ajaxUrl":"'.$ajaxUrl.'","ajaxNonce":"'.$ajaxNonce.'"};
240
- </script>
241
- ';
242
- echo '
243
- <script src="'.WP_PLUGIN_URL.'/pb-add-on-multi-step-forms/assets/js/frontend-multi-step-forms.js?ver='.PROFILE_BUILDER_VERSION.'" id="wppb-msf-script-frontend">
244
- </script>
245
- ';
246
-
247
- }
248
- }
249
- }
250
-
251
- }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
assets/misc/elementor/widgets/class-widget-login.php DELETED
@@ -1,131 +0,0 @@
1
- <?php
2
-
3
- // Exit if accessed directly
4
- use Elementor\Controls_Manager;
5
- use Elementor\Group_Control_Border;
6
- use Elementor\Group_Control_Typography;
7
- use Elementor\Scheme_Typography;
8
-
9
- if ( ! defined( 'ABSPATH' ) ) exit;
10
-
11
- /**
12
- * Elementor widget for our wppb-login shortcode
13
- */
14
- class PB_Elementor_Login_Widget extends \Elementor\Widget_Base {
15
-
16
- /**
17
- * Get widget name.
18
- *
19
- */
20
- public function get_name() {
21
- return 'wppb-login';
22
- }
23
-
24
- /**
25
- * Get widget title.
26
- *
27
- */
28
- public function get_title() {
29
- return __( 'Login', 'profile-builder' );
30
- }
31
-
32
- /**
33
- * Get widget icon.
34
- *
35
- */
36
- public function get_icon() {
37
- return 'eicon-lock-user';
38
- }
39
-
40
- /**
41
- * Get widget categories.
42
- *
43
- */
44
- public function get_categories() {
45
- return array( 'profile-builder' );
46
- }
47
-
48
- /**
49
- * Register widget controls
50
- *
51
- */
52
- protected function _register_controls() {
53
-
54
- $this->start_controls_section(
55
- 'pb_login_links',
56
- array(
57
- 'label' => __( 'Form Settings', 'profile-builder' ),
58
- 'tab' => \Elementor\Controls_Manager::TAB_CONTENT,
59
- )
60
- );
61
-
62
- $this->add_control(
63
- 'pb_register_url',
64
- array(
65
- 'label' => __( 'Registration', 'profile-builder' ),
66
- 'type' => \Elementor\Controls_Manager::TEXT,
67
- 'placeholder' => __( 'Enter URL', 'profile-builder' ),
68
- )
69
- );
70
-
71
- $this->add_control(
72
- 'pb_lostpassword_url',
73
- array(
74
- 'label' => __( 'Recover Password', 'profile-builder' ),
75
- 'type' => \Elementor\Controls_Manager::TEXT,
76
- 'placeholder' => __( 'Enter URL', 'profile-builder' ),
77
- )
78
- );
79
-
80
- $this->end_controls_section();
81
-
82
- $this->start_controls_section(
83
- 'pb_login_redirects',
84
- array(
85
- 'label' => __( 'Redirects', 'profile-builder' ),
86
- 'tab' => \Elementor\Controls_Manager::TAB_CONTENT,
87
- )
88
- );
89
-
90
- $this->add_control(
91
- 'pb_after_login_redirect_url',
92
- array(
93
- 'label' => __( 'After Login', 'profile-builder' ),
94
- 'type' => \Elementor\Controls_Manager::TEXT,
95
- 'placeholder' => __( 'Enter URL', 'profile-builder' ),
96
- )
97
- );
98
-
99
- $this->add_control(
100
- 'pb_after_logout_redirect_url',
101
- array(
102
- 'label' => __( 'After Logout', 'profile-builder' ),
103
- 'type' => \Elementor\Controls_Manager::TEXT,
104
- 'placeholder' => __( 'Enter URL', 'profile-builder' ),
105
- )
106
- );
107
-
108
- $this->end_controls_section();
109
- }
110
-
111
- /**
112
- * Render widget output in the front-end
113
- *
114
- */
115
- protected function render() {
116
-
117
- include_once( WPPB_PLUGIN_DIR.'/front-end/login.php' );
118
-
119
- $settings = $this->get_settings_for_display();
120
-
121
- $atts = [
122
- 'redirect_url' => $settings['pb_after_login_redirect_url'],
123
- 'logout_redirect_url' => $settings['pb_after_logout_redirect_url'],
124
- 'register_url' => $settings['pb_register_url'],
125
- 'lostpassword_url' => $settings['pb_lostpassword_url'],
126
- ];
127
-
128
- echo wppb_front_end_login( $atts );
129
- }
130
-
131
- }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
assets/misc/elementor/widgets/class-widget-recover-password.php DELETED
@@ -1,80 +0,0 @@
1
- <?php
2
-
3
- // Exit if accessed directly
4
- if ( ! defined( 'ABSPATH' ) ) exit;
5
-
6
- /**
7
- * Elementor widget for our wppb-recover-password shortcode
8
- */
9
- class PB_Elementor_Recover_Password_Widget extends \Elementor\Widget_Base {
10
-
11
- /**
12
- * Get widget name.
13
- *
14
- */
15
- public function get_name() {
16
- return 'wppb-recover-password';
17
- }
18
-
19
- /**
20
- * Get widget title.
21
- *
22
- */
23
- public function get_title() {
24
- return __( 'Recover Password', 'profile-builder' );
25
- }
26
-
27
- /**
28
- * Get widget icon.
29
- *
30
- */
31
- public function get_icon() {
32
- return 'eicon-shortcode';
33
- }
34
-
35
- /**
36
- * Get widget categories.
37
- *
38
- */
39
- public function get_categories() {
40
- return array( 'profile-builder' );
41
- }
42
-
43
- /**
44
- * Register widget controls
45
- *
46
- */
47
- protected function _register_controls() {
48
-
49
- $this->start_controls_section(
50
- 'pb_content_section',
51
- array(
52
- 'label' => __( 'Form Settings', 'profile-builder' ),
53
- 'tab' => \Elementor\Controls_Manager::TAB_CONTENT,
54
- )
55
- );
56
-
57
- $this->add_control(
58
- 'pb_recovery_no_controls_text',
59
- array(
60
- 'type' => \Elementor\Controls_Manager::RAW_HTML,
61
- 'raw' => __( 'There are no available controls for the Password Recovery form', 'profile-builder' ),
62
- )
63
- );
64
-
65
- $this->end_controls_section();
66
-
67
- }
68
-
69
- /**
70
- * Render widget output in the front-end
71
- *
72
- */
73
- protected function render() {
74
-
75
- include_once( WPPB_PLUGIN_DIR.'/front-end/recover.php' );
76
-
77
- echo wppb_front_end_password_recovery();
78
- }
79
-
80
- }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
assets/misc/elementor/widgets/class-widget-register.php DELETED
@@ -1,295 +0,0 @@
1
- <?php
2
-
3
- // Exit if accessed directly
4
- if ( ! defined( 'ABSPATH' ) ) exit;
5
-
6
- /**
7
- * Elementor widget for our wppb-register shortcode
8
- */
9
- class PB_Elementor_Register_Widget extends \Elementor\Widget_Base {
10
-
11
- public function __construct($data = [], $args = null) {
12
- parent::__construct($data, $args);
13
-
14
- //Select2
15
- wp_register_script('wppb_sl2_lib_js', WPPB_PLUGIN_URL . 'assets/js/select2/select2.min.js', array('jquery'));
16
-
17
- wp_register_style('wppb_sl2_lib_css', WPPB_PLUGIN_URL . 'assets/css/select2/select2.min.css');
18
- wp_register_style( 'wppb_sl2_css', WPPB_PLUGIN_URL.'front-end/extra-fields/select2/select2.css', false, PROFILE_BUILDER_VERSION );
19
-
20
- //SelectCPT
21
- wp_register_script( 'wppb_select2_js', WPPB_PLUGIN_URL .'assets/js/select2/select2.min.js', array( 'jquery' ), PROFILE_BUILDER_VERSION );
22
- wp_register_style( 'wppb_select2_css', WPPB_PLUGIN_URL .'assets/css/select2/select2.min.css', array(), PROFILE_BUILDER_VERSION );
23
- wp_register_style( 'wppb-select-cpt-style', WPPB_PLUGIN_URL.'front-end/extra-fields/select-cpt/style-front-end.css', array(), PROFILE_BUILDER_VERSION );
24
-
25
- //Upload
26
- wp_register_style( 'profile-builder-upload-css', WPPB_PLUGIN_URL.'front-end/extra-fields/upload/upload.css', false, PROFILE_BUILDER_VERSION );
27
-
28
- //Multi-Step Forms compatibility
29
- wp_register_style( 'wppb-msf-style-frontend', WP_PLUGIN_URL.'/pb-add-on-multi-step-forms/assets/css/frontend-multi-step-forms.css', array(), PROFILE_BUILDER_VERSION );
30
- }
31
-
32
- public function get_script_depends() {
33
- return [
34
- 'wppb_sl2_lib_js',
35
- 'wppb_select2_js',
36
- ];
37
- }
38
-
39
- public function get_style_depends() {
40
- $styles = [
41
- 'wppb_sl2_lib_css',
42
- 'wppb_sl2_css',
43
- 'profile-builder-upload-css',
44
- 'wppb_select2_css',
45
- 'wppb-select-cpt-style',
46
- ];
47
-
48
- if ( is_plugin_active( 'pb-add-on-multi-step-forms/index.php' ) ) {
49
- $styles[] = 'wppb-msf-style-frontend';
50
- }
51
-
52
- return $styles;
53
- }
54
-
55
- /**
56
- * Get widget name.
57
- *
58
- */
59
- public function get_name() {
60
- return 'wppb-register';
61
- }
62
-
63
- /**
64
- * Get widget title.
65
- *
66
- */
67
- public function get_title() {
68
- return __( 'Register', 'profile-builder' );
69
- }
70
-
71
- /**
72
- * Get widget icon.
73
- *
74
- */
75
- public function get_icon() {
76
- return 'eicon-price-list';
77
- }
78
-
79
- /**
80
- * Get widget categories.
81
- *
82
- */
83
- public function get_categories() {
84
- return array( 'profile-builder' );
85
- }
86
-
87
- /**
88
- * Register widget controls
89
- *
90
- */
91
- protected function _register_controls() {
92
-
93
- $this->start_controls_section(
94
- 'pb_register_form_settings_section',
95
- array(
96
- 'label' => __( 'Form Settings', 'profile-builder' ),
97
- 'tab' => \Elementor\Controls_Manager::TAB_CONTENT,
98
- )
99
- );
100
-
101
- $args = array(
102
- 'post_type' => 'wppb-rf-cpt',
103
- 'posts_per_page'=> -1
104
- );
105
- $the_query = new WP_Query( $args );
106
- $edit_form_links = array(
107
- 'default' => ''
108
- );
109
- $form_titles = array(
110
- 'default' => __( 'Default', 'profile-builder' )
111
- );
112
-
113
- if ( $the_query->have_posts() ) {
114
- foreach ( $the_query->posts as $post ) {
115
- $form_titles [ Wordpress_Creation_Kit_PB::wck_generate_slug( $post->post_title )] = $post->post_title ;
116
- $edit_form_links [ Wordpress_Creation_Kit_PB::wck_generate_slug( $post->post_title )] = get_edit_post_link($post->ID);
117
- }
118
- wp_reset_postdata();
119
- }
120
-
121
- $this->add_control(
122
- 'pb_form_name',
123
- array(
124
- 'label' => __('Form', 'profile-builder' ),
125
- 'type' => \Elementor\Controls_Manager::SELECT,
126
- 'options' => $form_titles,
127
- 'default' => 'default',
128
- )
129
- );
130
-
131
- if ( ! function_exists( 'get_editable_roles' ) ) {
132
- require_once ABSPATH . 'wp-admin/includes/user.php';
133
- }
134
- $user_roles = get_editable_roles();
135
- foreach ( $user_roles as $key=>$role ) {
136
- $user_roles[$key] = $role['name'];
137
- }
138
-
139
- $this->add_control(
140
- 'pb_role',
141
- array(
142
- 'label' => __( 'Assigned Role', 'profile-builder' ),
143
- 'type' => \Elementor\Controls_Manager::SELECT,
144
- 'options' => $user_roles,
145
- 'default' => get_option('default_role'),
146
- 'condition'=>[
147
- 'pb_form_name'=>'default',
148
- ],
149
- )
150
- );
151
-
152
- $this->add_control(
153
- 'pb_automatic_login',
154
- array(
155
- 'label' => __( 'Automatic Login', 'profile-builder' ),
156
- 'type' => \Elementor\Controls_Manager::SWITCHER,
157
- 'label_on' => __( 'Yes', 'your-plugin' ),
158
- 'label_off' => __( 'No', 'your-plugin' ),
159
- 'return_value' => 'yes',
160
- 'default' => '',
161
- 'condition'=>[
162
- 'pb_form_name'=>'default',
163
- ],
164
- )
165
- );
166
-
167
- foreach ($edit_form_links as $form_slug => $edit_form_link ) {
168
- if( $form_slug === 'default' ){
169
- continue;
170
- }
171
-
172
- $this->add_control(
173
- 'pb_form_'.$form_slug.'_edit_link' ,
174
- array(
175
- 'type' => \Elementor\Controls_Manager::RAW_HTML,
176
- 'raw' => __( 'Edit the Settings for this form <a href="'.esc_url( $edit_form_link ).'" target="_blank">here</a>' , 'profile-builder' ),
177
- 'condition'=>[
178
- 'pb_form_name' => [ $form_titles[$form_slug], $form_slug ],
179
- ],
180
- )
181
- );
182
- }
183
-
184
- $this->end_controls_section();
185
-
186
- $this->start_controls_section(
187
- 'pb_register_redirects_section',
188
- array(
189
- 'label' => __( 'Redirects', 'profile-builder' ),
190
- 'tab' => \Elementor\Controls_Manager::TAB_CONTENT,
191
- )
192
- );
193
-
194
- $this->add_control(
195
- 'pb_redirect_url',
196
- array(
197
- 'label' => __( 'Redirect after Registration', 'profile-builder' ),
198
- 'type' => \Elementor\Controls_Manager::TEXT,
199
- 'placeholder' => __( 'Enter URL', 'profile-builder' ),
200
- 'condition'=>[
201
- 'pb_form_name'=>'default',
202
- ],
203
- )
204
- );
205
-
206
- $this->add_control(
207
- 'pb_logout_redirect_url',
208
- array(
209
- 'label' => __( 'Redirect after Logout', 'profile-builder' ),
210
- 'type' => \Elementor\Controls_Manager::TEXT,
211
- 'placeholder' => __( 'Enter URL', 'profile-builder' ),
212
- )
213
- );
214
-
215
- $this->end_controls_section();
216
-
217
- }
218
-
219
- /**
220
- * Render widget output in the front-end
221
- *
222
- */
223
- protected function render() {
224
-
225
- include_once( WPPB_PLUGIN_DIR.'/front-end/register.php' );
226
- include_once( WPPB_PLUGIN_DIR.'/front-end/class-formbuilder.php' );
227
-
228
- $settings = $this->get_settings_for_display();
229
-
230
- $form_name = 'unspecified';
231
- if ( array_key_exists( 'pb_form_name', $settings ) && $settings['pb_form_name'] !== 'default') {
232
- $form_name = $settings['pb_form_name'];
233
- }
234
-
235
- $atts = [
236
- 'role' => $settings['pb_role'],
237
- 'form_name' => $form_name,
238
- 'redirect_url' => $settings['pb_redirect_url'],
239
- 'logout_redirect_url' => $settings['pb_logout_redirect_url'],
240
- 'automatic_login' => $settings['pb_automatic_login'],
241
- ];
242
-
243
- $output = wppb_front_end_register( $atts );
244
-
245
- echo $output;
246
-
247
- // check if the form is being displayed in the Elementor editor
248
- $is_elementor_edit_mode = false;
249
- if( class_exists ( '\Elementor\Plugin' ) ){
250
- $is_elementor_edit_mode = \Elementor\Plugin::$instance->editor->is_edit_mode();
251
- $message= "";
252
- }
253
-
254
- if ( $is_elementor_edit_mode && $output->args !== null ) {
255
-
256
- //add the scripts for various fields
257
- foreach ( $output->args['form_fields'] as $form_field ){
258
- switch ( $form_field['field'] ){
259
- case 'Select2':
260
- echo '<script src="'.WPPB_PLUGIN_URL.'front-end/extra-fields/select2/select2.js?ver='.PROFILE_BUILDER_VERSION.'" id="wppb_sl2_js"></script>';
261
- break;
262
- case 'WYSIWYG':
263
- echo '<script>jQuery(document.body).off( "click.add-media-button", ".insert-media" );</script>';
264
- break;
265
- case 'Select (CPT)':
266
- echo '<script src="'.WPPB_PLUGIN_URL.'front-end/extra-fields/select-cpt/select-cpt.js?ver='.PROFILE_BUILDER_VERSION.'" id="wppb-select-cpt-script"></script>';
267
- break;
268
- case 'Phone':
269
- echo '<script src="'.WPPB_PLUGIN_URL.'front-end/extra-fields/phone/jquery.inputmask.bundle.min.js?ver='.PROFILE_BUILDER_VERSION.'" id="wppb-jquery-inputmask"></script>';
270
- echo '<script src="'.WPPB_PLUGIN_URL.'front-end/extra-fields/phone/script-phone.js?ver='.PROFILE_BUILDER_VERSION.'" id="wppb-phone-script"></script>';
271
- break;
272
- default:
273
- break;
274
- }
275
- }
276
-
277
- //add script for Multi-Step Forms compatibility
278
- if ( is_plugin_active( 'pb-add-on-multi-step-forms/index.php' ) ) {
279
- $ajaxUrl = admin_url( 'admin-ajax.php' );
280
- $ajaxNonce = wp_create_nonce( 'wppb_msf_frontend_nonce' );
281
- echo '
282
- <script id="wppb-msf-script-frontend-extra">
283
- var wppb_msf_data_frontend = {"ajaxUrl":"'.$ajaxUrl.'","ajaxNonce":"'.$ajaxNonce.'"};
284
- </script>
285
- ';
286
- echo '
287
- <script src="'.WP_PLUGIN_URL.'/pb-add-on-multi-step-forms/assets/js/frontend-multi-step-forms.js?ver='.PROFILE_BUILDER_VERSION.'" id="wppb-msf-script-frontend">
288
- </script>
289
- ';
290
-
291
- }
292
- }
293
- }
294
-
295
- }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
features/content-restriction/content-restriction-filtering.php CHANGED
@@ -372,4 +372,20 @@ $wppb_cr_settings = get_option( 'wppb_content_restriction_settings' );
372
  if ( isset( $wppb_cr_settings[ 'contentRestriction' ] ) && $wppb_cr_settings[ 'contentRestriction' ] == 'yes' && apply_filters( 'wppb_enable_comment_restriction', true ) ) {
373
  add_filter( 'comments_open', 'wppb_comments_restrict_replying', 20, 2 );
374
  add_filter( 'wp_list_comments_args', 'wppb_comments_hide_callback_function', 999 );
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
375
  }
372
  if ( isset( $wppb_cr_settings[ 'contentRestriction' ] ) && $wppb_cr_settings[ 'contentRestriction' ] == 'yes' && apply_filters( 'wppb_enable_comment_restriction', true ) ) {
373
  add_filter( 'comments_open', 'wppb_comments_restrict_replying', 20, 2 );
374
  add_filter( 'wp_list_comments_args', 'wppb_comments_hide_callback_function', 999 );
375
+ }
376
+
377
+ if( !function_exists( 'pms_exclude_restricted_comments' ) ){
378
+ add_filter( 'the_comments', 'wppb_exclude_restricted_comments', 10, 2 );
379
+ function wppb_exclude_restricted_comments( $comments, $query ){
380
+ if( !empty( $comments ) && !current_user_can( 'manage_options' ) ){
381
+ $user_id = get_current_user_id();
382
+ foreach ( $comments as $key => $comment ){
383
+ $post = get_post( $comment->comment_post_ID );
384
+ if( ( $post->post_type == 'private-page' && $user_id != (int)$post->post_author ) || ( function_exists( 'wppb_content_restriction_is_post_restricted' ) && wppb_content_restriction_is_post_restricted( $comment->comment_post_ID ) ) || ( function_exists( 'pms_is_post_restricted' ) && pms_is_post_restricted( $comment->comment_post_ID ) ) ){
385
+ unset( $comments[$key] );
386
+ }
387
+ }
388
+ }
389
+ return $comments;
390
+ }
391
  }
features/functions.php CHANGED
@@ -102,9 +102,14 @@ if(!function_exists('wppb_curpageurl')){
102
  if(!function_exists('wppb_get_abs_home')) {
103
  function wppb_get_abs_home(){
104
  global $wpdb;
 
 
 
 
 
105
 
106
  // returns the unfiltered home_url by directly retrieving it from wp_options.
107
- $absolute_home = (!is_multisite() && defined('WP_HOME')
108
  ? WP_HOME
109
  : (is_multisite() && !is_main_site()
110
  ? (preg_match('/^(https)/', get_option('home')) === 1 ? 'https://'
@@ -119,18 +124,18 @@ if(!function_exists('wppb_get_abs_home')) {
119
  LIMIT 1"))
120
  );
121
 
122
- if (empty($absolute_home)) {
123
- $absolute_home = get_option("siteurl");
124
  }
125
 
126
  // always return absolute_home based on the http or https version of the current page request. This means no more redirects.
127
  if (!empty($_SERVER['HTTPS']) && $_SERVER['HTTPS'] != 'off') {
128
- $absolute_home = str_replace('http://', 'https://', $absolute_home);
129
  } else {
130
- $absolute_home = str_replace('https://', 'http://', $absolute_home);
131
  }
132
 
133
- return $absolute_home;
134
  }
135
  }
136
 
@@ -1210,7 +1215,11 @@ function wppb_can_users_signup_blog(){
1210
  *
1211
  * @return null|string $redirect_url
1212
  */
1213
- function wppb_get_redirect_url( $redirect_priority = 'normal', $redirect_type, $redirect_url = NULL, $user = NULL, $user_role = NULL ) {
 
 
 
 
1214
  if( PROFILE_BUILDER == 'Profile Builder Pro' ) {
1215
  $wppb_module_settings = get_option( 'wppb_module_settings' );
1216
 
102
  if(!function_exists('wppb_get_abs_home')) {
103
  function wppb_get_abs_home(){
104
  global $wpdb;
105
+ global $wppb_absolute_home;
106
+
107
+ if( isset($wppb_absolute_home) ) {
108
+ return $wppb_absolute_home;
109
+ }
110
 
111
  // returns the unfiltered home_url by directly retrieving it from wp_options.
112
+ $wppb_absolute_home = (!is_multisite() && defined('WP_HOME')
113
  ? WP_HOME
114
  : (is_multisite() && !is_main_site()
115
  ? (preg_match('/^(https)/', get_option('home')) === 1 ? 'https://'
124
  LIMIT 1"))
125
  );
126
 
127
+ if (empty($wppb_absolute_home)) {
128
+ $wppb_absolute_home = get_option("siteurl");
129
  }
130
 
131
  // always return absolute_home based on the http or https version of the current page request. This means no more redirects.
132
  if (!empty($_SERVER['HTTPS']) && $_SERVER['HTTPS'] != 'off') {
133
+ $wppb_absolute_home = str_replace('http://', 'https://', $wppb_absolute_home);
134
  } else {
135
+ $wppb_absolute_home = str_replace('https://', 'http://', $wppb_absolute_home);
136
  }
137
 
138
+ return $wppb_absolute_home;
139
  }
140
  }
141
 
1215
  *
1216
  * @return null|string $redirect_url
1217
  */
1218
+ function wppb_get_redirect_url( $redirect_priority, $redirect_type, $redirect_url = NULL, $user = NULL, $user_role = NULL ) {
1219
+ if( empty($redirect_priority) ) {
1220
+ $redirect_priority = 'normal';
1221
+ }
1222
+
1223
  if( PROFILE_BUILDER == 'Profile Builder Pro' ) {
1224
  $wppb_module_settings = get_option( 'wppb_module_settings' );
1225
 
features/upgrades/upgrades-functions.php CHANGED
@@ -530,8 +530,12 @@ function wppb_replace_and_save( $content, $option_name ){
530
  *
531
  * @return array
532
  */
533
- function wppb_add_existing_default_fields ( $backed_up_manage_fields = array(), $field, $meta_name, $required, $description = '', $recaptcha_public_key = '', $recaptcha_private_key = '' ){
534
- $local_array = array();
 
 
 
 
535
 
536
  $local_array['id'] = '';
537
  $local_array['field'] = $field;
530
  *
531
  * @return array
532
  */
533
+ function wppb_add_existing_default_fields ( $backed_up_manage_fields, $field, $meta_name, $required, $description = '', $recaptcha_public_key = '', $recaptcha_private_key = '' ){
534
+ if ( !is_array($backed_up_manage_fields) ){
535
+ $backed_up_manage_fields = empty($backed_up_manage_fields) ? array(): array($backed_up_manage_fields);
536
+ }
537
+
538
+ $local_array = array();
539
 
540
  $local_array['id'] = '';
541
  $local_array['field'] = $field;
front-end/class-formbuilder.php CHANGED
@@ -769,8 +769,11 @@ class Profile_Builder_Form_Creator{
769
  }
770
 
771
  static function wppb_frontend_scripts(){
772
- wp_enqueue_script( 'wppb_front_end_script', WPPB_PLUGIN_URL.'assets/js/script-front-end.js', array('jquery'), PROFILE_BUILDER_VERSION, true );
773
- wp_print_scripts( 'wppb_front_end_script' );
 
 
 
774
  }
775
 
776
  /**
769
  }
770
 
771
  static function wppb_frontend_scripts(){
772
+ $wppb_toolbox_forms_settings = get_option( 'wppb_toolbox_forms_settings' );
773
+ if( !isset( $wppb_toolbox_forms_settings[ 'disable-automatic-scrolling' ] ) ){
774
+ wp_enqueue_script( 'wppb_front_end_script', WPPB_PLUGIN_URL. 'assets/js/script-front-end.js', array('jquery'), PROFILE_BUILDER_VERSION, true );
775
+ wp_print_scripts( 'wppb_front_end_script' );
776
+ }
777
  }
778
 
779
  /**
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.3.8
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.3.8' );
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.3.9
7
  Author: Cozmoslabs
8
  Author URI: https://www.cozmoslabs.com/
9
  Text Domain: profile-builder
70
  *
71
  *
72
  */
73
+ define('PROFILE_BUILDER_VERSION', '3.3.9' );
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
@@ -3,8 +3,8 @@ Contributors: cozmoslabs, reflectionmedia, sareiodata, adispiac, madalin.ungurea
3
  Donate link: http://www.cozmoslabs.com/wordpress-profile-builder/
4
  Tags: user registration, user profile, user registration form, user fields, registration, edit profile, user custom fields, front-end login, front-end edit profile, front-end user registration, email confirmation, login form, content restriction, restrict content, profile
5
  Requires at least: 3.1
6
- Tested up to: 5.6.1
7
- Stable tag: 3.3.8
8
  License: GPLv2 or later
9
  License URI: http://www.gnu.org/licenses/gpl-2.0.html
10
 
@@ -170,6 +170,17 @@ This plugin adds/removes user fields in the front-end. Both default and extra pr
170
  15. Edit or Add New User Role
171
 
172
  == Changelog ==
 
 
 
 
 
 
 
 
 
 
 
173
  = 3.3.8 =
174
  * Elementor integration
175
  * Fixed some urls encoding in certain cases
3
  Donate link: http://www.cozmoslabs.com/wordpress-profile-builder/
4
  Tags: user registration, user profile, user registration form, user fields, registration, edit profile, user custom fields, front-end login, front-end edit profile, front-end user registration, email confirmation, login form, content restriction, restrict content, profile
5
  Requires at least: 3.1
6
+ Tested up to: 5.6.2
7
+ Stable tag: 3.3.9
8
  License: GPLv2 or later
9
  License URI: http://www.gnu.org/licenses/gpl-2.0.html
10
 
170
  15. Edit or Add New User Role
171
 
172
  == Changelog ==
173
+ = 3.3.9 =
174
+ * Added further support for Elementor styling
175
+ * Fixed some possible warnings
176
+ * Fixed some possible PHP 8 warnings
177
+ * Fixes for Placeholder Labels not displaying correctly some fields
178
+ * Added filter to modify date format for Last Profile Update and Last Login
179
+ * Fixed minor typos in plugin
180
+ * Restricted comments from private/restricted posts and pages from queries
181
+ * Cached the wppb_get_abs_home function result.
182
+ * Added a setting that controls the automatic scrolling of form pages after submit
183
+
184
  = 3.3.8 =
185
  * Elementor integration
186
  * Fixed some urls encoding in certain cases
translation/profile-builder.catalog.php CHANGED
@@ -240,7 +240,7 @@
240
  <?php __("Shipping Fields", "profile-builder"); ?>
241
  <?php __("Select which WooCommerce Shipping fields to display to the user ( drag and drop to re-order ) and which should be required", "profile-builder"); ?>
242
  <?php __("Shipping Fields Order", "profile-builder"); ?>
243
- <?php __("Save the shipping fields order from the billing fields checkboxes", "profile-builder"); ?>
244
  <?php __("Shipping Fields Name", "profile-builder"); ?>
245
  <?php __("Save the shipping fields names", "profile-builder"); ?>
246
  <?php __("Field Name", "profile-builder"); ?>
@@ -556,7 +556,7 @@
556
  <?php __("Date-format", "profile-builder"); ?>
557
  <?php __("Specify the format of the date when using Datepicker<br/>Valid options: mm/dd/yy, mm/yy/dd, dd/yy/mm, dd/mm/yy, yy/dd/mm, yy/mm/dd, mm-dd-yy, yy-mm-dd, D, dd M yy, D, d M y, DD, dd-M-y, D, d M yy, mm/yy, mm/dd, dd/mm, @<br/>If not specified, defaults to mm/dd/yy", "profile-builder"); ?>
558
  <?php __("Terms of Agreement", "profile-builder"); ?>
559
- <?php __("Enter a detailed description of the temrs of agreement for the user to read.<br/>Links can be inserted by using standard HTML syntax: &lt;a href=\"custom_url\"&gt;custom_text&lt;/a&gt;", "profile-builder"); ?>
560
  <?php __("Options", "profile-builder"); ?>
561
  <?php __("Enter a comma separated list of values<br/>This can be anything, as it is hidden from the user, but should not contain special characters or apostrophes", "profile-builder"); ?>
562
  <?php __("Labels", "profile-builder"); ?>
@@ -1673,7 +1673,7 @@
1673
  <?php __("Multiple Admin Emails", "profile-builder"); ?>
1674
  <?php __("Set multiple admin e-mail addresses that will receive e-mail notifications sent by Profile Builder", "profile-builder"); ?>
1675
  <?php __("Admin Emails:", "profile-builder"); ?>
1676
- <?php __("Add email addresses, separated by comma, for people you wish to receive notifications from Profile Builder. These addresses will overwrite the default Email Adress from <a href=\"%s\">Settings -> General</a>", "profile-builder"); ?>
1677
  <?php __("Automatically generate password for users", "profile-builder"); ?>
1678
  <?php __("By checking this option, the password will be automatically generated and emailed to the user.", "profile-builder"); ?>
1679
  <?php __("Modify 'Send Credentials' checkbox", "profile-builder"); ?>
@@ -1744,6 +1744,9 @@
1744
  <?php __("Save 'Last Profile Update' date in usermeta", "profile-builder"); ?>
1745
  <?php __("By checking this option, each time a modifies his profile the date and time will be saved in the database.", "profile-builder"); ?>
1746
  <?php __("The meta name for the field will be <strong>last_profile_update_date</strong>.", "profile-builder"); ?>
 
 
 
1747
  <?php __("Enable Compare shortcode", "profile-builder"); ?>
1748
  <?php __("You can read more info about this shortcode by following <a href=\"https://www.cozmoslabs.com/docs/profile-builder-2/developers-knowledge-base/shortcodes/compare-shortcode/\">this url</a>.", "profile-builder"); ?>
1749
  <?php __("Enable Usermeta shortcode", "profile-builder"); ?>
@@ -1765,14 +1768,22 @@
1765
  <?php __("The number of users that share a particular value is shown for the Select and Checkbox facet types.", "profile-builder"); ?>
1766
  <?php __("If you enable this option they will be hidden.", "profile-builder"); ?>
1767
  <?php __("Select or type in an option", "profile-builder"); ?>
 
 
 
 
 
 
 
 
1768
  <?php __("Form Settings", "profile-builder"); ?>
1769
- <?php __("Form", "profile-builder"); ?>
1770
- <?php __("Redirects", "profile-builder"); ?>
1771
- <?php __("Redirect after Edit Profile", "profile-builder"); ?>
1772
- <?php __("Enter URL", "profile-builder"); ?>
1773
  <?php __("Registration", "profile-builder"); ?>
1774
- <?php __("There are no available controls for the Password Recovery form", "profile-builder"); ?>
 
 
1775
  <?php __("Assigned Role", "profile-builder"); ?>
1776
  <?php __("Automatic Login", "profile-builder"); ?>
 
1777
  <?php __("Redirect after Registration", "profile-builder"); ?>
1778
  <?php __("Redirect after Logout", "profile-builder"); ?>
 
240
  <?php __("Shipping Fields", "profile-builder"); ?>
241
  <?php __("Select which WooCommerce Shipping fields to display to the user ( drag and drop to re-order ) and which should be required", "profile-builder"); ?>
242
  <?php __("Shipping Fields Order", "profile-builder"); ?>
243
+ <?php __("Save the shipping fields order from the shipping fields checkboxes", "profile-builder"); ?>
244
  <?php __("Shipping Fields Name", "profile-builder"); ?>
245
  <?php __("Save the shipping fields names", "profile-builder"); ?>
246
  <?php __("Field Name", "profile-builder"); ?>
556
  <?php __("Date-format", "profile-builder"); ?>
557
  <?php __("Specify the format of the date when using Datepicker<br/>Valid options: mm/dd/yy, mm/yy/dd, dd/yy/mm, dd/mm/yy, yy/dd/mm, yy/mm/dd, mm-dd-yy, yy-mm-dd, D, dd M yy, D, d M y, DD, dd-M-y, D, d M yy, mm/yy, mm/dd, dd/mm, @<br/>If not specified, defaults to mm/dd/yy", "profile-builder"); ?>
558
  <?php __("Terms of Agreement", "profile-builder"); ?>
559
+ <?php __("Enter a detailed description of the terms of agreement for the user to read.<br/>Links can be inserted by using standard HTML syntax: &lt;a href=\"custom_url\"&gt;custom_text&lt;/a&gt;", "profile-builder"); ?>
560
  <?php __("Options", "profile-builder"); ?>
561
  <?php __("Enter a comma separated list of values<br/>This can be anything, as it is hidden from the user, but should not contain special characters or apostrophes", "profile-builder"); ?>
562
  <?php __("Labels", "profile-builder"); ?>
1673
  <?php __("Multiple Admin Emails", "profile-builder"); ?>
1674
  <?php __("Set multiple admin e-mail addresses that will receive e-mail notifications sent by Profile Builder", "profile-builder"); ?>
1675
  <?php __("Admin Emails:", "profile-builder"); ?>
1676
+ <?php __("Add email addresses, separated by comma, for people you wish to receive notifications from Profile Builder. These addresses will overwrite the default Email Address from <a href=\"%s\">Settings -> General</a>", "profile-builder"); ?>
1677
  <?php __("Automatically generate password for users", "profile-builder"); ?>
1678
  <?php __("By checking this option, the password will be automatically generated and emailed to the user.", "profile-builder"); ?>
1679
  <?php __("Modify 'Send Credentials' checkbox", "profile-builder"); ?>
1744
  <?php __("Save 'Last Profile Update' date in usermeta", "profile-builder"); ?>
1745
  <?php __("By checking this option, each time a modifies his profile the date and time will be saved in the database.", "profile-builder"); ?>
1746
  <?php __("The meta name for the field will be <strong>last_profile_update_date</strong>.", "profile-builder"); ?>
1747
+ <?php __("Disable automatic scrolling after submit", "profile-builder"); ?>
1748
+ <?php __("By default, after each form submission the page will automatically scroll to the form message.", "profile-builder"); ?>
1749
+ <?php __("If you check this option, automatic scrolling will be disabled.", "profile-builder"); ?>
1750
  <?php __("Enable Compare shortcode", "profile-builder"); ?>
1751
  <?php __("You can read more info about this shortcode by following <a href=\"https://www.cozmoslabs.com/docs/profile-builder-2/developers-knowledge-base/shortcodes/compare-shortcode/\">this url</a>.", "profile-builder"); ?>
1752
  <?php __("Enable Usermeta shortcode", "profile-builder"); ?>
1768
  <?php __("The number of users that share a particular value is shown for the Select and Checkbox facet types.", "profile-builder"); ?>
1769
  <?php __("If you enable this option they will be hidden.", "profile-builder"); ?>
1770
  <?php __("Select or type in an option", "profile-builder"); ?>
1771
+ <?php __("Background", "profile-builder"); ?>
1772
+ <?php __("Color", "profile-builder"); ?>
1773
+ <?php __("Width", "profile-builder"); ?>
1774
+ <?php __("Height", "profile-builder"); ?>
1775
+ <?php __("Padding", "profile-builder"); ?>
1776
+ <?php __("Margin", "profile-builder"); ?>
1777
+ <?php __("Border", "profile-builder"); ?>
1778
+ <?php __("Radius", "profile-builder"); ?>
1779
  <?php __("Form Settings", "profile-builder"); ?>
 
 
 
 
1780
  <?php __("Registration", "profile-builder"); ?>
1781
+ <?php __("Enter URL", "profile-builder"); ?>
1782
+ <?php __("Redirects", "profile-builder"); ?>
1783
+ <?php __("Form", "profile-builder"); ?>
1784
  <?php __("Assigned Role", "profile-builder"); ?>
1785
  <?php __("Automatic Login", "profile-builder"); ?>
1786
+ <?php __("Redirect after Edit Profile", "profile-builder"); ?>
1787
  <?php __("Redirect after Registration", "profile-builder"); ?>
1788
  <?php __("Redirect after Logout", "profile-builder"); ?>
1789
+ <?php __("There are no available controls for the Password Recovery form", "profile-builder"); ?>
translation/profile-builder.pot CHANGED
@@ -305,7 +305,7 @@ msgstr ""
305
  msgid "Login Label"
306
  msgstr ""
307
 
308
- #: ../pb-add-on-custom-profile-menus/index.php:183, ../pb-add-on-custom-profile-menus/index.php:305, ../pb-add-on-custom-profile-menus/wppb-custom-profile-menus.php:13, ../pb-add-on-custom-profile-menus/wppb-custom-profile-menus.php:60, features/login-widget/login-widget.php:61, assets/misc/elementor/widgets/class-widget-login.php:29
309
  msgid "Login"
310
  msgstr ""
311
 
@@ -357,11 +357,11 @@ msgstr ""
357
  msgid "Works only if Display Mode: Logged In Users is selected"
358
  msgstr ""
359
 
360
- #: ../pb-add-on-custom-profile-menus/index.php:308, ../pb-add-on-custom-profile-menus/wppb-custom-profile-menus.php:67, assets/misc/elementor/widgets/class-widget-edit-profile.php:68
361
  msgid "Edit Profile"
362
  msgstr ""
363
 
364
- #: ../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:449, front-end/login.php:446, assets/misc/elementor/widgets/class-widget-register.php:68
365
  msgid "Register"
366
  msgstr ""
367
 
@@ -485,11 +485,11 @@ msgstr ""
485
  msgid "<pre>Title</pre><pre>Type</pre><pre>Meta Name</pre><pre class=\"wppb-mb-head-required\">Required</pre><pre class=\"wppb-mb-head-visibility\"></pre>"
486
  msgstr ""
487
 
488
- #: ../pb-add-on-field-visibility/index.php:240, admin/manage-fields.php:1351, features/functions.php:964, features/functions.php:971, add-ons/custom-redirects/custom_redirects_admin.php:183, add-ons/custom-redirects/custom_redirects_admin.php:197, add-ons/custom-redirects/custom_redirects_admin.php:211, add-ons/custom-redirects/custom_redirects_admin.php:225, add-ons/multiple-forms/multiple-forms.php:406, features/admin-approval/class-admin-approval.php:108, features/roles-editor/roles-editor.php:866
489
  msgid "Edit"
490
  msgstr ""
491
 
492
- #: ../pb-add-on-field-visibility/index.php:240, admin/manage-fields.php:1351, features/functions.php:957, features/functions.php:971, add-ons/custom-redirects/custom_redirects_admin.php:183, add-ons/custom-redirects/custom_redirects_admin.php:197, add-ons/custom-redirects/custom_redirects_admin.php:211, add-ons/custom-redirects/custom_redirects_admin.php:225, features/admin-approval/class-admin-approval.php:113, features/email-confirmation/class-email-confirmation.php:121, features/email-confirmation/class-email-confirmation.php:218, features/roles-editor/roles-editor.php:180, features/roles-editor/roles-editor.php:904, features/roles-editor/roles-editor.php:893, features/roles-editor/roles-editor.php:884, front-end/default-fields/gdpr-delete/gdpr-delete.php:20
493
  msgid "Delete"
494
  msgstr ""
495
 
@@ -757,7 +757,7 @@ msgstr ""
757
  msgid "Display Social Connect buttons:"
758
  msgstr ""
759
 
760
- #: ../pb-add-on-social-connect/index.php:326, admin/general-settings.php:143, admin/general-settings.php:156, admin/general-settings.php:171, admin/general-settings.php:220, admin/general-settings.php:267, admin/general-settings.php:341, admin/manage-fields.php:190, admin/private-website.php:67, admin/private-website.php:134, admin/private-website.php:147, add-ons/multiple-forms/edit-profile-forms.php:206, add-ons/multiple-forms/register-forms.php:229, add-ons/multiple-forms/register-forms.php:230, add-ons/user-listing/userlisting.php:2441, features/content-restriction/content-restriction.php:89, admin/advanced-settings/includes/forms/placeholder-labels.php:135, admin/advanced-settings/includes/views/view-admin.php:18, admin/advanced-settings/includes/views/view-admin.php:34, admin/advanced-settings/includes/views/view-admin.php:50, admin/advanced-settings/includes/views/view-admin.php:69, admin/advanced-settings/includes/views/view-fields.php:18, admin/advanced-settings/includes/views/view-fields.php:66, admin/advanced-settings/includes/views/view-fields.php:181, admin/advanced-settings/includes/views/view-fields.php:197, admin/advanced-settings/includes/views/view-fields.php:217, admin/advanced-settings/includes/views/view-fields.php:240, admin/advanced-settings/includes/views/view-fields.php:261, admin/advanced-settings/includes/views/view-fields.php:279, admin/advanced-settings/includes/views/view-forms.php:19, admin/advanced-settings/includes/views/view-forms.php:148, admin/advanced-settings/includes/views/view-forms.php:165, admin/advanced-settings/includes/views/view-forms.php:180, admin/advanced-settings/includes/views/view-forms.php:200, admin/advanced-settings/includes/views/view-forms.php:217, admin/advanced-settings/includes/views/view-forms.php:255, admin/advanced-settings/includes/views/view-forms.php:276, admin/advanced-settings/includes/views/view-forms.php:296, admin/advanced-settings/includes/views/view-forms.php:318, admin/advanced-settings/includes/views/view-shortcodes.php:16, admin/advanced-settings/includes/views/view-shortcodes.php:32, admin/advanced-settings/includes/views/view-shortcodes.php:48, admin/advanced-settings/includes/views/view-shortcodes.php:64, admin/advanced-settings/includes/views/view-userlisting.php:53, admin/advanced-settings/includes/views/view-userlisting.php:75
761
  msgid "Yes"
762
  msgstr ""
763
 
@@ -809,7 +809,7 @@ msgstr ""
809
  msgid "You will be redirected in 5 seconds. If not, click %%."
810
  msgstr ""
811
 
812
- #: ../pb-add-on-social-connect/index.php:394, features/functions.php:1252
813
  msgid "here"
814
  msgstr ""
815
 
@@ -978,7 +978,7 @@ msgid "Shipping Fields Order"
978
  msgstr ""
979
 
980
  #: ../pb-add-on-woocommerce/index.php:274
981
- msgid "Save the shipping fields order from the billing fields checkboxes"
982
  msgstr ""
983
 
984
  #: ../pb-add-on-woocommerce/index.php:275
@@ -1102,7 +1102,7 @@ msgstr ""
1102
  msgid "Edit this item"
1103
  msgstr ""
1104
 
1105
- #: ../pb-add-on-mailchimp-integration/admin/mailchimp-page.php:171, features/functions.php:950, assets/lib/wck-api/wordpress-creation-kit.php:406
1106
  msgid "Cancel"
1107
  msgstr ""
1108
 
@@ -1570,7 +1570,7 @@ msgstr ""
1570
  msgid "User-Role"
1571
  msgstr ""
1572
 
1573
- #: admin/admin-bar.php:79, add-ons/multiple-forms/edit-profile-forms.php:206, add-ons/multiple-forms/register-forms.php:230, assets/misc/elementor/widgets/class-widget-edit-profile.php:110, assets/misc/elementor/widgets/class-widget-register.php:110
1574
  msgid "Default"
1575
  msgstr ""
1576
 
@@ -1578,7 +1578,7 @@ msgstr ""
1578
  msgid "Show"
1579
  msgstr ""
1580
 
1581
- #: admin/admin-bar.php:81, add-ons/user-listing/userlisting.php:1701
1582
  msgid "Hide"
1583
  msgstr ""
1584
 
@@ -1602,15 +1602,15 @@ msgstr ""
1602
  msgid "Very weak"
1603
  msgstr ""
1604
 
1605
- #: admin/admin-functions.php:138, admin/general-settings.php:327, features/functions.php:760, features/functions.php:784
1606
  msgid "Weak"
1607
  msgstr ""
1608
 
1609
- #: admin/admin-functions.php:138, admin/general-settings.php:328, features/functions.php:760, features/functions.php:784
1610
  msgid "Medium"
1611
  msgstr ""
1612
 
1613
- #: admin/admin-functions.php:138, admin/general-settings.php:329, features/functions.php:760, features/functions.php:784
1614
  msgid "Strong"
1615
  msgstr ""
1616
 
@@ -1714,7 +1714,7 @@ msgstr ""
1714
  msgid "Enable extra features"
1715
  msgstr ""
1716
 
1717
- #: admin/basic-info.php:73, assets/misc/elementor/widgets/class-widget-login.php:74, assets/misc/elementor/widgets/class-widget-recover-password.php:24
1718
  msgid "Recover Password"
1719
  msgstr ""
1720
 
@@ -2094,11 +2094,11 @@ msgstr ""
2094
  msgid "Username and Email"
2095
  msgstr ""
2096
 
2097
- #: admin/general-settings.php:296, admin/manage-fields.php:330, front-end/login.php:255, front-end/login.php:269, front-end/login.php:415, add-ons/custom-redirects/custom_redirects_admin.php:60, add-ons/email-customizer/email-customizer.php:28, add-ons/user-listing/userlisting.php:112, add-ons/user-listing/userlisting.php:328, add-ons/user-listing/userlisting.php:828, add-ons/user-listing/userlisting.php:2395, features/admin-approval/class-admin-approval.php:166, features/email-confirmation/class-email-confirmation.php:168, admin/advanced-settings/includes/views/view-fields.php:121
2098
  msgid "Username"
2099
  msgstr ""
2100
 
2101
- #: admin/general-settings.php:297, front-end/login.php:412, front-end/recover.php:119, add-ons/email-customizer/email-customizer.php:29, add-ons/user-listing/userlisting.php:118, add-ons/user-listing/userlisting.php:834, add-ons/user-listing/userlisting.php:2396, features/admin-approval/class-admin-approval.php:169, features/email-confirmation/class-email-confirmation.php:169, admin/advanced-settings/includes/shortcodes/resend-activation.php:9
2102
  msgid "Email"
2103
  msgstr ""
2104
 
@@ -2247,7 +2247,7 @@ msgid "Terms of Agreement"
2247
  msgstr ""
2248
 
2249
  #: admin/manage-fields.php:194
2250
- msgid "Enter a detailed description of the temrs of agreement for the user to read.<br/>Links can be inserted by using standard HTML syntax: &lt;a href=\"custom_url\"&gt;custom_text&lt;/a&gt;"
2251
  msgstr ""
2252
 
2253
  #: admin/manage-fields.php:195
@@ -2618,7 +2618,7 @@ msgstr ""
2618
  msgid "Usernames cannot be changed."
2619
  msgstr ""
2620
 
2621
- #: admin/manage-fields.php:333, add-ons/user-listing/userlisting.php:867, add-ons/user-listing/userlisting.php:2403
2622
  msgid "Nickname"
2623
  msgstr ""
2624
 
@@ -2630,7 +2630,7 @@ msgstr ""
2630
  msgid "E-mail"
2631
  msgstr ""
2632
 
2633
- #: admin/manage-fields.php:337, add-ons/email-customizer/email-customizer.php:33, add-ons/user-listing/userlisting.php:121, add-ons/user-listing/userlisting.php:849, add-ons/user-listing/userlisting.php:2397
2634
  msgid "Website"
2635
  msgstr ""
2636
 
@@ -2646,7 +2646,7 @@ msgstr ""
2646
  msgid "Jabber / Google Talk"
2647
  msgstr ""
2648
 
2649
- #: admin/manage-fields.php:347, add-ons/user-listing/userlisting.php:124, add-ons/user-listing/userlisting.php:852, add-ons/user-listing/userlisting.php:2398
2650
  msgid "Biographical Info"
2651
  msgstr ""
2652
 
@@ -4434,7 +4434,7 @@ msgstr ""
4434
  msgid "Disable the WordPress REST-API for non-logged in users when Private Website is enabled"
4435
  msgstr ""
4436
 
4437
- #: admin/private-website.php:159, features/functions.php:943, features/content-restriction/content-restriction.php:162, assets/lib/class-mustache-templates/class-mustache-templates.php:392, assets/lib/wck-api/wordpress-creation-kit.php:405, admin/advanced-settings/includes/views/view-admin.php:101, admin/advanced-settings/includes/views/view-fields.php:293, admin/advanced-settings/includes/views/view-forms.php:337, admin/advanced-settings/includes/views/view-shortcodes.php:77, admin/advanced-settings/includes/views/view-userlisting.php:91
4438
  msgid "Save Changes"
4439
  msgstr ""
4440
 
@@ -4514,63 +4514,63 @@ msgstr ""
4514
  msgid "<p>Your <strong>Profile Builder</strong> serial number is invalid or missing. <br/>Please %1$sregister your copy%2$s to receive access to automatic updates and support. Need a license key? %3$sPurchase one now%4$s</p>"
4515
  msgstr ""
4516
 
4517
- #: features/functions.php:321
4518
  msgid "GDPR Checkbox"
4519
  msgstr ""
4520
 
4521
- #: features/functions.php:321
4522
  msgid "I allow the website to collect and store the data I submit through this form."
4523
  msgstr ""
4524
 
4525
- #: features/functions.php:734
4526
  msgid "Strength indicator"
4527
  msgstr ""
4528
 
4529
- #: features/functions.php:760, features/functions.php:784
4530
  msgid "Very Weak"
4531
  msgstr ""
4532
 
4533
- #: features/functions.php:774
4534
  msgid "Minimum length of %d characters."
4535
  msgstr ""
4536
 
4537
- #: features/functions.php:785, front-end/recover.php:368, front-end/default-fields/password/password.php:56
4538
  msgid "The password must have a minimum strength of %s"
4539
  msgstr ""
4540
 
4541
- #: features/functions.php:862
4542
  msgid "This field is required"
4543
  msgstr ""
4544
 
4545
- #: features/functions.php:900, front-end/default-fields/recaptcha/recaptcha.php:529, front-end/default-fields/recaptcha/recaptcha.php:520, front-end/default-fields/recaptcha/recaptcha.php:585, front-end/default-fields/recaptcha/recaptcha.php:633
4546
  msgid "Please enter a (valid) reCAPTCHA value"
4547
  msgstr ""
4548
 
4549
- #: features/functions.php:907
4550
  msgid "Incorrect phone number"
4551
  msgstr ""
4552
 
4553
- #: features/functions.php:971, assets/lib/wck-api/wordpress-creation-kit.php:447
4554
  msgid "Content"
4555
  msgstr ""
4556
 
4557
- #: features/functions.php:1154
4558
  msgid "<br><br>Also, you will be able to visit your site at "
4559
  msgstr ""
4560
 
4561
- #: features/functions.php:1167
4562
  msgid "<br><br>You can visit your site at "
4563
  msgstr ""
4564
 
4565
- #: features/functions.php:1253
4566
  msgid "You will soon be redirected automatically. If you see this page for more than %1$d seconds, please click %2$s.%3$s"
4567
  msgstr ""
4568
 
4569
- #: features/functions.php:1407
4570
  msgid "No feed available,please visit our <a href=\"%s\">homepage</a>!"
4571
  msgstr ""
4572
 
4573
- #: features/functions.php:1448
4574
  msgid "You are not currently logged in."
4575
  msgstr ""
4576
 
@@ -4654,7 +4654,7 @@ msgstr ""
4654
  msgid "Select User"
4655
  msgstr ""
4656
 
4657
- #: front-end/class-formbuilder.php:790
4658
  msgid "Something went wrong. Please try again!"
4659
  msgstr ""
4660
 
@@ -4834,11 +4834,11 @@ msgstr ""
4834
  msgid "Could not create user!"
4835
  msgstr ""
4836
 
4837
- #: add-ons/custom-redirects/custom_redirects_admin.php:49, assets/misc/elementor/widgets/class-widget-login.php:93
4838
  msgid "After Login"
4839
  msgstr ""
4840
 
4841
- #: add-ons/custom-redirects/custom_redirects_admin.php:50, assets/misc/elementor/widgets/class-widget-login.php:102
4842
  msgid "After Logout"
4843
  msgstr ""
4844
 
@@ -5372,27 +5372,27 @@ msgstr ""
5372
  msgid "No Edit-profile Forms found in trash"
5373
  msgstr ""
5374
 
5375
- #: add-ons/multiple-forms/edit-profile-forms.php:135, add-ons/multiple-forms/register-forms.php:138, add-ons/user-listing/userlisting.php:2291
5376
  msgid "Shortcode"
5377
  msgstr ""
5378
 
5379
- #: add-ons/multiple-forms/edit-profile-forms.php:155, add-ons/multiple-forms/register-forms.php:159, add-ons/user-listing/userlisting.php:2312
5380
  msgid "(no title)"
5381
  msgstr ""
5382
 
5383
- #: add-ons/multiple-forms/edit-profile-forms.php:177, add-ons/multiple-forms/register-forms.php:180, add-ons/user-listing/userlisting.php:2334
5384
  msgid "Use this shortcode on the page you want the form to be displayed:"
5385
  msgstr ""
5386
 
5387
- #: add-ons/multiple-forms/edit-profile-forms.php:181, add-ons/multiple-forms/register-forms.php:184, add-ons/user-listing/userlisting.php:2338
5388
  msgid "<span style=\"color:red;\">Note:</span> changing the form title also changes the shortcode!"
5389
  msgstr ""
5390
 
5391
- #: add-ons/multiple-forms/edit-profile-forms.php:175, add-ons/multiple-forms/register-forms.php:178, add-ons/user-listing/userlisting.php:2332
5392
  msgid "The shortcode will be available after you publish this form."
5393
  msgstr ""
5394
 
5395
- #: add-ons/multiple-forms/edit-profile-forms.php:187, add-ons/multiple-forms/register-forms.php:190, add-ons/user-listing/userlisting.php:2371
5396
  msgid "Form Shortcode"
5397
  msgstr ""
5398
 
@@ -5556,7 +5556,7 @@ msgstr ""
5556
  msgid "Display name as"
5557
  msgstr ""
5558
 
5559
- #: add-ons/user-listing/userlisting.php:160, add-ons/user-listing/userlisting.php:330, add-ons/user-listing/userlisting.php:870, add-ons/user-listing/userlisting.php:2405, features/admin-approval/class-admin-approval.php:170, features/roles-editor/roles-editor.php:256
5560
  msgid "Role"
5561
  msgstr ""
5562
 
@@ -5564,11 +5564,11 @@ msgstr ""
5564
  msgid "Role Slug"
5565
  msgstr ""
5566
 
5567
- #: add-ons/user-listing/userlisting.php:162, add-ons/user-listing/userlisting.php:2399
5568
  msgid "Registration Date"
5569
  msgstr ""
5570
 
5571
- #: add-ons/user-listing/userlisting.php:163, add-ons/user-listing/userlisting.php:2404
5572
  msgid "Number of Posts"
5573
  msgstr ""
5574
 
@@ -5596,7 +5596,7 @@ msgstr ""
5596
  msgid "Search all Fields"
5597
  msgstr ""
5598
 
5599
- #: add-ons/user-listing/userlisting.php:215, add-ons/user-listing/userlisting.php:2483
5600
  msgid "Faceted Menus"
5601
  msgstr ""
5602
 
@@ -5632,7 +5632,7 @@ msgstr ""
5632
  msgid "Avatar"
5633
  msgstr ""
5634
 
5635
- #: add-ons/user-listing/userlisting.php:329, add-ons/user-listing/userlisting.php:840, add-ons/user-listing/userlisting.php:2400, features/admin-approval/class-admin-approval.php:167
5636
  msgid "Firstname"
5637
  msgstr ""
5638
 
@@ -5660,23 +5660,23 @@ msgstr ""
5660
  msgid "User not found"
5661
  msgstr ""
5662
 
5663
- #: add-ons/user-listing/userlisting.php:864, add-ons/user-listing/userlisting.php:2411
5664
  msgid "Jabber"
5665
  msgstr ""
5666
 
5667
- #: add-ons/user-listing/userlisting.php:861, add-ons/user-listing/userlisting.php:2410
5668
  msgid "Yim"
5669
  msgstr ""
5670
 
5671
- #: add-ons/user-listing/userlisting.php:858, add-ons/user-listing/userlisting.php:2409
5672
  msgid "Aim"
5673
  msgstr ""
5674
 
5675
- #: add-ons/user-listing/userlisting.php:846, add-ons/user-listing/userlisting.php:2402
5676
  msgid "Display Name"
5677
  msgstr ""
5678
 
5679
- #: add-ons/user-listing/userlisting.php:843, add-ons/user-listing/userlisting.php:2401, features/admin-approval/class-admin-approval.php:168
5680
  msgid "Lastname"
5681
  msgstr ""
5682
 
@@ -5684,7 +5684,7 @@ msgstr ""
5684
  msgid "First/Lastname"
5685
  msgstr ""
5686
 
5687
- #: add-ons/user-listing/userlisting.php:1151, add-ons/user-listing/userlisting.php:1632, add-ons/user-listing/userlisting.php:2118, add-ons/user-listing/userlisting.php:2603
5688
  msgid "Search Users by All Fields"
5689
  msgstr ""
5690
 
@@ -5704,235 +5704,235 @@ msgstr ""
5704
  msgid "View Map"
5705
  msgstr ""
5706
 
5707
- #: add-ons/user-listing/userlisting.php:1589, add-ons/user-listing/userlisting.php:1586
5708
  msgid "Click here to go back"
5709
  msgstr ""
5710
 
5711
- #: add-ons/user-listing/userlisting.php:1586, add-ons/user-listing/userlisting.php:1586
5712
  msgid "Back"
5713
  msgstr ""
5714
 
5715
- #: add-ons/user-listing/userlisting.php:1651
5716
  msgid "You don't have any pagination settings on this userlisting!"
5717
  msgstr ""
5718
 
5719
- #: add-ons/user-listing/userlisting.php:1619
5720
  msgid "&laquo;&laquo; First"
5721
  msgstr ""
5722
 
5723
- #: add-ons/user-listing/userlisting.php:1620
5724
  msgid "&laquo; Prev"
5725
  msgstr ""
5726
 
5727
- #: add-ons/user-listing/userlisting.php:1621
5728
  msgid "Next &raquo; "
5729
  msgstr ""
5730
 
5731
- #: add-ons/user-listing/userlisting.php:1622
5732
  msgid "Last &raquo;&raquo;"
5733
  msgstr ""
5734
 
5735
- #: add-ons/user-listing/userlisting.php:1700
5736
  msgid "Show All"
5737
  msgstr ""
5738
 
5739
- #: add-ons/user-listing/userlisting.php:1776
5740
  msgid "Choose..."
5741
  msgstr ""
5742
 
5743
- #: add-ons/user-listing/userlisting.php:1865
5744
  msgid "No options available"
5745
  msgstr ""
5746
 
5747
- #: add-ons/user-listing/userlisting.php:2020
5748
  msgid "Remove All Filters"
5749
  msgstr ""
5750
 
5751
- #: add-ons/user-listing/userlisting.php:2135
5752
  msgid "Search"
5753
  msgstr ""
5754
 
5755
- #: add-ons/user-listing/userlisting.php:2136
5756
  msgid "Clear Results"
5757
  msgstr ""
5758
 
5759
- #: add-ons/user-listing/userlisting.php:2341, add-ons/user-listing/userlisting.php:2345
5760
  msgid "Extra shortcode parameters"
5761
  msgstr ""
5762
 
5763
- #: add-ons/user-listing/userlisting.php:2343
5764
  msgid "View all extra shortcode parameters"
5765
  msgstr ""
5766
 
5767
- #: add-ons/user-listing/userlisting.php:2348
5768
  msgid "displays users having a certain meta-value within a certain (extra) meta-field"
5769
  msgstr ""
5770
 
5771
- #: add-ons/user-listing/userlisting.php:2349
5772
  msgid "Example:"
5773
  msgstr ""
5774
 
5775
- #: add-ons/user-listing/userlisting.php:2351
5776
  msgid "Remember though, that the field-value combination must exist in the database."
5777
  msgstr ""
5778
 
5779
- #: add-ons/user-listing/userlisting.php:2357
5780
  msgid "displays only the users that you specified the user_id for"
5781
  msgstr ""
5782
 
5783
- #: add-ons/user-listing/userlisting.php:2363
5784
  msgid "displays all users except the ones you specified the user_id for"
5785
  msgstr ""
5786
 
5787
- #: add-ons/user-listing/userlisting.php:2426
5788
  msgid "Random (very slow on large databases > 10K user)"
5789
  msgstr ""
5790
 
5791
- #: add-ons/user-listing/userlisting.php:2429
5792
  msgid "Ascending"
5793
  msgstr ""
5794
 
5795
- #: add-ons/user-listing/userlisting.php:2430
5796
  msgid "Descending"
5797
  msgstr ""
5798
 
5799
- #: add-ons/user-listing/userlisting.php:2435
5800
  msgid "Roles to Display"
5801
  msgstr ""
5802
 
5803
- #: add-ons/user-listing/userlisting.php:2435
5804
  msgid "Restrict the userlisting to these selected roles only<br/>If not specified, defaults to all existing roles"
5805
  msgstr ""
5806
 
5807
- #: add-ons/user-listing/userlisting.php:2436
5808
  msgid "Number of Users/Page"
5809
  msgstr ""
5810
 
5811
- #: add-ons/user-listing/userlisting.php:2436
5812
  msgid "Set the number of users to be displayed on every paginated part of the all-userlisting"
5813
  msgstr ""
5814
 
5815
- #: add-ons/user-listing/userlisting.php:2437
5816
  msgid "Default Sorting Criteria"
5817
  msgstr ""
5818
 
5819
- #: add-ons/user-listing/userlisting.php:2437
5820
  msgid "Set the default sorting criteria<br/>This can temporarily be changed for each new session"
5821
  msgstr ""
5822
 
5823
- #: add-ons/user-listing/userlisting.php:2438
5824
  msgid "Default Sorting Order"
5825
  msgstr ""
5826
 
5827
- #: add-ons/user-listing/userlisting.php:2438
5828
  msgid "Set the default sorting order<br/>This can temporarily be changed for each new session"
5829
  msgstr ""
5830
 
5831
- #: add-ons/user-listing/userlisting.php:2439
5832
  msgid "Avatar Size (All-userlisting)"
5833
  msgstr ""
5834
 
5835
- #: add-ons/user-listing/userlisting.php:2439
5836
  msgid "Set the avatar size on the all-userlisting only"
5837
  msgstr ""
5838
 
5839
- #: add-ons/user-listing/userlisting.php:2440
5840
  msgid "Avatar Size (Single-userlisting)"
5841
  msgstr ""
5842
 
5843
- #: add-ons/user-listing/userlisting.php:2440
5844
  msgid "Set the avatar size on the single-userlisting only"
5845
  msgstr ""
5846
 
5847
- #: add-ons/user-listing/userlisting.php:2441
5848
  msgid "Visible only to logged in users?"
5849
  msgstr ""
5850
 
5851
- #: add-ons/user-listing/userlisting.php:2441
5852
  msgid "The userlisting will only be visible only to the logged in users"
5853
  msgstr ""
5854
 
5855
- #: add-ons/user-listing/userlisting.php:2442
5856
  msgid "Visible to following Roles"
5857
  msgstr ""
5858
 
5859
- #: add-ons/user-listing/userlisting.php:2442
5860
  msgid "The userlisting will only be visible to the following roles"
5861
  msgstr ""
5862
 
5863
- #: add-ons/user-listing/userlisting.php:2448
5864
  msgid "Userlisting Settings"
5865
  msgstr ""
5866
 
5867
- #: add-ons/user-listing/userlisting.php:2473
5868
  msgid "Label"
5869
  msgstr ""
5870
 
5871
- #: add-ons/user-listing/userlisting.php:2473
5872
  msgid "Choose the facet name that appears on the frontend"
5873
  msgstr ""
5874
 
5875
- #: add-ons/user-listing/userlisting.php:2474
5876
  msgid "Facet Type"
5877
  msgstr ""
5878
 
5879
- #: add-ons/user-listing/userlisting.php:2474
5880
  msgid "Choose the facet menu type"
5881
  msgstr ""
5882
 
5883
- #: add-ons/user-listing/userlisting.php:2475
5884
  msgid "Facet Meta"
5885
  msgstr ""
5886
 
5887
- #: add-ons/user-listing/userlisting.php:2475
5888
  msgid "Choose the meta field for the facet menu. If you want to use a repeater meta or a meta outisde Profile Builder just type the value and press enter."
5889
  msgstr ""
5890
 
5891
- #: add-ons/user-listing/userlisting.php:2476
5892
  msgid "Behaviour"
5893
  msgstr ""
5894
 
5895
- #: add-ons/user-listing/userlisting.php:2476
5896
  msgid "Narrow the results"
5897
  msgstr ""
5898
 
5899
- #: add-ons/user-listing/userlisting.php:2476
5900
  msgid "Expand the results"
5901
  msgstr ""
5902
 
5903
- #: add-ons/user-listing/userlisting.php:2476
5904
  msgid "Choose how multiple selections affect the results"
5905
  msgstr ""
5906
 
5907
- #: add-ons/user-listing/userlisting.php:2477
5908
  msgid "Visible choices"
5909
  msgstr ""
5910
 
5911
- #: add-ons/user-listing/userlisting.php:2477
5912
  msgid "Show a toggle link after this many choices. Leave blank for all"
5913
  msgstr ""
5914
 
5915
- #: add-ons/user-listing/userlisting.php:2502
5916
  msgid "Search Fields"
5917
  msgstr ""
5918
 
5919
- #: add-ons/user-listing/userlisting.php:2502
5920
  msgid "Choose the fields in which the Search Field will look in"
5921
  msgstr ""
5922
 
5923
- #: add-ons/user-listing/userlisting.php:2507
5924
  msgid "Search Settings"
5925
  msgstr ""
5926
 
5927
- #: add-ons/user-listing/userlisting.php:2579
5928
  msgid "You need to activate the Userlisting feature from within the \"Add-ons\" page!"
5929
  msgstr ""
5930
 
5931
- #: add-ons/user-listing/userlisting.php:2579
5932
  msgid "You can find it in the Profile Builder menu."
5933
  msgstr ""
5934
 
5935
- #: add-ons/user-listing/userlisting.php:2742
5936
  msgid "No results found!"
5937
  msgstr ""
5938
 
@@ -6807,7 +6807,7 @@ msgid "Admin Emails:"
6807
  msgstr ""
6808
 
6809
  #: admin/advanced-settings/includes/views/view-admin.php:90
6810
- msgid "Add email addresses, separated by comma, for people you wish to receive notifications from Profile Builder. These addresses will overwrite the default Email Adress from <a href=\"%s\">Settings -> General</a>"
6811
  msgstr ""
6812
 
6813
  #: admin/advanced-settings/includes/views/view-fields.php:14
@@ -7090,6 +7090,18 @@ msgstr ""
7090
  msgid "The meta name for the field will be <strong>last_profile_update_date</strong>."
7091
  msgstr ""
7092
 
 
 
 
 
 
 
 
 
 
 
 
 
7093
  #: admin/advanced-settings/includes/views/view-shortcodes.php:12
7094
  msgid "Enable Compare shortcode"
7095
  msgstr ""
@@ -7174,46 +7186,78 @@ msgstr ""
7174
  msgid "Select or type in an option"
7175
  msgstr ""
7176
 
7177
- #: assets/misc/elementor/widgets/class-widget-edit-profile.php:96, assets/misc/elementor/widgets/class-widget-login.php:57, assets/misc/elementor/widgets/class-widget-recover-password.php:52, assets/misc/elementor/widgets/class-widget-register.php:96
7178
- msgid "Form Settings"
7179
  msgstr ""
7180
 
7181
- #: assets/misc/elementor/widgets/class-widget-edit-profile.php:125, assets/misc/elementor/widgets/class-widget-register.php:124
7182
- msgid "Form"
7183
  msgstr ""
7184
 
7185
- #: assets/misc/elementor/widgets/class-widget-edit-profile.php:154, assets/misc/elementor/widgets/class-widget-login.php:85, assets/misc/elementor/widgets/class-widget-register.php:189
7186
- msgid "Redirects"
7187
  msgstr ""
7188
 
7189
- #: assets/misc/elementor/widgets/class-widget-edit-profile.php:165
7190
- msgid "Redirect after Edit Profile"
7191
  msgstr ""
7192
 
7193
- #: assets/misc/elementor/widgets/class-widget-edit-profile.php:167, assets/misc/elementor/widgets/class-widget-login.php:67, assets/misc/elementor/widgets/class-widget-login.php:76, assets/misc/elementor/widgets/class-widget-login.php:95, assets/misc/elementor/widgets/class-widget-login.php:104, assets/misc/elementor/widgets/class-widget-register.php:199, assets/misc/elementor/widgets/class-widget-register.php:211
7194
- msgid "Enter URL"
 
 
 
 
 
 
 
 
 
 
 
 
7195
  msgstr ""
7196
 
7197
- #: assets/misc/elementor/widgets/class-widget-login.php:65
 
 
 
 
7198
  msgid "Registration"
7199
  msgstr ""
7200
 
7201
- #: assets/misc/elementor/widgets/class-widget-recover-password.php:61
7202
- msgid "There are no available controls for the Password Recovery form"
7203
  msgstr ""
7204
 
7205
- #: assets/misc/elementor/widgets/class-widget-register.php:142
 
 
 
 
 
 
 
 
7206
  msgid "Assigned Role"
7207
  msgstr ""
7208
 
7209
- #: assets/misc/elementor/widgets/class-widget-register.php:155
7210
  msgid "Automatic Login"
7211
  msgstr ""
7212
 
7213
- #: assets/misc/elementor/widgets/class-widget-register.php:197
 
 
 
 
7214
  msgid "Redirect after Registration"
7215
  msgstr ""
7216
 
7217
- #: assets/misc/elementor/widgets/class-widget-register.php:209
7218
  msgid "Redirect after Logout"
7219
  msgstr ""
 
 
 
 
305
  msgid "Login Label"
306
  msgstr ""
307
 
308
+ #: ../pb-add-on-custom-profile-menus/index.php:183, ../pb-add-on-custom-profile-menus/index.php:305, ../pb-add-on-custom-profile-menus/wppb-custom-profile-menus.php:13, ../pb-add-on-custom-profile-menus/wppb-custom-profile-menus.php:60, features/login-widget/login-widget.php:61, assets/misc/elementor/widgets/class-pb-widget-l.php:26
309
  msgid "Login"
310
  msgstr ""
311
 
357
  msgid "Works only if Display Mode: Logged In Users is selected"
358
  msgstr ""
359
 
360
+ #: ../pb-add-on-custom-profile-menus/index.php:308, ../pb-add-on-custom-profile-menus/wppb-custom-profile-menus.php:67, assets/misc/elementor/widgets/class-pb-widget-epf.php:32
361
  msgid "Edit Profile"
362
  msgstr ""
363
 
364
+ #: ../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:449, front-end/login.php:446, assets/misc/elementor/widgets/class-pb-widget-rf.php:32
365
  msgid "Register"
366
  msgstr ""
367
 
485
  msgid "<pre>Title</pre><pre>Type</pre><pre>Meta Name</pre><pre class=\"wppb-mb-head-required\">Required</pre><pre class=\"wppb-mb-head-visibility\"></pre>"
486
  msgstr ""
487
 
488
+ #: ../pb-add-on-field-visibility/index.php:240, admin/manage-fields.php:1351, features/functions.php:969, features/functions.php:976, add-ons/custom-redirects/custom_redirects_admin.php:183, add-ons/custom-redirects/custom_redirects_admin.php:197, add-ons/custom-redirects/custom_redirects_admin.php:211, add-ons/custom-redirects/custom_redirects_admin.php:225, add-ons/multiple-forms/multiple-forms.php:406, features/admin-approval/class-admin-approval.php:108, features/roles-editor/roles-editor.php:866
489
  msgid "Edit"
490
  msgstr ""
491
 
492
+ #: ../pb-add-on-field-visibility/index.php:240, admin/manage-fields.php:1351, features/functions.php:962, features/functions.php:976, add-ons/custom-redirects/custom_redirects_admin.php:183, add-ons/custom-redirects/custom_redirects_admin.php:197, add-ons/custom-redirects/custom_redirects_admin.php:211, add-ons/custom-redirects/custom_redirects_admin.php:225, features/admin-approval/class-admin-approval.php:113, features/email-confirmation/class-email-confirmation.php:121, features/email-confirmation/class-email-confirmation.php:218, features/roles-editor/roles-editor.php:180, features/roles-editor/roles-editor.php:904, features/roles-editor/roles-editor.php:893, features/roles-editor/roles-editor.php:884, front-end/default-fields/gdpr-delete/gdpr-delete.php:20
493
  msgid "Delete"
494
  msgstr ""
495
 
757
  msgid "Display Social Connect buttons:"
758
  msgstr ""
759
 
760
+ #: ../pb-add-on-social-connect/index.php:326, admin/general-settings.php:143, admin/general-settings.php:156, admin/general-settings.php:171, admin/general-settings.php:220, admin/general-settings.php:267, admin/general-settings.php:341, admin/manage-fields.php:190, admin/private-website.php:67, admin/private-website.php:134, admin/private-website.php:147, add-ons/multiple-forms/edit-profile-forms.php:206, add-ons/multiple-forms/register-forms.php:229, add-ons/multiple-forms/register-forms.php:230, add-ons/user-listing/userlisting.php:2444, features/content-restriction/content-restriction.php:89, admin/advanced-settings/includes/forms/placeholder-labels.php:135, admin/advanced-settings/includes/views/view-admin.php:18, admin/advanced-settings/includes/views/view-admin.php:34, admin/advanced-settings/includes/views/view-admin.php:50, admin/advanced-settings/includes/views/view-admin.php:69, admin/advanced-settings/includes/views/view-fields.php:18, admin/advanced-settings/includes/views/view-fields.php:66, admin/advanced-settings/includes/views/view-fields.php:181, admin/advanced-settings/includes/views/view-fields.php:197, admin/advanced-settings/includes/views/view-fields.php:217, admin/advanced-settings/includes/views/view-fields.php:240, admin/advanced-settings/includes/views/view-fields.php:261, admin/advanced-settings/includes/views/view-fields.php:279, admin/advanced-settings/includes/views/view-forms.php:19, admin/advanced-settings/includes/views/view-forms.php:148, admin/advanced-settings/includes/views/view-forms.php:165, admin/advanced-settings/includes/views/view-forms.php:180, admin/advanced-settings/includes/views/view-forms.php:200, admin/advanced-settings/includes/views/view-forms.php:217, admin/advanced-settings/includes/views/view-forms.php:255, admin/advanced-settings/includes/views/view-forms.php:276, admin/advanced-settings/includes/views/view-forms.php:296, admin/advanced-settings/includes/views/view-forms.php:318, admin/advanced-settings/includes/views/view-forms.php:340, admin/advanced-settings/includes/views/view-shortcodes.php:16, admin/advanced-settings/includes/views/view-shortcodes.php:32, admin/advanced-settings/includes/views/view-shortcodes.php:48, admin/advanced-settings/includes/views/view-shortcodes.php:64, admin/advanced-settings/includes/views/view-userlisting.php:53, admin/advanced-settings/includes/views/view-userlisting.php:75
761
  msgid "Yes"
762
  msgstr ""
763
 
809
  msgid "You will be redirected in 5 seconds. If not, click %%."
810
  msgstr ""
811
 
812
+ #: ../pb-add-on-social-connect/index.php:394, features/functions.php:1261
813
  msgid "here"
814
  msgstr ""
815
 
978
  msgstr ""
979
 
980
  #: ../pb-add-on-woocommerce/index.php:274
981
+ msgid "Save the shipping fields order from the shipping fields checkboxes"
982
  msgstr ""
983
 
984
  #: ../pb-add-on-woocommerce/index.php:275
1102
  msgid "Edit this item"
1103
  msgstr ""
1104
 
1105
+ #: ../pb-add-on-mailchimp-integration/admin/mailchimp-page.php:171, features/functions.php:955, assets/lib/wck-api/wordpress-creation-kit.php:406
1106
  msgid "Cancel"
1107
  msgstr ""
1108
 
1570
  msgid "User-Role"
1571
  msgstr ""
1572
 
1573
+ #: admin/admin-bar.php:79, add-ons/multiple-forms/edit-profile-forms.php:206, add-ons/multiple-forms/register-forms.php:230, assets/misc/elementor/widgets/class-pb-widget-rf-epf.php:94
1574
  msgid "Default"
1575
  msgstr ""
1576
 
1578
  msgid "Show"
1579
  msgstr ""
1580
 
1581
+ #: admin/admin-bar.php:81, add-ons/user-listing/userlisting.php:1704
1582
  msgid "Hide"
1583
  msgstr ""
1584
 
1602
  msgid "Very weak"
1603
  msgstr ""
1604
 
1605
+ #: admin/admin-functions.php:138, admin/general-settings.php:327, features/functions.php:765, features/functions.php:789
1606
  msgid "Weak"
1607
  msgstr ""
1608
 
1609
+ #: admin/admin-functions.php:138, admin/general-settings.php:328, features/functions.php:765, features/functions.php:789
1610
  msgid "Medium"
1611
  msgstr ""
1612
 
1613
+ #: admin/admin-functions.php:138, admin/general-settings.php:329, features/functions.php:765, features/functions.php:789
1614
  msgid "Strong"
1615
  msgstr ""
1616
 
1714
  msgid "Enable extra features"
1715
  msgstr ""
1716
 
1717
+ #: admin/basic-info.php:73, assets/misc/elementor/widgets/class-pb-widget-l.php:63, assets/misc/elementor/widgets/class-pb-widget-rp.php:26
1718
  msgid "Recover Password"
1719
  msgstr ""
1720
 
2094
  msgid "Username and Email"
2095
  msgstr ""
2096
 
2097
+ #: admin/general-settings.php:296, admin/manage-fields.php:330, front-end/login.php:255, front-end/login.php:269, front-end/login.php:415, add-ons/custom-redirects/custom_redirects_admin.php:60, add-ons/email-customizer/email-customizer.php:28, add-ons/user-listing/userlisting.php:112, add-ons/user-listing/userlisting.php:328, add-ons/user-listing/userlisting.php:828, add-ons/user-listing/userlisting.php:2398, features/admin-approval/class-admin-approval.php:166, features/email-confirmation/class-email-confirmation.php:168, admin/advanced-settings/includes/views/view-fields.php:121
2098
  msgid "Username"
2099
  msgstr ""
2100
 
2101
+ #: admin/general-settings.php:297, front-end/login.php:412, front-end/recover.php:119, add-ons/email-customizer/email-customizer.php:29, add-ons/user-listing/userlisting.php:118, add-ons/user-listing/userlisting.php:834, add-ons/user-listing/userlisting.php:2399, features/admin-approval/class-admin-approval.php:169, features/email-confirmation/class-email-confirmation.php:169, admin/advanced-settings/includes/shortcodes/resend-activation.php:9
2102
  msgid "Email"
2103
  msgstr ""
2104
 
2247
  msgstr ""
2248
 
2249
  #: admin/manage-fields.php:194
2250
+ msgid "Enter a detailed description of the terms of agreement for the user to read.<br/>Links can be inserted by using standard HTML syntax: &lt;a href=\"custom_url\"&gt;custom_text&lt;/a&gt;"
2251
  msgstr ""
2252
 
2253
  #: admin/manage-fields.php:195
2618
  msgid "Usernames cannot be changed."
2619
  msgstr ""
2620
 
2621
+ #: admin/manage-fields.php:333, add-ons/user-listing/userlisting.php:867, add-ons/user-listing/userlisting.php:2406
2622
  msgid "Nickname"
2623
  msgstr ""
2624
 
2630
  msgid "E-mail"
2631
  msgstr ""
2632
 
2633
+ #: admin/manage-fields.php:337, add-ons/email-customizer/email-customizer.php:33, add-ons/user-listing/userlisting.php:121, add-ons/user-listing/userlisting.php:849, add-ons/user-listing/userlisting.php:2400
2634
  msgid "Website"
2635
  msgstr ""
2636
 
2646
  msgid "Jabber / Google Talk"
2647
  msgstr ""
2648
 
2649
+ #: admin/manage-fields.php:347, add-ons/user-listing/userlisting.php:124, add-ons/user-listing/userlisting.php:852, add-ons/user-listing/userlisting.php:2401
2650
  msgid "Biographical Info"
2651
  msgstr ""
2652
 
4434
  msgid "Disable the WordPress REST-API for non-logged in users when Private Website is enabled"
4435
  msgstr ""
4436
 
4437
+ #: admin/private-website.php:159, features/functions.php:948, features/content-restriction/content-restriction.php:162, assets/lib/class-mustache-templates/class-mustache-templates.php:392, assets/lib/wck-api/wordpress-creation-kit.php:405, admin/advanced-settings/includes/views/view-admin.php:101, admin/advanced-settings/includes/views/view-fields.php:293, admin/advanced-settings/includes/views/view-forms.php:356, admin/advanced-settings/includes/views/view-shortcodes.php:77, admin/advanced-settings/includes/views/view-userlisting.php:91
4438
  msgid "Save Changes"
4439
  msgstr ""
4440
 
4514
  msgid "<p>Your <strong>Profile Builder</strong> serial number is invalid or missing. <br/>Please %1$sregister your copy%2$s to receive access to automatic updates and support. Need a license key? %3$sPurchase one now%4$s</p>"
4515
  msgstr ""
4516
 
4517
+ #: features/functions.php:326
4518
  msgid "GDPR Checkbox"
4519
  msgstr ""
4520
 
4521
+ #: features/functions.php:326
4522
  msgid "I allow the website to collect and store the data I submit through this form."
4523
  msgstr ""
4524
 
4525
+ #: features/functions.php:739
4526
  msgid "Strength indicator"
4527
  msgstr ""
4528
 
4529
+ #: features/functions.php:765, features/functions.php:789
4530
  msgid "Very Weak"
4531
  msgstr ""
4532
 
4533
+ #: features/functions.php:779
4534
  msgid "Minimum length of %d characters."
4535
  msgstr ""
4536
 
4537
+ #: features/functions.php:790, front-end/recover.php:368, front-end/default-fields/password/password.php:56
4538
  msgid "The password must have a minimum strength of %s"
4539
  msgstr ""
4540
 
4541
+ #: features/functions.php:867
4542
  msgid "This field is required"
4543
  msgstr ""
4544
 
4545
+ #: features/functions.php:905, front-end/default-fields/recaptcha/recaptcha.php:529, front-end/default-fields/recaptcha/recaptcha.php:520, front-end/default-fields/recaptcha/recaptcha.php:585, front-end/default-fields/recaptcha/recaptcha.php:633
4546
  msgid "Please enter a (valid) reCAPTCHA value"
4547
  msgstr ""
4548
 
4549
+ #: features/functions.php:912
4550
  msgid "Incorrect phone number"
4551
  msgstr ""
4552
 
4553
+ #: features/functions.php:976, assets/lib/wck-api/wordpress-creation-kit.php:447
4554
  msgid "Content"
4555
  msgstr ""
4556
 
4557
+ #: features/functions.php:1159
4558
  msgid "<br><br>Also, you will be able to visit your site at "
4559
  msgstr ""
4560
 
4561
+ #: features/functions.php:1172
4562
  msgid "<br><br>You can visit your site at "
4563
  msgstr ""
4564
 
4565
+ #: features/functions.php:1262
4566
  msgid "You will soon be redirected automatically. If you see this page for more than %1$d seconds, please click %2$s.%3$s"
4567
  msgstr ""
4568
 
4569
+ #: features/functions.php:1416
4570
  msgid "No feed available,please visit our <a href=\"%s\">homepage</a>!"
4571
  msgstr ""
4572
 
4573
+ #: features/functions.php:1457
4574
  msgid "You are not currently logged in."
4575
  msgstr ""
4576
 
4654
  msgid "Select User"
4655
  msgstr ""
4656
 
4657
+ #: front-end/class-formbuilder.php:793
4658
  msgid "Something went wrong. Please try again!"
4659
  msgstr ""
4660
 
4834
  msgid "Could not create user!"
4835
  msgstr ""
4836
 
4837
+ #: add-ons/custom-redirects/custom_redirects_admin.php:49, assets/misc/elementor/widgets/class-pb-widget-l.php:82
4838
  msgid "After Login"
4839
  msgstr ""
4840
 
4841
+ #: add-ons/custom-redirects/custom_redirects_admin.php:50, assets/misc/elementor/widgets/class-pb-widget-l.php:91
4842
  msgid "After Logout"
4843
  msgstr ""
4844
 
5372
  msgid "No Edit-profile Forms found in trash"
5373
  msgstr ""
5374
 
5375
+ #: add-ons/multiple-forms/edit-profile-forms.php:135, add-ons/multiple-forms/register-forms.php:138, add-ons/user-listing/userlisting.php:2294
5376
  msgid "Shortcode"
5377
  msgstr ""
5378
 
5379
+ #: add-ons/multiple-forms/edit-profile-forms.php:155, add-ons/multiple-forms/register-forms.php:159, add-ons/user-listing/userlisting.php:2315
5380
  msgid "(no title)"
5381
  msgstr ""
5382
 
5383
+ #: add-ons/multiple-forms/edit-profile-forms.php:177, add-ons/multiple-forms/register-forms.php:180, add-ons/user-listing/userlisting.php:2337
5384
  msgid "Use this shortcode on the page you want the form to be displayed:"
5385
  msgstr ""
5386
 
5387
+ #: add-ons/multiple-forms/edit-profile-forms.php:181, add-ons/multiple-forms/register-forms.php:184, add-ons/user-listing/userlisting.php:2341
5388
  msgid "<span style=\"color:red;\">Note:</span> changing the form title also changes the shortcode!"
5389
  msgstr ""
5390
 
5391
+ #: add-ons/multiple-forms/edit-profile-forms.php:175, add-ons/multiple-forms/register-forms.php:178, add-ons/user-listing/userlisting.php:2335
5392
  msgid "The shortcode will be available after you publish this form."
5393
  msgstr ""
5394
 
5395
+ #: add-ons/multiple-forms/edit-profile-forms.php:187, add-ons/multiple-forms/register-forms.php:190, add-ons/user-listing/userlisting.php:2374
5396
  msgid "Form Shortcode"
5397
  msgstr ""
5398
 
5556
  msgid "Display name as"
5557
  msgstr ""
5558
 
5559
+ #: add-ons/user-listing/userlisting.php:160, add-ons/user-listing/userlisting.php:330, add-ons/user-listing/userlisting.php:870, add-ons/user-listing/userlisting.php:2408, features/admin-approval/class-admin-approval.php:170, features/roles-editor/roles-editor.php:256
5560
  msgid "Role"
5561
  msgstr ""
5562
 
5564
  msgid "Role Slug"
5565
  msgstr ""
5566
 
5567
+ #: add-ons/user-listing/userlisting.php:162, add-ons/user-listing/userlisting.php:2402
5568
  msgid "Registration Date"
5569
  msgstr ""
5570
 
5571
+ #: add-ons/user-listing/userlisting.php:163, add-ons/user-listing/userlisting.php:2407
5572
  msgid "Number of Posts"
5573
  msgstr ""
5574
 
5596
  msgid "Search all Fields"
5597
  msgstr ""
5598
 
5599
+ #: add-ons/user-listing/userlisting.php:215, add-ons/user-listing/userlisting.php:2486
5600
  msgid "Faceted Menus"
5601
  msgstr ""
5602
 
5632
  msgid "Avatar"
5633
  msgstr ""
5634
 
5635
+ #: add-ons/user-listing/userlisting.php:329, add-ons/user-listing/userlisting.php:840, add-ons/user-listing/userlisting.php:2403, features/admin-approval/class-admin-approval.php:167
5636
  msgid "Firstname"
5637
  msgstr ""
5638
 
5660
  msgid "User not found"
5661
  msgstr ""
5662
 
5663
+ #: add-ons/user-listing/userlisting.php:864, add-ons/user-listing/userlisting.php:2414
5664
  msgid "Jabber"
5665
  msgstr ""
5666
 
5667
+ #: add-ons/user-listing/userlisting.php:861, add-ons/user-listing/userlisting.php:2413
5668
  msgid "Yim"
5669
  msgstr ""
5670
 
5671
+ #: add-ons/user-listing/userlisting.php:858, add-ons/user-listing/userlisting.php:2412
5672
  msgid "Aim"
5673
  msgstr ""
5674
 
5675
+ #: add-ons/user-listing/userlisting.php:846, add-ons/user-listing/userlisting.php:2405
5676
  msgid "Display Name"
5677
  msgstr ""
5678
 
5679
+ #: add-ons/user-listing/userlisting.php:843, add-ons/user-listing/userlisting.php:2404, features/admin-approval/class-admin-approval.php:168
5680
  msgid "Lastname"
5681
  msgstr ""
5682
 
5684
  msgid "First/Lastname"
5685
  msgstr ""
5686
 
5687
+ #: add-ons/user-listing/userlisting.php:1151, add-ons/user-listing/userlisting.php:1635, add-ons/user-listing/userlisting.php:2121, add-ons/user-listing/userlisting.php:2606
5688
  msgid "Search Users by All Fields"
5689
  msgstr ""
5690
 
5704
  msgid "View Map"
5705
  msgstr ""
5706
 
5707
+ #: add-ons/user-listing/userlisting.php:1592, add-ons/user-listing/userlisting.php:1589
5708
  msgid "Click here to go back"
5709
  msgstr ""
5710
 
5711
+ #: add-ons/user-listing/userlisting.php:1589, add-ons/user-listing/userlisting.php:1589
5712
  msgid "Back"
5713
  msgstr ""
5714
 
5715
+ #: add-ons/user-listing/userlisting.php:1654
5716
  msgid "You don't have any pagination settings on this userlisting!"
5717
  msgstr ""
5718
 
5719
+ #: add-ons/user-listing/userlisting.php:1622
5720
  msgid "&laquo;&laquo; First"
5721
  msgstr ""
5722
 
5723
+ #: add-ons/user-listing/userlisting.php:1623
5724
  msgid "&laquo; Prev"
5725
  msgstr ""
5726
 
5727
+ #: add-ons/user-listing/userlisting.php:1624
5728
  msgid "Next &raquo; "
5729
  msgstr ""
5730
 
5731
+ #: add-ons/user-listing/userlisting.php:1625
5732
  msgid "Last &raquo;&raquo;"
5733
  msgstr ""
5734
 
5735
+ #: add-ons/user-listing/userlisting.php:1703
5736
  msgid "Show All"
5737
  msgstr ""
5738
 
5739
+ #: add-ons/user-listing/userlisting.php:1779
5740
  msgid "Choose..."
5741
  msgstr ""
5742
 
5743
+ #: add-ons/user-listing/userlisting.php:1868
5744
  msgid "No options available"
5745
  msgstr ""
5746
 
5747
+ #: add-ons/user-listing/userlisting.php:2023
5748
  msgid "Remove All Filters"
5749
  msgstr ""
5750
 
5751
+ #: add-ons/user-listing/userlisting.php:2138
5752
  msgid "Search"
5753
  msgstr ""
5754
 
5755
+ #: add-ons/user-listing/userlisting.php:2139
5756
  msgid "Clear Results"
5757
  msgstr ""
5758
 
5759
+ #: add-ons/user-listing/userlisting.php:2344, add-ons/user-listing/userlisting.php:2348
5760
  msgid "Extra shortcode parameters"
5761
  msgstr ""
5762
 
5763
+ #: add-ons/user-listing/userlisting.php:2346
5764
  msgid "View all extra shortcode parameters"
5765
  msgstr ""
5766
 
5767
+ #: add-ons/user-listing/userlisting.php:2351
5768
  msgid "displays users having a certain meta-value within a certain (extra) meta-field"
5769
  msgstr ""
5770
 
5771
+ #: add-ons/user-listing/userlisting.php:2352
5772
  msgid "Example:"
5773
  msgstr ""
5774
 
5775
+ #: add-ons/user-listing/userlisting.php:2354
5776
  msgid "Remember though, that the field-value combination must exist in the database."
5777
  msgstr ""
5778
 
5779
+ #: add-ons/user-listing/userlisting.php:2360
5780
  msgid "displays only the users that you specified the user_id for"
5781
  msgstr ""
5782
 
5783
+ #: add-ons/user-listing/userlisting.php:2366
5784
  msgid "displays all users except the ones you specified the user_id for"
5785
  msgstr ""
5786
 
5787
+ #: add-ons/user-listing/userlisting.php:2429
5788
  msgid "Random (very slow on large databases > 10K user)"
5789
  msgstr ""
5790
 
5791
+ #: add-ons/user-listing/userlisting.php:2432
5792
  msgid "Ascending"
5793
  msgstr ""
5794
 
5795
+ #: add-ons/user-listing/userlisting.php:2433
5796
  msgid "Descending"
5797
  msgstr ""
5798
 
5799
+ #: add-ons/user-listing/userlisting.php:2438
5800
  msgid "Roles to Display"
5801
  msgstr ""
5802
 
5803
+ #: add-ons/user-listing/userlisting.php:2438
5804
  msgid "Restrict the userlisting to these selected roles only<br/>If not specified, defaults to all existing roles"
5805
  msgstr ""
5806
 
5807
+ #: add-ons/user-listing/userlisting.php:2439
5808
  msgid "Number of Users/Page"
5809
  msgstr ""
5810
 
5811
+ #: add-ons/user-listing/userlisting.php:2439
5812
  msgid "Set the number of users to be displayed on every paginated part of the all-userlisting"
5813
  msgstr ""
5814
 
5815
+ #: add-ons/user-listing/userlisting.php:2440
5816
  msgid "Default Sorting Criteria"
5817
  msgstr ""
5818
 
5819
+ #: add-ons/user-listing/userlisting.php:2440
5820
  msgid "Set the default sorting criteria<br/>This can temporarily be changed for each new session"
5821
  msgstr ""
5822
 
5823
+ #: add-ons/user-listing/userlisting.php:2441
5824
  msgid "Default Sorting Order"
5825
  msgstr ""
5826
 
5827
+ #: add-ons/user-listing/userlisting.php:2441
5828
  msgid "Set the default sorting order<br/>This can temporarily be changed for each new session"
5829
  msgstr ""
5830
 
5831
+ #: add-ons/user-listing/userlisting.php:2442
5832
  msgid "Avatar Size (All-userlisting)"
5833
  msgstr ""
5834
 
5835
+ #: add-ons/user-listing/userlisting.php:2442
5836
  msgid "Set the avatar size on the all-userlisting only"
5837
  msgstr ""
5838
 
5839
+ #: add-ons/user-listing/userlisting.php:2443
5840
  msgid "Avatar Size (Single-userlisting)"
5841
  msgstr ""
5842
 
5843
+ #: add-ons/user-listing/userlisting.php:2443
5844
  msgid "Set the avatar size on the single-userlisting only"
5845
  msgstr ""
5846
 
5847
+ #: add-ons/user-listing/userlisting.php:2444
5848
  msgid "Visible only to logged in users?"
5849
  msgstr ""
5850
 
5851
+ #: add-ons/user-listing/userlisting.php:2444
5852
  msgid "The userlisting will only be visible only to the logged in users"
5853
  msgstr ""
5854
 
5855
+ #: add-ons/user-listing/userlisting.php:2445
5856
  msgid "Visible to following Roles"
5857
  msgstr ""
5858
 
5859
+ #: add-ons/user-listing/userlisting.php:2445
5860
  msgid "The userlisting will only be visible to the following roles"
5861
  msgstr ""
5862
 
5863
+ #: add-ons/user-listing/userlisting.php:2451
5864
  msgid "Userlisting Settings"
5865
  msgstr ""
5866
 
5867
+ #: add-ons/user-listing/userlisting.php:2476
5868
  msgid "Label"
5869
  msgstr ""
5870
 
5871
+ #: add-ons/user-listing/userlisting.php:2476
5872
  msgid "Choose the facet name that appears on the frontend"
5873
  msgstr ""
5874
 
5875
+ #: add-ons/user-listing/userlisting.php:2477
5876
  msgid "Facet Type"
5877
  msgstr ""
5878
 
5879
+ #: add-ons/user-listing/userlisting.php:2477
5880
  msgid "Choose the facet menu type"
5881
  msgstr ""
5882
 
5883
+ #: add-ons/user-listing/userlisting.php:2478
5884
  msgid "Facet Meta"
5885
  msgstr ""
5886
 
5887
+ #: add-ons/user-listing/userlisting.php:2478
5888
  msgid "Choose the meta field for the facet menu. If you want to use a repeater meta or a meta outisde Profile Builder just type the value and press enter."
5889
  msgstr ""
5890
 
5891
+ #: add-ons/user-listing/userlisting.php:2479
5892
  msgid "Behaviour"
5893
  msgstr ""
5894
 
5895
+ #: add-ons/user-listing/userlisting.php:2479
5896
  msgid "Narrow the results"
5897
  msgstr ""
5898
 
5899
+ #: add-ons/user-listing/userlisting.php:2479
5900
  msgid "Expand the results"
5901
  msgstr ""
5902
 
5903
+ #: add-ons/user-listing/userlisting.php:2479
5904
  msgid "Choose how multiple selections affect the results"
5905
  msgstr ""
5906
 
5907
+ #: add-ons/user-listing/userlisting.php:2480
5908
  msgid "Visible choices"
5909
  msgstr ""
5910
 
5911
+ #: add-ons/user-listing/userlisting.php:2480
5912
  msgid "Show a toggle link after this many choices. Leave blank for all"
5913
  msgstr ""
5914
 
5915
+ #: add-ons/user-listing/userlisting.php:2505
5916
  msgid "Search Fields"
5917
  msgstr ""
5918
 
5919
+ #: add-ons/user-listing/userlisting.php:2505
5920
  msgid "Choose the fields in which the Search Field will look in"
5921
  msgstr ""
5922
 
5923
+ #: add-ons/user-listing/userlisting.php:2510
5924
  msgid "Search Settings"
5925
  msgstr ""
5926
 
5927
+ #: add-ons/user-listing/userlisting.php:2582
5928
  msgid "You need to activate the Userlisting feature from within the \"Add-ons\" page!"
5929
  msgstr ""
5930
 
5931
+ #: add-ons/user-listing/userlisting.php:2582
5932
  msgid "You can find it in the Profile Builder menu."
5933
  msgstr ""
5934
 
5935
+ #: add-ons/user-listing/userlisting.php:2745
5936
  msgid "No results found!"
5937
  msgstr ""
5938
 
6807
  msgstr ""
6808
 
6809
  #: admin/advanced-settings/includes/views/view-admin.php:90
6810
+ msgid "Add email addresses, separated by comma, for people you wish to receive notifications from Profile Builder. These addresses will overwrite the default Email Address from <a href=\"%s\">Settings -> General</a>"
6811
  msgstr ""
6812
 
6813
  #: admin/advanced-settings/includes/views/view-fields.php:14
7090
  msgid "The meta name for the field will be <strong>last_profile_update_date</strong>."
7091
  msgstr ""
7092
 
7093
+ #: admin/advanced-settings/includes/views/view-forms.php:336
7094
+ msgid "Disable automatic scrolling after submit"
7095
+ msgstr ""
7096
+
7097
+ #: admin/advanced-settings/includes/views/view-forms.php:345
7098
+ msgid "By default, after each form submission the page will automatically scroll to the form message."
7099
+ msgstr ""
7100
+
7101
+ #: admin/advanced-settings/includes/views/view-forms.php:348
7102
+ msgid "If you check this option, automatic scrolling will be disabled."
7103
+ msgstr ""
7104
+
7105
  #: admin/advanced-settings/includes/views/view-shortcodes.php:12
7106
  msgid "Enable Compare shortcode"
7107
  msgstr ""
7186
  msgid "Select or type in an option"
7187
  msgstr ""
7188
 
7189
+ #: assets/misc/elementor/widgets/class-pb-widget-base.php:112
7190
+ msgid "Background"
7191
  msgstr ""
7192
 
7193
+ #: assets/misc/elementor/widgets/class-pb-widget-base.php:124
7194
+ msgid "Color"
7195
  msgstr ""
7196
 
7197
+ #: assets/misc/elementor/widgets/class-pb-widget-base.php:137
7198
+ msgid "Width"
7199
  msgstr ""
7200
 
7201
+ #: assets/misc/elementor/widgets/class-pb-widget-base.php:160
7202
+ msgid "Height"
7203
  msgstr ""
7204
 
7205
+ #: assets/misc/elementor/widgets/class-pb-widget-base.php:185
7206
+ msgid "Padding"
7207
+ msgstr ""
7208
+
7209
+ #: assets/misc/elementor/widgets/class-pb-widget-base.php:198
7210
+ msgid "Margin"
7211
+ msgstr ""
7212
+
7213
+ #: assets/misc/elementor/widgets/class-pb-widget-base.php:213
7214
+ msgid "Border"
7215
+ msgstr ""
7216
+
7217
+ #: assets/misc/elementor/widgets/class-pb-widget-base.php:222
7218
+ msgid "Radius"
7219
  msgstr ""
7220
 
7221
+ #: assets/misc/elementor/widgets/class-pb-widget-l.php:46, assets/misc/elementor/widgets/class-pb-widget-rf-epf.php:81, assets/misc/elementor/widgets/class-pb-widget-rp.php:46
7222
+ msgid "Form Settings"
7223
+ msgstr ""
7224
+
7225
+ #: assets/misc/elementor/widgets/class-pb-widget-l.php:54
7226
  msgid "Registration"
7227
  msgstr ""
7228
 
7229
+ #: assets/misc/elementor/widgets/class-pb-widget-l.php:56, assets/misc/elementor/widgets/class-pb-widget-l.php:65, assets/misc/elementor/widgets/class-pb-widget-l.php:84, assets/misc/elementor/widgets/class-pb-widget-l.php:93, assets/misc/elementor/widgets/class-pb-widget-rf-epf.php:207, assets/misc/elementor/widgets/class-pb-widget-rf-epf.php:226
7230
+ msgid "Enter URL"
7231
  msgstr ""
7232
 
7233
+ #: assets/misc/elementor/widgets/class-pb-widget-l.php:74, assets/misc/elementor/widgets/class-pb-widget-rf-epf.php:195
7234
+ msgid "Redirects"
7235
+ msgstr ""
7236
+
7237
+ #: assets/misc/elementor/widgets/class-pb-widget-rf-epf.php:118
7238
+ msgid "Form"
7239
+ msgstr ""
7240
+
7241
+ #: assets/misc/elementor/widgets/class-pb-widget-rf-epf.php:137
7242
  msgid "Assigned Role"
7243
  msgstr ""
7244
 
7245
+ #: assets/misc/elementor/widgets/class-pb-widget-rf-epf.php:150
7246
  msgid "Automatic Login"
7247
  msgstr ""
7248
 
7249
+ #: assets/misc/elementor/widgets/class-pb-widget-rf-epf.php:215
7250
+ msgid "Redirect after Edit Profile"
7251
+ msgstr ""
7252
+
7253
+ #: assets/misc/elementor/widgets/class-pb-widget-rf-epf.php:213
7254
  msgid "Redirect after Registration"
7255
  msgstr ""
7256
 
7257
+ #: assets/misc/elementor/widgets/class-pb-widget-rf-epf.php:224
7258
  msgid "Redirect after Logout"
7259
  msgstr ""
7260
+
7261
+ #: assets/misc/elementor/widgets/class-pb-widget-rp.php:55
7262
+ msgid "There are no available controls for the Password Recovery form"
7263
+ msgstr ""