Ultimate Member – User Profile & Membership Plugin - Version 2.1.2

Version Description

Download this release

Release Info

Developer nsinelnikov
Plugin Icon 128x128 Ultimate Member – User Profile & Membership Plugin
Version 2.1.2
Comparing to
See all releases

Code changes from version 2.1.1 to 2.1.2

Files changed (50) hide show
  1. assets/css/pickadate/default.css +4 -0
  2. assets/css/pickadate/default.time.css +5 -0
  3. assets/css/um-members-rtl.css +2 -2
  4. assets/css/um-members.css +28 -6
  5. assets/css/um-old-default.css +5 -0
  6. assets/css/um-styles.css +2 -4
  7. assets/js/um-members.js +234 -32
  8. assets/js/um-members.min.js +1 -1
  9. assets/js/um-scripts.js +62 -19
  10. assets/js/um-scripts.min.js +1 -1
  11. includes/admin/assets/css/um-admin-builder.css +14 -0
  12. includes/admin/assets/css/um-admin-forms.css +28 -1
  13. includes/admin/assets/js/um-admin-forms.js +28 -8
  14. includes/admin/assets/js/um-admin-modal.js +5 -0
  15. includes/admin/assets/js/um-admin-settings.js +1 -1
  16. includes/admin/core/class-admin-builder.php +21 -1
  17. includes/admin/core/class-admin-enqueue.php +2 -21
  18. includes/admin/core/class-admin-forms.php +19 -3
  19. includes/admin/core/class-admin-notices.php +6 -2
  20. includes/admin/core/list-tables/emails-list-table.php +1 -1
  21. includes/admin/core/packages/2.1.0-beta1/member-directory.php +3 -0
  22. includes/admin/templates/directory/pagination.php +17 -15
  23. includes/admin/templates/directory/profile.php +6 -3
  24. includes/admin/templates/directory/search.php +10 -1
  25. includes/class-config.php +1 -0
  26. includes/class-init.php +3 -2
  27. includes/core/class-account.php +1 -0
  28. includes/core/class-builtin.php +1 -0
  29. includes/core/class-enqueue.php +1 -1
  30. includes/core/class-external-integrations.php +3 -0
  31. includes/core/class-fields.php +254 -167
  32. includes/core/class-form.php +19 -2
  33. includes/core/class-member-directory.php +221 -66
  34. includes/core/class-plugin-updater.php +25 -2
  35. includes/core/class-shortcodes.php +4 -0
  36. includes/core/class-user.php +6 -3
  37. includes/core/um-actions-account.php +13 -16
  38. includes/core/um-actions-form.php +43 -6
  39. includes/core/um-actions-login.php +0 -5
  40. includes/core/um-actions-profile.php +54 -26
  41. includes/core/um-actions-register.php +0 -3
  42. includes/core/um-actions-wpadmin.php +4 -2
  43. includes/um-short-functions.php +57 -35
  44. languages/ultimate-member-en_US.mo +0 -0
  45. languages/ultimate-member-en_US.po +762 -744
  46. readme.txt +31 -1
  47. templates/members-grid.php +4 -2
  48. templates/members-list.php +15 -16
  49. templates/members.php +7 -3
  50. ultimate-member.php +1 -1
assets/css/pickadate/default.css CHANGED
@@ -17,6 +17,10 @@
17
  user-select: none;
18
  }
19
 
 
 
 
 
20
  /**
21
  * The picker input element.
22
  */
17
  user-select: none;
18
  }
19
 
20
+ .um .picker__box ul li[role="presentation"] {
21
+ margin: 10px 0 0 0;
22
+ }
23
+
24
  /**
25
  * The picker input element.
26
  */
assets/css/pickadate/default.time.css CHANGED
@@ -101,6 +101,11 @@
101
  padding: 0;
102
  border-radius: 2px !important;
103
  }
 
 
 
 
 
104
  @media (min-height: 40.125em) {
105
  .um .picker--time .picker__frame {
106
  margin-bottom: 10% !important;
101
  padding: 0;
102
  border-radius: 2px !important;
103
  }
104
+
105
+ .um .picker__box ul li[role="presentation"] {
106
+ margin: 10px 0 0 0;
107
+ }
108
+
109
  @media (min-height: 40.125em) {
110
  .um .picker--time .picker__frame {
111
  margin-bottom: 10% !important;
assets/css/um-members-rtl.css CHANGED
@@ -15,9 +15,9 @@
15
  margin: 0 0 0 5px; }
16
 
17
  .um-directory .um-member-directory-header .um-member-directory-header-row .um-search .um-search-filter.um-datepicker-filter-type input, .um-directory .um-member-directory-header .um-member-directory-header-row .um-search .um-search-filter.um-timepicker-filter-type input {
18
- margin: 0 0 0 5px; }
19
  .um-directory .um-member-directory-header .um-member-directory-header-row .um-search .um-search-filter.um-datepicker-filter-type input:nth-child(even), .um-directory .um-member-directory-header .um-member-directory-header-row .um-search .um-search-filter.um-timepicker-filter-type input:nth-child(even) {
20
- margin: 0 5px 0 0; }
21
 
22
  .um-directory .um-member-directory-header .um-member-directory-header-row .um-filtered-line .um-members-filter-tag {
23
  margin: 0 0 5px 10px; }
15
  margin: 0 0 0 5px; }
16
 
17
  .um-directory .um-member-directory-header .um-member-directory-header-row .um-search .um-search-filter.um-datepicker-filter-type input, .um-directory .um-member-directory-header .um-member-directory-header-row .um-search .um-search-filter.um-timepicker-filter-type input {
18
+ margin: 0 0 0 5px !important; }
19
  .um-directory .um-member-directory-header .um-member-directory-header-row .um-search .um-search-filter.um-datepicker-filter-type input:nth-child(even), .um-directory .um-member-directory-header .um-member-directory-header-row .um-search .um-search-filter.um-timepicker-filter-type input:nth-child(even) {
20
+ margin: 0 5px 0 0 !important; }
21
 
22
  .um-directory .um-member-directory-header .um-member-directory-header-row .um-filtered-line .um-members-filter-tag {
23
  margin: 0 0 5px 10px; }
assets/css/um-members.css CHANGED
@@ -107,7 +107,7 @@ body #content .um-directory a {
107
  width: 100%;
108
  top: 0;
109
  bottom: 0;
110
- background: rgba(255, 255, 255, 0.8);
111
  z-index: 2; }
112
  .um-directory .um-members-overlay .um-ajax-loading {
113
  -webkit-transition: 0.1s opacity;
@@ -144,6 +144,8 @@ body #content .um-directory a {
144
  align-items: stretch;
145
  flex-wrap: nowrap;
146
  width: 100%; }
 
 
147
  .um-directory .um-member-directory-header .um-member-directory-header-row:not(.um-member-directory-filters-bar) {
148
  display: flex;
149
  flex-direction: row;
@@ -172,9 +174,13 @@ body #content .um-directory a {
172
  margin: 0 5px 0 0; }
173
  .um-directory .um-member-directory-header .um-member-directory-header-row .um-member-directory-search-line label .um-search-line {
174
  -webkit-appearance: textfield;
175
- width: 100%; }
 
 
 
176
  .um-directory .um-member-directory-header .um-member-directory-header-row .um-member-directory-search-line .um-do-search {
177
- min-width: 15%; }
 
178
  .um-directory .um-member-directory-header .um-member-directory-header-row .um-member-directory-nav-line {
179
  display: flex;
180
  flex-direction: row;
@@ -279,6 +285,8 @@ body #content .um-directory a {
279
  width: 100% !important; }
280
  .um-directory .um-member-directory-header .um-member-directory-header-row .um-search .um-search-filter .um-s1 {
281
  width: 100%; }
 
 
282
  .um-directory .um-member-directory-header .um-member-directory-header-row .um-search .um-search-filter.um-slider-filter-type {
283
  flex-direction: column;
284
  align-items: stretch; }
@@ -308,12 +316,12 @@ body #content .um-directory a {
308
  flex-wrap: nowrap; }
309
  .um-directory .um-member-directory-header .um-member-directory-header-row .um-search .um-search-filter.um-datepicker-filter-type input, .um-directory .um-member-directory-header .um-member-directory-header-row .um-search .um-search-filter.um-timepicker-filter-type input {
310
  width: calc( 50% - 5px);
311
- margin: 0 5px 0 0;
312
  box-sizing: border-box;
313
  -moz-box-sizing: border-box;
314
  -webkit-box-sizing: border-box; }
315
  .um-directory .um-member-directory-header .um-member-directory-header-row .um-search .um-search-filter.um-datepicker-filter-type input:nth-child(even), .um-directory .um-member-directory-header .um-member-directory-header-row .um-search .um-search-filter.um-timepicker-filter-type input:nth-child(even) {
316
- margin: 0 0 0 5px; }
317
  .um-directory .um-member-directory-header .um-member-directory-header-row .um-search[style*="overflow: hidden;"] .um-search-filter {
318
  pointer-events: none; }
319
  .um-directory .um-member-directory-header .um-member-directory-header-row .um-search.um-search-invisible {
@@ -595,7 +603,7 @@ body #content .um-directory a {
595
  width: 100%;
596
  padding: 15px;
597
  margin: 0;
598
- background: none;
599
  box-sizing: border-box;
600
  -moz-box-sizing: border-box;
601
  -webkit-box-sizing: border-box; }
@@ -651,6 +659,8 @@ body #content .um-directory a {
651
  box-sizing: border-box;
652
  -moz-box-sizing: border-box;
653
  -webkit-box-sizing: border-box; }
 
 
654
  .um-directory .um-members-wrapper .um-members.um-members-list .um-member .um-member-card-container .um-member-card .um-member-card-content {
655
  display: flex;
656
  flex-direction: column;
@@ -803,6 +813,12 @@ body #content .um-directory a {
803
  font-size: 28px;
804
  height: 28px;
805
  line-height: 28px; }
 
 
 
 
 
 
806
  .um-directory .um-members-wrapper .um-members .um-members-none {
807
  text-align: center;
808
  font-size: 18px; }
@@ -918,6 +934,8 @@ body #content .um-directory a {
918
  margin: 0 0 5px 0; }
919
  .um-directory.uimob340 .um-members-wrapper .um-members.um-members-list .um-member .um-member-card-footer .um-member-card-footer-buttons .um-members-list-footer-button-wrapper a.um-button {
920
  width: 100% !important; }
 
 
921
  .um-directory.uimob340 .um-members-pagination-box .um-members-pagi {
922
  display: none; }
923
  .um-directory.uimob500 .um-member-directory-header .um-member-directory-header-row .um-member-directory-search-line {
@@ -954,6 +972,8 @@ body #content .um-directory a {
954
  margin: 0 10px 0 0; }
955
  .um-directory.uimob500 .um-members-wrapper .um-members.um-members-list .um-member .um-member-card-footer .um-member-card-footer-buttons .um-members-list-footer-button-wrapper {
956
  margin: 0 10px 5px 0; }
 
 
957
  .um-directory.uimob500 .um-members-pagination-box .um-members-pagi {
958
  display: none; }
959
  .um-directory.uimob800 .um-member-directory-header .um-member-directory-header-row .um-member-directory-search-line {
@@ -983,6 +1003,8 @@ body #content .um-directory a {
983
  margin: 0 10px 0 0; }
984
  .um-directory.uimob800 .um-members-wrapper .um-members.um-members-list .um-member .um-member-card-footer .um-member-card-footer-buttons .um-members-list-footer-button-wrapper {
985
  margin: 0 10px 5px 0; }
 
 
986
  .um-directory.uimob960 .um-member-directory-header .um-search {
987
  grid-template-columns: repeat(2, 1fr); }
988
  .um-directory.uimob960 .um-members-wrapper .um-members.um-members-grid .um-gutter-sizer {
107
  width: 100%;
108
  top: 0;
109
  bottom: 0;
110
+ background: none;
111
  z-index: 2; }
112
  .um-directory .um-members-overlay .um-ajax-loading {
113
  -webkit-transition: 0.1s opacity;
144
  align-items: stretch;
145
  flex-wrap: nowrap;
146
  width: 100%; }
147
+ .um-directory .um-member-directory-header .um-member-directory-header-row.um-member-directory-filters-bar {
148
+ padding: 0 0 10px 0; }
149
  .um-directory .um-member-directory-header .um-member-directory-header-row:not(.um-member-directory-filters-bar) {
150
  display: flex;
151
  flex-direction: row;
174
  margin: 0 5px 0 0; }
175
  .um-directory .um-member-directory-header .um-member-directory-header-row .um-member-directory-search-line label .um-search-line {
176
  -webkit-appearance: textfield;
177
+ width: 100%;
178
+ box-sizing: border-box;
179
+ -moz-box-sizing: border-box;
180
+ -webkit-box-sizing: border-box; }
181
  .um-directory .um-member-directory-header .um-member-directory-header-row .um-member-directory-search-line .um-do-search {
182
+ min-width: 15%;
183
+ width: auto; }
184
  .um-directory .um-member-directory-header .um-member-directory-header-row .um-member-directory-nav-line {
185
  display: flex;
186
  flex-direction: row;
285
  width: 100% !important; }
286
  .um-directory .um-member-directory-header .um-member-directory-header-row .um-search .um-search-filter .um-s1 {
287
  width: 100%; }
288
+ .um-directory .um-member-directory-header .um-member-directory-header-row .um-search .um-search-filter.um-text-filter-type input {
289
+ width: 100%; }
290
  .um-directory .um-member-directory-header .um-member-directory-header-row .um-search .um-search-filter.um-slider-filter-type {
291
  flex-direction: column;
292
  align-items: stretch; }
316
  flex-wrap: nowrap; }
317
  .um-directory .um-member-directory-header .um-member-directory-header-row .um-search .um-search-filter.um-datepicker-filter-type input, .um-directory .um-member-directory-header .um-member-directory-header-row .um-search .um-search-filter.um-timepicker-filter-type input {
318
  width: calc( 50% - 5px);
319
+ margin: 0 5px 0 0 !important;
320
  box-sizing: border-box;
321
  -moz-box-sizing: border-box;
322
  -webkit-box-sizing: border-box; }
323
  .um-directory .um-member-directory-header .um-member-directory-header-row .um-search .um-search-filter.um-datepicker-filter-type input:nth-child(even), .um-directory .um-member-directory-header .um-member-directory-header-row .um-search .um-search-filter.um-timepicker-filter-type input:nth-child(even) {
324
+ margin: 0 0 0 5px !important; }
325
  .um-directory .um-member-directory-header .um-member-directory-header-row .um-search[style*="overflow: hidden;"] .um-search-filter {
326
  pointer-events: none; }
327
  .um-directory .um-member-directory-header .um-member-directory-header-row .um-search.um-search-invisible {
603
  width: 100%;
604
  padding: 15px;
605
  margin: 0;
606
+ background: #fff;
607
  box-sizing: border-box;
608
  -moz-box-sizing: border-box;
609
  -webkit-box-sizing: border-box; }
659
  box-sizing: border-box;
660
  -moz-box-sizing: border-box;
661
  -webkit-box-sizing: border-box; }
662
+ .um-directory .um-members-wrapper .um-members.um-members-list .um-member .um-member-card-container .um-member-card.no-photo {
663
+ width: 100%; }
664
  .um-directory .um-members-wrapper .um-members.um-members-list .um-member .um-member-card-container .um-member-card .um-member-card-content {
665
  display: flex;
666
  flex-direction: column;
813
  font-size: 28px;
814
  height: 28px;
815
  line-height: 28px; }
816
+ .um-directory .um-members-wrapper .um-members.um-members-list .um-member .um-member-card-footer.no-photo.no-reveal .um-member-card-footer-buttons {
817
+ width: 100%; }
818
+ .um-directory .um-members-wrapper .um-members.um-members-list .um-member .um-member-card-footer.no-photo:not(.no-reveal) .um-member-card-footer-buttons {
819
+ width: calc( 100% - 30px); }
820
+ .um-directory .um-members-wrapper .um-members.um-members-list .um-member .um-member-card-footer.no-reveal:not(.no-photo) .um-member-card-footer-buttons {
821
+ width: calc( 100% - 125px); }
822
  .um-directory .um-members-wrapper .um-members .um-members-none {
823
  text-align: center;
824
  font-size: 18px; }
934
  margin: 0 0 5px 0; }
935
  .um-directory.uimob340 .um-members-wrapper .um-members.um-members-list .um-member .um-member-card-footer .um-member-card-footer-buttons .um-members-list-footer-button-wrapper a.um-button {
936
  width: 100% !important; }
937
+ .um-directory.uimob340 .um-members-wrapper .um-members.um-members-list .um-member .um-member-card-footer.no-reveal:not(.no-photo) .um-member-card-footer-buttons {
938
+ width: calc( 100% - 70px); }
939
  .um-directory.uimob340 .um-members-pagination-box .um-members-pagi {
940
  display: none; }
941
  .um-directory.uimob500 .um-member-directory-header .um-member-directory-header-row .um-member-directory-search-line {
972
  margin: 0 10px 0 0; }
973
  .um-directory.uimob500 .um-members-wrapper .um-members.um-members-list .um-member .um-member-card-footer .um-member-card-footer-buttons .um-members-list-footer-button-wrapper {
974
  margin: 0 10px 5px 0; }
975
+ .um-directory.uimob500 .um-members-wrapper .um-members.um-members-list .um-member .um-member-card-footer.no-reveal:not(.no-photo) .um-member-card-footer-buttons {
976
+ width: calc( 100% - 90px); }
977
  .um-directory.uimob500 .um-members-pagination-box .um-members-pagi {
978
  display: none; }
979
  .um-directory.uimob800 .um-member-directory-header .um-member-directory-header-row .um-member-directory-search-line {
1003
  margin: 0 10px 0 0; }
1004
  .um-directory.uimob800 .um-members-wrapper .um-members.um-members-list .um-member .um-member-card-footer .um-member-card-footer-buttons .um-members-list-footer-button-wrapper {
1005
  margin: 0 10px 5px 0; }
1006
+ .um-directory.uimob800 .um-members-wrapper .um-members.um-members-list .um-member .um-member-card-footer.no-reveal:not(.no-photo) .um-member-card-footer-buttons {
1007
+ width: calc( 100% - 100px); }
1008
  .um-directory.uimob960 .um-member-directory-header .um-search {
1009
  grid-template-columns: repeat(2, 1fr); }
1010
  .um-directory.uimob960 .um-members-wrapper .um-members.um-members-grid .um-gutter-sizer {
assets/css/um-old-default.css CHANGED
@@ -126,6 +126,7 @@ div.uimob800 .um-account-side li a.current:hover
126
  }
127
 
128
  .um .um-form input[type=text],
 
129
  .um .um-form input[type=tel],
130
  .um .um-form input[type=number],
131
  .um .um-form input[type=password],
@@ -145,6 +146,7 @@ div.uimob800 .um-account-side li a.current:hover
145
  }
146
 
147
  .um .um-form input[type=text]:focus,
 
148
  .um .um-form input[type=tel]:focus,
149
  .um .um-form input[type=number]:focus,
150
  .um .um-form input[type=password]:focus,
@@ -155,6 +157,7 @@ div.uimob800 .um-account-side li a.current:hover
155
  }
156
 
157
  .um .um-form input[type=text],
 
158
  .um .um-form input[type=tel],
159
  .um .um-form input[type=number],
160
  .um .um-form input[type=password],
@@ -166,6 +169,7 @@ div.uimob800 .um-account-side li a.current:hover
166
  }
167
 
168
  .um .um-form input[type=text]:focus,
 
169
  .um .um-form input[type=tel]:focus,
170
  .um .um-form input[type=number]:focus,
171
  .um .um-form input[type=password]:focus,
@@ -174,6 +178,7 @@ div.uimob800 .um-account-side li a.current:hover
174
  }
175
 
176
  .um .um-form input[type=text],
 
177
  .um .um-form input[type=tel],
178
  .um .um-form input[type=password],
179
  .um .um-form textarea
126
  }
127
 
128
  .um .um-form input[type=text],
129
+ .um .um-form input[type=search],
130
  .um .um-form input[type=tel],
131
  .um .um-form input[type=number],
132
  .um .um-form input[type=password],
146
  }
147
 
148
  .um .um-form input[type=text]:focus,
149
+ .um .um-form input[type=search]:focus,
150
  .um .um-form input[type=tel]:focus,
151
  .um .um-form input[type=number]:focus,
152
  .um .um-form input[type=password]:focus,
157
  }
158
 
159
  .um .um-form input[type=text],
160
+ .um .um-form input[type=search],
161
  .um .um-form input[type=tel],
162
  .um .um-form input[type=number],
163
  .um .um-form input[type=password],
169
  }
170
 
171
  .um .um-form input[type=text]:focus,
172
+ .um .um-form input[type=search]:focus,
173
  .um .um-form input[type=tel]:focus,
174
  .um .um-form input[type=number]:focus,
175
  .um .um-form input[type=password]:focus,
178
  }
179
 
180
  .um .um-form input[type=text],
181
+ .um .um-form input[type=search],
182
  .um .um-form input[type=tel],
183
  .um .um-form input[type=password],
184
  .um .um-form textarea
assets/css/um-styles.css CHANGED
@@ -347,10 +347,6 @@ p.um-notice.warning a {
347
  font-size: 17px;
348
  }
349
 
350
- .um-field-shortcode {
351
-
352
- }
353
-
354
  .um-field-spacing {
355
  width: 100%;
356
  }
@@ -391,6 +387,7 @@ p.um-notice.warning a {
391
  }
392
 
393
  .um-form input[type=text],
 
394
  .um-form input[type=tel],
395
  .um-form input[type=number],
396
  .um-form input[type=password] {
@@ -418,6 +415,7 @@ p.um-notice.warning a {
418
  }
419
 
420
  .um-form input[type=text]:focus,
 
421
  .um-form input[type=tel]:focus,
422
  .um-form input[type=number]:focus,
423
  .um-form input[type=password]:focus,
347
  font-size: 17px;
348
  }
349
 
 
 
 
 
350
  .um-field-spacing {
351
  width: 100%;
352
  }
387
  }
388
 
389
  .um-form input[type=text],
390
+ .um-form input[type=search],
391
  .um-form input[type=tel],
392
  .um-form input[type=number],
393
  .um-form input[type=password] {
415
  }
416
 
417
  .um-form input[type=text]:focus,
418
+ .um-form input[type=search]:focus,
419
  .um-form input[type=tel]:focus,
420
  .um-form input[type=number]:focus,
421
  .um-form input[type=password]:focus,
assets/js/um-members.js CHANGED
@@ -34,7 +34,8 @@ function um_get_data_for_directory( directory, search_key ) {
34
  } else {
35
  if ( typeof data[ search_key ] !== 'undefined' ) {
36
  try {
37
- data[ search_key ] = decodeURI( data[ search_key ] );
 
38
  } catch(e) { // catches a malformed URI
39
  console.error(e);
40
  }
@@ -52,6 +53,20 @@ function um_set_url_from_data( directory, key, value ) {
52
  var other_directories = um_member_directories;
53
 
54
  var new_data = {};
 
 
 
 
 
 
 
 
 
 
 
 
 
 
55
  if ( value !== '' ) {
56
  new_data[ key + '_' + hash ] = value;
57
  }
@@ -86,7 +101,6 @@ function um_set_url_from_data( directory, key, value ) {
86
  query_strings = wp.hooks.applyFilters( 'um_member_directory_url_attrs', query_strings );
87
 
88
  var query_string = '?' + query_strings.join( '&' );
89
-
90
  if ( query_string === '?' ) {
91
  query_string = '';
92
  }
@@ -158,6 +172,25 @@ function um_get_current_page( directory ) {
158
  return page;
159
  }
160
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
161
 
162
  function um_ajax_get_members( directory, args ) {
163
 
@@ -213,15 +246,52 @@ function um_ajax_get_members( directory, args ) {
213
  var filter_name = filter.find( '.um-timepicker-filter' ).data('filter_name');
214
  var value_from = um_get_data_for_directory( directory, 'filter_' + filter_name + '_from' );
215
  var value_to = um_get_data_for_directory( directory, 'filter_' + filter_name + '_to' );
216
- if ( typeof value_from != 'undefined' || typeof value_to != 'undefined' ) {
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
217
  request[ filter_name ] = [ value_from, value_to ];
218
  }
219
- } else {
220
  var filter_name = filter.find('select').attr('name');
221
  var value = um_get_data_for_directory( directory, 'filter_' + filter_name );
222
  if ( typeof value != 'undefined' ) {
223
  request[ filter_name ] = value.split( '||' );
224
  }
 
 
 
 
 
 
225
  }
226
  });
227
  }
@@ -267,14 +337,16 @@ function um_ajax_get_members( directory, args ) {
267
 
268
  function um_build_template( directory, data ) {
269
  var layout = directory.data('view_type');
270
- var template = wp.template( 'um-member-' + layout );
271
 
272
  directory.find('.um-members-grid, .um-members-list').remove();
273
  directory.find('.um-members-wrapper').prepend( template( data.users ) );
274
 
275
  var header_template = wp.template( 'um-members-header' );
276
  directory.find('.um-members-intro').remove();
277
- directory.find('.um-members-wrapper').prepend( header_template( data ) );
 
 
278
 
279
  directory.addClass('um-loaded');
280
 
@@ -402,6 +474,21 @@ function um_get_filters_data( directory ) {
402
  filters_data.push( {'name':filter_name, 'label':filter_title, 'value_label':filter_value_title, 'value':filter_value[ i ], 'type':filter_type} );
403
  });
404
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
405
  } else if( filter.find('div.ui-slider').length ) {
406
  filter_type = 'slider';
407
 
@@ -433,7 +520,7 @@ function um_change_tag( directory ) {
433
  directory.find('.um-members-filter-tag').remove();
434
 
435
  var filtered_line = directory.find('.um-filtered-line');
436
- if ( filtered_line.length ){
437
  var filters_template = wp.template( 'um-members-filtered-line' );
438
  filtered_line.prepend( filters_template( {'filters': filters_data} ) );
439
 
@@ -862,23 +949,107 @@ jQuery(document.body).ready( function() {
862
  directory.data( 'searched', 1 );
863
  directory.find( '.um-member-directory-sorting-options' ).prop( 'disabled', false );
864
  directory.find( '.um-member-directory-view-type' ).removeClass( 'um-disabled' );
 
 
 
865
  });
866
 
867
 
868
- jQuery( document.body ).on( 'click', '.um-directory .um-members-filter-remove', function() {
869
  var directory = jQuery(this).parents('.um-directory');
870
 
871
- if ( um_is_directory_busy( directory ) || ! directory ) {
 
 
 
 
 
 
 
 
 
 
 
 
872
  return;
873
  }
874
 
875
  um_members_show_preloader( directory );
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
876
 
877
  var removeItem = jQuery(this).data('value');
878
  var filter_name = jQuery(this).data('name');
879
 
880
  var type = jQuery(this).data('type');
881
- if ( type === 'select' ) {
 
 
 
 
 
882
 
883
  var current_value = um_get_data_for_directory( directory, 'filter_' + filter_name );
884
  if ( typeof current_value == 'undefined' ) {
@@ -899,7 +1070,6 @@ jQuery(document.body).ready( function() {
899
 
900
  um_set_url_from_data( directory, 'filter_' + filter_name, current_value );
901
 
902
-
903
  var select = jQuery( '.um-search-filter select[name="' + filter_name + '"]' );
904
  select.find('option[value="' + removeItem + '"]').prop('disabled', false).show();
905
 
@@ -909,6 +1079,10 @@ jQuery(document.body).ready( function() {
909
  }
910
  select.select2('destroy').select2();
911
 
 
 
 
 
912
  } else if ( type === 'slider' ) {
913
  um_set_url_from_data( directory, 'filter_' + filter_name + '_from','' );
914
  um_set_url_from_data( directory, 'filter_' + filter_name + '_to', '' );
@@ -967,7 +1141,12 @@ jQuery(document.body).ready( function() {
967
  var filter_name = jQuery(this).data('name');
968
 
969
  var type = jQuery(this).data('type');
970
- if ( type === 'select' ) {
 
 
 
 
 
971
 
972
  var current_value = um_get_data_for_directory( directory, 'filter_' + filter_name );
973
  if ( typeof current_value == 'undefined' ) {
@@ -1000,12 +1179,21 @@ jQuery(document.body).ready( function() {
1000
  } else if ( type === 'slider' ) {
1001
  um_set_url_from_data( directory, 'filter_' + filter_name + '_from','' );
1002
  um_set_url_from_data( directory, 'filter_' + filter_name + '_to', '' );
 
 
 
1003
  } else if ( type === 'datepicker' ) {
1004
  um_set_url_from_data( directory, 'filter_' + filter_name + '_from','' );
1005
  um_set_url_from_data( directory, 'filter_' + filter_name + '_to', '' );
 
 
 
1006
  } else if ( type === 'timepicker' ) {
1007
  um_set_url_from_data( directory, 'filter_' + filter_name + '_from','' );
1008
  um_set_url_from_data( directory, 'filter_' + filter_name + '_to', '' );
 
 
 
1009
  }
1010
  });
1011
 
@@ -1054,18 +1242,7 @@ jQuery(document.body).ready( function() {
1054
  var hash = um_members_get_hash( directory );
1055
  um_member_directories.push( hash );
1056
 
1057
- var show_after_search = directory.data('must-search');
1058
- if ( show_after_search === 1 ) {
1059
- var search = um_get_search( directory );
1060
- var filters_data = um_get_filters_data( directory );
1061
- if ( ! filters_data.length && ! search ) {
1062
- return;
1063
- }
1064
- }
1065
-
1066
- um_members_show_preloader( directory );
1067
- um_ajax_get_members( directory, {first_load:true} );
1068
-
1069
  if ( directory.find('.um-search').length ) {
1070
  if ( ! directory.find('.um-search').is(':visible') ) {
1071
  directory.find('.um-search').css({
@@ -1210,11 +1387,13 @@ jQuery(document.body).ready( function() {
1210
  //timepicker filter
1211
  directory.find('.um-timepicker-filter').each( function() {
1212
  var elem = jQuery(this);
 
 
1213
 
1214
  //using arrays formatted as [HOUR,MINUTE]
 
 
1215
 
1216
- var min = elem.data('min');
1217
- var max = elem.data('max');
1218
  var picker_min = min.split(':');
1219
  var picker_max = max.split(':');
1220
 
@@ -1228,6 +1407,7 @@ jQuery(document.body).ready( function() {
1228
  onOpen: function() { elem.blur(); },
1229
  onClose: function() { elem.blur(); },
1230
  onSet: function( context ) {
 
1231
  var directory = elem.parents('.um-directory');
1232
 
1233
  if ( um_is_directory_busy( directory ) ) {
@@ -1249,13 +1429,14 @@ jQuery(document.body).ready( function() {
1249
  }
1250
 
1251
  if ( typeof context.select !== 'undefined' ) {
1252
- var select_val = context.select / 60;
1253
- var change_val = elem.val();
 
1254
 
1255
  if ( range === 'from' ) {
1256
- current_value_from = select_val + ':00';
1257
  } else if ( range === 'to' ) {
1258
- current_value_to = select_val + ':00';
1259
  }
1260
  } else {
1261
  if ( range === 'from' ) {
@@ -1265,6 +1446,14 @@ jQuery(document.body).ready( function() {
1265
  }
1266
  }
1267
 
 
 
 
 
 
 
 
 
1268
  um_set_url_from_data( directory, 'filter_' + filter_name + '_from', current_value_from );
1269
  um_set_url_from_data( directory, 'filter_' + filter_name + '_to', current_value_to );
1270
 
@@ -1279,10 +1468,11 @@ jQuery(document.body).ready( function() {
1279
  directory.data( 'searched', 1 );
1280
  directory.find( '.um-member-directory-sorting-options' ).prop( 'disabled', false );
1281
  directory.find( '.um-member-directory-view-type' ).removeClass( 'um-disabled' );
 
1282
  }
1283
  });
1284
 
1285
-
1286
  var $picker = $input.pickatime('picker');
1287
  var $fname = elem.data('filter_name');
1288
  var $frange = elem.data('range');
@@ -1291,10 +1481,22 @@ jQuery(document.body).ready( function() {
1291
  var query_value = um_get_data_for_directory( $directory, 'filter_' + $fname + '_' + $frange );
1292
  if ( typeof query_value !== 'undefined' ) {
1293
  var arr = query_value.split(':');
1294
- $picker.set( 'select', arr[0]*60 );
1295
  }
 
1296
  });
1297
 
 
 
 
 
 
 
 
 
 
 
 
1298
  um_change_tag( directory );
1299
  });
1300
 
34
  } else {
35
  if ( typeof data[ search_key ] !== 'undefined' ) {
36
  try {
37
+ //data[ search_key ] = decodeURI( data[ search_key ] );
38
+ data[ search_key ] = decodeURIComponent( data[ search_key ] );
39
  } catch(e) { // catches a malformed URI
40
  console.error(e);
41
  }
53
  var other_directories = um_member_directories;
54
 
55
  var new_data = {};
56
+
57
+ if ( jQuery.isArray( value ) ) {
58
+ jQuery.each( value, function( i ) {
59
+ value[ i ] = encodeURIComponent( value[ i ] );
60
+ });
61
+ value = value.join( '||' );
62
+ } else if ( ! jQuery.isNumeric( value ) ) {
63
+ value = value.split( '||' );
64
+ jQuery.each( value, function( i ) {
65
+ value[ i ] = encodeURIComponent( value[ i ] );
66
+ });
67
+ value = value.join( '||' );
68
+ }
69
+
70
  if ( value !== '' ) {
71
  new_data[ key + '_' + hash ] = value;
72
  }
101
  query_strings = wp.hooks.applyFilters( 'um_member_directory_url_attrs', query_strings );
102
 
103
  var query_string = '?' + query_strings.join( '&' );
 
104
  if ( query_string === '?' ) {
105
  query_string = '';
106
  }
172
  return page;
173
  }
174
 
175
+ function um_time_convert( time, range ) {
176
+ var hours = Math.floor( time / 60 );
177
+ var minutes = time % 60;
178
+
179
+ if ( minutes >= 60 ) {
180
+ minutes = 0;
181
+ hours = hours + 1;
182
+
183
+ if ( hours >= 24 ) {
184
+ hours = 0;
185
+ }
186
+ }
187
+
188
+ if ( minutes < 10 ) {
189
+ minutes = '0' + minutes;
190
+ }
191
+
192
+ return hours + ":" + minutes;
193
+ }
194
 
195
  function um_ajax_get_members( directory, args ) {
196
 
246
  var filter_name = filter.find( '.um-timepicker-filter' ).data('filter_name');
247
  var value_from = um_get_data_for_directory( directory, 'filter_' + filter_name + '_from' );
248
  var value_to = um_get_data_for_directory( directory, 'filter_' + filter_name + '_to' );
249
+
250
+ if ( typeof value_from != 'undefined' ) {
251
+ var value_from = value_from.split(':');
252
+ var hours = value_from[0]*1;
253
+ if ( hours < 10 ) {
254
+ hours = '0' + hours;
255
+ }
256
+
257
+ var minutes = value_from[1]*1;
258
+ if ( minutes < 10 ) {
259
+ minutes = '0' + minutes;
260
+ }
261
+
262
+ value_from = hours + ':' + minutes + ':00';
263
+ }
264
+ if ( typeof value_to != 'undefined' ) {
265
+ var val_to = value_to.split(':');
266
+ var minutes = val_to[1]*1;
267
+
268
+ var hours = val_to[0]*1;
269
+ if ( hours < 10 ) {
270
+ hours = '0' + hours;
271
+ }
272
+
273
+ if ( minutes < 10 ) {
274
+ minutes = '0' + minutes;
275
+ }
276
+
277
+ value_to = hours + ':' + minutes + ':59';
278
+ }
279
+
280
+ if ( typeof value_from != 'undefined' || typeof value_to != 'undefined' ) {
281
  request[ filter_name ] = [ value_from, value_to ];
282
  }
283
+ } else if ( filter.find( 'select' ).length ) {
284
  var filter_name = filter.find('select').attr('name');
285
  var value = um_get_data_for_directory( directory, 'filter_' + filter_name );
286
  if ( typeof value != 'undefined' ) {
287
  request[ filter_name ] = value.split( '||' );
288
  }
289
+ } else {
290
+ var filter_name = filter.find('input[type="text"]').attr('name');
291
+ var value = um_get_data_for_directory( directory, 'filter_' + filter_name );
292
+ if ( typeof value != 'undefined' ) {
293
+ request[ filter_name ] = value;
294
+ }
295
  }
296
  });
297
  }
337
 
338
  function um_build_template( directory, data ) {
339
  var layout = directory.data('view_type');
340
+ var template = wp.template( 'um-member-' + layout + '-' + um_members_get_hash( directory ) );
341
 
342
  directory.find('.um-members-grid, .um-members-list').remove();
343
  directory.find('.um-members-wrapper').prepend( template( data.users ) );
344
 
345
  var header_template = wp.template( 'um-members-header' );
346
  directory.find('.um-members-intro').remove();
347
+ if ( typeof data.is_search != 'undefined' && data.is_search ) {
348
+ directory.find('.um-members-wrapper').prepend( header_template( data ) );
349
+ }
350
 
351
  directory.addClass('um-loaded');
352
 
474
  filters_data.push( {'name':filter_name, 'label':filter_title, 'value_label':filter_value_title, 'value':filter_value[ i ], 'type':filter_type} );
475
  });
476
 
477
+ } else if( filter.find('input[type="text"]').length ) {
478
+
479
+ filter_type = 'text';
480
+ filter_name = filter.find('input[type="text"]').attr('name');
481
+ filter_title = filter.find('input[type="text"]').attr('placeholder');
482
+
483
+ var filter_value = um_get_data_for_directory( directory, 'filter_' + filter_name );
484
+ if ( typeof filter_value == 'undefined' ) {
485
+ filter_value = '';
486
+ }
487
+
488
+ if ( filter_value != '' ) {
489
+ filters_data.push( {'name':filter_name, 'label':filter_title, 'value_label':filter_value, 'value':filter_value, 'type':filter_type} );
490
+ }
491
+
492
  } else if( filter.find('div.ui-slider').length ) {
493
  filter_type = 'slider';
494
 
520
  directory.find('.um-members-filter-tag').remove();
521
 
522
  var filtered_line = directory.find('.um-filtered-line');
523
+ if ( filtered_line.length ) {
524
  var filters_template = wp.template( 'um-members-filtered-line' );
525
  filtered_line.prepend( filters_template( {'filters': filters_data} ) );
526
 
949
  directory.data( 'searched', 1 );
950
  directory.find( '.um-member-directory-sorting-options' ).prop( 'disabled', false );
951
  directory.find( '.um-member-directory-view-type' ).removeClass( 'um-disabled' );
952
+ // if ( directory.find( '.um-search-filter select[data-um-parent="' + filter_name + '"]' ).length > 0 ) {
953
+ // jQuery(this).trigger('change');
954
+ // }
955
  });
956
 
957
 
958
+ jQuery( document.body ).on( 'blur', '.um-directory .um-search-filter.um-text-filter-type input[type="text"]', function() {
959
  var directory = jQuery(this).parents('.um-directory');
960
 
961
+ if ( um_is_directory_busy( directory ) ) {
962
+ return;
963
+ }
964
+
965
+ var current_value = jQuery(this).val();
966
+ var filter_name = jQuery(this).prop('name');
967
+ var url_value = um_get_data_for_directory( directory, 'filter_' + filter_name );
968
+
969
+ if ( typeof url_value == 'undefined' ) {
970
+ url_value = '';
971
+ }
972
+
973
+ if ( current_value === url_value ) {
974
  return;
975
  }
976
 
977
  um_members_show_preloader( directory );
978
+ um_set_url_from_data( directory, 'filter_' + filter_name, current_value );
979
+
980
+ //set 1st page after filtration
981
+ directory.data( 'page', 1 );
982
+ um_set_url_from_data( directory, 'page', '' );
983
+
984
+ um_ajax_get_members( directory );
985
+
986
+ um_change_tag( directory );
987
+
988
+ directory.data( 'searched', 1 );
989
+ directory.find( '.um-member-directory-sorting-options' ).prop( 'disabled', false );
990
+ directory.find( '.um-member-directory-view-type' ).removeClass( 'um-disabled' );
991
+ });
992
+
993
+
994
+ //make search on Enter click
995
+ jQuery( document.body ).on( 'keypress', '.um-directory .um-search-filter.um-text-filter-type input[type="text"]', function(e) {
996
+ if ( e.which === 13 ) {
997
+ var directory = jQuery(this).parents('.um-directory');
998
+
999
+ if ( um_is_directory_busy( directory ) ) {
1000
+ return;
1001
+ }
1002
+
1003
+ var current_value = jQuery(this).val();
1004
+ var filter_name = jQuery(this).prop('name');
1005
+ var url_value = um_get_data_for_directory( directory, 'filter_' + filter_name );
1006
+
1007
+ if ( typeof url_value == 'undefined' ) {
1008
+ url_value = '';
1009
+ }
1010
+
1011
+ if ( current_value === url_value ) {
1012
+ return;
1013
+ }
1014
+
1015
+ um_members_show_preloader( directory );
1016
+ um_set_url_from_data( directory, 'filter_' + filter_name, current_value );
1017
+
1018
+ //set 1st page after filtration
1019
+ directory.data( 'page', 1 );
1020
+ um_set_url_from_data( directory, 'page', '' );
1021
+
1022
+ um_ajax_get_members( directory );
1023
+
1024
+ um_change_tag( directory );
1025
+
1026
+ directory.data( 'searched', 1 );
1027
+ directory.find( '.um-member-directory-sorting-options' ).prop( 'disabled', false );
1028
+ directory.find( '.um-member-directory-view-type' ).removeClass( 'um-disabled' );
1029
+ }
1030
+ });
1031
+
1032
+
1033
+
1034
+ jQuery( document.body ).on( 'click', '.um-directory .um-members-filter-remove', function() {
1035
+ var directory = jQuery(this).parents('.um-directory');
1036
+
1037
+ if ( um_is_directory_busy(directory) || ! directory ) {
1038
+ return;
1039
+ }
1040
+
1041
+ um_members_show_preloader(directory);
1042
 
1043
  var removeItem = jQuery(this).data('value');
1044
  var filter_name = jQuery(this).data('name');
1045
 
1046
  var type = jQuery(this).data('type');
1047
+ if ( type === 'text' ) {
1048
+ um_set_url_from_data( directory, 'filter_' + filter_name,'' );
1049
+
1050
+ jQuery( '.um-search-filter input[name="' + filter_name + '"]' ).val('');
1051
+
1052
+ } else if ( type === 'select' ) {
1053
 
1054
  var current_value = um_get_data_for_directory( directory, 'filter_' + filter_name );
1055
  if ( typeof current_value == 'undefined' ) {
1070
 
1071
  um_set_url_from_data( directory, 'filter_' + filter_name, current_value );
1072
 
 
1073
  var select = jQuery( '.um-search-filter select[name="' + filter_name + '"]' );
1074
  select.find('option[value="' + removeItem + '"]').prop('disabled', false).show();
1075
 
1079
  }
1080
  select.select2('destroy').select2();
1081
 
1082
+ if ( directory.find( '.um-search-filter select[data-um-parent="' + filter_name + '"]' ).length > 0 ) {
1083
+ select.trigger('change');
1084
+ }
1085
+
1086
  } else if ( type === 'slider' ) {
1087
  um_set_url_from_data( directory, 'filter_' + filter_name + '_from','' );
1088
  um_set_url_from_data( directory, 'filter_' + filter_name + '_to', '' );
1141
  var filter_name = jQuery(this).data('name');
1142
 
1143
  var type = jQuery(this).data('type');
1144
+ if ( type === 'text' ) {
1145
+ um_set_url_from_data( directory, 'filter_' + filter_name,'' );
1146
+
1147
+ jQuery( '.um-search-filter input[name="' + filter_name + '"]' ).val('');
1148
+
1149
+ } else if ( type === 'select' ) {
1150
 
1151
  var current_value = um_get_data_for_directory( directory, 'filter_' + filter_name );
1152
  if ( typeof current_value == 'undefined' ) {
1179
  } else if ( type === 'slider' ) {
1180
  um_set_url_from_data( directory, 'filter_' + filter_name + '_from','' );
1181
  um_set_url_from_data( directory, 'filter_' + filter_name + '_to', '' );
1182
+
1183
+ jQuery( '.um-search-filter input[name="filter_' + filter_name + '_from"]' ).val('');
1184
+ jQuery( '.um-search-filter input[name="filter_' + filter_name + '_to"]' ).val('');
1185
  } else if ( type === 'datepicker' ) {
1186
  um_set_url_from_data( directory, 'filter_' + filter_name + '_from','' );
1187
  um_set_url_from_data( directory, 'filter_' + filter_name + '_to', '' );
1188
+
1189
+ jQuery( '.um-search-filter input[name="filter_' + filter_name + '_from"]' ).val('');
1190
+ jQuery( '.um-search-filter input[name="filter_' + filter_name + '_to"]' ).val('');
1191
  } else if ( type === 'timepicker' ) {
1192
  um_set_url_from_data( directory, 'filter_' + filter_name + '_from','' );
1193
  um_set_url_from_data( directory, 'filter_' + filter_name + '_to', '' );
1194
+
1195
+ jQuery( '.um-search-filter input[name="filter_' + filter_name + '_from"]' ).val('');
1196
+ jQuery( '.um-search-filter input[name="filter_' + filter_name + '_to"]' ).val('');
1197
  }
1198
  });
1199
 
1242
  var hash = um_members_get_hash( directory );
1243
  um_member_directories.push( hash );
1244
 
1245
+ // slideup/slidedown animation fix for grid filters bar
 
 
 
 
 
 
 
 
 
 
 
1246
  if ( directory.find('.um-search').length ) {
1247
  if ( ! directory.find('.um-search').is(':visible') ) {
1248
  directory.find('.um-search').css({
1387
  //timepicker filter
1388
  directory.find('.um-timepicker-filter').each( function() {
1389
  var elem = jQuery(this);
1390
+ var elemID = elem.attr('id');
1391
+ var elem_filter_name = elem.data('filter_name');
1392
 
1393
  //using arrays formatted as [HOUR,MINUTE]
1394
+ var min = elem.attr('data-min');
1395
+ var max = elem.attr('data-max');
1396
 
 
 
1397
  var picker_min = min.split(':');
1398
  var picker_max = max.split(':');
1399
 
1407
  onOpen: function() { elem.blur(); },
1408
  onClose: function() { elem.blur(); },
1409
  onSet: function( context ) {
1410
+
1411
  var directory = elem.parents('.um-directory');
1412
 
1413
  if ( um_is_directory_busy( directory ) ) {
1429
  }
1430
 
1431
  if ( typeof context.select !== 'undefined' ) {
1432
+ var select_val = um_time_convert( context.select, range );
1433
+
1434
+ //var select_val = context.select / 60;
1435
 
1436
  if ( range === 'from' ) {
1437
+ current_value_from = select_val;
1438
  } else if ( range === 'to' ) {
1439
+ current_value_to = select_val;
1440
  }
1441
  } else {
1442
  if ( range === 'from' ) {
1446
  }
1447
  }
1448
 
1449
+ var time = jQuery( '#' + elemID ).val();
1450
+
1451
+ if ( elem.data('range') === 'from' ) {
1452
+ jQuery( '#' + elem_filter_name + '_to' ).pickatime('picker').set('min', time);
1453
+ } else {
1454
+ jQuery( '#' + elem_filter_name + '_from').pickatime('picker').set('max', time);
1455
+ }
1456
+
1457
  um_set_url_from_data( directory, 'filter_' + filter_name + '_from', current_value_from );
1458
  um_set_url_from_data( directory, 'filter_' + filter_name + '_to', current_value_to );
1459
 
1468
  directory.data( 'searched', 1 );
1469
  directory.find( '.um-member-directory-sorting-options' ).prop( 'disabled', false );
1470
  directory.find( '.um-member-directory-view-type' ).removeClass( 'um-disabled' );
1471
+
1472
  }
1473
  });
1474
 
1475
+ // first loading timepicker select
1476
  var $picker = $input.pickatime('picker');
1477
  var $fname = elem.data('filter_name');
1478
  var $frange = elem.data('range');
1481
  var query_value = um_get_data_for_directory( $directory, 'filter_' + $fname + '_' + $frange );
1482
  if ( typeof query_value !== 'undefined' ) {
1483
  var arr = query_value.split(':');
1484
+ $picker.set( 'select', arr[0]*60 + arr[1]*1 );
1485
  }
1486
+
1487
  });
1488
 
1489
+ var show_after_search = directory.data('must-search');
1490
+ if ( show_after_search === 1 ) {
1491
+ var search = um_get_search( directory );
1492
+ var filters_data = um_get_filters_data( directory );
1493
+ if ( ! filters_data.length && ! search ) {
1494
+ return;
1495
+ }
1496
+ }
1497
+
1498
+ um_members_show_preloader( directory );
1499
+ um_ajax_get_members( directory, {first_load:true} );
1500
  um_change_tag( directory );
1501
  });
1502
 
assets/js/um-members.min.js CHANGED
@@ -1 +1 @@
1
- var um_members_directory_busy=[],um_member_directories=[],um_member_directory_last_data=[];function um_parse_current_url(){var t={},a=window.location.search.substring(1).split("&");return jQuery.each(a,function(e){var r=a[e].split("=");t[r[0]]=r[1]}),t}function um_get_data_for_directory(e,r){var t=um_members_get_hash(e),a={},i=um_parse_current_url();if(jQuery.each(i,function(e){-1!==e.indexOf("_"+t)&&""!==i[e]&&(a[e.replace("_"+t,"")]=i[e])}),r){if(void 0!==a[r])try{a[r]=decodeURI(a[r])}catch(e){console.error(e)}return a[r]}return a}function um_set_url_from_data(e,r,t){var a=um_members_get_hash(e),i=um_get_data_for_directory(e),m={};""!==t&&(m[r+"_"+a]=t),jQuery.each(i,function(e){r===e?""!==t&&(m[e+"_"+a]=t):m[e+"_"+a]=i[e]}),jQuery.each(um_member_directories,function(e){var r=um_member_directories[e];if(r!==a){var t=um_get_data_for_directory(jQuery('.um-directory[data-hash="'+r+'"]'));jQuery.each(t,function(e){m[e+"_"+r]=t[e]})}});var d=[];jQuery.each(m,function(e){d.push(e+"="+m[e])});var u="?"+(d=wp.hooks.applyFilters("um_member_directory_url_attrs",d)).join("&");"?"===u&&(u=""),window.history.pushState("string","UM Member Directory",window.location.origin+window.location.pathname+u)}function um_members_get_hash(e){return e.data("hash")}function um_is_directory_busy(e){var r=um_members_get_hash(e);return void 0!==um_members_directory_busy[r]&&um_members_directory_busy[r]}function um_members_show_preloader(e){um_members_directory_busy[um_members_get_hash(e)]=!0,e.find(".um-members-overlay").show()}function um_members_hide_preloader(e){um_members_directory_busy[um_members_get_hash(e)]=!1,e.find(".um-members-overlay").hide()}function um_set_range_label(e,r){var t=e.siblings(".um-slider-range").data("placeholder");t=r?t.replace("{min_range}",r.values[0]).replace("{max_range}",r.values[1]).replace("{field_label}",e.siblings(".um-slider-range").data("label")):t.replace("{min_range}",e.slider("values",0)).replace("{max_range}",e.slider("values",1)).replace("{field_label}",e.siblings(".um-slider-range").data("label")),e.siblings(".um-slider-range").html(t),e.siblings(".um_range_min").val(e.slider("values",0)),e.siblings(".um_range_max").val(e.slider("values",1))}function um_get_search(e){return e.find(".um-search-line").length?e.find(".um-search-line").val():""}function um_get_sort(e){return e.data("sorting")}function um_get_current_page(e){var r=e.data("page");return r&&void 0!==r||(r=1),r}function um_ajax_get_members(m,t){var a=um_members_get_hash(m),e=um_get_current_page(m),r=um_get_search(m),i=um_get_sort(m),d=-(new Date).getTimezoneOffset()/60,u={directory_id:a,page:e,search:r,sorting:i,gmt_offset:d,post_refferer:m.data("base-post"),nonce:um_scripts.nonce};m.find(".um-search-filter").length&&m.find(".um-search-filter").each(function(){var e=jQuery(this);if(e.find(".um-slider").length){var r=e.find(".um-slider").data("field_name"),t=um_get_data_for_directory(m,"filter_"+r+"_from"),a=um_get_data_for_directory(m,"filter_"+r+"_to");void 0===t&&void 0===a||(u[r]=[t,a])}else if(e.find(".um-datepicker-filter").length){r=e.find(".um-datepicker-filter").data("filter_name"),t=um_get_data_for_directory(m,"filter_"+r+"_from"),a=um_get_data_for_directory(m,"filter_"+r+"_to");void 0===t&&void 0===a||(u[r]=[t,a])}else if(e.find(".um-timepicker-filter").length){r=e.find(".um-timepicker-filter").data("filter_name"),t=um_get_data_for_directory(m,"filter_"+r+"_from"),a=um_get_data_for_directory(m,"filter_"+r+"_to");void 0===t&&void 0===a||(u[r]=[t,a])}else{r=e.find("select").attr("name");var i=um_get_data_for_directory(m,"filter_"+r);void 0!==i&&(u[r]=i.split("||"))}}),u=wp.hooks.applyFilters("um_member_directory_filter_request",u),wp.ajax.send("um_get_members",{data:u,success:function(e){um_member_directory_last_data[a]=e,um_build_template(m,e);var r=wp.template("um-members-pagination");m.find(".um-members-pagination-box").html(r(e)),m.data("total_pages",e.pagination.total_pages),e.pagination.total_pages?(m.find(".um-member-directory-sorting-options").prop("disabled",!1),m.find(".um-member-directory-view-type").removeClass("um-disabled")):(m.find(".um-member-directory-sorting-options").prop("disabled",!0),m.find(".um-member-directory-view-type").addClass("um-disabled")),jQuery(document).trigger("um_members_rendered",t),um_init_new_dropdown(),um_members_hide_preloader(m)},error:function(e){console.log(e),um_members_hide_preloader(m)}})}function um_build_template(e,r){var t=e.data("view_type"),a=wp.template("um-member-"+t);e.find(".um-members-grid, .um-members-list").remove(),e.find(".um-members-wrapper").prepend(a(r.users));var i=wp.template("um-members-header");e.find(".um-members-intro").remove(),e.find(".um-members-wrapper").prepend(i(r)),e.addClass("um-loaded"),e.find(".um-members.um-members-grid").length&&UM_Member_Grid(e.find(".um-members.um-members-grid")),jQuery(document).trigger("um_build_template",[e,r]),jQuery(window).trigger("resize"),init_tipsy()}function UM_Member_Grid(e){e.find(".um-member").length&&e.imagesLoaded(function(){e.masonry({itemSelector:".um-member",columnWidth:".um-member",gutter:".um-gutter-sizer"}).on("layoutComplete",function(e,r){jQuery(document).trigger("um_grid_initialized",[e,r])})})}function um_get_filters_data(s){var _=[];return s.find(".um-search-filter").each(function(){var t,a,d,i=jQuery(this);if(i.find("input.um-datepicker-filter").length)d="datepicker",i.find("input.um-datepicker-filter").each(function(){if("to"!==jQuery(this).data("range")){var e=jQuery(this).data("filter_name"),r=um_get_data_for_directory(s,"filter_"+e+"_from"),t=um_get_data_for_directory(s,"filter_"+e+"_to");if(void 0!==r||void 0!==t){var a,i=jQuery(this).val(),m=s.find('input.um-datepicker-filter[data-range="to"][data-filter_name="'+e+'"]').val();i===m?a=m:""!==i&&""!==m?a=i+" - "+m:""===i?a="before "+m:""===m&&(a="since "+i),_.push({name:e,label:jQuery(this).data("filter-label"),value_label:a,value:[r,t],type:d})}}});else if(i.find("input.um-timepicker-filter").length)d="timepicker",i.find("input.um-timepicker-filter").each(function(){if("to"!==jQuery(this).data("range")){var e=jQuery(this).data("filter_name"),r=um_get_data_for_directory(s,"filter_"+e+"_from"),t=um_get_data_for_directory(s,"filter_"+e+"_to");if(void 0!==r||void 0!==t){var a,i=jQuery(this).val(),m=s.find('input.um-timepicker-filter[data-range="to"][data-filter_name="'+e+'"]').val();i===m?a=m:""!==i&&""!==m?a=i+" - "+m:""===i?a="before "+m:""===m&&(a="since "+i),_.push({name:e,label:jQuery(this).data("filter-label"),value_label:a,value:[r,t],type:d})}}});else if(i.find("select").length){d="select",t=i.find("select").attr("name"),a=i.find("select").data("placeholder");var m=um_get_data_for_directory(s,"filter_"+t);m=void 0===m?[]:m.split("||"),jQuery.each(m,function(e){var r=i.find('select option[value="'+m[e]+'"]').data("value_label");_.push({name:t,label:a,value_label:r,value:m[e],type:d})})}else if(i.find("div.ui-slider").length){d="slider",t=i.find("div.ui-slider").data("field_name");var e=um_get_data_for_directory(s,"filter_"+t+"_from"),r=um_get_data_for_directory(s,"filter_"+t+"_to");if(void 0===e&&void 0===r)return;a=i.find("div.um-slider-range").data("label");var u=i.find("div.um-slider-range").data("placeholder").replace("{min_range}",e).replace("{max_range}",r).replace("{field_label}",i.find("div.um-slider-range").data("label"));_.push({name:t,label:a,value_label:u,value:[e,r],type:d})}}),_}function um_change_tag(e){var r=um_get_filters_data(e);e.find(".um-members-filter-tag").remove();var t=e.find(".um-filtered-line");if(t.length){var a=wp.template("um-members-filtered-line");t.prepend(a({filters:r})),0===e.find(".um-members-filter-remove").length?(e.find(".um-clear-filters").hide(),e.find(".um-clear-filters").parents(".um-member-directory-header-row").addClass("um-header-row-invisible")):(e.find(".um-clear-filters").show(),e.find(".um-clear-filters").parents(".um-member-directory-header-row").removeClass("um-header-row-invisible"))}}function um_run_search(e){if(!um_is_directory_busy(e)){um_members_show_preloader(e);var r=um_get_data_for_directory(e,"search");if((t=e.find(".um-search-line").val())===r||""===t&&void 0===r)um_members_hide_preloader(e);else{if(e.data("general_search",t),um_set_url_from_data(e,"search",t),e.data("page",1),um_set_url_from_data(e,"page",""),1===e.data("must-search")){var t=um_get_search(e);if(0===e.find(".um-members-filter-remove").length&&!t)return e.data("searched",0),e.find(".um-members-grid, .um-members-list").remove(),e.find(".um-member-directory-sorting-options").prop("disabled",!0),e.find(".um-member-directory-view-type").addClass("um-disabled"),void um_members_hide_preloader(e)}e.data("searched",1),e.find(".um-member-directory-sorting-options").prop("disabled",!1),e.find(".um-member-directory-view-type").removeClass("um-disabled"),um_ajax_get_members(e)}}}jQuery(document.body).ready(function(){jQuery(".um-directory .um-search-filter select").each(function(){1===jQuery(this).find("option:not(:disabled)").length&&jQuery(this).prop("disabled",!0),jQuery(this).select2("destroy").select2()}),jQuery(document.body).on("mouseover",".um-directory .um-member-directory-view-type",function(){if(!jQuery(this).hasClass("um-disabled")){var e=jQuery(this).find(".um-member-directory-view-type-a:visible");e.hide(),e.next().length?e.next().show().tipsy("show"):jQuery(this).find(".um-member-directory-view-type-a:first").show().tipsy("show")}}).on("mouseout",".um-directory .um-member-directory-view-type",function(){jQuery(this).hasClass("um-disabled")||(jQuery(this).find(".um-member-directory-view-type-a").hide().tipsy("hide"),jQuery(this).find('.um-member-directory-view-type-a[data-type="'+jQuery(this).parents(".um-directory").data("view_type")+'"]').show())}),jQuery(document.body).on("click",".um-directory .um-member-directory-view-type-a",function(){var e=jQuery(this).parents(".um-directory");if(um_is_directory_busy(e))return!1;var r=jQuery(this),t=r.parents(".um-member-directory-view-type");if(!t.hasClass("um-disabled")){um_members_show_preloader(e);var a=t.find(".um-member-directory-view-type-a:visible");a.hide(),a.next().length?a.next().show().tipsy("show"):t.find(".um-member-directory-view-type-a:first").show().tipsy("show");var i=um_member_directory_last_data[um_members_get_hash(e)];if(null!==i){var m=r.data("type");um_set_url_from_data(e,"view_type",m),e.data("view_type",m),um_build_template(e,i)}um_members_hide_preloader(e)}}),jQuery(document.body).on("click",".um-directory .um-do-search",function(){um_run_search(jQuery(this).parents(".um-directory"))}),jQuery(document.body).on("keypress",".um-directory .um-search-line",function(e){13===e.which&&um_run_search(jQuery(this).parents(".um-directory"))}),jQuery(document.body).on("click",".um-directory .um-member-directory-sorting-a .um-new-dropdown li a",function(){var e=jQuery(this).parents(".um-directory");if(!um_is_directory_busy(e)&&1!==jQuery(this).data("selected")){um_members_show_preloader(e);var r=jQuery(this).data("value");e.data("sorting",r),um_set_url_from_data(e,"sort",r),um_ajax_get_members(e),jQuery(this).parents(".um-new-dropdown").find("a").data("selected",0).prop("data-selected",0).attr("data-selected",0),jQuery(this).data("selected",1).prop("data-selected",1).attr("data-selected",1),jQuery(this).parents(".um-member-directory-sorting-a").find("> a").html(jQuery(this).html())}}),jQuery(document.body).on("click",".um-directory .pagi:not(.current)",function(){if(!jQuery(this).hasClass("disabled")){var e,r=jQuery(this).parents(".um-directory");if(!um_is_directory_busy(r))um_members_show_preloader(r),1===(e="first"===jQuery(this).data("page")?1:"prev"===jQuery(this).data("page")?1*r.data("page")-1:"next"===jQuery(this).data("page")?1*r.data("page")+1:"last"===jQuery(this).data("page")?parseInt(r.data("total_pages")):parseInt(jQuery(this).data("page")))?(r.find('.pagi[data-page="first"], .pagi[data-page="prev"]').addClass("disabled"),r.find('.pagi[data-page="prev"], .pagi[data-page="last"]').removeClass("disabled")):(e===parseInt(r.data("total_pages"))?r.find('.pagi[data-page="prev"], .pagi[data-page="last"]').addClass("disabled"):r.find('.pagi[data-page="prev"], .pagi[data-page="last"]').removeClass("disabled"),r.find('.pagi[data-page="first"], .pagi[data-page="prev"]').removeClass("disabled")),r.find(".pagi").removeClass("current"),r.find('.pagi[data-page="'+e+'"]').addClass("current"),r.data("page",e),um_set_url_from_data(r,"page",1===e?"":e),um_ajax_get_members(r)}}),jQuery(document.body).on("change",".um-directory .um-members-pagi-dropdown",function(){var e=jQuery(this).parents(".um-directory");if(!um_is_directory_busy(e)){um_members_show_preloader(e);var r=jQuery(this).val();e.find(".pagi").removeClass("current"),e.find('.pagi[data-page="'+r+'"]').addClass("current"),e.data("page",r),um_set_url_from_data(e,"page",1===r?"":r),um_ajax_get_members(e)}}),jQuery(document.body).on("click",".um-directory .um-members.um-members-list .um-member-more a",function(e){e.preventDefault();var r=jQuery(this).parents(".um-member");return r.find(".um-member-more").hide(),r.find(".um-member-meta-main").slideDown(),r.find(".um-member-less").fadeIn(),!1}),jQuery(document.body).on("click",".um-directory .um-members.um-members-list .um-member-less a",function(e){e.preventDefault();var r=jQuery(this).parents(".um-member");return r.find(".um-member-less").hide(),r.find(".um-member-meta-main").slideUp(),r.find(".um-member-more").fadeIn(),!1}),jQuery(document.body).on("click",".um-directory .um-members.um-members-grid .um-member-more a",function(e){e.preventDefault();var r=jQuery(this).parents(".um-member"),t=jQuery(this).parents(".um-members");return r.find(".um-member-more").hide(),r.find(".um-member-meta").slideDown(function(){UM_Member_Grid(t)}),r.find(".um-member-less").fadeIn(),setTimeout(function(){UM_Member_Grid(t)},100),!1}),jQuery(document.body).on("click",".um-directory .um-members.um-members-grid .um-member-less a",function(e){e.preventDefault();var r=jQuery(this).parents(".um-member"),t=jQuery(this).parents(".um-members");return r.find(".um-member-less").hide(),r.find(".um-member-meta").slideUp(function(){r.find(".um-member-more").fadeIn(),UM_Member_Grid(t)}),!1}),jQuery(".um-member-directory-filters-a").click(function(){var e=jQuery(this),r=e.parents(".um-directory").find(".um-search");r.is(":visible")?r.slideUp(250,function(){e.toggleClass("um-member-directory-filters-visible"),r.parents(".um-member-directory-header-row").toggleClass("um-header-row-invisible")}):r.slideDown({duration:250,start:function(){jQuery(this).css({display:"grid"}),e.toggleClass("um-member-directory-filters-visible"),r.parents(".um-member-directory-header-row").toggleClass("um-header-row-invisible")}})}),jQuery(document.body).on("change",".um-directory .um-search-filter select",function(){if(""!==jQuery(this).val()){var e=jQuery(this).parents(".um-directory");if(!um_is_directory_busy(e)){um_members_show_preloader(e);var r=jQuery(this).prop("name"),t=um_get_data_for_directory(e,"filter_"+r);t=void 0===t?[]:t.split("||"),-1===jQuery.inArray(jQuery(this).val(),t)&&(t.push(jQuery(this).val()),um_set_url_from_data(e,"filter_"+r,t=t.join("||")),e.data("page",1),um_set_url_from_data(e,"page","")),jQuery(this).find('option[value="'+jQuery(this).val()+'"]').prop("disabled",!0).hide(),1===jQuery(this).find("option:not(:disabled)").length&&jQuery(this).prop("disabled",!0),jQuery(this).select2("destroy").select2(),jQuery(this).val("").trigger("change"),um_ajax_get_members(e),um_change_tag(e),e.data("searched",1),e.find(".um-member-directory-sorting-options").prop("disabled",!1),e.find(".um-member-directory-view-type").removeClass("um-disabled")}}}),jQuery(document.body).on("click",".um-directory .um-members-filter-remove",function(){var e=jQuery(this).parents(".um-directory");if(!um_is_directory_busy(e)&&e){um_members_show_preloader(e);var r=jQuery(this).data("value"),t=jQuery(this).data("name"),a=jQuery(this).data("type");if("select"===a){var i=um_get_data_for_directory(e,"filter_"+t);i=void 0===i?[]:i.split("||"),-1!==jQuery.inArray(r.toString(),i)&&(i=jQuery.grep(i,function(e){return e!==r.toString()})),i.length||(i=""),um_set_url_from_data(e,"filter_"+t,i);var m=jQuery('.um-search-filter select[name="'+t+'"]');m.find('option[value="'+r+'"]').prop("disabled",!1).show(),1<m.find("option:not(:disabled)").length&&m.prop("disabled",!1),m.select2("destroy").select2()}else"slider"===a?(um_set_url_from_data(e,"filter_"+t+"_from",""),um_set_url_from_data(e,"filter_"+t+"_to","")):"datepicker"===a?(um_set_url_from_data(e,"filter_"+t+"_from",""),um_set_url_from_data(e,"filter_"+t+"_to","")):"timepicker"===a&&(um_set_url_from_data(e,"filter_"+t+"_from",""),um_set_url_from_data(e,"filter_"+t+"_to",""));if(e.data("page",1),um_set_url_from_data(e,"page",""),jQuery(this).tipsy("hide"),jQuery(this).parents(".um-members-filter-tag").remove(),0===e.find(".um-members-filter-remove").length?e.find(".um-clear-filters").hide():e.find(".um-clear-filters").show(),1===e.data("must-search")){var d=um_get_search(e);if(0===e.find(".um-members-filter-remove").length&&!d)return e.data("searched",0),e.find(".um-members-grid, .um-members-list").remove(),e.find(".um-member-directory-sorting-options").prop("disabled",!0),e.find(".um-member-directory-view-type").addClass("um-disabled"),void um_members_hide_preloader(e)}e.find(".um-member-directory-sorting-options").prop("disabled",!1),e.find(".um-member-directory-view-type").removeClass("um-disabled"),um_ajax_get_members(e)}}),jQuery(document.body).on("click",".um-directory .um-clear-filters-a",function(){var m=jQuery(this).parents(".um-directory");if(!um_is_directory_busy(m)){if(um_members_show_preloader(m),m.find(".um-members-filter-remove").each(function(){var r=jQuery(this).data("value"),e=jQuery(this).data("name"),t=jQuery(this).data("type");if("select"===t){var a=um_get_data_for_directory(m,"filter_"+e);a=void 0===a?[]:a.split("||"),-1!==jQuery.inArray(r.toString(),a)&&(a=jQuery.grep(a,function(e){return e!==r.toString()})),a.length||(a=""),um_set_url_from_data(m,"filter_"+e,a);var i=jQuery('.um-search-filter select[name="'+e+'"]');i.find('option[value="'+r+'"]').prop("disabled",!1).show(),1<i.find("option:not(:disabled)").length&&i.prop("disabled",!1),i.select2("destroy").select2()}else"slider"===t?(um_set_url_from_data(m,"filter_"+e+"_from",""),um_set_url_from_data(m,"filter_"+e+"_to","")):"datepicker"===t?(um_set_url_from_data(m,"filter_"+e+"_from",""),um_set_url_from_data(m,"filter_"+e+"_to","")):"timepicker"===t&&(um_set_url_from_data(m,"filter_"+e+"_from",""),um_set_url_from_data(m,"filter_"+e+"_to",""))}),m.data("page",1),um_set_url_from_data(m,"page",""),m.find(".um-members-filter-tag").remove(),0===m.find(".um-members-filter-remove").length?(m.find(".um-clear-filters").hide(),m.find(".um-clear-filters").parents(".um-member-directory-header-row").addClass("um-header-row-invisible")):(m.find(".um-clear-filters").show(),m.find(".um-clear-filters").parents(".um-member-directory-header-row").removeClass("um-header-row-invisible")),1===m.data("must-search"))if(!um_get_search(m))return m.data("searched",0),m.find(".um-members-grid, .um-members-list").remove(),m.find(".um-member-directory-sorting-options").prop("disabled",!0),m.find(".um-member-directory-view-type").addClass("um-disabled"),void um_members_hide_preloader(m);m.find(".um-member-directory-sorting-options").prop("disabled",!1),m.find(".um-member-directory-view-type").removeClass("um-disabled"),um_ajax_get_members(m)}}),jQuery(".um-directory").each(function(){var e=jQuery(this),r=um_members_get_hash(e);if(um_member_directories.push(r),1===e.data("must-search")){var t=um_get_search(e);if(!um_get_filters_data(e).length&&!t)return}um_members_show_preloader(e),um_ajax_get_members(e,{first_load:!0}),e.find(".um-search").length&&(e.find(".um-search").is(":visible")||e.find(".um-search").css({display:"grid"}).slideUp(1)),e.find(".um-slider").each(function(){var e=jQuery(this),t=e.parents(".um-directory"),a=e.data("field_name"),r=um_get_data_for_directory(t,"filter_"+a+"_from"),i=um_get_data_for_directory(t,"filter_"+a+"_to");void 0===r&&(r=parseInt(e.data("min"))),void 0===i&&(i=parseInt(e.data("max")));var m=[r,i];e.slider({range:!0,min:parseInt(e.data("min")),max:parseInt(e.data("max")),values:m,create:function(e,r){},step:1,slide:function(e,r){um_set_range_label(jQuery(this),r)},stop:function(e,r){um_is_directory_busy(t)||(um_set_url_from_data(t,"filter_"+a+"_from",r.values[0]),um_set_url_from_data(t,"filter_"+a+"_to",r.values[1]),t.data("page",1),um_set_url_from_data(t,"page",""),um_ajax_get_members(t),um_change_tag(t),t.data("searched",1),t.find(".um-member-directory-sorting-options").prop("disabled",!1),t.find(".um-member-directory-view-type").removeClass("um-disabled"))}}),um_set_range_label(e)}),e.find(".um-datepicker-filter").each(function(){var u=jQuery(this),s=new Date(1e3*u.data("date_min")),_=new Date(1e3*u.data("date_max")),e=u.pickadate({selectYears:!0,min:s,max:_,formatSubmit:"yyyy/mm/dd",hiddenName:!0,onOpen:function(){u.blur()},onClose:function(){u.blur()},onSet:function(e){var r=u.parents(".um-directory");if(!um_is_directory_busy(r)){um_members_show_preloader(r);var t=u.data("filter_name"),a=u.data("range"),i=um_get_data_for_directory(r,"filter_"+t+"_from"),m=um_get_data_for_directory(r,"filter_"+t+"_to");void 0===i&&(i=s/1e3),void 0===m&&(m=_/1e3);var d=e.select/1e3;u.val();"from"===a?i=d:"to"===a&&(m=d),um_set_url_from_data(r,"filter_"+t+"_from",i),um_set_url_from_data(r,"filter_"+t+"_to",m),r.data("page",1),um_set_url_from_data(r,"page",""),um_ajax_get_members(r),um_change_tag(r),r.data("searched",1),r.find(".um-member-directory-sorting-options").prop("disabled",!1),r.find(".um-member-directory-view-type").removeClass("um-disabled")}}}).pickadate("picker"),r=u.data("filter_name"),t=u.data("range"),a=um_get_data_for_directory(u.parents(".um-directory"),"filter_"+r+"_"+t);void 0!==a&&e.set("select",1e3*a)}),e.find(".um-timepicker-filter").each(function(){var u=jQuery(this),s=u.data("min"),_=u.data("max"),e=s.split(":"),r=_.split(":"),t=u.pickatime({format:u.data("format"),interval:parseInt(u.data("intervals")),min:[e[0],e[1]],max:[r[0],r[1]],formatSubmit:"HH:i",hiddenName:!0,onOpen:function(){u.blur()},onClose:function(){u.blur()},onSet:function(e){var r=u.parents(".um-directory");if(!um_is_directory_busy(r)){um_members_show_preloader(r);var t=u.data("filter_name"),a=u.data("range"),i=um_get_data_for_directory(r,"filter_"+t+"_from"),m=um_get_data_for_directory(r,"filter_"+t+"_to");if(void 0===i&&(i=s),void 0===m&&(m=_),void 0!==e.select){var d=e.select/60;u.val();"from"===a?i=d+":00":"to"===a&&(m=d+":00")}else"from"===a?i=s:"to"===a&&(m=_);um_set_url_from_data(r,"filter_"+t+"_from",i),um_set_url_from_data(r,"filter_"+t+"_to",m),r.data("page",1),um_set_url_from_data(r,"page",""),um_ajax_get_members(r),um_change_tag(r),r.data("searched",1),r.find(".um-member-directory-sorting-options").prop("disabled",!1),r.find(".um-member-directory-view-type").removeClass("um-disabled")}}}).pickatime("picker"),a=u.data("filter_name"),i=u.data("range"),m=um_get_data_for_directory(u.parents(".um-directory"),"filter_"+a+"_"+i);if(void 0!==m){var d=m.split(":");t.set("select",60*d[0])}}),um_change_tag(e)}),window.addEventListener("popstate",function(e){jQuery(".um-directory").each(function(){var d=jQuery(this),e=um_members_get_hash(d);(um_member_directories.push(e),um_members_show_preloader(d),d.find(".um-members-grid, .um-members-list, .um-members-intro").remove(),d.find(".um-member-directory-search-line").length)&&(void 0===(m=um_get_data_for_directory(d,"search"))&&(m=""),d.data("general_search",m),d.find(".um-search-line").val(m));var r=um_get_data_for_directory(d,"page");if(void 0===r?r=1:r>d.data("total_pages")&&(r=d.data("total_pages")),d.data("page",r).attr("data-page",r),d.find(".um-member-directory-sorting").length){var t=um_get_data_for_directory(d,"sort");void 0===t&&(t=d.find('.um-new-dropdown[data-element=".um-member-directory-sorting-a"]').find('a[data-default="1"]').data("value")),d.data("sorting",t);var a=d.find('.um-new-dropdown[data-element=".um-member-directory-sorting-a"]');a.find("a").data("selected",0).prop("data-selected",0).attr("data-selected",0),a.find('a[data-value="'+t+'"]').data("selected",1).prop("data-selected",1).attr("data-selected",1),d.find(".um-member-directory-sorting-a").find("> a").html(a.find('a[data-value="'+t+'"]').html())}if(d.find(".um-member-directory-view-type").length){var i=um_get_data_for_directory(d,"view_type");void 0===i&&(i=d.find('.um-member-directory-view-type-a[data-default="1"]').data("type")),d.data("view_type",i),d.find(".um-member-directory-view-type .um-member-directory-view-type-a").hide(),d.find('.um-member-directory-view-type .um-member-directory-view-type-a[data-type="'+i+'"]').show()}if(d.find(".um-datepicker-filter").each(function(){var e=jQuery(this),r=e.pickadate("picker"),t=e.data("filter_name"),a=e.data("range"),i=um_get_data_for_directory(d,"filter_"+t+"_"+a);void 0!==i?r.set("select",1e3*i):r.clear()}),d.find(".um-slider").each(function(){var e=jQuery(this),r=e.data("field_name"),t=um_get_data_for_directory(d,"filter_"+r+"_from"),a=um_get_data_for_directory(d,"filter_"+r+"_to");void 0===t&&(t=e.data("min")),t=parseInt(t),void 0===a&&(a=e.data("max")),a=parseInt(a),e.slider("values",[t,a]),um_set_range_label(e)}),d.find(".um-timepicker-filter").each(function(){var e=jQuery(this),r=e.pickatime("picker"),t=e.data("filter_name"),a=e.data("range"),i=um_get_data_for_directory(d,"filter_"+t+"_"+a);if(void 0!==i){var m=i.split(":");r.set("select",60*m[0])}else r.clear()}),1===d.data("must-search")){var m=um_get_search(d);if(!um_get_filters_data(d).length&&!m)return d.data("searched",0),void um_members_hide_preloader(d);d.data("searched",1)}um_ajax_get_members(d),um_change_tag(d)})})});
1
+ var um_members_directory_busy=[],um_member_directories=[],um_member_directory_last_data=[];function um_parse_current_url(){var t={},a=window.location.search.substring(1).split("&");return jQuery.each(a,function(e){var r=a[e].split("=");t[r[0]]=r[1]}),t}function um_get_data_for_directory(e,r){var t=um_members_get_hash(e),a={},i=um_parse_current_url();if(jQuery.each(i,function(e){-1!==e.indexOf("_"+t)&&""!==i[e]&&(a[e.replace("_"+t,"")]=i[e])}),r){if(void 0!==a[r])try{a[r]=decodeURIComponent(a[r])}catch(e){console.error(e)}return a[r]}return a}function um_set_url_from_data(e,r,t){var a=um_members_get_hash(e),i=um_get_data_for_directory(e),m={};jQuery.isArray(t)?(jQuery.each(t,function(e){t[e]=encodeURIComponent(t[e])}),t=t.join("||")):jQuery.isNumeric(t)||(t=t.split("||"),jQuery.each(t,function(e){t[e]=encodeURIComponent(t[e])}),t=t.join("||")),""!==t&&(m[r+"_"+a]=t),jQuery.each(i,function(e){r===e?""!==t&&(m[e+"_"+a]=t):m[e+"_"+a]=i[e]}),jQuery.each(um_member_directories,function(e){var r=um_member_directories[e];if(r!==a){var t=um_get_data_for_directory(jQuery('.um-directory[data-hash="'+r+'"]'));jQuery.each(t,function(e){m[e+"_"+r]=t[e]})}});var d=[];jQuery.each(m,function(e){d.push(e+"="+m[e])});var u="?"+(d=wp.hooks.applyFilters("um_member_directory_url_attrs",d)).join("&");"?"===u&&(u=""),window.history.pushState("string","UM Member Directory",window.location.origin+window.location.pathname+u)}function um_members_get_hash(e){return e.data("hash")}function um_is_directory_busy(e){var r=um_members_get_hash(e);return void 0!==um_members_directory_busy[r]&&um_members_directory_busy[r]}function um_members_show_preloader(e){um_members_directory_busy[um_members_get_hash(e)]=!0,e.find(".um-members-overlay").show()}function um_members_hide_preloader(e){um_members_directory_busy[um_members_get_hash(e)]=!1,e.find(".um-members-overlay").hide()}function um_set_range_label(e,r){var t=e.siblings(".um-slider-range").data("placeholder");t=r?t.replace("{min_range}",r.values[0]).replace("{max_range}",r.values[1]).replace("{field_label}",e.siblings(".um-slider-range").data("label")):t.replace("{min_range}",e.slider("values",0)).replace("{max_range}",e.slider("values",1)).replace("{field_label}",e.siblings(".um-slider-range").data("label")),e.siblings(".um-slider-range").html(t),e.siblings(".um_range_min").val(e.slider("values",0)),e.siblings(".um_range_max").val(e.slider("values",1))}function um_get_search(e){return e.find(".um-search-line").length?e.find(".um-search-line").val():""}function um_get_sort(e){return e.data("sorting")}function um_get_current_page(e){var r=e.data("page");return r&&void 0!==r||(r=1),r}function um_time_convert(e,r){var t=Math.floor(e/60),a=e%60;return 60<=a&&(a=0,24<=(t+=1)&&(t=0)),a<10&&(a="0"+a),t+":"+a}function um_ajax_get_members(s,t){var a=um_members_get_hash(s),e=um_get_current_page(s),r=um_get_search(s),i=um_get_sort(s),m=-(new Date).getTimezoneOffset()/60,_={directory_id:a,page:e,search:r,sorting:i,gmt_offset:m,post_refferer:s.data("base-post"),nonce:um_scripts.nonce};s.find(".um-search-filter").length&&s.find(".um-search-filter").each(function(){var e=jQuery(this);if(e.find(".um-slider").length){var r=e.find(".um-slider").data("field_name"),t=um_get_data_for_directory(s,"filter_"+r+"_from"),a=um_get_data_for_directory(s,"filter_"+r+"_to");void 0===t&&void 0===a||(_[r]=[t,a])}else if(e.find(".um-datepicker-filter").length){r=e.find(".um-datepicker-filter").data("filter_name"),t=um_get_data_for_directory(s,"filter_"+r+"_from"),a=um_get_data_for_directory(s,"filter_"+r+"_to");void 0===t&&void 0===a||(_[r]=[t,a])}else if(e.find(".um-timepicker-filter").length){r=e.find(".um-timepicker-filter").data("filter_name"),t=um_get_data_for_directory(s,"filter_"+r+"_from"),a=um_get_data_for_directory(s,"filter_"+r+"_to");if(void 0!==t)(i=1*(t=t.split(":"))[0])<10&&(i="0"+i),(d=1*t[1])<10&&(d="0"+d),t=i+":"+d+":00";if(void 0!==a){var i,m=a.split(":"),d=1*m[1];(i=1*m[0])<10&&(i="0"+i),d<10&&(d="0"+d),a=i+":"+d+":59"}void 0===t&&void 0===a||(_[r]=[t,a])}else if(e.find("select").length){r=e.find("select").attr("name");void 0!==(u=um_get_data_for_directory(s,"filter_"+r))&&(_[r]=u.split("||"))}else{var u;r=e.find('input[type="text"]').attr("name");void 0!==(u=um_get_data_for_directory(s,"filter_"+r))&&(_[r]=u)}}),_=wp.hooks.applyFilters("um_member_directory_filter_request",_),wp.ajax.send("um_get_members",{data:_,success:function(e){um_member_directory_last_data[a]=e,um_build_template(s,e);var r=wp.template("um-members-pagination");s.find(".um-members-pagination-box").html(r(e)),s.data("total_pages",e.pagination.total_pages),e.pagination.total_pages?(s.find(".um-member-directory-sorting-options").prop("disabled",!1),s.find(".um-member-directory-view-type").removeClass("um-disabled")):(s.find(".um-member-directory-sorting-options").prop("disabled",!0),s.find(".um-member-directory-view-type").addClass("um-disabled")),jQuery(document).trigger("um_members_rendered",t),um_init_new_dropdown(),um_members_hide_preloader(s)},error:function(e){console.log(e),um_members_hide_preloader(s)}})}function um_build_template(e,r){var t=e.data("view_type"),a=wp.template("um-member-"+t+"-"+um_members_get_hash(e));e.find(".um-members-grid, .um-members-list").remove(),e.find(".um-members-wrapper").prepend(a(r.users));var i=wp.template("um-members-header");e.find(".um-members-intro").remove(),void 0!==r.is_search&&r.is_search&&e.find(".um-members-wrapper").prepend(i(r)),e.addClass("um-loaded"),e.find(".um-members.um-members-grid").length&&UM_Member_Grid(e.find(".um-members.um-members-grid")),jQuery(document).trigger("um_build_template",[e,r]),jQuery(window).trigger("resize"),init_tipsy()}function UM_Member_Grid(e){e.find(".um-member").length&&e.imagesLoaded(function(){e.masonry({itemSelector:".um-member",columnWidth:".um-member",gutter:".um-gutter-sizer"}).on("layoutComplete",function(e,r){jQuery(document).trigger("um_grid_initialized",[e,r])})})}function um_get_filters_data(s){var _=[];return s.find(".um-search-filter").each(function(){var t,a,d,i=jQuery(this);if(i.find("input.um-datepicker-filter").length)d="datepicker",i.find("input.um-datepicker-filter").each(function(){if("to"!==jQuery(this).data("range")){var e=jQuery(this).data("filter_name"),r=um_get_data_for_directory(s,"filter_"+e+"_from"),t=um_get_data_for_directory(s,"filter_"+e+"_to");if(void 0!==r||void 0!==t){var a,i=jQuery(this).val(),m=s.find('input.um-datepicker-filter[data-range="to"][data-filter_name="'+e+'"]').val();i===m?a=m:""!==i&&""!==m?a=i+" - "+m:""===i?a="before "+m:""===m&&(a="since "+i),_.push({name:e,label:jQuery(this).data("filter-label"),value_label:a,value:[r,t],type:d})}}});else if(i.find("input.um-timepicker-filter").length)d="timepicker",i.find("input.um-timepicker-filter").each(function(){if("to"!==jQuery(this).data("range")){var e=jQuery(this).data("filter_name"),r=um_get_data_for_directory(s,"filter_"+e+"_from"),t=um_get_data_for_directory(s,"filter_"+e+"_to");if(void 0!==r||void 0!==t){var a,i=jQuery(this).val(),m=s.find('input.um-timepicker-filter[data-range="to"][data-filter_name="'+e+'"]').val();i===m?a=m:""!==i&&""!==m?a=i+" - "+m:""===i?a="before "+m:""===m&&(a="since "+i),_.push({name:e,label:jQuery(this).data("filter-label"),value_label:a,value:[r,t],type:d})}}});else if(i.find("select").length){d="select",t=i.find("select").attr("name"),a=i.find("select").data("placeholder"),m=void 0===(m=um_get_data_for_directory(s,"filter_"+t))?[]:m.split("||"),jQuery.each(m,function(e){var r=i.find('select option[value="'+m[e]+'"]').data("value_label");_.push({name:t,label:a,value_label:r,value:m[e],type:d})})}else if(i.find('input[type="text"]').length){var m;d="text",t=i.find('input[type="text"]').attr("name"),a=i.find('input[type="text"]').attr("placeholder"),void 0===(m=um_get_data_for_directory(s,"filter_"+t))&&(m=""),""!=m&&_.push({name:t,label:a,value_label:m,value:m,type:d})}else if(i.find("div.ui-slider").length){d="slider",t=i.find("div.ui-slider").data("field_name");var e=um_get_data_for_directory(s,"filter_"+t+"_from"),r=um_get_data_for_directory(s,"filter_"+t+"_to");if(void 0===e&&void 0===r)return;a=i.find("div.um-slider-range").data("label");var u=i.find("div.um-slider-range").data("placeholder").replace("{min_range}",e).replace("{max_range}",r).replace("{field_label}",i.find("div.um-slider-range").data("label"));_.push({name:t,label:a,value_label:u,value:[e,r],type:d})}}),_}function um_change_tag(e){var r=um_get_filters_data(e);e.find(".um-members-filter-tag").remove();var t=e.find(".um-filtered-line");if(t.length){var a=wp.template("um-members-filtered-line");t.prepend(a({filters:r})),0===e.find(".um-members-filter-remove").length?(e.find(".um-clear-filters").hide(),e.find(".um-clear-filters").parents(".um-member-directory-header-row").addClass("um-header-row-invisible")):(e.find(".um-clear-filters").show(),e.find(".um-clear-filters").parents(".um-member-directory-header-row").removeClass("um-header-row-invisible"))}}function um_run_search(e){if(!um_is_directory_busy(e)){um_members_show_preloader(e);var r=um_get_data_for_directory(e,"search");if((t=e.find(".um-search-line").val())===r||""===t&&void 0===r)um_members_hide_preloader(e);else{if(e.data("general_search",t),um_set_url_from_data(e,"search",t),e.data("page",1),um_set_url_from_data(e,"page",""),1===e.data("must-search")){var t=um_get_search(e);if(0===e.find(".um-members-filter-remove").length&&!t)return e.data("searched",0),e.find(".um-members-grid, .um-members-list").remove(),e.find(".um-member-directory-sorting-options").prop("disabled",!0),e.find(".um-member-directory-view-type").addClass("um-disabled"),void um_members_hide_preloader(e)}e.data("searched",1),e.find(".um-member-directory-sorting-options").prop("disabled",!1),e.find(".um-member-directory-view-type").removeClass("um-disabled"),um_ajax_get_members(e)}}}jQuery(document.body).ready(function(){jQuery(".um-directory .um-search-filter select").each(function(){1===jQuery(this).find("option:not(:disabled)").length&&jQuery(this).prop("disabled",!0),jQuery(this).select2("destroy").select2()}),jQuery(document.body).on("mouseover",".um-directory .um-member-directory-view-type",function(){if(!jQuery(this).hasClass("um-disabled")){var e=jQuery(this).find(".um-member-directory-view-type-a:visible");e.hide(),e.next().length?e.next().show().tipsy("show"):jQuery(this).find(".um-member-directory-view-type-a:first").show().tipsy("show")}}).on("mouseout",".um-directory .um-member-directory-view-type",function(){jQuery(this).hasClass("um-disabled")||(jQuery(this).find(".um-member-directory-view-type-a").hide().tipsy("hide"),jQuery(this).find('.um-member-directory-view-type-a[data-type="'+jQuery(this).parents(".um-directory").data("view_type")+'"]').show())}),jQuery(document.body).on("click",".um-directory .um-member-directory-view-type-a",function(){var e=jQuery(this).parents(".um-directory");if(um_is_directory_busy(e))return!1;var r=jQuery(this),t=r.parents(".um-member-directory-view-type");if(!t.hasClass("um-disabled")){um_members_show_preloader(e);var a=t.find(".um-member-directory-view-type-a:visible");a.hide(),a.next().length?a.next().show().tipsy("show"):t.find(".um-member-directory-view-type-a:first").show().tipsy("show");var i=um_member_directory_last_data[um_members_get_hash(e)];if(null!==i){var m=r.data("type");um_set_url_from_data(e,"view_type",m),e.data("view_type",m),um_build_template(e,i)}um_members_hide_preloader(e)}}),jQuery(document.body).on("click",".um-directory .um-do-search",function(){um_run_search(jQuery(this).parents(".um-directory"))}),jQuery(document.body).on("keypress",".um-directory .um-search-line",function(e){13===e.which&&um_run_search(jQuery(this).parents(".um-directory"))}),jQuery(document.body).on("click",".um-directory .um-member-directory-sorting-a .um-new-dropdown li a",function(){var e=jQuery(this).parents(".um-directory");if(!um_is_directory_busy(e)&&1!==jQuery(this).data("selected")){um_members_show_preloader(e);var r=jQuery(this).data("value");e.data("sorting",r),um_set_url_from_data(e,"sort",r),um_ajax_get_members(e),jQuery(this).parents(".um-new-dropdown").find("a").data("selected",0).prop("data-selected",0).attr("data-selected",0),jQuery(this).data("selected",1).prop("data-selected",1).attr("data-selected",1),jQuery(this).parents(".um-member-directory-sorting-a").find("> a").html(jQuery(this).html())}}),jQuery(document.body).on("click",".um-directory .pagi:not(.current)",function(){if(!jQuery(this).hasClass("disabled")){var e,r=jQuery(this).parents(".um-directory");if(!um_is_directory_busy(r))um_members_show_preloader(r),1===(e="first"===jQuery(this).data("page")?1:"prev"===jQuery(this).data("page")?1*r.data("page")-1:"next"===jQuery(this).data("page")?1*r.data("page")+1:"last"===jQuery(this).data("page")?parseInt(r.data("total_pages")):parseInt(jQuery(this).data("page")))?(r.find('.pagi[data-page="first"], .pagi[data-page="prev"]').addClass("disabled"),r.find('.pagi[data-page="prev"], .pagi[data-page="last"]').removeClass("disabled")):(e===parseInt(r.data("total_pages"))?r.find('.pagi[data-page="prev"], .pagi[data-page="last"]').addClass("disabled"):r.find('.pagi[data-page="prev"], .pagi[data-page="last"]').removeClass("disabled"),r.find('.pagi[data-page="first"], .pagi[data-page="prev"]').removeClass("disabled")),r.find(".pagi").removeClass("current"),r.find('.pagi[data-page="'+e+'"]').addClass("current"),r.data("page",e),um_set_url_from_data(r,"page",1===e?"":e),um_ajax_get_members(r)}}),jQuery(document.body).on("change",".um-directory .um-members-pagi-dropdown",function(){var e=jQuery(this).parents(".um-directory");if(!um_is_directory_busy(e)){um_members_show_preloader(e);var r=jQuery(this).val();e.find(".pagi").removeClass("current"),e.find('.pagi[data-page="'+r+'"]').addClass("current"),e.data("page",r),um_set_url_from_data(e,"page",1===r?"":r),um_ajax_get_members(e)}}),jQuery(document.body).on("click",".um-directory .um-members.um-members-list .um-member-more a",function(e){e.preventDefault();var r=jQuery(this).parents(".um-member");return r.find(".um-member-more").hide(),r.find(".um-member-meta-main").slideDown(),r.find(".um-member-less").fadeIn(),!1}),jQuery(document.body).on("click",".um-directory .um-members.um-members-list .um-member-less a",function(e){e.preventDefault();var r=jQuery(this).parents(".um-member");return r.find(".um-member-less").hide(),r.find(".um-member-meta-main").slideUp(),r.find(".um-member-more").fadeIn(),!1}),jQuery(document.body).on("click",".um-directory .um-members.um-members-grid .um-member-more a",function(e){e.preventDefault();var r=jQuery(this).parents(".um-member"),t=jQuery(this).parents(".um-members");return r.find(".um-member-more").hide(),r.find(".um-member-meta").slideDown(function(){UM_Member_Grid(t)}),r.find(".um-member-less").fadeIn(),setTimeout(function(){UM_Member_Grid(t)},100),!1}),jQuery(document.body).on("click",".um-directory .um-members.um-members-grid .um-member-less a",function(e){e.preventDefault();var r=jQuery(this).parents(".um-member"),t=jQuery(this).parents(".um-members");return r.find(".um-member-less").hide(),r.find(".um-member-meta").slideUp(function(){r.find(".um-member-more").fadeIn(),UM_Member_Grid(t)}),!1}),jQuery(".um-member-directory-filters-a").click(function(){var e=jQuery(this),r=e.parents(".um-directory").find(".um-search");r.is(":visible")?r.slideUp(250,function(){e.toggleClass("um-member-directory-filters-visible"),r.parents(".um-member-directory-header-row").toggleClass("um-header-row-invisible")}):r.slideDown({duration:250,start:function(){jQuery(this).css({display:"grid"}),e.toggleClass("um-member-directory-filters-visible"),r.parents(".um-member-directory-header-row").toggleClass("um-header-row-invisible")}})}),jQuery(document.body).on("change",".um-directory .um-search-filter select",function(){if(""!==jQuery(this).val()){var e=jQuery(this).parents(".um-directory");if(!um_is_directory_busy(e)){um_members_show_preloader(e);var r=jQuery(this).prop("name"),t=um_get_data_for_directory(e,"filter_"+r);t=void 0===t?[]:t.split("||"),-1===jQuery.inArray(jQuery(this).val(),t)&&(t.push(jQuery(this).val()),um_set_url_from_data(e,"filter_"+r,t=t.join("||")),e.data("page",1),um_set_url_from_data(e,"page","")),jQuery(this).find('option[value="'+jQuery(this).val()+'"]').prop("disabled",!0).hide(),1===jQuery(this).find("option:not(:disabled)").length&&jQuery(this).prop("disabled",!0),jQuery(this).select2("destroy").select2(),jQuery(this).val("").trigger("change"),um_ajax_get_members(e),um_change_tag(e),e.data("searched",1),e.find(".um-member-directory-sorting-options").prop("disabled",!1),e.find(".um-member-directory-view-type").removeClass("um-disabled")}}}),jQuery(document.body).on("blur",'.um-directory .um-search-filter.um-text-filter-type input[type="text"]',function(){var e=jQuery(this).parents(".um-directory");if(!um_is_directory_busy(e)){var r=jQuery(this).val(),t=jQuery(this).prop("name"),a=um_get_data_for_directory(e,"filter_"+t);void 0===a&&(a=""),r!==a&&(um_members_show_preloader(e),um_set_url_from_data(e,"filter_"+t,r),e.data("page",1),um_set_url_from_data(e,"page",""),um_ajax_get_members(e),um_change_tag(e),e.data("searched",1),e.find(".um-member-directory-sorting-options").prop("disabled",!1),e.find(".um-member-directory-view-type").removeClass("um-disabled"))}}),jQuery(document.body).on("keypress",'.um-directory .um-search-filter.um-text-filter-type input[type="text"]',function(e){if(13===e.which){var r=jQuery(this).parents(".um-directory");if(um_is_directory_busy(r))return;var t=jQuery(this).val(),a=jQuery(this).prop("name"),i=um_get_data_for_directory(r,"filter_"+a);if(void 0===i&&(i=""),t===i)return;um_members_show_preloader(r),um_set_url_from_data(r,"filter_"+a,t),r.data("page",1),um_set_url_from_data(r,"page",""),um_ajax_get_members(r),um_change_tag(r),r.data("searched",1),r.find(".um-member-directory-sorting-options").prop("disabled",!1),r.find(".um-member-directory-view-type").removeClass("um-disabled")}}),jQuery(document.body).on("click",".um-directory .um-members-filter-remove",function(){var e=jQuery(this).parents(".um-directory");if(!um_is_directory_busy(e)&&e){um_members_show_preloader(e);var r=jQuery(this).data("value"),t=jQuery(this).data("name"),a=jQuery(this).data("type");if("text"===a)um_set_url_from_data(e,"filter_"+t,""),jQuery('.um-search-filter input[name="'+t+'"]').val("");else if("select"===a){var i=um_get_data_for_directory(e,"filter_"+t);i=void 0===i?[]:i.split("||"),-1!==jQuery.inArray(r.toString(),i)&&(i=jQuery.grep(i,function(e){return e!==r.toString()})),i.length||(i=""),um_set_url_from_data(e,"filter_"+t,i);var m=jQuery('.um-search-filter select[name="'+t+'"]');m.find('option[value="'+r+'"]').prop("disabled",!1).show(),1<m.find("option:not(:disabled)").length&&m.prop("disabled",!1),m.select2("destroy").select2(),0<e.find('.um-search-filter select[data-um-parent="'+t+'"]').length&&m.trigger("change")}else"slider"===a?(um_set_url_from_data(e,"filter_"+t+"_from",""),um_set_url_from_data(e,"filter_"+t+"_to","")):"datepicker"===a?(um_set_url_from_data(e,"filter_"+t+"_from",""),um_set_url_from_data(e,"filter_"+t+"_to","")):"timepicker"===a&&(um_set_url_from_data(e,"filter_"+t+"_from",""),um_set_url_from_data(e,"filter_"+t+"_to",""));if(e.data("page",1),um_set_url_from_data(e,"page",""),jQuery(this).tipsy("hide"),jQuery(this).parents(".um-members-filter-tag").remove(),0===e.find(".um-members-filter-remove").length?e.find(".um-clear-filters").hide():e.find(".um-clear-filters").show(),1===e.data("must-search")){var d=um_get_search(e);if(0===e.find(".um-members-filter-remove").length&&!d)return e.data("searched",0),e.find(".um-members-grid, .um-members-list").remove(),e.find(".um-member-directory-sorting-options").prop("disabled",!0),e.find(".um-member-directory-view-type").addClass("um-disabled"),void um_members_hide_preloader(e)}e.find(".um-member-directory-sorting-options").prop("disabled",!1),e.find(".um-member-directory-view-type").removeClass("um-disabled"),um_ajax_get_members(e)}}),jQuery(document.body).on("click",".um-directory .um-clear-filters-a",function(){var m=jQuery(this).parents(".um-directory");if(!um_is_directory_busy(m)){if(um_members_show_preloader(m),m.find(".um-members-filter-remove").each(function(){var r=jQuery(this).data("value"),e=jQuery(this).data("name"),t=jQuery(this).data("type");if("text"===t)um_set_url_from_data(m,"filter_"+e,""),jQuery('.um-search-filter input[name="'+e+'"]').val("");else if("select"===t){var a=um_get_data_for_directory(m,"filter_"+e);a=void 0===a?[]:a.split("||"),-1!==jQuery.inArray(r.toString(),a)&&(a=jQuery.grep(a,function(e){return e!==r.toString()})),a.length||(a=""),um_set_url_from_data(m,"filter_"+e,a);var i=jQuery('.um-search-filter select[name="'+e+'"]');i.find('option[value="'+r+'"]').prop("disabled",!1).show(),1<i.find("option:not(:disabled)").length&&i.prop("disabled",!1),i.select2("destroy").select2()}else"slider"===t?(um_set_url_from_data(m,"filter_"+e+"_from",""),um_set_url_from_data(m,"filter_"+e+"_to",""),jQuery('.um-search-filter input[name="filter_'+e+'_from"]').val(""),jQuery('.um-search-filter input[name="filter_'+e+'_to"]').val("")):"datepicker"===t?(um_set_url_from_data(m,"filter_"+e+"_from",""),um_set_url_from_data(m,"filter_"+e+"_to",""),jQuery('.um-search-filter input[name="filter_'+e+'_from"]').val(""),jQuery('.um-search-filter input[name="filter_'+e+'_to"]').val("")):"timepicker"===t&&(um_set_url_from_data(m,"filter_"+e+"_from",""),um_set_url_from_data(m,"filter_"+e+"_to",""),jQuery('.um-search-filter input[name="filter_'+e+'_from"]').val(""),jQuery('.um-search-filter input[name="filter_'+e+'_to"]').val(""))}),m.data("page",1),um_set_url_from_data(m,"page",""),m.find(".um-members-filter-tag").remove(),0===m.find(".um-members-filter-remove").length?(m.find(".um-clear-filters").hide(),m.find(".um-clear-filters").parents(".um-member-directory-header-row").addClass("um-header-row-invisible")):(m.find(".um-clear-filters").show(),m.find(".um-clear-filters").parents(".um-member-directory-header-row").removeClass("um-header-row-invisible")),1===m.data("must-search"))if(!um_get_search(m))return m.data("searched",0),m.find(".um-members-grid, .um-members-list").remove(),m.find(".um-member-directory-sorting-options").prop("disabled",!0),m.find(".um-member-directory-view-type").addClass("um-disabled"),void um_members_hide_preloader(m);m.find(".um-member-directory-sorting-options").prop("disabled",!1),m.find(".um-member-directory-view-type").removeClass("um-disabled"),um_ajax_get_members(m)}}),jQuery(".um-directory").each(function(){var e=jQuery(this),r=um_members_get_hash(e);if(um_member_directories.push(r),e.find(".um-search").length&&(e.find(".um-search").is(":visible")||e.find(".um-search").css({display:"grid"}).slideUp(1)),e.find(".um-slider").each(function(){var e=jQuery(this),t=e.parents(".um-directory"),a=e.data("field_name"),r=um_get_data_for_directory(t,"filter_"+a+"_from"),i=um_get_data_for_directory(t,"filter_"+a+"_to");void 0===r&&(r=parseInt(e.data("min"))),void 0===i&&(i=parseInt(e.data("max")));var m=[r,i];e.slider({range:!0,min:parseInt(e.data("min")),max:parseInt(e.data("max")),values:m,create:function(e,r){},step:1,slide:function(e,r){um_set_range_label(jQuery(this),r)},stop:function(e,r){um_is_directory_busy(t)||(um_set_url_from_data(t,"filter_"+a+"_from",r.values[0]),um_set_url_from_data(t,"filter_"+a+"_to",r.values[1]),t.data("page",1),um_set_url_from_data(t,"page",""),um_ajax_get_members(t),um_change_tag(t),t.data("searched",1),t.find(".um-member-directory-sorting-options").prop("disabled",!1),t.find(".um-member-directory-view-type").removeClass("um-disabled"))}}),um_set_range_label(e)}),e.find(".um-datepicker-filter").each(function(){var u=jQuery(this),s=new Date(1e3*u.data("date_min")),_=new Date(1e3*u.data("date_max")),e=u.pickadate({selectYears:!0,min:s,max:_,formatSubmit:"yyyy/mm/dd",hiddenName:!0,onOpen:function(){u.blur()},onClose:function(){u.blur()},onSet:function(e){var r=u.parents(".um-directory");if(!um_is_directory_busy(r)){um_members_show_preloader(r);var t=u.data("filter_name"),a=u.data("range"),i=um_get_data_for_directory(r,"filter_"+t+"_from"),m=um_get_data_for_directory(r,"filter_"+t+"_to");void 0===i&&(i=s/1e3),void 0===m&&(m=_/1e3);var d=e.select/1e3;u.val();"from"===a?i=d:"to"===a&&(m=d),um_set_url_from_data(r,"filter_"+t+"_from",i),um_set_url_from_data(r,"filter_"+t+"_to",m),r.data("page",1),um_set_url_from_data(r,"page",""),um_ajax_get_members(r),um_change_tag(r),r.data("searched",1),r.find(".um-member-directory-sorting-options").prop("disabled",!1),r.find(".um-member-directory-view-type").removeClass("um-disabled")}}}).pickadate("picker"),r=u.data("filter_name"),t=u.data("range"),a=um_get_data_for_directory(u.parents(".um-directory"),"filter_"+r+"_"+t);void 0!==a&&e.set("select",1e3*a)}),e.find(".um-timepicker-filter").each(function(){var s=jQuery(this),_=s.attr("id"),o=s.data("filter_name"),n=s.attr("data-min"),l=s.attr("data-max"),e=n.split(":"),r=l.split(":"),t=s.pickatime({format:s.data("format"),interval:parseInt(s.data("intervals")),min:[e[0],e[1]],max:[r[0],r[1]],formatSubmit:"HH:i",hiddenName:!0,onOpen:function(){s.blur()},onClose:function(){s.blur()},onSet:function(e){var r=s.parents(".um-directory");if(!um_is_directory_busy(r)){um_members_show_preloader(r);var t=s.data("filter_name"),a=s.data("range"),i=um_get_data_for_directory(r,"filter_"+t+"_from"),m=um_get_data_for_directory(r,"filter_"+t+"_to");if(void 0===i&&(i=n),void 0===m&&(m=l),void 0!==e.select){var d=um_time_convert(e.select,a);"from"===a?i=d:"to"===a&&(m=d)}else"from"===a?i=n:"to"===a&&(m=l);var u=jQuery("#"+_).val();"from"===s.data("range")?jQuery("#"+o+"_to").pickatime("picker").set("min",u):jQuery("#"+o+"_from").pickatime("picker").set("max",u),um_set_url_from_data(r,"filter_"+t+"_from",i),um_set_url_from_data(r,"filter_"+t+"_to",m),r.data("page",1),um_set_url_from_data(r,"page",""),um_ajax_get_members(r),um_change_tag(r),r.data("searched",1),r.find(".um-member-directory-sorting-options").prop("disabled",!1),r.find(".um-member-directory-view-type").removeClass("um-disabled")}}}).pickatime("picker"),a=s.data("filter_name"),i=s.data("range"),m=um_get_data_for_directory(s.parents(".um-directory"),"filter_"+a+"_"+i);if(void 0!==m){var d=m.split(":");t.set("select",60*d[0]+1*d[1])}}),1===e.data("must-search")){var t=um_get_search(e);if(!um_get_filters_data(e).length&&!t)return}um_members_show_preloader(e),um_ajax_get_members(e,{first_load:!0}),um_change_tag(e)}),window.addEventListener("popstate",function(e){jQuery(".um-directory").each(function(){var d=jQuery(this),e=um_members_get_hash(d);(um_member_directories.push(e),um_members_show_preloader(d),d.find(".um-members-grid, .um-members-list, .um-members-intro").remove(),d.find(".um-member-directory-search-line").length)&&(void 0===(m=um_get_data_for_directory(d,"search"))&&(m=""),d.data("general_search",m),d.find(".um-search-line").val(m));var r=um_get_data_for_directory(d,"page");if(void 0===r?r=1:r>d.data("total_pages")&&(r=d.data("total_pages")),d.data("page",r).attr("data-page",r),d.find(".um-member-directory-sorting").length){var t=um_get_data_for_directory(d,"sort");void 0===t&&(t=d.find('.um-new-dropdown[data-element=".um-member-directory-sorting-a"]').find('a[data-default="1"]').data("value")),d.data("sorting",t);var a=d.find('.um-new-dropdown[data-element=".um-member-directory-sorting-a"]');a.find("a").data("selected",0).prop("data-selected",0).attr("data-selected",0),a.find('a[data-value="'+t+'"]').data("selected",1).prop("data-selected",1).attr("data-selected",1),d.find(".um-member-directory-sorting-a").find("> a").html(a.find('a[data-value="'+t+'"]').html())}if(d.find(".um-member-directory-view-type").length){var i=um_get_data_for_directory(d,"view_type");void 0===i&&(i=d.find('.um-member-directory-view-type-a[data-default="1"]').data("type")),d.data("view_type",i),d.find(".um-member-directory-view-type .um-member-directory-view-type-a").hide(),d.find('.um-member-directory-view-type .um-member-directory-view-type-a[data-type="'+i+'"]').show()}if(d.find(".um-datepicker-filter").each(function(){var e=jQuery(this),r=e.pickadate("picker"),t=e.data("filter_name"),a=e.data("range"),i=um_get_data_for_directory(d,"filter_"+t+"_"+a);void 0!==i?r.set("select",1e3*i):r.clear()}),d.find(".um-slider").each(function(){var e=jQuery(this),r=e.data("field_name"),t=um_get_data_for_directory(d,"filter_"+r+"_from"),a=um_get_data_for_directory(d,"filter_"+r+"_to");void 0===t&&(t=e.data("min")),t=parseInt(t),void 0===a&&(a=e.data("max")),a=parseInt(a),e.slider("values",[t,a]),um_set_range_label(e)}),d.find(".um-timepicker-filter").each(function(){var e=jQuery(this),r=e.pickatime("picker"),t=e.data("filter_name"),a=e.data("range"),i=um_get_data_for_directory(d,"filter_"+t+"_"+a);if(void 0!==i){var m=i.split(":");r.set("select",60*m[0])}else r.clear()}),1===d.data("must-search")){var m=um_get_search(d);if(!um_get_filters_data(d).length&&!m)return d.data("searched",0),void um_members_hide_preloader(d);d.data("searched",1)}um_ajax_get_members(d),um_change_tag(d)})})});
assets/js/um-scripts.js CHANGED
@@ -465,22 +465,31 @@ jQuery(document).ready(function() {
465
  /**
466
  * Find all select fields with parent select fields
467
  */
468
- jQuery('select[data-um-parent]').each(function(){
469
 
470
  var me = jQuery(this);
471
  var parent_option = me.data('um-parent');
472
- var um_ajax_url = me.data('um-ajax-url');
473
  var um_ajax_source = me.data('um-ajax-source');
474
  var original_value = me.val();
475
 
476
  me.attr('data-um-init-field', true );
477
 
478
- jQuery(document).on('change','select[name="'+parent_option+'"]',function(){
479
  var parent = jQuery(this);
480
- var form_id = parent.closest('form').find('input[type="hidden"][name="form_id"]').val();
481
- var arr_key = parent.val();
 
 
 
 
 
 
 
 
 
 
482
 
483
- if ( parent.val() != '' && typeof um_select_options_cache[ arr_key ] != 'object' ) {
484
 
485
  jQuery.ajax({
486
  url: wp.ajax.settings.url,
@@ -488,19 +497,19 @@ jQuery(document).ready(function() {
488
  data: {
489
  action: 'um_select_options',
490
  parent_option_name: parent_option,
491
- parent_option: parent.val(),
492
  child_callback: um_ajax_source,
493
- child_name: me.attr('name'),
494
- members_directory: me.attr('data-mebers-directory'),
495
  form_id: form_id,
496
  nonce: um_scripts.nonce
497
  },
498
  success: function( data ){
499
- if( data.status == 'success' && parent.val() != '' ){
500
- um_field_populate_child_options( me, data, arr_key);
501
  }
502
 
503
- if( typeof data.debug !== 'undefined' ){
504
  console.log( data );
505
  }
506
  },
@@ -512,19 +521,19 @@ jQuery(document).ready(function() {
512
 
513
  }
514
 
515
- if ( parent.val() != '' && typeof um_select_options_cache[ arr_key ] == 'object' ) {
516
  var data = um_select_options_cache[ arr_key ];
517
  um_field_populate_child_options( me, data, arr_key );
518
  }
519
 
520
- if ( parent.val() == '' ){
521
  me.find('option[value!=""]').remove();
522
  me.val('').trigger('change');
523
  }
524
 
525
  });
526
 
527
- jQuery('select[name="'+parent_option+'"]').trigger('change');
528
 
529
  });
530
 
@@ -535,6 +544,7 @@ jQuery(document).ready(function() {
535
  * @param string key
536
  */
537
  function um_field_populate_child_options( me, data, arr_key, arr_items ) {
 
538
  var parent_option = me.data('um-parent');
539
  var child_name = me.attr('name');
540
  var parent_dom = jQuery('select[name="'+parent_option+'"]');
@@ -548,11 +558,10 @@ jQuery(document).ready(function() {
548
  search_get = '';
549
 
550
  if ( data.post.members_directory === 'yes' ) {
551
- var urlParams = new URLSearchParams(window.location.search);
552
- search_get = urlParams.get(data.post.child_name);
553
  }
554
  jQuery.each( data.items, function(k,v){
555
- arr_items.push({id: k, text: v, selected: (v === search_get) });
556
  });
557
 
558
  me.select2('destroy');
@@ -562,6 +571,41 @@ jQuery(document).ready(function() {
562
  minimumResultsForSearch: 10
563
  });
564
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
565
  if ( data.post.members_directory !== 'yes' ) {
566
  if ( typeof data.field.default !== 'undefined' && ! me.data('um-original-value') ) {
567
  me.val( data.field.default ).trigger('change');
@@ -576,7 +620,6 @@ jQuery(document).ready(function() {
576
  }
577
  um_select_options_cache[ arr_key ] = data;
578
 
579
-
580
  }
581
 
582
  });
465
  /**
466
  * Find all select fields with parent select fields
467
  */
468
+ jQuery('select[data-um-parent]').each( function() {
469
 
470
  var me = jQuery(this);
471
  var parent_option = me.data('um-parent');
 
472
  var um_ajax_source = me.data('um-ajax-source');
473
  var original_value = me.val();
474
 
475
  me.attr('data-um-init-field', true );
476
 
477
+ jQuery(document).on('change','select[name="' + parent_option + '"]',function() {
478
  var parent = jQuery(this);
479
+ var form_id = parent.closest( 'form' ).find( 'input[type="hidden"][name="form_id"]' ).val();
480
+
481
+ var arr_key;
482
+ if ( me.attr( 'data-member-directory' ) === 'yes' ) {
483
+ var directory = parent.parents('.um-directory');
484
+ arr_key = um_get_data_for_directory( directory, 'filter_' + parent_option );
485
+ if ( typeof arr_key != 'undefined' ) {
486
+ arr_key = arr_key.split('||');
487
+ }
488
+ } else {
489
+ arr_key = parent.val();
490
+ }
491
 
492
+ if ( typeof arr_key != 'undefined' && arr_key != '' && typeof um_select_options_cache[ arr_key ] != 'object' ) {
493
 
494
  jQuery.ajax({
495
  url: wp.ajax.settings.url,
497
  data: {
498
  action: 'um_select_options',
499
  parent_option_name: parent_option,
500
+ parent_option: arr_key,
501
  child_callback: um_ajax_source,
502
+ child_name: me.attr('name'),
503
+ members_directory: me.attr('data-member-directory'),
504
  form_id: form_id,
505
  nonce: um_scripts.nonce
506
  },
507
  success: function( data ){
508
+ if ( data.status == 'success' && arr_key != '' ) {
509
+ um_field_populate_child_options( me, data, arr_key );
510
  }
511
 
512
+ if ( typeof data.debug !== 'undefined' ) {
513
  console.log( data );
514
  }
515
  },
521
 
522
  }
523
 
524
+ if ( typeof arr_key != 'undefined' && arr_key != '' && typeof um_select_options_cache[ arr_key ] == 'object' ) {
525
  var data = um_select_options_cache[ arr_key ];
526
  um_field_populate_child_options( me, data, arr_key );
527
  }
528
 
529
+ if ( typeof arr_key != 'undefined' || arr_key == '' ) {
530
  me.find('option[value!=""]').remove();
531
  me.val('').trigger('change');
532
  }
533
 
534
  });
535
 
536
+ jQuery('select[name="' + parent_option + '"]').trigger('change');
537
 
538
  });
539
 
544
  * @param string key
545
  */
546
  function um_field_populate_child_options( me, data, arr_key, arr_items ) {
547
+ var directory = me.parents('.um-directory');
548
  var parent_option = me.data('um-parent');
549
  var child_name = me.attr('name');
550
  var parent_dom = jQuery('select[name="'+parent_option+'"]');
558
  search_get = '';
559
 
560
  if ( data.post.members_directory === 'yes' ) {
561
+ arr_items.push({id: '', text: '', selected: 1});
 
562
  }
563
  jQuery.each( data.items, function(k,v){
564
+ arr_items.push({id: k, text: v, selected: (v === search_get)});
565
  });
566
 
567
  me.select2('destroy');
571
  minimumResultsForSearch: 10
572
  });
573
 
574
+ if ( data.post.members_directory === 'yes' ) {
575
+ me.find('option').each( function() {
576
+ if ( jQuery(this).html() !== '' ) {
577
+ jQuery(this).data( 'value_label', jQuery(this).html() ).attr( 'data-value_label', jQuery(this).html() );
578
+ }
579
+ });
580
+
581
+ var current_filter_val = um_get_data_for_directory( directory, 'filter_' + child_name );
582
+ if ( typeof current_filter_val != 'undefined' ) {
583
+ current_filter_val = current_filter_val.split('||');
584
+
585
+ var temp_filter_val = [];
586
+ jQuery.each( current_filter_val, function(i) {
587
+ if ( me.find('option[value="' + current_filter_val[ i ] + '"]').length ) {
588
+ temp_filter_val.push( current_filter_val[ i ] );
589
+ }
590
+ me.find('option[value="' + current_filter_val[ i ] + '"]').prop('disabled', true).hide();
591
+ if ( me.find('option:not(:disabled)').length === 1 ) {
592
+ me.prop('disabled', true);
593
+ }
594
+
595
+ me.select2('destroy').select2();
596
+ me.val('').trigger( 'change' );
597
+ });
598
+
599
+ temp_filter_val = temp_filter_val.join('||');
600
+ if ( current_filter_val !== temp_filter_val ) {
601
+ um_set_url_from_data( directory, 'filter_' + child_name, temp_filter_val );
602
+ um_ajax_get_members( directory );
603
+ }
604
+ }
605
+
606
+ um_change_tag( directory );
607
+ }
608
+
609
  if ( data.post.members_directory !== 'yes' ) {
610
  if ( typeof data.field.default !== 'undefined' && ! me.data('um-original-value') ) {
611
  me.val( data.field.default ).trigger('change');
620
  }
621
  um_select_options_cache[ arr_key ] = data;
622
 
 
623
  }
624
 
625
  });
assets/js/um-scripts.min.js CHANGED
@@ -1 +1 @@
1
- function um_init_datetimepicker(){jQuery(".um-datepicker:not(.picker__input)").each(function(){if(elem=jQuery(this),void 0!==elem.attr("data-disabled_weekdays")&&""!=elem.attr("data-disabled_weekdays"))var e=JSON.parse(elem.attr("data-disabled_weekdays"));else e=!1;var t=null;void 0!==elem.attr("data-years")&&(t=elem.attr("data-years"));var a=elem.attr("data-date_min"),i=elem.attr("data-date_max"),r=[],n=[];void 0!==a&&(r=a.split(",")),void 0!==i&&(n=i.split(","));var u=r.length?new Date(r):null,s=r.length?new Date(n):null;if(u&&"Invalid Date"==u.toString()&&3==r.length){var o=r[1]+"/"+r[2]+"/"+r[0];u=new Date(Date.parse(o))}if(s&&"Invalid Date"==s.toString()&&3==n.length){var d=n[1]+"/"+n[2]+"/"+n[0];s=new Date(Date.parse(d))}var l={disable:e,format:elem.attr("data-format"),formatSubmit:"yyyy/mm/dd",hiddenName:!0,onOpen:function(){elem.blur()},onClose:function(){elem.blur()}};null!==t&&(l.selectYears=t),null!==u&&(l.min=u),null!==s&&(l.max=s),elem.pickadate(l)}),jQuery(".um-timepicker:not(.picker__input)").each(function(){elem=jQuery(this),elem.pickatime({format:elem.attr("data-format"),interval:parseInt(elem.attr("data-intervals")),formatSubmit:"HH:i",hiddenName:!0,onOpen:function(){elem.blur()},onClose:function(){elem.blur()}})})}function init_tipsy(){"function"==typeof jQuery.fn.tipsy&&(jQuery(".um-tip-n").tipsy({gravity:"n",opacity:1,live:"a.live",offset:3}),jQuery(".um-tip-w").tipsy({gravity:"w",opacity:1,live:"a.live",offset:3}),jQuery(".um-tip-e").tipsy({gravity:"e",opacity:1,live:"a.live",offset:3}),jQuery(".um-tip-s").tipsy({gravity:"s",opacity:1,live:"a.live",offset:3}))}jQuery(document).ready(function(){jQuery(document.body).on("click",".um-dropdown a.real_url",function(e){window.location=jQuery(this).attr("href")}),jQuery(document.body).on("click",".um-trigger-menu-on-click",function(e){return jQuery(".um-dropdown").hide(),jQuery(this).find(".um-dropdown").show(),!1}),jQuery(document.body).on("click",".um-dropdown-hide",function(e){return UM_hide_menus(),!1}),jQuery(document.body).on("click","a.um-manual-trigger",function(){var e=jQuery(this).attr("data-child"),t=jQuery(this).attr("data-parent");return jQuery(this).parents(t).find(e).trigger("click"),UM_hide_menus(),!1}),jQuery(".um-s1,.um-s2").css({display:"block"}),"function"==typeof jQuery.fn.select2&&(jQuery(".um-s1").select2({allowClear:!0}),jQuery(".um-s2").select2({allowClear:!1,minimumResultsForSearch:10}),jQuery(".um-s3").select2({allowClear:!1,minimumResultsForSearch:-1})),init_tipsy(),"function"==typeof jQuery.fn.um_raty&&(jQuery(".um-rating").um_raty({half:!1,starType:"i",number:function(){return jQuery(this).attr("data-number")},score:function(){return jQuery(this).attr("data-score")},scoreName:function(){return jQuery(this).attr("data-key")},hints:!1,click:function(e,t){live_field=this.id,live_value=e,um_apply_conditions(jQuery(this),!1)}}),jQuery(".um-rating-readonly").um_raty({half:!1,starType:"i",number:function(){return jQuery(this).attr("data-number")},score:function(){return jQuery(this).attr("data-score")},scoreName:function(){return jQuery(this).attr("data-key")},hints:!1,readOnly:!0})),jQuery(document).on("change",'.um-field-area input[type="radio"]',function(){var e=jQuery(this).parents(".um-field-area"),t=jQuery(this).parents("label");e.find(".um-field-radio").removeClass("active"),e.find(".um-field-radio").find("i").removeAttr("class").addClass("um-icon-android-radio-button-off"),t.addClass("active"),t.find("i").removeAttr("class").addClass("um-icon-android-radio-button-on")}),jQuery(document).on("change",'.um-field-area input[type="checkbox"]',function(){jQuery(this).parents(".um-field-area");var e=jQuery(this).parents("label");e.hasClass("active")?(e.removeClass("active"),e.find("i").removeAttr("class").addClass("um-icon-android-checkbox-outline-blank")):(e.addClass("active"),e.find("i").removeAttr("class").addClass("um-icon-android-checkbox-outline"))}),um_init_datetimepicker(),jQuery(document).on("click",".um .um-single-image-preview a.cancel",function(e){e.preventDefault();var t=jQuery(this).parents(".um-field"),a=jQuery(this).parents(".um-field").find(".um-single-image-preview img").attr("src");return t.find(".um-single-image-preview img").attr("src",""),t.find(".um-single-image-preview").hide(),t.find(".um-btn-auto-width").html("Upload"),t.find("input[type=hidden]").val("empty_file"),jQuery.ajax({url:wp.ajax.settings.url,type:"post",data:{action:"um_remove_file",src:a,nonce:um_scripts.nonce}}),!1}),jQuery(document).on("click",".um .um-single-file-preview a.cancel",function(e){e.preventDefault();var t=jQuery(this).parents(".um-field"),a=jQuery(this).parents(".um-field").find(".um-single-fileinfo a").attr("href");return t.find(".um-single-file-preview").hide(),t.find(".um-btn-auto-width").html("Upload"),t.find("input[type=hidden]").val("empty_file"),jQuery.ajax({url:wp.ajax.settings.url,type:"post",data:{action:"um_remove_file",src:a,nonce:um_scripts.nonce}}),!1}),jQuery(document).on("click",".um-field-group-head:not(.disabled)",function(){var e=jQuery(this).parents(".um-field-group"),t=e.data("max_entries");e.find(".um-field-group-body").is(":hidden")?e.find(".um-field-group-body").show():e.find(".um-field-group-body:first").clone().appendTo(e),increase_id=0,e.find(".um-field-group-body").each(function(){increase_id++,jQuery(this).find("input").each(function(){var e=jQuery(this);e.attr("id",e.data("key")+"-"+increase_id),e.attr("name",e.data("key")+"-"+increase_id),e.parent().parent().find("label").attr("for",e.data("key")+"-"+increase_id)})}),0<t&&e.find(".um-field-group-body").length==t&&jQuery(this).addClass("disabled")}),jQuery(document).on("click",".um-field-group-cancel",function(e){e.preventDefault();var t=jQuery(this).parents(".um-field-group"),a=t.data("max_entries");return 1<t.find(".um-field-group-body").length?jQuery(this).parents(".um-field-group-body").remove():jQuery(this).parents(".um-field-group-body").hide(),0<a&&t.find(".um-field-group-body").length<a&&t.find(".um-field-group-head").removeClass("disabled"),!1}),jQuery(document.body).on("click",".um-ajax-paginate",function(e){e.preventDefault();var t=jQuery(this),a=jQuery(this).parent();a.addClass("loading");var i=jQuery(this).data("hook");if("um_load_posts"===i){var r=1*jQuery(this).data("pages"),n=1*jQuery(this).data("page")+1;jQuery.ajax({url:wp.ajax.settings.url,type:"post",data:{action:"um_ajax_paginate_posts",author:jQuery(this).data("author"),page:n,nonce:um_scripts.nonce},complete:function(){a.removeClass("loading")},success:function(e){a.before(e),n===r?a.remove():t.data("page",n)}})}else if("um_load_comments"===i){r=1*jQuery(this).data("pages"),n=1*jQuery(this).data("page")+1;jQuery.ajax({url:wp.ajax.settings.url,type:"post",data:{action:"um_ajax_paginate_comments",user_id:jQuery(this).data("user_id"),page:n,nonce:um_scripts.nonce},complete:function(){a.removeClass("loading")},success:function(e){a.before(e),n===r?a.remove():t.data("page",n)}})}else{var u=jQuery(this).data("args"),s=jQuery(this).parents(".um").find(".um-ajax-items");jQuery.ajax({url:wp.ajax.settings.url,type:"post",data:{action:"um_ajax_paginate",hook:i,args:u,nonce:um_scripts.nonce},complete:function(){a.removeClass("loading")},success:function(e){a.remove(),s.append(e)}})}}),jQuery(document).on("click",".um-ajax-action",function(e){e.preventDefault();var t=jQuery(this).data("hook"),a=jQuery(this).data("user_id"),arguments=jQuery(this).data("arguments");return jQuery(this).data("js-remove")&&jQuery(this).parents("."+jQuery(this).data("js-remove")).fadeOut("fast"),jQuery.ajax({url:wp.ajax.settings.url,type:"post",data:{action:"um_muted_action",hook:t,user_id:a,arguments:arguments,nonce:um_scripts.nonce},success:function(e){}}),!1}),jQuery(document.body).on("click","#um-search-button",function(){var e=jQuery(this).parents(".um-search-form").data("members_page"),t=[];jQuery(this).parents(".um-search-form").find('input[name="um-search-keys[]"]').each(function(){t.push(jQuery(this).val())});var a,i=jQuery(this).parents(".um-search-form").find(".um-search-field").val();if(""===i)a=e;else{for(var r="?",n=0;n<t.length;n++)r+=t[n]+"="+i,n!==t.length-1&&(r+="&");a=e+r}window.location=a}),jQuery(document.body).on("keypress",".um-search-field",function(e){if(13===e.which){var t=jQuery(this).parents(".um-search-form").data("members_page"),a=[];jQuery(this).parents(".um-search-form").find('input[name="um-search-keys[]"]').each(function(){a.push(jQuery(this).val())});var i,r=jQuery(this).val();if(""===r)i=t;else{for(var n="?",u=0;u<a.length;u++)n+=a[u]+"="+r,u!==a.length-1&&(n+="&");i=t+n}window.location=i}}),jQuery('.um-form input[class="um-button"][type="submit"]').removeAttr("disabled"),jQuery(document).one("click",'.um:not(.um-account) .um-form input[class="um-button"][type="submit"]:not(.um-has-recaptcha)',function(){jQuery(this).attr("disabled","disabled"),jQuery(this).parents("form").submit()});var s={};function o(e,t,a,i){var r=e.data("um-parent");e.attr("name"),jQuery('select[name="'+r+'"]');e.find('option[value!=""]').remove(),e.hasClass("um-child-option-disabled")||e.removeAttr("disabled");i=[];var n="";if("yes"===t.post.members_directory){var u=new URLSearchParams(window.location.search);n=u.get(t.post.child_name)}jQuery.each(t.items,function(e,t){i.push({id:e,text:t,selected:t===n})}),e.select2("destroy"),e.select2({data:i,allowClear:!0,minimumResultsForSearch:10}),"yes"!==t.post.members_directory&&(void 0===t.field.default||e.data("um-original-value")?""!=e.data("um-original-value")&&e.val(e.data("um-original-value")).trigger("change"):e.val(t.field.default).trigger("change"),0==t.field.editable&&(e.addClass("um-child-option-disabled"),e.attr("disabled","disabled"))),s[a]=t}jQuery("select[data-um-parent]").each(function(){var r=jQuery(this),n=r.data("um-parent"),u=(r.data("um-ajax-url"),r.data("um-ajax-source"));r.val();r.attr("data-um-init-field",!0),jQuery(document).on("change",'select[name="'+n+'"]',function(){var t=jQuery(this),e=t.closest("form").find('input[type="hidden"][name="form_id"]').val(),a=t.val();if(""!=t.val()&&"object"!=typeof s[a]&&jQuery.ajax({url:wp.ajax.settings.url,type:"post",data:{action:"um_select_options",parent_option_name:n,parent_option:t.val(),child_callback:u,child_name:r.attr("name"),members_directory:r.attr("data-mebers-directory"),form_id:e,nonce:um_scripts.nonce},success:function(e){"success"==e.status&&""!=t.val()&&o(r,e,a),void 0!==e.debug&&console.log(e)},error:function(e){console.log(e)}}),""!=t.val()&&"object"==typeof s[a]){var i=s[a];o(r,i,a)}""==t.val()&&(r.find('option[value!=""]').remove(),r.val("").trigger("change"))}),jQuery('select[name="'+n+'"]').trigger("change")})});
1
+ function um_init_datetimepicker(){jQuery(".um-datepicker:not(.picker__input)").each(function(){if(elem=jQuery(this),void 0!==elem.attr("data-disabled_weekdays")&&""!=elem.attr("data-disabled_weekdays"))var e=JSON.parse(elem.attr("data-disabled_weekdays"));else e=!1;var t=null;void 0!==elem.attr("data-years")&&(t=elem.attr("data-years"));var a=elem.attr("data-date_min"),i=elem.attr("data-date_max"),r=[],n=[];void 0!==a&&(r=a.split(",")),void 0!==i&&(n=i.split(","));var u=r.length?new Date(r):null,o=r.length?new Date(n):null;if(u&&"Invalid Date"==u.toString()&&3==r.length){var s=r[1]+"/"+r[2]+"/"+r[0];u=new Date(Date.parse(s))}if(o&&"Invalid Date"==o.toString()&&3==n.length){var d=n[1]+"/"+n[2]+"/"+n[0];o=new Date(Date.parse(d))}var l={disable:e,format:elem.attr("data-format"),formatSubmit:"yyyy/mm/dd",hiddenName:!0,onOpen:function(){elem.blur()},onClose:function(){elem.blur()}};null!==t&&(l.selectYears=t),null!==u&&(l.min=u),null!==o&&(l.max=o),elem.pickadate(l)}),jQuery(".um-timepicker:not(.picker__input)").each(function(){elem=jQuery(this),elem.pickatime({format:elem.attr("data-format"),interval:parseInt(elem.attr("data-intervals")),formatSubmit:"HH:i",hiddenName:!0,onOpen:function(){elem.blur()},onClose:function(){elem.blur()}})})}function init_tipsy(){"function"==typeof jQuery.fn.tipsy&&(jQuery(".um-tip-n").tipsy({gravity:"n",opacity:1,live:"a.live",offset:3}),jQuery(".um-tip-w").tipsy({gravity:"w",opacity:1,live:"a.live",offset:3}),jQuery(".um-tip-e").tipsy({gravity:"e",opacity:1,live:"a.live",offset:3}),jQuery(".um-tip-s").tipsy({gravity:"s",opacity:1,live:"a.live",offset:3}))}jQuery(document).ready(function(){jQuery(document.body).on("click",".um-dropdown a.real_url",function(e){window.location=jQuery(this).attr("href")}),jQuery(document.body).on("click",".um-trigger-menu-on-click",function(e){return jQuery(".um-dropdown").hide(),jQuery(this).find(".um-dropdown").show(),!1}),jQuery(document.body).on("click",".um-dropdown-hide",function(e){return UM_hide_menus(),!1}),jQuery(document.body).on("click","a.um-manual-trigger",function(){var e=jQuery(this).attr("data-child"),t=jQuery(this).attr("data-parent");return jQuery(this).parents(t).find(e).trigger("click"),UM_hide_menus(),!1}),jQuery(".um-s1,.um-s2").css({display:"block"}),"function"==typeof jQuery.fn.select2&&(jQuery(".um-s1").select2({allowClear:!0}),jQuery(".um-s2").select2({allowClear:!1,minimumResultsForSearch:10}),jQuery(".um-s3").select2({allowClear:!1,minimumResultsForSearch:-1})),init_tipsy(),"function"==typeof jQuery.fn.um_raty&&(jQuery(".um-rating").um_raty({half:!1,starType:"i",number:function(){return jQuery(this).attr("data-number")},score:function(){return jQuery(this).attr("data-score")},scoreName:function(){return jQuery(this).attr("data-key")},hints:!1,click:function(e,t){live_field=this.id,live_value=e,um_apply_conditions(jQuery(this),!1)}}),jQuery(".um-rating-readonly").um_raty({half:!1,starType:"i",number:function(){return jQuery(this).attr("data-number")},score:function(){return jQuery(this).attr("data-score")},scoreName:function(){return jQuery(this).attr("data-key")},hints:!1,readOnly:!0})),jQuery(document).on("change",'.um-field-area input[type="radio"]',function(){var e=jQuery(this).parents(".um-field-area"),t=jQuery(this).parents("label");e.find(".um-field-radio").removeClass("active"),e.find(".um-field-radio").find("i").removeAttr("class").addClass("um-icon-android-radio-button-off"),t.addClass("active"),t.find("i").removeAttr("class").addClass("um-icon-android-radio-button-on")}),jQuery(document).on("change",'.um-field-area input[type="checkbox"]',function(){jQuery(this).parents(".um-field-area");var e=jQuery(this).parents("label");e.hasClass("active")?(e.removeClass("active"),e.find("i").removeAttr("class").addClass("um-icon-android-checkbox-outline-blank")):(e.addClass("active"),e.find("i").removeAttr("class").addClass("um-icon-android-checkbox-outline"))}),um_init_datetimepicker(),jQuery(document).on("click",".um .um-single-image-preview a.cancel",function(e){e.preventDefault();var t=jQuery(this).parents(".um-field"),a=jQuery(this).parents(".um-field").find(".um-single-image-preview img").attr("src");return t.find(".um-single-image-preview img").attr("src",""),t.find(".um-single-image-preview").hide(),t.find(".um-btn-auto-width").html("Upload"),t.find("input[type=hidden]").val("empty_file"),jQuery.ajax({url:wp.ajax.settings.url,type:"post",data:{action:"um_remove_file",src:a,nonce:um_scripts.nonce}}),!1}),jQuery(document).on("click",".um .um-single-file-preview a.cancel",function(e){e.preventDefault();var t=jQuery(this).parents(".um-field"),a=jQuery(this).parents(".um-field").find(".um-single-fileinfo a").attr("href");return t.find(".um-single-file-preview").hide(),t.find(".um-btn-auto-width").html("Upload"),t.find("input[type=hidden]").val("empty_file"),jQuery.ajax({url:wp.ajax.settings.url,type:"post",data:{action:"um_remove_file",src:a,nonce:um_scripts.nonce}}),!1}),jQuery(document).on("click",".um-field-group-head:not(.disabled)",function(){var e=jQuery(this).parents(".um-field-group"),t=e.data("max_entries");e.find(".um-field-group-body").is(":hidden")?e.find(".um-field-group-body").show():e.find(".um-field-group-body:first").clone().appendTo(e),increase_id=0,e.find(".um-field-group-body").each(function(){increase_id++,jQuery(this).find("input").each(function(){var e=jQuery(this);e.attr("id",e.data("key")+"-"+increase_id),e.attr("name",e.data("key")+"-"+increase_id),e.parent().parent().find("label").attr("for",e.data("key")+"-"+increase_id)})}),0<t&&e.find(".um-field-group-body").length==t&&jQuery(this).addClass("disabled")}),jQuery(document).on("click",".um-field-group-cancel",function(e){e.preventDefault();var t=jQuery(this).parents(".um-field-group"),a=t.data("max_entries");return 1<t.find(".um-field-group-body").length?jQuery(this).parents(".um-field-group-body").remove():jQuery(this).parents(".um-field-group-body").hide(),0<a&&t.find(".um-field-group-body").length<a&&t.find(".um-field-group-head").removeClass("disabled"),!1}),jQuery(document.body).on("click",".um-ajax-paginate",function(e){e.preventDefault();var t=jQuery(this),a=jQuery(this).parent();a.addClass("loading");var i=jQuery(this).data("hook");if("um_load_posts"===i){var r=1*jQuery(this).data("pages"),n=1*jQuery(this).data("page")+1;jQuery.ajax({url:wp.ajax.settings.url,type:"post",data:{action:"um_ajax_paginate_posts",author:jQuery(this).data("author"),page:n,nonce:um_scripts.nonce},complete:function(){a.removeClass("loading")},success:function(e){a.before(e),n===r?a.remove():t.data("page",n)}})}else if("um_load_comments"===i){r=1*jQuery(this).data("pages"),n=1*jQuery(this).data("page")+1;jQuery.ajax({url:wp.ajax.settings.url,type:"post",data:{action:"um_ajax_paginate_comments",user_id:jQuery(this).data("user_id"),page:n,nonce:um_scripts.nonce},complete:function(){a.removeClass("loading")},success:function(e){a.before(e),n===r?a.remove():t.data("page",n)}})}else{var u=jQuery(this).data("args"),o=jQuery(this).parents(".um").find(".um-ajax-items");jQuery.ajax({url:wp.ajax.settings.url,type:"post",data:{action:"um_ajax_paginate",hook:i,args:u,nonce:um_scripts.nonce},complete:function(){a.removeClass("loading")},success:function(e){a.remove(),o.append(e)}})}}),jQuery(document).on("click",".um-ajax-action",function(e){e.preventDefault();var t=jQuery(this).data("hook"),a=jQuery(this).data("user_id"),arguments=jQuery(this).data("arguments");return jQuery(this).data("js-remove")&&jQuery(this).parents("."+jQuery(this).data("js-remove")).fadeOut("fast"),jQuery.ajax({url:wp.ajax.settings.url,type:"post",data:{action:"um_muted_action",hook:t,user_id:a,arguments:arguments,nonce:um_scripts.nonce},success:function(e){}}),!1}),jQuery(document.body).on("click","#um-search-button",function(){var e=jQuery(this).parents(".um-search-form").data("members_page"),t=[];jQuery(this).parents(".um-search-form").find('input[name="um-search-keys[]"]').each(function(){t.push(jQuery(this).val())});var a,i=jQuery(this).parents(".um-search-form").find(".um-search-field").val();if(""===i)a=e;else{for(var r="?",n=0;n<t.length;n++)r+=t[n]+"="+i,n!==t.length-1&&(r+="&");a=e+r}window.location=a}),jQuery(document.body).on("keypress",".um-search-field",function(e){if(13===e.which){var t=jQuery(this).parents(".um-search-form").data("members_page"),a=[];jQuery(this).parents(".um-search-form").find('input[name="um-search-keys[]"]').each(function(){a.push(jQuery(this).val())});var i,r=jQuery(this).val();if(""===r)i=t;else{for(var n="?",u=0;u<a.length;u++)n+=a[u]+"="+r,u!==a.length-1&&(n+="&");i=t+n}window.location=i}}),jQuery('.um-form input[class="um-button"][type="submit"]').removeAttr("disabled"),jQuery(document).one("click",'.um:not(.um-account) .um-form input[class="um-button"][type="submit"]:not(.um-has-recaptcha)',function(){jQuery(this).attr("disabled","disabled"),jQuery(this).parents("form").submit()});var d={};function s(t,e,a,i){var r=t.parents(".um-directory"),n=t.data("um-parent"),u=t.attr("name");jQuery('select[name="'+n+'"]');t.find('option[value!=""]').remove(),t.hasClass("um-child-option-disabled")||t.removeAttr("disabled");i=[];if("yes"===e.post.members_directory&&i.push({id:"",text:"",selected:1}),jQuery.each(e.items,function(e,t){i.push({id:e,text:t,selected:""===t})}),t.select2("destroy"),t.select2({data:i,allowClear:!0,minimumResultsForSearch:10}),"yes"===e.post.members_directory){t.find("option").each(function(){""!==jQuery(this).html()&&jQuery(this).data("value_label",jQuery(this).html()).attr("data-value_label",jQuery(this).html())});var o=um_get_data_for_directory(r,"filter_"+u);if(void 0!==o){o=o.split("||");var s=[];jQuery.each(o,function(e){t.find('option[value="'+o[e]+'"]').length&&s.push(o[e]),t.find('option[value="'+o[e]+'"]').prop("disabled",!0).hide(),1===t.find("option:not(:disabled)").length&&t.prop("disabled",!0),t.select2("destroy").select2(),t.val("").trigger("change")}),s=s.join("||"),o!==s&&(um_set_url_from_data(r,"filter_"+u,s),um_ajax_get_members(r))}um_change_tag(r)}"yes"!==e.post.members_directory&&(void 0===e.field.default||t.data("um-original-value")?""!=t.data("um-original-value")&&t.val(t.data("um-original-value")).trigger("change"):t.val(e.field.default).trigger("change"),0==e.field.editable&&(t.addClass("um-child-option-disabled"),t.attr("disabled","disabled"))),d[a]=e}jQuery("select[data-um-parent]").each(function(){var n=jQuery(this),u=n.data("um-parent"),o=n.data("um-ajax-source");n.val();n.attr("data-um-init-field",!0),jQuery(document).on("change",'select[name="'+u+'"]',function(){var t,e=jQuery(this),a=e.closest("form").find('input[type="hidden"][name="form_id"]').val();if("yes"===n.attr("data-member-directory")){var i=e.parents(".um-directory");void 0!==(t=um_get_data_for_directory(i,"filter_"+u))&&(t=t.split("||"))}else t=e.val();if(void 0!==t&&""!=t&&"object"!=typeof d[t]&&jQuery.ajax({url:wp.ajax.settings.url,type:"post",data:{action:"um_select_options",parent_option_name:u,parent_option:t,child_callback:o,child_name:n.attr("name"),members_directory:n.attr("data-member-directory"),form_id:a,nonce:um_scripts.nonce},success:function(e){"success"==e.status&&""!=t&&s(n,e,t),void 0!==e.debug&&console.log(e)},error:function(e){console.log(e)}}),void 0!==t&&""!=t&&"object"==typeof d[t]){var r=d[t];s(n,r,t)}void 0===t&&""!=t||(n.find('option[value!=""]').remove(),n.val("").trigger("change"))}),jQuery('select[name="'+u+'"]').trigger("change")})});
includes/admin/assets/css/um-admin-builder.css CHANGED
@@ -301,4 +301,18 @@
301
  background: #fff;
302
  box-sizing: border-box;
303
  width: 100%;
 
 
 
 
 
 
 
 
 
 
 
 
 
 
304
  }
301
  background: #fff;
302
  box-sizing: border-box;
303
  width: 100%;
304
+ }
305
+
306
+ .um-admin-preview-overlay {
307
+ position: absolute;
308
+ top:0;
309
+ bottom: 0;
310
+ left: 0;
311
+ right: 0;
312
+ background-color: rgba(255,255,255,0);
313
+ z-index: 100;
314
+ }
315
+
316
+ #UM_preview_form .um-admin-modal-body {
317
+ position: relative;
318
  }
includes/admin/assets/css/um-admin-forms.css CHANGED
@@ -64,7 +64,23 @@ textarea.um-forms-field.um-small-field {
64
  margin: 5px 0 0 0;
65
  }
66
 
67
- .um-multi-text-option-line .um-field-wrapper,
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
68
  .um-multi-selects-option-line .um-field-wrapper {
69
  float:left;
70
  width: calc( 100% - 60px );
@@ -72,6 +88,17 @@ textarea.um-forms-field.um-small-field {
72
  box-sizing: border-box;
73
  }
74
 
 
 
 
 
 
 
 
 
 
 
 
75
  .um-md-default-filters-option-line .um-field-wrapper {
76
  float:left;
77
  width: calc( 100% - 60px );
64
  margin: 5px 0 0 0;
65
  }
66
 
67
+ .um-multi-selects-option-line.um-admin-drag-fld {
68
+ background: none;
69
+ border: none;
70
+ display: flex;
71
+ flex-direction: row;
72
+ justify-content: flex-start;
73
+ align-items: center;
74
+ flex-wrap: nowrap;
75
+ }
76
+
77
+ .um-multi-selects-option-line.um-admin-drag-fld .um-field-icon {
78
+ float: left;
79
+ width: 20px;
80
+ text-align: left;
81
+ line-height: 30px;
82
+ }
83
+
84
  .um-multi-selects-option-line .um-field-wrapper {
85
  float:left;
86
  width: calc( 100% - 60px );
88
  box-sizing: border-box;
89
  }
90
 
91
+ .um-multi-selects-option-line.um-admin-drag-fld .um-field-wrapper {
92
+ width: calc( 100% - 90px );
93
+ }
94
+
95
+ .um-multi-text-option-line .um-field-wrapper {
96
+ float:left;
97
+ width: calc( 100% - 90px );
98
+ line-height: 30px;
99
+ box-sizing: border-box;
100
+ }
101
+
102
  .um-md-default-filters-option-line .um-field-wrapper {
103
  float:left;
104
  width: calc( 100% - 60px );
includes/admin/assets/js/um-admin-forms.js CHANGED
@@ -1,4 +1,16 @@
1
  jQuery(document).ready( function() {
 
 
 
 
 
 
 
 
 
 
 
 
2
  /**
3
  * Multi-selects field
4
  */
@@ -16,6 +28,8 @@ jQuery(document).ready( function() {
16
  jQuery( '.um-multi-selects-add-option' ).click( function() {
17
  var list = jQuery(this).siblings('ul.um-multi-selects-list');
18
 
 
 
19
  var field_id = list.data('field_id');
20
  var k = 0;
21
  if ( list.find( 'li:last select.um-forms-field' ).length > 0 ) {
@@ -25,14 +39,20 @@ jQuery(document).ready( function() {
25
 
26
  var selector_html = jQuery( '<div>' ).append( list.siblings('.um-hidden-multi-selects').clone() ).html();
27
 
28
- list.append(
29
- '<li class="um-multi-selects-option-line"><span class="um-field-wrapper">' + selector_html +
30
- '</span><span class="um-field-control"><a href="javascript:void(0);" class="um-select-delete">' + php_data.texts.remove + '</a></span></li>'
31
- );
 
 
 
 
 
 
 
32
 
33
  list.find('li:last .um-hidden-multi-selects').attr('name', jQuery(this).data('name') ).
34
  addClass('um-forms-field um-long-field').removeClass('um-hidden-multi-selects').attr('id', list.data('id_attr') + '-' + k);
35
-
36
  });
37
 
38
  var um_local_date = new Date();
@@ -284,7 +304,7 @@ jQuery(document).ready( function() {
284
 
285
  list.append(
286
  '<li class="um-md-default-filters-option-line"><span class="um-field-wrapper">' + selector_html +
287
- '</span></span><span class="um-field-control"><a href="javascript:void(0);" class="um-select-delete">' + php_data.texts.remove + '</a></span><span class="um-field-wrapper2 um"></li>'
288
  );
289
 
290
  list.find('li:last .um-hidden-md-default-filters').attr('name', jQuery(this).data('name') ).
@@ -318,7 +338,7 @@ jQuery(document).ready( function() {
318
 
319
  list.append(
320
  '<li class="' + classes + '"><span class="um-field-wrapper">' + text_html +
321
- '</span><span class="um-field-control"><a href="javascript:void(0);" class="um-text-delete">' + php_data.texts.remove + '</a></span></li>'
322
  );
323
 
324
  list.find('li:last .um-hidden-multi-text').attr('name', jQuery(this).data('name') ).
@@ -366,7 +386,7 @@ jQuery(document).ready( function() {
366
  frame = wp.media({
367
  title: button.data('upload_frame'),
368
  button: {
369
- text: php_data.texts.select
370
  },
371
  multiple: false // Set to true to allow multiple files to be selected
372
  });
1
  jQuery(document).ready( function() {
2
+
3
+
4
+ /**
5
+ * Multi-selects sort
6
+ */
7
+ jQuery('.um-multi-selects-list.um-sortable-multi-selects').sortable({
8
+ items: '.um-admin-drag-fld',
9
+ connectWith: '.um-admin-drag-col,.um-admin-drag-group',
10
+ forcePlaceholderSize: true
11
+ });
12
+
13
+
14
  /**
15
  * Multi-selects field
16
  */
28
  jQuery( '.um-multi-selects-add-option' ).click( function() {
29
  var list = jQuery(this).siblings('ul.um-multi-selects-list');
30
 
31
+ var sortable = list.hasClass( 'um-sortable-multi-selects' );
32
+
33
  var field_id = list.data('field_id');
34
  var k = 0;
35
  if ( list.find( 'li:last select.um-forms-field' ).length > 0 ) {
39
 
40
  var selector_html = jQuery( '<div>' ).append( list.siblings('.um-hidden-multi-selects').clone() ).html();
41
 
42
+ var html = '<li class="um-multi-selects-option-line' + ( sortable ? ' um-admin-drag-fld' : '' ) + '">';
43
+ if ( sortable ) {
44
+ html += '<span class="um-field-icon"><i class="um-faicon-sort"></i></span>';
45
+ }
46
+
47
+ html += '<span class="um-field-wrapper">' + selector_html + '</span>' +
48
+ '<span class="um-field-control">' +
49
+ '<a href="javascript:void(0);" class="um-select-delete">' + wp.i18n.__( 'Remove', 'ultimate-member' ) + '</a>' +
50
+ '</span>' +
51
+ '</li>';
52
+ list.append( html );
53
 
54
  list.find('li:last .um-hidden-multi-selects').attr('name', jQuery(this).data('name') ).
55
  addClass('um-forms-field um-long-field').removeClass('um-hidden-multi-selects').attr('id', list.data('id_attr') + '-' + k);
 
56
  });
57
 
58
  var um_local_date = new Date();
304
 
305
  list.append(
306
  '<li class="um-md-default-filters-option-line"><span class="um-field-wrapper">' + selector_html +
307
+ '</span></span><span class="um-field-control"><a href="javascript:void(0);" class="um-select-delete">' + wp.i18n.__( 'Remove', 'ultimate-member' ) + '</a></span><span class="um-field-wrapper2 um"></li>'
308
  );
309
 
310
  list.find('li:last .um-hidden-md-default-filters').attr('name', jQuery(this).data('name') ).
338
 
339
  list.append(
340
  '<li class="' + classes + '"><span class="um-field-wrapper">' + text_html +
341
+ '</span><span class="um-field-control"><a href="javascript:void(0);" class="um-text-delete">' + wp.i18n.__( 'Remove', 'ultimate-member' ) + '</a></span></li>'
342
  );
343
 
344
  list.find('li:last .um-hidden-multi-text').attr('name', jQuery(this).data('name') ).
386
  frame = wp.media({
387
  title: button.data('upload_frame'),
388
  button: {
389
+ text: wp.i18n.__( 'Select', 'ultimate-member' )
390
  },
391
  multiple: false // Set to true to allow multiple files to be selected
392
  });
includes/admin/assets/js/um-admin-modal.js CHANGED
@@ -139,6 +139,11 @@ function um_admin_modal_ajaxcall( act_id, arg1, arg2, arg3 ) {
139
 
140
  }
141
 
 
 
 
 
 
142
  um_init_tooltips();
143
 
144
  um_admin_init_datetimepicker();
139
 
140
  }
141
 
142
+ if ( act_id === 'um_admin_preview_form' ) {
143
+ //fix for overlay in scrollable preview modal
144
+ jQuery('.um-admin-preview-overlay').css('height', jQuery('.um-admin-preview-overlay').siblings('.um').outerHeight(true)*1 + 20 + 'px' );
145
+ }
146
+
147
  um_init_tooltips();
148
 
149
  um_admin_init_datetimepicker();
includes/admin/assets/js/um-admin-settings.js CHANGED
@@ -21,7 +21,7 @@ jQuery( document ).ready( function() {
21
  jQuery( '#um-settings-wrap .um-nav-tab-wrapper a, #um-settings-wrap .subsubsub a' ).click( function() {
22
  if ( changed ) {
23
  window.onbeforeunload = function() {
24
- return php_data.onbeforeunload_text;
25
  };
26
  } else {
27
  window.onbeforeunload = '';
21
  jQuery( '#um-settings-wrap .um-nav-tab-wrapper a, #um-settings-wrap .subsubsub a' ).click( function() {
22
  if ( changed ) {
23
  window.onbeforeunload = function() {
24
+ return wp.i18n.__( 'Are sure, maybe some settings not saved', 'ultimate-member' );
25
  };
26
  } else {
27
  window.onbeforeunload = '';
includes/admin/core/class-admin-builder.php CHANGED
@@ -27,6 +27,7 @@ if ( ! class_exists( 'um\admin\core\Admin_Builder' ) ) {
27
  function __construct() {
28
  add_action( 'um_admin_field_modal_header', array( &$this, 'add_message_handlers' ) );
29
  add_action( 'um_admin_field_modal_footer', array( &$this, 'add_conditional_support' ), 10, 4 );
 
30
  add_filter( 'um_admin_pre_save_field_to_form', array( &$this, 'um_admin_pre_save_field_to_form' ), 1 );
31
  add_filter( 'um_admin_pre_save_fields_hook', array( &$this, 'um_admin_pre_save_fields_hook' ), 1 );
32
  add_filter( 'um_admin_field_update_error_handling', array( &$this, 'um_admin_field_update_error_handling' ), 1, 2 );
@@ -1053,7 +1054,8 @@ if ( ! class_exists( 'um\admin\core\Admin_Builder' ) ) {
1053
  UM()->fields()->editing = true;
1054
  }
1055
 
1056
- $output = do_shortcode('[ultimatemember form_id="' . $arg1 . '" /]');
 
1057
 
1058
  break;
1059
 
@@ -1139,6 +1141,24 @@ if ( ! class_exists( 'um\admin\core\Admin_Builder' ) ) {
1139
  }
1140
 
1141
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1142
  /**
1143
  * Retrieves dropdown/multi-select options from a callback function
1144
  */
27
  function __construct() {
28
  add_action( 'um_admin_field_modal_header', array( &$this, 'add_message_handlers' ) );
29
  add_action( 'um_admin_field_modal_footer', array( &$this, 'add_conditional_support' ), 10, 4 );
30
+ add_filter( 'um_admin_builder_skip_field_validation', array( &$this, 'skip_field_validation' ), 10, 3 );
31
  add_filter( 'um_admin_pre_save_field_to_form', array( &$this, 'um_admin_pre_save_field_to_form' ), 1 );
32
  add_filter( 'um_admin_pre_save_fields_hook', array( &$this, 'um_admin_pre_save_fields_hook' ), 1 );
33
  add_filter( 'um_admin_field_update_error_handling', array( &$this, 'um_admin_field_update_error_handling' ), 1, 2 );
1054
  UM()->fields()->editing = true;
1055
  }
1056
 
1057
+ $output = '<div class="um-admin-preview-overlay"></div>';
1058
+ $output .= do_shortcode('[ultimatemember form_id="' . $arg1 . '" /]');
1059
 
1060
  break;
1061
 
1141
  }
1142
 
1143
 
1144
+ /**
1145
+ * Skip field validation for:
1146
+ * - '_options' if Choices Callback specified
1147
+ *
1148
+ * @param boolean $skip
1149
+ * @param string $post_input
1150
+ * @param array $array
1151
+ * @return boolean
1152
+ */
1153
+ public function skip_field_validation( $skip, $post_input, $array ) {
1154
+ if ( $post_input === '_options' && isset( $array['post']['_custom_dropdown_options_source'] ) ) {
1155
+ $skip = function_exists( $array['post']['_custom_dropdown_options_source'] );
1156
+ }
1157
+
1158
+ return $skip;
1159
+ }
1160
+
1161
+
1162
  /**
1163
  * Retrieves dropdown/multi-select options from a callback function
1164
  */
includes/admin/core/class-admin-enqueue.php CHANGED
@@ -227,17 +227,8 @@ if ( ! class_exists( 'um\admin\core\Admin_Enqueue' ) ) {
227
  wp_register_style( 'um_admin_forms', $this->css_url . 'um-admin-forms.css', array( 'wp-color-picker', 'um_ui' ), ultimatemember_version );
228
  wp_enqueue_style( 'um_admin_forms' );
229
 
230
- wp_register_script( 'um_admin_forms', $this->js_url . 'um-admin-forms.js', array( 'jquery' ), ultimatemember_version, true );
231
  wp_enqueue_script( 'um_admin_forms' );
232
-
233
- $localize_data = array(
234
- 'texts' => array(
235
- 'remove' => __( 'Remove', 'ultimate-member' ),
236
- 'select' => __( 'Select', 'ultimate-member' )
237
- )
238
- );
239
-
240
- wp_localize_script( 'um_admin_forms', 'php_data', $localize_data );
241
  }
242
 
243
 
@@ -257,18 +248,8 @@ if ( ! class_exists( 'um\admin\core\Admin_Enqueue' ) ) {
257
  wp_register_style( 'um_admin_settings', $this->css_url . 'um-admin-settings.css', array(), ultimatemember_version );
258
  wp_enqueue_style( 'um_admin_settings' );
259
 
260
- wp_register_script( 'um_admin_settings', $this->js_url . 'um-admin-settings.js', array( 'jquery' ), ultimatemember_version, true );
261
  wp_enqueue_script( 'um_admin_settings' );
262
-
263
- $localize_data = array(
264
- 'onbeforeunload_text' => __( 'Are sure, maybe some settings not saved', 'ultimate-member' ),
265
- 'texts' => array(
266
- 'remove' => __( 'Remove', 'ultimate-member' ),
267
- 'select' => __( 'Select', 'ultimate-member' )
268
- )
269
- );
270
-
271
- wp_localize_script( 'um_admin_settings', 'php_data', $localize_data );
272
  }
273
 
274
 
227
  wp_register_style( 'um_admin_forms', $this->css_url . 'um-admin-forms.css', array( 'wp-color-picker', 'um_ui' ), ultimatemember_version );
228
  wp_enqueue_style( 'um_admin_forms' );
229
 
230
+ wp_register_script( 'um_admin_forms', $this->js_url . 'um-admin-forms.js', array( 'jquery', 'wp-i18n' ), ultimatemember_version, true );
231
  wp_enqueue_script( 'um_admin_forms' );
 
 
 
 
 
 
 
 
 
232
  }
233
 
234
 
248
  wp_register_style( 'um_admin_settings', $this->css_url . 'um-admin-settings.css', array(), ultimatemember_version );
249
  wp_enqueue_style( 'um_admin_settings' );
250
 
251
+ wp_register_script( 'um_admin_settings', $this->js_url . 'um-admin-settings.js', array( 'jquery', 'wp-i18n' ), ultimatemember_version, true );
252
  wp_enqueue_script( 'um_admin_settings' );
 
 
 
 
 
 
 
 
 
 
253
  }
254
 
255
 
includes/admin/core/class-admin-forms.php CHANGED
@@ -849,8 +849,11 @@ if ( ! class_exists( 'um\admin\core\Admin_Forms' ) ) {
849
 
850
  $id = ( ! empty( $this->form_data['prefix_id'] ) ? $this->form_data['prefix_id'] : '' ) . '_' . $field_data['id'];
851
 
 
 
852
  $class = ! empty( $field_data['class'] ) ? $field_data['class'] : '';
853
  $class .= ! empty( $field_data['size'] ) ? $field_data['size'] : 'um-long-field';
 
854
  $class_attr = ' class="um-forms-field ' . $class . '" ';
855
 
856
  $data = array(
@@ -876,7 +879,11 @@ if ( ! class_exists( 'um\admin\core\Admin_Forms' ) ) {
876
  }
877
 
878
  $html = "<select class=\"um-hidden-multi-selects\" $data_attr>$options</select>";
879
- $html .= "<ul class=\"um-multi-selects-list\" $data_attr>";
 
 
 
 
880
 
881
  if ( ! empty( $values ) && is_array( $values ) ) {
882
  foreach ( $values as $k => $value ) {
@@ -892,7 +899,11 @@ if ( ! class_exists( 'um\admin\core\Admin_Forms' ) ) {
892
  $options .= '<option value="' . $key . '" ' . selected( $key == $value, true, false ) . '>' . $option . '</option>';
893
  }
894
 
895
- $html .= "<li class=\"um-multi-selects-option-line\"><span class=\"um-field-wrapper\">
 
 
 
 
896
  <select $id_attr $name_attr $class_attr $data_attr>$options</select></span>
897
  <span class=\"um-field-control\"><a href=\"javascript:void(0);\" class=\"um-select-delete\">" . __( 'Remove', 'ultimate-member' ) . "</a></span></li>";
898
  }
@@ -906,7 +917,12 @@ if ( ! class_exists( 'um\admin\core\Admin_Forms' ) ) {
906
  $options .= '<option value="' . $key . '">' . $option . '</option>';
907
  }
908
 
909
- $html .= "<li class=\"um-multi-selects-option-line\"><span class=\"um-field-wrapper\">
 
 
 
 
 
910
  <select $id_attr $name_attr $class_attr $data_attr>$options</select></span>
911
  <span class=\"um-field-control\"><a href=\"javascript:void(0);\" class=\"um-select-delete\">" . __( 'Remove', 'ultimate-member' ) . "</a></span></li>";
912
 
849
 
850
  $id = ( ! empty( $this->form_data['prefix_id'] ) ? $this->form_data['prefix_id'] : '' ) . '_' . $field_data['id'];
851
 
852
+ $sorting = ! empty( $field_data['sorting'] ) ? $field_data['sorting'] : false;
853
+
854
  $class = ! empty( $field_data['class'] ) ? $field_data['class'] : '';
855
  $class .= ! empty( $field_data['size'] ) ? $field_data['size'] : 'um-long-field';
856
+ $class .= ! empty( $sorting ) ? 'um-sorting-enabled' : '';
857
  $class_attr = ' class="um-forms-field ' . $class . '" ';
858
 
859
  $data = array(
879
  }
880
 
881
  $html = "<select class=\"um-hidden-multi-selects\" $data_attr>$options</select>";
882
+ $html .= "<ul class=\"um-multi-selects-list" . ( ! empty( $sorting ) ? ' um-sortable-multi-selects' : '' ) . "\" $data_attr>";
883
+
884
+ if ( $sorting && is_array( $values ) ) {
885
+ ksort( $values );
886
+ }
887
 
888
  if ( ! empty( $values ) && is_array( $values ) ) {
889
  foreach ( $values as $k => $value ) {
899
  $options .= '<option value="' . $key . '" ' . selected( $key == $value, true, false ) . '>' . $option . '</option>';
900
  }
901
 
902
+ $html .= '<li class="um-multi-selects-option-line' . ( ! empty( $sorting ) ? ' um-admin-drag-fld' : '' ) . '">';
903
+ if ( $sorting ) {
904
+ $html .= '<span class="um-field-icon"><i class="um-faicon-sort"></i></span>';
905
+ }
906
+ $html .= "<span class=\"um-field-wrapper\">
907
  <select $id_attr $name_attr $class_attr $data_attr>$options</select></span>
908
  <span class=\"um-field-control\"><a href=\"javascript:void(0);\" class=\"um-select-delete\">" . __( 'Remove', 'ultimate-member' ) . "</a></span></li>";
909
  }
917
  $options .= '<option value="' . $key . '">' . $option . '</option>';
918
  }
919
 
920
+ $html .= '<li class="um-multi-selects-option-line' . ( ! empty( $sorting ) ? ' um-admin-drag-fld' : '' ) . '">';
921
+ if ( $sorting ) {
922
+ $html .= '<span class="um-field-icon"><i class="um-faicon-sort"></i></span>';
923
+ }
924
+
925
+ $html .= "<span class=\"um-field-wrapper\">
926
  <select $id_attr $name_attr $class_attr $data_attr>$options</select></span>
927
  <span class=\"um-field-control\"><a href=\"javascript:void(0);\" class=\"um-select-delete\">" . __( 'Remove', 'ultimate-member' ) . "</a></span></li>";
928
 
includes/admin/core/class-admin-notices.php CHANGED
@@ -44,7 +44,7 @@ if ( ! class_exists( 'um\admin\core\Admin_Notices' ) ) {
44
  $this->exif_extension_notice();
45
  $this->show_update_messages();
46
  $this->check_wrong_install_folder();
47
- $this->admin_notice_opt_in();
48
  $this->need_upgrade();
49
  $this->check_wrong_licenses();
50
 
@@ -266,7 +266,11 @@ if ( ! class_exists( 'um\admin\core\Admin_Notices' ) ) {
266
  $active_plugins = UM()->dependencies()->get_active_plugins();
267
  foreach ( $slugs as $slug ) {
268
  if ( in_array( $slug, $active_plugins ) ) {
269
- $plugin_data = get_plugin_data( um_path . '..' . DIRECTORY_SEPARATOR . $slug );
 
 
 
 
270
  if ( version_compare( '2.0', $plugin_data['Version'], '>' ) ) {
271
  $show = true;
272
  break;
44
  $this->exif_extension_notice();
45
  $this->show_update_messages();
46
  $this->check_wrong_install_folder();
47
+ //$this->admin_notice_opt_in();
48
  $this->need_upgrade();
49
  $this->check_wrong_licenses();
50
 
266
  $active_plugins = UM()->dependencies()->get_active_plugins();
267
  foreach ( $slugs as $slug ) {
268
  if ( in_array( $slug, $active_plugins ) ) {
269
+ $path = wp_normalize_path( WP_PLUGIN_DIR . DIRECTORY_SEPARATOR . $slug );
270
+ if ( ! file_exists( $path ) ) {
271
+ continue;
272
+ }
273
+ $plugin_data = get_plugin_data( $path );
274
  if ( version_compare( '2.0', $plugin_data['Version'], '>' ) ) {
275
  $show = true;
276
  break;
includes/admin/core/list-tables/emails-list-table.php CHANGED
@@ -307,7 +307,7 @@ $ListTable->set_columns( $columns );
307
  $emails = UM()->config()->email_notifications;
308
 
309
  $ListTable->prepare_items();
310
- $ListTable->items = $emails;
311
  $ListTable->wpc_set_pagination_args( array( 'total_items' => count( $emails ), 'per_page' => $per_page ) ); ?>
312
 
313
  <p class="description" style="margin: 20px 0 0 0;">
307
  $emails = UM()->config()->email_notifications;
308
 
309
  $ListTable->prepare_items();
310
+ $ListTable->items = array_slice( $emails, ( $paged - 1 ) * $per_page, $per_page );
311
  $ListTable->wpc_set_pagination_args( array( 'total_items' => count( $emails ), 'per_page' => $per_page ) ); ?>
312
 
313
  <p class="description" style="margin: 20px 0 0 0;">
includes/admin/core/packages/2.1.0-beta1/member-directory.php CHANGED
@@ -87,6 +87,9 @@ if ( ! empty( $member_directories ) && ! is_wp_error( $member_directories ) ) {
87
  update_post_meta( $id, '_um_roles_can_filter', $can_search_roles );
88
  update_post_meta( $id, '_um_search_fields', $filter_fields );
89
  update_post_meta( $id, '_um_search_fields_old', $search_fields_old );
 
 
 
90
  } else {
91
  update_post_meta( $id, '_um_search', 0 );
92
  update_post_meta( $id, '_um_filters', 0 );
87
  update_post_meta( $id, '_um_roles_can_filter', $can_search_roles );
88
  update_post_meta( $id, '_um_search_fields', $filter_fields );
89
  update_post_meta( $id, '_um_search_fields_old', $search_fields_old );
90
+
91
+ update_post_meta( $id, '_um_filters_expanded', 1 );
92
+ update_post_meta( $id, '_um_filters_is_collapsible', 0 );
93
  } else {
94
  update_post_meta( $id, '_um_search', 0 );
95
  update_post_meta( $id, '_um_filters', 0 );
includes/admin/templates/directory/pagination.php CHANGED
@@ -39,25 +39,27 @@
39
  'size' => 'small'
40
  ),
41
  array(
42
- 'id' => '_um_directory_header',
43
- 'type' => 'text',
44
- 'label' => __( 'Results Text', 'ultimate-member' ),
45
- 'tooltip' => __( 'Customize the search result text . e.g. Found 3,000 Members. Leave this blank to not show result text', 'ultimate-member' ),
46
- 'value' => UM()->query()->get_meta_value('_um_directory_header', null, __( '{total_users} Members', 'ultimate-member' ) ),
 
47
  ),
48
  array(
49
- 'id' => '_um_directory_header_single',
50
- 'type' => 'text',
51
- 'label' => __( 'Single Result Text', 'ultimate-member' ),
52
- 'tooltip' => __( 'Same as above but in case of 1 user found only', 'ultimate-member' ),
53
- 'value' => UM()->query()->get_meta_value('_um_directory_header_single', null, __( '{total_users} Member', 'ultimate-member' ) ),
 
54
  ),
55
  array(
56
- 'id' => '_um_directory_no_users',
57
- 'type' => 'text',
58
- 'label' => __( 'Custom text if no users were found', 'ultimate-member' ),
59
- 'tooltip' => __( 'This is the text that is displayed if no users are found during a search', 'ultimate-member' ),
60
- 'value' => UM()->query()->get_meta_value('_um_directory_no_users', null, __( 'We are sorry. We cannot find any users who match your search criteria.', 'ultimate-member' ) ),
61
  ),
62
  )
63
  ) )->render_form(); ?>
39
  'size' => 'small'
40
  ),
41
  array(
42
+ 'id' => '_um_directory_header',
43
+ 'type' => 'text',
44
+ 'label' => __( 'Results Text', 'ultimate-member' ),
45
+ 'tooltip' => __( 'Customize the search result text . e.g. Found 3,000 Members. Leave this blank to not show result text', 'ultimate-member' ),
46
+ 'description' => __( 'You could use {total_users} placeholder for getting users count', 'ultimate-member' ),
47
+ 'value' => UM()->query()->get_meta_value('_um_directory_header', null, 'na' ),
48
  ),
49
  array(
50
+ 'id' => '_um_directory_header_single',
51
+ 'type' => 'text',
52
+ 'label' => __( 'Single Result Text', 'ultimate-member' ),
53
+ 'tooltip' => __( 'Same as above but in case of 1 user found only', 'ultimate-member' ),
54
+ 'description' => __( 'You could use {total_users} placeholder for getting users count', 'ultimate-member' ),
55
+ 'value' => UM()->query()->get_meta_value('_um_directory_header_single', null, 'na' ),
56
  ),
57
  array(
58
+ 'id' => '_um_directory_no_users',
59
+ 'type' => 'text',
60
+ 'label' => __( 'Custom text if no users were found', 'ultimate-member' ),
61
+ 'tooltip' => __( 'This is the text that is displayed if no users are found during a search', 'ultimate-member' ),
62
+ 'value' => UM()->query()->get_meta_value('_um_directory_no_users', null, 'na' ),
63
  ),
64
  )
65
  ) )->render_form(); ?>
includes/admin/templates/directory/profile.php CHANGED
@@ -48,6 +48,7 @@
48
  'add_text' => __( 'Add New Custom Field', 'ultimate-member' ),
49
  'options' => $user_fields,
50
  'show_default_number' => 1,
 
51
  ),
52
  array(
53
  'id' => '_um_show_userinfo',
@@ -58,24 +59,26 @@
58
  array(
59
  'id' => '_um_reveal_fields',
60
  'type' => 'multi_selects',
61
- 'label' => __( 'Choose field(s) to display in reveal section', 'ultimate-member' ),
62
  'value' => $_um_reveal_fields,
63
  'add_text' => __( 'Add New Custom Field', 'ultimate-member' ),
64
  'conditional' => array( '_um_show_userinfo', '=', 1 ),
65
  'options' => $user_fields,
66
  'show_default_number' => 1,
 
67
  ),
68
  array(
69
  'id' => '_um_show_social',
70
  'type' => 'checkbox',
71
- 'label' => __( 'Show social connect icons', 'ultimate-member' ),
72
  'value' => UM()->query()->get_meta_value( '_um_show_social' ),
73
  'conditional' => array( '_um_show_userinfo', '=', 1 )
74
  ),
75
  array(
76
  'id' => '_um_userinfo_animate',
77
  'type' => 'checkbox',
78
- 'label' => __( 'Enable reveal section transition by default', 'ultimate-member' ),
 
79
  'value' => UM()->query()->get_meta_value( '_um_userinfo_animate' ),
80
  'conditional' => array( '_um_show_userinfo', '=', 1 )
81
  ),
48
  'add_text' => __( 'Add New Custom Field', 'ultimate-member' ),
49
  'options' => $user_fields,
50
  'show_default_number' => 1,
51
+ 'sorting' => true,
52
  ),
53
  array(
54
  'id' => '_um_show_userinfo',
59
  array(
60
  'id' => '_um_reveal_fields',
61
  'type' => 'multi_selects',
62
+ 'label' => __( 'Choose field(s) to display in extra user information section', 'ultimate-member' ),
63
  'value' => $_um_reveal_fields,
64
  'add_text' => __( 'Add New Custom Field', 'ultimate-member' ),
65
  'conditional' => array( '_um_show_userinfo', '=', 1 ),
66
  'options' => $user_fields,
67
  'show_default_number' => 1,
68
+ 'sorting' => true,
69
  ),
70
  array(
71
  'id' => '_um_show_social',
72
  'type' => 'checkbox',
73
+ 'label' => __( 'Show social connect icons in extra user information section', 'ultimate-member' ),
74
  'value' => UM()->query()->get_meta_value( '_um_show_social' ),
75
  'conditional' => array( '_um_show_userinfo', '=', 1 )
76
  ),
77
  array(
78
  'id' => '_um_userinfo_animate',
79
  'type' => 'checkbox',
80
+ 'label' => __( 'Hide extra user information to the reveal section', 'ultimate-member' ),
81
+ 'tooltip' => __( 'If not checked always shown', 'ultimate-member' ),
82
  'value' => UM()->query()->get_meta_value( '_um_userinfo_animate' ),
83
  'conditional' => array( '_um_show_userinfo', '=', 1 )
84
  ),
includes/admin/templates/directory/search.php CHANGED
@@ -92,15 +92,24 @@ global $post_id; ?>
92
  'options' => UM()->member_directory()->filter_fields,
93
  'add_text' => __( 'Add New Custom Field', 'ultimate-member' ),
94
  'show_default_number' => 1,
 
95
  ),
96
  array(
97
  'id' => '_um_filters_expanded',
98
  'type' => 'checkbox',
99
  'label' => __( 'Expand the filter bar by default', 'ultimate-member' ),
100
- 'tooltip' => __( 'If turned on, filters bar will be visible after a page loading and can be collapsed', 'ultimate-member' ),
101
  'value' => UM()->query()->get_meta_value( '_um_filters_expanded' ),
102
  'conditional' => array( '_um_filters', '=', 1 )
103
  ),
 
 
 
 
 
 
 
 
104
  array(
105
  'id' => '_um_search_filters',
106
  'type' => 'md_default_filters',
92
  'options' => UM()->member_directory()->filter_fields,
93
  'add_text' => __( 'Add New Custom Field', 'ultimate-member' ),
94
  'show_default_number' => 1,
95
+ 'sorting' => true,
96
  ),
97
  array(
98
  'id' => '_um_filters_expanded',
99
  'type' => 'checkbox',
100
  'label' => __( 'Expand the filter bar by default', 'ultimate-member' ),
101
+ 'tooltip' => __( 'If turned on, filters bar will be visible after a page loading', 'ultimate-member' ),
102
  'value' => UM()->query()->get_meta_value( '_um_filters_expanded' ),
103
  'conditional' => array( '_um_filters', '=', 1 )
104
  ),
105
+ array(
106
+ 'id' => '_um_filters_is_collapsible',
107
+ 'type' => 'checkbox',
108
+ 'label' => __( 'Can filter bar be collapsed', 'ultimate-member' ),
109
+ 'tooltip' => __( 'If turned on, filters bar can be collapsed after a page loading', 'ultimate-member' ),
110
+ 'value' => UM()->query()->get_meta_value( '_um_filters_is_collapsible' ),
111
+ 'conditional' => array( '_um_filters_expanded', '=', 1 )
112
+ ),
113
  array(
114
  'id' => '_um_search_filters',
115
  'type' => 'md_default_filters',
includes/class-config.php CHANGED
@@ -169,6 +169,7 @@ if ( ! class_exists( 'um\Config' ) ) {
169
  '_um_roles_can_filter' => array(),
170
  '_um_search_fields' => array(),
171
  '_um_filters_expanded' => 0,
 
172
  '_um_search_filters' => array(),
173
 
174
  '_um_must_search' => 0,
169
  '_um_roles_can_filter' => array(),
170
  '_um_search_fields' => array(),
171
  '_um_filters_expanded' => 0,
172
+ '_um_filters_is_collapsible' => 1,
173
  '_um_search_filters' => array(),
174
 
175
  '_um_must_search' => 0,
includes/class-init.php CHANGED
@@ -519,8 +519,9 @@ if ( ! class_exists( 'UM' ) ) {
519
  $this->columns();
520
  $this->admin()->notices();
521
  $this->admin_navmenu();
522
- $this->theme_updater();
523
  $this->access();
 
 
524
  } elseif ( $this->is_request( 'admin' ) ) {
525
  $this->admin();
526
  $this->admin_menu();
@@ -532,9 +533,9 @@ if ( ! class_exists( 'UM' ) ) {
532
  $this->admin()->notices();
533
  $this->users();
534
  $this->dragdrop();
535
- $this->plugin_updater();
536
  $this->admin_gdpr();
537
  $this->admin_navmenu();
 
538
  $this->theme_updater();
539
  } elseif ( $this->is_request( 'frontend' ) ) {
540
  $this->enqueue();
519
  $this->columns();
520
  $this->admin()->notices();
521
  $this->admin_navmenu();
 
522
  $this->access();
523
+ $this->plugin_updater();
524
+ $this->theme_updater();
525
  } elseif ( $this->is_request( 'admin' ) ) {
526
  $this->admin();
527
  $this->admin_menu();
533
  $this->admin()->notices();
534
  $this->users();
535
  $this->dragdrop();
 
536
  $this->admin_gdpr();
537
  $this->admin_navmenu();
538
+ $this->plugin_updater();
539
  $this->theme_updater();
540
  } elseif ( $this->is_request( 'frontend' ) ) {
541
  $this->enqueue();
includes/core/class-account.php CHANGED
@@ -575,6 +575,7 @@ if ( ! class_exists( 'um\core\Account' ) ) {
575
  function get_tab_fields( $id, $shortcode_args ) {
576
  $output = null;
577
 
 
578
  UM()->fields()->set_mode = 'account';
579
  UM()->fields()->editing = true;
580
 
575
  function get_tab_fields( $id, $shortcode_args ) {
576
  $output = null;
577
 
578
+ UM()->fields()->set_id = $id;
579
  UM()->fields()->set_mode = 'account';
580
  UM()->fields()->editing = true;
581
 
includes/core/class-builtin.php CHANGED
@@ -1342,6 +1342,7 @@ if ( ! class_exists( 'um\core\Builtin' ) ) {
1342
  $array['skype'] = __('Skype ID','ultimate-member');
1343
  $array['soundcloud'] = __('SoundCloud Profile','ultimate-member');
1344
  $array['twitter_url'] = __('Twitter URL','ultimate-member');
 
1345
  $array['unique_email'] = __('Unique E-mail','ultimate-member');
1346
  $array['unique_value'] = __('Unique Metakey value','ultimate-member');
1347
  $array['unique_username'] = __('Unique Username','ultimate-member');
1342
  $array['skype'] = __('Skype ID','ultimate-member');
1343
  $array['soundcloud'] = __('SoundCloud Profile','ultimate-member');
1344
  $array['twitter_url'] = __('Twitter URL','ultimate-member');
1345
+ $array['is_email'] = __('E-mail( Not Unique )','ultimate-member');
1346
  $array['unique_email'] = __('Unique E-mail','ultimate-member');
1347
  $array['unique_value'] = __('Unique Metakey value','ultimate-member');
1348
  $array['unique_username'] = __('Unique Username','ultimate-member');
includes/core/class-enqueue.php CHANGED
@@ -141,7 +141,7 @@ if ( ! class_exists( 'um\core\Enqueue' ) ) {
141
 
142
  wp_register_script('um_dropdown', $this->js_baseurl . 'dropdown' . $this->suffix . '.js', array( 'jquery' ), ultimatemember_version, true );
143
 
144
- wp_register_script('um_members', $this->js_baseurl . 'um-members' . $this->suffix . '.js', array( 'jquery', 'wp-util', 'jquery-ui-slider', 'um_dropdown', 'wp-hooks' ), ultimatemember_version, true );
145
  wp_register_script('um_profile', $this->js_baseurl . 'um-profile' . $this->suffix . '.js', array( 'jquery', 'wp-util', 'wp-i18n' ), ultimatemember_version, true );
146
  wp_register_script('um_account', $this->js_baseurl . 'um-account' . $this->suffix . '.js', array( 'jquery' ), ultimatemember_version, true );
147
 
141
 
142
  wp_register_script('um_dropdown', $this->js_baseurl . 'dropdown' . $this->suffix . '.js', array( 'jquery' ), ultimatemember_version, true );
143
 
144
+ wp_register_script('um_members', $this->js_baseurl . 'um-members' . $this->suffix . '.js', array( 'jquery', 'wp-util', 'jquery-ui-slider', 'um_dropdown', 'wp-hooks', 'jquery-masonry' ), ultimatemember_version, true );
145
  wp_register_script('um_profile', $this->js_baseurl . 'um-profile' . $this->suffix . '.js', array( 'jquery', 'wp-util', 'wp-i18n' ), ultimatemember_version, true );
146
  wp_register_script('um_account', $this->js_baseurl . 'um-account' . $this->suffix . '.js', array( 'jquery' ), ultimatemember_version, true );
147
 
includes/core/class-external-integrations.php CHANGED
@@ -269,6 +269,9 @@ if ( ! class_exists( 'um\core\External_Integrations' ) ) {
269
  function get_languages_codes( $current_code = false ) {
270
  global $sitepress;
271
 
 
 
 
272
  $current_code = ! empty( $current_code ) ? $current_code : $sitepress->get_current_language();
273
 
274
  $default = $sitepress->get_locale_from_language_code( $sitepress->get_default_language() );
269
  function get_languages_codes( $current_code = false ) {
270
  global $sitepress;
271
 
272
+ if ( ! $this->is_wpml_active() )
273
+ return $current_code;
274
+
275
  $current_code = ! empty( $current_code ) ? $current_code : $sitepress->get_current_language();
276
 
277
  $default = $sitepress->get_locale_from_language_code( $sitepress->get_default_language() );
includes/core/class-fields.php CHANGED
@@ -591,22 +591,26 @@ if ( ! class_exists( 'um\core\Fields' ) ) {
591
  * @return mixed
592
  */
593
  function field_value( $key, $default = false, $data = null ) {
594
- if ( isset( $_SESSION ) && isset( $_SESSION['um_social_profile'][ $key ] ) && isset( $this->set_mode ) && $this->set_mode == 'register' ) {
595
- return $_SESSION['um_social_profile'][ $key ];
596
- }
597
-
598
- $type = ( isset( $data['type'] ) ) ? $data['type'] : '';
599
-
600
  // preview in backend
601
  if ( isset( UM()->user()->preview ) && UM()->user()->preview ) {
602
- $submitted = um_user( 'submitted' );
603
- if ( ! empty( $submitted[ $key ] ) ) {
604
- return $submitted[ $key ];
605
  } else {
606
- return __( 'Undefined', 'ultimate-member' );
 
 
 
 
 
607
  }
608
  }
609
 
 
 
 
 
 
 
610
  // normal state
611
  if ( isset( UM()->form()->post_form[ $key ] ) ) {
612
  //show empty value for password fields
@@ -1124,11 +1128,14 @@ if ( ! class_exists( 'um\core\Fields' ) ) {
1124
  $arr_options = $opts['options'];
1125
 
1126
  } elseif ( function_exists( $data['custom_dropdown_options_source'] ) ) {
 
 
 
1127
 
1128
- $arr_options = call_user_func(
1129
- $data['custom_dropdown_options_source'],
1130
- ( ! empty( $data['parent_dropdown_relationship'] ) ? $data['parent_dropdown_relationship'] : '' )
1131
- );
1132
  }
1133
 
1134
  if ( $has_custom_source || function_exists( $data['custom_dropdown_options_source'] ) ) {
@@ -1181,7 +1188,11 @@ if ( ! class_exists( 'um\core\Fields' ) ) {
1181
  if ( in_array( $type, array( 'select', 'multiselect' ) ) && ! empty( $data['custom_dropdown_options_source'] ) ) {
1182
 
1183
  if ( function_exists( $data['custom_dropdown_options_source'] ) ) {
1184
- $arr_options = call_user_func( $data['custom_dropdown_options_source'], $data['parent_dropdown_relationship'] );
 
 
 
 
1185
  }
1186
 
1187
  }
@@ -1798,13 +1809,13 @@ if ( ! class_exists( 'um\core\Fields' ) ) {
1798
  */
1799
  function edit_field( $key, $data, $rule = false, $args = array() ) {
1800
  global $_um_profile_id;
1801
- $output = null;
 
1802
  $disabled = '';
1803
  if ( empty( $_um_profile_id ) ) {
1804
  $_um_profile_id = um_user( 'ID' );
1805
  }
1806
 
1807
-
1808
  // get whole field data
1809
  if ( isset( $data ) && is_array( $data ) ) {
1810
  $data = $this->get_field( $key );
@@ -1826,7 +1837,6 @@ if ( ! class_exists( 'um\core\Fields' ) ) {
1826
  * @var boolean $editable
1827
  * @var string $icon
1828
  * @var boolean $in_group
1829
- * @var string $classes
1830
  * @var boolean $required
1831
  * @var string $validate
1832
  * @var string $default
@@ -1870,20 +1880,57 @@ if ( ! class_exists( 'um\core\Fields' ) ) {
1870
  }
1871
 
1872
  if ( ! isset( $data['type'] ) ) {
1873
- return;
1874
  }
1875
 
1876
  if ( isset( $data['in_group'] ) && $data['in_group'] != '' && $rule != 'group' ) {
1877
- return;
1878
  }
1879
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1880
  if ( $visibility == 'view' && $this->set_mode != 'register' ) {
1881
- return;
1882
  }
1883
 
1884
- if ( ( $visibility == 'view' && $this->set_mode == 'register' ) ||
1885
- ( isset( $data['editable'] ) && $data['editable'] == 0 && $this->set_mode == 'profile' )
1886
- ) {
 
 
 
 
 
 
 
 
 
 
1887
 
1888
  um_fetch_user( get_current_user_id() );
1889
  if ( ! um_user( 'can_edit_everyone' ) ) {
@@ -1905,48 +1952,11 @@ if ( ! class_exists( 'um\core\Fields' ) ) {
1905
  $autocomplete = 'off';
1906
  }
1907
 
1908
- um_fetch_user( get_current_user_id() );
1909
- if ( ! um_can_view_field( $data ) ) {
1910
- return;
1911
- }
1912
- if ( ! um_can_edit_field( $data ) ) {
1913
- return;
1914
- }
1915
- um_fetch_user( $_um_profile_id );
1916
-
1917
- // fields that need to be disabled in edit mode (profile)
1918
- $arr_restricted_fields = $this->get_restricted_fields_for_edit( $_um_profile_id );
1919
- if ( in_array( $key, $arr_restricted_fields ) && $this->editing == true && $this->set_mode == 'profile' ) {
1920
- return;
1921
- }
1922
-
1923
- // forbidden in edit mode?
1924
- if ( isset( $data['edit_forbidden'] ) ) {
1925
- return;
1926
  }
1927
 
1928
-
1929
- // required option
1930
- if ( isset( $data['required_opt'] ) ) {
1931
- $opt = $data['required_opt'];
1932
- if ( UM()->options()->get( $opt[0] ) != $opt[1] ) {
1933
- return;
1934
- }
1935
- }
1936
-
1937
- // required user permission
1938
- if ( isset( $data['required_perm'] ) ) {
1939
- if ( ! um_user( $data['required_perm'] ) ) {
1940
- return;
1941
- }
1942
- }
1943
-
1944
- // do not show passwords
1945
- if ( isset( UM()->user()->preview ) && UM()->user()->preview ) {
1946
- if ( $data['type'] == 'password' ) {
1947
- return;
1948
- }
1949
- }
1950
 
1951
  /**
1952
  * UM hook
@@ -2047,7 +2057,7 @@ if ( ! class_exists( 'um\core\Fields' ) ) {
2047
  case 'vimeo_video':
2048
  case 'soundcloud_track':
2049
 
2050
- $output .= '<div class="um-field' . $classes . '"' . $conditional . ' data-key="' . $key . '">';
2051
 
2052
  if ( isset( $data['label'] ) ) {
2053
  $output .= $this->field_label( $label, $key, $data );
@@ -2066,7 +2076,7 @@ if ( ! class_exists( 'um\core\Fields' ) ) {
2066
 
2067
  $output .= '<input ' . $disabled . ' class="' . $this->get_class( $key, $data ) . '" type="' . esc_attr( $input ) . '" name="' . esc_attr( $field_name ) . '" id="' . esc_attr( $field_name ) . '" value="' . esc_attr( $field_value ) . '" placeholder="' . esc_attr( $placeholder ) . '" data-validate="' . esc_attr( $validate ) . '" data-key="' . esc_attr( $key ) . '" />
2068
 
2069
- </div>';
2070
 
2071
  if ( ! empty( $disabled ) ) {
2072
  $output .= $this->disabled_hidden_field( $field_name, $field_value );
@@ -2082,7 +2092,7 @@ if ( ! class_exists( 'um\core\Fields' ) ) {
2082
  /* Text */
2083
  case 'text':
2084
 
2085
- $output .= '<div class="um-field' . $classes . '"' . $conditional . ' data-key="' . esc_attr( $key ) . '">';
2086
 
2087
  if ( isset( $data['label'] ) ) {
2088
  $output .= $this->field_label( $label, $key, $data );
@@ -2101,7 +2111,7 @@ if ( ! class_exists( 'um\core\Fields' ) ) {
2101
 
2102
  $output .= '<input ' . $disabled . ' autocomplete="' . esc_attr( $autocomplete ) . '" class="' . $this->get_class( $key, $data ) . '" type="' . esc_attr( $input ) . '" name="' . esc_attr( $field_name ) . '" id="' . esc_attr( $field_name ) . '" value="' . esc_attr( $field_value ) . '" placeholder="' . esc_attr( $placeholder ) . '" data-validate="' . esc_attr( $validate ) . '" data-key="' . esc_attr( $key ) . '" />
2103
 
2104
- </div>';
2105
 
2106
  if ( ! empty( $disabled ) ) {
2107
  $output .= $this->disabled_hidden_field( $field_name, $field_value );
@@ -2117,7 +2127,7 @@ if ( ! class_exists( 'um\core\Fields' ) ) {
2117
  /* Number */
2118
  case 'number':
2119
 
2120
- $output .= '<div class="um-field' . $classes . '"' . $conditional . ' data-key="' . esc_attr( $key ) . '">';
2121
 
2122
  if ( isset( $data['label'] ) ) {
2123
  $output .= $this->field_label( $label, $key, $data );
@@ -2141,7 +2151,7 @@ if ( ! class_exists( 'um\core\Fields' ) ) {
2141
 
2142
  $output .= '<input ' . $disabled . ' class="' . $this->get_class( $key, $data ) . '" type="number" name="' . esc_attr( $key . UM()->form()->form_suffix ) . '" id="' . esc_attr( $key . UM()->form()->form_suffix ) . '" value="' . esc_attr( htmlspecialchars( $this->field_value( $key, $default, $data ) ) ) . '" placeholder="' . esc_attr( $placeholder ) . '" data-validate="' . esc_attr( $validate ) . '" data-key="' . esc_attr( $key ) . '" ' . $number_limit . ' />
2143
 
2144
- </div>';
2145
 
2146
  if ( $this->is_error( $key ) ) {
2147
  $output .= $this->field_error( $this->show_error( $key ) );
@@ -2159,7 +2169,7 @@ if ( ! class_exists( 'um\core\Fields' ) ) {
2159
 
2160
  $key = $original_key;
2161
 
2162
- $output .= '<div class="um-field' . $classes . '"' . $conditional . ' data-key="' . esc_attr( $key ) . '">';
2163
 
2164
  if ( isset( $data['label'] ) ) {
2165
  $output .= $this->field_label( $label, $key, $data );
@@ -2175,7 +2185,7 @@ if ( ! class_exists( 'um\core\Fields' ) ) {
2175
 
2176
  $output .= '<input class="' . $this->get_class( $key, $data ) . '" type="' . esc_attr( $input ) . '" name="' . esc_attr( $key . UM()->form()->form_suffix ) . '" id="' . esc_attr( $key . UM()->form()->form_suffix ) . '" value="' . $this->field_value( $key, $default, $data ) . '" placeholder="' . esc_attr( $placeholder ) . '" data-validate="' . esc_attr( $validate ) . '" data-key="' . esc_attr( $key ) . '" />
2177
 
2178
- </div>';
2179
 
2180
  if ( $this->is_error( $key ) ) {
2181
  $output .= $this->field_error( $this->show_error( $key ) );
@@ -2188,7 +2198,7 @@ if ( ! class_exists( 'um\core\Fields' ) ) {
2188
  if ( $this->set_mode == 'account' || um_is_core_page( 'account' ) ) {
2189
 
2190
  $key = 'current_' . $original_key;
2191
- $output .= '<div class="um-field' . $classes . '"' . $conditional . ' data-key="' . esc_attr( $key ) . '">';
2192
 
2193
  if ( isset( $data['label'] ) ) {
2194
  $output .= $this->field_label( __( 'Current Password', 'ultimate-member' ), $key, $data );
@@ -2204,7 +2214,7 @@ if ( ! class_exists( 'um\core\Fields' ) ) {
2204
 
2205
  $output .= '<input class="' . $this->get_class( $key, $data ) . '" type="' . esc_attr( $input ) . '" name="' . esc_attr( $key . UM()->form()->form_suffix ) . '" id="' . esc_attr( $key . UM()->form()->form_suffix ) . '" value="' . $this->field_value( $key, $default, $data ) . '" placeholder="' . esc_attr( $placeholder ) . '" data-validate="' . esc_attr( $validate ) . '" data-key="' . esc_attr( $key ) . '" />
2206
 
2207
- </div>';
2208
 
2209
  if ( $this->is_error( $key ) ) {
2210
  $output .= $this->field_error( $this->show_error( $key ) );
@@ -2216,7 +2226,7 @@ if ( ! class_exists( 'um\core\Fields' ) ) {
2216
 
2217
  $key = $original_key;
2218
 
2219
- $output .= '<div class="um-field' . $classes . '"' . $conditional . ' data-key="' . esc_attr( $key ) . '">';
2220
 
2221
  if ( $this->set_mode == 'account' && um_is_core_page( 'account' ) || $this->set_mode == 'password' && um_is_core_page( 'password-reset' ) ) {
2222
 
@@ -2238,7 +2248,7 @@ if ( ! class_exists( 'um\core\Fields' ) ) {
2238
 
2239
  $output .= '<input class="' . $this->get_class( $key, $data ) . '" type="' . esc_attr( $input ) . '" name="' . esc_attr( $key . UM()->form()->form_suffix ) . '" id="' . esc_attr( $key . UM()->form()->form_suffix ) . '" value="' . $this->field_value( $key, $default, $data ) . '" placeholder="' . esc_attr( $placeholder ) . '" data-validate="' . esc_attr( $validate ) . '" data-key="' . esc_attr( $key ) . '" />
2240
 
2241
- </div>';
2242
 
2243
  if ( $this->is_error( $key ) ) {
2244
  $output .= $this->field_error( $this->show_error( $key ) );
@@ -2249,7 +2259,7 @@ if ( ! class_exists( 'um\core\Fields' ) ) {
2249
  if ( $this->set_mode != 'login' && isset( $data['force_confirm_pass'] ) && $data['force_confirm_pass'] == 1 ) {
2250
 
2251
  $key = 'confirm_' . $original_key;
2252
- $output .= '<div class="um-field' . $classes . '"' . $conditional . ' data-key="' . esc_attr( $key ) . '">';
2253
 
2254
  if ( isset( $data['label'] ) ) {
2255
  $output .= $this->field_label( sprintf( __( 'Confirm %s', 'ultimate-member' ), $data['label'] ), $key, $data );
@@ -2265,7 +2275,7 @@ if ( ! class_exists( 'um\core\Fields' ) ) {
2265
 
2266
  $output .= '<input class="' . $this->get_class( $key, $data ) . '" type="' . esc_attr( $input ) . '" name="' . esc_attr( $key . UM()->form()->form_suffix ) . '" id="' . esc_attr( $key . UM()->form()->form_suffix ) . '" value="' . $this->field_value( $key, $default, $data ) . '" placeholder="' . esc_attr( $placeholder ) . '" data-validate="' . esc_attr( $validate ) . '" data-key="' . esc_attr( $key ) . '" />
2267
 
2268
- </div>';
2269
 
2270
  if ( $this->is_error( $key ) ) {
2271
  $output .= $this->field_error( $this->show_error( $key ) );
@@ -2282,7 +2292,7 @@ if ( ! class_exists( 'um\core\Fields' ) ) {
2282
  /* URL */
2283
  case 'url':
2284
 
2285
- $output .= '<div class="um-field' . $classes . '"' . $conditional . ' data-key="' . esc_attr( $key ) . '">';
2286
 
2287
  if ( isset( $data['label'] ) ) {
2288
  $output .= $this->field_label( $label, $key, $data );
@@ -2298,7 +2308,7 @@ if ( ! class_exists( 'um\core\Fields' ) ) {
2298
 
2299
  $output .= '<input ' . $disabled . ' class="' . $this->get_class( $key, $data ) . '" type="' . esc_attr( $input ) . '" name="' . esc_attr( $key . UM()->form()->form_suffix ) . '" id="' . esc_attr( $key . UM()->form()->form_suffix ) . '" value="' . esc_attr( $this->field_value( $key, $default, $data ) ) . '" placeholder="' . esc_attr( $placeholder ) . '" data-validate="' . esc_attr( $validate ) . '" data-key="' . esc_attr( $key ) . '" />
2300
 
2301
- </div>';
2302
 
2303
  if ( $this->is_error( $key ) ) {
2304
  $output .= $this->field_error( $this->show_error( $key ) );
@@ -2310,7 +2320,7 @@ if ( ! class_exists( 'um\core\Fields' ) ) {
2310
  /* Date */
2311
  case 'date':
2312
 
2313
- $output .= '<div class="um-field' . $classes . '"' . $conditional . ' data-key="' . esc_attr( $key ). '">';
2314
 
2315
  if (isset( $data['label'] )) {
2316
  $output .= $this->field_label( $label, $key, $data );
@@ -2326,7 +2336,7 @@ if ( ! class_exists( 'um\core\Fields' ) ) {
2326
 
2327
  $output .= '<input ' . $disabled . ' class="' . $this->get_class( $key, $data ) . '" type="' . esc_attr( $input ) . '" name="' . esc_attr( $key . UM()->form()->form_suffix ) . '" id="' . esc_attr( $key . UM()->form()->form_suffix ) . '" value="' . $this->field_value( $key, $default, $data ) . '" placeholder="' . esc_attr( $placeholder ) . '" data-validate="' . esc_attr( $validate ) . '" data-key="' . esc_attr( $key ) . '" data-range="' . esc_attr( $range ) . '" data-years="' . esc_attr( $years ) . '" data-years_x="' . esc_attr( $years_x ) . '" data-disabled_weekdays="' . esc_attr( $disabled_weekdays ) . '" data-date_min="' . esc_attr( $date_min ) . '" data-date_max="' . esc_attr( $date_max ) . '" data-format="' . esc_attr( $js_format ) . '" data-value="' . $this->field_value( $key, $default, $data ) . '" />
2328
 
2329
- </div>';
2330
 
2331
  if ( $this->is_error( $key ) ) {
2332
  $output .= $this->field_error( $this->show_error( $key ) );
@@ -2338,7 +2348,7 @@ if ( ! class_exists( 'um\core\Fields' ) ) {
2338
  /* Time */
2339
  case 'time':
2340
 
2341
- $output .= '<div class="um-field' . $classes . '"' . $conditional . ' data-key="' . esc_attr( $key ) . '">';
2342
 
2343
  if (isset( $data['label'] )) {
2344
  $output .= $this->field_label( $label, $key, $data );
@@ -2354,7 +2364,7 @@ if ( ! class_exists( 'um\core\Fields' ) ) {
2354
 
2355
  $output .= '<input ' . $disabled . ' class="' . $this->get_class( $key, $data ) . '" type="' . esc_attr( $input ) . '" name="' . esc_attr( $key . UM()->form()->form_suffix ) . '" id="' . esc_attr( $key . UM()->form()->form_suffix ) . '" value="' . $this->field_value( $key, $default, $data ) . '" placeholder="' . esc_attr( $placeholder ) . '" data-validate="' . esc_attr( $validate ) . '" data-key="' . esc_attr( $key ) . '" data-format="' . esc_attr( $js_format ) . '" data-intervals="' . esc_attr( $intervals ) . '" data-value="' . $this->field_value( $key, $default, $data ) . '" />
2356
 
2357
- </div>';
2358
 
2359
  if ( $this->is_error( $key ) ) {
2360
  $output .= $this->field_error( $this->show_error( $key ) );
@@ -2370,7 +2380,7 @@ if ( ! class_exists( 'um\core\Fields' ) ) {
2370
 
2371
  /* Textarea */
2372
  case 'textarea':
2373
- $output .= '<div class="um-field' . $classes . '"' . $conditional . ' data-key="' . esc_attr( $key ) . '">';
2374
 
2375
  if ( isset( $data['label'] ) ) {
2376
  $output .= $this->field_label( $label, $key, $data );
@@ -2425,7 +2435,7 @@ if ( ! class_exists( 'um\core\Fields' ) ) {
2425
 
2426
  // add the contents of the buffer to the output variable
2427
  $output .= ob_get_clean();
2428
- $output .= '<br /><span class="description">' . $placeholder . '</span>';
2429
  } else {
2430
  $output .= '<textarea ' . $disabled . ' style="height: ' . esc_attr( $height ) . ';" class="' . $this->get_class( $key, $data ) . '" name="' . esc_attr( $field_name ) . '" id="' . esc_attr( $field_id ) . '" placeholder="' . esc_attr( $placeholder ) . '">' . esc_textarea( strip_tags( $field_value ) ) . '</textarea>';
2431
  }
@@ -2445,7 +2455,7 @@ if ( ! class_exists( 'um\core\Fields' ) ) {
2445
 
2446
  /* Rating */
2447
  case 'rating':
2448
- $output .= '<div class="um-field' . $classes . '"' . $conditional . ' data-key="' . esc_attr( $key ) . '">';
2449
 
2450
  if ( isset( $data['label'] ) ) {
2451
  $output .= $this->field_label( $label, $key, $data );
@@ -2462,12 +2472,12 @@ if ( ! class_exists( 'um\core\Fields' ) ) {
2462
 
2463
  /* Gap/Space */
2464
  case 'spacing':
2465
- $output .= '<div class="um-field um-field-spacing' . $classes . '" ' . $conditional . ' style="height: ' . esc_attr( $spacing ) . '"></div>';
2466
  break;
2467
 
2468
  /* A line divider */
2469
  case 'divider':
2470
- $output .= '<div class="um-field um-field-divider' . $classes . '" ' . $conditional . ' style="border-bottom: ' . esc_attr( $borderwidth ) . 'px ' . esc_attr( $borderstyle ) . ' ' . esc_attr( $bordercolor ) . '">';
2471
  if ( $divider_text ) {
2472
  $output .= '<div class="um-field-divider-text"><span>' . esc_html( $divider_text ) . '</span></div>';
2473
  }
@@ -2476,7 +2486,7 @@ if ( ! class_exists( 'um\core\Fields' ) ) {
2476
 
2477
  /* Single Image Upload */
2478
  case 'image':
2479
- $output .= '<div class="um-field' . $classes . '"' . $conditional . ' data-key="' . esc_attr( $key ) . '">';
2480
  if ( in_array( $key, array( 'profile_photo', 'cover_photo' ) ) ) {
2481
  $field_value = '';
2482
  } else {
@@ -2506,13 +2516,13 @@ if ( ! class_exists( 'um\core\Fields' ) ) {
2506
  $img = '';
2507
  }
2508
  $output .= '<div class="um-single-image-preview show ' . $crop_class . '" data-crop="' . $crop_data . '" data-key="' . $key . '">
2509
- <a href="javascript:void(0);" class="cancel"><i class="um-icon-close"></i></a>' . $img . '
2510
- </div><a href="javascript:void(0);" data-modal="um_upload_single" data-modal-size="' . $modal_size . '" data-modal-copy="1" class="um-button um-btn-auto-width">' . __( 'Change photo', 'ultimate-member' ) . '</a>';
2511
  } else {
2512
  $output .= '<div class="um-single-image-preview ' . $crop_class . '" data-crop="' . $crop_data . '" data-key="' . $key . '">
2513
- <a href="javascript:void(0);" class="cancel"><i class="um-icon-close"></i></a>
2514
- <img src="" alt="" />
2515
- <div class="um-clear"></div></div><a href="javascript:void(0);" data-modal="um_upload_single" data-modal-size="' . $modal_size . '" data-modal-copy="1" class="um-button um-btn-auto-width">' . $button_text . '</a>';
2516
  }
2517
  $output .= '</div>';
2518
  /* modal hidden */
@@ -2530,12 +2540,12 @@ if ( ! class_exists( 'um\core\Fields' ) ) {
2530
  $output .= '<div class="um-single-image-preview ' . $crop_class . '" data-crop="' . $crop_data . '" data-ratio="' . $ratio . '" data-min_width="' . $min_width . '" data-min_height="' . $min_height . '" data-coord=""><a href="javascript:void(0);" class="cancel"><i class="um-icon-close"></i></a><img src="" alt="" /><div class="um-clear"></div></div><div class="um-clear"></div>';
2531
  $output .= '<div class="um-single-image-upload" data-user_id="' . esc_attr( $_um_profile_id ) . '" data-nonce="' . $nonce . '" data-timestamp="' . esc_attr( $this->timestamp ) . '" data-icon="' . esc_attr( $icon ) . '" data-set_id="' . esc_attr( $set_id ) . '" data-set_mode="' . esc_attr( $set_mode ) . '" data-type="' . esc_attr( $type ) . '" data-key="' . esc_attr( $key ) . '" data-max_size="' . esc_attr( $max_size ) . '" data-max_size_error="' . esc_attr( $max_size_error ) . '" data-min_size_error="' . esc_attr( $min_size_error ) . '" data-extension_error="' . esc_attr( $extension_error ) . '" data-allowed_types="' . esc_attr( $allowed_types ) . '" data-upload_text="' . esc_attr( $upload_text ) . '" data-max_files_error="' . esc_attr( $max_files_error ) . '" data-upload_help_text="' . esc_attr( $upload_help_text ) . '">' . $button_text . '</div>';
2532
  $output .= '<div class="um-modal-footer">
2533
- <div class="um-modal-right">
2534
- <a href="javascript:void(0);" class="um-modal-btn um-finish-upload image disabled" data-key="' . $key . '" data-change="' . __( 'Change photo', 'ultimate-member' ) . '" data-processing="' . __( 'Processing...', 'ultimate-member' ) . '"> ' . __( 'Apply', 'ultimate-member' ) . '</a>
2535
- <a href="javascript:void(0);" class="um-modal-btn alt" data-action="um_remove_modal"> ' . __( 'Cancel', 'ultimate-member' ) . '</a>
2536
- </div>
2537
- <div class="um-clear"></div>
2538
- </div>';
2539
  $output .= '</div>';
2540
  $output .= '</div>';
2541
  /* end */
@@ -2544,11 +2554,11 @@ if ( ! class_exists( 'um\core\Fields' ) ) {
2544
  }
2545
  $output .= '</div>';
2546
 
2547
- break;
2548
 
2549
  /* Single File Upload */
2550
  case 'file':
2551
- $output .= '<div class="um-field' . $classes . '"' . $conditional . ' data-key="' . esc_attr( $key ) . '">';
2552
  $output .= '<input type="hidden" name="' . esc_attr( $key . UM()->form()->form_suffix ) . '" id="' . esc_attr( $key . UM()->form()->form_suffix ) . '" value="' . $this->field_value( $key, $default, $data ) . '" />';
2553
  if (isset( $data['label'] )) {
2554
  $output .= $this->field_label( $label, $key, $data );
@@ -2587,13 +2597,13 @@ if ( ! class_exists( 'um\core\Fields' ) ) {
2587
 
2588
  if ( file_exists( $file_dir ) ) {
2589
  $output .= "<div class=\"um-single-file-preview show\" data-key=\"{$key}\">
2590
- <a href=\"#\" class=\"cancel\"><i class=\"um-icon-close\"></i></a>
2591
- <div class=\"um-single-fileinfo\">
2592
- <a href=\"{$file_url}\" target=\"_blank\">
2593
- <span class=\"icon\" style=\"background:" . UM()->files()->get_fonticon_bg_by_ext( $file_type['ext'] ) . "\"><i class=\"" . UM()->files()->get_fonticon_by_ext( $file_type['ext'] ) . "\"></i></span>
2594
- <span class=\"filename\">{$file_field_name}</span>
2595
- </a>
2596
- </div></div>";
2597
  } else {
2598
  $output .= "<div class=\"um-single-file-preview show\" data-key=\"{$key}\">" . __('This file has been removed.','ultimate-member') . "</div>";
2599
  }
@@ -2601,7 +2611,7 @@ if ( ! class_exists( 'um\core\Fields' ) ) {
2601
  $output .= "<a href=\"#\" data-modal=\"um_upload_single\" data-modal-size=\"{$modal_size}\" data-modal-copy=\"1\" class=\"um-button um-btn-auto-width\">" . __( 'Change file', 'ultimate-member' ) . "</a>";
2602
  } else {
2603
  $output .= "<div class=\"um-single-file-preview\" data-key=\"{$key}\">
2604
- </div><a href=\"#\" data-modal=\"um_upload_single\" data-modal-size=\"{$modal_size}\" data-modal-copy=\"1\" class=\"um-button um-btn-auto-width\">{$button_text}</a>";
2605
  }
2606
  $output .= '</div>';
2607
  /* modal hidden */
@@ -2616,23 +2626,23 @@ if ( ! class_exists( 'um\core\Fields' ) ) {
2616
  $set_mode = '';
2617
  }
2618
  $output .= '<div class="um-single-file-preview">
2619
- <a href="javascript:void(0);" class="cancel"><i class="um-icon-close"></i></a>
2620
- <div class="um-single-fileinfo">
2621
- <a href="" target="_blank">
2622
- <span class="icon"><i></i></span>
2623
- <span class="filename"></span>
2624
- </a>
2625
- </div>
2626
- </div>';
2627
  $nonce = wp_create_nonce( 'um_upload_nonce-' . $this->timestamp );
2628
  $output .= '<div class="um-single-file-upload" data-user_id="' . esc_attr( $_um_profile_id ) . '" data-timestamp="' . esc_attr( $this->timestamp ) . '" data-nonce="' . $nonce . '" data-icon="' . esc_attr( $icon ) . '" data-set_id="' . esc_attr( $set_id ) . '" data-set_mode="' . esc_attr( $set_mode ) . '" data-type="' . esc_attr( $type ) . '" data-key="' . esc_attr( $key ) . '" data-max_size="' . esc_attr( $max_size ) . '" data-max_size_error="' . esc_attr( $max_size_error ) . '" data-min_size_error="' . esc_attr( $min_size_error ) . '" data-extension_error="' . esc_attr( $extension_error ) . '" data-allowed_types="' . esc_attr( $allowed_types ) . '" data-upload_text="' . esc_attr( $upload_text ) . '" data-max_files_error="' . esc_attr( $max_files_error ) . '" data-upload_help_text="' . esc_attr( $upload_help_text ) . '">' . $button_text . '</div>';
2629
  $output .= '<div class="um-modal-footer">
2630
- <div class="um-modal-right">
2631
- <a href="javascript:void(0);" class="um-modal-btn um-finish-upload file disabled" data-key="' . $key . '" data-change="' . __( 'Change file' ) . '" data-processing="' . __( 'Processing...', 'ultimate-member' ) . '"> ' . __( 'Save', 'ultimate-member' ) . '</a>
2632
- <a href="javascript:void(0);" class="um-modal-btn alt" data-action="um_remove_modal"> ' . __( 'Cancel', 'ultimate-member' ) . '</a>
2633
- </div>
2634
- <div class="um-clear"></div>
2635
- </div>';
2636
  $output .= '</div>';
2637
  $output .= '</div>';
2638
  /* end */
@@ -2646,7 +2656,7 @@ if ( ! class_exists( 'um\core\Fields' ) ) {
2646
  /* Select dropdown */
2647
  case 'select':
2648
 
2649
- $output .= '<div class="um-field' . $classes . '"' . $conditional . ' data-key="' . esc_attr( $key ) . '">';
2650
 
2651
  if ( isset( $data['allowclear'] ) && $data['allowclear'] == 0 ) {
2652
  $class = 'um-s2';
@@ -2724,7 +2734,7 @@ if ( ! class_exists( 'um\core\Fields' ) ) {
2724
  if ( $has_parent_option ) {
2725
 
2726
  if ( ! empty( $data['custom_dropdown_options_source'] ) && $has_parent_option &&
2727
- function_exists( $data['custom_dropdown_options_source'] ) && isset( UM()->form()->post_form[ $form_key ] ) ) {
2728
  $options = call_user_func( $data['custom_dropdown_options_source'], $data['parent_dropdown_relationship'] );
2729
  }
2730
  }
@@ -2776,8 +2786,9 @@ if ( ! class_exists( 'um\core\Fields' ) ) {
2776
  * }
2777
  * ?>
2778
  */
2779
- $ajax_source_url = apply_filters( "um_custom_dropdown_options_source_url__{$form_key}", admin_url( 'admin-ajax.php' ), $data );
2780
- $atts_ajax .= ' data-um-ajax-url="' . esc_url( $ajax_source_url ) . '" ';
 
2781
 
2782
  }
2783
 
@@ -2906,7 +2917,7 @@ if ( ! class_exists( 'um\core\Fields' ) ) {
2906
 
2907
 
2908
  if ( ! is_numeric( $k ) && in_array( $form_key, array( 'role' ) ) ||
2909
- ( $this->set_mode == 'account' || um_is_core_page( 'account' ) ) ) {
2910
  $option_value = $k;
2911
  $um_field_checkbox_item_title = $v;
2912
  }
@@ -2953,7 +2964,7 @@ if ( ! class_exists( 'um\core\Fields' ) ) {
2953
 
2954
  $max_selections = ( isset( $max_selections ) ) ? absint( $max_selections ) : 0;
2955
 
2956
- $output .= '<div class="um-field' . $classes . '"' . $conditional . ' data-key="' . esc_attr( $key ) . '">';
2957
 
2958
  if ( isset( $data['allowclear'] ) && $data['allowclear'] == 0 ) {
2959
  $class = 'um-s2';
@@ -3179,7 +3190,7 @@ if ( ! class_exists( 'um\core\Fields' ) ) {
3179
  $options = apply_filters( "um_radio_field_options_{$key}", $options );
3180
  }
3181
 
3182
- $output .= '<div class="um-field' . $classes . '"' . $conditional . ' data-key="' . esc_attr( $key ) . '">';
3183
 
3184
  if ( isset( $data['label'] ) ) {
3185
  $output .= $this->field_label( $label, $key, $data );
@@ -3202,7 +3213,7 @@ if ( ! class_exists( 'um\core\Fields' ) ) {
3202
  $option_value = $v;
3203
 
3204
  if ( ! is_numeric( $k ) && in_array( $form_key, array( 'role' ) ) ||
3205
- ( $this->set_mode == 'account' || um_is_core_page( 'account' ) ) ) {
3206
  $um_field_checkbox_item_title = $v;
3207
  $option_value = $k;
3208
  }
@@ -3317,7 +3328,7 @@ if ( ! class_exists( 'um\core\Fields' ) ) {
3317
  $options = apply_filters( "um_checkbox_field_options_{$key}", $options );
3318
  }
3319
 
3320
- $output .= '<div class="um-field' . $classes . '"' . $conditional . ' data-key="' . esc_attr( $key ) . '">';
3321
 
3322
  if ( isset( $data['label'] ) ) {
3323
  $output .= $this->field_label( $label, $key, $data );
@@ -3418,9 +3429,7 @@ if ( ! class_exists( 'um\core\Fields' ) ) {
3418
 
3419
  /* HTML */
3420
  case 'block':
3421
- $output .= '<div class="um-field' . $classes . '" ' . $conditional . ' data-key="' . esc_attr( $key ) . '">
3422
- <div class="um-field-block">' . $content . '</div>
3423
- </div>';
3424
  break;
3425
 
3426
  /* Shortcode */
@@ -3428,9 +3437,7 @@ if ( ! class_exists( 'um\core\Fields' ) ) {
3428
 
3429
  $content = str_replace( '{profile_id}', um_profile_id(), $content );
3430
 
3431
- $output .= '<div class="um-field' . $classes . '" ' . $conditional . ' data-key="' . esc_attr( $key ) . '">
3432
- <div class="um-field-shortcode">' . do_shortcode( $content ) . '</div>
3433
- </div>';
3434
  break;
3435
 
3436
  /* Unlimited Group */
@@ -3440,8 +3447,8 @@ if ( ! class_exists( 'um\core\Fields' ) ) {
3440
  if ( ! empty( $fields ) ) {
3441
 
3442
  $output .= '<div class="um-field-group" data-max_entries="' . $max_entries . '">
3443
- <div class="um-field-group-head"><i class="um-icon-plus"></i>' . esc_html__( $label, 'ultimate-member' ) . '</div>';
3444
- $output .= '<div class="um-field-group-body"><a href="#" class="um-field-group-cancel"><i class="um-icon-close"></i></a>';
3445
 
3446
  foreach ( $fields as $subkey => $subdata ) {
3447
  $output .= $this->edit_field( $subkey, $subdata, 'group' );
@@ -3790,7 +3797,7 @@ if ( ! class_exists( 'um\core\Fields' ) ) {
3790
  * @throws \Exception
3791
  */
3792
  function view_field( $key, $data, $rule = false ) {
3793
- $output = null;
3794
 
3795
  // get whole field data
3796
  if ( is_array( $data ) ) {
@@ -3817,16 +3824,16 @@ if ( ! class_exists( 'um\core\Fields' ) ) {
3817
 
3818
  //hide if empty type
3819
  if ( ! isset( $data['type'] ) ) {
3820
- return;
3821
  }
3822
 
3823
  if ( isset( $data['in_group'] ) && $data['in_group'] != '' && $rule != 'group' ) {
3824
- return;
3825
  }
3826
 
3827
  //invisible on profile page
3828
  if ( $visibility == 'edit' || $type == 'password' ) {
3829
- return;
3830
  }
3831
 
3832
  //hide if empty
@@ -3835,21 +3842,26 @@ if ( ! class_exists( 'um\core\Fields' ) ) {
3835
  $_field_value = $this->field_value( $key, $default, $data );
3836
 
3837
  if ( ! isset( $_field_value ) || $_field_value == '' ) {
3838
- return;
3839
  }
3840
  }
3841
 
3842
  if ( ! um_can_view_field( $data ) ) {
3843
- return;
3844
  }
3845
 
3846
  // disable these fields in profile view only
3847
  if ( in_array( $key, array( 'user_password' ) ) && $this->set_mode == 'profile' ) {
3848
- return;
3849
  }
3850
 
3851
  if ( ! um_field_conditions_are_met( $data ) ) {
3852
- return;
 
 
 
 
 
3853
  }
3854
 
3855
  switch ( $type ) {
@@ -3857,7 +3869,7 @@ if ( ! class_exists( 'um\core\Fields' ) ) {
3857
  /* Default */
3858
  default:
3859
 
3860
- $output .= '<div class="um-field' . $classes . '"' . $conditional . ' data-key="' . esc_attr( $key ) . '">';
3861
 
3862
  if ( isset( $data['label'] ) || ! empty( $data['icon'] ) ) {
3863
 
@@ -3931,9 +3943,7 @@ if ( ! class_exists( 'um\core\Fields' ) ) {
3931
 
3932
  /* HTML */
3933
  case 'block':
3934
- $output .= '<div class="um-field' . $classes . '" ' . $conditional . ' data-key="' . esc_attr( $key ) . '">
3935
- <div class="um-field-block">' . $content . '</div>
3936
- </div>';
3937
  break;
3938
 
3939
  /* Shortcode */
@@ -3941,20 +3951,18 @@ if ( ! class_exists( 'um\core\Fields' ) ) {
3941
 
3942
  $content = str_replace( '{profile_id}', um_profile_id(), $content );
3943
 
3944
- $output .= '<div class="um-field' . $classes . '" ' . $conditional . ' data-key="' . esc_attr( $key ) . '">
3945
- <div class="um-field-shortcode">' . do_shortcode( $content ) . '</div>
3946
- </div>';
3947
  break;
3948
 
3949
  /* Gap/Space */
3950
  case 'spacing':
3951
- $output .= '<div class="um-field um-field-spacing' . $classes . '" ' . $conditional . ' style="height: ' . esc_attr( $spacing ) . '"></div>';
3952
  break;
3953
 
3954
  /* A line divider */
3955
  case 'divider':
3956
- $output .= '<div class="um-field um-field-divider' . $classes . '" ' . $conditional . ' style="border-bottom: ' . esc_attr( $borderwidth ) . 'px ' . esc_attr( $borderstyle ) . ' ' . esc_attr( $bordercolor ) . '">';
3957
- if ($divider_text) {
3958
  $output .= '<div class="um-field-divider-text"><span>' . $divider_text . '</span></div>';
3959
  }
3960
  $output .= '</div>';
@@ -3963,18 +3971,23 @@ if ( ! class_exists( 'um\core\Fields' ) ) {
3963
  /* Rating */
3964
  case 'rating':
3965
 
3966
- $output .= '<div class="um-field' . $classes . '"' . $conditional . ' data-key="' . esc_attr( $key ) . '">';
3967
 
3968
- if (isset( $data['label'] ) || isset( $data['icon'] ) && !empty( $data['icon'] )) {
3969
  $output .= $this->field_label( $label, $key, $data );
3970
  }
3971
 
3972
- $output .= '<div class="um-field-area">';
3973
- $output .= '<div class="um-field-value">
3974
- <div class="um-rating-readonly um-raty" id="' . esc_attr( $key ) . '" data-key="' . esc_attr( $key ) . '" data-number="' . esc_attr( $data['number'] ) . '" data-score="' . $this->field_value( $key, $default, $data ) . '"></div>
3975
- </div>';
3976
- $output .= '</div>';
 
 
 
 
3977
 
 
3978
  $output .= '</div>';
3979
 
3980
  break;
@@ -4422,5 +4435,79 @@ if ( ! class_exists( 'um\core\Fields' ) ) {
4422
  die;
4423
 
4424
  }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
4425
  }
4426
  }
591
  * @return mixed
592
  */
593
  function field_value( $key, $default = false, $data = null ) {
 
 
 
 
 
 
594
  // preview in backend
595
  if ( isset( UM()->user()->preview ) && UM()->user()->preview ) {
596
+ if ( $this->set_mode == 'login' || $this->set_mode == 'register' ) {
597
+ return '';
 
598
  } else {
599
+ $val = um_user( $key );
600
+ if ( ! empty( $val ) ) {
601
+ return $val;
602
+ } else {
603
+ return '';
604
+ }
605
  }
606
  }
607
 
608
+ if ( isset( $_SESSION ) && isset( $_SESSION['um_social_profile'][ $key ] ) && isset( $this->set_mode ) && $this->set_mode == 'register' ) {
609
+ return $_SESSION['um_social_profile'][ $key ];
610
+ }
611
+
612
+ $type = ( isset( $data['type'] ) ) ? $data['type'] : '';
613
+
614
  // normal state
615
  if ( isset( UM()->form()->post_form[ $key ] ) ) {
616
  //show empty value for password fields
1128
  $arr_options = $opts['options'];
1129
 
1130
  } elseif ( function_exists( $data['custom_dropdown_options_source'] ) ) {
1131
+ if ( isset( $data['parent_dropdown_relationship'] ) ) {
1132
+ $_POST['parent_option_name'] = $data['parent_dropdown_relationship'];
1133
+ $_POST['parent_option'] = um_user( $data['parent_dropdown_relationship'] );
1134
 
1135
+ $arr_options = call_user_func( $data['custom_dropdown_options_source'], $data['parent_dropdown_relationship'] );
1136
+ } else {
1137
+ $arr_options = call_user_func( $data['custom_dropdown_options_source'] );
1138
+ }
1139
  }
1140
 
1141
  if ( $has_custom_source || function_exists( $data['custom_dropdown_options_source'] ) ) {
1188
  if ( in_array( $type, array( 'select', 'multiselect' ) ) && ! empty( $data['custom_dropdown_options_source'] ) ) {
1189
 
1190
  if ( function_exists( $data['custom_dropdown_options_source'] ) ) {
1191
+ if ( isset( $data['parent_dropdown_relationship'] ) ) {
1192
+ $arr_options = call_user_func( $data['custom_dropdown_options_source'], $data['parent_dropdown_relationship'] );
1193
+ } else {
1194
+ $arr_options = call_user_func( $data['custom_dropdown_options_source'] );
1195
+ }
1196
  }
1197
 
1198
  }
1809
  */
1810
  function edit_field( $key, $data, $rule = false, $args = array() ) {
1811
  global $_um_profile_id;
1812
+
1813
+ $output = '';
1814
  $disabled = '';
1815
  if ( empty( $_um_profile_id ) ) {
1816
  $_um_profile_id = um_user( 'ID' );
1817
  }
1818
 
 
1819
  // get whole field data
1820
  if ( isset( $data ) && is_array( $data ) ) {
1821
  $data = $this->get_field( $key );
1837
  * @var boolean $editable
1838
  * @var string $icon
1839
  * @var boolean $in_group
 
1840
  * @var boolean $required
1841
  * @var string $validate
1842
  * @var string $default
1880
  }
1881
 
1882
  if ( ! isset( $data['type'] ) ) {
1883
+ return '';
1884
  }
1885
 
1886
  if ( isset( $data['in_group'] ) && $data['in_group'] != '' && $rule != 'group' ) {
1887
+ return '';
1888
  }
1889
 
1890
+ // forbidden in edit mode? 'edit_forbidden' - it's field attribute predefined in the field data in code
1891
+ if ( isset( $data['edit_forbidden'] ) ) {
1892
+ return '';
1893
+ }
1894
+
1895
+ // required option? 'required_opt' - it's field attribute predefined in the field data in code
1896
+ if ( isset( $data['required_opt'] ) ) {
1897
+ $opt = $data['required_opt'];
1898
+ if ( UM()->options()->get( $opt[0] ) != $opt[1] ) {
1899
+ return '';
1900
+ }
1901
+ }
1902
+
1903
+ // required user permission 'required_perm' - it's field attribute predefined in the field data in code
1904
+ if ( isset( $data['required_perm'] ) ) {
1905
+ if ( ! UM()->roles()->um_user_can( $data['required_perm'] ) ) {
1906
+ return '';
1907
+ }
1908
+ }
1909
+
1910
+ // fields that need to be disabled in edit mode (profile) (email, username, etc.)
1911
+ $arr_restricted_fields = $this->get_restricted_fields_for_edit( $_um_profile_id );
1912
+ if ( in_array( $key, $arr_restricted_fields ) && $this->editing == true && $this->set_mode == 'profile' ) {
1913
+ return '';
1914
+ }
1915
+
1916
+
1917
  if ( $visibility == 'view' && $this->set_mode != 'register' ) {
1918
+ return '';
1919
  }
1920
 
1921
+ if ( ! um_can_view_field( $data ) ) {
1922
+ return '';
1923
+ }
1924
+
1925
+ if ( ! um_can_edit_field( $data ) ) {
1926
+ return '';
1927
+ }
1928
+
1929
+ um_fetch_user( $_um_profile_id );
1930
+
1931
+ // Stop return empty values build field attributes:
1932
+
1933
+ if ( $visibility == 'view' && $this->set_mode == 'register' ) {
1934
 
1935
  um_fetch_user( get_current_user_id() );
1936
  if ( ! um_user( 'can_edit_everyone' ) ) {
1952
  $autocomplete = 'off';
1953
  }
1954
 
1955
+ if ( isset( $data['classes'] ) ) {
1956
+ $classes = explode( " ", $data['classes'] );
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1957
  }
1958
 
1959
+ um_fetch_user( $_um_profile_id );
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1960
 
1961
  /**
1962
  * UM hook
2057
  case 'vimeo_video':
2058
  case 'soundcloud_track':
2059
 
2060
+ $output .= '<div ' . $this->get_atts( $key, $classes, $conditional, $data ) . '>';
2061
 
2062
  if ( isset( $data['label'] ) ) {
2063
  $output .= $this->field_label( $label, $key, $data );
2076
 
2077
  $output .= '<input ' . $disabled . ' class="' . $this->get_class( $key, $data ) . '" type="' . esc_attr( $input ) . '" name="' . esc_attr( $field_name ) . '" id="' . esc_attr( $field_name ) . '" value="' . esc_attr( $field_value ) . '" placeholder="' . esc_attr( $placeholder ) . '" data-validate="' . esc_attr( $validate ) . '" data-key="' . esc_attr( $key ) . '" />
2078
 
2079
+ </div>';
2080
 
2081
  if ( ! empty( $disabled ) ) {
2082
  $output .= $this->disabled_hidden_field( $field_name, $field_value );
2092
  /* Text */
2093
  case 'text':
2094
 
2095
+ $output .= '<div ' . $this->get_atts( $key, $classes, $conditional, $data ) . '>';
2096
 
2097
  if ( isset( $data['label'] ) ) {
2098
  $output .= $this->field_label( $label, $key, $data );
2111
 
2112
  $output .= '<input ' . $disabled . ' autocomplete="' . esc_attr( $autocomplete ) . '" class="' . $this->get_class( $key, $data ) . '" type="' . esc_attr( $input ) . '" name="' . esc_attr( $field_name ) . '" id="' . esc_attr( $field_name ) . '" value="' . esc_attr( $field_value ) . '" placeholder="' . esc_attr( $placeholder ) . '" data-validate="' . esc_attr( $validate ) . '" data-key="' . esc_attr( $key ) . '" />
2113
 
2114
+ </div>';
2115
 
2116
  if ( ! empty( $disabled ) ) {
2117
  $output .= $this->disabled_hidden_field( $field_name, $field_value );
2127
  /* Number */
2128
  case 'number':
2129
 
2130
+ $output .= '<div ' . $this->get_atts( $key, $classes, $conditional, $data ) . '>';
2131
 
2132
  if ( isset( $data['label'] ) ) {
2133
  $output .= $this->field_label( $label, $key, $data );
2151
 
2152
  $output .= '<input ' . $disabled . ' class="' . $this->get_class( $key, $data ) . '" type="number" name="' . esc_attr( $key . UM()->form()->form_suffix ) . '" id="' . esc_attr( $key . UM()->form()->form_suffix ) . '" value="' . esc_attr( htmlspecialchars( $this->field_value( $key, $default, $data ) ) ) . '" placeholder="' . esc_attr( $placeholder ) . '" data-validate="' . esc_attr( $validate ) . '" data-key="' . esc_attr( $key ) . '" ' . $number_limit . ' />
2153
 
2154
+ </div>';
2155
 
2156
  if ( $this->is_error( $key ) ) {
2157
  $output .= $this->field_error( $this->show_error( $key ) );
2169
 
2170
  $key = $original_key;
2171
 
2172
+ $output .= '<div ' . $this->get_atts( $key, $classes, $conditional, $data ) . '>';
2173
 
2174
  if ( isset( $data['label'] ) ) {
2175
  $output .= $this->field_label( $label, $key, $data );
2185
 
2186
  $output .= '<input class="' . $this->get_class( $key, $data ) . '" type="' . esc_attr( $input ) . '" name="' . esc_attr( $key . UM()->form()->form_suffix ) . '" id="' . esc_attr( $key . UM()->form()->form_suffix ) . '" value="' . $this->field_value( $key, $default, $data ) . '" placeholder="' . esc_attr( $placeholder ) . '" data-validate="' . esc_attr( $validate ) . '" data-key="' . esc_attr( $key ) . '" />
2187
 
2188
+ </div>';
2189
 
2190
  if ( $this->is_error( $key ) ) {
2191
  $output .= $this->field_error( $this->show_error( $key ) );
2198
  if ( $this->set_mode == 'account' || um_is_core_page( 'account' ) ) {
2199
 
2200
  $key = 'current_' . $original_key;
2201
+ $output .= '<div ' . $this->get_atts( $key, $classes, $conditional, $data ) . '>';
2202
 
2203
  if ( isset( $data['label'] ) ) {
2204
  $output .= $this->field_label( __( 'Current Password', 'ultimate-member' ), $key, $data );
2214
 
2215
  $output .= '<input class="' . $this->get_class( $key, $data ) . '" type="' . esc_attr( $input ) . '" name="' . esc_attr( $key . UM()->form()->form_suffix ) . '" id="' . esc_attr( $key . UM()->form()->form_suffix ) . '" value="' . $this->field_value( $key, $default, $data ) . '" placeholder="' . esc_attr( $placeholder ) . '" data-validate="' . esc_attr( $validate ) . '" data-key="' . esc_attr( $key ) . '" />
2216
 
2217
+ </div>';
2218
 
2219
  if ( $this->is_error( $key ) ) {
2220
  $output .= $this->field_error( $this->show_error( $key ) );
2226
 
2227
  $key = $original_key;
2228
 
2229
+ $output .= '<div ' . $this->get_atts( $key, $classes, $conditional, $data ) . '>';
2230
 
2231
  if ( $this->set_mode == 'account' && um_is_core_page( 'account' ) || $this->set_mode == 'password' && um_is_core_page( 'password-reset' ) ) {
2232
 
2248
 
2249
  $output .= '<input class="' . $this->get_class( $key, $data ) . '" type="' . esc_attr( $input ) . '" name="' . esc_attr( $key . UM()->form()->form_suffix ) . '" id="' . esc_attr( $key . UM()->form()->form_suffix ) . '" value="' . $this->field_value( $key, $default, $data ) . '" placeholder="' . esc_attr( $placeholder ) . '" data-validate="' . esc_attr( $validate ) . '" data-key="' . esc_attr( $key ) . '" />
2250
 
2251
+ </div>';
2252
 
2253
  if ( $this->is_error( $key ) ) {
2254
  $output .= $this->field_error( $this->show_error( $key ) );
2259
  if ( $this->set_mode != 'login' && isset( $data['force_confirm_pass'] ) && $data['force_confirm_pass'] == 1 ) {
2260
 
2261
  $key = 'confirm_' . $original_key;
2262
+ $output .= '<div ' . $this->get_atts( $key, $classes, $conditional, $data ) . '>';
2263
 
2264
  if ( isset( $data['label'] ) ) {
2265
  $output .= $this->field_label( sprintf( __( 'Confirm %s', 'ultimate-member' ), $data['label'] ), $key, $data );
2275
 
2276
  $output .= '<input class="' . $this->get_class( $key, $data ) . '" type="' . esc_attr( $input ) . '" name="' . esc_attr( $key . UM()->form()->form_suffix ) . '" id="' . esc_attr( $key . UM()->form()->form_suffix ) . '" value="' . $this->field_value( $key, $default, $data ) . '" placeholder="' . esc_attr( $placeholder ) . '" data-validate="' . esc_attr( $validate ) . '" data-key="' . esc_attr( $key ) . '" />
2277
 
2278
+ </div>';
2279
 
2280
  if ( $this->is_error( $key ) ) {
2281
  $output .= $this->field_error( $this->show_error( $key ) );
2292
  /* URL */
2293
  case 'url':
2294
 
2295
+ $output .= '<div ' . $this->get_atts( $key, $classes, $conditional, $data ) . '>';
2296
 
2297
  if ( isset( $data['label'] ) ) {
2298
  $output .= $this->field_label( $label, $key, $data );
2308
 
2309
  $output .= '<input ' . $disabled . ' class="' . $this->get_class( $key, $data ) . '" type="' . esc_attr( $input ) . '" name="' . esc_attr( $key . UM()->form()->form_suffix ) . '" id="' . esc_attr( $key . UM()->form()->form_suffix ) . '" value="' . esc_attr( $this->field_value( $key, $default, $data ) ) . '" placeholder="' . esc_attr( $placeholder ) . '" data-validate="' . esc_attr( $validate ) . '" data-key="' . esc_attr( $key ) . '" />
2310
 
2311
+ </div>';
2312
 
2313
  if ( $this->is_error( $key ) ) {
2314
  $output .= $this->field_error( $this->show_error( $key ) );
2320
  /* Date */
2321
  case 'date':
2322
 
2323
+ $output .= '<div ' . $this->get_atts( $key, $classes, $conditional, $data ) . '>';
2324
 
2325
  if (isset( $data['label'] )) {
2326
  $output .= $this->field_label( $label, $key, $data );
2336
 
2337
  $output .= '<input ' . $disabled . ' class="' . $this->get_class( $key, $data ) . '" type="' . esc_attr( $input ) . '" name="' . esc_attr( $key . UM()->form()->form_suffix ) . '" id="' . esc_attr( $key . UM()->form()->form_suffix ) . '" value="' . $this->field_value( $key, $default, $data ) . '" placeholder="' . esc_attr( $placeholder ) . '" data-validate="' . esc_attr( $validate ) . '" data-key="' . esc_attr( $key ) . '" data-range="' . esc_attr( $range ) . '" data-years="' . esc_attr( $years ) . '" data-years_x="' . esc_attr( $years_x ) . '" data-disabled_weekdays="' . esc_attr( $disabled_weekdays ) . '" data-date_min="' . esc_attr( $date_min ) . '" data-date_max="' . esc_attr( $date_max ) . '" data-format="' . esc_attr( $js_format ) . '" data-value="' . $this->field_value( $key, $default, $data ) . '" />
2338
 
2339
+ </div>';
2340
 
2341
  if ( $this->is_error( $key ) ) {
2342
  $output .= $this->field_error( $this->show_error( $key ) );
2348
  /* Time */
2349
  case 'time':
2350
 
2351
+ $output .= '<div ' . $this->get_atts( $key, $classes, $conditional, $data ) . '>';
2352
 
2353
  if (isset( $data['label'] )) {
2354
  $output .= $this->field_label( $label, $key, $data );
2364
 
2365
  $output .= '<input ' . $disabled . ' class="' . $this->get_class( $key, $data ) . '" type="' . esc_attr( $input ) . '" name="' . esc_attr( $key . UM()->form()->form_suffix ) . '" id="' . esc_attr( $key . UM()->form()->form_suffix ) . '" value="' . $this->field_value( $key, $default, $data ) . '" placeholder="' . esc_attr( $placeholder ) . '" data-validate="' . esc_attr( $validate ) . '" data-key="' . esc_attr( $key ) . '" data-format="' . esc_attr( $js_format ) . '" data-intervals="' . esc_attr( $intervals ) . '" data-value="' . $this->field_value( $key, $default, $data ) . '" />
2366
 
2367
+ </div>';
2368
 
2369
  if ( $this->is_error( $key ) ) {
2370
  $output .= $this->field_error( $this->show_error( $key ) );
2380
 
2381
  /* Textarea */
2382
  case 'textarea':
2383
+ $output .= '<div ' . $this->get_atts( $key, $classes, $conditional, $data ) . '>';
2384
 
2385
  if ( isset( $data['label'] ) ) {
2386
  $output .= $this->field_label( $label, $key, $data );
2435
 
2436
  // add the contents of the buffer to the output variable
2437
  $output .= ob_get_clean();
2438
+ $output .= '<br /><span class="description">' . $placeholder . '</span>';
2439
  } else {
2440
  $output .= '<textarea ' . $disabled . ' style="height: ' . esc_attr( $height ) . ';" class="' . $this->get_class( $key, $data ) . '" name="' . esc_attr( $field_name ) . '" id="' . esc_attr( $field_id ) . '" placeholder="' . esc_attr( $placeholder ) . '">' . esc_textarea( strip_tags( $field_value ) ) . '</textarea>';
2441
  }
2455
 
2456
  /* Rating */
2457
  case 'rating':
2458
+ $output .= '<div ' . $this->get_atts( $key, $classes, $conditional, $data ) . '>';
2459
 
2460
  if ( isset( $data['label'] ) ) {
2461
  $output .= $this->field_label( $label, $key, $data );
2472
 
2473
  /* Gap/Space */
2474
  case 'spacing':
2475
+ $output .= '<div ' . $this->get_atts( $key, $classes, $conditional, $data, array( 'height' => $spacing ) ) . '></div>';
2476
  break;
2477
 
2478
  /* A line divider */
2479
  case 'divider':
2480
+ $output .= '<div ' . $this->get_atts( $key, $classes, $conditional, $data, array( 'border-bottom' => $borderwidth . 'px ' . $borderstyle . ' ' . $bordercolor ) ) . '>';
2481
  if ( $divider_text ) {
2482
  $output .= '<div class="um-field-divider-text"><span>' . esc_html( $divider_text ) . '</span></div>';
2483
  }
2486
 
2487
  /* Single Image Upload */
2488
  case 'image':
2489
+ $output .= '<div ' . $this->get_atts( $key, $classes, $conditional, $data ) . '>';
2490
  if ( in_array( $key, array( 'profile_photo', 'cover_photo' ) ) ) {
2491
  $field_value = '';
2492
  } else {
2516
  $img = '';
2517
  }
2518
  $output .= '<div class="um-single-image-preview show ' . $crop_class . '" data-crop="' . $crop_data . '" data-key="' . $key . '">
2519
+ <a href="javascript:void(0);" class="cancel"><i class="um-icon-close"></i></a>' . $img . '
2520
+ </div><a href="javascript:void(0);" data-modal="um_upload_single" data-modal-size="' . $modal_size . '" data-modal-copy="1" class="um-button um-btn-auto-width">' . __( 'Change photo', 'ultimate-member' ) . '</a>';
2521
  } else {
2522
  $output .= '<div class="um-single-image-preview ' . $crop_class . '" data-crop="' . $crop_data . '" data-key="' . $key . '">
2523
+ <a href="javascript:void(0);" class="cancel"><i class="um-icon-close"></i></a>
2524
+ <img src="" alt="" />
2525
+ <div class="um-clear"></div></div><a href="javascript:void(0);" data-modal="um_upload_single" data-modal-size="' . $modal_size . '" data-modal-copy="1" class="um-button um-btn-auto-width">' . $button_text . '</a>';
2526
  }
2527
  $output .= '</div>';
2528
  /* modal hidden */
2540
  $output .= '<div class="um-single-image-preview ' . $crop_class . '" data-crop="' . $crop_data . '" data-ratio="' . $ratio . '" data-min_width="' . $min_width . '" data-min_height="' . $min_height . '" data-coord=""><a href="javascript:void(0);" class="cancel"><i class="um-icon-close"></i></a><img src="" alt="" /><div class="um-clear"></div></div><div class="um-clear"></div>';
2541
  $output .= '<div class="um-single-image-upload" data-user_id="' . esc_attr( $_um_profile_id ) . '" data-nonce="' . $nonce . '" data-timestamp="' . esc_attr( $this->timestamp ) . '" data-icon="' . esc_attr( $icon ) . '" data-set_id="' . esc_attr( $set_id ) . '" data-set_mode="' . esc_attr( $set_mode ) . '" data-type="' . esc_attr( $type ) . '" data-key="' . esc_attr( $key ) . '" data-max_size="' . esc_attr( $max_size ) . '" data-max_size_error="' . esc_attr( $max_size_error ) . '" data-min_size_error="' . esc_attr( $min_size_error ) . '" data-extension_error="' . esc_attr( $extension_error ) . '" data-allowed_types="' . esc_attr( $allowed_types ) . '" data-upload_text="' . esc_attr( $upload_text ) . '" data-max_files_error="' . esc_attr( $max_files_error ) . '" data-upload_help_text="' . esc_attr( $upload_help_text ) . '">' . $button_text . '</div>';
2542
  $output .= '<div class="um-modal-footer">
2543
+ <div class="um-modal-right">
2544
+ <a href="javascript:void(0);" class="um-modal-btn um-finish-upload image disabled" data-key="' . $key . '" data-change="' . __( 'Change photo', 'ultimate-member' ) . '" data-processing="' . __( 'Processing...', 'ultimate-member' ) . '"> ' . __( 'Apply', 'ultimate-member' ) . '</a>
2545
+ <a href="javascript:void(0);" class="um-modal-btn alt" data-action="um_remove_modal"> ' . __( 'Cancel', 'ultimate-member' ) . '</a>
2546
+ </div>
2547
+ <div class="um-clear"></div>
2548
+ </div>';
2549
  $output .= '</div>';
2550
  $output .= '</div>';
2551
  /* end */
2554
  }
2555
  $output .= '</div>';
2556
 
2557
+ break;
2558
 
2559
  /* Single File Upload */
2560
  case 'file':
2561
+ $output .= '<div ' . $this->get_atts( $key, $classes, $conditional, $data ) . '>';
2562
  $output .= '<input type="hidden" name="' . esc_attr( $key . UM()->form()->form_suffix ) . '" id="' . esc_attr( $key . UM()->form()->form_suffix ) . '" value="' . $this->field_value( $key, $default, $data ) . '" />';
2563
  if (isset( $data['label'] )) {
2564
  $output .= $this->field_label( $label, $key, $data );
2597
 
2598
  if ( file_exists( $file_dir ) ) {
2599
  $output .= "<div class=\"um-single-file-preview show\" data-key=\"{$key}\">
2600
+ <a href=\"#\" class=\"cancel\"><i class=\"um-icon-close\"></i></a>
2601
+ <div class=\"um-single-fileinfo\">
2602
+ <a href=\"{$file_url}\" target=\"_blank\">
2603
+ <span class=\"icon\" style=\"background:" . UM()->files()->get_fonticon_bg_by_ext( $file_type['ext'] ) . "\"><i class=\"" . UM()->files()->get_fonticon_by_ext( $file_type['ext'] ) . "\"></i></span>
2604
+ <span class=\"filename\">{$file_field_name}</span>
2605
+ </a>
2606
+ </div></div>";
2607
  } else {
2608
  $output .= "<div class=\"um-single-file-preview show\" data-key=\"{$key}\">" . __('This file has been removed.','ultimate-member') . "</div>";
2609
  }
2611
  $output .= "<a href=\"#\" data-modal=\"um_upload_single\" data-modal-size=\"{$modal_size}\" data-modal-copy=\"1\" class=\"um-button um-btn-auto-width\">" . __( 'Change file', 'ultimate-member' ) . "</a>";
2612
  } else {
2613
  $output .= "<div class=\"um-single-file-preview\" data-key=\"{$key}\">
2614
+ </div><a href=\"#\" data-modal=\"um_upload_single\" data-modal-size=\"{$modal_size}\" data-modal-copy=\"1\" class=\"um-button um-btn-auto-width\">{$button_text}</a>";
2615
  }
2616
  $output .= '</div>';
2617
  /* modal hidden */
2626
  $set_mode = '';
2627
  }
2628
  $output .= '<div class="um-single-file-preview">
2629
+ <a href="javascript:void(0);" class="cancel"><i class="um-icon-close"></i></a>
2630
+ <div class="um-single-fileinfo">
2631
+ <a href="" target="_blank">
2632
+ <span class="icon"><i></i></span>
2633
+ <span class="filename"></span>
2634
+ </a>
2635
+ </div>
2636
+ </div>';
2637
  $nonce = wp_create_nonce( 'um_upload_nonce-' . $this->timestamp );
2638
  $output .= '<div class="um-single-file-upload" data-user_id="' . esc_attr( $_um_profile_id ) . '" data-timestamp="' . esc_attr( $this->timestamp ) . '" data-nonce="' . $nonce . '" data-icon="' . esc_attr( $icon ) . '" data-set_id="' . esc_attr( $set_id ) . '" data-set_mode="' . esc_attr( $set_mode ) . '" data-type="' . esc_attr( $type ) . '" data-key="' . esc_attr( $key ) . '" data-max_size="' . esc_attr( $max_size ) . '" data-max_size_error="' . esc_attr( $max_size_error ) . '" data-min_size_error="' . esc_attr( $min_size_error ) . '" data-extension_error="' . esc_attr( $extension_error ) . '" data-allowed_types="' . esc_attr( $allowed_types ) . '" data-upload_text="' . esc_attr( $upload_text ) . '" data-max_files_error="' . esc_attr( $max_files_error ) . '" data-upload_help_text="' . esc_attr( $upload_help_text ) . '">' . $button_text . '</div>';
2639
  $output .= '<div class="um-modal-footer">
2640
+ <div class="um-modal-right">
2641
+ <a href="javascript:void(0);" class="um-modal-btn um-finish-upload file disabled" data-key="' . $key . '" data-change="' . __( 'Change file' ) . '" data-processing="' . __( 'Processing...', 'ultimate-member' ) . '"> ' . __( 'Save', 'ultimate-member' ) . '</a>
2642
+ <a href="javascript:void(0);" class="um-modal-btn alt" data-action="um_remove_modal"> ' . __( 'Cancel', 'ultimate-member' ) . '</a>
2643
+ </div>
2644
+ <div class="um-clear"></div>
2645
+ </div>';
2646
  $output .= '</div>';
2647
  $output .= '</div>';
2648
  /* end */
2656
  /* Select dropdown */
2657
  case 'select':
2658
 
2659
+ $output .= '<div ' . $this->get_atts( $key, $classes, $conditional, $data ) . '>';
2660
 
2661
  if ( isset( $data['allowclear'] ) && $data['allowclear'] == 0 ) {
2662
  $class = 'um-s2';
2734
  if ( $has_parent_option ) {
2735
 
2736
  if ( ! empty( $data['custom_dropdown_options_source'] ) && $has_parent_option &&
2737
+ function_exists( $data['custom_dropdown_options_source'] ) && isset( UM()->form()->post_form[ $form_key ] ) ) {
2738
  $options = call_user_func( $data['custom_dropdown_options_source'], $data['parent_dropdown_relationship'] );
2739
  }
2740
  }
2786
  * }
2787
  * ?>
2788
  */
2789
+ // todo maybe deprecate
2790
+ // $ajax_source_url = apply_filters( "um_custom_dropdown_options_source_url__{$form_key}", admin_url( 'admin-ajax.php' ), $data );
2791
+ // $atts_ajax .= ' data-um-ajax-url="' . esc_url( $ajax_source_url ) . '" ';
2792
 
2793
  }
2794
 
2917
 
2918
 
2919
  if ( ! is_numeric( $k ) && in_array( $form_key, array( 'role' ) ) ||
2920
+ ( $this->set_mode == 'account' || um_is_core_page( 'account' ) ) ) {
2921
  $option_value = $k;
2922
  $um_field_checkbox_item_title = $v;
2923
  }
2964
 
2965
  $max_selections = ( isset( $max_selections ) ) ? absint( $max_selections ) : 0;
2966
 
2967
+ $output .= '<div ' . $this->get_atts( $key, $classes, $conditional, $data ) . '>';
2968
 
2969
  if ( isset( $data['allowclear'] ) && $data['allowclear'] == 0 ) {
2970
  $class = 'um-s2';
3190
  $options = apply_filters( "um_radio_field_options_{$key}", $options );
3191
  }
3192
 
3193
+ $output .= '<div ' . $this->get_atts( $key, $classes, $conditional, $data ) . '>';
3194
 
3195
  if ( isset( $data['label'] ) ) {
3196
  $output .= $this->field_label( $label, $key, $data );
3213
  $option_value = $v;
3214
 
3215
  if ( ! is_numeric( $k ) && in_array( $form_key, array( 'role' ) ) ||
3216
+ ( $this->set_mode == 'account' || um_is_core_page( 'account' ) ) ) {
3217
  $um_field_checkbox_item_title = $v;
3218
  $option_value = $k;
3219
  }
3328
  $options = apply_filters( "um_checkbox_field_options_{$key}", $options );
3329
  }
3330
 
3331
+ $output .= '<div ' . $this->get_atts( $key, $classes, $conditional, $data ) . '>';
3332
 
3333
  if ( isset( $data['label'] ) ) {
3334
  $output .= $this->field_label( $label, $key, $data );
3429
 
3430
  /* HTML */
3431
  case 'block':
3432
+ $output .= '<div ' . $this->get_atts( $key, $classes, $conditional, $data ) . '>' . $content . '</div>';
 
 
3433
  break;
3434
 
3435
  /* Shortcode */
3437
 
3438
  $content = str_replace( '{profile_id}', um_profile_id(), $content );
3439
 
3440
+ $output .= '<div ' . $this->get_atts( $key, $classes, $conditional, $data ) . '>' . do_shortcode( $content ) . '</div>';
 
 
3441
  break;
3442
 
3443
  /* Unlimited Group */
3447
  if ( ! empty( $fields ) ) {
3448
 
3449
  $output .= '<div class="um-field-group" data-max_entries="' . $max_entries . '">
3450
+ <div class="um-field-group-head"><i class="um-icon-plus"></i>' . esc_html__( $label, 'ultimate-member' ) . '</div>';
3451
+ $output .= '<div class="um-field-group-body"><a href="javascript:void(0);" class="um-field-group-cancel"><i class="um-icon-close"></i></a>';
3452
 
3453
  foreach ( $fields as $subkey => $subdata ) {
3454
  $output .= $this->edit_field( $subkey, $subdata, 'group' );
3797
  * @throws \Exception
3798
  */
3799
  function view_field( $key, $data, $rule = false ) {
3800
+ $output = '';
3801
 
3802
  // get whole field data
3803
  if ( is_array( $data ) ) {
3824
 
3825
  //hide if empty type
3826
  if ( ! isset( $data['type'] ) ) {
3827
+ return '';
3828
  }
3829
 
3830
  if ( isset( $data['in_group'] ) && $data['in_group'] != '' && $rule != 'group' ) {
3831
+ return '';
3832
  }
3833
 
3834
  //invisible on profile page
3835
  if ( $visibility == 'edit' || $type == 'password' ) {
3836
+ return '';
3837
  }
3838
 
3839
  //hide if empty
3842
  $_field_value = $this->field_value( $key, $default, $data );
3843
 
3844
  if ( ! isset( $_field_value ) || $_field_value == '' ) {
3845
+ return '';
3846
  }
3847
  }
3848
 
3849
  if ( ! um_can_view_field( $data ) ) {
3850
+ return '';
3851
  }
3852
 
3853
  // disable these fields in profile view only
3854
  if ( in_array( $key, array( 'user_password' ) ) && $this->set_mode == 'profile' ) {
3855
+ return '';
3856
  }
3857
 
3858
  if ( ! um_field_conditions_are_met( $data ) ) {
3859
+ return '';
3860
+ }
3861
+
3862
+
3863
+ if ( isset( $data['classes'] ) ) {
3864
+ $classes = explode( " ", $data['classes'] );
3865
  }
3866
 
3867
  switch ( $type ) {
3869
  /* Default */
3870
  default:
3871
 
3872
+ $output .= '<div ' . $this->get_atts( $key, $classes, $conditional, $data ) . '>';
3873
 
3874
  if ( isset( $data['label'] ) || ! empty( $data['icon'] ) ) {
3875
 
3943
 
3944
  /* HTML */
3945
  case 'block':
3946
+ $output .= '<div ' . $this->get_atts( $key, $classes, $conditional, $data ) . '>' . $content . '</div>';
 
 
3947
  break;
3948
 
3949
  /* Shortcode */
3951
 
3952
  $content = str_replace( '{profile_id}', um_profile_id(), $content );
3953
 
3954
+ $output .= '<div ' . $this->get_atts( $key, $classes, $conditional, $data ) . '>' . do_shortcode( $content ) . '</div>';
 
 
3955
  break;
3956
 
3957
  /* Gap/Space */
3958
  case 'spacing':
3959
+ $output .= '<div ' . $this->get_atts( $key, $classes, $conditional, $data, array( 'height' => $spacing ) ) . '></div>';
3960
  break;
3961
 
3962
  /* A line divider */
3963
  case 'divider':
3964
+ $output .= '<div ' . $this->get_atts( $key, $classes, $conditional, $data, array( 'border-bottom' => $borderwidth . 'px ' . $borderstyle . ' ' . $bordercolor ) ) . '>';
3965
+ if ( $divider_text ) {
3966
  $output .= '<div class="um-field-divider-text"><span>' . $divider_text . '</span></div>';
3967
  }
3968
  $output .= '</div>';
3971
  /* Rating */
3972
  case 'rating':
3973
 
3974
+ $output .= '<div ' . $this->get_atts( $key, $classes, $conditional, $data ) . '>';
3975
 
3976
+ if ( isset( $data['label'] ) || ! empty( $data['icon'] ) ) {
3977
  $output .= $this->field_label( $label, $key, $data );
3978
  }
3979
 
3980
+ ob_start(); ?>
3981
+
3982
+ <div class="um-field-area">
3983
+ <div class="um-field-value">
3984
+ <div class="um-rating-readonly um-raty" id="<?php echo esc_attr( $key ) ?>"
3985
+ data-key="<?php echo esc_attr( $key ) ?>" data-number="<?php echo esc_attr( $data['number'] ) ?>"
3986
+ data-score="<?php echo $this->field_value( $key, $default, $data ) ?>"></div>
3987
+ </div>
3988
+ </div>
3989
 
3990
+ <?php $output .= ob_get_clean();
3991
  $output .= '</div>';
3992
 
3993
  break;
4435
  die;
4436
 
4437
  }
4438
+
4439
+
4440
+
4441
+ /**
4442
+ * Get rendered field attributes
4443
+ *
4444
+ * @since 2.1.2
4445
+ *
4446
+ * @param string $key
4447
+ * @param array $classes
4448
+ * @param string $conditional
4449
+ * @param array $data
4450
+ * @param array $field_style
4451
+ *
4452
+ * @return string/html
4453
+ */
4454
+ function get_atts( $key, $classes, $conditional, $data, $field_style = array() ) {
4455
+
4456
+ array_unshift( $classes, 'um-field-' . $data['type'] );
4457
+ array_unshift( $classes, 'um-field' );
4458
+
4459
+ $field_atts = array(
4460
+ 'id' => array(
4461
+ "um_field_{$this->set_id}_{$key}",
4462
+ ),
4463
+ 'class' => $classes,
4464
+ 'data-key' => array(
4465
+ esc_attr( $key )
4466
+ )
4467
+ );
4468
+
4469
+ if ( ! empty( $field_style ) && is_array( $field_style ) ) {
4470
+
4471
+ $arr_inline_style = '';
4472
+ foreach ( $field_style as $style_attr => $style_value ) {
4473
+ $arr_inline_style .= esc_attr( $style_attr ) . ':' . esc_attr( $style_value ) . ';';
4474
+ }
4475
+ $field_atts['style'] = array( $arr_inline_style );
4476
+ }
4477
+
4478
+ /**
4479
+ * UM hook
4480
+ *
4481
+ * @type filter
4482
+ * @title um_field_extra_atts
4483
+ * @description user for adding extra field attributes
4484
+ * @input_vars
4485
+ * [{"var":"$field_atts","type":"array","desc":"Field attributes"},
4486
+ * [{"var":"$key","type":"string","desc":"Field id"},
4487
+ * {"var":"$data","type":"array","desc":"Field Data"}]
4488
+ * @change_log
4489
+ * ["Since: 2.0.57"]
4490
+ * @usage add_filter( 'um_field_extra_atts', 'function_name', 10, 3 );
4491
+ * @example
4492
+ * <?php
4493
+ * add_filter( 'um_field_extra_atts', 'function_name', 10, 3 );
4494
+ * function function_name( $field_atts, $key, $data ) {
4495
+ * // your code here
4496
+ * return $array_extra_atts;
4497
+ * }
4498
+ * ?>
4499
+ */
4500
+ $field_atts = apply_filters( 'um_field_extra_atts', $field_atts, $key, $data );
4501
+
4502
+ $html_atts = '';
4503
+ foreach ( $field_atts as $att_name => $att_values ) {
4504
+ $att_values = implode( " ", $att_values );
4505
+ $html_atts .= " {$att_name}=\"" . esc_attr( $att_values ) . "\"";
4506
+ }
4507
+
4508
+ $html_atts .= $conditional;
4509
+
4510
+ return $html_atts;
4511
+ }
4512
  }
4513
  }
includes/core/class-form.php CHANGED
@@ -105,8 +105,25 @@ if ( ! class_exists( 'um\core\Form' ) ) {
105
 
106
  if ( $arr_options['post']['members_directory'] == 'yes' ) {
107
  $ajax_source_func = $_POST['child_callback'];
108
- if( function_exists( $ajax_source_func ) ){
109
- $arr_options['items'] = call_user_func( $ajax_source_func, $arr_options['field']['parent_dropdown_relationship'] );
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
110
  wp_send_json( $arr_options );
111
  }
112
  } else {
105
 
106
  if ( $arr_options['post']['members_directory'] == 'yes' ) {
107
  $ajax_source_func = $_POST['child_callback'];
108
+ if ( function_exists( $ajax_source_func ) ) {
109
+ $arr_options['items'] = call_user_func( $ajax_source_func, $arr_options['field']['parent_dropdown_relationship'] );
110
+
111
+ global $wpdb;
112
+
113
+ $values_array = $wpdb->get_col( $wpdb->prepare(
114
+ "SELECT DISTINCT meta_value
115
+ FROM $wpdb->usermeta
116
+ WHERE meta_key = %s AND
117
+ meta_value != ''",
118
+ $arr_options['post']['child_name']
119
+ ) );
120
+
121
+ if ( ! empty( $values_array ) ) {
122
+ $arr_options['items'] = array_intersect( $arr_options['items'], $values_array );
123
+ } else {
124
+ $arr_options['items'] = array();
125
+ }
126
+
127
  wp_send_json( $arr_options );
128
  }
129
  } else {
includes/core/class-member-directory.php CHANGED
@@ -51,12 +51,7 @@ if ( ! class_exists( 'um\core\Member_Directory' ) ) {
51
  var $filter_supported_fields = array();
52
 
53
 
54
- var $filter_types = array(
55
- // 'select',
56
- // 'slider',
57
- // 'datepicker',
58
- // 'timepicker',
59
- );
60
 
61
 
62
  var $core_search_fields = array(
@@ -86,6 +81,12 @@ if ( ! class_exists( 'um\core\Member_Directory' ) ) {
86
  var $avatar_size;
87
 
88
 
 
 
 
 
 
 
89
  /**
90
  * Member_Directory constructor.
91
  */
@@ -240,10 +241,12 @@ if ( ! class_exists( 'um\core\Member_Directory' ) ) {
240
  'user_registered_desc' => __( 'New users first', 'ultimate-member' ),
241
  'user_registered_asc' => __( 'Old users first', 'ultimate-member' ),
242
  'username' => __( 'Username', 'ultimate-member' ),
 
243
  'first_name' => __( 'First name', 'ultimate-member' ),
244
  'last_name' => __( 'Last name', 'ultimate-member' ),
245
  'display_name' => __( 'Display name', 'ultimate-member' ),
246
  'last_login' => __( 'Last login', 'ultimate-member' ),
 
247
  ) );
248
 
249
  asort( $this->sort_fields );
@@ -257,19 +260,31 @@ if ( ! class_exists( 'um\core\Member_Directory' ) ) {
257
 
258
  // Filters
259
  $this->filter_fields = array(
260
- 'country' => __( 'Country', 'ultimate-member' ),
261
- 'gender' => __( 'Gender', 'ultimate-member' ),
262
- 'languages' => __( 'Languages', 'ultimate-member' ),
263
- 'role' => __( 'Roles', 'ultimate-member' ),
264
- 'birth_date' => __( 'Age', 'ultimate-member' ),
265
- 'last_login' => __( 'Last Login', 'ultimate-member' ),
266
- 'user_registered' => __( 'User Registered', 'ultimate-member' ),
 
 
 
 
 
 
 
267
  );
268
 
269
- $this->filter_supported_fields = apply_filters( 'um_members_directory_custom_field_types_supported_filter', array( 'date', 'time', 'select', 'multiselect', 'radio', 'checkbox', 'rating' ) );
270
 
271
  if ( ! empty( UM()->builtin()->saved_fields ) ) {
272
  foreach ( UM()->builtin()->saved_fields as $key => $data ) {
 
 
 
 
 
273
  if ( isset( $data['type'] ) && in_array( $data['type'], $this->filter_supported_fields ) ) {
274
  if ( isset( $data['title'] ) && array_search( $data['title'], $this->filter_fields ) !== false ) {
275
  $data['title'] = $data['title'] . ' (' . $key . ')';
@@ -296,13 +311,20 @@ if ( ! class_exists( 'um\core\Member_Directory' ) ) {
296
  */
297
  function init_filter_types() {
298
  $this->filter_types = apply_filters( 'um_members_directory_filter_types', array(
299
- 'country' => 'select',
300
- 'gender' => 'select',
301
- 'languages' => 'select',
302
- 'role' => 'select',
303
- 'birth_date' => 'slider',
304
- 'last_login' => 'datepicker',
305
- 'user_registered' => 'datepicker',
 
 
 
 
 
 
 
306
  ) );
307
 
308
  $fields = UM()->builtin()->all_user_fields;
@@ -316,6 +338,10 @@ if ( ! class_exists( 'um\core\Member_Directory' ) ) {
316
  default:
317
  $value = apply_filters( 'um_custom_field_filter_type', 'select', $fields[ $key ] );
318
  break;
 
 
 
 
319
  case 'date':
320
  $value = 'datepicker';
321
  break;
@@ -392,6 +418,11 @@ if ( ! class_exists( 'um\core\Member_Directory' ) ) {
392
  $attrs = apply_filters( "um_custom_search_field_{$filter}", array(), $field_key );
393
  }
394
 
 
 
 
 
 
395
  /**
396
  * UM hook
397
  *
@@ -426,11 +457,57 @@ if ( ! class_exists( 'um\core\Member_Directory' ) ) {
426
 
427
  break;
428
  }
 
 
 
 
 
 
 
 
 
429
  case 'select': {
430
 
431
  // getting value from GET line
432
  $filter_from_url = ! empty( $_GET[ 'filter_' . $filter . '_' . $unique_hash ] ) ? explode( '||', sanitize_text_field( $_GET[ 'filter_' . $filter . '_' . $unique_hash ] ) ) : array();
433
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
434
  if ( isset( $attrs['metakey'] ) && strstr( $attrs['metakey'], 'role_' ) ) {
435
  $shortcode_roles = get_post_meta( $directory_data['form_id'], '_um_roles', true );
436
  $um_roles = UM()->roles()->get_roles( false );
@@ -446,58 +523,85 @@ if ( ! class_exists( 'um\core\Member_Directory' ) ) {
446
  }
447
  }
448
 
 
449
  if ( ! empty( $attrs['custom_dropdown_options_source'] ) ) {
450
  $attrs['custom'] = true;
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
451
  $attrs['options'] = UM()->fields()->get_options_from_callback( $attrs, $attrs['type'] );
452
  }
453
 
454
- if ( isset( $attrs['label'] ) ) {
455
- $attrs['label'] = strip_tags( $attrs['label'] );
 
 
 
 
456
  }
457
 
458
- if ( isset( $attrs['options'] ) && is_array( $attrs['options'] ) ) {
459
- asort( $attrs['options'] );
 
 
 
460
  }
461
 
462
- $custom_dropdown = ! empty( $attrs['custom_dropdown_options_source'] ) ? ' data-um-ajax-source="' . $attrs['custom_dropdown_options_source'] . '"' : '';
 
 
463
 
464
- if ( ! empty( $attrs['options'] ) || ! empty( $custom_dropdown ) ) { ?>
 
 
465
 
466
- <select class="um-s1" id="<?php echo $filter; ?>" name="<?php echo $filter; ?>"
467
- data-placeholder="<?php esc_attr_e( stripslashes( $attrs['label'] ), 'ultimate-member' ); ?>"
468
- <?php echo $custom_dropdown; ?>>
469
 
470
- <option></option>
 
 
471
 
472
- <?php if ( ! empty( $attrs['options'] ) ) {
473
- foreach ( $attrs['options'] as $k => $v ) {
474
 
475
- $v = stripslashes( $v );
 
476
 
477
- $opt = $v;
478
 
479
- if ( strstr( $filter, 'role_' ) ) {
480
- $opt = $k;
481
- }
482
 
483
- if ( isset( $attrs['custom'] ) ) {
484
- $opt = $k;
485
- } ?>
486
 
487
- <option value="<?php echo esc_attr( $opt ); ?>" data-value_label="<?php esc_attr_e( $v, 'ultimate-member' ); ?>"
488
- <?php disabled( ! empty( $filter_from_url ) && in_array( $opt, $filter_from_url ) ) ?>
489
- <?php selected( $opt == $default_value ) ?>>
490
- <?php _e( $v, 'ultimate-member' ); ?>
491
- </option>
492
 
493
- <?php }
494
- } ?>
 
 
 
495
 
496
- </select>
 
497
 
498
- <?php }
499
 
500
- break;
501
  }
502
  case 'slider': {
503
  $range = $this->slider_filters_range( $filter, $directory_data );
@@ -1022,7 +1126,7 @@ if ( ! class_exists( 'um\core\Member_Directory' ) ) {
1022
  $this->query_args['order'] = 'ASC';
1023
  }
1024
 
1025
- } elseif ( in_array( $sortby, array( 'last_name', 'first_name' ) ) ) {
1026
 
1027
  $this->query_args['meta_query'] = array_merge( $this->query_args['meta_query'], array( $sortby . '_c' => array(
1028
  'key' => $sortby,
@@ -1110,25 +1214,22 @@ if ( ! class_exists( 'um\core\Member_Directory' ) ) {
1110
  }
1111
 
1112
  // Reset seed on load of initial
1113
- if ( ! isset( $_REQUEST['members_page'] ) || $_REQUEST['members_page'] == 0 || $_REQUEST['members_page'] == 1 ) {
1114
- if ( isset( $_SESSION['seed'] ) ) {
1115
- unset( $_SESSION['seed'] );
1116
- }
1117
  }
1118
 
1119
  // Get seed from session variable if it exists
1120
  $seed = false;
1121
- if ( isset( $_SESSION['seed'] ) ) {
1122
- $seed = $_SESSION['seed'];
1123
  }
1124
 
1125
  // Set new seed if none exists
1126
  if ( ! $seed ) {
1127
  $seed = rand();
1128
- $_SESSION['seed'] = $seed;
1129
  }
1130
 
1131
-
1132
  $query->query_orderby = 'ORDER by RAND(' . $seed . ')';
1133
  }
1134
 
@@ -1164,6 +1265,8 @@ if ( ! class_exists( 'um\core\Member_Directory' ) ) {
1164
  $meta_query = apply_filters( 'um_member_directory_general_search_meta_query', $meta_query, $_POST['search'] );
1165
 
1166
  $this->query_args['meta_query'][] = $meta_query;
 
 
1167
  }
1168
  }
1169
 
@@ -1199,9 +1302,20 @@ if ( ! class_exists( 'um\core\Member_Directory' ) ) {
1199
  if ( isset( $join_matches[1] ) ) {
1200
  $meta_join_for_search = trim( $join_matches[1] );
1201
 
 
 
 
 
 
 
 
 
 
 
 
1202
  $sql['join'] = preg_replace(
1203
  '/(' . $meta_join_for_search . ' ON \( ' . $wpdb->users . '\.ID = ' . $meta_join_for_search . '\.user_id )(\))/im',
1204
- "$1 AND " . $meta_join_for_search . ".meta_key IN( '" . implode( "','", array_keys( UM()->builtin()->all_user_fields ) ) . "' ) $2",
1205
  $sql['join']
1206
  );
1207
  }
@@ -1244,8 +1358,15 @@ if ( ! class_exists( 'um\core\Member_Directory' ) ) {
1244
  return;
1245
  }
1246
 
 
1247
  foreach ( $filter_query as $field => $value ) {
1248
 
 
 
 
 
 
 
1249
  switch ( $field ) {
1250
  default:
1251
 
@@ -1282,11 +1403,30 @@ if ( ! class_exists( 'um\core\Member_Directory' ) ) {
1282
  $field_query = apply_filters( "um_query_args_{$field}_{$filter_type}__filter", false, $field, $value, $filter_type );
1283
 
1284
  break;
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1285
  case 'select':
1286
  if ( is_array( $value ) ) {
1287
  $field_query = array( 'relation' => 'OR' );
1288
 
1289
  foreach ( $value as $single_val ) {
 
 
1290
  $arr_meta_query = array(
1291
  array(
1292
  'key' => $field,
@@ -1343,6 +1483,9 @@ if ( ! class_exists( 'um\core\Member_Directory' ) ) {
1343
 
1344
  $from_date = (int) min( $value ) + ( $offset * HOUR_IN_SECONDS ); // client time zone offset
1345
  $to_date = (int) max( $value ) + ( $offset * HOUR_IN_SECONDS ) + DAY_IN_SECONDS - 1; // time 23:59
 
 
 
1346
  $field_query = array(
1347
  'key' => $field,
1348
  'value' => array( $from_date, $to_date ),
@@ -1733,7 +1876,17 @@ if ( ! class_exists( 'um\core\Member_Directory' ) ) {
1733
  $current_page = ! empty( $_POST['page'] ) ? $_POST['page'] : 1;
1734
 
1735
  $total_users = ( ! empty( $directory_data['max_users'] ) && $directory_data['max_users'] <= $result->total_users ) ? $directory_data['max_users'] : $result->total_users;
1736
- $total_pages = ceil( $total_users / $directory_data['profiles_per_page'] );
 
 
 
 
 
 
 
 
 
 
1737
 
1738
  if ( ! empty( $total_pages ) ) {
1739
  $index1 = 0 - ( $current_page - 2 ) + 1;
@@ -2051,7 +2204,8 @@ if ( ! class_exists( 'um\core\Member_Directory' ) ) {
2051
  * @title um_user_before_query
2052
  * @description Action before users query on member directory
2053
  * @input_vars
2054
- * [{"var":"$query_args","type":"array","desc":"Query arguments"}]
 
2055
  * @change_log
2056
  * ["Since: 2.0"]
2057
  * @usage add_action( 'um_user_before_query', 'function_name', 10, 1 );
@@ -2063,7 +2217,7 @@ if ( ! class_exists( 'um\core\Member_Directory' ) ) {
2063
  * }
2064
  * ?>
2065
  */
2066
- do_action( 'um_user_before_query', $this->query_args );
2067
 
2068
  add_filter( 'get_meta_sql', array( &$this, 'change_meta_sql' ), 10, 6 );
2069
 
@@ -2122,7 +2276,8 @@ if ( ! class_exists( 'um\core\Member_Directory' ) ) {
2122
 
2123
 
2124
  $sizes = UM()->options()->get( 'cover_thumb_sizes' );
2125
- $this->cover_size = UM()->mobile()->isTablet() ? $sizes[1] : $sizes[0];
 
2126
 
2127
  $avatar_size = UM()->options()->get( 'profile_photosize' );
2128
  $this->avatar_size = str_replace( 'px', '', $avatar_size );
@@ -2135,7 +2290,7 @@ if ( ! class_exists( 'um\core\Member_Directory' ) ) {
2135
  um_reset_user();
2136
  // end of user card
2137
 
2138
- wp_send_json_success( array( 'pagination' => $pagination_data, 'users' => $users ) );
2139
  }
2140
 
2141
 
51
  var $filter_supported_fields = array();
52
 
53
 
54
+ var $filter_types = array();
 
 
 
 
 
55
 
56
 
57
  var $core_search_fields = array(
81
  var $avatar_size;
82
 
83
 
84
+ /**
85
+ * @var bool Searching marker
86
+ */
87
+ var $is_search = false;
88
+
89
+
90
  /**
91
  * Member_Directory constructor.
92
  */
241
  'user_registered_desc' => __( 'New users first', 'ultimate-member' ),
242
  'user_registered_asc' => __( 'Old users first', 'ultimate-member' ),
243
  'username' => __( 'Username', 'ultimate-member' ),
244
+ 'nickname' => __( 'Nickname', 'ultimate-member' ),
245
  'first_name' => __( 'First name', 'ultimate-member' ),
246
  'last_name' => __( 'Last name', 'ultimate-member' ),
247
  'display_name' => __( 'Display name', 'ultimate-member' ),
248
  'last_login' => __( 'Last login', 'ultimate-member' ),
249
+
250
  ) );
251
 
252
  asort( $this->sort_fields );
260
 
261
  // Filters
262
  $this->filter_fields = array(
263
+ 'country' => __( 'Country', 'ultimate-member' ),
264
+ 'gender' => __( 'Gender', 'ultimate-member' ),
265
+ 'languages' => __( 'Languages', 'ultimate-member' ),
266
+ 'role' => __( 'Roles', 'ultimate-member' ),
267
+ 'birth_date' => __( 'Age', 'ultimate-member' ),
268
+ 'last_login' => __( 'Last Login', 'ultimate-member' ),
269
+ 'user_registered' => __( 'User Registered', 'ultimate-member' ),
270
+ 'first_name' => __( 'First Name', 'ultimate-member' ),
271
+ 'last_name' => __( 'Last Name', 'ultimate-member' ),
272
+ 'nickname' => __( 'Nickname', 'ultimate-member' ),
273
+ 'secondary_user_email' => __( 'Secondary E-mail Address', 'ultimate-member' ),
274
+ 'description' => __( 'Biography', 'ultimate-member' ),
275
+ 'phone_number' => __( 'Phone Number', 'ultimate-member' ),
276
+ 'mobile_number' => __( 'Mobile Number', 'ultimate-member' ),
277
  );
278
 
279
+ $this->filter_supported_fields = apply_filters( 'um_members_directory_custom_field_types_supported_filter', array( 'date', 'time', 'select', 'multiselect', 'radio', 'checkbox', 'rating', 'text', 'textarea' ) );
280
 
281
  if ( ! empty( UM()->builtin()->saved_fields ) ) {
282
  foreach ( UM()->builtin()->saved_fields as $key => $data ) {
283
+
284
+ if ( $key == '_um_last_login' ) {
285
+ continue;
286
+ }
287
+
288
  if ( isset( $data['type'] ) && in_array( $data['type'], $this->filter_supported_fields ) ) {
289
  if ( isset( $data['title'] ) && array_search( $data['title'], $this->filter_fields ) !== false ) {
290
  $data['title'] = $data['title'] . ' (' . $key . ')';
311
  */
312
  function init_filter_types() {
313
  $this->filter_types = apply_filters( 'um_members_directory_filter_types', array(
314
+ 'country' => 'select',
315
+ 'gender' => 'select',
316
+ 'languages' => 'select',
317
+ 'role' => 'select',
318
+ 'birth_date' => 'slider',
319
+ 'last_login' => 'datepicker',
320
+ 'user_registered' => 'datepicker',
321
+ 'first_name' => 'text',
322
+ 'last_name' => 'text',
323
+ 'nickname' => 'text',
324
+ 'secondary_user_email' => 'text',
325
+ 'description' => 'text',
326
+ 'phone_number' => 'text',
327
+ 'mobile_number' => 'text',
328
  ) );
329
 
330
  $fields = UM()->builtin()->all_user_fields;
338
  default:
339
  $value = apply_filters( 'um_custom_field_filter_type', 'select', $fields[ $key ] );
340
  break;
341
+ case 'text':
342
+ case 'textarea':
343
+ $value = 'text';
344
+ break;
345
  case 'date':
346
  $value = 'datepicker';
347
  break;
418
  $attrs = apply_filters( "um_custom_search_field_{$filter}", array(), $field_key );
419
  }
420
 
421
+ // skip private invisible fields
422
+ if ( ! um_can_view_field( $attrs ) ) {
423
+ return '';
424
+ }
425
+
426
  /**
427
  * UM hook
428
  *
457
 
458
  break;
459
  }
460
+ case 'text': {
461
+ $filter_from_url = ! empty( $_GET[ 'filter_' . $filter . '_' . $unique_hash ] ) ? $_GET[ 'filter_' . $filter . '_' . $unique_hash ] : ''; ?>
462
+
463
+ <input type="text" autocomplete="off" id="<?php echo $filter; ?>" name="<?php echo $filter; ?>"
464
+ placeholder="<?php esc_attr_e( stripslashes( $attrs['label'] ), 'ultimate-member' ); ?>"
465
+ value="<?php echo esc_attr( $filter_from_url ) ?>" class="um-form-field" />
466
+
467
+ <?php break;
468
+ }
469
  case 'select': {
470
 
471
  // getting value from GET line
472
  $filter_from_url = ! empty( $_GET[ 'filter_' . $filter . '_' . $unique_hash ] ) ? explode( '||', sanitize_text_field( $_GET[ 'filter_' . $filter . '_' . $unique_hash ] ) ) : array();
473
 
474
+ // new
475
+ global $wpdb;
476
+
477
+ if ( $attrs['metakey'] != 'role_select' ) {
478
+ $values_array = $wpdb->get_col(
479
+ $wpdb->prepare(
480
+ "SELECT DISTINCT meta_value
481
+ FROM $wpdb->usermeta
482
+ WHERE meta_key = %s AND
483
+ meta_value != ''",
484
+ $attrs['metakey']
485
+ )
486
+ );
487
+ } else {
488
+ $users_roles = count_users();
489
+ $values_array = ( ! empty( $users_roles['avail_roles'] ) && is_array( $users_roles['avail_roles'] ) ) ? array_keys( array_filter( $users_roles['avail_roles'] ) ) : array();
490
+ }
491
+
492
+ if ( ! empty( $values_array ) && in_array( $attrs['type'], array( 'select','multiselect', 'checkbox', 'radio' ) ) ) {
493
+ $values_array = array_map( 'maybe_unserialize', $values_array );
494
+ $temp_values = array();
495
+ foreach ( $values_array as $values ) {
496
+ if ( is_array( $values ) ) {
497
+ $temp_values = array_merge( $temp_values, $values );
498
+ } else {
499
+ $temp_values[] = $values;
500
+ }
501
+ }
502
+ $values_array = array_unique( $temp_values );
503
+ }
504
+
505
+ if ( empty( $values_array ) ) {
506
+ ob_get_clean();
507
+ return '';
508
+ }
509
+
510
+ // old
511
  if ( isset( $attrs['metakey'] ) && strstr( $attrs['metakey'], 'role_' ) ) {
512
  $shortcode_roles = get_post_meta( $directory_data['form_id'], '_um_roles', true );
513
  $um_roles = UM()->roles()->get_roles( false );
523
  }
524
  }
525
 
526
+ $custom_dropdown = '';
527
  if ( ! empty( $attrs['custom_dropdown_options_source'] ) ) {
528
  $attrs['custom'] = true;
529
+
530
+ if ( ! empty( $attrs['parent_dropdown_relationship'] ) ) {
531
+
532
+ $custom_dropdown .= ' data-member-directory="yes"';
533
+ $custom_dropdown .= ' data-um-parent="' . esc_attr( $attrs['parent_dropdown_relationship'] ) . '"';
534
+
535
+ if ( isset( $_GET[ 'filter_' . $attrs['parent_dropdown_relationship'] . '_' . $unique_hash ] ) ) {
536
+ $_POST['parent_option_name'] = $attrs['parent_dropdown_relationship'];
537
+ $_POST['parent_option'] = explode( '||', filter_input( INPUT_GET, 'filter_' . $attrs['parent_dropdown_relationship'] . '_' . $unique_hash ) );
538
+ }
539
+ }
540
+
541
+ $ajax_source = apply_filters( "um_custom_dropdown_options_source__{$filter}", $attrs['custom_dropdown_options_source'], $attrs );
542
+ $custom_dropdown .= ' data-um-ajax-source="' . esc_attr( $ajax_source ) . '" ';
543
+
544
  $attrs['options'] = UM()->fields()->get_options_from_callback( $attrs, $attrs['type'] );
545
  }
546
 
547
+ if ( $attrs['metakey'] != 'role_select' && empty( $custom_dropdown ) ) {
548
+ $attrs['options'] = array_intersect( $attrs['options'], $values_array );
549
+ } elseif ( ! empty( $custom_dropdown ) ) {
550
+ $attrs['options'] = array_intersect_key( $attrs['options'], array_flip( $values_array ) );
551
+ } else {
552
+ $attrs['options'] = array_intersect_key( $attrs['options'], array_flip( $values_array ) );
553
  }
554
 
555
+ $attrs['options'] = apply_filters( 'um_member_directory_filter_select_options', $attrs['options'], $values_array, $attrs );
556
+
557
+ if ( empty( $attrs['options'] ) || ! is_array( $attrs['options'] ) ) {
558
+ ob_get_clean();
559
+ return '';
560
  }
561
 
562
+ if ( ! empty( $attrs['custom_dropdown_options_source'] ) && ! empty( $attrs['parent_dropdown_relationship'] ) ) {
563
+ $attrs['options'] = array();
564
+ }
565
 
566
+ if ( isset( $attrs['label'] ) ) {
567
+ $attrs['label'] = strip_tags( $attrs['label'] );
568
+ }
569
 
570
+ ksort( $attrs['options'] ); ?>
 
 
571
 
572
+ <select class="um-s1" id="<?php echo esc_attr( $filter ); ?>" name="<?php echo esc_attr( $filter ); ?>"
573
+ data-placeholder="<?php esc_attr_e( stripslashes( $attrs['label'] ), 'ultimate-member' ); ?>"
574
+ <?php echo $custom_dropdown; ?>>
575
 
576
+ <option></option>
 
577
 
578
+ <?php if ( ! empty( $attrs['options'] ) ) {
579
+ foreach ( $attrs['options'] as $k => $v ) {
580
 
581
+ $v = stripslashes( $v );
582
 
583
+ $opt = $v;
 
 
584
 
585
+ if ( strstr( $filter, 'role_' ) || $filter == 'role' ) {
586
+ $opt = $k;
587
+ }
588
 
589
+ if ( isset( $attrs['custom'] ) ) {
590
+ $opt = $k;
591
+ } ?>
 
 
592
 
593
+ <option value="<?php echo esc_attr( $opt ); ?>" data-value_label="<?php esc_attr_e( $v, 'ultimate-member' ); ?>"
594
+ <?php disabled( ! empty( $filter_from_url ) && in_array( $opt, $filter_from_url ) ) ?>
595
+ <?php selected( $opt === $default_value ) ?>>
596
+ <?php _e( $v, 'ultimate-member' ); ?>
597
+ </option>
598
 
599
+ <?php }
600
+ } ?>
601
 
602
+ </select>
603
 
604
+ <?php break;
605
  }
606
  case 'slider': {
607
  $range = $this->slider_filters_range( $filter, $directory_data );
1126
  $this->query_args['order'] = 'ASC';
1127
  }
1128
 
1129
+ } elseif ( in_array( $sortby, array( 'last_name', 'first_name', 'nickname' ) ) ) {
1130
 
1131
  $this->query_args['meta_query'] = array_merge( $this->query_args['meta_query'], array( $sortby . '_c' => array(
1132
  'key' => $sortby,
1214
  }
1215
 
1216
  // Reset seed on load of initial
1217
+ if ( empty( $_REQUEST['directory_id'] ) && isset( $_SESSION['um_member_directory_seed'] ) ) {
1218
+ unset( $_SESSION['um_member_directory_seed'] );
 
 
1219
  }
1220
 
1221
  // Get seed from session variable if it exists
1222
  $seed = false;
1223
+ if ( isset( $_SESSION['um_member_directory_seed'] ) ) {
1224
+ $seed = $_SESSION['um_member_directory_seed'];
1225
  }
1226
 
1227
  // Set new seed if none exists
1228
  if ( ! $seed ) {
1229
  $seed = rand();
1230
+ $_SESSION['um_member_directory_seed'] = $seed;
1231
  }
1232
 
 
1233
  $query->query_orderby = 'ORDER by RAND(' . $seed . ')';
1234
  }
1235
 
1265
  $meta_query = apply_filters( 'um_member_directory_general_search_meta_query', $meta_query, $_POST['search'] );
1266
 
1267
  $this->query_args['meta_query'][] = $meta_query;
1268
+
1269
+ $this->is_search = true;
1270
  }
1271
  }
1272
 
1302
  if ( isset( $join_matches[1] ) ) {
1303
  $meta_join_for_search = trim( $join_matches[1] );
1304
 
1305
+ // skip private invisible fields
1306
+ $custom_fields = array();
1307
+ foreach ( array_keys( UM()->builtin()->all_user_fields ) as $field_key ) {
1308
+ $data = UM()->fields()->get_field( $field_key );
1309
+ if ( ! um_can_view_field( $data ) ) {
1310
+ continue;
1311
+ }
1312
+
1313
+ $custom_fields[] = $field_key;
1314
+ }
1315
+
1316
  $sql['join'] = preg_replace(
1317
  '/(' . $meta_join_for_search . ' ON \( ' . $wpdb->users . '\.ID = ' . $meta_join_for_search . '\.user_id )(\))/im',
1318
+ "$1 AND " . $meta_join_for_search . ".meta_key IN( '" . implode( "','", $custom_fields ) . "' ) $2",
1319
  $sql['join']
1320
  );
1321
  }
1358
  return;
1359
  }
1360
 
1361
+ $this->is_search = true;
1362
  foreach ( $filter_query as $field => $value ) {
1363
 
1364
+ $attrs = UM()->fields()->get_field( $field );
1365
+ // skip private invisible fields
1366
+ if ( ! um_can_view_field( $attrs ) ) {
1367
+ continue;
1368
+ }
1369
+
1370
  switch ( $field ) {
1371
  default:
1372
 
1403
  $field_query = apply_filters( "um_query_args_{$field}_{$filter_type}__filter", false, $field, $value, $filter_type );
1404
 
1405
  break;
1406
+ case 'text':
1407
+
1408
+ $value = stripslashes( $value );
1409
+
1410
+ $field_query = array(
1411
+ 'relation' => 'OR',
1412
+ array(
1413
+ 'key' => $field,
1414
+ 'value' => trim( $value ),
1415
+ 'compare' => 'LIKE',
1416
+ ),
1417
+ );
1418
+
1419
+ $this->custom_filters_in_query[ $field ] = $value;
1420
+
1421
+ break;
1422
+
1423
  case 'select':
1424
  if ( is_array( $value ) ) {
1425
  $field_query = array( 'relation' => 'OR' );
1426
 
1427
  foreach ( $value as $single_val ) {
1428
+ $single_val = stripslashes( $single_val );
1429
+
1430
  $arr_meta_query = array(
1431
  array(
1432
  'key' => $field,
1483
 
1484
  $from_date = (int) min( $value ) + ( $offset * HOUR_IN_SECONDS ); // client time zone offset
1485
  $to_date = (int) max( $value ) + ( $offset * HOUR_IN_SECONDS ) + DAY_IN_SECONDS - 1; // time 23:59
1486
+ $from_date = date( 'Y/m/d', $from_date );
1487
+ $to_date = date( 'Y/m/d', $to_date );
1488
+
1489
  $field_query = array(
1490
  'key' => $field,
1491
  'value' => array( $from_date, $to_date ),
1876
  $current_page = ! empty( $_POST['page'] ) ? $_POST['page'] : 1;
1877
 
1878
  $total_users = ( ! empty( $directory_data['max_users'] ) && $directory_data['max_users'] <= $result->total_users ) ? $directory_data['max_users'] : $result->total_users;
1879
+
1880
+ // number of profiles for mobile
1881
+ $profiles_per_page = $directory_data['profiles_per_page'];
1882
+ if ( UM()->mobile()->isMobile() && isset( $directory_data['profiles_per_page_mobile'] ) ) {
1883
+ $profiles_per_page = $directory_data['profiles_per_page_mobile'];
1884
+ }
1885
+
1886
+ $total_pages = 1;
1887
+ if ( ! empty( $profiles_per_page ) ) {
1888
+ $total_pages = ceil( $total_users / $profiles_per_page );
1889
+ }
1890
 
1891
  if ( ! empty( $total_pages ) ) {
1892
  $index1 = 0 - ( $current_page - 2 ) + 1;
2204
  * @title um_user_before_query
2205
  * @description Action before users query on member directory
2206
  * @input_vars
2207
+ * [{"var":"$query_args","type":"array","desc":"Query arguments"},
2208
+ * {"var":"$md_class","type":"um\core\Member_Directory","desc":"Member Directory class"}]
2209
  * @change_log
2210
  * ["Since: 2.0"]
2211
  * @usage add_action( 'um_user_before_query', 'function_name', 10, 1 );
2217
  * }
2218
  * ?>
2219
  */
2220
+ do_action( 'um_user_before_query', $this->query_args, $this );
2221
 
2222
  add_filter( 'get_meta_sql', array( &$this, 'change_meta_sql' ), 10, 6 );
2223
 
2276
 
2277
 
2278
  $sizes = UM()->options()->get( 'cover_thumb_sizes' );
2279
+
2280
+ $this->cover_size = UM()->mobile()->isTablet() ? $sizes[1] : end( $sizes );
2281
 
2282
  $avatar_size = UM()->options()->get( 'profile_photosize' );
2283
  $this->avatar_size = str_replace( 'px', '', $avatar_size );
2290
  um_reset_user();
2291
  // end of user card
2292
 
2293
+ wp_send_json_success( array( 'pagination' => $pagination_data, 'users' => $users, 'is_search' => $this->is_search ) );
2294
  }
2295
 
2296
 
includes/core/class-plugin-updater.php CHANGED
@@ -28,6 +28,9 @@ if ( ! class_exists( 'um\core\Plugin_Updater' ) ) {
28
 
29
  //cron request to UM()->store_url;
30
  add_action( 'um_check_extensions_licenses', array( &$this, 'um_checklicenses' ) );
 
 
 
31
 
32
  //update plugin info
33
  add_filter( 'pre_set_site_transient_update_plugins', array( &$this, 'check_update' ) );
@@ -36,6 +39,22 @@ if ( ! class_exists( 'um\core\Plugin_Updater' ) ) {
36
  add_filter( 'plugins_api', array( &$this, 'plugin_information' ), 9999, 3 );
37
  }
38
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
39
 
40
  /**
41
  * Get all paid UM extensions
@@ -105,7 +124,7 @@ if ( ! class_exists( 'um\core\Plugin_Updater' ) ) {
105
  'title' => 'User Tags',
106
  ),
107
  'um-verified-users/um-verified-users.php' => array(
108
- 'key' => 'verified_users',
109
  'title' => 'Verified Users',
110
  ),
111
  'um-woocommerce/um-woocommerce.php' => array(
@@ -337,7 +356,11 @@ if ( ! class_exists( 'um\core\Plugin_Updater' ) ) {
337
  continue;
338
  }
339
 
340
- $plugin_data = get_plugin_data( WP_PLUGIN_DIR . DIRECTORY_SEPARATOR . $slug );
 
 
 
 
341
 
342
  $version_info = $this->get_cached_version_info( $slug );
343
  if ( false === $version_info ) {
28
 
29
  //cron request to UM()->store_url;
30
  add_action( 'um_check_extensions_licenses', array( &$this, 'um_checklicenses' ) );
31
+
32
+ // clean update plugin cache
33
+ add_action( 'upgrader_process_complete', array( &$this, 'clean_update_plugins_cache' ), 20, 2 );
34
 
35
  //update plugin info
36
  add_filter( 'pre_set_site_transient_update_plugins', array( &$this, 'check_update' ) );
39
  add_filter( 'plugins_api', array( &$this, 'plugin_information' ), 9999, 3 );
40
  }
41
 
42
+
43
+ /**
44
+ * This action is documented in wp-admin/includes/class-wp-upgrader.php
45
+ *
46
+ * @see file /wp-admin/includes/class-plugin-upgrader.php method bulk_upgrade()
47
+ * @since 2.1.1 [2019-11-15]
48
+ *
49
+ * @param \Plugin_Upgrader $updater
50
+ * @param array $action
51
+ */
52
+ public function clean_update_plugins_cache( $updater, $action = array() ) {
53
+ if ( is_a( $updater, 'Plugin_Upgrader' ) && isset( $updater->result ) && isset( $updater->result['destination_name'] ) && strpos( $updater->result['destination_name'], 'um-' ) === 0 && $action['action'] === 'update' && $action['action'] === 'plugin' ) {
54
+ wp_clean_plugins_cache( true );
55
+ }
56
+ }
57
+
58
 
59
  /**
60
  * Get all paid UM extensions
124
  'title' => 'User Tags',
125
  ),
126
  'um-verified-users/um-verified-users.php' => array(
127
+ 'key' => 'verified',
128
  'title' => 'Verified Users',
129
  ),
130
  'um-woocommerce/um-woocommerce.php' => array(
356
  continue;
357
  }
358
 
359
+ $path = wp_normalize_path( WP_PLUGIN_DIR . DIRECTORY_SEPARATOR . $slug );
360
+ if ( ! file_exists( $path ) ) {
361
+ continue;
362
+ }
363
+ $plugin_data = get_plugin_data( $path );
364
 
365
  $version_info = $this->get_cached_version_info( $slug );
366
  if ( false === $version_info ) {
includes/core/class-shortcodes.php CHANGED
@@ -136,6 +136,10 @@ if ( ! class_exists( 'um\core\Shortcodes' ) ) {
136
  function display_logout_form( $args ) {
137
  if ( is_user_logged_in() && isset( $args['mode'] ) && $args['mode'] == 'login' ) {
138
 
 
 
 
 
139
  if ( get_current_user_id() != um_user( 'ID' ) ) {
140
  um_fetch_user( get_current_user_id() );
141
  }
136
  function display_logout_form( $args ) {
137
  if ( is_user_logged_in() && isset( $args['mode'] ) && $args['mode'] == 'login' ) {
138
 
139
+ if ( isset( UM()->user()->preview ) && UM()->user()->preview ) {
140
+ return $args;
141
+ }
142
+
143
  if ( get_current_user_id() != um_user( 'ID' ) ) {
144
  um_fetch_user( get_current_user_id() );
145
  }
includes/core/class-user.php CHANGED
@@ -1118,6 +1118,8 @@ if ( ! class_exists( 'um\core\User' ) ) {
1118
  * @type action
1119
  * @title um_after_user_status_is_changed_hook
1120
  * @description Action after user status changed
 
 
1121
  * @change_log
1122
  * ["Since: 2.0"]
1123
  * @usage add_action( 'um_after_user_status_is_changed_hook', 'function_name', 10 );
@@ -1129,7 +1131,7 @@ if ( ! class_exists( 'um\core\User' ) ) {
1129
  * }
1130
  * ?>
1131
  */
1132
- do_action( 'um_after_user_status_is_changed_hook' );
1133
 
1134
  /**
1135
  * UM hook
@@ -1138,7 +1140,8 @@ if ( ! class_exists( 'um\core\User' ) ) {
1138
  * @title um_after_user_status_is_changed
1139
  * @description Action after user status changed
1140
  * @input_vars
1141
- * [{"var":"$status","type":"string","desc":"User Status"}]
 
1142
  * @change_log
1143
  * ["Since: 2.0"]
1144
  * @usage add_action( 'um_after_user_status_is_changed', 'function_name', 10, 1 );
@@ -1150,7 +1153,7 @@ if ( ! class_exists( 'um\core\User' ) ) {
1150
  * }
1151
  * ?>
1152
  */
1153
- do_action( 'um_after_user_status_is_changed', $status );
1154
 
1155
  }
1156
 
1118
  * @type action
1119
  * @title um_after_user_status_is_changed_hook
1120
  * @description Action after user status changed
1121
+ * @input_vars
1122
+ * [{"var":"$user_id","type":"int","desc":"User ID"}]
1123
  * @change_log
1124
  * ["Since: 2.0"]
1125
  * @usage add_action( 'um_after_user_status_is_changed_hook', 'function_name', 10 );
1131
  * }
1132
  * ?>
1133
  */
1134
+ do_action( 'um_after_user_status_is_changed_hook', um_user( 'ID' ) );
1135
 
1136
  /**
1137
  * UM hook
1140
  * @title um_after_user_status_is_changed
1141
  * @description Action after user status changed
1142
  * @input_vars
1143
+ * [{"var":"$status","type":"string","desc":"User Status"},
1144
+ * {"var":"$user_id","type":"integer","desc":"User ID"}]
1145
  * @change_log
1146
  * ["Since: 2.0"]
1147
  * @usage add_action( 'um_after_user_status_is_changed', 'function_name', 10, 1 );
1153
  * }
1154
  * ?>
1155
  */
1156
+ do_action( 'um_after_user_status_is_changed', $status, um_user( 'ID' ) );
1157
 
1158
  }
1159
 
includes/core/um-actions-account.php CHANGED
@@ -161,22 +161,24 @@ function um_submit_account_details( $args ) {
161
 
162
  $current_tab = isset( $_POST['_um_account_tab'] ) ? $_POST['_um_account_tab']: '';
163
 
 
 
164
  //change password account's tab
165
  if ( 'password' == $current_tab && $_POST['user_password'] && $_POST['confirm_user_password'] ) {
166
 
167
  $changes['user_pass'] = $_POST['user_password'];
168
 
169
- $args['user_id'] = um_user('ID');
170
 
171
  UM()->user()->password_changed();
172
 
173
  add_filter( 'send_password_change_email', '__return_false' );
174
 
175
  //clear all sessions with old passwords
176
- $user = WP_Session_Tokens::get_instance( um_user( 'ID' ) );
177
  $user->destroy_all();
178
 
179
- wp_set_password( $changes['user_pass'], um_user( 'ID' ) );
180
 
181
  wp_signon( array( 'user_login' => um_user( 'user_login' ), 'user_password' => $changes['user_pass'] ) );
182
  }
@@ -215,7 +217,7 @@ function um_submit_account_details( $args ) {
215
  * }
216
  * ?>
217
  */
218
- $redirect_url = apply_filters( 'um_delete_account_redirect_url', um_user( 'delete_redirect_url' ), um_user( 'ID' ) );
219
  exit( wp_redirect( $redirect_url ) );
220
  } else {
221
  um_redirect_home();
@@ -225,7 +227,7 @@ function um_submit_account_details( $args ) {
225
 
226
  $arr_fields = array();
227
  if ( UM()->account()->is_secure_enabled() ) {
228
- $account_fields = get_user_meta( um_user( 'ID' ), 'um_account_secure_fields', true );
229
 
230
  /**
231
  * UM hook
@@ -249,7 +251,7 @@ function um_submit_account_details( $args ) {
249
  * }
250
  * ?>
251
  */
252
- $secure_fields = apply_filters( 'um_secure_account_fields', $account_fields, um_user( 'ID' ) );
253
 
254
  if ( isset( $secure_fields[ $current_tab ] ) && is_array( $secure_fields[ $current_tab ] ) ) {
255
  $arr_fields = array_merge( $arr_fields, $secure_fields[ $current_tab ] );
@@ -266,7 +268,7 @@ function um_submit_account_details( $args ) {
266
  }
267
 
268
  if ( isset( $changes['hide_in_members'] ) && ( $changes['hide_in_members'] == __( 'No', 'ultimate-member' ) || $changes['hide_in_members'] == 'No' ) ) {
269
- delete_user_meta( um_user( 'ID' ), 'hide_in_members' );
270
  unset( $changes['hide_in_members'] );
271
  }
272
 
@@ -313,13 +315,13 @@ function um_submit_account_details( $args ) {
313
  * }
314
  * ?>
315
  */
316
- do_action( 'um_account_pre_update_profile', $changes, um_user( 'ID' ) );
317
 
318
  UM()->user()->update_profile( $changes );
319
 
320
 
321
  if ( UM()->account()->is_secure_enabled() ) {
322
- update_user_meta( um_user( 'ID' ), 'um_account_secure_fields', array() );
323
  }
324
 
325
  /**
@@ -360,7 +362,7 @@ function um_submit_account_details( $args ) {
360
  * }
361
  * ?>
362
  */
363
- do_action( 'um_after_user_account_updated', get_current_user_id(), $changes );
364
 
365
  $url = '';
366
  if ( um_is_core_page( 'account' ) ) {
@@ -420,12 +422,7 @@ function um_before_account_notifications( $args = array() ) {
420
  $output = UM()->account()->get_tab_fields( 'notifications', $args );
421
  if ( substr_count( $output, '_enable_new_' ) ) { ?>
422
 
423
- <div class="um-field">
424
- <div class="um-field-label">
425
- <label for=""><?php _e( 'Email me when', 'ultimate-member' ); ?></label>
426
- <div class="um-clear"></div>
427
- </div>
428
- </div>
429
 
430
  <?php }
431
  }
161
 
162
  $current_tab = isset( $_POST['_um_account_tab'] ) ? $_POST['_um_account_tab']: '';
163
 
164
+ $user_id = um_user('ID');
165
+
166
  //change password account's tab
167
  if ( 'password' == $current_tab && $_POST['user_password'] && $_POST['confirm_user_password'] ) {
168
 
169
  $changes['user_pass'] = $_POST['user_password'];
170
 
171
+ $args['user_id'] = $user_id;
172
 
173
  UM()->user()->password_changed();
174
 
175
  add_filter( 'send_password_change_email', '__return_false' );
176
 
177
  //clear all sessions with old passwords
178
+ $user = WP_Session_Tokens::get_instance( $user_id );
179
  $user->destroy_all();
180
 
181
+ wp_set_password( $changes['user_pass'], $user_id );
182
 
183
  wp_signon( array( 'user_login' => um_user( 'user_login' ), 'user_password' => $changes['user_pass'] ) );
184
  }
217
  * }
218
  * ?>
219
  */
220
+ $redirect_url = apply_filters( 'um_delete_account_redirect_url', um_user( 'delete_redirect_url' ), $user_id );
221
  exit( wp_redirect( $redirect_url ) );
222
  } else {
223
  um_redirect_home();
227
 
228
  $arr_fields = array();
229
  if ( UM()->account()->is_secure_enabled() ) {
230
+ $account_fields = get_user_meta( $user_id, 'um_account_secure_fields', true );
231
 
232
  /**
233
  * UM hook
251
  * }
252
  * ?>
253
  */
254
+ $secure_fields = apply_filters( 'um_secure_account_fields', $account_fields, $user_id );
255
 
256
  if ( isset( $secure_fields[ $current_tab ] ) && is_array( $secure_fields[ $current_tab ] ) ) {
257
  $arr_fields = array_merge( $arr_fields, $secure_fields[ $current_tab ] );
268
  }
269
 
270
  if ( isset( $changes['hide_in_members'] ) && ( $changes['hide_in_members'] == __( 'No', 'ultimate-member' ) || $changes['hide_in_members'] == 'No' ) ) {
271
+ delete_user_meta( $user_id, 'hide_in_members' );
272
  unset( $changes['hide_in_members'] );
273
  }
274
 
315
  * }
316
  * ?>
317
  */
318
+ do_action( 'um_account_pre_update_profile', $changes, $user_id );
319
 
320
  UM()->user()->update_profile( $changes );
321
 
322
 
323
  if ( UM()->account()->is_secure_enabled() ) {
324
+ update_user_meta( $user_id, 'um_account_secure_fields', array() );
325
  }
326
 
327
  /**
362
  * }
363
  * ?>
364
  */
365
+ do_action( 'um_after_user_account_updated', $user_id, $changes );
366
 
367
  $url = '';
368
  if ( um_is_core_page( 'account' ) ) {
422
  $output = UM()->account()->get_tab_fields( 'notifications', $args );
423
  if ( substr_count( $output, '_enable_new_' ) ) { ?>
424
 
425
+ <p><?php _e( 'Select what email notifications do you want to receive', 'ultimate-member' ); ?></p>
 
 
 
 
 
426
 
427
  <?php }
428
  }
includes/core/um-actions-form.php CHANGED
@@ -261,7 +261,21 @@ function um_submit_form_errors_hook( $args ) {
261
  add_action( 'um_submit_form_errors_hook', 'um_submit_form_errors_hook', 10 );
262
 
263
 
264
- function um_check_conditions_on_submit( $condition, $fields, $args ) {
 
 
 
 
 
 
 
 
 
 
 
 
 
 
265
  $continue = false;
266
 
267
  list( $visibility, $parent_key, $op, $parent_value ) = $condition;
@@ -273,7 +287,11 @@ function um_check_conditions_on_submit( $condition, $fields, $args ) {
273
 
274
  if ( ! empty( $fields[ $parent_key ]['conditions'] ) ) {
275
  foreach ( $fields[ $parent_key ]['conditions'] as $parent_condition ) {
276
- $continue = um_check_conditions_on_submit( $parent_condition, $fields, $args );
 
 
 
 
277
  if ( ! empty( $continue ) ) {
278
  return $continue;
279
  }
@@ -411,11 +429,19 @@ function um_submit_form_errors_hook_( $args ) {
411
  $array = apply_filters( 'um_get_custom_field_array', $array, $fields );
412
 
413
  if ( ! empty( $array['conditions'] ) ) {
414
- foreach ( $array['conditions'] as $condition ) {
415
- $continue = um_check_conditions_on_submit( $condition, $fields, $args );
416
- if ( $continue === true ) {
417
- continue 2;
 
 
418
  }
 
 
 
 
 
 
419
  }
420
  }
421
 
@@ -714,6 +740,17 @@ function um_submit_form_errors_hook_( $args ) {
714
 
715
  }
716
 
 
 
 
 
 
 
 
 
 
 
 
717
  break;
718
 
719
  case 'unique_value':
261
  add_action( 'um_submit_form_errors_hook', 'um_submit_form_errors_hook', 10 );
262
 
263
 
264
+ /**
265
+ * Error processing: Conditions
266
+ * @staticvar int $counter
267
+ * @param array $condition
268
+ * @param array $fields
269
+ * @param array $args
270
+ * @param boolean $reset
271
+ * @return boolean
272
+ * @throws Exception
273
+ */
274
+ function um_check_conditions_on_submit( $condition, $fields, $args, $reset = false ) {
275
+ static $counter = 0;
276
+ if ( $reset ) {
277
+ $counter = 0;
278
+ }
279
  $continue = false;
280
 
281
  list( $visibility, $parent_key, $op, $parent_value ) = $condition;
287
 
288
  if ( ! empty( $fields[ $parent_key ]['conditions'] ) ) {
289
  foreach ( $fields[ $parent_key ]['conditions'] as $parent_condition ) {
290
+ if ( 64 > $counter++ ) {
291
+ $continue = um_check_conditions_on_submit( $parent_condition, $fields, $args );
292
+ } else {
293
+ throw new Exception( 'Endless recursion in the function ' . __FUNCTION__, 512 );
294
+ }
295
  if ( ! empty( $continue ) ) {
296
  return $continue;
297
  }
429
  $array = apply_filters( 'um_get_custom_field_array', $array, $fields );
430
 
431
  if ( ! empty( $array['conditions'] ) ) {
432
+ try {
433
+ foreach ( $array['conditions'] as $condition ) {
434
+ $continue = um_check_conditions_on_submit( $condition, $fields, $args, true );
435
+ if ( $continue === true ) {
436
+ continue 2;
437
+ }
438
  }
439
+ } catch ( Exception $e ) {
440
+ UM()->form()->add_error( $key, sprintf( __( '%s - wrong conditions.', 'ultimate-member' ), $array['title'] ) );
441
+ $notice = '<div class="um-field-error">' . sprintf( __( '%s - wrong conditions.', 'ultimate-member' ), $array['title'] ) . '</div><!-- ' . $e->getMessage() . ' -->';
442
+ add_action( 'um_after_profile_fields', function() use ( $notice ) {
443
+ echo $notice;
444
+ }, 900 );
445
  }
446
  }
447
 
740
 
741
  }
742
 
743
+ break;
744
+
745
+ case 'is_email':
746
+
747
+ $args[ $key ] = trim( $args[ $key ] );
748
+
749
+ if ( $args[ $key ] != '' && !is_email( $args[ $key ] ) ) {
750
+ UM()->form()->add_error( $key, __('This is not a valid email','ultimate-member') );
751
+ }
752
+
753
+
754
  break;
755
 
756
  case 'unique_value':
includes/core/um-actions-login.php CHANGED
@@ -324,11 +324,6 @@ add_action( 'um_submit_form_login', 'um_submit_form_login', 10 );
324
  * @param $args
325
  */
326
  function um_add_submit_button_to_login( $args ) {
327
- // DO NOT add when reviewing user's details
328
- if ( UM()->user()->preview == true && is_admin() ) {
329
- return;
330
- }
331
-
332
  /**
333
  * UM hook
334
  *
324
  * @param $args
325
  */
326
  function um_add_submit_button_to_login( $args ) {
 
 
 
 
 
327
  /**
328
  * UM hook
329
  *
includes/core/um-actions-profile.php CHANGED
@@ -236,7 +236,29 @@ function um_user_edit_profile( $args ) {
236
 
237
  foreach ( $fields as $key => $array ) {
238
 
239
- if ( ! um_can_edit_field( $array ) && isset( $array['editable'] ) && ! $array['editable'] ) {
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
240
  continue;
241
  }
242
 
@@ -292,7 +314,7 @@ function um_user_edit_profile( $args ) {
292
 
293
  //update empty user meta
294
  if ( ! isset( $args['submitted'][ $key ] ) || $args['submitted'][ $key ] == '' ) {
295
- update_user_meta( um_user( 'ID' ), $key, '' );
296
  }
297
  }
298
 
@@ -306,7 +328,7 @@ function um_user_edit_profile( $args ) {
306
 
307
  // update empty user meta
308
  if ( ! isset( $args['submitted'][ $key ] ) || $args['submitted'][ $key ] == '' ) {
309
- update_user_meta( um_user( 'ID' ), $key, array() );
310
  }
311
  }
312
 
@@ -314,10 +336,10 @@ function um_user_edit_profile( $args ) {
314
 
315
  if ( isset( $array['type'] ) && in_array( $array['type'], array( 'image', 'file' ) ) ) {
316
 
317
- if ( /*um_is_file_owner( UM()->uploader()->get_upload_base_url() . um_user( 'ID' ) . '/' . $args['submitted'][ $key ], um_user( 'ID' ) ) ||*/ um_is_temp_file( $args['submitted'][ $key ] ) || $args['submitted'][ $key ] == 'empty_file' ) {
318
  $files[ $key ] = $args['submitted'][ $key ];
319
- } elseif( um_is_file_owner( UM()->uploader()->get_upload_base_url() . um_user( 'ID' ) . '/' . $args['submitted'][ $key ], um_user( 'ID' ) ) ) {
320
- /*$files[ $key ] = 'empty_file';*/
321
  } else {
322
  $files[ $key ] = 'empty_file';
323
  }
@@ -356,7 +378,7 @@ function um_user_edit_profile( $args ) {
356
  $to_update['role'] = $args['submitted']['role'];
357
  }
358
 
359
- $args['roles_before_upgrade'] = UM()->roles()->get_all_user_roles( um_user( 'ID' ) );
360
  }
361
 
362
  /**
@@ -366,19 +388,20 @@ function um_user_edit_profile( $args ) {
366
  * @title um_user_pre_updating_profile
367
  * @description Some actions before profile submit
368
  * @input_vars
369
- * [{"var":"$userinfo","type":"array","desc":"Submitted User Data"}]
 
370
  * @change_log
371
  * ["Since: 2.0"]
372
- * @usage add_action( 'um_user_pre_updating_profile', 'function_name', 10, 1 );
373
  * @example
374
  * <?php
375
- * add_action( 'um_user_pre_updating_profile', 'my_user_pre_updating_profile', 10, 1 );
376
- * function my_user_pre_updating_profile( $userinfo ) {
377
  * // your code here
378
  * }
379
  * ?>
380
  */
381
- do_action( 'um_user_pre_updating_profile', $to_update );
382
 
383
  /**
384
  * UM hook
@@ -387,21 +410,22 @@ function um_user_edit_profile( $args ) {
387
  * @title um_user_pre_updating_profile_array
388
  * @description Change submitted data before update profile
389
  * @input_vars
390
- * [{"var":"$to_update","type":"array","desc":"Profile data upgrade"}]
 
391
  * @change_log
392
  * ["Since: 2.0"]
393
  * @usage
394
- * <?php add_filter( 'um_user_pre_updating_profile_array', 'function_name', 10, 1 ); ?>
395
  * @example
396
  * <?php
397
- * add_filter( 'um_user_pre_updating_profile_array', 'my_user_pre_updating_profile', 10, 1 );
398
- * function my_user_pre_updating_profile( $to_update ) {
399
  * // your code here
400
  * return $to_update;
401
  * }
402
  * ?>
403
  */
404
- $to_update = apply_filters( 'um_user_pre_updating_profile_array', $to_update );
405
 
406
 
407
  if ( is_array( $to_update ) ) {
@@ -427,7 +451,7 @@ function um_user_edit_profile( $args ) {
427
  * }
428
  * ?>
429
  */
430
- do_action( 'um_after_user_updated', um_user( 'ID' ), $args, $to_update );
431
  }
432
 
433
  /**
@@ -437,25 +461,26 @@ function um_user_edit_profile( $args ) {
437
  * @title um_user_pre_updating_files_array
438
  * @description Change submitted files before update profile
439
  * @input_vars
440
- * [{"var":"$files","type":"array","desc":"Profile data files"}]
 
441
  * @change_log
442
  * ["Since: 2.0"]
443
  * @usage
444
- * <?php add_filter( 'um_user_pre_updating_files_array', 'function_name', 10, 1 ); ?>
445
  * @example
446
  * <?php
447
- * add_filter( 'um_user_pre_updating_files_array', 'my_user_pre_updating_files', 10, 1 );
448
- * function my_user_pre_updating_files( $files ) {
449
  * // your code here
450
  * return $files;
451
  * }
452
  * ?>
453
  */
454
- $files = apply_filters( 'um_user_pre_updating_files_array', $files );
455
 
456
  if ( ! empty( $files ) && is_array( $files ) ) {
457
  UM()->uploader()->replace_upload_dir = true;
458
- UM()->uploader()->move_temporary_files( um_user( 'ID' ), $files );
459
  UM()->uploader()->replace_upload_dir = false;
460
  }
461
 
@@ -501,11 +526,11 @@ function um_user_edit_profile( $args ) {
501
  * }
502
  * ?>
503
  */
504
- do_action( 'um_update_profile_full_name', um_user( 'ID' ), $to_update );
505
 
506
  if ( ! isset( $args['is_signup'] ) ) {
507
 
508
- $url = um_user_profile_url( um_user( 'ID' ) );
509
  exit( wp_redirect( um_edit_my_profile_cancel_uri( $url ) ) );
510
  }
511
  }
@@ -1307,6 +1332,9 @@ function um_submit_form_profile( $args ) {
1307
  return;
1308
  }
1309
 
 
 
 
1310
  /**
1311
  * UM hook
1312
  *
236
 
237
  foreach ( $fields as $key => $array ) {
238
 
239
+ if ( ! isset( $array['type'] ) ) {
240
+ continue;
241
+ }
242
+
243
+ if ( isset( $array['edit_forbidden'] ) ) {
244
+ continue;
245
+ }
246
+
247
+ // required option? 'required_opt' - it's field attribute predefined in the field data in code
248
+ if ( isset( $array['required_opt'] ) ) {
249
+ $opt = $array['required_opt'];
250
+ if ( UM()->options()->get( $opt[0] ) != $opt[1] ) {
251
+ continue;
252
+ }
253
+ }
254
+
255
+ // fields that need to be disabled in edit mode (profile) (email, username, etc.)
256
+ $arr_restricted_fields = UM()->fields()->get_restricted_fields_for_edit( $user_id );
257
+ if ( in_array( $key, $arr_restricted_fields ) ) {
258
+ continue;
259
+ }
260
+
261
+ if ( ! um_can_edit_field( $array ) || ! um_can_view_field( $array ) ) {
262
  continue;
263
  }
264
 
314
 
315
  //update empty user meta
316
  if ( ! isset( $args['submitted'][ $key ] ) || $args['submitted'][ $key ] == '' ) {
317
+ update_user_meta( $user_id, $key, '' );
318
  }
319
  }
320
 
328
 
329
  // update empty user meta
330
  if ( ! isset( $args['submitted'][ $key ] ) || $args['submitted'][ $key ] == '' ) {
331
+ update_user_meta( $user_id, $key, array() );
332
  }
333
  }
334
 
336
 
337
  if ( isset( $array['type'] ) && in_array( $array['type'], array( 'image', 'file' ) ) ) {
338
 
339
+ if ( um_is_temp_file( $args['submitted'][ $key ] ) || $args['submitted'][ $key ] == 'empty_file' ) {
340
  $files[ $key ] = $args['submitted'][ $key ];
341
+ } elseif( um_is_file_owner( UM()->uploader()->get_upload_base_url() . $user_id . '/' . $args['submitted'][ $key ], $user_id ) ) {
342
+
343
  } else {
344
  $files[ $key ] = 'empty_file';
345
  }
378
  $to_update['role'] = $args['submitted']['role'];
379
  }
380
 
381
+ $args['roles_before_upgrade'] = UM()->roles()->get_all_user_roles( $user_id );
382
  }
383
 
384
  /**
388
  * @title um_user_pre_updating_profile
389
  * @description Some actions before profile submit
390
  * @input_vars
391
+ * [{"var":"$userinfo","type":"array","desc":"Submitted User Data"},
392
+ * {"var":"$user_id","type":"int","desc":"User ID"}]
393
  * @change_log
394
  * ["Since: 2.0"]
395
+ * @usage add_action( 'um_user_pre_updating_profile', 'function_name', 10, 2 );
396
  * @example
397
  * <?php
398
+ * add_action( 'um_user_pre_updating_profile', 'my_user_pre_updating_profile', 10, 2 );
399
+ * function my_user_pre_updating_profile( $userinfo, $user_id ) {
400
  * // your code here
401
  * }
402
  * ?>
403
  */
404
+ do_action( 'um_user_pre_updating_profile', $to_update, $user_id );
405
 
406
  /**
407
  * UM hook
410
  * @title um_user_pre_updating_profile_array
411
  * @description Change submitted data before update profile
412
  * @input_vars
413
+ * [{"var":"$to_update","type":"array","desc":"Profile data upgrade"},
414
+ * {"var":"$user_id","type":"int","desc":"User ID"}]
415
  * @change_log
416
  * ["Since: 2.0"]
417
  * @usage
418
+ * <?php add_filter( 'um_user_pre_updating_profile_array', 'function_name', 10, 2 ); ?>
419
  * @example
420
  * <?php
421
+ * add_filter( 'um_user_pre_updating_profile_array', 'my_user_pre_updating_profile', 10, 2 );
422
+ * function my_user_pre_updating_profile( $to_update, $user_id ) {
423
  * // your code here
424
  * return $to_update;
425
  * }
426
  * ?>
427
  */
428
+ $to_update = apply_filters( 'um_user_pre_updating_profile_array', $to_update, $user_id );
429
 
430
 
431
  if ( is_array( $to_update ) ) {
451
  * }
452
  * ?>
453
  */
454
+ do_action( 'um_after_user_updated', $user_id, $args, $to_update );
455
  }
456
 
457
  /**
461
  * @title um_user_pre_updating_files_array
462
  * @description Change submitted files before update profile
463
  * @input_vars
464
+ * [{"var":"$files","type":"array","desc":"Profile data files"},
465
+ * {"var":"$user_id","type":"int","desc":"User ID"}]
466
  * @change_log
467
  * ["Since: 2.0"]
468
  * @usage
469
+ * <?php add_filter( 'um_user_pre_updating_files_array', 'function_name', 10, 2 ); ?>
470
  * @example
471
  * <?php
472
+ * add_filter( 'um_user_pre_updating_files_array', 'my_user_pre_updating_files', 10, 2 );
473
+ * function my_user_pre_updating_files( $files, $user_id ) {
474
  * // your code here
475
  * return $files;
476
  * }
477
  * ?>
478
  */
479
+ $files = apply_filters( 'um_user_pre_updating_files_array', $files, $user_id );
480
 
481
  if ( ! empty( $files ) && is_array( $files ) ) {
482
  UM()->uploader()->replace_upload_dir = true;
483
+ UM()->uploader()->move_temporary_files( $user_id, $files );
484
  UM()->uploader()->replace_upload_dir = false;
485
  }
486
 
526
  * }
527
  * ?>
528
  */
529
+ do_action( 'um_update_profile_full_name', $user_id, $to_update );
530
 
531
  if ( ! isset( $args['is_signup'] ) ) {
532
 
533
+ $url = um_user_profile_url( $user_id );
534
  exit( wp_redirect( um_edit_my_profile_cancel_uri( $url ) ) );
535
  }
536
  }
1332
  return;
1333
  }
1334
 
1335
+ UM()->fields()->set_mode = 'profile';
1336
+ UM()->fields()->editing = true;
1337
+
1338
  /**
1339
  * UM hook
1340
  *
includes/core/um-actions-register.php CHANGED
@@ -464,9 +464,6 @@ add_action( 'um_submit_form_register', 'um_submit_form_register', 10 );
464
  * @param $args
465
  */
466
  function um_add_submit_button_to_register( $args ) {
467
- // DO NOT add when reviewing user's details
468
- if ( isset( UM()->user()->preview ) && UM()->user()->preview == true && is_admin() ) return;
469
-
470
  $primary_btn_word = $args['primary_btn_word'];
471
  /**
472
  * UM hook
464
  * @param $args
465
  */
466
  function um_add_submit_button_to_register( $args ) {
 
 
 
467
  $primary_btn_word = $args['primary_btn_word'];
468
  /**
469
  * UM hook
includes/core/um-actions-wpadmin.php CHANGED
@@ -7,12 +7,14 @@ if ( ! defined( 'ABSPATH' ) ) exit;
7
  * Checks if user can access the backend
8
  */
9
  function um_block_wpadmin_by_user_role() {
 
 
 
10
  if ( is_admin() && ! defined( 'DOING_AJAX' ) ) {
11
  $action = empty( $_REQUEST['action'] ) ? '' : $_REQUEST['action'];
12
 
13
  // filter that it's not admin_post or admin_post_nopriv request
14
- $url_attr = parse_url( UM()->permalinks()->get_current_url() );
15
- if ( is_user_logged_in() && ! empty( $action ) && $url_attr['path'] == '/wp-admin/admin-post.php' ) {
16
  return;
17
  }
18
 
7
  * Checks if user can access the backend
8
  */
9
  function um_block_wpadmin_by_user_role() {
10
+
11
+ global $pagenow;
12
+
13
  if ( is_admin() && ! defined( 'DOING_AJAX' ) ) {
14
  $action = empty( $_REQUEST['action'] ) ? '' : $_REQUEST['action'];
15
 
16
  // filter that it's not admin_post or admin_post_nopriv request
17
+ if ( is_user_logged_in() && ! empty( $action ) && 'admin-post.php' == $pagenow ) {
 
18
  return;
19
  }
20
 
includes/um-short-functions.php CHANGED
@@ -1347,6 +1347,7 @@ function um_is_on_edit_profile() {
1347
  * @return bool
1348
  */
1349
  function um_can_view_field( $data ) {
 
1350
 
1351
  if ( ! isset( UM()->fields()->set_mode ) ) {
1352
  UM()->fields()->set_mode = '';
@@ -1354,35 +1355,60 @@ function um_can_view_field( $data ) {
1354
 
1355
  if ( isset( $data['public'] ) && UM()->fields()->set_mode != 'register' ) {
1356
 
1357
- if ( ! is_user_logged_in() && $data['public'] != '1' ) {
1358
- return false;
1359
- }
1360
-
1361
  if ( is_user_logged_in() ) {
1362
  $previous_user = um_user( 'ID' );
1363
  um_fetch_user( get_current_user_id() );
1364
 
1365
  $current_user_roles = um_user( 'roles' );
1366
  um_fetch_user( $previous_user );
 
1367
 
1368
- if ( $data['public'] == '-3' && ! um_is_user_himself() && ( empty( $current_user_roles ) || count( array_intersect( $current_user_roles, $data['roles'] ) ) <= 0 ) ) {
1369
- return false;
1370
- }
1371
-
1372
- if ( ! um_is_user_himself() && $data['public'] == '-1' && ! UM()->roles()->um_user_can( 'can_edit_everyone' ) ) {
1373
- return false;
1374
- }
1375
-
1376
- if ( $data['public'] == '-2' && $data['roles'] ) {
1377
- if ( empty( $current_user_roles ) || count( array_intersect( $current_user_roles, $data['roles'] ) ) <= 0 ) {
1378
- return false;
1379
  }
1380
- }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1381
  }
1382
 
1383
  }
1384
 
1385
- return apply_filters( 'um_can_view_field', true, $data );
1386
  }
1387
 
1388
 
@@ -1451,29 +1477,25 @@ function um_is_user_himself() {
1451
  * @return bool
1452
  */
1453
  function um_can_edit_field( $data ) {
1454
- if (isset( UM()->fields()->editing ) && UM()->fields()->editing == true &&
1455
- isset( UM()->fields()->set_mode ) && UM()->fields()->set_mode == 'profile'
1456
- ) {
1457
-
1458
- if (is_user_logged_in() && isset( $data['editable'] ) && $data['editable'] == 0) {
1459
 
1460
- if (isset( $data['public'] ) && $data['public'] == "-2") {
1461
- return true;
1462
- }
1463
-
1464
- if (um_user( 'can_edit_everyone' )) return true;
1465
- if (um_is_user_himself() && !um_user( 'can_edit_everyone' )) {
1466
- return true;
 
 
 
 
 
1467
  }
1468
-
1469
- if (!um_is_user_himself() && !UM()->roles()->um_user_can( 'can_edit_everyone' ))
1470
- return false;
1471
  }
1472
-
1473
  }
1474
 
1475
- return true;
1476
-
1477
  }
1478
 
1479
 
1347
  * @return bool
1348
  */
1349
  function um_can_view_field( $data ) {
1350
+ $can_view = true;
1351
 
1352
  if ( ! isset( UM()->fields()->set_mode ) ) {
1353
  UM()->fields()->set_mode = '';
1355
 
1356
  if ( isset( $data['public'] ) && UM()->fields()->set_mode != 'register' ) {
1357
 
 
 
 
 
1358
  if ( is_user_logged_in() ) {
1359
  $previous_user = um_user( 'ID' );
1360
  um_fetch_user( get_current_user_id() );
1361
 
1362
  $current_user_roles = um_user( 'roles' );
1363
  um_fetch_user( $previous_user );
1364
+ }
1365
 
1366
+ switch ( $data['public'] ) {
1367
+ case '1':
1368
+ $can_view = true;
1369
+ break;
1370
+ case '2':
1371
+ if ( ! is_user_logged_in() ) {
1372
+ $can_view = false;
 
 
 
 
1373
  }
1374
+ break;
1375
+ case '-1':
1376
+ if ( ! is_user_logged_in() ) {
1377
+ $can_view = false;
1378
+ } else {
1379
+ if ( ! um_is_user_himself() && ! UM()->roles()->um_user_can( 'can_edit_everyone' ) ) {
1380
+ $can_view = false;
1381
+ }
1382
+ }
1383
+ break;
1384
+ case '-2':
1385
+ if ( ! is_user_logged_in() ) {
1386
+ $can_view = false;
1387
+ } else {
1388
+ if ( ! UM()->roles()->um_user_can( 'can_edit_everyone' ) && ! empty( $data['roles'] ) ) {
1389
+ if ( empty( $current_user_roles ) || count( array_intersect( $current_user_roles, $data['roles'] ) ) <= 0 ) {
1390
+ $can_view = false;
1391
+ }
1392
+ }
1393
+ }
1394
+ break;
1395
+ case '-3':
1396
+ if ( ! is_user_logged_in() ) {
1397
+ $can_view = false;
1398
+ } else {
1399
+ if ( ! UM()->roles()->um_user_can( 'can_edit_everyone' ) && ! um_is_user_himself() && ( empty( $current_user_roles ) || ( ! empty( $data['roles'] ) && count( array_intersect( $current_user_roles, $data['roles'] ) ) <= 0 ) ) ) {
1400
+ $can_view = false;
1401
+ }
1402
+ }
1403
+ break;
1404
+ default:
1405
+ $can_view = apply_filters( 'um_can_view_field_custom', $can_view, $data );
1406
+ break;
1407
  }
1408
 
1409
  }
1410
 
1411
+ return apply_filters( 'um_can_view_field', $can_view, $data );
1412
  }
1413
 
1414
 
1477
  * @return bool
1478
  */
1479
  function um_can_edit_field( $data ) {
1480
+ $can_edit = true;
 
 
 
 
1481
 
1482
+ if ( ! empty( UM()->fields()->editing ) && isset( UM()->fields()->set_mode ) && UM()->fields()->set_mode == 'profile' ) {
1483
+ if ( ! is_user_logged_in() ) {
1484
+ $can_edit = false;
1485
+ } else {
1486
+ if ( ! UM()->roles()->um_user_can( 'can_edit_everyone' ) ) {
1487
+ if ( isset( $data['editable'] ) && $data['editable'] == 0 ) {
1488
+ $can_edit = false;
1489
+ } else {
1490
+ if ( ! um_is_user_himself() ) {
1491
+ $can_edit = false;
1492
+ }
1493
+ }
1494
  }
 
 
 
1495
  }
 
1496
  }
1497
 
1498
+ return apply_filters( 'um_can_edit_field', $can_edit, $data );
 
1499
  }
1500
 
1501
 
languages/ultimate-member-en_US.mo CHANGED
Binary file
languages/ultimate-member-en_US.po CHANGED
@@ -1,8 +1,8 @@
1
  msgid ""
2
  msgstr ""
3
  "Project-Id-Version: Ultimate Member\n"
4
- "POT-Creation-Date: 2019-11-12 19:02+0200\n"
5
- "PO-Revision-Date: 2019-11-12 19:02+0200\n"
6
  "Last-Translator: \n"
7
  "Language-Team: \n"
8
  "Language: en_US\n"
@@ -75,114 +75,114 @@ msgstr ""
75
  msgid "Form draft updated."
76
  msgstr ""
77
 
78
- #: includes/admin/core/class-admin-builder.php:212
79
  msgid "Manage conditional fields support"
80
  msgstr ""
81
 
82
- #: includes/admin/core/class-admin-builder.php:212
83
- #: includes/admin/core/class-admin-builder.php:214
84
  msgid ""
85
  "Here you can setup conditional logic to show/hide this field based on "
86
  "specific fields value or conditions"
87
  msgstr ""
88
 
89
- #: includes/admin/core/class-admin-builder.php:214
90
  msgid "Add conditional fields support"
91
  msgstr ""
92
 
93
- #: includes/admin/core/class-admin-builder.php:229
94
  msgid "Add new rule"
95
  msgstr ""
96
 
97
- #: includes/admin/core/class-admin-builder.php:230
98
  msgid "Reset all rules"
99
  msgstr ""
100
 
101
- #: includes/admin/core/class-admin-builder.php:283
102
- #: includes/admin/core/class-admin-builder.php:605
103
- #: includes/admin/core/class-admin-builder.php:764
104
  #: includes/admin/core/class-admin-dragdrop.php:33
105
  #: includes/admin/core/class-admin-menu.php:106
106
- #: includes/core/class-fields.php:4369
107
  msgid "Please login as administrator"
108
  msgstr ""
109
 
110
- #: includes/admin/core/class-admin-builder.php:392
111
- #: includes/admin/core/class-admin-builder.php:462
112
  #: includes/admin/core/class-admin-dragdrop.php:165
113
  msgid "Add Row"
114
  msgstr ""
115
 
116
- #: includes/admin/core/class-admin-builder.php:393
117
- #: includes/admin/core/class-admin-builder.php:463
118
  #: includes/admin/core/class-admin-dragdrop.php:166
119
  msgid "Edit Row"
120
  msgstr ""
121
 
122
- #: includes/admin/core/class-admin-builder.php:466
123
  #: includes/admin/core/class-admin-dragdrop.php:168
124
  #: includes/admin/core/class-admin-dragdrop.php:183
125
  #: includes/admin/core/class-admin-dragdrop.php:208
126
  msgid "Delete Row"
127
  msgstr ""
128
 
129
- #: includes/admin/core/class-admin-builder.php:539
130
  msgid "(no title)"
131
  msgstr ""
132
 
133
- #: includes/admin/core/class-admin-builder.php:544
134
  #: includes/admin/core/list-tables/roles-list-table.php:339
135
  msgid "Edit"
136
  msgstr ""
137
 
138
- #: includes/admin/core/class-admin-builder.php:546
139
  #: includes/admin/core/class-admin-columns.php:102
140
  msgid "Duplicate"
141
  msgstr ""
142
 
143
- #: includes/admin/core/class-admin-builder.php:550
144
  msgid "Delete Group"
145
  msgstr ""
146
 
147
- #: includes/admin/core/class-admin-builder.php:553
148
- #: includes/admin/core/class-admin-enqueue.php:506
149
  #: includes/admin/core/list-tables/roles-list-table.php:342
150
  #: includes/admin/core/list-tables/roles-list-table.php:410
151
  msgid "Delete"
152
  msgstr ""
153
 
154
- #: includes/admin/core/class-admin-builder.php:830
155
  msgid "Search Icons..."
156
  msgstr ""
157
 
158
- #: includes/admin/core/class-admin-builder.php:850
159
  msgid "Setup New Field"
160
  msgstr ""
161
 
162
- #: includes/admin/core/class-admin-builder.php:867
163
  msgid "Predefined Fields"
164
  msgstr ""
165
 
166
- #: includes/admin/core/class-admin-builder.php:879
167
  #: includes/core/class-builtin.php:1330
168
  msgid "None"
169
  msgstr ""
170
 
171
- #: includes/admin/core/class-admin-builder.php:884
172
  msgid "Custom Fields"
173
  msgstr ""
174
 
175
- #: includes/admin/core/class-admin-builder.php:898
176
  msgid "You did not create any custom fields"
177
  msgstr ""
178
 
179
- #: includes/admin/core/class-admin-builder.php:930
180
- #: includes/admin/core/class-admin-builder.php:1002
181
  msgid "This field type is not setup correcty."
182
  msgstr ""
183
 
184
- #: includes/admin/core/class-admin-builder.php:1149
185
- #: includes/core/class-form.php:159 includes/core/class-form.php:333
186
  #: includes/core/class-password.php:533
187
  msgid "This is not possible for security reasons."
188
  msgstr ""
@@ -250,7 +250,7 @@ msgstr ""
250
  #: includes/admin/templates/form/register_gdpr.php:26
251
  #: includes/core/class-builtin.php:1135 includes/core/class-builtin.php:1149
252
  #: includes/core/class-builtin.php:1150
253
- #: includes/core/um-actions-account.php:268
254
  msgid "No"
255
  msgstr ""
256
 
@@ -274,7 +274,7 @@ msgstr ""
274
  #: includes/admin/templates/form/register_customize.php:80
275
  #: includes/admin/templates/form/register_gdpr.php:27
276
  #: includes/core/class-builtin.php:1135 includes/core/class-builtin.php:1150
277
- #: includes/core/class-member-directory.php:848
278
  #: includes/core/um-filters-members.php:40
279
  msgid "Yes"
280
  msgstr ""
@@ -287,47 +287,24 @@ msgstr ""
287
  msgid "e.g. New Registration Form"
288
  msgstr ""
289
 
290
- #: includes/admin/core/class-admin-enqueue.php:235
291
- #: includes/admin/core/class-admin-enqueue.php:266
292
- #: includes/admin/core/class-admin-forms.php:897
293
- #: includes/admin/core/class-admin-forms.php:911
294
- #: includes/admin/core/class-admin-forms.php:1034
295
- #: includes/admin/core/class-admin-forms.php:1043
296
- #: includes/admin/core/class-admin-forms.php:1278
297
- #: includes/admin/core/class-admin-forms.php:1292
298
- #: includes/admin/core/class-admin-notices.php:394
299
- #: includes/core/um-actions-profile.php:648
300
- msgid "Remove"
301
- msgstr ""
302
-
303
- #: includes/admin/core/class-admin-enqueue.php:236
304
- #: includes/admin/core/class-admin-enqueue.php:267
305
- #: includes/admin/core/class-admin-forms.php:1113
306
- msgid "Select"
307
- msgstr ""
308
-
309
- #: includes/admin/core/class-admin-enqueue.php:264
310
- msgid "Are sure, maybe some settings not saved"
311
- msgstr ""
312
-
313
- #: includes/admin/core/class-admin-enqueue.php:494
314
  #: includes/core/class-builtin.php:698 includes/core/class-builtin.php:701
315
  #: includes/core/class-builtin.php:1155 includes/core/class-builtin.php:1158
316
  msgid "Password"
317
  msgstr ""
318
 
319
- #: includes/admin/core/class-admin-enqueue.php:498
320
  #: includes/admin/core/class-admin-metabox.php:2227
321
  #: includes/core/class-account.php:109
322
  msgid "Privacy"
323
  msgstr ""
324
 
325
- #: includes/admin/core/class-admin-enqueue.php:502
326
  #: includes/core/class-account.php:115
327
  msgid "Notifications"
328
  msgstr ""
329
 
330
- #: includes/admin/core/class-admin-enqueue.php:556
331
  msgid "Ultimate Member Blocks"
332
  msgstr ""
333
 
@@ -348,11 +325,26 @@ msgstr ""
348
  msgid "No Icon"
349
  msgstr ""
350
 
351
- #: includes/admin/core/class-admin-forms.php:1090
 
 
 
 
 
 
 
 
 
 
 
352
  msgid "Select media"
353
  msgstr ""
354
 
355
- #: includes/admin/core/class-admin-forms.php:1114
 
 
 
 
356
  msgid "Clear"
357
  msgstr ""
358
 
@@ -1305,7 +1297,7 @@ msgid "The text that appears on the button. e.g. Upload"
1305
  msgstr ""
1306
 
1307
  #: includes/admin/core/class-admin-metabox.php:1959
1308
- #: includes/core/class-fields.php:1627 includes/core/class-fields.php:1668
1309
  msgid "Upload"
1310
  msgstr ""
1311
 
@@ -1547,7 +1539,7 @@ msgid ""
1547
  msgstr ""
1548
 
1549
  #: includes/admin/core/class-admin-metabox.php:2230
1550
- #: includes/class-config.php:134 includes/class-config.php:787
1551
  msgid "Members"
1552
  msgstr ""
1553
 
@@ -1655,7 +1647,7 @@ msgstr ""
1655
  msgid "Select the member roles that can see this link"
1656
  msgstr ""
1657
 
1658
- #: includes/admin/core/class-admin-notices.php:283
1659
  #, php-format
1660
  msgid ""
1661
  "<strong>%s %s</strong> requires 2.0 extensions. You have pre 2.0 extensions "
@@ -1663,31 +1655,31 @@ msgid ""
1663
  "versions. For more info see this <a href=\"%s\" target=\"_blank\">doc</a>."
1664
  msgstr ""
1665
 
1666
- #: includes/admin/core/class-admin-notices.php:304
1667
  #, php-format
1668
  msgid ""
1669
  "%s needs to create several pages (User Profiles, Account, Registration, "
1670
  "Login, Password Reset, Logout, Member Directory) to function correctly."
1671
  msgstr ""
1672
 
1673
- #: includes/admin/core/class-admin-notices.php:308
1674
  msgid "Create Pages"
1675
  msgstr ""
1676
 
1677
- #: includes/admin/core/class-admin-notices.php:310
1678
- #: includes/admin/core/class-admin-notices.php:504
1679
  msgid "No thanks"
1680
  msgstr ""
1681
 
1682
- #: includes/admin/core/class-admin-notices.php:330
1683
  msgid "Ultimate Member Setup Error: User page can not be a child page."
1684
  msgstr ""
1685
 
1686
- #: includes/admin/core/class-admin-notices.php:340
1687
  msgid "Ultimate Member Setup Error: Account page can not be a child page."
1688
  msgstr ""
1689
 
1690
- #: includes/admin/core/class-admin-notices.php:358
1691
  #, php-format
1692
  msgid ""
1693
  "Exif is not enabled on your server. Mobile photo uploads will not be rotated "
@@ -1695,69 +1687,69 @@ msgid ""
1695
  "notice</a>"
1696
  msgstr ""
1697
 
1698
- #: includes/admin/core/class-admin-notices.php:393
1699
  #, php-format
1700
  msgid ""
1701
  "Are you sure you want to delete the selected user(s)? The following users "
1702
  "will be deleted: <p>%s</p> <strong>This cannot be undone!</strong>"
1703
  msgstr ""
1704
 
1705
- #: includes/admin/core/class-admin-notices.php:394
1706
  msgid "Undo"
1707
  msgstr ""
1708
 
1709
- #: includes/admin/core/class-admin-notices.php:399
1710
  msgid "Your translation files have been updated successfully."
1711
  msgstr ""
1712
 
1713
- #: includes/admin/core/class-admin-notices.php:403
1714
  msgid "Your temp uploads directory is now clean."
1715
  msgstr ""
1716
 
1717
- #: includes/admin/core/class-admin-notices.php:407
1718
  msgid "Your user cache is now removed."
1719
  msgstr ""
1720
 
1721
- #: includes/admin/core/class-admin-notices.php:411
1722
  msgid "You have the latest updates."
1723
  msgstr ""
1724
 
1725
- #: includes/admin/core/class-admin-notices.php:415
1726
  msgid "Try again later. You can run this action once daily."
1727
  msgstr ""
1728
 
1729
- #: includes/admin/core/class-admin-notices.php:419
1730
  msgid "The form has been duplicated successfully."
1731
  msgstr ""
1732
 
1733
- #: includes/admin/core/class-admin-notices.php:423
1734
  msgid "User has been updated."
1735
  msgstr ""
1736
 
1737
- #: includes/admin/core/class-admin-notices.php:427
1738
  msgid "Users have been updated."
1739
  msgstr ""
1740
 
1741
- #: includes/admin/core/class-admin-notices.php:431
1742
  msgid "Changed roles."
1743
  msgstr ""
1744
 
1745
- #: includes/admin/core/class-admin-notices.php:435
1746
  msgid "Super administrators cannot be modified."
1747
  msgstr ""
1748
 
1749
- #: includes/admin/core/class-admin-notices.php:436
1750
  msgid "Other users have been updated."
1751
  msgstr ""
1752
 
1753
- #: includes/admin/core/class-admin-notices.php:473
1754
  #, php-format
1755
  msgid ""
1756
  "You have installed <strong>%s</strong> with wrong folder name. Correct "
1757
  "folder name is <strong>\"ultimate-member\"</strong>."
1758
  msgstr ""
1759
 
1760
- #: includes/admin/core/class-admin-notices.php:498
1761
  #, php-format
1762
  msgid ""
1763
  "Thanks for installing <strong>%s</strong>! We hope you like the plugin. To "
@@ -1767,12 +1759,12 @@ msgid ""
1767
  "a>."
1768
  msgstr ""
1769
 
1770
- #: includes/admin/core/class-admin-notices.php:502
1771
  #, php-format
1772
  msgid "Claim 20% discount code"
1773
  msgstr ""
1774
 
1775
- #: includes/admin/core/class-admin-notices.php:541
1776
  #, php-format
1777
  msgid ""
1778
  "There are %d inactive %s license keys for this site. This site is not "
@@ -1780,14 +1772,14 @@ msgid ""
1780
  "\">www.ultimatemember.com</a>."
1781
  msgstr ""
1782
 
1783
- #: includes/admin/core/class-admin-notices.php:548
1784
  #, php-format
1785
  msgid ""
1786
  "You have %d invalid or expired license keys for %s. Please go to the <a href="
1787
  "\"%s\">Licenses page</a> to correct this issue."
1788
  msgstr ""
1789
 
1790
- #: includes/admin/core/class-admin-notices.php:562
1791
  #, php-format
1792
  msgid ""
1793
  "<strong>%s version %s</strong> needs to be updated to work correctly.<br /"
@@ -1796,35 +1788,35 @@ msgid ""
1796
  "\"Upgrade\"</a> page and run the upgrade process."
1797
  msgstr ""
1798
 
1799
- #: includes/admin/core/class-admin-notices.php:566
1800
  msgid "Upgrade Now"
1801
  msgstr ""
1802
 
1803
- #: includes/admin/core/class-admin-notices.php:580
1804
  #, php-format
1805
  msgid "<strong>%s %s</strong> Successfully Upgraded"
1806
  msgstr ""
1807
 
1808
- #: includes/admin/core/class-admin-notices.php:606
1809
  #, php-format
1810
  msgid ""
1811
  "Hey there! It's been one month since you installed %s. How have you found "
1812
  "the plugin so far?"
1813
  msgstr ""
1814
 
1815
- #: includes/admin/core/class-admin-notices.php:609
1816
  msgid "I love it!"
1817
  msgstr ""
1818
 
1819
- #: includes/admin/core/class-admin-notices.php:610
1820
  msgid "It's good but could be better"
1821
  msgstr ""
1822
 
1823
- #: includes/admin/core/class-admin-notices.php:611
1824
  msgid "I don't like the plugin"
1825
  msgstr ""
1826
 
1827
- #: includes/admin/core/class-admin-notices.php:616
1828
  #, php-format
1829
  msgid ""
1830
  "Great! We're happy to hear that you love the plugin. It would be amazing if "
@@ -1833,22 +1825,22 @@ msgid ""
1833
  "appreciated by us!"
1834
  msgstr ""
1835
 
1836
- #: includes/admin/core/class-admin-notices.php:620
1837
  msgid "Leave Review"
1838
  msgstr ""
1839
 
1840
- #: includes/admin/core/class-admin-notices.php:625
1841
  msgid ""
1842
  "We're glad to hear that you like the plugin but we would love to get your "
1843
  "feedback so we can make the plugin better."
1844
  msgstr ""
1845
 
1846
- #: includes/admin/core/class-admin-notices.php:629
1847
- #: includes/admin/core/class-admin-notices.php:638
1848
  msgid "Provide Feedback"
1849
  msgstr ""
1850
 
1851
- #: includes/admin/core/class-admin-notices.php:634
1852
  #, php-format
1853
  msgid ""
1854
  "We're sorry to hear that. If you're having the issue with the plugin you can "
@@ -1858,14 +1850,14 @@ msgid ""
1858
  "like about the plugin you can tell us know by giving us feedback."
1859
  msgstr ""
1860
 
1861
- #: includes/admin/core/class-admin-notices.php:660
1862
  #, php-format
1863
  msgid ""
1864
  "<strong>%s</strong> future plans! Detailed future list is <a href=\"%s\" "
1865
  "target=\"_blank\">here</a>"
1866
  msgstr ""
1867
 
1868
- #: includes/admin/core/class-admin-notices.php:676
1869
  msgid "Wrong Data"
1870
  msgstr ""
1871
 
@@ -2042,7 +2034,7 @@ msgstr ""
2042
  #: includes/admin/core/class-admin-settings.php:393
2043
  #: includes/admin/core/class-admin-settings.php:410
2044
  #: includes/core/class-builtin.php:674 includes/core/class-builtin.php:677
2045
- #: includes/core/class-member-directory.php:242
2046
  msgid "Username"
2047
  msgstr ""
2048
 
@@ -2083,6 +2075,8 @@ msgstr ""
2083
 
2084
  #: includes/admin/core/class-admin-settings.php:409
2085
  #: includes/core/class-builtin.php:732 includes/core/class-builtin.php:735
 
 
2086
  msgid "Nickname"
2087
  msgstr ""
2088
 
@@ -2206,7 +2200,7 @@ msgid ""
2206
  msgstr ""
2207
 
2208
  #: includes/admin/core/class-admin-settings.php:479
2209
- #: includes/class-config.php:136 includes/class-config.php:789
2210
  #: includes/core/class-account.php:97
2211
  msgid "Account"
2212
  msgstr ""
@@ -3167,7 +3161,7 @@ msgid "UM Action"
3167
  msgstr ""
3168
 
3169
  #: includes/admin/core/class-admin-users.php:124
3170
- #: includes/core/class-fields.php:2534
3171
  msgid "Apply"
3172
  msgstr ""
3173
 
@@ -3277,7 +3271,7 @@ msgstr ""
3277
  #: includes/admin/core/list-tables/roles-list-table.php:22
3278
  #: includes/admin/core/list-tables/roles-list-table.php:89
3279
  #: includes/admin/core/list-tables/roles-list-table.php:402
3280
- #: includes/core/class-member-directory.php:263
3281
  msgid "Roles"
3282
  msgstr ""
3283
 
@@ -3681,37 +3675,27 @@ msgid ""
3681
  msgstr ""
3682
 
3683
  #: includes/admin/templates/directory/pagination.php:46
3684
- #: includes/class-config.php:178 includes/class-config.php:278
3685
- msgid "{total_users} Members"
3686
- msgstr ""
3687
-
3688
- #: includes/admin/templates/directory/pagination.php:51
3689
- msgid "Single Result Text"
3690
  msgstr ""
3691
 
3692
  #: includes/admin/templates/directory/pagination.php:52
3693
- msgid "Same as above but in case of 1 user found only"
3694
  msgstr ""
3695
 
3696
  #: includes/admin/templates/directory/pagination.php:53
3697
- #: includes/class-config.php:179 includes/class-config.php:279
3698
- msgid "{total_users} Member"
3699
  msgstr ""
3700
 
3701
- #: includes/admin/templates/directory/pagination.php:58
3702
  msgid "Custom text if no users were found"
3703
  msgstr ""
3704
 
3705
- #: includes/admin/templates/directory/pagination.php:59
3706
  msgid ""
3707
  "This is the text that is displayed if no users are found during a search"
3708
  msgstr ""
3709
 
3710
- #: includes/admin/templates/directory/pagination.php:60
3711
- #: includes/class-config.php:180
3712
- msgid "We are sorry. We cannot find any users who match your search criteria."
3713
- msgstr ""
3714
-
3715
  #: includes/admin/templates/directory/profile.php:20
3716
  msgid "Enable Profile Photo"
3717
  msgstr ""
@@ -3737,25 +3721,29 @@ msgid "Choose field(s) to display in tagline"
3737
  msgstr ""
3738
 
3739
  #: includes/admin/templates/directory/profile.php:48
3740
- #: includes/admin/templates/directory/profile.php:63
3741
  #: includes/admin/templates/directory/search.php:93
3742
  msgid "Add New Custom Field"
3743
  msgstr ""
3744
 
3745
- #: includes/admin/templates/directory/profile.php:55
3746
  msgid "Show extra user information below tagline?"
3747
  msgstr ""
3748
 
3749
- #: includes/admin/templates/directory/profile.php:61
3750
- msgid "Choose field(s) to display in reveal section"
 
 
 
 
3751
  msgstr ""
3752
 
3753
- #: includes/admin/templates/directory/profile.php:71
3754
- msgid "Show social connect icons"
3755
  msgstr ""
3756
 
3757
- #: includes/admin/templates/directory/profile.php:78
3758
- msgid "Enable reveal section transition by default"
3759
  msgstr ""
3760
 
3761
  #: includes/admin/templates/directory/search.php:55
@@ -3794,27 +3782,33 @@ msgstr ""
3794
  msgid "Choose filter(s) meta to enable"
3795
  msgstr ""
3796
 
3797
- #: includes/admin/templates/directory/search.php:99
3798
  msgid "Expand the filter bar by default"
3799
  msgstr ""
3800
 
3801
- #: includes/admin/templates/directory/search.php:100
3802
- msgid ""
3803
- "If turned on, filters bar will be visible after a page loading and can be "
3804
- "collapsed"
 
 
 
 
 
 
3805
  msgstr ""
3806
 
3807
- #: includes/admin/templates/directory/search.php:107
3808
  msgid "Admin filtering"
3809
  msgstr ""
3810
 
3811
- #: includes/admin/templates/directory/search.php:108
3812
  msgid ""
3813
  "Limit which users appear in the member directory e.g only display users from "
3814
  "USA"
3815
  msgstr ""
3816
 
3817
- #: includes/admin/templates/directory/search.php:111
3818
  msgid "Add New Filter"
3819
  msgstr ""
3820
 
@@ -4206,14 +4200,14 @@ msgstr ""
4206
  #: includes/admin/templates/modal/dynamic_new_field.php:18
4207
  #: includes/admin/templates/modal/dynamic_new_group.php:18
4208
  #: includes/admin/templates/modal/fonticons.php:14
4209
- #: includes/admin/templates/role/publish.php:24 includes/class-config.php:251
4210
- #: includes/core/class-fields.php:2535 includes/core/class-fields.php:2632
4211
- #: includes/core/um-actions-profile.php:649
4212
- #: includes/core/um-actions-profile.php:661
4213
- #: includes/core/um-actions-profile.php:849
4214
- #: includes/core/um-actions-profile.php:882
4215
- #: includes/core/um-actions-profile.php:1227
4216
- #: includes/core/um-actions-profile.php:1234
4217
  msgid "Cancel"
4218
  msgstr ""
4219
 
@@ -4562,146 +4556,158 @@ msgstr ""
4562
  msgid "Check All"
4563
  msgstr ""
4564
 
4565
- #: includes/class-config.php:131 includes/class-config.php:784
4566
  msgid "User"
4567
  msgstr ""
4568
 
4569
- #: includes/class-config.php:132 includes/class-config.php:261
4570
- #: includes/class-config.php:269 includes/class-config.php:785
4571
  msgid "Login"
4572
  msgstr ""
4573
 
4574
- #: includes/class-config.php:133 includes/class-config.php:259
4575
- #: includes/class-config.php:273 includes/class-config.php:786
4576
  msgid "Register"
4577
  msgstr ""
4578
 
4579
- #: includes/class-config.php:135 includes/class-config.php:788
4580
- #: includes/core/class-member-directory.php:1843
4581
- #: includes/core/um-actions-profile.php:1233
4582
  #: includes/core/um-actions-user.php:19
4583
  msgid "Logout"
4584
  msgstr ""
4585
 
4586
- #: includes/class-config.php:137 includes/class-config.php:790
4587
  msgid "Password Reset"
4588
  msgstr ""
4589
 
4590
- #: includes/class-config.php:249
 
 
 
 
 
 
 
 
 
 
 
 
4591
  msgid "Update Profile"
4592
  msgstr ""
4593
 
4594
- #: includes/class-config.php:338
4595
  msgid "Account Welcome Email"
4596
  msgstr ""
4597
 
4598
- #: includes/class-config.php:349
4599
  msgid ""
4600
  "Whether to send the user an email when his account is automatically approved"
4601
  msgstr ""
4602
 
4603
- #: includes/class-config.php:355
4604
  msgid "Account Activation Email"
4605
  msgstr ""
4606
 
4607
- #: includes/class-config.php:363
4608
  msgid ""
4609
  "Whether to send the user an email when his account needs e-mail activation"
4610
  msgstr ""
4611
 
4612
- #: includes/class-config.php:368
4613
  msgid "Your account is pending review"
4614
  msgstr ""
4615
 
4616
- #: includes/class-config.php:376
4617
  msgid "Whether to send the user an email when his account needs admin review"
4618
  msgstr ""
4619
 
4620
- #: includes/class-config.php:381
4621
  msgid "Account Approved Email"
4622
  msgstr ""
4623
 
4624
- #: includes/class-config.php:393
4625
  msgid "Whether to send the user an email when his account is approved"
4626
  msgstr ""
4627
 
4628
- #: includes/class-config.php:398
4629
  msgid "Account Rejected Email"
4630
  msgstr ""
4631
 
4632
- #: includes/class-config.php:405
4633
  msgid "Whether to send the user an email when his account is rejected"
4634
  msgstr ""
4635
 
4636
- #: includes/class-config.php:410
4637
  msgid "Account Deactivated Email"
4638
  msgstr ""
4639
 
4640
- #: includes/class-config.php:417
4641
  msgid "Whether to send the user an email when his account is deactivated"
4642
  msgstr ""
4643
 
4644
- #: includes/class-config.php:423
4645
  msgid "Account Deleted Email"
4646
  msgstr ""
4647
 
4648
- #: includes/class-config.php:430
4649
  msgid "Whether to send the user an email when his account is deleted"
4650
  msgstr ""
4651
 
4652
- #: includes/class-config.php:436
4653
  msgid "Password Reset Email"
4654
  msgstr ""
4655
 
4656
- #: includes/class-config.php:444
4657
  msgid ""
4658
  "Whether to send an email when users changed their password (Recommended, "
4659
  "please keep on)"
4660
  msgstr ""
4661
 
4662
- #: includes/class-config.php:450
4663
  msgid "Password Changed Email"
4664
  msgstr ""
4665
 
4666
- #: includes/class-config.php:457
4667
  msgid ""
4668
  "Whether to send the user an email when he request to reset password "
4669
  "(Recommended, please keep on)"
4670
  msgstr ""
4671
 
4672
- #: includes/class-config.php:463
4673
  msgid "Account Updated Email"
4674
  msgstr ""
4675
 
4676
- #: includes/class-config.php:470
4677
  msgid "Whether to send the user an email when he updated their account"
4678
  msgstr ""
4679
 
4680
- #: includes/class-config.php:476
4681
  msgid "New User Notification"
4682
  msgstr ""
4683
 
4684
- #: includes/class-config.php:482
4685
  msgid "Whether to receive notification when a new user account is approved"
4686
  msgstr ""
4687
 
4688
- #: includes/class-config.php:488
4689
  msgid "Account Needs Review Notification"
4690
  msgstr ""
4691
 
4692
- #: includes/class-config.php:495
4693
  msgid "Whether to receive notification when an account needs admin review"
4694
  msgstr ""
4695
 
4696
- #: includes/class-config.php:500
4697
  msgid "Account Deletion Notification"
4698
  msgstr ""
4699
 
4700
- #: includes/class-config.php:503
4701
  msgid "Whether to receive notification when an account is deleted"
4702
  msgstr ""
4703
 
4704
- #: includes/class-config.php:526
4705
  msgid ""
4706
  "Are you sure you want to delete your account? This will erase all of your "
4707
  "account data from the site. To delete your account enter your password below"
@@ -4850,7 +4856,7 @@ msgstr ""
4850
  msgid "You must add a shortcode to the content area"
4851
  msgstr ""
4852
 
4853
- #: includes/core/class-builtin.php:663 includes/core/class-user.php:1558
4854
  msgid "Only me"
4855
  msgstr ""
4856
 
@@ -4860,15 +4866,17 @@ msgid "Username or E-mail"
4860
  msgstr ""
4861
 
4862
  #: includes/core/class-builtin.php:712 includes/core/class-builtin.php:715
 
4863
  msgid "First Name"
4864
  msgstr ""
4865
 
4866
  #: includes/core/class-builtin.php:722 includes/core/class-builtin.php:725
 
4867
  msgid "Last Name"
4868
  msgstr ""
4869
 
4870
  #: includes/core/class-builtin.php:742 includes/core/class-builtin.php:745
4871
- #: includes/core/class-builtin.php:1349
4872
  msgid "Website URL"
4873
  msgstr ""
4874
 
@@ -4877,7 +4885,7 @@ msgid "Registration Date"
4877
  msgstr ""
4878
 
4879
  #: includes/core/class-builtin.php:764 includes/core/class-builtin.php:767
4880
- #: includes/core/class-member-directory.php:265
4881
  msgid "Last Login"
4882
  msgstr ""
4883
 
@@ -4886,10 +4894,12 @@ msgid "E-mail Address"
4886
  msgstr ""
4887
 
4888
  #: includes/core/class-builtin.php:786 includes/core/class-builtin.php:789
 
4889
  msgid "Secondary E-mail Address"
4890
  msgstr ""
4891
 
4892
  #: includes/core/class-builtin.php:798 includes/core/class-builtin.php:801
 
4893
  msgid "Biography"
4894
  msgstr ""
4895
 
@@ -4902,7 +4912,7 @@ msgid "Birth Date"
4902
  msgstr ""
4903
 
4904
  #: includes/core/class-builtin.php:825 includes/core/class-builtin.php:828
4905
- #: includes/core/class-member-directory.php:261
4906
  msgid "Gender"
4907
  msgstr ""
4908
 
@@ -4915,7 +4925,7 @@ msgid "Female"
4915
  msgstr ""
4916
 
4917
  #: includes/core/class-builtin.php:836 includes/core/class-builtin.php:839
4918
- #: includes/core/class-member-directory.php:260
4919
  msgid "Country"
4920
  msgstr ""
4921
 
@@ -4973,7 +4983,7 @@ msgid "Roles (Radio)"
4973
  msgstr ""
4974
 
4975
  #: includes/core/class-builtin.php:1030
4976
- #: includes/core/class-member-directory.php:262
4977
  msgid "Languages"
4978
  msgstr ""
4979
 
@@ -4987,10 +4997,12 @@ msgstr ""
4987
 
4988
  #: includes/core/class-builtin.php:1042 includes/core/class-builtin.php:1045
4989
  #: includes/core/class-builtin.php:1341
 
4990
  msgid "Phone Number"
4991
  msgstr ""
4992
 
4993
  #: includes/core/class-builtin.php:1054 includes/core/class-builtin.php:1057
 
4994
  msgid "Mobile Number"
4995
  msgstr ""
4996
 
@@ -5011,7 +5023,7 @@ msgid "Cover Photo"
5011
  msgstr ""
5012
 
5013
  #: includes/core/class-builtin.php:1085
5014
- #: includes/core/um-actions-profile.php:609
5015
  msgid "Change your cover photo"
5016
  msgstr ""
5017
 
@@ -5094,1742 +5106,1746 @@ msgid "Twitter URL"
5094
  msgstr ""
5095
 
5096
  #: includes/core/class-builtin.php:1345
5097
- msgid "Unique E-mail"
5098
  msgstr ""
5099
 
5100
  #: includes/core/class-builtin.php:1346
5101
- msgid "Unique Metakey value"
5102
  msgstr ""
5103
 
5104
  #: includes/core/class-builtin.php:1347
5105
- msgid "Unique Username"
5106
  msgstr ""
5107
 
5108
  #: includes/core/class-builtin.php:1348
 
 
 
 
5109
  msgid "Unique Username/E-mail"
5110
  msgstr ""
5111
 
5112
- #: includes/core/class-builtin.php:1350
5113
  msgid "YouTube Profile"
5114
  msgstr ""
5115
 
5116
- #: includes/core/class-builtin.php:1351
5117
  msgid "Custom Validation"
5118
  msgstr ""
5119
 
5120
- #: includes/core/class-builtin.php:1390
5121
  msgid "Afar"
5122
  msgstr ""
5123
 
5124
- #: includes/core/class-builtin.php:1391
5125
  msgid "Abkhazian"
5126
  msgstr ""
5127
 
5128
- #: includes/core/class-builtin.php:1392
5129
  msgid "Avestan"
5130
  msgstr ""
5131
 
5132
- #: includes/core/class-builtin.php:1393
5133
  msgid "Afrikaans"
5134
  msgstr ""
5135
 
5136
- #: includes/core/class-builtin.php:1394
5137
  msgid "Akan"
5138
  msgstr ""
5139
 
5140
- #: includes/core/class-builtin.php:1395
5141
  msgid "Amharic"
5142
  msgstr ""
5143
 
5144
- #: includes/core/class-builtin.php:1396
5145
  msgid "Aragonese"
5146
  msgstr ""
5147
 
5148
- #: includes/core/class-builtin.php:1397
5149
  msgid "Arabic"
5150
  msgstr ""
5151
 
5152
- #: includes/core/class-builtin.php:1398
5153
  msgid "Assamese"
5154
  msgstr ""
5155
 
5156
- #: includes/core/class-builtin.php:1399
5157
  msgid "Avaric"
5158
  msgstr ""
5159
 
5160
- #: includes/core/class-builtin.php:1400
5161
  msgid "Aymara"
5162
  msgstr ""
5163
 
5164
- #: includes/core/class-builtin.php:1401
5165
  msgid "Azerbaijani"
5166
  msgstr ""
5167
 
5168
- #: includes/core/class-builtin.php:1402
5169
  msgid "Bashkir"
5170
  msgstr ""
5171
 
5172
- #: includes/core/class-builtin.php:1403
5173
  msgid "Belarusian"
5174
  msgstr ""
5175
 
5176
- #: includes/core/class-builtin.php:1404
5177
  msgid "Bulgarian"
5178
  msgstr ""
5179
 
5180
- #: includes/core/class-builtin.php:1405
5181
  msgid "Bihari"
5182
  msgstr ""
5183
 
5184
- #: includes/core/class-builtin.php:1406
5185
  msgid "Bislama"
5186
  msgstr ""
5187
 
5188
- #: includes/core/class-builtin.php:1407
5189
  msgid "Bambara"
5190
  msgstr ""
5191
 
5192
- #: includes/core/class-builtin.php:1408
5193
  msgid "Bengali"
5194
  msgstr ""
5195
 
5196
- #: includes/core/class-builtin.php:1409
5197
  msgid "Tibetan"
5198
  msgstr ""
5199
 
5200
- #: includes/core/class-builtin.php:1410
5201
  msgid "Breton"
5202
  msgstr ""
5203
 
5204
- #: includes/core/class-builtin.php:1411
5205
  msgid "Bosnian"
5206
  msgstr ""
5207
 
5208
- #: includes/core/class-builtin.php:1412
5209
  msgid "Catalan"
5210
  msgstr ""
5211
 
5212
- #: includes/core/class-builtin.php:1413
5213
  msgid "Chechen"
5214
  msgstr ""
5215
 
5216
- #: includes/core/class-builtin.php:1414
5217
  msgid "Chamorro"
5218
  msgstr ""
5219
 
5220
- #: includes/core/class-builtin.php:1415
5221
  msgid "Corsican"
5222
  msgstr ""
5223
 
5224
- #: includes/core/class-builtin.php:1416
5225
  msgid "Cree"
5226
  msgstr ""
5227
 
5228
- #: includes/core/class-builtin.php:1417
5229
  msgid "Czech"
5230
  msgstr ""
5231
 
5232
- #: includes/core/class-builtin.php:1418
5233
  msgid "Church Slavic"
5234
  msgstr ""
5235
 
5236
- #: includes/core/class-builtin.php:1419
5237
  msgid "Chuvash"
5238
  msgstr ""
5239
 
5240
- #: includes/core/class-builtin.php:1420
5241
  msgid "Welsh"
5242
  msgstr ""
5243
 
5244
- #: includes/core/class-builtin.php:1421
5245
  msgid "Danish"
5246
  msgstr ""
5247
 
5248
- #: includes/core/class-builtin.php:1422
5249
  msgid "German"
5250
  msgstr ""
5251
 
5252
- #: includes/core/class-builtin.php:1423
5253
  msgid "Divehi"
5254
  msgstr ""
5255
 
5256
- #: includes/core/class-builtin.php:1424
5257
  msgid "Dzongkha"
5258
  msgstr ""
5259
 
5260
- #: includes/core/class-builtin.php:1425
5261
  msgid "Ewe"
5262
  msgstr ""
5263
 
5264
- #: includes/core/class-builtin.php:1426
5265
  msgid "Greek"
5266
  msgstr ""
5267
 
5268
- #: includes/core/class-builtin.php:1427
5269
  msgid "English"
5270
  msgstr ""
5271
 
5272
- #: includes/core/class-builtin.php:1428
5273
  msgid "Esperanto"
5274
  msgstr ""
5275
 
5276
- #: includes/core/class-builtin.php:1429
5277
  msgid "Spanish"
5278
  msgstr ""
5279
 
5280
- #: includes/core/class-builtin.php:1430
5281
  msgid "Estonian"
5282
  msgstr ""
5283
 
5284
- #: includes/core/class-builtin.php:1431
5285
  msgid "Basque"
5286
  msgstr ""
5287
 
5288
- #: includes/core/class-builtin.php:1432
5289
  msgid "Persian"
5290
  msgstr ""
5291
 
5292
- #: includes/core/class-builtin.php:1433
5293
  msgid "Fulah"
5294
  msgstr ""
5295
 
5296
- #: includes/core/class-builtin.php:1434
5297
  msgid "Finnish"
5298
  msgstr ""
5299
 
5300
- #: includes/core/class-builtin.php:1435
5301
  msgid "Fijian"
5302
  msgstr ""
5303
 
5304
- #: includes/core/class-builtin.php:1436
5305
  msgid "Faroese"
5306
  msgstr ""
5307
 
5308
- #: includes/core/class-builtin.php:1437
5309
  msgid "French"
5310
  msgstr ""
5311
 
5312
- #: includes/core/class-builtin.php:1438
5313
  msgid "Western Frisian"
5314
  msgstr ""
5315
 
5316
- #: includes/core/class-builtin.php:1439
5317
  msgid "Irish"
5318
  msgstr ""
5319
 
5320
- #: includes/core/class-builtin.php:1440
5321
  msgid "Scottish Gaelic"
5322
  msgstr ""
5323
 
5324
- #: includes/core/class-builtin.php:1441
5325
  msgid "Galician"
5326
  msgstr ""
5327
 
5328
- #: includes/core/class-builtin.php:1442
5329
  msgid "Guarani"
5330
  msgstr ""
5331
 
5332
- #: includes/core/class-builtin.php:1443
5333
  msgid "Gujarati"
5334
  msgstr ""
5335
 
5336
- #: includes/core/class-builtin.php:1444
5337
  msgid "Manx"
5338
  msgstr ""
5339
 
5340
- #: includes/core/class-builtin.php:1445
5341
  msgid "Hausa"
5342
  msgstr ""
5343
 
5344
- #: includes/core/class-builtin.php:1446
5345
  msgid "Hebrew"
5346
  msgstr ""
5347
 
5348
- #: includes/core/class-builtin.php:1447
5349
  msgid "Hindi"
5350
  msgstr ""
5351
 
5352
- #: includes/core/class-builtin.php:1448
5353
  msgid "Hiri Motu"
5354
  msgstr ""
5355
 
5356
- #: includes/core/class-builtin.php:1449
5357
  msgid "Croatian"
5358
  msgstr ""
5359
 
5360
- #: includes/core/class-builtin.php:1450
5361
  msgid "Haitian"
5362
  msgstr ""
5363
 
5364
- #: includes/core/class-builtin.php:1451
5365
  msgid "Hungarian"
5366
  msgstr ""
5367
 
5368
- #: includes/core/class-builtin.php:1452
5369
  msgid "Armenian"
5370
  msgstr ""
5371
 
5372
- #: includes/core/class-builtin.php:1453
5373
  msgid "Herero"
5374
  msgstr ""
5375
 
5376
- #: includes/core/class-builtin.php:1454
5377
  msgid "Interlingua (International Auxiliary Language Association)"
5378
  msgstr ""
5379
 
5380
- #: includes/core/class-builtin.php:1455
5381
  msgid "Indonesian"
5382
  msgstr ""
5383
 
5384
- #: includes/core/class-builtin.php:1456
5385
  msgid "Interlingue"
5386
  msgstr ""
5387
 
5388
- #: includes/core/class-builtin.php:1457
5389
  msgid "Igbo"
5390
  msgstr ""
5391
 
5392
- #: includes/core/class-builtin.php:1458
5393
  msgid "Sichuan Yi"
5394
  msgstr ""
5395
 
5396
- #: includes/core/class-builtin.php:1459
5397
  msgid "Inupiaq"
5398
  msgstr ""
5399
 
5400
- #: includes/core/class-builtin.php:1460
5401
  msgid "Ido"
5402
  msgstr ""
5403
 
5404
- #: includes/core/class-builtin.php:1461
5405
  msgid "Icelandic"
5406
  msgstr ""
5407
 
5408
- #: includes/core/class-builtin.php:1462
5409
  msgid "Italian"
5410
  msgstr ""
5411
 
5412
- #: includes/core/class-builtin.php:1463
5413
  msgid "Inuktitut"
5414
  msgstr ""
5415
 
5416
- #: includes/core/class-builtin.php:1464
5417
  msgid "Japanese"
5418
  msgstr ""
5419
 
5420
- #: includes/core/class-builtin.php:1465
5421
  msgid "Javanese"
5422
  msgstr ""
5423
 
5424
- #: includes/core/class-builtin.php:1466
5425
  msgid "Georgian"
5426
  msgstr ""
5427
 
5428
- #: includes/core/class-builtin.php:1467
5429
  msgid "Kongo"
5430
  msgstr ""
5431
 
5432
- #: includes/core/class-builtin.php:1468
5433
  msgid "Kikuyu"
5434
  msgstr ""
5435
 
5436
- #: includes/core/class-builtin.php:1469
5437
  msgid "Kwanyama"
5438
  msgstr ""
5439
 
5440
- #: includes/core/class-builtin.php:1470
5441
  msgid "Kazakh"
5442
  msgstr ""
5443
 
5444
- #: includes/core/class-builtin.php:1471
5445
  msgid "Kalaallisut"
5446
  msgstr ""
5447
 
5448
- #: includes/core/class-builtin.php:1472
5449
  msgid "Khmer"
5450
  msgstr ""
5451
 
5452
- #: includes/core/class-builtin.php:1473
5453
  msgid "Kannada"
5454
  msgstr ""
5455
 
5456
- #: includes/core/class-builtin.php:1474
5457
  msgid "Korean"
5458
  msgstr ""
5459
 
5460
- #: includes/core/class-builtin.php:1475
5461
  msgid "Kanuri"
5462
  msgstr ""
5463
 
5464
- #: includes/core/class-builtin.php:1476
5465
  msgid "Kashmiri"
5466
  msgstr ""
5467
 
5468
- #: includes/core/class-builtin.php:1477
5469
  msgid "Kurdish"
5470
  msgstr ""
5471
 
5472
- #: includes/core/class-builtin.php:1478
5473
  msgid "Komi"
5474
  msgstr ""
5475
 
5476
- #: includes/core/class-builtin.php:1479
5477
  msgid "Cornish"
5478
  msgstr ""
5479
 
5480
- #: includes/core/class-builtin.php:1480
5481
  msgid "Kirghiz"
5482
  msgstr ""
5483
 
5484
- #: includes/core/class-builtin.php:1481
5485
  msgid "Latin"
5486
  msgstr ""
5487
 
5488
- #: includes/core/class-builtin.php:1482
5489
  msgid "Luxembourgish"
5490
  msgstr ""
5491
 
5492
- #: includes/core/class-builtin.php:1483
5493
  msgid "Ganda"
5494
  msgstr ""
5495
 
5496
- #: includes/core/class-builtin.php:1484
5497
  msgid "Limburgish"
5498
  msgstr ""
5499
 
5500
- #: includes/core/class-builtin.php:1485
5501
  msgid "Lingala"
5502
  msgstr ""
5503
 
5504
- #: includes/core/class-builtin.php:1486
5505
  msgid "Lao"
5506
  msgstr ""
5507
 
5508
- #: includes/core/class-builtin.php:1487
5509
  msgid "Lithuanian"
5510
  msgstr ""
5511
 
5512
- #: includes/core/class-builtin.php:1488
5513
  msgid "Luba-Katanga"
5514
  msgstr ""
5515
 
5516
- #: includes/core/class-builtin.php:1489
5517
  msgid "Latvian"
5518
  msgstr ""
5519
 
5520
- #: includes/core/class-builtin.php:1490
5521
  msgid "Malagasy"
5522
  msgstr ""
5523
 
5524
- #: includes/core/class-builtin.php:1491
5525
  msgid "Marshallese"
5526
  msgstr ""
5527
 
5528
- #: includes/core/class-builtin.php:1492
5529
  msgid "Maori"
5530
  msgstr ""
5531
 
5532
- #: includes/core/class-builtin.php:1493
5533
  msgid "Macedonian"
5534
  msgstr ""
5535
 
5536
- #: includes/core/class-builtin.php:1494
5537
  msgid "Malayalam"
5538
  msgstr ""
5539
 
5540
- #: includes/core/class-builtin.php:1495
5541
  msgid "Mongolian"
5542
  msgstr ""
5543
 
5544
- #: includes/core/class-builtin.php:1496
5545
  msgid "Marathi"
5546
  msgstr ""
5547
 
5548
- #: includes/core/class-builtin.php:1497
5549
  msgid "Malay"
5550
  msgstr ""
5551
 
5552
- #: includes/core/class-builtin.php:1498
5553
  msgid "Maltese"
5554
  msgstr ""
5555
 
5556
- #: includes/core/class-builtin.php:1499
5557
  msgid "Burmese"
5558
  msgstr ""
5559
 
5560
- #: includes/core/class-builtin.php:1500 includes/core/class-builtin.php:1731
5561
  msgid "Nauru"
5562
  msgstr ""
5563
 
5564
- #: includes/core/class-builtin.php:1501
5565
  msgid "Norwegian Bokmal"
5566
  msgstr ""
5567
 
5568
- #: includes/core/class-builtin.php:1502
5569
  msgid "North Ndebele"
5570
  msgstr ""
5571
 
5572
- #: includes/core/class-builtin.php:1503
5573
  msgid "Nepali"
5574
  msgstr ""
5575
 
5576
- #: includes/core/class-builtin.php:1504
5577
  msgid "Ndonga"
5578
  msgstr ""
5579
 
5580
- #: includes/core/class-builtin.php:1505
5581
  msgid "Dutch"
5582
  msgstr ""
5583
 
5584
- #: includes/core/class-builtin.php:1506
5585
  msgid "Norwegian Nynorsk"
5586
  msgstr ""
5587
 
5588
- #: includes/core/class-builtin.php:1507
5589
  msgid "Norwegian"
5590
  msgstr ""
5591
 
5592
- #: includes/core/class-builtin.php:1508
5593
  msgid "South Ndebele"
5594
  msgstr ""
5595
 
5596
- #: includes/core/class-builtin.php:1509
5597
  msgid "Navajo"
5598
  msgstr ""
5599
 
5600
- #: includes/core/class-builtin.php:1510
5601
  msgid "Chichewa"
5602
  msgstr ""
5603
 
5604
- #: includes/core/class-builtin.php:1511
5605
  msgid "Occitan"
5606
  msgstr ""
5607
 
5608
- #: includes/core/class-builtin.php:1512
5609
  msgid "Ojibwa"
5610
  msgstr ""
5611
 
5612
- #: includes/core/class-builtin.php:1513
5613
  msgid "Oromo"
5614
  msgstr ""
5615
 
5616
- #: includes/core/class-builtin.php:1514
5617
  msgid "Oriya"
5618
  msgstr ""
5619
 
5620
- #: includes/core/class-builtin.php:1515
5621
  msgid "Ossetian"
5622
  msgstr ""
5623
 
5624
- #: includes/core/class-builtin.php:1516
5625
  msgid "Panjabi"
5626
  msgstr ""
5627
 
5628
- #: includes/core/class-builtin.php:1517
5629
  msgid "Pali"
5630
  msgstr ""
5631
 
5632
- #: includes/core/class-builtin.php:1518
5633
  msgid "Polish"
5634
  msgstr ""
5635
 
5636
- #: includes/core/class-builtin.php:1519
5637
  msgid "Pashto"
5638
  msgstr ""
5639
 
5640
- #: includes/core/class-builtin.php:1520
5641
  msgid "Portuguese"
5642
  msgstr ""
5643
 
5644
- #: includes/core/class-builtin.php:1521
5645
  msgid "Quechua"
5646
  msgstr ""
5647
 
5648
- #: includes/core/class-builtin.php:1522
5649
  msgid "Raeto-Romance"
5650
  msgstr ""
5651
 
5652
- #: includes/core/class-builtin.php:1523
5653
  msgid "Kirundi"
5654
  msgstr ""
5655
 
5656
- #: includes/core/class-builtin.php:1524
5657
  msgid "Romanian"
5658
  msgstr ""
5659
 
5660
- #: includes/core/class-builtin.php:1525
5661
  msgid "Russian"
5662
  msgstr ""
5663
 
5664
- #: includes/core/class-builtin.php:1526
5665
  msgid "Kinyarwanda"
5666
  msgstr ""
5667
 
5668
- #: includes/core/class-builtin.php:1527
5669
  msgid "Sanskrit"
5670
  msgstr ""
5671
 
5672
- #: includes/core/class-builtin.php:1528
5673
  msgid "Sardinian"
5674
  msgstr ""
5675
 
5676
- #: includes/core/class-builtin.php:1529
5677
  msgid "Sindhi"
5678
  msgstr ""
5679
 
5680
- #: includes/core/class-builtin.php:1530
5681
  msgid "Northern Sami"
5682
  msgstr ""
5683
 
5684
- #: includes/core/class-builtin.php:1531
5685
  msgid "Sango"
5686
  msgstr ""
5687
 
5688
- #: includes/core/class-builtin.php:1532
5689
  msgid "Sinhala"
5690
  msgstr ""
5691
 
5692
- #: includes/core/class-builtin.php:1533
5693
  msgid "Slovak"
5694
  msgstr ""
5695
 
5696
- #: includes/core/class-builtin.php:1534
5697
  msgid "Slovenian"
5698
  msgstr ""
5699
 
5700
- #: includes/core/class-builtin.php:1535
5701
  msgid "Samoan"
5702
  msgstr ""
5703
 
5704
- #: includes/core/class-builtin.php:1536
5705
  msgid "Shona"
5706
  msgstr ""
5707
 
5708
- #: includes/core/class-builtin.php:1537
5709
  msgid "Somali"
5710
  msgstr ""
5711
 
5712
- #: includes/core/class-builtin.php:1538
5713
  msgid "Albanian"
5714
  msgstr ""
5715
 
5716
- #: includes/core/class-builtin.php:1539
5717
  msgid "Serbian"
5718
  msgstr ""
5719
 
5720
- #: includes/core/class-builtin.php:1540
5721
  msgid "Swati"
5722
  msgstr ""
5723
 
5724
- #: includes/core/class-builtin.php:1541
5725
  msgid "Southern Sotho"
5726
  msgstr ""
5727
 
5728
- #: includes/core/class-builtin.php:1542
5729
  msgid "Sundanese"
5730
  msgstr ""
5731
 
5732
- #: includes/core/class-builtin.php:1543
5733
  msgid "Swedish"
5734
  msgstr ""
5735
 
5736
- #: includes/core/class-builtin.php:1544
5737
  msgid "Swahili"
5738
  msgstr ""
5739
 
5740
- #: includes/core/class-builtin.php:1545
5741
  msgid "Tamil"
5742
  msgstr ""
5743
 
5744
- #: includes/core/class-builtin.php:1546
5745
  msgid "Telugu"
5746
  msgstr ""
5747
 
5748
- #: includes/core/class-builtin.php:1547
5749
  msgid "Tajik"
5750
  msgstr ""
5751
 
5752
- #: includes/core/class-builtin.php:1548
5753
  msgid "Thai"
5754
  msgstr ""
5755
 
5756
- #: includes/core/class-builtin.php:1549
5757
  msgid "Tigrinya"
5758
  msgstr ""
5759
 
5760
- #: includes/core/class-builtin.php:1550
5761
  msgid "Turkmen"
5762
  msgstr ""
5763
 
5764
- #: includes/core/class-builtin.php:1551
5765
  msgid "Tagalog"
5766
  msgstr ""
5767
 
5768
- #: includes/core/class-builtin.php:1552
5769
  msgid "Tswana"
5770
  msgstr ""
5771
 
5772
- #: includes/core/class-builtin.php:1553 includes/core/class-builtin.php:1801
5773
  msgid "Tonga"
5774
  msgstr ""
5775
 
5776
- #: includes/core/class-builtin.php:1554
5777
  msgid "Turkish"
5778
  msgstr ""
5779
 
5780
- #: includes/core/class-builtin.php:1555
5781
  msgid "Tsonga"
5782
  msgstr ""
5783
 
5784
- #: includes/core/class-builtin.php:1556
5785
  msgid "Tatar"
5786
  msgstr ""
5787
 
5788
- #: includes/core/class-builtin.php:1557
5789
  msgid "Twi"
5790
  msgstr ""
5791
 
5792
- #: includes/core/class-builtin.php:1558
5793
  msgid "Tahitian"
5794
  msgstr ""
5795
 
5796
- #: includes/core/class-builtin.php:1559
5797
  msgid "Uighur"
5798
  msgstr ""
5799
 
5800
- #: includes/core/class-builtin.php:1560
5801
  msgid "Ukrainian"
5802
  msgstr ""
5803
 
5804
- #: includes/core/class-builtin.php:1561
5805
  msgid "Urdu"
5806
  msgstr ""
5807
 
5808
- #: includes/core/class-builtin.php:1562
5809
  msgid "Uzbek"
5810
  msgstr ""
5811
 
5812
- #: includes/core/class-builtin.php:1563
5813
  msgid "Venda"
5814
  msgstr ""
5815
 
5816
- #: includes/core/class-builtin.php:1564
5817
  msgid "Vietnamese"
5818
  msgstr ""
5819
 
5820
- #: includes/core/class-builtin.php:1565
5821
  msgid "Volapuk"
5822
  msgstr ""
5823
 
5824
- #: includes/core/class-builtin.php:1566
5825
  msgid "Walloon"
5826
  msgstr ""
5827
 
5828
- #: includes/core/class-builtin.php:1567
5829
  msgid "Wolof"
5830
  msgstr ""
5831
 
5832
- #: includes/core/class-builtin.php:1568
5833
  msgid "Xhosa"
5834
  msgstr ""
5835
 
5836
- #: includes/core/class-builtin.php:1569
5837
  msgid "Yiddish"
5838
  msgstr ""
5839
 
5840
- #: includes/core/class-builtin.php:1570
5841
  msgid "Yoruba"
5842
  msgstr ""
5843
 
5844
- #: includes/core/class-builtin.php:1571
5845
  msgid "Zhuang"
5846
  msgstr ""
5847
 
5848
- #: includes/core/class-builtin.php:1572
5849
  msgid "Chinese"
5850
  msgstr ""
5851
 
5852
- #: includes/core/class-builtin.php:1573
5853
  msgid "Zulu"
5854
  msgstr ""
5855
 
5856
- #: includes/core/class-builtin.php:1579
5857
  msgid "Afghanistan"
5858
  msgstr ""
5859
 
5860
- #: includes/core/class-builtin.php:1580
5861
  msgid "Åland Islands"
5862
  msgstr ""
5863
 
5864
- #: includes/core/class-builtin.php:1581
5865
  msgid "Albania"
5866
  msgstr ""
5867
 
5868
- #: includes/core/class-builtin.php:1582
5869
  msgid "Algeria"
5870
  msgstr ""
5871
 
5872
- #: includes/core/class-builtin.php:1583
5873
  msgid "American Samoa"
5874
  msgstr ""
5875
 
5876
- #: includes/core/class-builtin.php:1584
5877
  msgid "Andorra"
5878
  msgstr ""
5879
 
5880
- #: includes/core/class-builtin.php:1585
5881
  msgid "Angola"
5882
  msgstr ""
5883
 
5884
- #: includes/core/class-builtin.php:1586
5885
  msgid "Anguilla"
5886
  msgstr ""
5887
 
5888
- #: includes/core/class-builtin.php:1587
5889
  msgid "Antarctica"
5890
  msgstr ""
5891
 
5892
- #: includes/core/class-builtin.php:1588
5893
  msgid "Antigua and Barbuda"
5894
  msgstr ""
5895
 
5896
- #: includes/core/class-builtin.php:1589
5897
  msgid "Argentina"
5898
  msgstr ""
5899
 
5900
- #: includes/core/class-builtin.php:1590
5901
  msgid "Armenia"
5902
  msgstr ""
5903
 
5904
- #: includes/core/class-builtin.php:1591
5905
  msgid "Aruba"
5906
  msgstr ""
5907
 
5908
- #: includes/core/class-builtin.php:1592
5909
  msgid "Australia"
5910
  msgstr ""
5911
 
5912
- #: includes/core/class-builtin.php:1593
5913
  msgid "Austria"
5914
  msgstr ""
5915
 
5916
- #: includes/core/class-builtin.php:1594
5917
  msgid "Azerbaijan"
5918
  msgstr ""
5919
 
5920
- #: includes/core/class-builtin.php:1595
5921
  msgid "Bahamas"
5922
  msgstr ""
5923
 
5924
- #: includes/core/class-builtin.php:1596
5925
  msgid "Bahrain"
5926
  msgstr ""
5927
 
5928
- #: includes/core/class-builtin.php:1597
5929
  msgid "Bangladesh"
5930
  msgstr ""
5931
 
5932
- #: includes/core/class-builtin.php:1598
5933
  msgid "Barbados"
5934
  msgstr ""
5935
 
5936
- #: includes/core/class-builtin.php:1599
5937
  msgid "Belarus"
5938
  msgstr ""
5939
 
5940
- #: includes/core/class-builtin.php:1600
5941
  msgid "Belgium"
5942
  msgstr ""
5943
 
5944
- #: includes/core/class-builtin.php:1601
5945
  msgid "Belize"
5946
  msgstr ""
5947
 
5948
- #: includes/core/class-builtin.php:1602
5949
  msgid "Benin"
5950
  msgstr ""
5951
 
5952
- #: includes/core/class-builtin.php:1603
5953
  msgid "Bermuda"
5954
  msgstr ""
5955
 
5956
- #: includes/core/class-builtin.php:1604
5957
  msgid "Bhutan"
5958
  msgstr ""
5959
 
5960
- #: includes/core/class-builtin.php:1605
5961
  msgid "Bolivia, Plurinational State of"
5962
  msgstr ""
5963
 
5964
- #: includes/core/class-builtin.php:1606
5965
  msgid "Bosnia and Herzegovina"
5966
  msgstr ""
5967
 
5968
- #: includes/core/class-builtin.php:1607
5969
  msgid "Botswana"
5970
  msgstr ""
5971
 
5972
- #: includes/core/class-builtin.php:1608
5973
  msgid "Bouvet Island"
5974
  msgstr ""
5975
 
5976
- #: includes/core/class-builtin.php:1609
5977
  msgid "Brazil"
5978
  msgstr ""
5979
 
5980
- #: includes/core/class-builtin.php:1610
5981
  msgid "British Indian Ocean Territory"
5982
  msgstr ""
5983
 
5984
- #: includes/core/class-builtin.php:1611
5985
  msgid "Brunei Darussalam"
5986
  msgstr ""
5987
 
5988
- #: includes/core/class-builtin.php:1612
5989
  msgid "Bulgaria"
5990
  msgstr ""
5991
 
5992
- #: includes/core/class-builtin.php:1613
5993
  msgid "Burkina Faso"
5994
  msgstr ""
5995
 
5996
- #: includes/core/class-builtin.php:1614
5997
  msgid "Burundi"
5998
  msgstr ""
5999
 
6000
- #: includes/core/class-builtin.php:1615
6001
  msgid "Cambodia"
6002
  msgstr ""
6003
 
6004
- #: includes/core/class-builtin.php:1616
6005
  msgid "Cameroon"
6006
  msgstr ""
6007
 
6008
- #: includes/core/class-builtin.php:1617
6009
  msgid "Canada"
6010
  msgstr ""
6011
 
6012
- #: includes/core/class-builtin.php:1618
6013
  msgid "Cape Verde"
6014
  msgstr ""
6015
 
6016
- #: includes/core/class-builtin.php:1619
6017
  msgid "Cayman Islands"
6018
  msgstr ""
6019
 
6020
- #: includes/core/class-builtin.php:1620
6021
  msgid "Central African Republic"
6022
  msgstr ""
6023
 
6024
- #: includes/core/class-builtin.php:1621
6025
  msgid "Chad"
6026
  msgstr ""
6027
 
6028
- #: includes/core/class-builtin.php:1622
6029
  msgid "Chile"
6030
  msgstr ""
6031
 
6032
- #: includes/core/class-builtin.php:1623
6033
  msgid "China"
6034
  msgstr ""
6035
 
6036
- #: includes/core/class-builtin.php:1624
6037
  msgid "Christmas Island"
6038
  msgstr ""
6039
 
6040
- #: includes/core/class-builtin.php:1625
6041
  msgid "Cocos (Keeling) Islands"
6042
  msgstr ""
6043
 
6044
- #: includes/core/class-builtin.php:1626
6045
  msgid "Colombia"
6046
  msgstr ""
6047
 
6048
- #: includes/core/class-builtin.php:1627
6049
  msgid "Comoros"
6050
  msgstr ""
6051
 
6052
- #: includes/core/class-builtin.php:1628
6053
  msgid "Congo"
6054
  msgstr ""
6055
 
6056
- #: includes/core/class-builtin.php:1629
6057
  msgid "Congo, the Democratic Republic of the"
6058
  msgstr ""
6059
 
6060
- #: includes/core/class-builtin.php:1630
6061
  msgid "Cook Islands"
6062
  msgstr ""
6063
 
6064
- #: includes/core/class-builtin.php:1631
6065
  msgid "Costa Rica"
6066
  msgstr ""
6067
 
6068
- #: includes/core/class-builtin.php:1632
6069
  msgid "Côte d'Ivoire"
6070
  msgstr ""
6071
 
6072
- #: includes/core/class-builtin.php:1633
6073
  msgid "Croatia"
6074
  msgstr ""
6075
 
6076
- #: includes/core/class-builtin.php:1634
6077
  msgid "Cuba"
6078
  msgstr ""
6079
 
6080
- #: includes/core/class-builtin.php:1635
6081
  msgid "Cyprus"
6082
  msgstr ""
6083
 
6084
- #: includes/core/class-builtin.php:1636
6085
  msgid "Czech Republic"
6086
  msgstr ""
6087
 
6088
- #: includes/core/class-builtin.php:1637
6089
  msgid "Denmark"
6090
  msgstr ""
6091
 
6092
- #: includes/core/class-builtin.php:1638
6093
  msgid "Djibouti"
6094
  msgstr ""
6095
 
6096
- #: includes/core/class-builtin.php:1639
6097
  msgid "Dominica"
6098
  msgstr ""
6099
 
6100
- #: includes/core/class-builtin.php:1640
6101
  msgid "Dominican Republic"
6102
  msgstr ""
6103
 
6104
- #: includes/core/class-builtin.php:1641
6105
  msgid "Ecuador"
6106
  msgstr ""
6107
 
6108
- #: includes/core/class-builtin.php:1642
6109
  msgid "Egypt"
6110
  msgstr ""
6111
 
6112
- #: includes/core/class-builtin.php:1643
6113
  msgid "El Salvador"
6114
  msgstr ""
6115
 
6116
- #: includes/core/class-builtin.php:1644
6117
  msgid "Equatorial Guinea"
6118
  msgstr ""
6119
 
6120
- #: includes/core/class-builtin.php:1645
6121
  msgid "Eritrea"
6122
  msgstr ""
6123
 
6124
- #: includes/core/class-builtin.php:1646
6125
  msgid "Estonia"
6126
  msgstr ""
6127
 
6128
- #: includes/core/class-builtin.php:1647
6129
  msgid "Ethiopia"
6130
  msgstr ""
6131
 
6132
- #: includes/core/class-builtin.php:1648
6133
  msgid "Falkland Islands (Malvinas)"
6134
  msgstr ""
6135
 
6136
- #: includes/core/class-builtin.php:1649
6137
  msgid "Faroe Islands"
6138
  msgstr ""
6139
 
6140
- #: includes/core/class-builtin.php:1650
6141
  msgid "Fiji"
6142
  msgstr ""
6143
 
6144
- #: includes/core/class-builtin.php:1651
6145
  msgid "Finland"
6146
  msgstr ""
6147
 
6148
- #: includes/core/class-builtin.php:1652
6149
  msgid "France"
6150
  msgstr ""
6151
 
6152
- #: includes/core/class-builtin.php:1653
6153
  msgid "French Guiana"
6154
  msgstr ""
6155
 
6156
- #: includes/core/class-builtin.php:1654
6157
  msgid "French Polynesia"
6158
  msgstr ""
6159
 
6160
- #: includes/core/class-builtin.php:1655
6161
  msgid "French Southern Territories"
6162
  msgstr ""
6163
 
6164
- #: includes/core/class-builtin.php:1656
6165
  msgid "Gabon"
6166
  msgstr ""
6167
 
6168
- #: includes/core/class-builtin.php:1657
6169
  msgid "Gambia"
6170
  msgstr ""
6171
 
6172
- #: includes/core/class-builtin.php:1658
6173
  msgid "Georgia"
6174
  msgstr ""
6175
 
6176
- #: includes/core/class-builtin.php:1659
6177
  msgid "Germany"
6178
  msgstr ""
6179
 
6180
- #: includes/core/class-builtin.php:1660
6181
  msgid "Ghana"
6182
  msgstr ""
6183
 
6184
- #: includes/core/class-builtin.php:1661
6185
  msgid "Gibraltar"
6186
  msgstr ""
6187
 
6188
- #: includes/core/class-builtin.php:1662
6189
  msgid "Greece"
6190
  msgstr ""
6191
 
6192
- #: includes/core/class-builtin.php:1663
6193
  msgid "Greenland"
6194
  msgstr ""
6195
 
6196
- #: includes/core/class-builtin.php:1664
6197
  msgid "Grenada"
6198
  msgstr ""
6199
 
6200
- #: includes/core/class-builtin.php:1665
6201
  msgid "Guadeloupe"
6202
  msgstr ""
6203
 
6204
- #: includes/core/class-builtin.php:1666
6205
  msgid "Guam"
6206
  msgstr ""
6207
 
6208
- #: includes/core/class-builtin.php:1667
6209
  msgid "Guatemala"
6210
  msgstr ""
6211
 
6212
- #: includes/core/class-builtin.php:1668
6213
  msgid "Guernsey"
6214
  msgstr ""
6215
 
6216
- #: includes/core/class-builtin.php:1669
6217
  msgid "Guinea"
6218
  msgstr ""
6219
 
6220
- #: includes/core/class-builtin.php:1670
6221
  msgid "Guinea-Bissau"
6222
  msgstr ""
6223
 
6224
- #: includes/core/class-builtin.php:1671
6225
  msgid "Guyana"
6226
  msgstr ""
6227
 
6228
- #: includes/core/class-builtin.php:1672
6229
  msgid "Haiti"
6230
  msgstr ""
6231
 
6232
- #: includes/core/class-builtin.php:1673
6233
  msgid "Heard Island and McDonald Islands"
6234
  msgstr ""
6235
 
6236
- #: includes/core/class-builtin.php:1674
6237
  msgid "Holy See (Vatican City State)"
6238
  msgstr ""
6239
 
6240
- #: includes/core/class-builtin.php:1675
6241
  msgid "Honduras"
6242
  msgstr ""
6243
 
6244
- #: includes/core/class-builtin.php:1676
6245
  msgid "Hong Kong"
6246
  msgstr ""
6247
 
6248
- #: includes/core/class-builtin.php:1677
6249
  msgid "Hungary"
6250
  msgstr ""
6251
 
6252
- #: includes/core/class-builtin.php:1678
6253
  msgid "Iceland"
6254
  msgstr ""
6255
 
6256
- #: includes/core/class-builtin.php:1679
6257
  msgid "India"
6258
  msgstr ""
6259
 
6260
- #: includes/core/class-builtin.php:1680
6261
  msgid "Indonesia"
6262
  msgstr ""
6263
 
6264
- #: includes/core/class-builtin.php:1681
6265
  msgid "Iran, Islamic Republic of"
6266
  msgstr ""
6267
 
6268
- #: includes/core/class-builtin.php:1682
6269
  msgid "Iraq"
6270
  msgstr ""
6271
 
6272
- #: includes/core/class-builtin.php:1683
6273
  msgid "Ireland"
6274
  msgstr ""
6275
 
6276
- #: includes/core/class-builtin.php:1684
6277
  msgid "Isle of Man"
6278
  msgstr ""
6279
 
6280
- #: includes/core/class-builtin.php:1685
6281
  msgid "Israel"
6282
  msgstr ""
6283
 
6284
- #: includes/core/class-builtin.php:1686
6285
  msgid "Italy"
6286
  msgstr ""
6287
 
6288
- #: includes/core/class-builtin.php:1687
6289
  msgid "Jamaica"
6290
  msgstr ""
6291
 
6292
- #: includes/core/class-builtin.php:1688
6293
  msgid "Japan"
6294
  msgstr ""
6295
 
6296
- #: includes/core/class-builtin.php:1689
6297
  msgid "Jersey"
6298
  msgstr ""
6299
 
6300
- #: includes/core/class-builtin.php:1690
6301
  msgid "Jordan"
6302
  msgstr ""
6303
 
6304
- #: includes/core/class-builtin.php:1691
6305
  msgid "Kazakhstan"
6306
  msgstr ""
6307
 
6308
- #: includes/core/class-builtin.php:1692
6309
  msgid "Kenya"
6310
  msgstr ""
6311
 
6312
- #: includes/core/class-builtin.php:1693
6313
  msgid "Kiribati"
6314
  msgstr ""
6315
 
6316
- #: includes/core/class-builtin.php:1694
6317
  msgid "Korea, Democratic People's Republic of"
6318
  msgstr ""
6319
 
6320
- #: includes/core/class-builtin.php:1695
6321
  msgid "Korea, Republic of"
6322
  msgstr ""
6323
 
6324
- #: includes/core/class-builtin.php:1696
6325
  msgid "Kuwait"
6326
  msgstr ""
6327
 
6328
- #: includes/core/class-builtin.php:1697
6329
  msgid "Kyrgyzstan"
6330
  msgstr ""
6331
 
6332
- #: includes/core/class-builtin.php:1698
6333
  msgid "Lao People's Democratic Republic"
6334
  msgstr ""
6335
 
6336
- #: includes/core/class-builtin.php:1699
6337
  msgid "Latvia"
6338
  msgstr ""
6339
 
6340
- #: includes/core/class-builtin.php:1700
6341
  msgid "Lebanon"
6342
  msgstr ""
6343
 
6344
- #: includes/core/class-builtin.php:1701
6345
  msgid "Lesotho"
6346
  msgstr ""
6347
 
6348
- #: includes/core/class-builtin.php:1702
6349
  msgid "Liberia"
6350
  msgstr ""
6351
 
6352
- #: includes/core/class-builtin.php:1703
6353
  msgid "Libyan Arab Jamahiriya"
6354
  msgstr ""
6355
 
6356
- #: includes/core/class-builtin.php:1704
6357
  msgid "Liechtenstein"
6358
  msgstr ""
6359
 
6360
- #: includes/core/class-builtin.php:1705
6361
  msgid "Lithuania"
6362
  msgstr ""
6363
 
6364
- #: includes/core/class-builtin.php:1706
6365
  msgid "Luxembourg"
6366
  msgstr ""
6367
 
6368
- #: includes/core/class-builtin.php:1707
6369
  msgid "Macao"
6370
  msgstr ""
6371
 
6372
- #: includes/core/class-builtin.php:1708
6373
  msgid "Macedonia, the former Yugoslav Republic of"
6374
  msgstr ""
6375
 
6376
- #: includes/core/class-builtin.php:1709
6377
  msgid "Madagascar"
6378
  msgstr ""
6379
 
6380
- #: includes/core/class-builtin.php:1710
6381
  msgid "Malawi"
6382
  msgstr ""
6383
 
6384
- #: includes/core/class-builtin.php:1711
6385
  msgid "Malaysia"
6386
  msgstr ""
6387
 
6388
- #: includes/core/class-builtin.php:1712
6389
  msgid "Maldives"
6390
  msgstr ""
6391
 
6392
- #: includes/core/class-builtin.php:1713
6393
  msgid "Mali"
6394
  msgstr ""
6395
 
6396
- #: includes/core/class-builtin.php:1714
6397
  msgid "Malta"
6398
  msgstr ""
6399
 
6400
- #: includes/core/class-builtin.php:1715
6401
  msgid "Marshall Islands"
6402
  msgstr ""
6403
 
6404
- #: includes/core/class-builtin.php:1716
6405
  msgid "Martinique"
6406
  msgstr ""
6407
 
6408
- #: includes/core/class-builtin.php:1717
6409
  msgid "Mauritania"
6410
  msgstr ""
6411
 
6412
- #: includes/core/class-builtin.php:1718
6413
  msgid "Mauritius"
6414
  msgstr ""
6415
 
6416
- #: includes/core/class-builtin.php:1719
6417
  msgid "Mayotte"
6418
  msgstr ""
6419
 
6420
- #: includes/core/class-builtin.php:1720
6421
  msgid "Mexico"
6422
  msgstr ""
6423
 
6424
- #: includes/core/class-builtin.php:1721
6425
  msgid "Micronesia, Federated States of"
6426
  msgstr ""
6427
 
6428
- #: includes/core/class-builtin.php:1722
6429
  msgid "Moldova, Republic of"
6430
  msgstr ""
6431
 
6432
- #: includes/core/class-builtin.php:1723
6433
  msgid "Monaco"
6434
  msgstr ""
6435
 
6436
- #: includes/core/class-builtin.php:1724
6437
  msgid "Mongolia"
6438
  msgstr ""
6439
 
6440
- #: includes/core/class-builtin.php:1725
6441
  msgid "Montenegro"
6442
  msgstr ""
6443
 
6444
- #: includes/core/class-builtin.php:1726
6445
  msgid "Montserrat"
6446
  msgstr ""
6447
 
6448
- #: includes/core/class-builtin.php:1727
6449
  msgid "Morocco"
6450
  msgstr ""
6451
 
6452
- #: includes/core/class-builtin.php:1728
6453
  msgid "Mozambique"
6454
  msgstr ""
6455
 
6456
- #: includes/core/class-builtin.php:1729
6457
  msgid "Myanmar"
6458
  msgstr ""
6459
 
6460
- #: includes/core/class-builtin.php:1730
6461
  msgid "Namibia"
6462
  msgstr ""
6463
 
6464
- #: includes/core/class-builtin.php:1732
6465
  msgid "Nepal"
6466
  msgstr ""
6467
 
6468
- #: includes/core/class-builtin.php:1733
6469
  msgid "Netherlands"
6470
  msgstr ""
6471
 
6472
- #: includes/core/class-builtin.php:1734
6473
  msgid "Netherlands Antilles"
6474
  msgstr ""
6475
 
6476
- #: includes/core/class-builtin.php:1735
6477
  msgid "New Caledonia"
6478
  msgstr ""
6479
 
6480
- #: includes/core/class-builtin.php:1736
6481
  msgid "New Zealand"
6482
  msgstr ""
6483
 
6484
- #: includes/core/class-builtin.php:1737
6485
  msgid "Nicaragua"
6486
  msgstr ""
6487
 
6488
- #: includes/core/class-builtin.php:1738
6489
  msgid "Niger"
6490
  msgstr ""
6491
 
6492
- #: includes/core/class-builtin.php:1739
6493
  msgid "Nigeria"
6494
  msgstr ""
6495
 
6496
- #: includes/core/class-builtin.php:1740
6497
  msgid "Niue"
6498
  msgstr ""
6499
 
6500
- #: includes/core/class-builtin.php:1741
6501
  msgid "Norfolk Island"
6502
  msgstr ""
6503
 
6504
- #: includes/core/class-builtin.php:1742
6505
  msgid "Northern Mariana Islands"
6506
  msgstr ""
6507
 
6508
- #: includes/core/class-builtin.php:1743
6509
  msgid "Norway"
6510
  msgstr ""
6511
 
6512
- #: includes/core/class-builtin.php:1744
6513
  msgid "Oman"
6514
  msgstr ""
6515
 
6516
- #: includes/core/class-builtin.php:1745
6517
  msgid "Pakistan"
6518
  msgstr ""
6519
 
6520
- #: includes/core/class-builtin.php:1746
6521
  msgid "Palau"
6522
  msgstr ""
6523
 
6524
- #: includes/core/class-builtin.php:1747
6525
  msgid "Palestine"
6526
  msgstr ""
6527
 
6528
- #: includes/core/class-builtin.php:1748
6529
  msgid "Panama"
6530
  msgstr ""
6531
 
6532
- #: includes/core/class-builtin.php:1749
6533
  msgid "Papua New Guinea"
6534
  msgstr ""
6535
 
6536
- #: includes/core/class-builtin.php:1750
6537
  msgid "Paraguay"
6538
  msgstr ""
6539
 
6540
- #: includes/core/class-builtin.php:1751
6541
  msgid "Peru"
6542
  msgstr ""
6543
 
6544
- #: includes/core/class-builtin.php:1752
6545
  msgid "Philippines"
6546
  msgstr ""
6547
 
6548
- #: includes/core/class-builtin.php:1753
6549
  msgid "Pitcairn"
6550
  msgstr ""
6551
 
6552
- #: includes/core/class-builtin.php:1754
6553
  msgid "Poland"
6554
  msgstr ""
6555
 
6556
- #: includes/core/class-builtin.php:1755
6557
  msgid "Portugal"
6558
  msgstr ""
6559
 
6560
- #: includes/core/class-builtin.php:1756
6561
  msgid "Puerto Rico"
6562
  msgstr ""
6563
 
6564
- #: includes/core/class-builtin.php:1757
6565
  msgid "Qatar"
6566
  msgstr ""
6567
 
6568
- #: includes/core/class-builtin.php:1758
6569
  msgid "Réunion"
6570
  msgstr ""
6571
 
6572
- #: includes/core/class-builtin.php:1759
6573
  msgid "Romania"
6574
  msgstr ""
6575
 
6576
- #: includes/core/class-builtin.php:1760
6577
  msgid "Russian Federation"
6578
  msgstr ""
6579
 
6580
- #: includes/core/class-builtin.php:1761
6581
  msgid "Rwanda"
6582
  msgstr ""
6583
 
6584
- #: includes/core/class-builtin.php:1762
6585
  msgid "Saint Barthélemy"
6586
  msgstr ""
6587
 
6588
- #: includes/core/class-builtin.php:1763
6589
  msgid "Saint Helena"
6590
  msgstr ""
6591
 
6592
- #: includes/core/class-builtin.php:1764
6593
  msgid "Saint Kitts and Nevis"
6594
  msgstr ""
6595
 
6596
- #: includes/core/class-builtin.php:1765
6597
  msgid "Saint Lucia"
6598
  msgstr ""
6599
 
6600
- #: includes/core/class-builtin.php:1766
6601
  msgid "Saint Martin (French part)"
6602
  msgstr ""
6603
 
6604
- #: includes/core/class-builtin.php:1767
6605
  msgid "Saint Pierre and Miquelon"
6606
  msgstr ""
6607
 
6608
- #: includes/core/class-builtin.php:1768
6609
  msgid "Saint Vincent and the Grenadines"
6610
  msgstr ""
6611
 
6612
- #: includes/core/class-builtin.php:1769
6613
  msgid "Samoa"
6614
  msgstr ""
6615
 
6616
- #: includes/core/class-builtin.php:1770
6617
  msgid "San Marino"
6618
  msgstr ""
6619
 
6620
- #: includes/core/class-builtin.php:1771
6621
  msgid "Sao Tome and Principe"
6622
  msgstr ""
6623
 
6624
- #: includes/core/class-builtin.php:1772
6625
  msgid "Saudi Arabia"
6626
  msgstr ""
6627
 
6628
- #: includes/core/class-builtin.php:1773
6629
  msgid "Senegal"
6630
  msgstr ""
6631
 
6632
- #: includes/core/class-builtin.php:1774
6633
  msgid "Serbia"
6634
  msgstr ""
6635
 
6636
- #: includes/core/class-builtin.php:1775
6637
  msgid "Seychelles"
6638
  msgstr ""
6639
 
6640
- #: includes/core/class-builtin.php:1776
6641
  msgid "Sierra Leone"
6642
  msgstr ""
6643
 
6644
- #: includes/core/class-builtin.php:1777
6645
  msgid "Singapore"
6646
  msgstr ""
6647
 
6648
- #: includes/core/class-builtin.php:1778
6649
  msgid "Slovakia"
6650
  msgstr ""
6651
 
6652
- #: includes/core/class-builtin.php:1779
6653
  msgid "Slovenia"
6654
  msgstr ""
6655
 
6656
- #: includes/core/class-builtin.php:1780
6657
  msgid "Solomon Islands"
6658
  msgstr ""
6659
 
6660
- #: includes/core/class-builtin.php:1781
6661
  msgid "Somalia"
6662
  msgstr ""
6663
 
6664
- #: includes/core/class-builtin.php:1782
6665
  msgid "South Africa"
6666
  msgstr ""
6667
 
6668
- #: includes/core/class-builtin.php:1783
6669
  msgid "South Georgia and the South Sandwich Islands"
6670
  msgstr ""
6671
 
6672
- #: includes/core/class-builtin.php:1784
6673
  msgid "South Sudan"
6674
  msgstr ""
6675
 
6676
- #: includes/core/class-builtin.php:1785
6677
  msgid "Spain"
6678
  msgstr ""
6679
 
6680
- #: includes/core/class-builtin.php:1786
6681
  msgid "Sri Lanka"
6682
  msgstr ""
6683
 
6684
- #: includes/core/class-builtin.php:1787
6685
  msgid "Sudan"
6686
  msgstr ""
6687
 
6688
- #: includes/core/class-builtin.php:1788
6689
  msgid "Suriname"
6690
  msgstr ""
6691
 
6692
- #: includes/core/class-builtin.php:1789
6693
  msgid "Svalbard and Jan Mayen"
6694
  msgstr ""
6695
 
6696
- #: includes/core/class-builtin.php:1790
6697
  msgid "Swaziland"
6698
  msgstr ""
6699
 
6700
- #: includes/core/class-builtin.php:1791
6701
  msgid "Sweden"
6702
  msgstr ""
6703
 
6704
- #: includes/core/class-builtin.php:1792
6705
  msgid "Switzerland"
6706
  msgstr ""
6707
 
6708
- #: includes/core/class-builtin.php:1793
6709
  msgid "Syrian Arab Republic"
6710
  msgstr ""
6711
 
6712
- #: includes/core/class-builtin.php:1794
6713
  msgid "Taiwan, Province of China"
6714
  msgstr ""
6715
 
6716
- #: includes/core/class-builtin.php:1795
6717
  msgid "Tajikistan"
6718
  msgstr ""
6719
 
6720
- #: includes/core/class-builtin.php:1796
6721
  msgid "Tanzania, United Republic of"
6722
  msgstr ""
6723
 
6724
- #: includes/core/class-builtin.php:1797
6725
  msgid "Thailand"
6726
  msgstr ""
6727
 
6728
- #: includes/core/class-builtin.php:1798
6729
  msgid "Timor-Leste"
6730
  msgstr ""
6731
 
6732
- #: includes/core/class-builtin.php:1799
6733
  msgid "Togo"
6734
  msgstr ""
6735
 
6736
- #: includes/core/class-builtin.php:1800
6737
  msgid "Tokelau"
6738
  msgstr ""
6739
 
6740
- #: includes/core/class-builtin.php:1802
6741
  msgid "Trinidad and Tobago"
6742
  msgstr ""
6743
 
6744
- #: includes/core/class-builtin.php:1803
6745
  msgid "Tunisia"
6746
  msgstr ""
6747
 
6748
- #: includes/core/class-builtin.php:1804
6749
  msgid "Turkey"
6750
  msgstr ""
6751
 
6752
- #: includes/core/class-builtin.php:1805
6753
  msgid "Turkmenistan"
6754
  msgstr ""
6755
 
6756
- #: includes/core/class-builtin.php:1806
6757
  msgid "Turks and Caicos Islands"
6758
  msgstr ""
6759
 
6760
- #: includes/core/class-builtin.php:1807
6761
  msgid "Tuvalu"
6762
  msgstr ""
6763
 
6764
- #: includes/core/class-builtin.php:1808
6765
  msgid "Uganda"
6766
  msgstr ""
6767
 
6768
- #: includes/core/class-builtin.php:1809
6769
  msgid "Ukraine"
6770
  msgstr ""
6771
 
6772
- #: includes/core/class-builtin.php:1810
6773
  msgid "United Arab Emirates"
6774
  msgstr ""
6775
 
6776
- #: includes/core/class-builtin.php:1811
6777
  msgid "United Kingdom"
6778
  msgstr ""
6779
 
6780
- #: includes/core/class-builtin.php:1812
6781
  msgid "United States"
6782
  msgstr ""
6783
 
6784
- #: includes/core/class-builtin.php:1813
6785
  msgid "United States Minor Outlying Islands"
6786
  msgstr ""
6787
 
6788
- #: includes/core/class-builtin.php:1814
6789
  msgid "Uruguay"
6790
  msgstr ""
6791
 
6792
- #: includes/core/class-builtin.php:1815
6793
  msgid "Uzbekistan"
6794
  msgstr ""
6795
 
6796
- #: includes/core/class-builtin.php:1816
6797
  msgid "Vanuatu"
6798
  msgstr ""
6799
 
6800
- #: includes/core/class-builtin.php:1817
6801
  msgid "Venezuela, Bolivarian Republic of"
6802
  msgstr ""
6803
 
6804
- #: includes/core/class-builtin.php:1818
6805
  msgid "Viet Nam"
6806
  msgstr ""
6807
 
6808
- #: includes/core/class-builtin.php:1819
6809
  msgid "Virgin Islands, British"
6810
  msgstr ""
6811
 
6812
- #: includes/core/class-builtin.php:1820
6813
  msgid "Virgin Islands, U.S."
6814
  msgstr ""
6815
 
6816
- #: includes/core/class-builtin.php:1821
6817
  msgid "Wallis and Futuna"
6818
  msgstr ""
6819
 
6820
- #: includes/core/class-builtin.php:1822
6821
  msgid "Western Sahara"
6822
  msgstr ""
6823
 
6824
- #: includes/core/class-builtin.php:1823
6825
  msgid "Yemen"
6826
  msgstr ""
6827
 
6828
- #: includes/core/class-builtin.php:1824
6829
  msgid "Zambia"
6830
  msgstr ""
6831
 
6832
- #: includes/core/class-builtin.php:1825
6833
  msgid "Zimbabwe"
6834
  msgstr ""
6835
 
@@ -6920,115 +6936,111 @@ msgstr ""
6920
  msgid "Less than 1 year old"
6921
  msgstr ""
6922
 
6923
- #: includes/core/class-external-integrations.php:498
6924
  #, php-format
6925
  msgid "Edit the %s translation"
6926
  msgstr ""
6927
 
6928
- #: includes/core/class-external-integrations.php:505
6929
  #, php-format
6930
  msgid "Add translation to %s"
6931
  msgstr ""
6932
 
6933
- #: includes/core/class-fields.php:606
6934
- msgid "Undefined"
6935
- msgstr ""
6936
-
6937
- #: includes/core/class-fields.php:1252 templates/message.php:6
6938
  #, php-format
6939
  msgid "%s"
6940
  msgstr ""
6941
 
6942
- #: includes/core/class-fields.php:1273
6943
  msgid "Custom Field"
6944
  msgstr ""
6945
 
6946
- #: includes/core/class-fields.php:1616
6947
  msgid "Please upload a valid image!"
6948
  msgstr ""
6949
 
6950
- #: includes/core/class-fields.php:1630
6951
  msgid "Sorry this is not a valid image."
6952
  msgstr ""
6953
 
6954
- #: includes/core/class-fields.php:1633
6955
  msgid "This image is too large!"
6956
  msgstr ""
6957
 
6958
- #: includes/core/class-fields.php:1636
6959
  msgid "This image is too small!"
6960
  msgstr ""
6961
 
6962
- #: includes/core/class-fields.php:1639
6963
  msgid "You can only upload one image"
6964
  msgstr ""
6965
 
6966
- #: includes/core/class-fields.php:1671
6967
  msgid "Sorry this is not a valid file."
6968
  msgstr ""
6969
 
6970
- #: includes/core/class-fields.php:1674
6971
  msgid "This file is too large!"
6972
  msgstr ""
6973
 
6974
- #: includes/core/class-fields.php:1677
6975
  msgid "This file is too small!"
6976
  msgstr ""
6977
 
6978
- #: includes/core/class-fields.php:1680
6979
  msgid "You can only upload one file"
6980
  msgstr ""
6981
 
6982
- #: includes/core/class-fields.php:2194
6983
  msgid "Current Password"
6984
  msgstr ""
6985
 
6986
- #: includes/core/class-fields.php:2223
6987
  msgid "New Password"
6988
  msgstr ""
6989
 
6990
- #: includes/core/class-fields.php:2255
6991
  #, php-format
6992
  msgid "Confirm %s"
6993
  msgstr ""
6994
 
6995
- #: includes/core/class-fields.php:2489
6996
  msgid "Upload Photo"
6997
  msgstr ""
6998
 
6999
- #: includes/core/class-fields.php:2510 includes/core/class-fields.php:2534
7000
- #: includes/core/um-actions-profile.php:880
7001
  msgid "Change photo"
7002
  msgstr ""
7003
 
7004
- #: includes/core/class-fields.php:2534 includes/core/class-fields.php:2631
7005
  msgid "Processing..."
7006
  msgstr ""
7007
 
7008
- #: includes/core/class-fields.php:2556
7009
  msgid "Upload File"
7010
  msgstr ""
7011
 
7012
- #: includes/core/class-fields.php:2598 includes/core/um-filters-fields.php:267
7013
  msgid "This file has been removed."
7014
  msgstr ""
7015
 
7016
- #: includes/core/class-fields.php:2601 includes/core/class-fields.php:2631
7017
  msgid "Change file"
7018
  msgstr ""
7019
 
7020
- #: includes/core/class-fields.php:2631
7021
  msgid "Save"
7022
  msgstr ""
7023
 
7024
- #: includes/core/class-fields.php:4102
7025
  #, php-format
7026
  msgid ""
7027
  "Your profile is looking a little empty. Why not <a href=\"%s\">add</a> some "
7028
  "information!"
7029
  msgstr ""
7030
 
7031
- #: includes/core/class-fields.php:4104
7032
  msgid "This user has not added any information to their profile yet."
7033
  msgstr ""
7034
 
@@ -7070,71 +7082,71 @@ msgstr ""
7070
  msgid "Your set password"
7071
  msgstr ""
7072
 
7073
- #: includes/core/class-member-directory.php:234
7074
  msgid "Grid"
7075
  msgstr ""
7076
 
7077
- #: includes/core/class-member-directory.php:235
7078
  msgid "List"
7079
  msgstr ""
7080
 
7081
- #: includes/core/class-member-directory.php:240
7082
  msgid "New users first"
7083
  msgstr ""
7084
 
7085
- #: includes/core/class-member-directory.php:241
7086
  msgid "Old users first"
7087
  msgstr ""
7088
 
7089
- #: includes/core/class-member-directory.php:243
7090
  msgid "First name"
7091
  msgstr ""
7092
 
7093
- #: includes/core/class-member-directory.php:244
7094
  msgid "Last name"
7095
  msgstr ""
7096
 
7097
- #: includes/core/class-member-directory.php:245
7098
  msgid "Display name"
7099
  msgstr ""
7100
 
7101
- #: includes/core/class-member-directory.php:246
7102
  msgid "Last login"
7103
  msgstr ""
7104
 
7105
- #: includes/core/class-member-directory.php:252
7106
  msgid "Random"
7107
  msgstr ""
7108
 
7109
- #: includes/core/class-member-directory.php:253
7110
  msgid "Other (Custom Field)"
7111
  msgstr ""
7112
 
7113
- #: includes/core/class-member-directory.php:264
7114
  msgid "Age"
7115
  msgstr ""
7116
 
7117
- #: includes/core/class-member-directory.php:266
7118
  msgid "User Registered"
7119
  msgstr ""
7120
 
7121
- #: includes/core/class-member-directory.php:646
7122
  msgid " stars"
7123
  msgstr ""
7124
 
7125
- #: includes/core/class-member-directory.php:654
7126
  msgid "<strong>Age:</strong>&nbsp;{min_range} - {max_range} years old"
7127
  msgstr ""
7128
 
7129
- #: includes/core/class-member-directory.php:1788
7130
- #: includes/core/class-member-directory.php:1832
7131
- #: includes/core/um-actions-profile.php:1200
7132
- #: includes/core/um-actions-profile.php:1231
7133
  msgid "Edit Profile"
7134
  msgstr ""
7135
 
7136
- #: includes/core/class-member-directory.php:1838
7137
- #: includes/core/um-actions-profile.php:1232
7138
  msgid "My Account"
7139
  msgstr ""
7140
 
@@ -7165,7 +7177,7 @@ msgid "Your password must contain less than 30 characters"
7165
  msgstr ""
7166
 
7167
  #: includes/core/class-password.php:551 includes/core/um-actions-account.php:66
7168
- #: includes/core/um-actions-form.php:505
7169
  msgid ""
7170
  "Your password must contain at least one lowercase letter, one capital letter "
7171
  "and one number"
@@ -7175,7 +7187,7 @@ msgstr ""
7175
  msgid "You must confirm your new password"
7176
  msgstr ""
7177
 
7178
- #: includes/core/class-password.php:561 includes/core/um-actions-form.php:514
7179
  msgid "Your passwords do not match"
7180
  msgstr ""
7181
 
@@ -7184,7 +7196,7 @@ msgid "This activation link is expired or have already been used."
7184
  msgstr ""
7185
 
7186
  #. translators: %s: support forums URL
7187
- #: includes/core/class-plugin-updater.php:283
7188
  #, php-format
7189
  msgid ""
7190
  "An unexpected error occurred. Something may be wrong with %s or this "
@@ -7192,7 +7204,7 @@ msgid ""
7192
  "the <a href=\"%s\">support forums</a>."
7193
  msgstr ""
7194
 
7195
- #: includes/core/class-plugin-updater.php:285
7196
  msgid "https://wordpress.org/support/"
7197
  msgstr ""
7198
 
@@ -7232,17 +7244,17 @@ msgstr ""
7232
  msgid "Invalid Nonce."
7233
  msgstr ""
7234
 
7235
- #: includes/core/class-shortcodes.php:358
7236
  msgid ""
7237
  "This content has been restricted to logged in users only. Please <a href="
7238
  "\"{login_referrer}\">login</a> to view this content."
7239
  msgstr ""
7240
 
7241
- #: includes/core/class-shortcodes.php:643
7242
  msgid "You are already registered"
7243
  msgstr ""
7244
 
7245
- #: includes/core/class-shortcodes.php:890
7246
  msgid "Default Template"
7247
  msgstr ""
7248
 
@@ -7384,7 +7396,7 @@ msgid "Email already linked to another account"
7384
  msgstr ""
7385
 
7386
  #: includes/core/um-actions-account.php:425
7387
- msgid "Email me when"
7388
  msgstr ""
7389
 
7390
  #: includes/core/um-actions-core.php:27
@@ -7405,140 +7417,146 @@ msgstr ""
7405
  msgid "You are not allowed to use this word as your username."
7406
  msgstr ""
7407
 
7408
- #: includes/core/um-actions-form.php:369
7409
  msgid "Profile Photo is required."
7410
  msgstr ""
7411
 
7412
- #: includes/core/um-actions-form.php:423 includes/core/um-actions-form.php:427
7413
- #: includes/core/um-actions-form.php:431
 
 
 
 
 
7414
  #, php-format
7415
  msgid "%s is required."
7416
  msgstr ""
7417
 
7418
- #: includes/core/um-actions-form.php:436
7419
  msgid "Please specify account type."
7420
  msgstr ""
7421
 
7422
- #: includes/core/um-actions-form.php:466
7423
  msgid "This field is required"
7424
  msgstr ""
7425
 
7426
- #: includes/core/um-actions-form.php:468
7427
  #, php-format
7428
  msgid "%s is required"
7429
  msgstr ""
7430
 
7431
- #: includes/core/um-actions-form.php:477
7432
  #, php-format
7433
  msgid "You are only allowed to enter a maximum of %s words"
7434
  msgstr ""
7435
 
7436
- #: includes/core/um-actions-form.php:483
7437
  #, php-format
7438
  msgid "Your %s must contain at least %s characters"
7439
  msgstr ""
7440
 
7441
- #: includes/core/um-actions-form.php:489
7442
  #, php-format
7443
  msgid "Your %s must contain less than %s characters"
7444
  msgstr ""
7445
 
7446
- #: includes/core/um-actions-form.php:498
7447
  msgid "You can not use HTML tags here"
7448
  msgstr ""
7449
 
7450
- #: includes/core/um-actions-form.php:511
7451
  msgid "Please confirm your password"
7452
  msgstr ""
7453
 
7454
- #: includes/core/um-actions-form.php:520
7455
  #, php-format
7456
  msgid "Please select at least %s choices"
7457
  msgstr ""
7458
 
7459
- #: includes/core/um-actions-form.php:526
7460
  #, php-format
7461
  msgid "You can only select up to %s choices"
7462
  msgstr ""
7463
 
7464
- #: includes/core/um-actions-form.php:532
7465
  #, php-format
7466
  msgid "Minimum number limit is %s"
7467
  msgstr ""
7468
 
7469
- #: includes/core/um-actions-form.php:538
7470
  #, php-format
7471
  msgid "Maximum number limit is %s"
7472
  msgstr ""
7473
 
7474
- #: includes/core/um-actions-form.php:574
7475
  msgid "Please enter numbers only in this field"
7476
  msgstr ""
7477
 
7478
- #: includes/core/um-actions-form.php:580
7479
  msgid "Please enter a valid phone number"
7480
  msgstr ""
7481
 
7482
- #: includes/core/um-actions-form.php:586 includes/core/um-actions-form.php:592
7483
- #: includes/core/um-actions-form.php:598 includes/core/um-actions-form.php:604
7484
- #: includes/core/um-actions-form.php:610 includes/core/um-actions-form.php:616
7485
- #: includes/core/um-actions-form.php:622 includes/core/um-actions-form.php:628
7486
- #: includes/core/um-actions-form.php:640
7487
  #, php-format
7488
  msgid "Please enter a valid %s username or profile URL"
7489
  msgstr ""
7490
 
7491
- #: includes/core/um-actions-form.php:634
7492
  msgid "Please enter a valid URL"
7493
  msgstr ""
7494
 
7495
- #: includes/core/um-actions-form.php:647 includes/core/um-actions-form.php:661
7496
  msgid "You must provide a username"
7497
  msgstr ""
7498
 
7499
- #: includes/core/um-actions-form.php:649 includes/core/um-actions-form.php:663
7500
  msgid "Your username is already taken"
7501
  msgstr ""
7502
 
7503
- #: includes/core/um-actions-form.php:651
7504
  msgid "Username cannot be an email"
7505
  msgstr ""
7506
 
7507
- #: includes/core/um-actions-form.php:653 includes/core/um-actions-form.php:667
7508
  msgid "Your username contains invalid characters"
7509
  msgstr ""
7510
 
7511
- #: includes/core/um-actions-form.php:665 includes/core/um-actions-form.php:687
7512
- #: includes/core/um-actions-form.php:689 includes/core/um-actions-form.php:701
7513
- #: includes/core/um-actions-form.php:708
7514
  msgid "This email is already linked to an existing account"
7515
  msgstr ""
7516
 
7517
- #: includes/core/um-actions-form.php:685
7518
  msgid "You must provide your email"
7519
  msgstr ""
7520
 
7521
- #: includes/core/um-actions-form.php:691 includes/core/um-actions-form.php:699
 
7522
  msgid "This is not a valid email"
7523
  msgstr ""
7524
 
7525
- #: includes/core/um-actions-form.php:693
7526
  msgid "Your email contains invalid characters"
7527
  msgstr ""
7528
 
7529
- #: includes/core/um-actions-form.php:733
7530
  msgid "You must provide a unique value"
7531
  msgstr ""
7532
 
7533
- #: includes/core/um-actions-form.php:743
7534
  msgid "You must provide alphabetic letters"
7535
  msgstr ""
7536
 
7537
- #: includes/core/um-actions-form.php:755
7538
  msgid "You must provide lowercase letters."
7539
  msgstr ""
7540
 
7541
- #: includes/core/um-actions-form.php:773
7542
  #, php-format
7543
  msgid "Your user description must contain less than %s characters"
7544
  msgstr ""
@@ -7571,11 +7589,11 @@ msgstr ""
7571
  msgid "This action has been prevented for security measures."
7572
  msgstr ""
7573
 
7574
- #: includes/core/um-actions-login.php:416
7575
  msgid "Keep me signed in"
7576
  msgstr ""
7577
 
7578
- #: includes/core/um-actions-login.php:460
7579
  msgid "Forgot your password?"
7580
  msgstr ""
7581
 
@@ -7631,34 +7649,34 @@ msgstr ""
7631
  msgid "You are not allowed to edit this user."
7632
  msgstr ""
7633
 
7634
- #: includes/core/um-actions-profile.php:328
7635
  #, php-format
7636
  msgid "Your choosed %s"
7637
  msgstr ""
7638
 
7639
- #: includes/core/um-actions-profile.php:644
7640
- #: includes/core/um-actions-profile.php:660
7641
- #: includes/core/um-actions-profile.php:731
7642
  msgid "Upload a cover photo"
7643
  msgstr ""
7644
 
7645
- #: includes/core/um-actions-profile.php:644
7646
  msgid "Change cover photo"
7647
  msgstr ""
7648
 
7649
- #: includes/core/um-actions-profile.php:848
7650
  msgid "Upload photo"
7651
  msgstr ""
7652
 
7653
- #: includes/core/um-actions-profile.php:881
7654
  msgid "Remove photo"
7655
  msgstr ""
7656
 
7657
- #: includes/core/um-actions-profile.php:1042
7658
  msgid "Tell us a bit about yourself..."
7659
  msgstr ""
7660
 
7661
- #: includes/core/um-actions-profile.php:1057
7662
  #, php-format
7663
  msgid "This user account status is %s"
7664
  msgstr ""
@@ -7721,7 +7739,7 @@ msgstr ""
7721
  msgid "Search Users"
7722
  msgstr ""
7723
 
7724
- #: templates/members-grid.php:53
7725
  msgid "Edit profile"
7726
  msgstr ""
7727
 
@@ -7733,36 +7751,36 @@ msgstr ""
7733
  msgid "of"
7734
  msgstr ""
7735
 
7736
- #: templates/members.php:191
7737
  msgid "Search:"
7738
  msgstr ""
7739
 
7740
- #: templates/members.php:192 templates/members.php:194
7741
  msgid "Search"
7742
  msgstr ""
7743
 
7744
- #: templates/members.php:219
7745
  #, php-format
7746
  msgid "Change to %s"
7747
  msgstr ""
7748
 
7749
- #: templates/members.php:232
7750
  msgid "Sort by:"
7751
  msgstr ""
7752
 
7753
- #: templates/members.php:252
7754
  msgid "More filters"
7755
  msgstr ""
7756
 
7757
- #: templates/members.php:281
7758
  msgid "Remove filter"
7759
  msgstr ""
7760
 
7761
- #: templates/members.php:306
7762
  msgid "Remove all filters"
7763
  msgstr ""
7764
 
7765
- #: templates/members.php:306
7766
  msgid "Clear all"
7767
  msgstr ""
7768
 
1
  msgid ""
2
  msgstr ""
3
  "Project-Id-Version: Ultimate Member\n"
4
+ "POT-Creation-Date: 2019-12-04 11:13+0200\n"
5
+ "PO-Revision-Date: 2019-12-04 11:13+0200\n"
6
  "Last-Translator: \n"
7
  "Language-Team: \n"
8
  "Language: en_US\n"
75
  msgid "Form draft updated."
76
  msgstr ""
77
 
78
+ #: includes/admin/core/class-admin-builder.php:213
79
  msgid "Manage conditional fields support"
80
  msgstr ""
81
 
82
+ #: includes/admin/core/class-admin-builder.php:213
83
+ #: includes/admin/core/class-admin-builder.php:215
84
  msgid ""
85
  "Here you can setup conditional logic to show/hide this field based on "
86
  "specific fields value or conditions"
87
  msgstr ""
88
 
89
+ #: includes/admin/core/class-admin-builder.php:215
90
  msgid "Add conditional fields support"
91
  msgstr ""
92
 
93
+ #: includes/admin/core/class-admin-builder.php:230
94
  msgid "Add new rule"
95
  msgstr ""
96
 
97
+ #: includes/admin/core/class-admin-builder.php:231
98
  msgid "Reset all rules"
99
  msgstr ""
100
 
101
+ #: includes/admin/core/class-admin-builder.php:284
102
+ #: includes/admin/core/class-admin-builder.php:606
103
+ #: includes/admin/core/class-admin-builder.php:765
104
  #: includes/admin/core/class-admin-dragdrop.php:33
105
  #: includes/admin/core/class-admin-menu.php:106
106
+ #: includes/core/class-fields.php:4382
107
  msgid "Please login as administrator"
108
  msgstr ""
109
 
110
+ #: includes/admin/core/class-admin-builder.php:393
111
+ #: includes/admin/core/class-admin-builder.php:463
112
  #: includes/admin/core/class-admin-dragdrop.php:165
113
  msgid "Add Row"
114
  msgstr ""
115
 
116
+ #: includes/admin/core/class-admin-builder.php:394
117
+ #: includes/admin/core/class-admin-builder.php:464
118
  #: includes/admin/core/class-admin-dragdrop.php:166
119
  msgid "Edit Row"
120
  msgstr ""
121
 
122
+ #: includes/admin/core/class-admin-builder.php:467
123
  #: includes/admin/core/class-admin-dragdrop.php:168
124
  #: includes/admin/core/class-admin-dragdrop.php:183
125
  #: includes/admin/core/class-admin-dragdrop.php:208
126
  msgid "Delete Row"
127
  msgstr ""
128
 
129
+ #: includes/admin/core/class-admin-builder.php:540
130
  msgid "(no title)"
131
  msgstr ""
132
 
133
+ #: includes/admin/core/class-admin-builder.php:545
134
  #: includes/admin/core/list-tables/roles-list-table.php:339
135
  msgid "Edit"
136
  msgstr ""
137
 
138
+ #: includes/admin/core/class-admin-builder.php:547
139
  #: includes/admin/core/class-admin-columns.php:102
140
  msgid "Duplicate"
141
  msgstr ""
142
 
143
+ #: includes/admin/core/class-admin-builder.php:551
144
  msgid "Delete Group"
145
  msgstr ""
146
 
147
+ #: includes/admin/core/class-admin-builder.php:554
148
+ #: includes/admin/core/class-admin-enqueue.php:487
149
  #: includes/admin/core/list-tables/roles-list-table.php:342
150
  #: includes/admin/core/list-tables/roles-list-table.php:410
151
  msgid "Delete"
152
  msgstr ""
153
 
154
+ #: includes/admin/core/class-admin-builder.php:831
155
  msgid "Search Icons..."
156
  msgstr ""
157
 
158
+ #: includes/admin/core/class-admin-builder.php:851
159
  msgid "Setup New Field"
160
  msgstr ""
161
 
162
+ #: includes/admin/core/class-admin-builder.php:868
163
  msgid "Predefined Fields"
164
  msgstr ""
165
 
166
+ #: includes/admin/core/class-admin-builder.php:880
167
  #: includes/core/class-builtin.php:1330
168
  msgid "None"
169
  msgstr ""
170
 
171
+ #: includes/admin/core/class-admin-builder.php:885
172
  msgid "Custom Fields"
173
  msgstr ""
174
 
175
+ #: includes/admin/core/class-admin-builder.php:899
176
  msgid "You did not create any custom fields"
177
  msgstr ""
178
 
179
+ #: includes/admin/core/class-admin-builder.php:931
180
+ #: includes/admin/core/class-admin-builder.php:1003
181
  msgid "This field type is not setup correcty."
182
  msgstr ""
183
 
184
+ #: includes/admin/core/class-admin-builder.php:1169
185
+ #: includes/core/class-form.php:176 includes/core/class-form.php:350
186
  #: includes/core/class-password.php:533
187
  msgid "This is not possible for security reasons."
188
  msgstr ""
250
  #: includes/admin/templates/form/register_gdpr.php:26
251
  #: includes/core/class-builtin.php:1135 includes/core/class-builtin.php:1149
252
  #: includes/core/class-builtin.php:1150
253
+ #: includes/core/um-actions-account.php:270
254
  msgid "No"
255
  msgstr ""
256
 
274
  #: includes/admin/templates/form/register_customize.php:80
275
  #: includes/admin/templates/form/register_gdpr.php:27
276
  #: includes/core/class-builtin.php:1135 includes/core/class-builtin.php:1150
277
+ #: includes/core/class-member-directory.php:952
278
  #: includes/core/um-filters-members.php:40
279
  msgid "Yes"
280
  msgstr ""
287
  msgid "e.g. New Registration Form"
288
  msgstr ""
289
 
290
+ #: includes/admin/core/class-admin-enqueue.php:475
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
291
  #: includes/core/class-builtin.php:698 includes/core/class-builtin.php:701
292
  #: includes/core/class-builtin.php:1155 includes/core/class-builtin.php:1158
293
  msgid "Password"
294
  msgstr ""
295
 
296
+ #: includes/admin/core/class-admin-enqueue.php:479
297
  #: includes/admin/core/class-admin-metabox.php:2227
298
  #: includes/core/class-account.php:109
299
  msgid "Privacy"
300
  msgstr ""
301
 
302
+ #: includes/admin/core/class-admin-enqueue.php:483
303
  #: includes/core/class-account.php:115
304
  msgid "Notifications"
305
  msgstr ""
306
 
307
+ #: includes/admin/core/class-admin-enqueue.php:537
308
  msgid "Ultimate Member Blocks"
309
  msgstr ""
310
 
325
  msgid "No Icon"
326
  msgstr ""
327
 
328
+ #: includes/admin/core/class-admin-forms.php:908
329
+ #: includes/admin/core/class-admin-forms.php:927
330
+ #: includes/admin/core/class-admin-forms.php:1050
331
+ #: includes/admin/core/class-admin-forms.php:1059
332
+ #: includes/admin/core/class-admin-forms.php:1294
333
+ #: includes/admin/core/class-admin-forms.php:1308
334
+ #: includes/admin/core/class-admin-notices.php:398
335
+ #: includes/core/um-actions-profile.php:673
336
+ msgid "Remove"
337
+ msgstr ""
338
+
339
+ #: includes/admin/core/class-admin-forms.php:1106
340
  msgid "Select media"
341
  msgstr ""
342
 
343
+ #: includes/admin/core/class-admin-forms.php:1129
344
+ msgid "Select"
345
+ msgstr ""
346
+
347
+ #: includes/admin/core/class-admin-forms.php:1130
348
  msgid "Clear"
349
  msgstr ""
350
 
1297
  msgstr ""
1298
 
1299
  #: includes/admin/core/class-admin-metabox.php:1959
1300
+ #: includes/core/class-fields.php:1638 includes/core/class-fields.php:1679
1301
  msgid "Upload"
1302
  msgstr ""
1303
 
1539
  msgstr ""
1540
 
1541
  #: includes/admin/core/class-admin-metabox.php:2230
1542
+ #: includes/class-config.php:134 includes/class-config.php:788
1543
  msgid "Members"
1544
  msgstr ""
1545
 
1647
  msgid "Select the member roles that can see this link"
1648
  msgstr ""
1649
 
1650
+ #: includes/admin/core/class-admin-notices.php:287
1651
  #, php-format
1652
  msgid ""
1653
  "<strong>%s %s</strong> requires 2.0 extensions. You have pre 2.0 extensions "
1655
  "versions. For more info see this <a href=\"%s\" target=\"_blank\">doc</a>."
1656
  msgstr ""
1657
 
1658
+ #: includes/admin/core/class-admin-notices.php:308
1659
  #, php-format
1660
  msgid ""
1661
  "%s needs to create several pages (User Profiles, Account, Registration, "
1662
  "Login, Password Reset, Logout, Member Directory) to function correctly."
1663
  msgstr ""
1664
 
1665
+ #: includes/admin/core/class-admin-notices.php:312
1666
  msgid "Create Pages"
1667
  msgstr ""
1668
 
1669
+ #: includes/admin/core/class-admin-notices.php:314
1670
+ #: includes/admin/core/class-admin-notices.php:508
1671
  msgid "No thanks"
1672
  msgstr ""
1673
 
1674
+ #: includes/admin/core/class-admin-notices.php:334
1675
  msgid "Ultimate Member Setup Error: User page can not be a child page."
1676
  msgstr ""
1677
 
1678
+ #: includes/admin/core/class-admin-notices.php:344
1679
  msgid "Ultimate Member Setup Error: Account page can not be a child page."
1680
  msgstr ""
1681
 
1682
+ #: includes/admin/core/class-admin-notices.php:362
1683
  #, php-format
1684
  msgid ""
1685
  "Exif is not enabled on your server. Mobile photo uploads will not be rotated "
1687
  "notice</a>"
1688
  msgstr ""
1689
 
1690
+ #: includes/admin/core/class-admin-notices.php:397
1691
  #, php-format
1692
  msgid ""
1693
  "Are you sure you want to delete the selected user(s)? The following users "
1694
  "will be deleted: <p>%s</p> <strong>This cannot be undone!</strong>"
1695
  msgstr ""
1696
 
1697
+ #: includes/admin/core/class-admin-notices.php:398
1698
  msgid "Undo"
1699
  msgstr ""
1700
 
1701
+ #: includes/admin/core/class-admin-notices.php:403
1702
  msgid "Your translation files have been updated successfully."
1703
  msgstr ""
1704
 
1705
+ #: includes/admin/core/class-admin-notices.php:407
1706
  msgid "Your temp uploads directory is now clean."
1707
  msgstr ""
1708
 
1709
+ #: includes/admin/core/class-admin-notices.php:411
1710
  msgid "Your user cache is now removed."
1711
  msgstr ""
1712
 
1713
+ #: includes/admin/core/class-admin-notices.php:415
1714
  msgid "You have the latest updates."
1715
  msgstr ""
1716
 
1717
+ #: includes/admin/core/class-admin-notices.php:419
1718
  msgid "Try again later. You can run this action once daily."
1719
  msgstr ""
1720
 
1721
+ #: includes/admin/core/class-admin-notices.php:423
1722
  msgid "The form has been duplicated successfully."
1723
  msgstr ""
1724
 
1725
+ #: includes/admin/core/class-admin-notices.php:427
1726
  msgid "User has been updated."
1727
  msgstr ""
1728
 
1729
+ #: includes/admin/core/class-admin-notices.php:431
1730
  msgid "Users have been updated."
1731
  msgstr ""
1732
 
1733
+ #: includes/admin/core/class-admin-notices.php:435
1734
  msgid "Changed roles."
1735
  msgstr ""
1736
 
1737
+ #: includes/admin/core/class-admin-notices.php:439
1738
  msgid "Super administrators cannot be modified."
1739
  msgstr ""
1740
 
1741
+ #: includes/admin/core/class-admin-notices.php:440
1742
  msgid "Other users have been updated."
1743
  msgstr ""
1744
 
1745
+ #: includes/admin/core/class-admin-notices.php:477
1746
  #, php-format
1747
  msgid ""
1748
  "You have installed <strong>%s</strong> with wrong folder name. Correct "
1749
  "folder name is <strong>\"ultimate-member\"</strong>."
1750
  msgstr ""
1751
 
1752
+ #: includes/admin/core/class-admin-notices.php:502
1753
  #, php-format
1754
  msgid ""
1755
  "Thanks for installing <strong>%s</strong>! We hope you like the plugin. To "
1759
  "a>."
1760
  msgstr ""
1761
 
1762
+ #: includes/admin/core/class-admin-notices.php:506
1763
  #, php-format
1764
  msgid "Claim 20% discount code"
1765
  msgstr ""
1766
 
1767
+ #: includes/admin/core/class-admin-notices.php:545
1768
  #, php-format
1769
  msgid ""
1770
  "There are %d inactive %s license keys for this site. This site is not "
1772
  "\">www.ultimatemember.com</a>."
1773
  msgstr ""
1774
 
1775
+ #: includes/admin/core/class-admin-notices.php:552
1776
  #, php-format
1777
  msgid ""
1778
  "You have %d invalid or expired license keys for %s. Please go to the <a href="
1779
  "\"%s\">Licenses page</a> to correct this issue."
1780
  msgstr ""
1781
 
1782
+ #: includes/admin/core/class-admin-notices.php:566
1783
  #, php-format
1784
  msgid ""
1785
  "<strong>%s version %s</strong> needs to be updated to work correctly.<br /"
1788
  "\"Upgrade\"</a> page and run the upgrade process."
1789
  msgstr ""
1790
 
1791
+ #: includes/admin/core/class-admin-notices.php:570
1792
  msgid "Upgrade Now"
1793
  msgstr ""
1794
 
1795
+ #: includes/admin/core/class-admin-notices.php:584
1796
  #, php-format
1797
  msgid "<strong>%s %s</strong> Successfully Upgraded"
1798
  msgstr ""
1799
 
1800
+ #: includes/admin/core/class-admin-notices.php:610
1801
  #, php-format
1802
  msgid ""
1803
  "Hey there! It's been one month since you installed %s. How have you found "
1804
  "the plugin so far?"
1805
  msgstr ""
1806
 
1807
+ #: includes/admin/core/class-admin-notices.php:613
1808
  msgid "I love it!"
1809
  msgstr ""
1810
 
1811
+ #: includes/admin/core/class-admin-notices.php:614
1812
  msgid "It's good but could be better"
1813
  msgstr ""
1814
 
1815
+ #: includes/admin/core/class-admin-notices.php:615
1816
  msgid "I don't like the plugin"
1817
  msgstr ""
1818
 
1819
+ #: includes/admin/core/class-admin-notices.php:620
1820
  #, php-format
1821
  msgid ""
1822
  "Great! We're happy to hear that you love the plugin. It would be amazing if "
1825
  "appreciated by us!"
1826
  msgstr ""
1827
 
1828
+ #: includes/admin/core/class-admin-notices.php:624
1829
  msgid "Leave Review"
1830
  msgstr ""
1831
 
1832
+ #: includes/admin/core/class-admin-notices.php:629
1833
  msgid ""
1834
  "We're glad to hear that you like the plugin but we would love to get your "
1835
  "feedback so we can make the plugin better."
1836
  msgstr ""
1837
 
1838
+ #: includes/admin/core/class-admin-notices.php:633
1839
+ #: includes/admin/core/class-admin-notices.php:642
1840
  msgid "Provide Feedback"
1841
  msgstr ""
1842
 
1843
+ #: includes/admin/core/class-admin-notices.php:638
1844
  #, php-format
1845
  msgid ""
1846
  "We're sorry to hear that. If you're having the issue with the plugin you can "
1850
  "like about the plugin you can tell us know by giving us feedback."
1851
  msgstr ""
1852
 
1853
+ #: includes/admin/core/class-admin-notices.php:664
1854
  #, php-format
1855
  msgid ""
1856
  "<strong>%s</strong> future plans! Detailed future list is <a href=\"%s\" "
1857
  "target=\"_blank\">here</a>"
1858
  msgstr ""
1859
 
1860
+ #: includes/admin/core/class-admin-notices.php:680
1861
  msgid "Wrong Data"
1862
  msgstr ""
1863
 
2034
  #: includes/admin/core/class-admin-settings.php:393
2035
  #: includes/admin/core/class-admin-settings.php:410
2036
  #: includes/core/class-builtin.php:674 includes/core/class-builtin.php:677
2037
+ #: includes/core/class-member-directory.php:243
2038
  msgid "Username"
2039
  msgstr ""
2040
 
2075
 
2076
  #: includes/admin/core/class-admin-settings.php:409
2077
  #: includes/core/class-builtin.php:732 includes/core/class-builtin.php:735
2078
+ #: includes/core/class-member-directory.php:244
2079
+ #: includes/core/class-member-directory.php:272
2080
  msgid "Nickname"
2081
  msgstr ""
2082
 
2200
  msgstr ""
2201
 
2202
  #: includes/admin/core/class-admin-settings.php:479
2203
+ #: includes/class-config.php:136 includes/class-config.php:790
2204
  #: includes/core/class-account.php:97
2205
  msgid "Account"
2206
  msgstr ""
3161
  msgstr ""
3162
 
3163
  #: includes/admin/core/class-admin-users.php:124
3164
+ #: includes/core/class-fields.php:2544
3165
  msgid "Apply"
3166
  msgstr ""
3167
 
3271
  #: includes/admin/core/list-tables/roles-list-table.php:22
3272
  #: includes/admin/core/list-tables/roles-list-table.php:89
3273
  #: includes/admin/core/list-tables/roles-list-table.php:402
3274
+ #: includes/core/class-member-directory.php:266
3275
  msgid "Roles"
3276
  msgstr ""
3277
 
3675
  msgstr ""
3676
 
3677
  #: includes/admin/templates/directory/pagination.php:46
3678
+ #: includes/admin/templates/directory/pagination.php:54
3679
+ msgid "You could use {total_users} placeholder for getting users count"
 
 
 
 
3680
  msgstr ""
3681
 
3682
  #: includes/admin/templates/directory/pagination.php:52
3683
+ msgid "Single Result Text"
3684
  msgstr ""
3685
 
3686
  #: includes/admin/templates/directory/pagination.php:53
3687
+ msgid "Same as above but in case of 1 user found only"
 
3688
  msgstr ""
3689
 
3690
+ #: includes/admin/templates/directory/pagination.php:60
3691
  msgid "Custom text if no users were found"
3692
  msgstr ""
3693
 
3694
+ #: includes/admin/templates/directory/pagination.php:61
3695
  msgid ""
3696
  "This is the text that is displayed if no users are found during a search"
3697
  msgstr ""
3698
 
 
 
 
 
 
3699
  #: includes/admin/templates/directory/profile.php:20
3700
  msgid "Enable Profile Photo"
3701
  msgstr ""
3721
  msgstr ""
3722
 
3723
  #: includes/admin/templates/directory/profile.php:48
3724
+ #: includes/admin/templates/directory/profile.php:64
3725
  #: includes/admin/templates/directory/search.php:93
3726
  msgid "Add New Custom Field"
3727
  msgstr ""
3728
 
3729
+ #: includes/admin/templates/directory/profile.php:56
3730
  msgid "Show extra user information below tagline?"
3731
  msgstr ""
3732
 
3733
+ #: includes/admin/templates/directory/profile.php:62
3734
+ msgid "Choose field(s) to display in extra user information section"
3735
+ msgstr ""
3736
+
3737
+ #: includes/admin/templates/directory/profile.php:73
3738
+ msgid "Show social connect icons in extra user information section"
3739
  msgstr ""
3740
 
3741
+ #: includes/admin/templates/directory/profile.php:80
3742
+ msgid "Hide extra user information to the reveal section"
3743
  msgstr ""
3744
 
3745
+ #: includes/admin/templates/directory/profile.php:81
3746
+ msgid "If not checked always shown"
3747
  msgstr ""
3748
 
3749
  #: includes/admin/templates/directory/search.php:55
3782
  msgid "Choose filter(s) meta to enable"
3783
  msgstr ""
3784
 
3785
+ #: includes/admin/templates/directory/search.php:100
3786
  msgid "Expand the filter bar by default"
3787
  msgstr ""
3788
 
3789
+ #: includes/admin/templates/directory/search.php:101
3790
+ msgid "If turned on, filters bar will be visible after a page loading"
3791
+ msgstr ""
3792
+
3793
+ #: includes/admin/templates/directory/search.php:108
3794
+ msgid "Can filter bar be collapsed"
3795
+ msgstr ""
3796
+
3797
+ #: includes/admin/templates/directory/search.php:109
3798
+ msgid "If turned on, filters bar can be collapsed after a page loading"
3799
  msgstr ""
3800
 
3801
+ #: includes/admin/templates/directory/search.php:116
3802
  msgid "Admin filtering"
3803
  msgstr ""
3804
 
3805
+ #: includes/admin/templates/directory/search.php:117
3806
  msgid ""
3807
  "Limit which users appear in the member directory e.g only display users from "
3808
  "USA"
3809
  msgstr ""
3810
 
3811
+ #: includes/admin/templates/directory/search.php:120
3812
  msgid "Add New Filter"
3813
  msgstr ""
3814
 
4200
  #: includes/admin/templates/modal/dynamic_new_field.php:18
4201
  #: includes/admin/templates/modal/dynamic_new_group.php:18
4202
  #: includes/admin/templates/modal/fonticons.php:14
4203
+ #: includes/admin/templates/role/publish.php:24 includes/class-config.php:252
4204
+ #: includes/core/class-fields.php:2545 includes/core/class-fields.php:2642
4205
+ #: includes/core/um-actions-profile.php:674
4206
+ #: includes/core/um-actions-profile.php:686
4207
+ #: includes/core/um-actions-profile.php:874
4208
+ #: includes/core/um-actions-profile.php:907
4209
+ #: includes/core/um-actions-profile.php:1252
4210
+ #: includes/core/um-actions-profile.php:1259
4211
  msgid "Cancel"
4212
  msgstr ""
4213
 
4556
  msgid "Check All"
4557
  msgstr ""
4558
 
4559
+ #: includes/class-config.php:131 includes/class-config.php:785
4560
  msgid "User"
4561
  msgstr ""
4562
 
4563
+ #: includes/class-config.php:132 includes/class-config.php:262
4564
+ #: includes/class-config.php:270 includes/class-config.php:786
4565
  msgid "Login"
4566
  msgstr ""
4567
 
4568
+ #: includes/class-config.php:133 includes/class-config.php:260
4569
+ #: includes/class-config.php:274 includes/class-config.php:787
4570
  msgid "Register"
4571
  msgstr ""
4572
 
4573
+ #: includes/class-config.php:135 includes/class-config.php:789
4574
+ #: includes/core/class-member-directory.php:1996
4575
+ #: includes/core/um-actions-profile.php:1258
4576
  #: includes/core/um-actions-user.php:19
4577
  msgid "Logout"
4578
  msgstr ""
4579
 
4580
+ #: includes/class-config.php:137 includes/class-config.php:791
4581
  msgid "Password Reset"
4582
  msgstr ""
4583
 
4584
+ #: includes/class-config.php:179 includes/class-config.php:279
4585
+ msgid "{total_users} Members"
4586
+ msgstr ""
4587
+
4588
+ #: includes/class-config.php:180 includes/class-config.php:280
4589
+ msgid "{total_users} Member"
4590
+ msgstr ""
4591
+
4592
+ #: includes/class-config.php:181
4593
+ msgid "We are sorry. We cannot find any users who match your search criteria."
4594
+ msgstr ""
4595
+
4596
+ #: includes/class-config.php:250
4597
  msgid "Update Profile"
4598
  msgstr ""
4599
 
4600
+ #: includes/class-config.php:339
4601
  msgid "Account Welcome Email"
4602
  msgstr ""
4603
 
4604
+ #: includes/class-config.php:350
4605
  msgid ""
4606
  "Whether to send the user an email when his account is automatically approved"
4607
  msgstr ""
4608
 
4609
+ #: includes/class-config.php:356
4610
  msgid "Account Activation Email"
4611
  msgstr ""
4612
 
4613
+ #: includes/class-config.php:364
4614
  msgid ""
4615
  "Whether to send the user an email when his account needs e-mail activation"
4616
  msgstr ""
4617
 
4618
+ #: includes/class-config.php:369
4619
  msgid "Your account is pending review"
4620
  msgstr ""
4621
 
4622
+ #: includes/class-config.php:377
4623
  msgid "Whether to send the user an email when his account needs admin review"
4624
  msgstr ""
4625
 
4626
+ #: includes/class-config.php:382
4627
  msgid "Account Approved Email"
4628
  msgstr ""
4629
 
4630
+ #: includes/class-config.php:394
4631
  msgid "Whether to send the user an email when his account is approved"
4632
  msgstr ""
4633
 
4634
+ #: includes/class-config.php:399
4635
  msgid "Account Rejected Email"
4636
  msgstr ""
4637
 
4638
+ #: includes/class-config.php:406
4639
  msgid "Whether to send the user an email when his account is rejected"
4640
  msgstr ""
4641
 
4642
+ #: includes/class-config.php:411
4643
  msgid "Account Deactivated Email"
4644
  msgstr ""
4645
 
4646
+ #: includes/class-config.php:418
4647
  msgid "Whether to send the user an email when his account is deactivated"
4648
  msgstr ""
4649
 
4650
+ #: includes/class-config.php:424
4651
  msgid "Account Deleted Email"
4652
  msgstr ""
4653
 
4654
+ #: includes/class-config.php:431
4655
  msgid "Whether to send the user an email when his account is deleted"
4656
  msgstr ""
4657
 
4658
+ #: includes/class-config.php:437
4659
  msgid "Password Reset Email"
4660
  msgstr ""
4661
 
4662
+ #: includes/class-config.php:445
4663
  msgid ""
4664
  "Whether to send an email when users changed their password (Recommended, "
4665
  "please keep on)"
4666
  msgstr ""
4667
 
4668
+ #: includes/class-config.php:451
4669
  msgid "Password Changed Email"
4670
  msgstr ""
4671
 
4672
+ #: includes/class-config.php:458
4673
  msgid ""
4674
  "Whether to send the user an email when he request to reset password "
4675
  "(Recommended, please keep on)"
4676
  msgstr ""
4677
 
4678
+ #: includes/class-config.php:464
4679
  msgid "Account Updated Email"
4680
  msgstr ""
4681
 
4682
+ #: includes/class-config.php:471
4683
  msgid "Whether to send the user an email when he updated their account"
4684
  msgstr ""
4685
 
4686
+ #: includes/class-config.php:477
4687
  msgid "New User Notification"
4688
  msgstr ""
4689
 
4690
+ #: includes/class-config.php:483
4691
  msgid "Whether to receive notification when a new user account is approved"
4692
  msgstr ""
4693
 
4694
+ #: includes/class-config.php:489
4695
  msgid "Account Needs Review Notification"
4696
  msgstr ""
4697
 
4698
+ #: includes/class-config.php:496
4699
  msgid "Whether to receive notification when an account needs admin review"
4700
  msgstr ""
4701
 
4702
+ #: includes/class-config.php:501
4703
  msgid "Account Deletion Notification"
4704
  msgstr ""
4705
 
4706
+ #: includes/class-config.php:504
4707
  msgid "Whether to receive notification when an account is deleted"
4708
  msgstr ""
4709
 
4710
+ #: includes/class-config.php:527
4711
  msgid ""
4712
  "Are you sure you want to delete your account? This will erase all of your "
4713
  "account data from the site. To delete your account enter your password below"
4856
  msgid "You must add a shortcode to the content area"
4857
  msgstr ""
4858
 
4859
+ #: includes/core/class-builtin.php:663 includes/core/class-user.php:1561
4860
  msgid "Only me"
4861
  msgstr ""
4862
 
4866
  msgstr ""
4867
 
4868
  #: includes/core/class-builtin.php:712 includes/core/class-builtin.php:715
4869
+ #: includes/core/class-member-directory.php:270
4870
  msgid "First Name"
4871
  msgstr ""
4872
 
4873
  #: includes/core/class-builtin.php:722 includes/core/class-builtin.php:725
4874
+ #: includes/core/class-member-directory.php:271
4875
  msgid "Last Name"
4876
  msgstr ""
4877
 
4878
  #: includes/core/class-builtin.php:742 includes/core/class-builtin.php:745
4879
+ #: includes/core/class-builtin.php:1350
4880
  msgid "Website URL"
4881
  msgstr ""
4882
 
4885
  msgstr ""
4886
 
4887
  #: includes/core/class-builtin.php:764 includes/core/class-builtin.php:767
4888
+ #: includes/core/class-member-directory.php:268
4889
  msgid "Last Login"
4890
  msgstr ""
4891
 
4894
  msgstr ""
4895
 
4896
  #: includes/core/class-builtin.php:786 includes/core/class-builtin.php:789
4897
+ #: includes/core/class-member-directory.php:273
4898
  msgid "Secondary E-mail Address"
4899
  msgstr ""
4900
 
4901
  #: includes/core/class-builtin.php:798 includes/core/class-builtin.php:801
4902
+ #: includes/core/class-member-directory.php:274
4903
  msgid "Biography"
4904
  msgstr ""
4905
 
4912
  msgstr ""
4913
 
4914
  #: includes/core/class-builtin.php:825 includes/core/class-builtin.php:828
4915
+ #: includes/core/class-member-directory.php:264
4916
  msgid "Gender"
4917
  msgstr ""
4918
 
4925
  msgstr ""
4926
 
4927
  #: includes/core/class-builtin.php:836 includes/core/class-builtin.php:839
4928
+ #: includes/core/class-member-directory.php:263
4929
  msgid "Country"
4930
  msgstr ""
4931
 
4983
  msgstr ""
4984
 
4985
  #: includes/core/class-builtin.php:1030
4986
+ #: includes/core/class-member-directory.php:265
4987
  msgid "Languages"
4988
  msgstr ""
4989
 
4997
 
4998
  #: includes/core/class-builtin.php:1042 includes/core/class-builtin.php:1045
4999
  #: includes/core/class-builtin.php:1341
5000
+ #: includes/core/class-member-directory.php:275
5001
  msgid "Phone Number"
5002
  msgstr ""
5003
 
5004
  #: includes/core/class-builtin.php:1054 includes/core/class-builtin.php:1057
5005
+ #: includes/core/class-member-directory.php:276
5006
  msgid "Mobile Number"
5007
  msgstr ""
5008
 
5023
  msgstr ""
5024
 
5025
  #: includes/core/class-builtin.php:1085
5026
+ #: includes/core/um-actions-profile.php:634
5027
  msgid "Change your cover photo"
5028
  msgstr ""
5029
 
5106
  msgstr ""
5107
 
5108
  #: includes/core/class-builtin.php:1345
5109
+ msgid "E-mail( Not Unique )"
5110
  msgstr ""
5111
 
5112
  #: includes/core/class-builtin.php:1346
5113
+ msgid "Unique E-mail"
5114
  msgstr ""
5115
 
5116
  #: includes/core/class-builtin.php:1347
5117
+ msgid "Unique Metakey value"
5118
  msgstr ""
5119
 
5120
  #: includes/core/class-builtin.php:1348
5121
+ msgid "Unique Username"
5122
+ msgstr ""
5123
+
5124
+ #: includes/core/class-builtin.php:1349
5125
  msgid "Unique Username/E-mail"
5126
  msgstr ""
5127
 
5128
+ #: includes/core/class-builtin.php:1351
5129
  msgid "YouTube Profile"
5130
  msgstr ""
5131
 
5132
+ #: includes/core/class-builtin.php:1352
5133
  msgid "Custom Validation"
5134
  msgstr ""
5135
 
5136
+ #: includes/core/class-builtin.php:1391
5137
  msgid "Afar"
5138
  msgstr ""
5139
 
5140
+ #: includes/core/class-builtin.php:1392
5141
  msgid "Abkhazian"
5142
  msgstr ""
5143
 
5144
+ #: includes/core/class-builtin.php:1393
5145
  msgid "Avestan"
5146
  msgstr ""
5147
 
5148
+ #: includes/core/class-builtin.php:1394
5149
  msgid "Afrikaans"
5150
  msgstr ""
5151
 
5152
+ #: includes/core/class-builtin.php:1395
5153
  msgid "Akan"
5154
  msgstr ""
5155
 
5156
+ #: includes/core/class-builtin.php:1396
5157
  msgid "Amharic"
5158
  msgstr ""
5159
 
5160
+ #: includes/core/class-builtin.php:1397
5161
  msgid "Aragonese"
5162
  msgstr ""
5163
 
5164
+ #: includes/core/class-builtin.php:1398
5165
  msgid "Arabic"
5166
  msgstr ""
5167
 
5168
+ #: includes/core/class-builtin.php:1399
5169
  msgid "Assamese"
5170
  msgstr ""
5171
 
5172
+ #: includes/core/class-builtin.php:1400
5173
  msgid "Avaric"
5174
  msgstr ""
5175
 
5176
+ #: includes/core/class-builtin.php:1401
5177
  msgid "Aymara"
5178
  msgstr ""
5179
 
5180
+ #: includes/core/class-builtin.php:1402
5181
  msgid "Azerbaijani"
5182
  msgstr ""
5183
 
5184
+ #: includes/core/class-builtin.php:1403
5185
  msgid "Bashkir"
5186
  msgstr ""
5187
 
5188
+ #: includes/core/class-builtin.php:1404
5189
  msgid "Belarusian"
5190
  msgstr ""
5191
 
5192
+ #: includes/core/class-builtin.php:1405
5193
  msgid "Bulgarian"
5194
  msgstr ""
5195
 
5196
+ #: includes/core/class-builtin.php:1406
5197
  msgid "Bihari"
5198
  msgstr ""
5199
 
5200
+ #: includes/core/class-builtin.php:1407
5201
  msgid "Bislama"
5202
  msgstr ""
5203
 
5204
+ #: includes/core/class-builtin.php:1408
5205
  msgid "Bambara"
5206
  msgstr ""
5207
 
5208
+ #: includes/core/class-builtin.php:1409
5209
  msgid "Bengali"
5210
  msgstr ""
5211
 
5212
+ #: includes/core/class-builtin.php:1410
5213
  msgid "Tibetan"
5214
  msgstr ""
5215
 
5216
+ #: includes/core/class-builtin.php:1411
5217
  msgid "Breton"
5218
  msgstr ""
5219
 
5220
+ #: includes/core/class-builtin.php:1412
5221
  msgid "Bosnian"
5222
  msgstr ""
5223
 
5224
+ #: includes/core/class-builtin.php:1413
5225
  msgid "Catalan"
5226
  msgstr ""
5227
 
5228
+ #: includes/core/class-builtin.php:1414
5229
  msgid "Chechen"
5230
  msgstr ""
5231
 
5232
+ #: includes/core/class-builtin.php:1415
5233
  msgid "Chamorro"
5234
  msgstr ""
5235
 
5236
+ #: includes/core/class-builtin.php:1416
5237
  msgid "Corsican"
5238
  msgstr ""
5239
 
5240
+ #: includes/core/class-builtin.php:1417
5241
  msgid "Cree"
5242
  msgstr ""
5243
 
5244
+ #: includes/core/class-builtin.php:1418
5245
  msgid "Czech"
5246
  msgstr ""
5247
 
5248
+ #: includes/core/class-builtin.php:1419
5249
  msgid "Church Slavic"
5250
  msgstr ""
5251
 
5252
+ #: includes/core/class-builtin.php:1420
5253
  msgid "Chuvash"
5254
  msgstr ""
5255
 
5256
+ #: includes/core/class-builtin.php:1421
5257
  msgid "Welsh"
5258
  msgstr ""
5259
 
5260
+ #: includes/core/class-builtin.php:1422
5261
  msgid "Danish"
5262
  msgstr ""
5263
 
5264
+ #: includes/core/class-builtin.php:1423
5265
  msgid "German"
5266
  msgstr ""
5267
 
5268
+ #: includes/core/class-builtin.php:1424
5269
  msgid "Divehi"
5270
  msgstr ""
5271
 
5272
+ #: includes/core/class-builtin.php:1425
5273
  msgid "Dzongkha"
5274
  msgstr ""
5275
 
5276
+ #: includes/core/class-builtin.php:1426
5277
  msgid "Ewe"
5278
  msgstr ""
5279
 
5280
+ #: includes/core/class-builtin.php:1427
5281
  msgid "Greek"
5282
  msgstr ""
5283
 
5284
+ #: includes/core/class-builtin.php:1428
5285
  msgid "English"
5286
  msgstr ""
5287
 
5288
+ #: includes/core/class-builtin.php:1429
5289
  msgid "Esperanto"
5290
  msgstr ""
5291
 
5292
+ #: includes/core/class-builtin.php:1430
5293
  msgid "Spanish"
5294
  msgstr ""
5295
 
5296
+ #: includes/core/class-builtin.php:1431
5297
  msgid "Estonian"
5298
  msgstr ""
5299
 
5300
+ #: includes/core/class-builtin.php:1432
5301
  msgid "Basque"
5302
  msgstr ""
5303
 
5304
+ #: includes/core/class-builtin.php:1433
5305
  msgid "Persian"
5306
  msgstr ""
5307
 
5308
+ #: includes/core/class-builtin.php:1434
5309
  msgid "Fulah"
5310
  msgstr ""
5311
 
5312
+ #: includes/core/class-builtin.php:1435
5313
  msgid "Finnish"
5314
  msgstr ""
5315
 
5316
+ #: includes/core/class-builtin.php:1436
5317
  msgid "Fijian"
5318
  msgstr ""
5319
 
5320
+ #: includes/core/class-builtin.php:1437
5321
  msgid "Faroese"
5322
  msgstr ""
5323
 
5324
+ #: includes/core/class-builtin.php:1438
5325
  msgid "French"
5326
  msgstr ""
5327
 
5328
+ #: includes/core/class-builtin.php:1439
5329
  msgid "Western Frisian"
5330
  msgstr ""
5331
 
5332
+ #: includes/core/class-builtin.php:1440
5333
  msgid "Irish"
5334
  msgstr ""
5335
 
5336
+ #: includes/core/class-builtin.php:1441
5337
  msgid "Scottish Gaelic"
5338
  msgstr ""
5339
 
5340
+ #: includes/core/class-builtin.php:1442
5341
  msgid "Galician"
5342
  msgstr ""
5343
 
5344
+ #: includes/core/class-builtin.php:1443
5345
  msgid "Guarani"
5346
  msgstr ""
5347
 
5348
+ #: includes/core/class-builtin.php:1444
5349
  msgid "Gujarati"
5350
  msgstr ""
5351
 
5352
+ #: includes/core/class-builtin.php:1445
5353
  msgid "Manx"
5354
  msgstr ""
5355
 
5356
+ #: includes/core/class-builtin.php:1446
5357
  msgid "Hausa"
5358
  msgstr ""
5359
 
5360
+ #: includes/core/class-builtin.php:1447
5361
  msgid "Hebrew"
5362
  msgstr ""
5363
 
5364
+ #: includes/core/class-builtin.php:1448
5365
  msgid "Hindi"
5366
  msgstr ""
5367
 
5368
+ #: includes/core/class-builtin.php:1449
5369
  msgid "Hiri Motu"
5370
  msgstr ""
5371
 
5372
+ #: includes/core/class-builtin.php:1450
5373
  msgid "Croatian"
5374
  msgstr ""
5375
 
5376
+ #: includes/core/class-builtin.php:1451
5377
  msgid "Haitian"
5378
  msgstr ""
5379
 
5380
+ #: includes/core/class-builtin.php:1452
5381
  msgid "Hungarian"
5382
  msgstr ""
5383
 
5384
+ #: includes/core/class-builtin.php:1453
5385
  msgid "Armenian"
5386
  msgstr ""
5387
 
5388
+ #: includes/core/class-builtin.php:1454
5389
  msgid "Herero"
5390
  msgstr ""
5391
 
5392
+ #: includes/core/class-builtin.php:1455
5393
  msgid "Interlingua (International Auxiliary Language Association)"
5394
  msgstr ""
5395
 
5396
+ #: includes/core/class-builtin.php:1456
5397
  msgid "Indonesian"
5398
  msgstr ""
5399
 
5400
+ #: includes/core/class-builtin.php:1457
5401
  msgid "Interlingue"
5402
  msgstr ""
5403
 
5404
+ #: includes/core/class-builtin.php:1458
5405
  msgid "Igbo"
5406
  msgstr ""
5407
 
5408
+ #: includes/core/class-builtin.php:1459
5409
  msgid "Sichuan Yi"
5410
  msgstr ""
5411
 
5412
+ #: includes/core/class-builtin.php:1460
5413
  msgid "Inupiaq"
5414
  msgstr ""
5415
 
5416
+ #: includes/core/class-builtin.php:1461
5417
  msgid "Ido"
5418
  msgstr ""
5419
 
5420
+ #: includes/core/class-builtin.php:1462
5421
  msgid "Icelandic"
5422
  msgstr ""
5423
 
5424
+ #: includes/core/class-builtin.php:1463
5425
  msgid "Italian"
5426
  msgstr ""
5427
 
5428
+ #: includes/core/class-builtin.php:1464
5429
  msgid "Inuktitut"
5430
  msgstr ""
5431
 
5432
+ #: includes/core/class-builtin.php:1465
5433
  msgid "Japanese"
5434
  msgstr ""
5435
 
5436
+ #: includes/core/class-builtin.php:1466
5437
  msgid "Javanese"
5438
  msgstr ""
5439
 
5440
+ #: includes/core/class-builtin.php:1467
5441
  msgid "Georgian"
5442
  msgstr ""
5443
 
5444
+ #: includes/core/class-builtin.php:1468
5445
  msgid "Kongo"
5446
  msgstr ""
5447
 
5448
+ #: includes/core/class-builtin.php:1469
5449
  msgid "Kikuyu"
5450
  msgstr ""
5451
 
5452
+ #: includes/core/class-builtin.php:1470
5453
  msgid "Kwanyama"
5454
  msgstr ""
5455
 
5456
+ #: includes/core/class-builtin.php:1471
5457
  msgid "Kazakh"
5458
  msgstr ""
5459
 
5460
+ #: includes/core/class-builtin.php:1472
5461
  msgid "Kalaallisut"
5462
  msgstr ""
5463
 
5464
+ #: includes/core/class-builtin.php:1473
5465
  msgid "Khmer"
5466
  msgstr ""
5467
 
5468
+ #: includes/core/class-builtin.php:1474
5469
  msgid "Kannada"
5470
  msgstr ""
5471
 
5472
+ #: includes/core/class-builtin.php:1475
5473
  msgid "Korean"
5474
  msgstr ""
5475
 
5476
+ #: includes/core/class-builtin.php:1476
5477
  msgid "Kanuri"
5478
  msgstr ""
5479
 
5480
+ #: includes/core/class-builtin.php:1477
5481
  msgid "Kashmiri"
5482
  msgstr ""
5483
 
5484
+ #: includes/core/class-builtin.php:1478
5485
  msgid "Kurdish"
5486
  msgstr ""
5487
 
5488
+ #: includes/core/class-builtin.php:1479
5489
  msgid "Komi"
5490
  msgstr ""
5491
 
5492
+ #: includes/core/class-builtin.php:1480
5493
  msgid "Cornish"
5494
  msgstr ""
5495
 
5496
+ #: includes/core/class-builtin.php:1481
5497
  msgid "Kirghiz"
5498
  msgstr ""
5499
 
5500
+ #: includes/core/class-builtin.php:1482
5501
  msgid "Latin"
5502
  msgstr ""
5503
 
5504
+ #: includes/core/class-builtin.php:1483
5505
  msgid "Luxembourgish"
5506
  msgstr ""
5507
 
5508
+ #: includes/core/class-builtin.php:1484
5509
  msgid "Ganda"
5510
  msgstr ""
5511
 
5512
+ #: includes/core/class-builtin.php:1485
5513
  msgid "Limburgish"
5514
  msgstr ""
5515
 
5516
+ #: includes/core/class-builtin.php:1486
5517
  msgid "Lingala"
5518
  msgstr ""
5519
 
5520
+ #: includes/core/class-builtin.php:1487
5521
  msgid "Lao"
5522
  msgstr ""
5523
 
5524
+ #: includes/core/class-builtin.php:1488
5525
  msgid "Lithuanian"
5526
  msgstr ""
5527
 
5528
+ #: includes/core/class-builtin.php:1489
5529
  msgid "Luba-Katanga"
5530
  msgstr ""
5531
 
5532
+ #: includes/core/class-builtin.php:1490
5533
  msgid "Latvian"
5534
  msgstr ""
5535
 
5536
+ #: includes/core/class-builtin.php:1491
5537
  msgid "Malagasy"
5538
  msgstr ""
5539
 
5540
+ #: includes/core/class-builtin.php:1492
5541
  msgid "Marshallese"
5542
  msgstr ""
5543
 
5544
+ #: includes/core/class-builtin.php:1493
5545
  msgid "Maori"
5546
  msgstr ""
5547
 
5548
+ #: includes/core/class-builtin.php:1494
5549
  msgid "Macedonian"
5550
  msgstr ""
5551
 
5552
+ #: includes/core/class-builtin.php:1495
5553
  msgid "Malayalam"
5554
  msgstr ""
5555
 
5556
+ #: includes/core/class-builtin.php:1496
5557
  msgid "Mongolian"
5558
  msgstr ""
5559
 
5560
+ #: includes/core/class-builtin.php:1497
5561
  msgid "Marathi"
5562
  msgstr ""
5563
 
5564
+ #: includes/core/class-builtin.php:1498
5565
  msgid "Malay"
5566
  msgstr ""
5567
 
5568
+ #: includes/core/class-builtin.php:1499
5569
  msgid "Maltese"
5570
  msgstr ""
5571
 
5572
+ #: includes/core/class-builtin.php:1500
5573
  msgid "Burmese"
5574
  msgstr ""
5575
 
5576
+ #: includes/core/class-builtin.php:1501 includes/core/class-builtin.php:1732
5577
  msgid "Nauru"
5578
  msgstr ""
5579
 
5580
+ #: includes/core/class-builtin.php:1502
5581
  msgid "Norwegian Bokmal"
5582
  msgstr ""
5583
 
5584
+ #: includes/core/class-builtin.php:1503
5585
  msgid "North Ndebele"
5586
  msgstr ""
5587
 
5588
+ #: includes/core/class-builtin.php:1504
5589
  msgid "Nepali"
5590
  msgstr ""
5591
 
5592
+ #: includes/core/class-builtin.php:1505
5593
  msgid "Ndonga"
5594
  msgstr ""
5595
 
5596
+ #: includes/core/class-builtin.php:1506
5597
  msgid "Dutch"
5598
  msgstr ""
5599
 
5600
+ #: includes/core/class-builtin.php:1507
5601
  msgid "Norwegian Nynorsk"
5602
  msgstr ""
5603
 
5604
+ #: includes/core/class-builtin.php:1508
5605
  msgid "Norwegian"
5606
  msgstr ""
5607
 
5608
+ #: includes/core/class-builtin.php:1509
5609
  msgid "South Ndebele"
5610
  msgstr ""
5611
 
5612
+ #: includes/core/class-builtin.php:1510
5613
  msgid "Navajo"
5614
  msgstr ""
5615
 
5616
+ #: includes/core/class-builtin.php:1511
5617
  msgid "Chichewa"
5618
  msgstr ""
5619
 
5620
+ #: includes/core/class-builtin.php:1512
5621
  msgid "Occitan"
5622
  msgstr ""
5623
 
5624
+ #: includes/core/class-builtin.php:1513
5625
  msgid "Ojibwa"
5626
  msgstr ""
5627
 
5628
+ #: includes/core/class-builtin.php:1514
5629
  msgid "Oromo"
5630
  msgstr ""
5631
 
5632
+ #: includes/core/class-builtin.php:1515
5633
  msgid "Oriya"
5634
  msgstr ""
5635
 
5636
+ #: includes/core/class-builtin.php:1516
5637
  msgid "Ossetian"
5638
  msgstr ""
5639
 
5640
+ #: includes/core/class-builtin.php:1517
5641
  msgid "Panjabi"
5642
  msgstr ""
5643
 
5644
+ #: includes/core/class-builtin.php:1518
5645
  msgid "Pali"
5646
  msgstr ""
5647
 
5648
+ #: includes/core/class-builtin.php:1519
5649
  msgid "Polish"
5650
  msgstr ""
5651
 
5652
+ #: includes/core/class-builtin.php:1520
5653
  msgid "Pashto"
5654
  msgstr ""
5655
 
5656
+ #: includes/core/class-builtin.php:1521
5657
  msgid "Portuguese"
5658
  msgstr ""
5659
 
5660
+ #: includes/core/class-builtin.php:1522
5661
  msgid "Quechua"
5662
  msgstr ""
5663
 
5664
+ #: includes/core/class-builtin.php:1523
5665
  msgid "Raeto-Romance"
5666
  msgstr ""
5667
 
5668
+ #: includes/core/class-builtin.php:1524
5669
  msgid "Kirundi"
5670
  msgstr ""
5671
 
5672
+ #: includes/core/class-builtin.php:1525
5673
  msgid "Romanian"
5674
  msgstr ""
5675
 
5676
+ #: includes/core/class-builtin.php:1526
5677
  msgid "Russian"
5678
  msgstr ""
5679
 
5680
+ #: includes/core/class-builtin.php:1527
5681
  msgid "Kinyarwanda"
5682
  msgstr ""
5683
 
5684
+ #: includes/core/class-builtin.php:1528
5685
  msgid "Sanskrit"
5686
  msgstr ""
5687
 
5688
+ #: includes/core/class-builtin.php:1529
5689
  msgid "Sardinian"
5690
  msgstr ""
5691
 
5692
+ #: includes/core/class-builtin.php:1530
5693
  msgid "Sindhi"
5694
  msgstr ""
5695
 
5696
+ #: includes/core/class-builtin.php:1531
5697
  msgid "Northern Sami"
5698
  msgstr ""
5699
 
5700
+ #: includes/core/class-builtin.php:1532
5701
  msgid "Sango"
5702
  msgstr ""
5703
 
5704
+ #: includes/core/class-builtin.php:1533
5705
  msgid "Sinhala"
5706
  msgstr ""
5707
 
5708
+ #: includes/core/class-builtin.php:1534
5709
  msgid "Slovak"
5710
  msgstr ""
5711
 
5712
+ #: includes/core/class-builtin.php:1535
5713
  msgid "Slovenian"
5714
  msgstr ""
5715
 
5716
+ #: includes/core/class-builtin.php:1536
5717
  msgid "Samoan"
5718
  msgstr ""
5719
 
5720
+ #: includes/core/class-builtin.php:1537
5721
  msgid "Shona"
5722
  msgstr ""
5723
 
5724
+ #: includes/core/class-builtin.php:1538
5725
  msgid "Somali"
5726
  msgstr ""
5727
 
5728
+ #: includes/core/class-builtin.php:1539
5729
  msgid "Albanian"
5730
  msgstr ""
5731
 
5732
+ #: includes/core/class-builtin.php:1540
5733
  msgid "Serbian"
5734
  msgstr ""
5735
 
5736
+ #: includes/core/class-builtin.php:1541
5737
  msgid "Swati"
5738
  msgstr ""
5739
 
5740
+ #: includes/core/class-builtin.php:1542
5741
  msgid "Southern Sotho"
5742
  msgstr ""
5743
 
5744
+ #: includes/core/class-builtin.php:1543
5745
  msgid "Sundanese"
5746
  msgstr ""
5747
 
5748
+ #: includes/core/class-builtin.php:1544
5749
  msgid "Swedish"
5750
  msgstr ""
5751
 
5752
+ #: includes/core/class-builtin.php:1545
5753
  msgid "Swahili"
5754
  msgstr ""
5755
 
5756
+ #: includes/core/class-builtin.php:1546
5757
  msgid "Tamil"
5758
  msgstr ""
5759
 
5760
+ #: includes/core/class-builtin.php:1547
5761
  msgid "Telugu"
5762
  msgstr ""
5763
 
5764
+ #: includes/core/class-builtin.php:1548
5765
  msgid "Tajik"
5766
  msgstr ""
5767
 
5768
+ #: includes/core/class-builtin.php:1549
5769
  msgid "Thai"
5770
  msgstr ""
5771
 
5772
+ #: includes/core/class-builtin.php:1550
5773
  msgid "Tigrinya"
5774
  msgstr ""
5775
 
5776
+ #: includes/core/class-builtin.php:1551
5777
  msgid "Turkmen"
5778
  msgstr ""
5779
 
5780
+ #: includes/core/class-builtin.php:1552
5781
  msgid "Tagalog"
5782
  msgstr ""
5783
 
5784
+ #: includes/core/class-builtin.php:1553
5785
  msgid "Tswana"
5786
  msgstr ""
5787
 
5788
+ #: includes/core/class-builtin.php:1554 includes/core/class-builtin.php:1802
5789
  msgid "Tonga"
5790
  msgstr ""
5791
 
5792
+ #: includes/core/class-builtin.php:1555
5793
  msgid "Turkish"
5794
  msgstr ""
5795
 
5796
+ #: includes/core/class-builtin.php:1556
5797
  msgid "Tsonga"
5798
  msgstr ""
5799
 
5800
+ #: includes/core/class-builtin.php:1557
5801
  msgid "Tatar"
5802
  msgstr ""
5803
 
5804
+ #: includes/core/class-builtin.php:1558
5805
  msgid "Twi"
5806
  msgstr ""
5807
 
5808
+ #: includes/core/class-builtin.php:1559
5809
  msgid "Tahitian"
5810
  msgstr ""
5811
 
5812
+ #: includes/core/class-builtin.php:1560
5813
  msgid "Uighur"
5814
  msgstr ""
5815
 
5816
+ #: includes/core/class-builtin.php:1561
5817
  msgid "Ukrainian"
5818
  msgstr ""
5819
 
5820
+ #: includes/core/class-builtin.php:1562
5821
  msgid "Urdu"
5822
  msgstr ""
5823
 
5824
+ #: includes/core/class-builtin.php:1563
5825
  msgid "Uzbek"
5826
  msgstr ""
5827
 
5828
+ #: includes/core/class-builtin.php:1564
5829
  msgid "Venda"
5830
  msgstr ""
5831
 
5832
+ #: includes/core/class-builtin.php:1565
5833
  msgid "Vietnamese"
5834
  msgstr ""
5835
 
5836
+ #: includes/core/class-builtin.php:1566
5837
  msgid "Volapuk"
5838
  msgstr ""
5839
 
5840
+ #: includes/core/class-builtin.php:1567
5841
  msgid "Walloon"
5842
  msgstr ""
5843
 
5844
+ #: includes/core/class-builtin.php:1568
5845
  msgid "Wolof"
5846
  msgstr ""
5847
 
5848
+ #: includes/core/class-builtin.php:1569
5849
  msgid "Xhosa"
5850
  msgstr ""
5851
 
5852
+ #: includes/core/class-builtin.php:1570
5853
  msgid "Yiddish"
5854
  msgstr ""
5855
 
5856
+ #: includes/core/class-builtin.php:1571
5857
  msgid "Yoruba"
5858
  msgstr ""
5859
 
5860
+ #: includes/core/class-builtin.php:1572
5861
  msgid "Zhuang"
5862
  msgstr ""
5863
 
5864
+ #: includes/core/class-builtin.php:1573
5865
  msgid "Chinese"
5866
  msgstr ""
5867
 
5868
+ #: includes/core/class-builtin.php:1574
5869
  msgid "Zulu"
5870
  msgstr ""
5871
 
5872
+ #: includes/core/class-builtin.php:1580
5873
  msgid "Afghanistan"
5874
  msgstr ""
5875
 
5876
+ #: includes/core/class-builtin.php:1581
5877
  msgid "Åland Islands"
5878
  msgstr ""
5879
 
5880
+ #: includes/core/class-builtin.php:1582
5881
  msgid "Albania"
5882
  msgstr ""
5883
 
5884
+ #: includes/core/class-builtin.php:1583
5885
  msgid "Algeria"
5886
  msgstr ""
5887
 
5888
+ #: includes/core/class-builtin.php:1584
5889
  msgid "American Samoa"
5890
  msgstr ""
5891
 
5892
+ #: includes/core/class-builtin.php:1585
5893
  msgid "Andorra"
5894
  msgstr ""
5895
 
5896
+ #: includes/core/class-builtin.php:1586
5897
  msgid "Angola"
5898
  msgstr ""
5899
 
5900
+ #: includes/core/class-builtin.php:1587
5901
  msgid "Anguilla"
5902
  msgstr ""
5903
 
5904
+ #: includes/core/class-builtin.php:1588
5905
  msgid "Antarctica"
5906
  msgstr ""
5907
 
5908
+ #: includes/core/class-builtin.php:1589
5909
  msgid "Antigua and Barbuda"
5910
  msgstr ""
5911
 
5912
+ #: includes/core/class-builtin.php:1590
5913
  msgid "Argentina"
5914
  msgstr ""
5915
 
5916
+ #: includes/core/class-builtin.php:1591
5917
  msgid "Armenia"
5918
  msgstr ""
5919
 
5920
+ #: includes/core/class-builtin.php:1592
5921
  msgid "Aruba"
5922
  msgstr ""
5923
 
5924
+ #: includes/core/class-builtin.php:1593
5925
  msgid "Australia"
5926
  msgstr ""
5927
 
5928
+ #: includes/core/class-builtin.php:1594
5929
  msgid "Austria"
5930
  msgstr ""
5931
 
5932
+ #: includes/core/class-builtin.php:1595
5933
  msgid "Azerbaijan"
5934
  msgstr ""
5935
 
5936
+ #: includes/core/class-builtin.php:1596
5937
  msgid "Bahamas"
5938
  msgstr ""
5939
 
5940
+ #: includes/core/class-builtin.php:1597
5941
  msgid "Bahrain"
5942
  msgstr ""
5943
 
5944
+ #: includes/core/class-builtin.php:1598
5945
  msgid "Bangladesh"
5946
  msgstr ""
5947
 
5948
+ #: includes/core/class-builtin.php:1599
5949
  msgid "Barbados"
5950
  msgstr ""
5951
 
5952
+ #: includes/core/class-builtin.php:1600
5953
  msgid "Belarus"
5954
  msgstr ""
5955
 
5956
+ #: includes/core/class-builtin.php:1601
5957
  msgid "Belgium"
5958
  msgstr ""
5959
 
5960
+ #: includes/core/class-builtin.php:1602
5961
  msgid "Belize"
5962
  msgstr ""
5963
 
5964
+ #: includes/core/class-builtin.php:1603
5965
  msgid "Benin"
5966
  msgstr ""
5967
 
5968
+ #: includes/core/class-builtin.php:1604
5969
  msgid "Bermuda"
5970
  msgstr ""
5971
 
5972
+ #: includes/core/class-builtin.php:1605
5973
  msgid "Bhutan"
5974
  msgstr ""
5975
 
5976
+ #: includes/core/class-builtin.php:1606
5977
  msgid "Bolivia, Plurinational State of"
5978
  msgstr ""
5979
 
5980
+ #: includes/core/class-builtin.php:1607
5981
  msgid "Bosnia and Herzegovina"
5982
  msgstr ""
5983
 
5984
+ #: includes/core/class-builtin.php:1608
5985
  msgid "Botswana"
5986
  msgstr ""
5987
 
5988
+ #: includes/core/class-builtin.php:1609
5989
  msgid "Bouvet Island"
5990
  msgstr ""
5991
 
5992
+ #: includes/core/class-builtin.php:1610
5993
  msgid "Brazil"
5994
  msgstr ""
5995
 
5996
+ #: includes/core/class-builtin.php:1611
5997
  msgid "British Indian Ocean Territory"
5998
  msgstr ""
5999
 
6000
+ #: includes/core/class-builtin.php:1612
6001
  msgid "Brunei Darussalam"
6002
  msgstr ""
6003
 
6004
+ #: includes/core/class-builtin.php:1613
6005
  msgid "Bulgaria"
6006
  msgstr ""
6007
 
6008
+ #: includes/core/class-builtin.php:1614
6009
  msgid "Burkina Faso"
6010
  msgstr ""
6011
 
6012
+ #: includes/core/class-builtin.php:1615
6013
  msgid "Burundi"
6014
  msgstr ""
6015
 
6016
+ #: includes/core/class-builtin.php:1616
6017
  msgid "Cambodia"
6018
  msgstr ""
6019
 
6020
+ #: includes/core/class-builtin.php:1617
6021
  msgid "Cameroon"
6022
  msgstr ""
6023
 
6024
+ #: includes/core/class-builtin.php:1618
6025
  msgid "Canada"
6026
  msgstr ""
6027
 
6028
+ #: includes/core/class-builtin.php:1619
6029
  msgid "Cape Verde"
6030
  msgstr ""
6031
 
6032
+ #: includes/core/class-builtin.php:1620
6033
  msgid "Cayman Islands"
6034
  msgstr ""
6035
 
6036
+ #: includes/core/class-builtin.php:1621
6037
  msgid "Central African Republic"
6038
  msgstr ""
6039
 
6040
+ #: includes/core/class-builtin.php:1622
6041
  msgid "Chad"
6042
  msgstr ""
6043
 
6044
+ #: includes/core/class-builtin.php:1623
6045
  msgid "Chile"
6046
  msgstr ""
6047
 
6048
+ #: includes/core/class-builtin.php:1624
6049
  msgid "China"
6050
  msgstr ""
6051
 
6052
+ #: includes/core/class-builtin.php:1625
6053
  msgid "Christmas Island"
6054
  msgstr ""
6055
 
6056
+ #: includes/core/class-builtin.php:1626
6057
  msgid "Cocos (Keeling) Islands"
6058
  msgstr ""
6059
 
6060
+ #: includes/core/class-builtin.php:1627
6061
  msgid "Colombia"
6062
  msgstr ""
6063
 
6064
+ #: includes/core/class-builtin.php:1628
6065
  msgid "Comoros"
6066
  msgstr ""
6067
 
6068
+ #: includes/core/class-builtin.php:1629
6069
  msgid "Congo"
6070
  msgstr ""
6071
 
6072
+ #: includes/core/class-builtin.php:1630
6073
  msgid "Congo, the Democratic Republic of the"
6074
  msgstr ""
6075
 
6076
+ #: includes/core/class-builtin.php:1631
6077
  msgid "Cook Islands"
6078
  msgstr ""
6079
 
6080
+ #: includes/core/class-builtin.php:1632
6081
  msgid "Costa Rica"
6082
  msgstr ""
6083
 
6084
+ #: includes/core/class-builtin.php:1633
6085
  msgid "Côte d'Ivoire"
6086
  msgstr ""
6087
 
6088
+ #: includes/core/class-builtin.php:1634
6089
  msgid "Croatia"
6090
  msgstr ""
6091
 
6092
+ #: includes/core/class-builtin.php:1635
6093
  msgid "Cuba"
6094
  msgstr ""
6095
 
6096
+ #: includes/core/class-builtin.php:1636
6097
  msgid "Cyprus"
6098
  msgstr ""
6099
 
6100
+ #: includes/core/class-builtin.php:1637
6101
  msgid "Czech Republic"
6102
  msgstr ""
6103
 
6104
+ #: includes/core/class-builtin.php:1638
6105
  msgid "Denmark"
6106
  msgstr ""
6107
 
6108
+ #: includes/core/class-builtin.php:1639
6109
  msgid "Djibouti"
6110
  msgstr ""
6111
 
6112
+ #: includes/core/class-builtin.php:1640
6113
  msgid "Dominica"
6114
  msgstr ""
6115
 
6116
+ #: includes/core/class-builtin.php:1641
6117
  msgid "Dominican Republic"
6118
  msgstr ""
6119
 
6120
+ #: includes/core/class-builtin.php:1642
6121
  msgid "Ecuador"
6122
  msgstr ""
6123
 
6124
+ #: includes/core/class-builtin.php:1643
6125
  msgid "Egypt"
6126
  msgstr ""
6127
 
6128
+ #: includes/core/class-builtin.php:1644
6129
  msgid "El Salvador"
6130
  msgstr ""
6131
 
6132
+ #: includes/core/class-builtin.php:1645
6133
  msgid "Equatorial Guinea"
6134
  msgstr ""
6135
 
6136
+ #: includes/core/class-builtin.php:1646
6137
  msgid "Eritrea"
6138
  msgstr ""
6139
 
6140
+ #: includes/core/class-builtin.php:1647
6141
  msgid "Estonia"
6142
  msgstr ""
6143
 
6144
+ #: includes/core/class-builtin.php:1648
6145
  msgid "Ethiopia"
6146
  msgstr ""
6147
 
6148
+ #: includes/core/class-builtin.php:1649
6149
  msgid "Falkland Islands (Malvinas)"
6150
  msgstr ""
6151
 
6152
+ #: includes/core/class-builtin.php:1650
6153
  msgid "Faroe Islands"
6154
  msgstr ""
6155
 
6156
+ #: includes/core/class-builtin.php:1651
6157
  msgid "Fiji"
6158
  msgstr ""
6159
 
6160
+ #: includes/core/class-builtin.php:1652
6161
  msgid "Finland"
6162
  msgstr ""
6163
 
6164
+ #: includes/core/class-builtin.php:1653
6165
  msgid "France"
6166
  msgstr ""
6167
 
6168
+ #: includes/core/class-builtin.php:1654
6169
  msgid "French Guiana"
6170
  msgstr ""
6171
 
6172
+ #: includes/core/class-builtin.php:1655
6173
  msgid "French Polynesia"
6174
  msgstr ""
6175
 
6176
+ #: includes/core/class-builtin.php:1656
6177
  msgid "French Southern Territories"
6178
  msgstr ""
6179
 
6180
+ #: includes/core/class-builtin.php:1657
6181
  msgid "Gabon"
6182
  msgstr ""
6183
 
6184
+ #: includes/core/class-builtin.php:1658
6185
  msgid "Gambia"
6186
  msgstr ""
6187
 
6188
+ #: includes/core/class-builtin.php:1659
6189
  msgid "Georgia"
6190
  msgstr ""
6191
 
6192
+ #: includes/core/class-builtin.php:1660
6193
  msgid "Germany"
6194
  msgstr ""
6195
 
6196
+ #: includes/core/class-builtin.php:1661
6197
  msgid "Ghana"
6198
  msgstr ""
6199
 
6200
+ #: includes/core/class-builtin.php:1662
6201
  msgid "Gibraltar"
6202
  msgstr ""
6203
 
6204
+ #: includes/core/class-builtin.php:1663
6205
  msgid "Greece"
6206
  msgstr ""
6207
 
6208
+ #: includes/core/class-builtin.php:1664
6209
  msgid "Greenland"
6210
  msgstr ""
6211
 
6212
+ #: includes/core/class-builtin.php:1665
6213
  msgid "Grenada"
6214
  msgstr ""
6215
 
6216
+ #: includes/core/class-builtin.php:1666
6217
  msgid "Guadeloupe"
6218
  msgstr ""
6219
 
6220
+ #: includes/core/class-builtin.php:1667
6221
  msgid "Guam"
6222
  msgstr ""
6223
 
6224
+ #: includes/core/class-builtin.php:1668
6225
  msgid "Guatemala"
6226
  msgstr ""
6227
 
6228
+ #: includes/core/class-builtin.php:1669
6229
  msgid "Guernsey"
6230
  msgstr ""
6231
 
6232
+ #: includes/core/class-builtin.php:1670
6233
  msgid "Guinea"
6234
  msgstr ""
6235
 
6236
+ #: includes/core/class-builtin.php:1671
6237
  msgid "Guinea-Bissau"
6238
  msgstr ""
6239
 
6240
+ #: includes/core/class-builtin.php:1672
6241
  msgid "Guyana"
6242
  msgstr ""
6243
 
6244
+ #: includes/core/class-builtin.php:1673
6245
  msgid "Haiti"
6246
  msgstr ""
6247
 
6248
+ #: includes/core/class-builtin.php:1674
6249
  msgid "Heard Island and McDonald Islands"
6250
  msgstr ""
6251
 
6252
+ #: includes/core/class-builtin.php:1675
6253
  msgid "Holy See (Vatican City State)"
6254
  msgstr ""
6255
 
6256
+ #: includes/core/class-builtin.php:1676
6257
  msgid "Honduras"
6258
  msgstr ""
6259
 
6260
+ #: includes/core/class-builtin.php:1677
6261
  msgid "Hong Kong"
6262
  msgstr ""
6263
 
6264
+ #: includes/core/class-builtin.php:1678
6265
  msgid "Hungary"
6266
  msgstr ""
6267
 
6268
+ #: includes/core/class-builtin.php:1679
6269
  msgid "Iceland"
6270
  msgstr ""
6271
 
6272
+ #: includes/core/class-builtin.php:1680
6273
  msgid "India"
6274
  msgstr ""
6275
 
6276
+ #: includes/core/class-builtin.php:1681
6277
  msgid "Indonesia"
6278
  msgstr ""
6279
 
6280
+ #: includes/core/class-builtin.php:1682
6281
  msgid "Iran, Islamic Republic of"
6282
  msgstr ""
6283
 
6284
+ #: includes/core/class-builtin.php:1683
6285
  msgid "Iraq"
6286
  msgstr ""
6287
 
6288
+ #: includes/core/class-builtin.php:1684
6289
  msgid "Ireland"
6290
  msgstr ""
6291
 
6292
+ #: includes/core/class-builtin.php:1685
6293
  msgid "Isle of Man"
6294
  msgstr ""
6295
 
6296
+ #: includes/core/class-builtin.php:1686
6297
  msgid "Israel"
6298
  msgstr ""
6299
 
6300
+ #: includes/core/class-builtin.php:1687
6301
  msgid "Italy"
6302
  msgstr ""
6303
 
6304
+ #: includes/core/class-builtin.php:1688
6305
  msgid "Jamaica"
6306
  msgstr ""
6307
 
6308
+ #: includes/core/class-builtin.php:1689
6309
  msgid "Japan"
6310
  msgstr ""
6311
 
6312
+ #: includes/core/class-builtin.php:1690
6313
  msgid "Jersey"
6314
  msgstr ""
6315
 
6316
+ #: includes/core/class-builtin.php:1691
6317
  msgid "Jordan"
6318
  msgstr ""
6319
 
6320
+ #: includes/core/class-builtin.php:1692
6321
  msgid "Kazakhstan"
6322
  msgstr ""
6323
 
6324
+ #: includes/core/class-builtin.php:1693
6325
  msgid "Kenya"
6326
  msgstr ""
6327
 
6328
+ #: includes/core/class-builtin.php:1694
6329
  msgid "Kiribati"
6330
  msgstr ""
6331
 
6332
+ #: includes/core/class-builtin.php:1695
6333
  msgid "Korea, Democratic People's Republic of"
6334
  msgstr ""
6335
 
6336
+ #: includes/core/class-builtin.php:1696
6337
  msgid "Korea, Republic of"
6338
  msgstr ""
6339
 
6340
+ #: includes/core/class-builtin.php:1697
6341
  msgid "Kuwait"
6342
  msgstr ""
6343
 
6344
+ #: includes/core/class-builtin.php:1698
6345
  msgid "Kyrgyzstan"
6346
  msgstr ""
6347
 
6348
+ #: includes/core/class-builtin.php:1699
6349
  msgid "Lao People's Democratic Republic"
6350
  msgstr ""
6351
 
6352
+ #: includes/core/class-builtin.php:1700
6353
  msgid "Latvia"
6354
  msgstr ""
6355
 
6356
+ #: includes/core/class-builtin.php:1701
6357
  msgid "Lebanon"
6358
  msgstr ""
6359
 
6360
+ #: includes/core/class-builtin.php:1702
6361
  msgid "Lesotho"
6362
  msgstr ""
6363
 
6364
+ #: includes/core/class-builtin.php:1703
6365
  msgid "Liberia"
6366
  msgstr ""
6367
 
6368
+ #: includes/core/class-builtin.php:1704
6369
  msgid "Libyan Arab Jamahiriya"
6370
  msgstr ""
6371
 
6372
+ #: includes/core/class-builtin.php:1705
6373
  msgid "Liechtenstein"
6374
  msgstr ""
6375
 
6376
+ #: includes/core/class-builtin.php:1706
6377
  msgid "Lithuania"
6378
  msgstr ""
6379
 
6380
+ #: includes/core/class-builtin.php:1707
6381
  msgid "Luxembourg"
6382
  msgstr ""
6383
 
6384
+ #: includes/core/class-builtin.php:1708
6385
  msgid "Macao"
6386
  msgstr ""
6387
 
6388
+ #: includes/core/class-builtin.php:1709
6389
  msgid "Macedonia, the former Yugoslav Republic of"
6390
  msgstr ""
6391
 
6392
+ #: includes/core/class-builtin.php:1710
6393
  msgid "Madagascar"
6394
  msgstr ""
6395
 
6396
+ #: includes/core/class-builtin.php:1711
6397
  msgid "Malawi"
6398
  msgstr ""
6399
 
6400
+ #: includes/core/class-builtin.php:1712
6401
  msgid "Malaysia"
6402
  msgstr ""
6403
 
6404
+ #: includes/core/class-builtin.php:1713
6405
  msgid "Maldives"
6406
  msgstr ""
6407
 
6408
+ #: includes/core/class-builtin.php:1714
6409
  msgid "Mali"
6410
  msgstr ""
6411
 
6412
+ #: includes/core/class-builtin.php:1715
6413
  msgid "Malta"
6414
  msgstr ""
6415
 
6416
+ #: includes/core/class-builtin.php:1716
6417
  msgid "Marshall Islands"
6418
  msgstr ""
6419
 
6420
+ #: includes/core/class-builtin.php:1717
6421
  msgid "Martinique"
6422
  msgstr ""
6423
 
6424
+ #: includes/core/class-builtin.php:1718
6425
  msgid "Mauritania"
6426
  msgstr ""
6427
 
6428
+ #: includes/core/class-builtin.php:1719
6429
  msgid "Mauritius"
6430
  msgstr ""
6431
 
6432
+ #: includes/core/class-builtin.php:1720
6433
  msgid "Mayotte"
6434
  msgstr ""
6435
 
6436
+ #: includes/core/class-builtin.php:1721
6437
  msgid "Mexico"
6438
  msgstr ""
6439
 
6440
+ #: includes/core/class-builtin.php:1722
6441
  msgid "Micronesia, Federated States of"
6442
  msgstr ""
6443
 
6444
+ #: includes/core/class-builtin.php:1723
6445
  msgid "Moldova, Republic of"
6446
  msgstr ""
6447
 
6448
+ #: includes/core/class-builtin.php:1724
6449
  msgid "Monaco"
6450
  msgstr ""
6451
 
6452
+ #: includes/core/class-builtin.php:1725
6453
  msgid "Mongolia"
6454
  msgstr ""
6455
 
6456
+ #: includes/core/class-builtin.php:1726
6457
  msgid "Montenegro"
6458
  msgstr ""
6459
 
6460
+ #: includes/core/class-builtin.php:1727
6461
  msgid "Montserrat"
6462
  msgstr ""
6463
 
6464
+ #: includes/core/class-builtin.php:1728
6465
  msgid "Morocco"
6466
  msgstr ""
6467
 
6468
+ #: includes/core/class-builtin.php:1729
6469
  msgid "Mozambique"
6470
  msgstr ""
6471
 
6472
+ #: includes/core/class-builtin.php:1730
6473
  msgid "Myanmar"
6474
  msgstr ""
6475
 
6476
+ #: includes/core/class-builtin.php:1731
6477
  msgid "Namibia"
6478
  msgstr ""
6479
 
6480
+ #: includes/core/class-builtin.php:1733
6481
  msgid "Nepal"
6482
  msgstr ""
6483
 
6484
+ #: includes/core/class-builtin.php:1734
6485
  msgid "Netherlands"
6486
  msgstr ""
6487
 
6488
+ #: includes/core/class-builtin.php:1735
6489
  msgid "Netherlands Antilles"
6490
  msgstr ""
6491
 
6492
+ #: includes/core/class-builtin.php:1736
6493
  msgid "New Caledonia"
6494
  msgstr ""
6495
 
6496
+ #: includes/core/class-builtin.php:1737
6497
  msgid "New Zealand"
6498
  msgstr ""
6499
 
6500
+ #: includes/core/class-builtin.php:1738
6501
  msgid "Nicaragua"
6502
  msgstr ""
6503
 
6504
+ #: includes/core/class-builtin.php:1739
6505
  msgid "Niger"
6506
  msgstr ""
6507
 
6508
+ #: includes/core/class-builtin.php:1740
6509
  msgid "Nigeria"
6510
  msgstr ""
6511
 
6512
+ #: includes/core/class-builtin.php:1741
6513
  msgid "Niue"
6514
  msgstr ""
6515
 
6516
+ #: includes/core/class-builtin.php:1742
6517
  msgid "Norfolk Island"
6518
  msgstr ""
6519
 
6520
+ #: includes/core/class-builtin.php:1743
6521
  msgid "Northern Mariana Islands"
6522
  msgstr ""
6523
 
6524
+ #: includes/core/class-builtin.php:1744
6525
  msgid "Norway"
6526
  msgstr ""
6527
 
6528
+ #: includes/core/class-builtin.php:1745
6529
  msgid "Oman"
6530
  msgstr ""
6531
 
6532
+ #: includes/core/class-builtin.php:1746
6533
  msgid "Pakistan"
6534
  msgstr ""
6535
 
6536
+ #: includes/core/class-builtin.php:1747
6537
  msgid "Palau"
6538
  msgstr ""
6539
 
6540
+ #: includes/core/class-builtin.php:1748
6541
  msgid "Palestine"
6542
  msgstr ""
6543
 
6544
+ #: includes/core/class-builtin.php:1749
6545
  msgid "Panama"
6546
  msgstr ""
6547
 
6548
+ #: includes/core/class-builtin.php:1750
6549
  msgid "Papua New Guinea"
6550
  msgstr ""
6551
 
6552
+ #: includes/core/class-builtin.php:1751
6553
  msgid "Paraguay"
6554
  msgstr ""
6555
 
6556
+ #: includes/core/class-builtin.php:1752
6557
  msgid "Peru"
6558
  msgstr ""
6559
 
6560
+ #: includes/core/class-builtin.php:1753
6561
  msgid "Philippines"
6562
  msgstr ""
6563
 
6564
+ #: includes/core/class-builtin.php:1754
6565
  msgid "Pitcairn"
6566
  msgstr ""
6567
 
6568
+ #: includes/core/class-builtin.php:1755
6569
  msgid "Poland"
6570
  msgstr ""
6571
 
6572
+ #: includes/core/class-builtin.php:1756
6573
  msgid "Portugal"
6574
  msgstr ""
6575
 
6576
+ #: includes/core/class-builtin.php:1757
6577
  msgid "Puerto Rico"
6578
  msgstr ""
6579
 
6580
+ #: includes/core/class-builtin.php:1758
6581
  msgid "Qatar"
6582
  msgstr ""
6583
 
6584
+ #: includes/core/class-builtin.php:1759
6585
  msgid "Réunion"
6586
  msgstr ""
6587
 
6588
+ #: includes/core/class-builtin.php:1760
6589
  msgid "Romania"
6590
  msgstr ""
6591
 
6592
+ #: includes/core/class-builtin.php:1761
6593
  msgid "Russian Federation"
6594
  msgstr ""
6595
 
6596
+ #: includes/core/class-builtin.php:1762
6597
  msgid "Rwanda"
6598
  msgstr ""
6599
 
6600
+ #: includes/core/class-builtin.php:1763
6601
  msgid "Saint Barthélemy"
6602
  msgstr ""
6603
 
6604
+ #: includes/core/class-builtin.php:1764
6605
  msgid "Saint Helena"
6606
  msgstr ""
6607
 
6608
+ #: includes/core/class-builtin.php:1765
6609
  msgid "Saint Kitts and Nevis"
6610
  msgstr ""
6611
 
6612
+ #: includes/core/class-builtin.php:1766
6613
  msgid "Saint Lucia"
6614
  msgstr ""
6615
 
6616
+ #: includes/core/class-builtin.php:1767
6617
  msgid "Saint Martin (French part)"
6618
  msgstr ""
6619
 
6620
+ #: includes/core/class-builtin.php:1768
6621
  msgid "Saint Pierre and Miquelon"
6622
  msgstr ""
6623
 
6624
+ #: includes/core/class-builtin.php:1769
6625
  msgid "Saint Vincent and the Grenadines"
6626
  msgstr ""
6627
 
6628
+ #: includes/core/class-builtin.php:1770
6629
  msgid "Samoa"
6630
  msgstr ""
6631
 
6632
+ #: includes/core/class-builtin.php:1771
6633
  msgid "San Marino"
6634
  msgstr ""
6635
 
6636
+ #: includes/core/class-builtin.php:1772
6637
  msgid "Sao Tome and Principe"
6638
  msgstr ""
6639
 
6640
+ #: includes/core/class-builtin.php:1773
6641
  msgid "Saudi Arabia"
6642
  msgstr ""
6643
 
6644
+ #: includes/core/class-builtin.php:1774
6645
  msgid "Senegal"
6646
  msgstr ""
6647
 
6648
+ #: includes/core/class-builtin.php:1775
6649
  msgid "Serbia"
6650
  msgstr ""
6651
 
6652
+ #: includes/core/class-builtin.php:1776
6653
  msgid "Seychelles"
6654
  msgstr ""
6655
 
6656
+ #: includes/core/class-builtin.php:1777
6657
  msgid "Sierra Leone"
6658
  msgstr ""
6659
 
6660
+ #: includes/core/class-builtin.php:1778
6661
  msgid "Singapore"
6662
  msgstr ""
6663
 
6664
+ #: includes/core/class-builtin.php:1779
6665
  msgid "Slovakia"
6666
  msgstr ""
6667
 
6668
+ #: includes/core/class-builtin.php:1780
6669
  msgid "Slovenia"
6670
  msgstr ""
6671
 
6672
+ #: includes/core/class-builtin.php:1781
6673
  msgid "Solomon Islands"
6674
  msgstr ""
6675
 
6676
+ #: includes/core/class-builtin.php:1782
6677
  msgid "Somalia"
6678
  msgstr ""
6679
 
6680
+ #: includes/core/class-builtin.php:1783
6681
  msgid "South Africa"
6682
  msgstr ""
6683
 
6684
+ #: includes/core/class-builtin.php:1784
6685
  msgid "South Georgia and the South Sandwich Islands"
6686
  msgstr ""
6687
 
6688
+ #: includes/core/class-builtin.php:1785
6689
  msgid "South Sudan"
6690
  msgstr ""
6691
 
6692
+ #: includes/core/class-builtin.php:1786
6693
  msgid "Spain"
6694
  msgstr ""
6695
 
6696
+ #: includes/core/class-builtin.php:1787
6697
  msgid "Sri Lanka"
6698
  msgstr ""
6699
 
6700
+ #: includes/core/class-builtin.php:1788
6701
  msgid "Sudan"
6702
  msgstr ""
6703
 
6704
+ #: includes/core/class-builtin.php:1789
6705
  msgid "Suriname"
6706
  msgstr ""
6707
 
6708
+ #: includes/core/class-builtin.php:1790
6709
  msgid "Svalbard and Jan Mayen"
6710
  msgstr ""
6711
 
6712
+ #: includes/core/class-builtin.php:1791
6713
  msgid "Swaziland"
6714
  msgstr ""
6715
 
6716
+ #: includes/core/class-builtin.php:1792
6717
  msgid "Sweden"
6718
  msgstr ""
6719
 
6720
+ #: includes/core/class-builtin.php:1793
6721
  msgid "Switzerland"
6722
  msgstr ""
6723
 
6724
+ #: includes/core/class-builtin.php:1794
6725
  msgid "Syrian Arab Republic"
6726
  msgstr ""
6727
 
6728
+ #: includes/core/class-builtin.php:1795
6729
  msgid "Taiwan, Province of China"
6730
  msgstr ""
6731
 
6732
+ #: includes/core/class-builtin.php:1796
6733
  msgid "Tajikistan"
6734
  msgstr ""
6735
 
6736
+ #: includes/core/class-builtin.php:1797
6737
  msgid "Tanzania, United Republic of"
6738
  msgstr ""
6739
 
6740
+ #: includes/core/class-builtin.php:1798
6741
  msgid "Thailand"
6742
  msgstr ""
6743
 
6744
+ #: includes/core/class-builtin.php:1799
6745
  msgid "Timor-Leste"
6746
  msgstr ""
6747
 
6748
+ #: includes/core/class-builtin.php:1800
6749
  msgid "Togo"
6750
  msgstr ""
6751
 
6752
+ #: includes/core/class-builtin.php:1801
6753
  msgid "Tokelau"
6754
  msgstr ""
6755
 
6756
+ #: includes/core/class-builtin.php:1803
6757
  msgid "Trinidad and Tobago"
6758
  msgstr ""
6759
 
6760
+ #: includes/core/class-builtin.php:1804
6761
  msgid "Tunisia"
6762
  msgstr ""
6763
 
6764
+ #: includes/core/class-builtin.php:1805
6765
  msgid "Turkey"
6766
  msgstr ""
6767
 
6768
+ #: includes/core/class-builtin.php:1806
6769
  msgid "Turkmenistan"
6770
  msgstr ""
6771
 
6772
+ #: includes/core/class-builtin.php:1807
6773
  msgid "Turks and Caicos Islands"
6774
  msgstr ""
6775
 
6776
+ #: includes/core/class-builtin.php:1808
6777
  msgid "Tuvalu"
6778
  msgstr ""
6779
 
6780
+ #: includes/core/class-builtin.php:1809
6781
  msgid "Uganda"
6782
  msgstr ""
6783
 
6784
+ #: includes/core/class-builtin.php:1810
6785
  msgid "Ukraine"
6786
  msgstr ""
6787
 
6788
+ #: includes/core/class-builtin.php:1811
6789
  msgid "United Arab Emirates"
6790
  msgstr ""
6791
 
6792
+ #: includes/core/class-builtin.php:1812
6793
  msgid "United Kingdom"
6794
  msgstr ""
6795
 
6796
+ #: includes/core/class-builtin.php:1813
6797
  msgid "United States"
6798
  msgstr ""
6799
 
6800
+ #: includes/core/class-builtin.php:1814
6801
  msgid "United States Minor Outlying Islands"
6802
  msgstr ""
6803
 
6804
+ #: includes/core/class-builtin.php:1815
6805
  msgid "Uruguay"
6806
  msgstr ""
6807
 
6808
+ #: includes/core/class-builtin.php:1816
6809
  msgid "Uzbekistan"
6810
  msgstr ""
6811
 
6812
+ #: includes/core/class-builtin.php:1817
6813
  msgid "Vanuatu"
6814
  msgstr ""
6815
 
6816
+ #: includes/core/class-builtin.php:1818
6817
  msgid "Venezuela, Bolivarian Republic of"
6818
  msgstr ""
6819
 
6820
+ #: includes/core/class-builtin.php:1819
6821
  msgid "Viet Nam"
6822
  msgstr ""
6823
 
6824
+ #: includes/core/class-builtin.php:1820
6825
  msgid "Virgin Islands, British"
6826
  msgstr ""
6827
 
6828
+ #: includes/core/class-builtin.php:1821
6829
  msgid "Virgin Islands, U.S."
6830
  msgstr ""
6831
 
6832
+ #: includes/core/class-builtin.php:1822
6833
  msgid "Wallis and Futuna"
6834
  msgstr ""
6835
 
6836
+ #: includes/core/class-builtin.php:1823
6837
  msgid "Western Sahara"
6838
  msgstr ""
6839
 
6840
+ #: includes/core/class-builtin.php:1824
6841
  msgid "Yemen"
6842
  msgstr ""
6843
 
6844
+ #: includes/core/class-builtin.php:1825
6845
  msgid "Zambia"
6846
  msgstr ""
6847
 
6848
+ #: includes/core/class-builtin.php:1826
6849
  msgid "Zimbabwe"
6850
  msgstr ""
6851
 
6936
  msgid "Less than 1 year old"
6937
  msgstr ""
6938
 
6939
+ #: includes/core/class-external-integrations.php:501
6940
  #, php-format
6941
  msgid "Edit the %s translation"
6942
  msgstr ""
6943
 
6944
+ #: includes/core/class-external-integrations.php:508
6945
  #, php-format
6946
  msgid "Add translation to %s"
6947
  msgstr ""
6948
 
6949
+ #: includes/core/class-fields.php:1263 templates/message.php:6
 
 
 
 
6950
  #, php-format
6951
  msgid "%s"
6952
  msgstr ""
6953
 
6954
+ #: includes/core/class-fields.php:1284
6955
  msgid "Custom Field"
6956
  msgstr ""
6957
 
6958
+ #: includes/core/class-fields.php:1627
6959
  msgid "Please upload a valid image!"
6960
  msgstr ""
6961
 
6962
+ #: includes/core/class-fields.php:1641
6963
  msgid "Sorry this is not a valid image."
6964
  msgstr ""
6965
 
6966
+ #: includes/core/class-fields.php:1644
6967
  msgid "This image is too large!"
6968
  msgstr ""
6969
 
6970
+ #: includes/core/class-fields.php:1647
6971
  msgid "This image is too small!"
6972
  msgstr ""
6973
 
6974
+ #: includes/core/class-fields.php:1650
6975
  msgid "You can only upload one image"
6976
  msgstr ""
6977
 
6978
+ #: includes/core/class-fields.php:1682
6979
  msgid "Sorry this is not a valid file."
6980
  msgstr ""
6981
 
6982
+ #: includes/core/class-fields.php:1685
6983
  msgid "This file is too large!"
6984
  msgstr ""
6985
 
6986
+ #: includes/core/class-fields.php:1688
6987
  msgid "This file is too small!"
6988
  msgstr ""
6989
 
6990
+ #: includes/core/class-fields.php:1691
6991
  msgid "You can only upload one file"
6992
  msgstr ""
6993
 
6994
+ #: includes/core/class-fields.php:2204
6995
  msgid "Current Password"
6996
  msgstr ""
6997
 
6998
+ #: includes/core/class-fields.php:2233
6999
  msgid "New Password"
7000
  msgstr ""
7001
 
7002
+ #: includes/core/class-fields.php:2265
7003
  #, php-format
7004
  msgid "Confirm %s"
7005
  msgstr ""
7006
 
7007
+ #: includes/core/class-fields.php:2499
7008
  msgid "Upload Photo"
7009
  msgstr ""
7010
 
7011
+ #: includes/core/class-fields.php:2520 includes/core/class-fields.php:2544
7012
+ #: includes/core/um-actions-profile.php:905
7013
  msgid "Change photo"
7014
  msgstr ""
7015
 
7016
+ #: includes/core/class-fields.php:2544 includes/core/class-fields.php:2641
7017
  msgid "Processing..."
7018
  msgstr ""
7019
 
7020
+ #: includes/core/class-fields.php:2566
7021
  msgid "Upload File"
7022
  msgstr ""
7023
 
7024
+ #: includes/core/class-fields.php:2608 includes/core/um-filters-fields.php:267
7025
  msgid "This file has been removed."
7026
  msgstr ""
7027
 
7028
+ #: includes/core/class-fields.php:2611 includes/core/class-fields.php:2641
7029
  msgid "Change file"
7030
  msgstr ""
7031
 
7032
+ #: includes/core/class-fields.php:2641
7033
  msgid "Save"
7034
  msgstr ""
7035
 
7036
+ #: includes/core/class-fields.php:4115
7037
  #, php-format
7038
  msgid ""
7039
  "Your profile is looking a little empty. Why not <a href=\"%s\">add</a> some "
7040
  "information!"
7041
  msgstr ""
7042
 
7043
+ #: includes/core/class-fields.php:4117
7044
  msgid "This user has not added any information to their profile yet."
7045
  msgstr ""
7046
 
7082
  msgid "Your set password"
7083
  msgstr ""
7084
 
7085
+ #: includes/core/class-member-directory.php:235
7086
  msgid "Grid"
7087
  msgstr ""
7088
 
7089
+ #: includes/core/class-member-directory.php:236
7090
  msgid "List"
7091
  msgstr ""
7092
 
7093
+ #: includes/core/class-member-directory.php:241
7094
  msgid "New users first"
7095
  msgstr ""
7096
 
7097
+ #: includes/core/class-member-directory.php:242
7098
  msgid "Old users first"
7099
  msgstr ""
7100
 
7101
+ #: includes/core/class-member-directory.php:245
7102
  msgid "First name"
7103
  msgstr ""
7104
 
7105
+ #: includes/core/class-member-directory.php:246
7106
  msgid "Last name"
7107
  msgstr ""
7108
 
7109
+ #: includes/core/class-member-directory.php:247
7110
  msgid "Display name"
7111
  msgstr ""
7112
 
7113
+ #: includes/core/class-member-directory.php:248
7114
  msgid "Last login"
7115
  msgstr ""
7116
 
7117
+ #: includes/core/class-member-directory.php:255
7118
  msgid "Random"
7119
  msgstr ""
7120
 
7121
+ #: includes/core/class-member-directory.php:256
7122
  msgid "Other (Custom Field)"
7123
  msgstr ""
7124
 
7125
+ #: includes/core/class-member-directory.php:267
7126
  msgid "Age"
7127
  msgstr ""
7128
 
7129
+ #: includes/core/class-member-directory.php:269
7130
  msgid "User Registered"
7131
  msgstr ""
7132
 
7133
+ #: includes/core/class-member-directory.php:750
7134
  msgid " stars"
7135
  msgstr ""
7136
 
7137
+ #: includes/core/class-member-directory.php:758
7138
  msgid "<strong>Age:</strong>&nbsp;{min_range} - {max_range} years old"
7139
  msgstr ""
7140
 
7141
+ #: includes/core/class-member-directory.php:1941
7142
+ #: includes/core/class-member-directory.php:1985
7143
+ #: includes/core/um-actions-profile.php:1225
7144
+ #: includes/core/um-actions-profile.php:1256
7145
  msgid "Edit Profile"
7146
  msgstr ""
7147
 
7148
+ #: includes/core/class-member-directory.php:1991
7149
+ #: includes/core/um-actions-profile.php:1257
7150
  msgid "My Account"
7151
  msgstr ""
7152
 
7177
  msgstr ""
7178
 
7179
  #: includes/core/class-password.php:551 includes/core/um-actions-account.php:66
7180
+ #: includes/core/um-actions-form.php:531
7181
  msgid ""
7182
  "Your password must contain at least one lowercase letter, one capital letter "
7183
  "and one number"
7187
  msgid "You must confirm your new password"
7188
  msgstr ""
7189
 
7190
+ #: includes/core/class-password.php:561 includes/core/um-actions-form.php:540
7191
  msgid "Your passwords do not match"
7192
  msgstr ""
7193
 
7196
  msgstr ""
7197
 
7198
  #. translators: %s: support forums URL
7199
+ #: includes/core/class-plugin-updater.php:302
7200
  #, php-format
7201
  msgid ""
7202
  "An unexpected error occurred. Something may be wrong with %s or this "
7204
  "the <a href=\"%s\">support forums</a>."
7205
  msgstr ""
7206
 
7207
+ #: includes/core/class-plugin-updater.php:304
7208
  msgid "https://wordpress.org/support/"
7209
  msgstr ""
7210
 
7244
  msgid "Invalid Nonce."
7245
  msgstr ""
7246
 
7247
+ #: includes/core/class-shortcodes.php:362
7248
  msgid ""
7249
  "This content has been restricted to logged in users only. Please <a href="
7250
  "\"{login_referrer}\">login</a> to view this content."
7251
  msgstr ""
7252
 
7253
+ #: includes/core/class-shortcodes.php:647
7254
  msgid "You are already registered"
7255
  msgstr ""
7256
 
7257
+ #: includes/core/class-shortcodes.php:894
7258
  msgid "Default Template"
7259
  msgstr ""
7260
 
7396
  msgstr ""
7397
 
7398
  #: includes/core/um-actions-account.php:425
7399
+ msgid "Select what email notifications do you want to receive"
7400
  msgstr ""
7401
 
7402
  #: includes/core/um-actions-core.php:27
7417
  msgid "You are not allowed to use this word as your username."
7418
  msgstr ""
7419
 
7420
+ #: includes/core/um-actions-form.php:387
7421
  msgid "Profile Photo is required."
7422
  msgstr ""
7423
 
7424
+ #: includes/core/um-actions-form.php:440 includes/core/um-actions-form.php:441
7425
+ #, php-format
7426
+ msgid "%s - wrong conditions."
7427
+ msgstr ""
7428
+
7429
+ #: includes/core/um-actions-form.php:449 includes/core/um-actions-form.php:453
7430
+ #: includes/core/um-actions-form.php:457
7431
  #, php-format
7432
  msgid "%s is required."
7433
  msgstr ""
7434
 
7435
+ #: includes/core/um-actions-form.php:462
7436
  msgid "Please specify account type."
7437
  msgstr ""
7438
 
7439
+ #: includes/core/um-actions-form.php:492
7440
  msgid "This field is required"
7441
  msgstr ""
7442
 
7443
+ #: includes/core/um-actions-form.php:494
7444
  #, php-format
7445
  msgid "%s is required"
7446
  msgstr ""
7447
 
7448
+ #: includes/core/um-actions-form.php:503
7449
  #, php-format
7450
  msgid "You are only allowed to enter a maximum of %s words"
7451
  msgstr ""
7452
 
7453
+ #: includes/core/um-actions-form.php:509
7454
  #, php-format
7455
  msgid "Your %s must contain at least %s characters"
7456
  msgstr ""
7457
 
7458
+ #: includes/core/um-actions-form.php:515
7459
  #, php-format
7460
  msgid "Your %s must contain less than %s characters"
7461
  msgstr ""
7462
 
7463
+ #: includes/core/um-actions-form.php:524
7464
  msgid "You can not use HTML tags here"
7465
  msgstr ""
7466
 
7467
+ #: includes/core/um-actions-form.php:537
7468
  msgid "Please confirm your password"
7469
  msgstr ""
7470
 
7471
+ #: includes/core/um-actions-form.php:546
7472
  #, php-format
7473
  msgid "Please select at least %s choices"
7474
  msgstr ""
7475
 
7476
+ #: includes/core/um-actions-form.php:552
7477
  #, php-format
7478
  msgid "You can only select up to %s choices"
7479
  msgstr ""
7480
 
7481
+ #: includes/core/um-actions-form.php:558
7482
  #, php-format
7483
  msgid "Minimum number limit is %s"
7484
  msgstr ""
7485
 
7486
+ #: includes/core/um-actions-form.php:564
7487
  #, php-format
7488
  msgid "Maximum number limit is %s"
7489
  msgstr ""
7490
 
7491
+ #: includes/core/um-actions-form.php:600
7492
  msgid "Please enter numbers only in this field"
7493
  msgstr ""
7494
 
7495
+ #: includes/core/um-actions-form.php:606
7496
  msgid "Please enter a valid phone number"
7497
  msgstr ""
7498
 
7499
+ #: includes/core/um-actions-form.php:612 includes/core/um-actions-form.php:618
7500
+ #: includes/core/um-actions-form.php:624 includes/core/um-actions-form.php:630
7501
+ #: includes/core/um-actions-form.php:636 includes/core/um-actions-form.php:642
7502
+ #: includes/core/um-actions-form.php:648 includes/core/um-actions-form.php:654
7503
+ #: includes/core/um-actions-form.php:666
7504
  #, php-format
7505
  msgid "Please enter a valid %s username or profile URL"
7506
  msgstr ""
7507
 
7508
+ #: includes/core/um-actions-form.php:660
7509
  msgid "Please enter a valid URL"
7510
  msgstr ""
7511
 
7512
+ #: includes/core/um-actions-form.php:673 includes/core/um-actions-form.php:687
7513
  msgid "You must provide a username"
7514
  msgstr ""
7515
 
7516
+ #: includes/core/um-actions-form.php:675 includes/core/um-actions-form.php:689
7517
  msgid "Your username is already taken"
7518
  msgstr ""
7519
 
7520
+ #: includes/core/um-actions-form.php:677
7521
  msgid "Username cannot be an email"
7522
  msgstr ""
7523
 
7524
+ #: includes/core/um-actions-form.php:679 includes/core/um-actions-form.php:693
7525
  msgid "Your username contains invalid characters"
7526
  msgstr ""
7527
 
7528
+ #: includes/core/um-actions-form.php:691 includes/core/um-actions-form.php:713
7529
+ #: includes/core/um-actions-form.php:715 includes/core/um-actions-form.php:727
7530
+ #: includes/core/um-actions-form.php:734
7531
  msgid "This email is already linked to an existing account"
7532
  msgstr ""
7533
 
7534
+ #: includes/core/um-actions-form.php:711
7535
  msgid "You must provide your email"
7536
  msgstr ""
7537
 
7538
+ #: includes/core/um-actions-form.php:717 includes/core/um-actions-form.php:725
7539
+ #: includes/core/um-actions-form.php:750
7540
  msgid "This is not a valid email"
7541
  msgstr ""
7542
 
7543
+ #: includes/core/um-actions-form.php:719
7544
  msgid "Your email contains invalid characters"
7545
  msgstr ""
7546
 
7547
+ #: includes/core/um-actions-form.php:770
7548
  msgid "You must provide a unique value"
7549
  msgstr ""
7550
 
7551
+ #: includes/core/um-actions-form.php:780
7552
  msgid "You must provide alphabetic letters"
7553
  msgstr ""
7554
 
7555
+ #: includes/core/um-actions-form.php:792
7556
  msgid "You must provide lowercase letters."
7557
  msgstr ""
7558
 
7559
+ #: includes/core/um-actions-form.php:810
7560
  #, php-format
7561
  msgid "Your user description must contain less than %s characters"
7562
  msgstr ""
7589
  msgid "This action has been prevented for security measures."
7590
  msgstr ""
7591
 
7592
+ #: includes/core/um-actions-login.php:411
7593
  msgid "Keep me signed in"
7594
  msgstr ""
7595
 
7596
+ #: includes/core/um-actions-login.php:455
7597
  msgid "Forgot your password?"
7598
  msgstr ""
7599
 
7649
  msgid "You are not allowed to edit this user."
7650
  msgstr ""
7651
 
7652
+ #: includes/core/um-actions-profile.php:350
7653
  #, php-format
7654
  msgid "Your choosed %s"
7655
  msgstr ""
7656
 
7657
+ #: includes/core/um-actions-profile.php:669
7658
+ #: includes/core/um-actions-profile.php:685
7659
+ #: includes/core/um-actions-profile.php:756
7660
  msgid "Upload a cover photo"
7661
  msgstr ""
7662
 
7663
+ #: includes/core/um-actions-profile.php:669
7664
  msgid "Change cover photo"
7665
  msgstr ""
7666
 
7667
+ #: includes/core/um-actions-profile.php:873
7668
  msgid "Upload photo"
7669
  msgstr ""
7670
 
7671
+ #: includes/core/um-actions-profile.php:906
7672
  msgid "Remove photo"
7673
  msgstr ""
7674
 
7675
+ #: includes/core/um-actions-profile.php:1067
7676
  msgid "Tell us a bit about yourself..."
7677
  msgstr ""
7678
 
7679
+ #: includes/core/um-actions-profile.php:1082
7680
  #, php-format
7681
  msgid "This user account status is %s"
7682
  msgstr ""
7739
  msgid "Search Users"
7740
  msgstr ""
7741
 
7742
+ #: templates/members-grid.php:55
7743
  msgid "Edit profile"
7744
  msgstr ""
7745
 
7751
  msgid "of"
7752
  msgstr ""
7753
 
7754
+ #: templates/members.php:195
7755
  msgid "Search:"
7756
  msgstr ""
7757
 
7758
+ #: templates/members.php:196 templates/members.php:198
7759
  msgid "Search"
7760
  msgstr ""
7761
 
7762
+ #: templates/members.php:223
7763
  #, php-format
7764
  msgid "Change to %s"
7765
  msgstr ""
7766
 
7767
+ #: templates/members.php:236
7768
  msgid "Sort by:"
7769
  msgstr ""
7770
 
7771
+ #: templates/members.php:256
7772
  msgid "More filters"
7773
  msgstr ""
7774
 
7775
+ #: templates/members.php:285
7776
  msgid "Remove filter"
7777
  msgstr ""
7778
 
7779
+ #: templates/members.php:310
7780
  msgid "Remove all filters"
7781
  msgstr ""
7782
 
7783
+ #: templates/members.php:310
7784
  msgid "Clear all"
7785
  msgstr ""
7786
 
readme.txt CHANGED
@@ -7,7 +7,7 @@ Tags: community, member, membership, user-profile, user-registration
7
  Requires PHP: 5.6
8
  Requires at least: 5.0
9
  Tested up to: 5.3
10
- Stable tag: 2.1.1
11
  License: GNU Version 2 or Any Later Version
12
  License URI: http://www.gnu.org/licenses/gpl-3.0.txt
13
 
@@ -144,6 +144,36 @@ The plugin works with popular caching plugins by automatically excluding Ultimat
144
  * To learn more about version 2.1 please see this [topic](https://wordpress.org/support/topic/version-2-1-4/)
145
  * UM2.1+ is a significant update to the Member Directories' code base from 2.0.x. Please make sure you take a full-site backup with restore point before updating the plugin
146
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
147
  = 2.1.1: November 12, 2019 =
148
 
149
  * Bugfixes:
7
  Requires PHP: 5.6
8
  Requires at least: 5.0
9
  Tested up to: 5.3
10
+ Stable tag: 2.1.2
11
  License: GNU Version 2 or Any Later Version
12
  License URI: http://www.gnu.org/licenses/gpl-3.0.txt
13
 
144
  * To learn more about version 2.1 please see this [topic](https://wordpress.org/support/topic/version-2-1-4/)
145
  * UM2.1+ is a significant update to the Member Directories' code base from 2.0.x. Please make sure you take a full-site backup with restore point before updating the plugin
146
 
147
+ = 2.1.2: December 4, 2019 =
148
+
149
+ * Enhancements:
150
+
151
+ - Added text-type filters
152
+ - Added sorting for filters, tagline and reveal section fields
153
+ - Added universal hook for field's wrapper and improve rendering the field wrapper attributes
154
+ - Added returning only existed values for select-type filters
155
+ - Added checking privacy for custom fields in filters and general search, exclude private fields
156
+ - Added Form fields validation for E-mail( not unique )
157
+ - Added $user_id attribute in update profile hooks for proper callbacks
158
+
159
+ * Bugfixes:
160
+
161
+ - Fixed fields privacy, editable and visibility attributes
162
+ - Fixed member directory styles
163
+ - Fixed random sorting
164
+ - Fixed conflict with 'php_data' variable in admin JS
165
+ - Fixed datepicker/timepicker filtering in the member directories
166
+ - Fixed initialization of datepicker, timepicker, slider filters when the "Show results only after search/filtration" option is active
167
+ - Fixed callback select-type filters handlers on member directories filters bar
168
+ - Fixed cover photo thumbnail sizes in member directory
169
+ - Fixed Role filter
170
+ - Fixed clearing filters with || condition
171
+ - Fixed endless recursion in the function um_check_conditions_on_submit()
172
+ - Fixed issue that appears if we try to update several plugins at once
173
+ - Fixed using different templates for different member directories
174
+ - Fixed form previews, added overlay and displayed buttons
175
+ - Fixed wp-admin/admin-post.php access issue
176
+
177
  = 2.1.1: November 12, 2019 =
178
 
179
  * Bugfixes:
templates/members-grid.php CHANGED
@@ -1,6 +1,8 @@
1
- <?php if ( ! defined( 'ABSPATH' ) ) exit; ?>
2
 
3
- <script type="text/template" id="tmpl-um-member-grid">
 
 
4
  <div class="um-members um-members-grid">
5
  <div class="um-gutter-sizer"></div>
6
 
1
+ <?php if ( ! defined( 'ABSPATH' ) ) exit;
2
 
3
+ $unique_hash = substr( md5( $args['form_id'] ), 10, 5 ); ?>
4
+
5
+ <script type="text/template" id="tmpl-um-member-grid-<?php echo esc_attr( $unique_hash ) ?>">
6
  <div class="um-members um-members-grid">
7
  <div class="um-gutter-sizer"></div>
8
 
templates/members-list.php CHANGED
@@ -1,7 +1,8 @@
1
- <?php if ( ! defined( 'ABSPATH' ) ) exit; ?>
2
 
 
3
 
4
- <script type="text/template" id="tmpl-um-member-list">
5
  <div class="um-members um-members-list">
6
 
7
  <# if ( data.length > 0 ) { #>
@@ -72,14 +73,14 @@
72
 
73
  if ( $show_social ) { ?>
74
  <# if ( ! $show_block ) { #>
75
- <# $show_block = user.social_urls #>
76
  <# } #>
77
  <?php } ?>
78
 
79
  <# if ( $show_block ) { #>
80
- <div class="um-member-meta-main">
81
 
82
- <div class="um-member-meta <?php if ( ! $userinfo_animate ) { echo 'no-animate'; } ?>">
83
  <?php foreach ( $reveal_fields as $key ) { ?>
84
 
85
  <# if ( typeof user['<?php echo $key; ?>'] !== 'undefined' ) { #>
@@ -116,24 +117,22 @@
116
 
117
  </div>
118
  </div>
119
- <div class="um-member-card-footer">
120
 
121
  <div class="um-member-card-footer-buttons">
122
  <?php do_action( 'um_members_list_just_after_actions_tmpl', $args ); ?>
123
  </div>
124
 
125
- <?php if ( $show_userinfo ) { ?>
126
  <# if ( $show_block ) { #>
127
- <?php if ( $userinfo_animate ) { ?>
128
- <div class="um-member-card-reveal-buttons">
129
- <div class="um-member-more">
130
- <a href="javascript:void(0);"><i class="um-faicon-angle-down"></i></a>
131
- </div>
132
- <div class="um-member-less">
133
- <a href="javascript:void(0);"><i class="um-faicon-angle-up"></i></a>
134
- </div>
135
  </div>
136
- <?php } ?>
 
 
 
137
  <# } #>
138
  <?php } ?>
139
  </div>
1
+ <?php if ( ! defined( 'ABSPATH' ) ) exit;
2
 
3
+ $unique_hash = substr( md5( $args['form_id'] ), 10, 5 ); ?>
4
 
5
+ <script type="text/template" id="tmpl-um-member-list-<?php echo esc_attr( $unique_hash ) ?>">
6
  <div class="um-members um-members-list">
7
 
8
  <# if ( data.length > 0 ) { #>
73
 
74
  if ( $show_social ) { ?>
75
  <# if ( ! $show_block ) { #>
76
+ <# $show_block = user.social_urls #>
77
  <# } #>
78
  <?php } ?>
79
 
80
  <# if ( $show_block ) { #>
81
+ <div class="um-member-meta-main<?php if ( ! $userinfo_animate ) { echo ' no-animate'; } ?>">
82
 
83
+ <div class="um-member-meta">
84
  <?php foreach ( $reveal_fields as $key ) { ?>
85
 
86
  <# if ( typeof user['<?php echo $key; ?>'] !== 'undefined' ) { #>
117
 
118
  </div>
119
  </div>
120
+ <div class="um-member-card-footer <?php echo ! $profile_photo ? 'no-photo' : '' ?> <?php if ( $show_userinfo && $userinfo_animate ) { ?><# if ( ! $show_block ) { #>no-reveal<# } #><?php } ?>">
121
 
122
  <div class="um-member-card-footer-buttons">
123
  <?php do_action( 'um_members_list_just_after_actions_tmpl', $args ); ?>
124
  </div>
125
 
126
+ <?php if ( $show_userinfo && $userinfo_animate ) { ?>
127
  <# if ( $show_block ) { #>
128
+ <div class="um-member-card-reveal-buttons">
129
+ <div class="um-member-more">
130
+ <a href="javascript:void(0);"><i class="um-faicon-angle-down"></i></a>
 
 
 
 
 
131
  </div>
132
+ <div class="um-member-less">
133
+ <a href="javascript:void(0);"><i class="um-faicon-angle-up"></i></a>
134
+ </div>
135
+ </div>
136
  <# } #>
137
  <?php } ?>
138
  </div>
templates/members.php CHANGED
@@ -113,7 +113,11 @@ if ( ! empty( $args['enable_sorting'] ) && ! empty( $sorting_options ) && count(
113
  $classes .= ' um-member-with-sorting';
114
  }
115
 
 
116
  $filters_expanded = ! empty( $args['filters_expanded'] ) ? true : false;
 
 
 
117
 
118
  //send $args variable to the templates
119
  $args['args'] = $args;
@@ -183,7 +187,7 @@ if ( ( ( $search && $show_search ) || ( $filters && $show_filters && count( $sea
183
  data-sorting="<?php echo esc_attr( $sort_from_url ) ?>">
184
  <div class="um-members-overlay"><div class="um-ajax-loading"></div></div>
185
 
186
- <div class="um-member-directory-header">
187
  <?php if ( $search && $show_search ) { ?>
188
  <div class="um-member-directory-header-row um-member-directory-search-row">
189
  <div class="um-member-directory-search-line">
@@ -191,7 +195,7 @@ if ( ( ( $search && $show_search ) || ( $filters && $show_filters && count( $sea
191
  <span><?php _e( 'Search:', 'ultimate-member' ); ?></span>
192
  <input type="search" class="um-search-line" placeholder="<?php esc_attr_e( 'Search', 'ultimate-member' ) ?>" value="<?php echo esc_attr( $search_from_url ) ?>" aria-label="<?php esc_attr_e( 'Search', 'ultimate-member' ) ?>" speech />
193
  </label>
194
- <input type="button" class="um-do-search" value="<?php esc_attr_e( 'Search', 'ultimate-member' ); ?>" />
195
  </div>
196
  </div>
197
  <?php }
@@ -245,7 +249,7 @@ if ( ( ( $search && $show_search ) || ( $filters && $show_filters && count( $sea
245
 
246
  <?php }
247
 
248
- if ( $filters && $show_filters && count( $search_filters ) ) { ?>
249
  <span class="um-member-directory-filters">
250
  <span class="um-member-directory-filters-a<?php if ( $filters_expanded ) { ?> um-member-directory-filters-visible<?php } ?>">
251
  <a href="javascript:void(0);">
113
  $classes .= ' um-member-with-sorting';
114
  }
115
 
116
+ $filters_collapsible = true;
117
  $filters_expanded = ! empty( $args['filters_expanded'] ) ? true : false;
118
+ if ( $filters_expanded ) {
119
+ $filters_collapsible = ! empty( $args['filters_is_collapsible'] ) ? true : false;
120
+ }
121
 
122
  //send $args variable to the templates
123
  $args['args'] = $args;
187
  data-sorting="<?php echo esc_attr( $sort_from_url ) ?>">
188
  <div class="um-members-overlay"><div class="um-ajax-loading"></div></div>
189
 
190
+ <div class="um-member-directory-header um-form">
191
  <?php if ( $search && $show_search ) { ?>
192
  <div class="um-member-directory-header-row um-member-directory-search-row">
193
  <div class="um-member-directory-search-line">
195
  <span><?php _e( 'Search:', 'ultimate-member' ); ?></span>
196
  <input type="search" class="um-search-line" placeholder="<?php esc_attr_e( 'Search', 'ultimate-member' ) ?>" value="<?php echo esc_attr( $search_from_url ) ?>" aria-label="<?php esc_attr_e( 'Search', 'ultimate-member' ) ?>" speech />
197
  </label>
198
+ <input type="button" class="um-do-search um-button" value="<?php esc_attr_e( 'Search', 'ultimate-member' ); ?>" />
199
  </div>
200
  </div>
201
  <?php }
249
 
250
  <?php }
251
 
252
+ if ( $filters && $show_filters && count( $search_filters ) && $filters_collapsible ) { ?>
253
  <span class="um-member-directory-filters">
254
  <span class="um-member-directory-filters-a<?php if ( $filters_expanded ) { ?> um-member-directory-filters-visible<?php } ?>">
255
  <a href="javascript:void(0);">
ultimate-member.php CHANGED
@@ -3,7 +3,7 @@
3
  Plugin Name: Ultimate Member
4
  Plugin URI: http://ultimatemember.com/
5
  Description: The easiest way to create powerful online communities and beautiful user profiles with WordPress
6
- Version: 2.1.1
7
  Author: Ultimate Member
8
  Author URI: http://ultimatemember.com/
9
  Text Domain: ultimate-member
3
  Plugin Name: Ultimate Member
4
  Plugin URI: http://ultimatemember.com/
5
  Description: The easiest way to create powerful online communities and beautiful user profiles with WordPress
6
+ Version: 2.1.2
7
  Author: Ultimate Member
8
  Author URI: http://ultimatemember.com/
9
  Text Domain: ultimate-member