Ultimate Member – User Profile & Membership Plugin - Version 2.1.6

Version Description

Download this release

Release Info

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

Code changes from version 2.1.5 to 2.1.6

Files changed (43) hide show
  1. assets/js/um-account.js +9 -9
  2. assets/js/um-account.min.js +1 -1
  3. assets/js/um-conditional.js +193 -162
  4. assets/js/um-conditional.min.js +1 -1
  5. assets/js/um-functions.js +183 -183
  6. assets/js/um-functions.min.js +1 -1
  7. assets/js/um-modal.js +1 -1
  8. assets/js/um-modal.min.js +1 -1
  9. assets/js/um-profile.js +2 -2
  10. assets/js/um-profile.min.js +1 -1
  11. includes/admin/core/class-admin-builder.php +6 -1
  12. includes/admin/core/class-admin-forms.php +23 -3
  13. includes/admin/core/class-admin-metabox.php +34 -9
  14. includes/admin/core/class-admin-navmenu.php +116 -15
  15. includes/admin/core/class-admin-settings.php +80 -80
  16. includes/admin/core/list-tables/emails-list-table.php +14 -5
  17. includes/admin/templates/directory/general.php +11 -0
  18. includes/admin/templates/role/admin-permissions.php +39 -39
  19. includes/class-config.php +1 -0
  20. includes/core/class-enqueue.php +1 -1
  21. includes/core/class-fields.php +17 -5
  22. includes/core/class-login.php +76 -3
  23. includes/core/class-member-directory-meta.php +91 -20
  24. includes/core/class-member-directory.php +30 -1
  25. includes/core/class-modal.php +9 -1
  26. includes/core/class-roles-capabilities.php +16 -21
  27. includes/core/class-shortcodes.php +65 -21
  28. includes/core/class-user.php +1 -1
  29. includes/core/um-actions-account.php +90 -53
  30. includes/core/um-actions-form.php +49 -48
  31. includes/core/um-actions-global.php +1 -1
  32. includes/core/um-actions-login.php +9 -22
  33. includes/core/um-actions-profile.php +89 -14
  34. includes/core/um-actions-register.php +6 -1
  35. includes/core/um-actions-wpadmin.php +1 -5
  36. includes/core/um-filters-fields.php +3 -3
  37. includes/core/um-filters-login.php +13 -54
  38. includes/um-deprecated-functions.php +5 -1
  39. includes/widgets/class-um-search-widget.php +6 -1
  40. languages/ultimate-member-en_US.mo +0 -0
  41. languages/ultimate-member-en_US.po +541 -515
  42. readme.txt +31 -2
  43. ultimate-member.php +1 -1
assets/js/um-account.js CHANGED
@@ -5,28 +5,28 @@ jQuery(document).ready(function() {
5
  if ( current_tab ) {
6
  jQuery('.um-account-tab[data-tab="'+current_tab+'"]').show();
7
 
8
- jQuery('.um-account-tab:not(:visible)').find( 'input:not(:disabled)' ).addClass('um_account_inactive').prop( 'disabled', true ).attr( 'disabled', true );
9
  }
10
 
11
  jQuery( document.body ).on( 'click', '.um-account-side li a', function(e) {
12
  e.preventDefault();
13
  var link = jQuery(this);
14
-
15
  link.parents('ul').find('li a').removeClass('current');
16
  link.addClass('current');
17
-
18
  var url_ = jQuery(this).attr('href');
19
  var tab_ = jQuery(this).attr('data-tab');
20
-
21
  jQuery('input[id="_um_account_tab"]:hidden').val( tab_ );
22
-
23
  window.history.pushState("", "", url_);
24
 
25
  jQuery('.um-account-tab').hide();
26
  jQuery('.um-account-tab[data-tab="'+tab_+'"]').fadeIn();
27
 
28
- jQuery('.um-account-tab:visible').find( 'input.um_account_inactive:disabled' ).removeClass('um_account_inactive').prop( 'disabled', false ).attr( 'disabled', false );
29
- jQuery('.um-account-tab:not(:visible)').find( 'input:not(:disabled)' ).addClass('um_account_inactive').prop( 'disabled', true ).attr( 'disabled', true );
30
 
31
  jQuery('.um-account-nav a').removeClass('current');
32
  jQuery('.um-account-nav a[data-tab="'+tab_+'"]').addClass('current');
@@ -56,8 +56,8 @@ jQuery(document).ready(function() {
56
  link.addClass('current');
57
  }
58
 
59
- jQuery('.um-account-tab:visible').find( 'input.um_account_inactive:disabled' ).removeClass('um_account_inactive').prop( 'disabled', false ).attr( 'disabled', false );
60
- jQuery('.um-account-tab:not(:visible)').find( 'input:not(:disabled)' ).addClass('um_account_inactive').prop( 'disabled', true ).attr( 'disabled', true );
61
 
62
  jQuery('.um-account-side li a').removeClass('current');
63
  jQuery('.um-account-side li a[data-tab="'+tab_+'"]').addClass('current');
5
  if ( current_tab ) {
6
  jQuery('.um-account-tab[data-tab="'+current_tab+'"]').show();
7
 
8
+ jQuery('.um-account-tab:not(:visible)').find( 'input, select, textarea' ).not( ':disabled' ).addClass('um_account_inactive').prop( 'disabled', true ).attr( 'disabled', true );
9
  }
10
 
11
  jQuery( document.body ).on( 'click', '.um-account-side li a', function(e) {
12
  e.preventDefault();
13
  var link = jQuery(this);
14
+
15
  link.parents('ul').find('li a').removeClass('current');
16
  link.addClass('current');
17
+
18
  var url_ = jQuery(this).attr('href');
19
  var tab_ = jQuery(this).attr('data-tab');
20
+
21
  jQuery('input[id="_um_account_tab"]:hidden').val( tab_ );
22
+
23
  window.history.pushState("", "", url_);
24
 
25
  jQuery('.um-account-tab').hide();
26
  jQuery('.um-account-tab[data-tab="'+tab_+'"]').fadeIn();
27
 
28
+ jQuery('.um-account-tab:visible').find( 'input, select, textarea' ).filter( '.um_account_inactive:disabled' ).removeClass('um_account_inactive').prop( 'disabled', false ).attr( 'disabled', false );
29
+ jQuery('.um-account-tab:not(:visible)').find( 'input, select, textarea' ).not( ':disabled' ).addClass('um_account_inactive').prop( 'disabled', true ).attr( 'disabled', true );
30
 
31
  jQuery('.um-account-nav a').removeClass('current');
32
  jQuery('.um-account-nav a[data-tab="'+tab_+'"]').addClass('current');
56
  link.addClass('current');
57
  }
58
 
59
+ jQuery('.um-account-tab:visible').find( 'input, select, textarea' ).filter( '.um_account_inactive:disabled' ).removeClass('um_account_inactive').prop( 'disabled', false ).attr( 'disabled', false );
60
+ jQuery('.um-account-tab:not(:visible)').find( 'input, select, textarea' ).not( ':disabled' ).addClass('um_account_inactive').prop( 'disabled', true ).attr( 'disabled', true );
61
 
62
  jQuery('.um-account-side li a').removeClass('current');
63
  jQuery('.um-account-side li a[data-tab="'+tab_+'"]').addClass('current');
assets/js/um-account.min.js CHANGED
@@ -1 +1 @@
1
- jQuery(document).ready(function(){var a=jQuery(".um-account-main").attr("data-current_tab");a&&(jQuery('.um-account-tab[data-tab="'+a+'"]').show(),jQuery(".um-account-tab:not(:visible)").find("input:not(:disabled)").addClass("um_account_inactive").prop("disabled",!0).attr("disabled",!0)),jQuery(document.body).on("click",".um-account-side li a",function(a){a.preventDefault();var t=jQuery(this);t.parents("ul").find("li a").removeClass("current"),t.addClass("current");var e=jQuery(this).attr("href"),u=jQuery(this).attr("data-tab");return jQuery('input[id="_um_account_tab"]:hidden').val(u),window.history.pushState("","",e),jQuery(".um-account-tab").hide(),jQuery('.um-account-tab[data-tab="'+u+'"]').fadeIn(),jQuery(".um-account-tab:visible").find("input.um_account_inactive:disabled").removeClass("um_account_inactive").prop("disabled",!1).attr("disabled",!1),jQuery(".um-account-tab:not(:visible)").find("input:not(:disabled)").addClass("um_account_inactive").prop("disabled",!0).attr("disabled",!0),jQuery(".um-account-nav a").removeClass("current"),jQuery('.um-account-nav a[data-tab="'+u+'"]').addClass("current"),!1}),jQuery(document.body).on("click",".um-account-nav a",function(a){a.preventDefault();var t=jQuery(this).attr("data-tab"),e=jQuery(this).parents("div"),u=jQuery(this);return jQuery('input[id="_um_account_tab"]:hidden').val(t),jQuery(".um-account-tab").hide(),u.hasClass("current")?(e.next(".um-account-tab").slideUp(),u.removeClass("current")):(e.next(".um-account-tab").slideDown(),u.parents("div").find("a").removeClass("current"),u.addClass("current")),jQuery(".um-account-tab:visible").find("input.um_account_inactive:disabled").removeClass("um_account_inactive").prop("disabled",!1).attr("disabled",!1),jQuery(".um-account-tab:not(:visible)").find("input:not(:disabled)").addClass("um_account_inactive").prop("disabled",!0).attr("disabled",!0),jQuery(".um-account-side li a").removeClass("current"),jQuery('.um-account-side li a[data-tab="'+t+'"]').addClass("current"),!1}),jQuery(document.body).on("click",".um-request-button",function(a){a.preventDefault();var t=jQuery(this).data("action"),e=jQuery("#"+t).val();if(jQuery(".um-field-area-response."+t).hide(),""===e)jQuery(".um-field-error."+t).show();else{jQuery(".um-field-error."+t).hide();var u={request_action:t,password:e,nonce:um_scripts.nonce};wp.ajax.send("um_request_user_data",{data:u,success:function(a){jQuery(".um-field-area-response."+t).text(a.answer).show()},error:function(a){console.log(a)}})}})});
1
+ jQuery(document).ready(function(){var a=jQuery(".um-account-main").attr("data-current_tab");a&&(jQuery('.um-account-tab[data-tab="'+a+'"]').show(),jQuery(".um-account-tab:not(:visible)").find("input, select, textarea").not(":disabled").addClass("um_account_inactive").prop("disabled",!0).attr("disabled",!0)),jQuery(document.body).on("click",".um-account-side li a",function(a){a.preventDefault();var e=jQuery(this);e.parents("ul").find("li a").removeClass("current"),e.addClass("current");var t=jQuery(this).attr("href"),u=jQuery(this).attr("data-tab");return jQuery('input[id="_um_account_tab"]:hidden').val(u),window.history.pushState("","",t),jQuery(".um-account-tab").hide(),jQuery('.um-account-tab[data-tab="'+u+'"]').fadeIn(),jQuery(".um-account-tab:visible").find("input, select, textarea").filter(".um_account_inactive:disabled").removeClass("um_account_inactive").prop("disabled",!1).attr("disabled",!1),jQuery(".um-account-tab:not(:visible)").find("input, select, textarea").not(":disabled").addClass("um_account_inactive").prop("disabled",!0).attr("disabled",!0),jQuery(".um-account-nav a").removeClass("current"),jQuery('.um-account-nav a[data-tab="'+u+'"]').addClass("current"),!1}),jQuery(document.body).on("click",".um-account-nav a",function(a){a.preventDefault();var e=jQuery(this).attr("data-tab"),t=jQuery(this).parents("div"),u=jQuery(this);return jQuery('input[id="_um_account_tab"]:hidden').val(e),jQuery(".um-account-tab").hide(),u.hasClass("current")?(t.next(".um-account-tab").slideUp(),u.removeClass("current")):(t.next(".um-account-tab").slideDown(),u.parents("div").find("a").removeClass("current"),u.addClass("current")),jQuery(".um-account-tab:visible").find("input, select, textarea").filter(".um_account_inactive:disabled").removeClass("um_account_inactive").prop("disabled",!1).attr("disabled",!1),jQuery(".um-account-tab:not(:visible)").find("input, select, textarea").not(":disabled").addClass("um_account_inactive").prop("disabled",!0).attr("disabled",!0),jQuery(".um-account-side li a").removeClass("current"),jQuery('.um-account-side li a[data-tab="'+e+'"]').addClass("current"),!1}),jQuery(document.body).on("click",".um-request-button",function(a){a.preventDefault();var e=jQuery(this).data("action"),t=jQuery("#"+e).val();if(jQuery(".um-field-area-response."+e).hide(),""===t)jQuery(".um-field-error."+e).show();else{jQuery(".um-field-error."+e).hide();var u={request_action:e,password:t,nonce:um_scripts.nonce};wp.ajax.send("um_request_user_data",{data:u,success:function(a){jQuery(".um-field-area-response."+e).text(a.answer).show()},error:function(a){console.log(a)}})}})});
assets/js/um-conditional.js CHANGED
@@ -4,12 +4,13 @@ var um_field_default_values = {};
4
 
5
  /**
6
  * Get field default value
7
- * @param object $dom
8
- * @return string
 
9
  */
10
  function um_get_field_default_value( $dom ) {
11
  var default_value = '';
12
- var type = um_get_field_type($dom);
13
  switch ( type ) {
14
 
15
  case 'text':
@@ -17,7 +18,7 @@ function um_get_field_default_value( $dom ) {
17
  case 'date':
18
  case 'textarea':
19
  case 'select':
20
- default_value = $dom.find('input:text,input[type=number],textarea,select').val();
21
  break;
22
 
23
  case 'multiselect':
@@ -25,28 +26,29 @@ function um_get_field_default_value( $dom ) {
25
  break;
26
 
27
  case 'radio':
28
- if ($dom.find('input[type=radio]:checked').length >= 1) {
29
- default_value = $dom.find('input[type=radio]:checked').val();
30
  }
31
-
32
  break;
33
- case 'checkbox':
34
 
35
- if ($dom.find('input[type=checkbox]:checked').length >= 1) {
 
36
 
37
- if ($dom.find('input[type=checkbox]:checked').length > 1) {
38
  var arr_values = [];
39
- arr_values.push( default_value );
40
- $dom.find('input[type=checkbox]:checked').each(function () {
41
  arr_values.push( jQuery(this).val() );
42
  });
43
  default_value = arr_values;
44
  } else {
45
- default_value = $dom.find('input[type=checkbox]:checked').val();
46
  }
47
-
48
  }
49
  break;
 
 
 
50
  }
51
 
52
  return {type: type, value: default_value};
@@ -54,74 +56,64 @@ function um_get_field_default_value( $dom ) {
54
 
55
  /**
56
  * Get field element by field wrapper
57
- * @param object $dom
58
- * @return object
 
59
  */
60
  function um_get_field_element( $dom ) {
61
- var default_value = '';
62
- var type = um_get_field_type($dom);
63
-
64
- switch ( type ) {
65
-
66
- case 'text':
67
- case 'number':
68
- case 'date':
69
- case 'textarea':
70
- case 'select':
71
- case 'multiselect':
72
- case 'radio':
73
- case 'checkbox':
74
- return $dom.find('input,textarea,select');
75
- break;
76
 
 
 
77
 
78
- }
79
 
80
- return '';
81
  }
82
 
83
  /**
84
  * Get field type
85
- * @param object $dom
86
- * @return string
 
87
  */
88
- function um_get_field_type($dom) {
89
  var type = '';
90
- var classes = $dom.attr( 'class' );
91
- jQuery.each( classes.split(' '), function (i, d) {
92
- if (d.indexOf('um-field-type') != -1) {
93
- type = d.split('_')[1];
 
94
  }
95
  });
96
 
97
  return type;
98
-
99
  }
100
 
101
  /**
102
  * Get field siblings/chidren conditions
103
- * @param string field_key
104
- * @return array
 
105
  */
106
- function um_get_field_children(field_key) {
107
  var arr_conditions = [];
108
- jQuery.each(arr_all_conditions, function (ii, condition) {
109
- if (condition.field.parent == field_key) {
110
- arr_conditions.push(condition.field.condition);
111
  }
112
  });
113
 
114
  return arr_conditions;
115
-
116
  }
117
 
118
  /**
119
  * Split single array to multi-dimensional array
120
- * @param array arr
121
- * @param integer n
122
- * @return array
 
123
  */
124
- function um_splitup_array(arr, n) {
125
  var rest = arr.length % n,
126
  restUsed = rest,
127
  partLength = Math.floor(arr.length / n),
@@ -151,7 +143,7 @@ function um_splitup_array(arr, n) {
151
  if_field: dd[1],
152
  operator: dd[2],
153
  value: dd[3]
154
- })
155
  });
156
 
157
  return obj_result;
@@ -159,10 +151,11 @@ function um_splitup_array(arr, n) {
159
 
160
  /**
161
  * Get field live value
162
- * @param object $dom
163
- * @return mixed
 
164
  */
165
- function um_get_field_data($dom) {
166
  um_live_field = $dom.parents('.um-field').data('key');
167
  um_live_value = $dom.val();
168
 
@@ -187,13 +180,21 @@ function um_get_field_data($dom) {
187
  }
188
 
189
  return um_live_value;
190
-
191
  }
192
 
193
- function um_in_array(needle, haystack, strict){
194
- var found = false, key, strict = !!strict;
195
- for (key in haystack) {
196
- if ((strict && haystack[key] === needle) || (!strict && haystack[key] == needle)) {
 
 
 
 
 
 
 
 
 
197
  found = true;
198
  break;
199
  }
@@ -204,11 +205,11 @@ function um_in_array(needle, haystack, strict){
204
 
205
  /**
206
  * Apply field conditions
207
- * @param object $dom
208
- * @param boolean is_single_update
 
209
  */
210
  function um_apply_conditions( $dom, is_single_update ) {
211
- var operators = ['empty', 'not empty', 'equals to', 'not equals', 'greater than', 'less than', 'contains'];
212
  if ( ! $dom.parents('.um-field[data-key]').length ) {
213
  return;
214
  }
@@ -218,160 +219,189 @@ function um_apply_conditions( $dom, is_single_update ) {
218
  return;
219
  }
220
 
 
221
  var live_field_value = um_get_field_data( $dom );
222
 
223
  var $owners = {};
224
  var $owners_values = {};
225
  var $owner_conditions = {};
226
 
227
- jQuery.each(conditions, function (index, condition) {
228
- if (typeof $owners_values[condition.owner] == 'undefined') {
229
- $owners_values[condition.owner] = [];
230
- $owner_conditions[condition.owner] = {}
231
  }
232
- $owners_values[condition.owner].push(condition.value);
233
- $owner_conditions[condition.owner] = condition;
234
  });
235
 
236
- jQuery.each(conditions, function (index, condition) {
237
- if (typeof $owners[condition.owner] == 'undefined') {
238
- $owners[condition.owner] = {};
239
  }
240
- if (condition.operator == 'empty') {
241
- if (!live_field_value || live_field_value == '' && um_in_array(live_field_value, $owners_values[condition.owner])) {
242
- $owners[condition.owner][index] = true;
 
 
243
  } else {
244
- $owners[condition.owner][index] = false;
245
  }
246
  }
247
 
248
- if (condition.operator == 'not empty') {
249
- if (live_field_value && live_field_value != '' && !um_in_array(live_field_value, $owners_values[condition.owner])) {
250
- $owners[condition.owner][index] = true;
 
251
  } else {
252
- $owners[condition.owner][index] = false;
253
  }
254
  }
255
 
256
- if (condition.operator == 'equals to') {
257
- if (condition.value == live_field_value && um_in_array(live_field_value, $owners_values[condition.owner])) {
258
- $owners[condition.owner][index] = true;
 
259
  } else {
260
- $owners[condition.owner][index] = false;
261
  }
262
  }
263
 
264
- if (condition.operator == 'not equals') {
265
- if (jQuery.isNumeric(condition.value) && parseInt(live_field_value) != parseInt(condition.value) && live_field_value && !um_in_array(live_field_value, $owners_values[condition.owner])) {
266
- $owners[condition.owner][index] = true;
267
- } else if (condition.value != live_field_value && !um_in_array(live_field_value, $owners_values[condition.owner])) {
268
- $owners[condition.owner][index] = true;
 
269
  } else {
270
- $owners[condition.owner][index] = false;
271
  }
272
  }
273
 
274
- if (condition.operator == 'greater than') {
275
- if (jQuery.isNumeric(condition.value) && parseInt(live_field_value) > parseInt(condition.value)) {
276
- $owners[condition.owner][index] = true;
 
277
  } else {
278
- $owners[condition.owner][index] = false;
279
  }
280
  }
281
 
282
- if (condition.operator == 'less than') {
283
- if (jQuery.isNumeric(condition.value) && parseInt(live_field_value) < parseInt(condition.value)) {
284
- $owners[condition.owner][index] = true;
 
285
  } else {
286
- $owners[condition.owner][index] = false;
287
  }
288
  }
289
 
290
- if ( condition.operator == 'contains' ) {
291
- if ( 'multiselect' == um_get_field_type( $dom.parents('.um-field[data-key]') ) ) {
292
- if ( live_field_value && live_field_value.indexOf( condition.value ) >= 0 && um_in_array( condition.value, live_field_value ) ) {
293
- $owners[condition.owner][index] = true;
294
- } else {
295
- $owners[condition.owner][index] = false;
296
- }
297
- } else if ( 'checkbox' == um_get_field_type( $dom.parents('.um-field[data-key]') ) ) {
298
- if ( live_field_value && live_field_value.indexOf( condition.value ) >= 0 ) {
299
- $owners[condition.owner][index] = true;
300
- } else {
301
- $owners[condition.owner][index] = false;
302
- }
303
- } else {
304
- if ( live_field_value && live_field_value.indexOf( condition.value ) >= 0 && um_in_array( live_field_value, $owners_values[ condition.owner ] ) ) {
305
- $owners[condition.owner][index] = true;
306
- } else {
307
- $owners[condition.owner][index] = false;
308
- }
 
 
 
 
 
 
 
 
 
 
 
309
  }
310
  }
311
 
312
  }); // end foreach `conditions`
313
- jQuery.each($owners, function (index, field) {
314
- if (um_in_array(true, field)) {
315
- um_field_apply_action($dom, $owner_conditions[index], true);
 
316
  } else {
317
- um_field_apply_action($dom, $owner_conditions[index], false);
318
  }
319
  });
320
- $dom.trigger('um_fields_change');
 
321
 
322
  }
323
 
324
  /**
325
  * Apply condition's action
326
- * @param object $dom
327
- * @param string condition
328
- * @param boolean is_true
 
 
329
  */
330
  function um_field_apply_action($dom, condition, is_true) {
331
  var child_dom = jQuery('div.um-field[data-key="' + condition.owner + '"]');
332
 
333
- if (condition.action == 'show' && is_true /*&& child_dom.is(':hidden')*/) {
 
 
 
334
  child_dom.show();
335
  _show_in_ie( child_dom );
336
- um_field_restore_default_value(child_dom);
337
  }
338
 
339
- if (condition.action == 'show' && !is_true /*&& child_dom.is(':visible') */) {
340
  child_dom.hide();
341
  _hide_in_ie( child_dom );
342
  }
343
 
344
- if (condition.action == 'hide' && is_true /*&& child_dom.is(':visible')*/) {
345
  child_dom.hide();
346
  _hide_in_ie( child_dom );
347
  }
348
 
349
- if (condition.action == 'hide' && !is_true /*&& child_dom.is(':hidden')*/) {
 
 
 
350
  child_dom.show();
351
  _show_in_ie( child_dom );
352
- um_field_restore_default_value( child_dom );
353
 
354
  }
355
- $dom.removeClass('um-field-has-changed');
356
  }
357
 
 
358
  /**
359
  * Restores default field value
360
- * @param object $dom
 
361
  */
362
  function um_field_restore_default_value( $dom ) {
363
- //um_field_default_values
364
 
365
  var type = um_get_field_type( $dom );
366
  var key = $dom.data('key');
367
- var field = um_field_default_values[key];
 
368
  switch ( type ) {
369
 
370
  case 'text':
371
  case 'number':
372
  case 'date':
373
  case 'textarea':
374
- $dom.find('input:text,input[type=number],textareas').val(field.value);
375
  break;
376
 
377
  case 'select':
@@ -389,57 +419,56 @@ function um_field_restore_default_value( $dom ) {
389
  break;
390
 
391
  case 'checkbox':
 
392
 
393
-
394
- if ( $dom.find('input[type=checkbox]:checked').length >= 1 ) {
395
-
396
- $dom.find('input[type=checkbox]:checked').removeAttr('checked');
397
  $dom.find('span.um-field-checkbox-state i').removeClass('um-icon-android-checkbox-outline');
398
  $dom.find('span.um-field-checkbox-state i').addClass('um-icon-android-checkbox-outline-blank');
399
  $dom.find('.um-field-checkbox.active').removeClass('active');
400
 
401
- if (jQuery.isArray(field.value)) {
402
- jQuery.each(field.value, function (i, value) {
403
- var cbox_elem = $dom.find('input[type=checkbox][value="' + value + '"]');
404
  cbox_elem.attr('checked', true);
405
  cbox_elem.closest('.um-field-checkbox').find('i').removeClass('um-icon-android-checkbox-outline-blank');
406
  cbox_elem.closest('.um-field-checkbox').find('i').addClass('um-icon-android-checkbox-outline');
407
  cbox_elem.closest('.um-field-checkbox').addClass('active');
408
  });
409
  } else {
410
- var cbox_elem = $dom.find('input[type=checkbox][value="' + field.value + '"]');
411
  cbox_elem.attr('checked', true);
412
  cbox_elem.closest('.um-field-checkbox').find('i').removeClass('um-icon-android-checkbox-outline-blank');
413
  cbox_elem.closest('.um-field-checkbox').find('i').addClass('um-icon-android-checkbox-outline');
414
  cbox_elem.closest('.um-field-checkbox').addClass('active');
415
- }
416
-
417
  }
418
-
419
  break;
 
420
  case 'radio':
421
 
422
- if ( $dom.find('input[type=radio]:checked').length >= 1 ) {
423
 
424
- setTimeout(function () {
425
 
426
- $dom.find('input[type=radio]:checked').removeAttr('checked');
427
 
428
  $dom.find('span.um-field-radio-state i').removeClass('um-icon-android-radio-button-on');
429
  $dom.find('span.um-field-radio-state i').addClass('um-icon-android-radio-button-off');
430
  $dom.find('.um-field-radio.active').removeClass('active');
431
 
432
- var radio_elem = $dom.find("input[type=radio][value='" + field.value + "']");
433
  radio_elem.attr('checked', true);
434
  radio_elem.closest('.um-field-radio').find('i').removeClass('um-icon-android-radio-button-off');
435
  radio_elem.closest('.um-field-radio').find('i').addClass('um-icon-android-radio-button-on');
436
  radio_elem.closest('.um-field-radio').addClass('active');
437
 
438
- }, 100);
439
  }
440
-
441
  break;
442
 
 
 
 
443
 
444
  } // end switch type
445
 
@@ -447,7 +476,7 @@ function um_field_restore_default_value( $dom ) {
447
  if ( ! $dom.hasClass( 'um-field-has-changed' ) ) {
448
  var me = um_get_field_element( $dom );
449
 
450
- if ( type == 'radio' || type == 'checkbox' ) {
451
  me = me.find( ':checked' );
452
  }
453
 
@@ -480,7 +509,7 @@ function um_field_restore_default_value( $dom ) {
480
  function um_field_hide_siblings() {
481
 
482
  jQuery.each(um_field_conditions, function (index, conditions) {
483
- if (jQuery('.um-field[data-key="' + index + '"]:hidden').length >= 1 || jQuery('.um-field[data-key="' + index + '"]').css('display') == 'none') {
484
  jQuery.each(conditions, function (key, condition) {
485
  jQuery('.um-field[data-key="' + condition.owner + '"]').hide();
486
  });
@@ -492,20 +521,22 @@ function um_field_hide_siblings() {
492
 
493
  /**
494
  * Hides div for IE browser
495
- * @param object $dom
 
496
  */
497
  function _hide_in_ie( $dom ){
498
- if ( typeof( jQuery.browser ) != 'undefined' && jQuery.browser.msie ) {
499
  $dom.css({"visibility":"hidden"});
500
  }
501
  }
502
 
503
  /**
504
  * Shows div for IE browser
505
- * @param object $dom
 
506
  */
507
  function _show_in_ie( $dom ){
508
- if ( typeof( jQuery.browser ) != 'undefined' && jQuery.browser.msie ) {
509
  $dom.css({"visibility":"visible"});
510
  }
511
  }
@@ -524,7 +555,7 @@ function um_init_field_conditions() {
524
 
525
  var parse_attrs = {};
526
  jQuery.each( jQuery(this)[0].attributes, function ( index, attribute ) {
527
- if ( attribute.name.indexOf( 'data-cond' ) != -1 ) {
528
  // replace "data-cond-"
529
  var cond_field_id_and_attr = attribute.name.slice( 10 );
530
  // return "n"
@@ -532,7 +563,7 @@ function um_init_field_conditions() {
532
  //replace "n-"
533
  var cond_field_attr = cond_field_id_and_attr.slice( 2 );
534
 
535
- if ( typeof parse_attrs[cond_field_id] == 'undefined' )
536
  parse_attrs[cond_field_id] = {};
537
 
538
  parse_attrs[cond_field_id][cond_field_attr] = attribute.value;
4
 
5
  /**
6
  * Get field default value
7
+ *
8
+ * @param {object} $dom
9
+ * @return {object}
10
  */
11
  function um_get_field_default_value( $dom ) {
12
  var default_value = '';
13
+ var type = um_get_field_type( $dom );
14
  switch ( type ) {
15
 
16
  case 'text':
18
  case 'date':
19
  case 'textarea':
20
  case 'select':
21
+ default_value = $dom.find('input:text,input[type="number"],textarea,select').val();
22
  break;
23
 
24
  case 'multiselect':
26
  break;
27
 
28
  case 'radio':
29
+ if ( $dom.find('input[type="radio"]:checked').length >= 1 ) {
30
+ default_value = $dom.find('input[type="radio"]:checked').val();
31
  }
 
32
  break;
 
33
 
34
+ case 'checkbox':
35
+ if ( $dom.find('input[type="checkbox"]:checked').length >= 1 ) {
36
 
37
+ if ( $dom.find('input[type="checkbox"]:checked').length > 1 ) {
38
  var arr_values = [];
39
+ arr_values.push( default_value );
40
+ $dom.find('input[type="checkbox"]:checked').each( function() {
41
  arr_values.push( jQuery(this).val() );
42
  });
43
  default_value = arr_values;
44
  } else {
45
+ default_value = $dom.find('input[type="checkbox"]:checked').val();
46
  }
 
47
  }
48
  break;
49
+ default:
50
+ default_value = wp.hooks.applyFilters( 'um_conditional_logic_default_value', default_value, type, $dom );
51
+ break;
52
  }
53
 
54
  return {type: type, value: default_value};
56
 
57
  /**
58
  * Get field element by field wrapper
59
+ *
60
+ * @param {object} $dom
61
+ * @return {object}
62
  */
63
  function um_get_field_element( $dom ) {
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
64
 
65
+ var field_element = $dom.find( 'input,textarea,select' );
66
+ var type = um_get_field_type( $dom );
67
 
68
+ field_element = wp.hooks.applyFilters( 'um_conditional_logic_field_element', field_element, type, $dom );
69
 
70
+ return field_element;
71
  }
72
 
73
  /**
74
  * Get field type
75
+ *
76
+ * @param {object} $dom
77
+ * @return {string}
78
  */
79
+ function um_get_field_type( $dom ) {
80
  var type = '';
81
+ var classes = $dom.attr( 'class' ).split(' ');
82
+
83
+ jQuery.each( classes, function ( i, d ) {
84
+ if ( /um-field-type_/.test( d ) ) {
85
+ type = d.replace( 'um-field-type_', '' ).trim();
86
  }
87
  });
88
 
89
  return type;
 
90
  }
91
 
92
  /**
93
  * Get field siblings/chidren conditions
94
+ *
95
+ * @param {string} field_key
96
+ * @return {array}
97
  */
98
+ function um_get_field_children( field_key ) {
99
  var arr_conditions = [];
100
+ jQuery.each( arr_all_conditions, function ( ii, condition ) {
101
+ if ( condition.field.parent === field_key ) {
102
+ arr_conditions.push( condition.field.condition );
103
  }
104
  });
105
 
106
  return arr_conditions;
 
107
  }
108
 
109
  /**
110
  * Split single array to multi-dimensional array
111
+ *
112
+ * @param {array} arr
113
+ * @param {integer} n
114
+ * @return {array}
115
  */
116
+ function um_splitup_array( arr, n ) {
117
  var rest = arr.length % n,
118
  restUsed = rest,
119
  partLength = Math.floor(arr.length / n),
143
  if_field: dd[1],
144
  operator: dd[2],
145
  value: dd[3]
146
+ });
147
  });
148
 
149
  return obj_result;
151
 
152
  /**
153
  * Get field live value
154
+ *
155
+ * @param {object} $dom
156
+ * @return {mixed}
157
  */
158
+ function um_get_field_data( $dom ) {
159
  um_live_field = $dom.parents('.um-field').data('key');
160
  um_live_value = $dom.val();
161
 
180
  }
181
 
182
  return um_live_value;
 
183
  }
184
 
185
+ /**
186
+ * Checks if a value exists in an array
187
+ *
188
+ * @param {String} needle
189
+ * @param {Array} haystack
190
+ * @param {Boolean} strict
191
+ * @returns {Boolean}
192
+ */
193
+ function um_in_array( needle, haystack, strict ) {
194
+ var found = false, key;
195
+ strict = !!strict;
196
+ for ( key in haystack ) {
197
+ if ( ( strict && haystack[ key ] === needle ) || ( ! strict && haystack[ key ] == needle ) ) {
198
  found = true;
199
  break;
200
  }
205
 
206
  /**
207
  * Apply field conditions
208
+ *
209
+ * @param {object} $dom
210
+ * @param {boolean} is_single_update
211
  */
212
  function um_apply_conditions( $dom, is_single_update ) {
 
213
  if ( ! $dom.parents('.um-field[data-key]').length ) {
214
  return;
215
  }
219
  return;
220
  }
221
 
222
+ var field_type = um_get_field_type( $dom.parents('.um-field[data-key]') );
223
  var live_field_value = um_get_field_data( $dom );
224
 
225
  var $owners = {};
226
  var $owners_values = {};
227
  var $owner_conditions = {};
228
 
229
+ jQuery.each( conditions, function ( index, condition ) {
230
+ if ( typeof $owners_values[ condition.owner ] == 'undefined' ) {
231
+ $owners_values[ condition.owner ] = [];
232
+ $owner_conditions[ condition.owner ] = {}
233
  }
234
+ $owners_values[ condition.owner ].push( condition.value );
235
+ $owner_conditions[ condition.owner ] = condition;
236
  });
237
 
238
+ jQuery.each( conditions, function ( index, condition ) {
239
+ if ( typeof $owners[ condition.owner ] == 'undefined' ) {
240
+ $owners[ condition.owner ] = {};
241
  }
242
+
243
+ if ( condition.operator === 'empty' ) {
244
+ var field_value = jQuery.isArray( live_field_value ) ? live_field_value.join('') : live_field_value;
245
+ if ( ! field_value || field_value === '' ) {
246
+ $owners[ condition.owner ][ index ] = true;
247
  } else {
248
+ $owners[ condition.owner ][ index ] = false;
249
  }
250
  }
251
 
252
+ if ( condition.operator === 'not empty' ) {
253
+ var field_value = jQuery.isArray( live_field_value ) ? live_field_value.join('') : live_field_value;
254
+ if ( field_value && field_value !== '' ) {
255
+ $owners[ condition.owner ][ index ] = true;
256
  } else {
257
+ $owners[ condition.owner ][ index ] = false;
258
  }
259
  }
260
 
261
+ if ( condition.operator === 'equals to' ) {
262
+ var field_value = ( jQuery.isArray( live_field_value ) && live_field_value.length === 1 ) ? live_field_value[0] : live_field_value;
263
+ if ( condition.value === field_value && um_in_array( field_value, $owners_values[ condition.owner ] ) ) {
264
+ $owners[ condition.owner ][ index ] = true;
265
  } else {
266
+ $owners[ condition.owner ][ index ] = false;
267
  }
268
  }
269
 
270
+ if ( condition.operator === 'not equals' ) {
271
+ var field_value = ( jQuery.isArray( live_field_value ) && live_field_value.length === 1 ) ? live_field_value[0] : live_field_value;
272
+ if ( jQuery.isNumeric(condition.value) && parseInt(field_value) !== parseInt( condition.value ) && field_value && ! um_in_array( field_value, $owners_values[ condition.owner ] ) ) {
273
+ $owners[ condition.owner ][ index ] = true;
274
+ } else if ( condition.value != field_value && ! um_in_array( field_value, $owners_values[ condition.owner ] ) ) {
275
+ $owners[ condition.owner ][ index ] = true;
276
  } else {
277
+ $owners[ condition.owner ][ index ] = false;
278
  }
279
  }
280
 
281
+ if ( condition.operator === 'greater than' ) {
282
+ var field_value = ( jQuery.isArray( live_field_value ) && live_field_value.length === 1 ) ? live_field_value[0] : live_field_value;
283
+ if ( jQuery.isNumeric( condition.value ) && parseInt( field_value ) > parseInt( condition.value ) ) {
284
+ $owners[ condition.owner ][ index ] = true;
285
  } else {
286
+ $owners[ condition.owner ][ index ] = false;
287
  }
288
  }
289
 
290
+ if ( condition.operator === 'less than' ) {
291
+ var field_value = ( jQuery.isArray( live_field_value ) && live_field_value.length === 1 ) ? live_field_value[0] : live_field_value;
292
+ if ( jQuery.isNumeric( condition.value ) && parseInt( field_value ) < parseInt( condition.value ) ) {
293
+ $owners[ condition.owner ][ index ] = true;
294
  } else {
295
+ $owners[ condition.owner ][ index ] = false;
296
  }
297
  }
298
 
299
+ if ( condition.operator === 'contains' ) {
300
+ switch ( field_type ) {
301
+ case 'multiselect':
302
+ if ( live_field_value && live_field_value.indexOf( condition.value ) >= 0 && um_in_array( condition.value, live_field_value ) ) {
303
+ $owners[ condition.owner ][ index ] = true;
304
+ } else {
305
+ $owners[ condition.owner ][ index ] = false;
306
+ }
307
+ break;
308
+
309
+ case 'checkbox':
310
+ if ( live_field_value && live_field_value.indexOf( condition.value ) >= 0 ) {
311
+ $owners[ condition.owner ][ index ] = true;
312
+ } else {
313
+ $owners[ condition.owner ][ index ] = false;
314
+ }
315
+ break;
316
+
317
+ default:
318
+
319
+ $owners = wp.hooks.applyFilters( 'um_conditional_logic_contains_operator_owners', $owners, field_type, live_field_value, condition, index );
320
+ if ( typeof $owners[ condition.owner ][ index ] === 'undefined' ) {
321
+ if ( live_field_value && live_field_value.indexOf( condition.value ) >= 0 && um_in_array( live_field_value, $owners_values[ condition.owner ] ) ) {
322
+ $owners[ condition.owner ][ index ] = true;
323
+ } else {
324
+ $owners[ condition.owner ][ index ] = false;
325
+ }
326
+ }
327
+
328
+ break;
329
  }
330
  }
331
 
332
  }); // end foreach `conditions`
333
+
334
+ jQuery.each( $owners, function ( index, field ) {
335
+ if ( um_in_array( true, field ) ) {
336
+ um_field_apply_action( $dom, $owner_conditions[ index ], true );
337
  } else {
338
+ um_field_apply_action( $dom, $owner_conditions[ index ], false );
339
  }
340
  });
341
+
342
+ $dom.trigger( 'um_fields_change' );
343
 
344
  }
345
 
346
  /**
347
  * Apply condition's action
348
+ *
349
+ * @param {object} $dom
350
+ * @param {string} condition
351
+ * @param {boolean} is_true
352
+ * @returns {jQuery}
353
  */
354
  function um_field_apply_action($dom, condition, is_true) {
355
  var child_dom = jQuery('div.um-field[data-key="' + condition.owner + '"]');
356
 
357
+ if ( condition.action === 'show' && is_true /*&& child_dom.is(':hidden')*/ ) {
358
+ if( child_dom.is(':hidden') ){
359
+ um_field_restore_default_value(child_dom);
360
+ }
361
  child_dom.show();
362
  _show_in_ie( child_dom );
 
363
  }
364
 
365
+ if ( condition.action === 'show' && ! is_true /*&& child_dom.is(':visible')*/ ) {
366
  child_dom.hide();
367
  _hide_in_ie( child_dom );
368
  }
369
 
370
+ if ( condition.action === 'hide' && is_true /*&& child_dom.is(':visible')*/ ) {
371
  child_dom.hide();
372
  _hide_in_ie( child_dom );
373
  }
374
 
375
+ if ( condition.action === 'hide' && ! is_true /*&& child_dom.is(':hidden')*/ ) {
376
+ if( child_dom.is(':hidden') ){
377
+ um_field_restore_default_value(child_dom);
378
+ }
379
  child_dom.show();
380
  _show_in_ie( child_dom );
 
381
 
382
  }
383
+ return $dom.removeClass( 'um-field-has-changed' );
384
  }
385
 
386
+
387
  /**
388
  * Restores default field value
389
+ *
390
+ * @param {object} $dom
391
  */
392
  function um_field_restore_default_value( $dom ) {
 
393
 
394
  var type = um_get_field_type( $dom );
395
  var key = $dom.data('key');
396
+ var field = um_field_default_values[ key ];
397
+
398
  switch ( type ) {
399
 
400
  case 'text':
401
  case 'number':
402
  case 'date':
403
  case 'textarea':
404
+ $dom.find('input:text,input[type="number"],textareas').val(field.value);
405
  break;
406
 
407
  case 'select':
419
  break;
420
 
421
  case 'checkbox':
422
+ if ( $dom.find('input[type="checkbox"]:checked').length >= 1 ) {
423
 
424
+ $dom.find('input[type="checkbox"]:checked').removeAttr('checked');
 
 
 
425
  $dom.find('span.um-field-checkbox-state i').removeClass('um-icon-android-checkbox-outline');
426
  $dom.find('span.um-field-checkbox-state i').addClass('um-icon-android-checkbox-outline-blank');
427
  $dom.find('.um-field-checkbox.active').removeClass('active');
428
 
429
+ if ( jQuery.isArray( field.value ) ) {
430
+ jQuery.each( field.value, function ( i, value ) {
431
+ var cbox_elem = $dom.find('input[type="checkbox"][value="' + value + '"]');
432
  cbox_elem.attr('checked', true);
433
  cbox_elem.closest('.um-field-checkbox').find('i').removeClass('um-icon-android-checkbox-outline-blank');
434
  cbox_elem.closest('.um-field-checkbox').find('i').addClass('um-icon-android-checkbox-outline');
435
  cbox_elem.closest('.um-field-checkbox').addClass('active');
436
  });
437
  } else {
438
+ var cbox_elem = $dom.find('input[type="checkbox"][value="' + field.value + '"]');
439
  cbox_elem.attr('checked', true);
440
  cbox_elem.closest('.um-field-checkbox').find('i').removeClass('um-icon-android-checkbox-outline-blank');
441
  cbox_elem.closest('.um-field-checkbox').find('i').addClass('um-icon-android-checkbox-outline');
442
  cbox_elem.closest('.um-field-checkbox').addClass('active');
443
+ }
 
444
  }
 
445
  break;
446
+
447
  case 'radio':
448
 
449
+ if ( $dom.find('input[type="radio"]:checked').length >= 1 ) {
450
 
451
+ setTimeout( function() {
452
 
453
+ $dom.find('input[type="radio"]:checked').removeAttr('checked');
454
 
455
  $dom.find('span.um-field-radio-state i').removeClass('um-icon-android-radio-button-on');
456
  $dom.find('span.um-field-radio-state i').addClass('um-icon-android-radio-button-off');
457
  $dom.find('.um-field-radio.active').removeClass('active');
458
 
459
+ var radio_elem = $dom.find('input[type="radio"][value="' + field.value + '"]');
460
  radio_elem.attr('checked', true);
461
  radio_elem.closest('.um-field-radio').find('i').removeClass('um-icon-android-radio-button-off');
462
  radio_elem.closest('.um-field-radio').find('i').addClass('um-icon-android-radio-button-on');
463
  radio_elem.closest('.um-field-radio').addClass('active');
464
 
465
+ }, 100 );
466
  }
 
467
  break;
468
 
469
+ default:
470
+ wp.hooks.doAction( 'um_conditional_logic_restore_default_value', type, $dom, field );
471
+ break;
472
 
473
  } // end switch type
474
 
476
  if ( ! $dom.hasClass( 'um-field-has-changed' ) ) {
477
  var me = um_get_field_element( $dom );
478
 
479
+ if ( type === 'radio' || type === 'checkbox' ) {
480
  me = me.find( ':checked' );
481
  }
482
 
509
  function um_field_hide_siblings() {
510
 
511
  jQuery.each(um_field_conditions, function (index, conditions) {
512
+ if (jQuery('.um-field[data-key="' + index + '"]:hidden').length >= 1 || jQuery('.um-field[data-key="' + index + '"]').css('display') === 'none') {
513
  jQuery.each(conditions, function (key, condition) {
514
  jQuery('.um-field[data-key="' + condition.owner + '"]').hide();
515
  });
521
 
522
  /**
523
  * Hides div for IE browser
524
+ *
525
+ * @param {object} $dom
526
  */
527
  function _hide_in_ie( $dom ){
528
+ if ( typeof( jQuery.browser ) !== 'undefined' && jQuery.browser.msie ) {
529
  $dom.css({"visibility":"hidden"});
530
  }
531
  }
532
 
533
  /**
534
  * Shows div for IE browser
535
+ *
536
+ * @param {object} $dom
537
  */
538
  function _show_in_ie( $dom ){
539
+ if ( typeof( jQuery.browser ) !== 'undefined' && jQuery.browser.msie ) {
540
  $dom.css({"visibility":"visible"});
541
  }
542
  }
555
 
556
  var parse_attrs = {};
557
  jQuery.each( jQuery(this)[0].attributes, function ( index, attribute ) {
558
+ if ( attribute.name.indexOf( 'data-cond' ) !== -1 ) {
559
  // replace "data-cond-"
560
  var cond_field_id_and_attr = attribute.name.slice( 10 );
561
  // return "n"
563
  //replace "n-"
564
  var cond_field_attr = cond_field_id_and_attr.slice( 2 );
565
 
566
+ if ( typeof parse_attrs[cond_field_id] === 'undefined' )
567
  parse_attrs[cond_field_id] = {};
568
 
569
  parse_attrs[cond_field_id][cond_field_attr] = attribute.value;
assets/js/um-conditional.min.js CHANGED
@@ -1 +1 @@
1
- var arr_all_conditions=[],um_field_conditions={},um_field_default_values={};function um_get_field_default_value(e){var i="",n=um_get_field_type(e);switch(n){case"text":case"number":case"date":case"textarea":case"select":i=e.find("input:text,input[type=number],textarea,select").val();break;case"multiselect":i=e.find("select").val();break;case"radio":1<=e.find("input[type=radio]:checked").length&&(i=e.find("input[type=radio]:checked").val());break;case"checkbox":if(1<=e.find("input[type=checkbox]:checked").length)if(1<e.find("input[type=checkbox]:checked").length){var a=[];a.push(i),e.find("input[type=checkbox]:checked").each(function(){a.push(jQuery(this).val())}),i=a}else i=e.find("input[type=checkbox]:checked").val()}return{type:n,value:i}}function um_get_field_element(e){switch(um_get_field_type(e)){case"text":case"number":case"date":case"textarea":case"select":case"multiselect":case"radio":case"checkbox":return e.find("input,textarea,select")}return""}function um_get_field_type(e){var n="",i=e.attr("class");return jQuery.each(i.split(" "),function(e,i){-1!=i.indexOf("um-field-type")&&(n=i.split("_")[1])}),n}function um_get_field_children(n){var a=[];return jQuery.each(arr_all_conditions,function(e,i){i.field.parent==n&&a.push(i.field.condition)}),a}function um_splitup_array(e,i){for(var n=e.length%i,a=n,t=Math.floor(e.length/i),u=[],r=0;r<e.length;r+=t){var o=t+r,d=!1;0!==n&&a&&(o++,a--,d=!0),u.push(e.slice(r,o)),d&&r++}var c=[];return jQuery.each(u,function(e,i){c.push({action:i[0],if_field:i[1],operator:i[2],value:i[3]})}),c}function um_get_field_data(e){return um_live_field=e.parents(".um-field").data("key"),um_live_value=e.val(),e.is(":checkbox")&&(um_live_value="",1<e.parents(".um-field").find("input:checked").length?e.parents(".um-field").find("input:checked").each(function(){um_live_value=um_live_value+jQuery(this).val()+" "}):1<=e.parents(".um-field").find("input:checked").length&&(um_live_value=e.parents(".um-field").find("input:checked").val())),e.is(":radio")&&(um_live_value=e.parents(".um-field").find("input[type=radio]:checked").val()),um_live_value}function um_in_array(e,i,n){var a,t=!1;n=!!n;for(a in i)if(n&&i[a]===e||!n&&i[a]==e){t=!0;break}return t}function um_apply_conditions(n,e){if(n.parents(".um-field[data-key]").length){var i=n.parents(".um-field[data-key]").data("key"),a=um_field_conditions[i];if(void 0!==a){var t=um_get_field_data(n),u={},r={},o={};jQuery.each(a,function(e,i){void 0===r[i.owner]&&(r[i.owner]=[],o[i.owner]={}),r[i.owner].push(i.value),o[i.owner]=i}),jQuery.each(a,function(e,i){void 0===u[i.owner]&&(u[i.owner]={}),"empty"==i.operator&&(!t||""==t&&um_in_array(t,r[i.owner])?u[i.owner][e]=!0:u[i.owner][e]=!1),"not empty"==i.operator&&(t&&""!=t&&!um_in_array(t,r[i.owner])?u[i.owner][e]=!0:u[i.owner][e]=!1),"equals to"==i.operator&&(i.value==t&&um_in_array(t,r[i.owner])?u[i.owner][e]=!0:u[i.owner][e]=!1),"not equals"==i.operator&&(jQuery.isNumeric(i.value)&&parseInt(t)!=parseInt(i.value)&&t&&!um_in_array(t,r[i.owner])?u[i.owner][e]=!0:i.value==t||um_in_array(t,r[i.owner])?u[i.owner][e]=!1:u[i.owner][e]=!0),"greater than"==i.operator&&(jQuery.isNumeric(i.value)&&parseInt(t)>parseInt(i.value)?u[i.owner][e]=!0:u[i.owner][e]=!1),"less than"==i.operator&&(jQuery.isNumeric(i.value)&&parseInt(t)<parseInt(i.value)?u[i.owner][e]=!0:u[i.owner][e]=!1),"contains"==i.operator&&("multiselect"==um_get_field_type(n.parents(".um-field[data-key]"))?t&&0<=t.indexOf(i.value)&&um_in_array(i.value,t)?u[i.owner][e]=!0:u[i.owner][e]=!1:"checkbox"==um_get_field_type(n.parents(".um-field[data-key]"))?t&&0<=t.indexOf(i.value)?u[i.owner][e]=!0:u[i.owner][e]=!1:t&&0<=t.indexOf(i.value)&&um_in_array(t,r[i.owner])?u[i.owner][e]=!0:u[i.owner][e]=!1)}),jQuery.each(u,function(e,i){um_in_array(!0,i)?um_field_apply_action(n,o[e],!0):um_field_apply_action(n,o[e],!1)}),n.trigger("um_fields_change")}}}function um_field_apply_action(e,i,n){var a=jQuery('div.um-field[data-key="'+i.owner+'"]');"show"==i.action&&n&&(a.show(),_show_in_ie(a),um_field_restore_default_value(a)),"show"!=i.action||n||(a.hide(),_hide_in_ie(a)),"hide"==i.action&&n&&(a.hide(),_hide_in_ie(a)),"hide"!=i.action||n||(a.show(),_show_in_ie(a),um_field_restore_default_value(a)),e.removeClass("um-field-has-changed")}function um_field_restore_default_value(a){var e=um_get_field_type(a),i=a.data("key"),n=um_field_default_values[i];switch(e){case"text":case"number":case"date":case"textarea":a.find("input:text,input[type=number],textareas").val(n.value);break;case"select":a.find("select").find("option").prop("selected",!1),a.find("select").val(n.value),a.find("select").trigger("change");break;case"multiselect":a.find("select").find("option").prop("selected",!1),jQuery.each(n.value,function(e,i){a.find("select").find('option[value="'+i+'"]').attr("selected",!0)}),a.find("select").trigger("change");break;case"checkbox":if(1<=a.find("input[type=checkbox]:checked").length)if(a.find("input[type=checkbox]:checked").removeAttr("checked"),a.find("span.um-field-checkbox-state i").removeClass("um-icon-android-checkbox-outline"),a.find("span.um-field-checkbox-state i").addClass("um-icon-android-checkbox-outline-blank"),a.find(".um-field-checkbox.active").removeClass("active"),jQuery.isArray(n.value))jQuery.each(n.value,function(e,i){var n=a.find('input[type=checkbox][value="'+i+'"]');n.attr("checked",!0),n.closest(".um-field-checkbox").find("i").removeClass("um-icon-android-checkbox-outline-blank"),n.closest(".um-field-checkbox").find("i").addClass("um-icon-android-checkbox-outline"),n.closest(".um-field-checkbox").addClass("active")});else{var t=a.find('input[type=checkbox][value="'+n.value+'"]');t.attr("checked",!0),t.closest(".um-field-checkbox").find("i").removeClass("um-icon-android-checkbox-outline-blank"),t.closest(".um-field-checkbox").find("i").addClass("um-icon-android-checkbox-outline"),t.closest(".um-field-checkbox").addClass("active")}break;case"radio":1<=a.find("input[type=radio]:checked").length&&setTimeout(function(){a.find("input[type=radio]:checked").removeAttr("checked"),a.find("span.um-field-radio-state i").removeClass("um-icon-android-radio-button-on"),a.find("span.um-field-radio-state i").addClass("um-icon-android-radio-button-off"),a.find(".um-field-radio.active").removeClass("active");var e=a.find("input[type=radio][value='"+n.value+"']");e.attr("checked",!0),e.closest(".um-field-radio").find("i").removeClass("um-icon-android-radio-button-off"),e.closest(".um-field-radio").find("i").addClass("um-icon-android-radio-button-on"),e.closest(".um-field-radio").addClass("active")},100)}if(!a.hasClass("um-field-has-changed")){var u=um_get_field_element(a);"radio"!=e&&"checkbox"!=e||(u=u.find(":checked")),u&&(u.trigger("change"),a.addClass("um-field-has-changed"))}}function um_field_hide_siblings(){jQuery.each(um_field_conditions,function(e,i){(1<=jQuery('.um-field[data-key="'+e+'"]:hidden').length||"none"==jQuery('.um-field[data-key="'+e+'"]').css("display"))&&jQuery.each(i,function(e,i){jQuery('.um-field[data-key="'+i.owner+'"]').hide()})})}function _hide_in_ie(e){void 0!==jQuery.browser&&jQuery.browser.msie&&e.css({visibility:"hidden"})}function _show_in_ie(e){void 0!==jQuery.browser&&jQuery.browser.msie&&e.css({visibility:"visible"})}function um_init_field_conditions(){var e=[];jQuery(".um-field[data-key]").each(function(){var a=jQuery(this).data("key");e.push(a);var u={};jQuery.each(jQuery(this)[0].attributes,function(e,i){if(-1!=i.name.indexOf("data-cond")){var n=i.name.slice(10),a=n.substring(1,0),t=n.slice(2);void 0===u[a]&&(u[a]={}),u[a][t]=i.value}}),jQuery.each(u,function(e,i){var n={field:{owner:a,action:i.action,parent:i.field,operator:i.operator,value:i.value,condition:{owner:a,action:i.action,operator:i.operator,value:i.value}}};arr_all_conditions.push(n)}),um_field_default_values[jQuery(this).data("key")]=um_get_field_default_value(jQuery(this))}),jQuery.each(e,function(e,i){um_field_conditions[i]=um_get_field_children(i)}),jQuery(".um-field[data-key]:visible").each(function(){var e=um_get_field_element(jQuery(this));void 0!==e.trigger&&e.trigger("change")})}jQuery(document).ready(function(){jQuery(document).on("change",'.um-field select, .um-field input[type="radio"], .um-field input[type="checkbox"]',function(){um_apply_conditions(jQuery(this),!1)}),jQuery(document).on("input change",'.um-field input[type="text"]',function(){um_apply_conditions(jQuery(this),!1)}),jQuery(document).on("input change",'.um-field input[type="number"]',function(){um_apply_conditions(jQuery(this),!1)}),jQuery(document).on("input change",'.um-field input[type="password"]',function(){um_apply_conditions(jQuery(this),!1)}),jQuery(document).on("um_fields_change",function(){um_field_hide_siblings(),um_field_hide_siblings()}),um_init_field_conditions()});
1
+ var arr_all_conditions=[],um_field_conditions={},um_field_default_values={};function um_get_field_default_value(e){var i="",n=um_get_field_type(e);switch(n){case"text":case"number":case"date":case"textarea":case"select":i=e.find('input:text,input[type="number"],textarea,select').val();break;case"multiselect":i=e.find("select").val();break;case"radio":1<=e.find('input[type="radio"]:checked').length&&(i=e.find('input[type="radio"]:checked').val());break;case"checkbox":if(1<=e.find('input[type="checkbox"]:checked').length)if(1<e.find('input[type="checkbox"]:checked').length){var a=[];a.push(i),e.find('input[type="checkbox"]:checked').each(function(){a.push(jQuery(this).val())}),i=a}else i=e.find('input[type="checkbox"]:checked').val();break;default:i=wp.hooks.applyFilters("um_conditional_logic_default_value",i,n,e)}return{type:n,value:i}}function um_get_field_element(e){var i=e.find("input,textarea,select"),n=um_get_field_type(e);return i=wp.hooks.applyFilters("um_conditional_logic_field_element",i,n,e)}function um_get_field_type(e){var n="",i=e.attr("class").split(" ");return jQuery.each(i,function(e,i){/um-field-type_/.test(i)&&(n=i.replace("um-field-type_","").trim())}),n}function um_get_field_children(n){var a=[];return jQuery.each(arr_all_conditions,function(e,i){i.field.parent===n&&a.push(i.field.condition)}),a}function um_splitup_array(e,i){for(var n=e.length%i,a=n,t=Math.floor(e.length/i),u=[],o=0;o<e.length;o+=t){var r=t+o,d=!1;0!==n&&a&&(r++,a--,d=!0),u.push(e.slice(o,r)),d&&o++}var c=[];return jQuery.each(u,function(e,i){c.push({action:i[0],if_field:i[1],operator:i[2],value:i[3]})}),c}function um_get_field_data(e){return um_live_field=e.parents(".um-field").data("key"),um_live_value=e.val(),e.is(":checkbox")&&(um_live_value="",1<e.parents(".um-field").find("input:checked").length?e.parents(".um-field").find("input:checked").each(function(){um_live_value=um_live_value+jQuery(this).val()+" "}):1<=e.parents(".um-field").find("input:checked").length&&(um_live_value=e.parents(".um-field").find("input:checked").val())),e.is(":radio")&&(um_live_value=e.parents(".um-field").find("input[type=radio]:checked").val()),um_live_value}function um_in_array(e,i,n){var a,t=!1;for(a in n=!!n,i)if(n&&i[a]===e||!n&&i[a]==e){t=!0;break}return t}function um_apply_conditions(n,e){if(n.parents(".um-field[data-key]").length){var i=n.parents(".um-field[data-key]").data("key"),a=um_field_conditions[i];if(void 0!==a){var t=um_get_field_type(n.parents(".um-field[data-key]")),u=um_get_field_data(n),o={},r={},d={};jQuery.each(a,function(e,i){void 0===r[i.owner]&&(r[i.owner]=[],d[i.owner]={}),r[i.owner].push(i.value),d[i.owner]=i}),jQuery.each(a,function(e,i){if(void 0===o[i.owner]&&(o[i.owner]={}),"empty"===i.operator){var n=jQuery.isArray(u)?u.join(""):u;o[i.owner][e]=!n||""===n}if("not empty"===i.operator){n=jQuery.isArray(u)?u.join(""):u;o[i.owner][e]=!(!n||""===n)}if("equals to"===i.operator){n=jQuery.isArray(u)&&1===u.length?u[0]:u;i.value===n&&um_in_array(n,r[i.owner])?o[i.owner][e]=!0:o[i.owner][e]=!1}if("not equals"===i.operator){n=jQuery.isArray(u)&&1===u.length?u[0]:u;jQuery.isNumeric(i.value)&&parseInt(n)!==parseInt(i.value)&&n&&!um_in_array(n,r[i.owner])?o[i.owner][e]=!0:i.value==n||um_in_array(n,r[i.owner])?o[i.owner][e]=!1:o[i.owner][e]=!0}if("greater than"===i.operator){n=jQuery.isArray(u)&&1===u.length?u[0]:u;jQuery.isNumeric(i.value)&&parseInt(n)>parseInt(i.value)?o[i.owner][e]=!0:o[i.owner][e]=!1}if("less than"===i.operator){n=jQuery.isArray(u)&&1===u.length?u[0]:u;jQuery.isNumeric(i.value)&&parseInt(n)<parseInt(i.value)?o[i.owner][e]=!0:o[i.owner][e]=!1}if("contains"===i.operator)switch(t){case"multiselect":u&&0<=u.indexOf(i.value)&&um_in_array(i.value,u)?o[i.owner][e]=!0:o[i.owner][e]=!1;break;case"checkbox":u&&0<=u.indexOf(i.value)?o[i.owner][e]=!0:o[i.owner][e]=!1;break;default:void 0===(o=wp.hooks.applyFilters("um_conditional_logic_contains_operator_owners",o,t,u,i,e))[i.owner][e]&&(u&&0<=u.indexOf(i.value)&&um_in_array(u,r[i.owner])?o[i.owner][e]=!0:o[i.owner][e]=!1)}}),jQuery.each(o,function(e,i){um_in_array(!0,i)?um_field_apply_action(n,d[e],!0):um_field_apply_action(n,d[e],!1)}),n.trigger("um_fields_change")}}}function um_field_apply_action(e,i,n){var a=jQuery('div.um-field[data-key="'+i.owner+'"]');return"show"===i.action&&n&&(a.is(":hidden")&&um_field_restore_default_value(a),a.show(),_show_in_ie(a)),"show"!==i.action||n||(a.hide(),_hide_in_ie(a)),"hide"===i.action&&n&&(a.hide(),_hide_in_ie(a)),"hide"!==i.action||n||(a.is(":hidden")&&um_field_restore_default_value(a),a.show(),_show_in_ie(a)),e.removeClass("um-field-has-changed")}function um_field_restore_default_value(a){var e=um_get_field_type(a),i=a.data("key"),n=um_field_default_values[i];switch(e){case"text":case"number":case"date":case"textarea":a.find('input:text,input[type="number"],textareas').val(n.value);break;case"select":a.find("select").find("option").prop("selected",!1),a.find("select").val(n.value),a.find("select").trigger("change");break;case"multiselect":a.find("select").find("option").prop("selected",!1),jQuery.each(n.value,function(e,i){a.find("select").find('option[value="'+i+'"]').attr("selected",!0)}),a.find("select").trigger("change");break;case"checkbox":if(1<=a.find('input[type="checkbox"]:checked').length)if(a.find('input[type="checkbox"]:checked').removeAttr("checked"),a.find("span.um-field-checkbox-state i").removeClass("um-icon-android-checkbox-outline"),a.find("span.um-field-checkbox-state i").addClass("um-icon-android-checkbox-outline-blank"),a.find(".um-field-checkbox.active").removeClass("active"),jQuery.isArray(n.value))jQuery.each(n.value,function(e,i){var n=a.find('input[type="checkbox"][value="'+i+'"]');n.attr("checked",!0),n.closest(".um-field-checkbox").find("i").removeClass("um-icon-android-checkbox-outline-blank"),n.closest(".um-field-checkbox").find("i").addClass("um-icon-android-checkbox-outline"),n.closest(".um-field-checkbox").addClass("active")});else{var t=a.find('input[type="checkbox"][value="'+n.value+'"]');t.attr("checked",!0),t.closest(".um-field-checkbox").find("i").removeClass("um-icon-android-checkbox-outline-blank"),t.closest(".um-field-checkbox").find("i").addClass("um-icon-android-checkbox-outline"),t.closest(".um-field-checkbox").addClass("active")}break;case"radio":1<=a.find('input[type="radio"]:checked').length&&setTimeout(function(){a.find('input[type="radio"]:checked').removeAttr("checked"),a.find("span.um-field-radio-state i").removeClass("um-icon-android-radio-button-on"),a.find("span.um-field-radio-state i").addClass("um-icon-android-radio-button-off"),a.find(".um-field-radio.active").removeClass("active");var e=a.find('input[type="radio"][value="'+n.value+'"]');e.attr("checked",!0),e.closest(".um-field-radio").find("i").removeClass("um-icon-android-radio-button-off"),e.closest(".um-field-radio").find("i").addClass("um-icon-android-radio-button-on"),e.closest(".um-field-radio").addClass("active")},100);break;default:wp.hooks.doAction("um_conditional_logic_restore_default_value",e,a,n)}if(!a.hasClass("um-field-has-changed")){var u=um_get_field_element(a);"radio"!==e&&"checkbox"!==e||(u=u.find(":checked")),u&&(u.trigger("change"),a.addClass("um-field-has-changed"))}}function um_field_hide_siblings(){jQuery.each(um_field_conditions,function(e,i){(1<=jQuery('.um-field[data-key="'+e+'"]:hidden').length||"none"===jQuery('.um-field[data-key="'+e+'"]').css("display"))&&jQuery.each(i,function(e,i){jQuery('.um-field[data-key="'+i.owner+'"]').hide()})})}function _hide_in_ie(e){void 0!==jQuery.browser&&jQuery.browser.msie&&e.css({visibility:"hidden"})}function _show_in_ie(e){void 0!==jQuery.browser&&jQuery.browser.msie&&e.css({visibility:"visible"})}function um_init_field_conditions(){var e=[];jQuery(".um-field[data-key]").each(function(){var a=jQuery(this).data("key");e.push(a);var u={};jQuery.each(jQuery(this)[0].attributes,function(e,i){if(-1!==i.name.indexOf("data-cond")){var n=i.name.slice(10),a=n.substring(1,0),t=n.slice(2);void 0===u[a]&&(u[a]={}),u[a][t]=i.value}}),jQuery.each(u,function(e,i){var n={field:{owner:a,action:i.action,parent:i.field,operator:i.operator,value:i.value,condition:{owner:a,action:i.action,operator:i.operator,value:i.value}}};arr_all_conditions.push(n)}),um_field_default_values[jQuery(this).data("key")]=um_get_field_default_value(jQuery(this))}),jQuery.each(e,function(e,i){um_field_conditions[i]=um_get_field_children(i)}),jQuery(".um-field[data-key]:visible").each(function(){var e=um_get_field_element(jQuery(this));void 0!==e.trigger&&e.trigger("change")})}jQuery(document).ready(function(){jQuery(document).on("change",'.um-field select, .um-field input[type="radio"], .um-field input[type="checkbox"]',function(){um_apply_conditions(jQuery(this),!1)}),jQuery(document).on("input change",'.um-field input[type="text"]',function(){um_apply_conditions(jQuery(this),!1)}),jQuery(document).on("input change",'.um-field input[type="number"]',function(){um_apply_conditions(jQuery(this),!1)}),jQuery(document).on("input change",'.um-field input[type="password"]',function(){um_apply_conditions(jQuery(this),!1)}),jQuery(document).on("um_fields_change",function(){um_field_hide_siblings(),um_field_hide_siblings()}),um_init_field_conditions()});
assets/js/um-functions.js CHANGED
@@ -209,217 +209,217 @@ function um_responsive(){
209
 
210
  function initImageUpload_UM( trigger ) {
211
 
212
- if (trigger.data('upload_help_text')){
213
- upload_help_text = '<span class="help">' + trigger.data('upload_help_text') + '</span>';
214
- } else {
215
- upload_help_text = '';
216
- }
217
 
218
- if ( trigger.data('icon') ) {
219
- icon = '<span class="icon"><i class="'+ trigger.data('icon') + '"></i></span>';
220
- } else {
221
- icon = '';
222
- }
223
 
224
- if ( trigger.data('upload_text') ) {
225
- upload_text = '<span class="str">' + trigger.data('upload_text') + '</span>';
226
- } else {
227
- upload_text = '';
228
- }
229
 
230
- var user_id = 0;
231
-
232
- if( jQuery('#um_upload_single:visible').data('user_id') ){
233
- user_id = jQuery('#um_upload_single:visible').data('user_id');
234
- }
235
-
236
- trigger.uploadFile({
237
- url: wp.ajax.settings.url,
238
- method: "POST",
239
- multiple: false,
240
- formData: {
241
- action: 'um_imageupload',
242
- key: trigger.data('key'),
243
- set_id: trigger.data('set_id'),
244
- set_mode: trigger.data('set_mode'),
245
- _wpnonce: trigger.data('nonce'),
246
- timestamp: trigger.data('timestamp'),
247
- user_id: user_id
248
- },
249
- fileName: trigger.data('key'),
250
- allowedTypes: trigger.data('allowed_types'),
251
- maxFileSize: trigger.data('max_size'),
252
- dragDropStr: icon + upload_text + upload_help_text,
253
- sizeErrorStr: trigger.data('max_size_error'),
254
- extErrorStr: trigger.data('extension_error'),
255
- maxFileCountErrorStr: trigger.data('max_files_error'),
256
- maxFileCount: 1,
257
- showDelete: false,
258
- showAbort: false,
259
- showDone: false,
260
- showFileCounter: false,
261
- showStatusAfterSuccess: true,
262
- returnType: 'json',
263
- onSubmit:function(files){
264
-
265
- trigger.parents('.um-modal-body').find('.um-error-block').remove();
266
-
267
- },
268
- onSuccess:function( files, response, xhr ){
269
-
270
- trigger.selectedFiles = 0;
271
-
272
- if ( response.success && response.success == false || typeof response.data.error !== 'undefined' ) {
273
-
274
- trigger.parents('.um-modal-body').append('<div class="um-error-block">'+response.data.error+'</div>');
275
- trigger.parents('.um-modal-body').find('.upload-statusbar').hide(0);
276
- um_modal_responsive();
 
 
277
 
278
- } else {
279
-
280
- jQuery.each( response.data, function( i, d ) {
281
-
282
- var img_id = trigger.parents('.um-modal-body').find('.um-single-image-preview img');
283
- var img_id_h = trigger.parents('.um-modal-body').find('.um-single-image-preview');
284
 
285
- var cache_ts = new Date();
286
-
287
- img_id.attr("src", d.url + "?"+cache_ts.getTime() );
288
- img_id.data("file", d.file );
289
 
290
- img_id.load(function(){
291
 
292
- trigger.parents('.um-modal-body').find('.um-modal-btn.um-finish-upload.disabled').removeClass('disabled');
293
- trigger.parents('.um-modal-body').find('.ajax-upload-dragdrop,.upload-statusbar').hide(0);
294
- img_id_h.show(0);
295
- um_modal_responsive();
296
 
297
- });
 
 
 
 
 
298
 
299
  });
300
 
301
- }
302
 
303
- },
304
- onError: function ( e ){
305
- console.log( e );
306
  }
307
- });
 
 
 
 
 
308
 
309
  }
310
 
311
  function initFileUpload_UM( trigger ) {
312
 
313
- if (trigger.data('upload_help_text')){
314
- upload_help_text = '<span class="help">' + trigger.data('upload_help_text') + '</span>';
315
- } else {
316
- upload_help_text = '';
317
- }
318
 
319
- if ( trigger.data('icon') ) {
320
- icon = '<span class="icon"><i class="'+ trigger.data('icon') + '"></i></span>';
321
- } else {
322
- icon = '';
323
- }
324
 
325
- if ( trigger.data('upload_text') ) {
326
- upload_text = '<span class="str">' + trigger.data('upload_text') + '</span>';
327
- } else {
328
- upload_text = '';
329
- }
330
 
331
- if( jQuery('#um_upload_single:visible').data('user_id') ){
332
- user_id = jQuery('#um_upload_single:visible').data('user_id');
333
- }
334
-
335
- trigger.uploadFile({
336
- url: wp.ajax.settings.url,
337
- method: "POST",
338
- multiple: false,
339
- formData: {
340
- action: 'um_fileupload',
341
- key: trigger.data('key'),
342
- set_id: trigger.data('set_id'),
343
- user_id: trigger.data('user_id'),
344
- set_mode: trigger.data('set_mode'),
345
- _wpnonce: trigger.data('nonce'),
346
- timestamp: trigger.data('timestamp')
347
- },
348
- fileName: trigger.data('key'),
349
- allowedTypes: trigger.data('allowed_types'),
350
- maxFileSize: trigger.data('max_size'),
351
- dragDropStr: icon + upload_text + upload_help_text,
352
- sizeErrorStr: trigger.data('max_size_error'),
353
- extErrorStr: trigger.data('extension_error'),
354
- maxFileCountErrorStr: trigger.data('max_files_error'),
355
- maxFileCount: 1,
356
- showDelete: false,
357
- showAbort: false,
358
- showDone: false,
359
- showFileCounter: false,
360
- showStatusAfterSuccess: true,
361
- onSubmit:function(files){
362
-
363
- trigger.parents('.um-modal-body').find('.um-error-block').remove();
364
-
365
- },
366
- onSuccess:function( files, response ,xhr ){
367
-
368
- trigger.selectedFiles = 0;
369
-
370
- if ( response.success && response.success == false || typeof response.data.error !== 'undefined' ) {
371
-
372
- trigger.parents('.um-modal-body').append('<div class="um-error-block">'+ response.data.error+'</div>');
373
- trigger.parents('.um-modal-body').find('.upload-statusbar').hide(0);
374
-
375
- setTimeout(function(){
376
- um_modal_responsive();
377
- },1000);
378
 
379
- } else {
380
 
381
- jQuery.each( response.data , function(key, value) {
382
 
383
- trigger.parents('.um-modal-body').find('.um-modal-btn.um-finish-upload.disabled').removeClass('disabled');
384
- trigger.parents('.um-modal-body').find('.ajax-upload-dragdrop,.upload-statusbar').hide(0);
385
- trigger.parents('.um-modal-body').find('.um-single-file-preview').show(0);
386
-
387
- if ( key == 'icon' ) {
388
-
389
- trigger.parents('.um-modal-body').find('.um-single-fileinfo i').removeClass().addClass( value );
390
-
391
- } else if ( key == 'icon_bg' ) {
392
-
393
- trigger.parents('.um-modal-body').find('.um-single-fileinfo span.icon').css({'background-color' : value } );
394
-
395
- } else if ( key == 'filename' ) {
396
-
397
- trigger.parents('.um-modal-body').find('.um-single-fileinfo a').attr('data-file', value );
398
-
399
- }else if( key == 'original_name' ){
400
-
401
- trigger.parents('.um-modal-body').find('.um-single-fileinfo a').attr('data-orignal-name', value );
402
- trigger.parents('.um-modal-body').find('.um-single-fileinfo span.filename').html( value );
403
-
404
- } else if ( key == 'url' ) {
405
-
406
- trigger.parents('.um-modal-body').find('.um-single-fileinfo a').attr('href', value);
407
-
408
- }
409
 
410
- });
411
 
412
- setTimeout(function(){
413
- um_modal_responsive();
414
- },1000);
415
 
416
- }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
417
 
418
- },
419
- onError: function ( e ){
420
- console.log( e );
421
  }
422
- });
 
 
 
 
 
423
 
424
  }
425
 
@@ -548,7 +548,7 @@ function um_new_modal( id, size, isPhoto, source ){
548
  var photo_maxh = jQuery(window).height() - ( jQuery(window).height() * 0.25 );
549
 
550
  photo_.attr("src", source);
551
- photo_.load(function(){
552
 
553
  jQuery('#' + id).show();
554
  jQuery('.um-modal').show();
209
 
210
  function initImageUpload_UM( trigger ) {
211
 
212
+ if (trigger.data('upload_help_text')){
213
+ upload_help_text = '<span class="help">' + trigger.data('upload_help_text') + '</span>';
214
+ } else {
215
+ upload_help_text = '';
216
+ }
217
 
218
+ if ( trigger.data('icon') ) {
219
+ icon = '<span class="icon"><i class="'+ trigger.data('icon') + '"></i></span>';
220
+ } else {
221
+ icon = '';
222
+ }
223
 
224
+ if ( trigger.data('upload_text') ) {
225
+ upload_text = '<span class="str">' + trigger.data('upload_text') + '</span>';
226
+ } else {
227
+ upload_text = '';
228
+ }
229
 
230
+ var user_id = 0;
231
+
232
+ if( jQuery('#um_upload_single:visible').data('user_id') ){
233
+ user_id = jQuery('#um_upload_single:visible').data('user_id');
234
+ }
235
+
236
+ trigger.uploadFile({
237
+ url: wp.ajax.settings.url,
238
+ method: "POST",
239
+ multiple: false,
240
+ formData: {
241
+ action: 'um_imageupload',
242
+ key: trigger.data('key'),
243
+ set_id: trigger.data('set_id'),
244
+ set_mode: trigger.data('set_mode'),
245
+ _wpnonce: trigger.data('nonce'),
246
+ timestamp: trigger.data('timestamp'),
247
+ user_id: user_id
248
+ },
249
+ fileName: trigger.data('key'),
250
+ allowedTypes: trigger.data('allowed_types'),
251
+ maxFileSize: trigger.data('max_size'),
252
+ dragDropStr: icon + upload_text + upload_help_text,
253
+ sizeErrorStr: trigger.data('max_size_error'),
254
+ extErrorStr: trigger.data('extension_error'),
255
+ maxFileCountErrorStr: trigger.data('max_files_error'),
256
+ maxFileCount: 1,
257
+ showDelete: false,
258
+ showAbort: false,
259
+ showDone: false,
260
+ showFileCounter: false,
261
+ showStatusAfterSuccess: true,
262
+ returnType: 'json',
263
+ onSubmit:function(files){
264
+
265
+ trigger.parents('.um-modal-body').find('.um-error-block').remove();
266
+
267
+ },
268
+ onSuccess:function( files, response, xhr ){
269
+
270
+ trigger.selectedFiles = 0;
271
+
272
+ if ( response.success && response.success == false || typeof response.data.error !== 'undefined' ) {
273
+
274
+ trigger.parents('.um-modal-body').append('<div class="um-error-block">'+response.data.error+'</div>');
275
+ trigger.parents('.um-modal-body').find('.upload-statusbar').hide(0);
276
+ um_modal_responsive();
277
+
278
+ } else {
279
 
280
+ jQuery.each( response.data, function( i, d ) {
 
 
 
 
 
281
 
282
+ var img_id = trigger.parents('.um-modal-body').find('.um-single-image-preview img');
283
+ var img_id_h = trigger.parents('.um-modal-body').find('.um-single-image-preview');
 
 
284
 
285
+ var cache_ts = new Date();
286
 
287
+ img_id.attr("src", d.url + "?"+cache_ts.getTime() );
288
+ img_id.data("file", d.file );
 
 
289
 
290
+ img_id.on( 'load', function() {
291
+
292
+ trigger.parents('.um-modal-body').find('.um-modal-btn.um-finish-upload.disabled').removeClass('disabled');
293
+ trigger.parents('.um-modal-body').find('.ajax-upload-dragdrop,.upload-statusbar').hide(0);
294
+ img_id_h.show(0);
295
+ um_modal_responsive();
296
 
297
  });
298
 
299
+ });
300
 
 
 
 
301
  }
302
+
303
+ },
304
+ onError: function ( e ){
305
+ console.log( e );
306
+ }
307
+ });
308
 
309
  }
310
 
311
  function initFileUpload_UM( trigger ) {
312
 
313
+ if (trigger.data('upload_help_text')){
314
+ upload_help_text = '<span class="help">' + trigger.data('upload_help_text') + '</span>';
315
+ } else {
316
+ upload_help_text = '';
317
+ }
318
 
319
+ if ( trigger.data('icon') ) {
320
+ icon = '<span class="icon"><i class="'+ trigger.data('icon') + '"></i></span>';
321
+ } else {
322
+ icon = '';
323
+ }
324
 
325
+ if ( trigger.data('upload_text') ) {
326
+ upload_text = '<span class="str">' + trigger.data('upload_text') + '</span>';
327
+ } else {
328
+ upload_text = '';
329
+ }
330
 
331
+ if( jQuery('#um_upload_single:visible').data('user_id') ){
332
+ user_id = jQuery('#um_upload_single:visible').data('user_id');
333
+ }
334
+
335
+ trigger.uploadFile({
336
+ url: wp.ajax.settings.url,
337
+ method: "POST",
338
+ multiple: false,
339
+ formData: {
340
+ action: 'um_fileupload',
341
+ key: trigger.data('key'),
342
+ set_id: trigger.data('set_id'),
343
+ user_id: trigger.data('user_id'),
344
+ set_mode: trigger.data('set_mode'),
345
+ _wpnonce: trigger.data('nonce'),
346
+ timestamp: trigger.data('timestamp')
347
+ },
348
+ fileName: trigger.data('key'),
349
+ allowedTypes: trigger.data('allowed_types'),
350
+ maxFileSize: trigger.data('max_size'),
351
+ dragDropStr: icon + upload_text + upload_help_text,
352
+ sizeErrorStr: trigger.data('max_size_error'),
353
+ extErrorStr: trigger.data('extension_error'),
354
+ maxFileCountErrorStr: trigger.data('max_files_error'),
355
+ maxFileCount: 1,
356
+ showDelete: false,
357
+ showAbort: false,
358
+ showDone: false,
359
+ showFileCounter: false,
360
+ showStatusAfterSuccess: true,
361
+ onSubmit:function(files){
362
+
363
+ trigger.parents('.um-modal-body').find('.um-error-block').remove();
364
+
365
+ },
366
+ onSuccess:function( files, response ,xhr ){
367
+
368
+ trigger.selectedFiles = 0;
369
+
370
+ if ( response.success && response.success == false || typeof response.data.error !== 'undefined' ) {
371
+
372
+ trigger.parents('.um-modal-body').append('<div class="um-error-block">'+ response.data.error+'</div>');
373
+ trigger.parents('.um-modal-body').find('.upload-statusbar').hide(0);
374
+
375
+ setTimeout(function(){
376
+ um_modal_responsive();
377
+ },1000);
378
 
379
+ } else {
380
 
381
+ jQuery.each( response.data , function(key, value) {
382
 
383
+ trigger.parents('.um-modal-body').find('.um-modal-btn.um-finish-upload.disabled').removeClass('disabled');
384
+ trigger.parents('.um-modal-body').find('.ajax-upload-dragdrop,.upload-statusbar').hide(0);
385
+ trigger.parents('.um-modal-body').find('.um-single-file-preview').show(0);
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
386
 
387
+ if ( key == 'icon' ) {
388
 
389
+ trigger.parents('.um-modal-body').find('.um-single-fileinfo i').removeClass().addClass( value );
 
 
390
 
391
+ } else if ( key == 'icon_bg' ) {
392
+
393
+ trigger.parents('.um-modal-body').find('.um-single-fileinfo span.icon').css({'background-color' : value } );
394
+
395
+ } else if ( key == 'filename' ) {
396
+
397
+ trigger.parents('.um-modal-body').find('.um-single-fileinfo a').attr('data-file', value );
398
+
399
+ }else if( key == 'original_name' ){
400
+
401
+ trigger.parents('.um-modal-body').find('.um-single-fileinfo a').attr('data-orignal-name', value );
402
+ trigger.parents('.um-modal-body').find('.um-single-fileinfo span.filename').html( value );
403
+
404
+ } else if ( key == 'url' ) {
405
+
406
+ trigger.parents('.um-modal-body').find('.um-single-fileinfo a').attr('href', value);
407
+
408
+ }
409
+
410
+ });
411
+
412
+ setTimeout(function(){
413
+ um_modal_responsive();
414
+ },1000);
415
 
 
 
 
416
  }
417
+
418
+ },
419
+ onError: function ( e ){
420
+ console.log( e );
421
+ }
422
+ });
423
 
424
  }
425
 
548
  var photo_maxh = jQuery(window).height() - ( jQuery(window).height() * 0.25 );
549
 
550
  photo_.attr("src", source);
551
+ photo_.on( 'load', function() {
552
 
553
  jQuery('#' + id).show();
554
  jQuery('.um-modal').show();
assets/js/um-functions.min.js CHANGED
@@ -1 +1 @@
1
- function UM_check_password_matched(){jQuery(document).on("keyup","input[data-key=user_password],input[data-key=confirm_user_password]",function(e){var t=jQuery("input[data-key=user_password]").val(),a=jQuery("input[data-key=confirm_user_password]").val(),o=jQuery("input[data-key=user_password],input[data-key=confirm_user_password]");t||a?t!==a?o.removeClass("um-validate-matched").addClass("um-validate-not-matched"):o.removeClass("um-validate-not-matched").addClass("um-validate-matched"):o.removeClass("um-validate-matched").removeClass("um-validate-not-matched")})}function UM_hide_menus(){var e=jQuery(".um-dropdown");e.parents("div").find("a").removeClass("active"),e.hide()}function UM_domenus(){jQuery(".um-dropdown").each(function(){var e=jQuery(this),t=jQuery(this).attr("data-element"),a=jQuery(this).attr("data-position");if(jQuery(t).addClass("um-trigger-menu-on-"+e.attr("data-trigger")),"lc"===a&&"rtl"===jQuery("html").attr("dir")&&(a="rc"),jQuery(window).width()<=1200&&"div.um-profile-edit"===t&&(a="rtl"===jQuery("html").attr("dir")?"rc":"lc"),jQuery(t).find("img").width()<200?left_p=(jQuery(t).width()-jQuery(t).find("img").width())/2+(jQuery(t).find("img").width()-200)/2:left_p=(jQuery(t).width()-jQuery(t).find("img").width())/2,top_=parseInt(jQuery(t).find("a").css("top")),top_?top_p=jQuery(t).find("img").height()+4+top_:top_p=jQuery(t).find("img").height()+4,4==top_p&&"div.um-cover"===t?top_p=jQuery(t).height()/2+e.height()/2:4==top_p&&(top_p=jQuery(t).height()+20),"lc"===a)gap_right=jQuery(t).width()+17,e.css({top:0,width:200,left:"auto",right:gap_right+"px","text-align":"center"}),e.find(".um-dropdown-arr").find("i").removeClass().addClass("um-icon-arrow-right-b"),e.find(".um-dropdown-arr").css({top:"4px",left:"auto",right:"-17px"});else if("rc"===a)gap_right=jQuery(t).width()+25,e.css({top:0,width:200,left:gap_right+"px",right:"auto","text-align":"center"}),e.find(".um-dropdown-arr").find("i").removeClass().addClass("um-icon-arrow-left-b"),e.find(".um-dropdown-arr").css({top:"4px",left:"-17px",right:"auto"});else if("bc"===a){var o=0,i=e.data("top-offset");void 0!==i&&(o=1*i),e.css({top:top_p+o,width:200,left:left_p,right:"auto","text-align":"center"}),e.find(".um-dropdown-arr").find("i").removeClass().addClass("um-icon-arrow-up-b"),e.find(".um-dropdown-arr").css({top:"-17px",left:e.width()/2-12,right:"auto"})}})}function um_responsive(){jQuery(".um").each(function(){element_width=jQuery(this).width(),element_width<=340?(jQuery(this).removeClass("uimob340"),jQuery(this).removeClass("uimob500"),jQuery(this).removeClass("uimob800"),jQuery(this).removeClass("uimob960"),jQuery(this).addClass("uimob340")):element_width<=500?(jQuery(this).removeClass("uimob340"),jQuery(this).removeClass("uimob500"),jQuery(this).removeClass("uimob800"),jQuery(this).removeClass("uimob960"),jQuery(this).addClass("uimob500")):element_width<=800?(jQuery(this).removeClass("uimob340"),jQuery(this).removeClass("uimob500"),jQuery(this).removeClass("uimob800"),jQuery(this).removeClass("uimob960"),jQuery(this).addClass("uimob800")):element_width<=960?(jQuery(this).removeClass("uimob340"),jQuery(this).removeClass("uimob500"),jQuery(this).removeClass("uimob800"),jQuery(this).removeClass("uimob960"),jQuery(this).addClass("uimob960")):960<element_width&&(jQuery(this).removeClass("uimob340"),jQuery(this).removeClass("uimob500"),jQuery(this).removeClass("uimob800"),jQuery(this).removeClass("uimob960")),0<jQuery(".um-account-nav").length&&jQuery(".um-account-side").is(":visible")&&0==jQuery(".um-account-tab:visible").length&&jQuery(".um-account-side li a.current").trigger("click"),jQuery(this).css("opacity",1)}),jQuery(".um-cover, .um-member-cover, .um-cover-e").each(function(){var e=jQuery(this),t=e.data("ratio"),a=e.width(),o=t.split(":");calcHeight=Math.round(a/o[0])+"px",e.height(calcHeight),e.find(".um-cover-add").height(calcHeight)}),UM_domenus()}function initImageUpload_UM(r){r.data("upload_help_text")?upload_help_text='<span class="help">'+r.data("upload_help_text")+"</span>":upload_help_text="",r.data("icon")?icon='<span class="icon"><i class="'+r.data("icon")+'"></i></span>':icon="",r.data("upload_text")?upload_text='<span class="str">'+r.data("upload_text")+"</span>":upload_text="";var e=0;jQuery("#um_upload_single:visible").data("user_id")&&(e=jQuery("#um_upload_single:visible").data("user_id")),r.uploadFile({url:wp.ajax.settings.url,method:"POST",multiple:!1,formData:{action:"um_imageupload",key:r.data("key"),set_id:r.data("set_id"),set_mode:r.data("set_mode"),_wpnonce:r.data("nonce"),timestamp:r.data("timestamp"),user_id:e},fileName:r.data("key"),allowedTypes:r.data("allowed_types"),maxFileSize:r.data("max_size"),dragDropStr:icon+upload_text+upload_help_text,sizeErrorStr:r.data("max_size_error"),extErrorStr:r.data("extension_error"),maxFileCountErrorStr:r.data("max_files_error"),maxFileCount:1,showDelete:!1,showAbort:!1,showDone:!1,showFileCounter:!1,showStatusAfterSuccess:!0,returnType:"json",onSubmit:function(e){r.parents(".um-modal-body").find(".um-error-block").remove()},onSuccess:function(e,t,a){r.selectedFiles=0,t.success&&0==t.success||void 0!==t.data.error?(r.parents(".um-modal-body").append('<div class="um-error-block">'+t.data.error+"</div>"),r.parents(".um-modal-body").find(".upload-statusbar").hide(0),um_modal_responsive()):jQuery.each(t.data,function(e,t){var a=r.parents(".um-modal-body").find(".um-single-image-preview img"),o=r.parents(".um-modal-body").find(".um-single-image-preview"),i=new Date;a.attr("src",t.url+"?"+i.getTime()),a.data("file",t.file),a.load(function(){r.parents(".um-modal-body").find(".um-modal-btn.um-finish-upload.disabled").removeClass("disabled"),r.parents(".um-modal-body").find(".ajax-upload-dragdrop,.upload-statusbar").hide(0),o.show(0),um_modal_responsive()})})},onError:function(e){console.log(e)}})}function initFileUpload_UM(o){o.data("upload_help_text")?upload_help_text='<span class="help">'+o.data("upload_help_text")+"</span>":upload_help_text="",o.data("icon")?icon='<span class="icon"><i class="'+o.data("icon")+'"></i></span>':icon="",o.data("upload_text")?upload_text='<span class="str">'+o.data("upload_text")+"</span>":upload_text="",jQuery("#um_upload_single:visible").data("user_id")&&(user_id=jQuery("#um_upload_single:visible").data("user_id")),o.uploadFile({url:wp.ajax.settings.url,method:"POST",multiple:!1,formData:{action:"um_fileupload",key:o.data("key"),set_id:o.data("set_id"),user_id:o.data("user_id"),set_mode:o.data("set_mode"),_wpnonce:o.data("nonce"),timestamp:o.data("timestamp")},fileName:o.data("key"),allowedTypes:o.data("allowed_types"),maxFileSize:o.data("max_size"),dragDropStr:icon+upload_text+upload_help_text,sizeErrorStr:o.data("max_size_error"),extErrorStr:o.data("extension_error"),maxFileCountErrorStr:o.data("max_files_error"),maxFileCount:1,showDelete:!1,showAbort:!1,showDone:!1,showFileCounter:!1,showStatusAfterSuccess:!0,onSubmit:function(e){o.parents(".um-modal-body").find(".um-error-block").remove()},onSuccess:function(e,t,a){o.selectedFiles=0,t.success&&0==t.success||void 0!==t.data.error?(o.parents(".um-modal-body").append('<div class="um-error-block">'+t.data.error+"</div>"),o.parents(".um-modal-body").find(".upload-statusbar").hide(0)):jQuery.each(t.data,function(e,t){o.parents(".um-modal-body").find(".um-modal-btn.um-finish-upload.disabled").removeClass("disabled"),o.parents(".um-modal-body").find(".ajax-upload-dragdrop,.upload-statusbar").hide(0),o.parents(".um-modal-body").find(".um-single-file-preview").show(0),"icon"==e?o.parents(".um-modal-body").find(".um-single-fileinfo i").removeClass().addClass(t):"icon_bg"==e?o.parents(".um-modal-body").find(".um-single-fileinfo span.icon").css({"background-color":t}):"filename"==e?o.parents(".um-modal-body").find(".um-single-fileinfo a").attr("data-file",t):"original_name"==e?(o.parents(".um-modal-body").find(".um-single-fileinfo a").attr("data-orignal-name",t),o.parents(".um-modal-body").find(".um-single-fileinfo span.filename").html(t)):"url"==e&&o.parents(".um-modal-body").find(".um-single-fileinfo a").attr("href",t)}),setTimeout(function(){um_modal_responsive()},1e3)},onError:function(e){console.log(e)}})}function initCrop_UM(){var t=jQuery(".um-modal .um-single-image-preview img").first(),e=jQuery(".um-modal .um-single-image-preview"),a=t.parent().attr("data-crop"),o=t.parent().attr("data-min_width"),i=t.parent().attr("data-min_height"),r=t.parent().attr("data-ratio");if(jQuery(".um-modal").find("#um_upload_single").attr("data-ratio"))r=(r=jQuery(".um-modal").find("#um_upload_single").attr("data-ratio")).split(":")[0];if(t.length&&""!=t.attr("src")){var d=jQuery(window).height()-(jQuery(".um-modal-footer a").height()+20)-50-jQuery(".um-modal-header:visible").height();if(t.css({height:"auto"}),e.css({height:"auto"}),jQuery(window).height()<=400?(e.css({height:d+"px","max-height":d+"px"}),t.css({height:"auto"})):(t.css({height:"auto","max-height":d+"px"}),e.css({height:t.height(),"max-height":d+"px"})),"square"==a)var u={minWidth:o,minHeight:i,dragCrop:!1,aspectRatio:1,zoomable:!1,rotatable:!1,dashed:!1,done:function(e){t.parent().attr("data-coord",Math.round(e.x)+","+Math.round(e.y)+","+Math.round(e.width)+","+Math.round(e.height))}};else if("cover"==a){0<Math.round(o/r)&&(i=Math.round(o/r));u={minWidth:o,minHeight:i,dragCrop:!1,aspectRatio:r,zoomable:!1,rotatable:!1,dashed:!1,done:function(e){t.parent().attr("data-coord",Math.round(e.x)+","+Math.round(e.y)+","+Math.round(e.width)+","+Math.round(e.height))}}}else if("user"==a)u={minWidth:o,minHeight:i,dragCrop:!0,aspectRatio:"auto",zoomable:!1,rotatable:!1,dashed:!1,done:function(e){t.parent().attr("data-coord",Math.round(e.x)+","+Math.round(e.y)+","+Math.round(e.width)+","+Math.round(e.height))}};0!=a&&(t.cropper(u),jQuery(".um-single-image-preview img.cropper-hidden").cropper("destroy"),jQuery(".um-single-image-preview img.lazyloaded").addClass("cropper-hidden"),jQuery(".um-single-image-preview img.lazyloaded").removeClass("lazyloaded"),jQuery(".um-single-image-preview .cropper-container").append('<div class="um-clear"></div>'))}}function um_new_modal(e,t,a,o){if(0==jQuery("body").find(".um-modal-overlay").length)if(jQuery(".tipsy").hide(),UM_hide_menus(),jQuery("body,html,textarea").css("overflow","hidden"),jQuery(document).bind("touchmove",function(e){e.preventDefault()}),jQuery(".um-modal").on("touchmove",function(e){e.stopPropagation()}),a?jQuery("body").append('<div class="um-modal-overlay"></div><div class="um-modal is-photo"></div>'):jQuery("body").append('<div class="um-modal-overlay"></div><div class="um-modal no-photo"></div>'),jQuery("#"+e).prependTo(".um-modal"),a){jQuery(".um-modal").find(".um-modal-photo").html("<img />");var i=jQuery(".um-modal-photo img"),r=jQuery(window).width()-60,d=jQuery(window).height()-.25*jQuery(window).height();i.attr("src",o),i.load(function(){jQuery("#"+e).show(),jQuery(".um-modal").show(),i.css({opacity:0}),i.css({"max-width":r}),i.css({"max-height":d}),jQuery(".um-modal").css({width:i.width(),"margin-left":"-"+i.width()/2+"px"}),i.animate({opacity:1},1e3),um_modal_responsive()})}else jQuery("#"+e).show(),jQuery(".um-modal").show(),um_modal_size(t),initImageUpload_UM(jQuery(".um-modal:visible").find(".um-single-image-upload")),initFileUpload_UM(jQuery(".um-modal:visible").find(".um-single-file-upload")),um_modal_responsive()}function um_modal_responsive(){var e=window.innerWidth||document.documentElement.clientWidth||document.body.clientWidth,t=window.innerHeight||document.documentElement.clientHeight||document.body.clientHeight,a=jQuery(".um-modal:visible");if(jQuery(".um-modal-body.photo:visible").length){a.removeClass("uimob340"),a.removeClass("uimob500");var o=jQuery(".um-modal-photo img"),i=e-60,r=t-.25*t;o.css({opacity:0}),o.css({"max-width":i}),o.css({"max-height":r}),jQuery(".um-modal").css({width:o.width(),"margin-left":"-"+o.width()/2+"px"}),o.animate({opacity:1},1e3);var d=(t-a.innerHeight())/2+"px";a.animate({bottom:d},300)}else if(a.length)if(a.removeClass("uimob340"),a.removeClass("uimob500"),e<=340)a.addClass("uimob340"),initCrop_UM(),a.animate({bottom:0},300);else if(e<=500)a.addClass("uimob500"),initCrop_UM(),a.animate({bottom:0},300);else if(e<=800){initCrop_UM();d=(t-a.innerHeight())/2+"px";a.animate({bottom:d},300)}else if(e<=960){initCrop_UM();d=(t-a.innerHeight())/2+"px";a.animate({bottom:d},300)}else if(960<e){initCrop_UM();d=(t-a.innerHeight())/2+"px";a.animate({bottom:d},300)}}function um_remove_modal(){jQuery("img.cropper-hidden").cropper("destroy"),jQuery("body,html,textarea").css("overflow","auto"),jQuery(document).unbind("touchmove"),jQuery('.um-modal div[id^="um_"]').hide().appendTo("body"),jQuery(".um-modal,.um-modal-overlay").remove()}function um_modal_size(e){jQuery(".um-modal:visible").addClass(e)}function um_modal_add_attr(e,t){jQuery(".um-modal:visible").data(e,t)}function prepare_Modal(){0==jQuery(".um-popup-overlay").length&&(jQuery("body").append('<div class="um-popup-overlay"></div>'),jQuery("body").append('<div class="um-popup"></div>'),jQuery(".um-popup").addClass("loading"),jQuery("body,html").css({overflow:"hidden"}))}function remove_Modal(){jQuery(".um-popup-overlay").length&&(jQuery(document).trigger("um_before_modal_removed"),jQuery(".tipsy").remove(),jQuery(".um-popup").empty().remove(),jQuery(".um-popup-overlay").empty().remove(),jQuery("body,html").css({overflow:"auto"}))}function show_Modal(e){jQuery(".um-popup-overlay").length&&(jQuery(".um-popup").removeClass("loading").html(e),jQuery(".um-tip-n").tipsy({gravity:"n",opacity:1,offset:3}),jQuery(".um-tip-w").tipsy({gravity:"w",opacity:1,offset:3}),jQuery(".um-tip-e").tipsy({gravity:"e",opacity:1,offset:3}),jQuery(".um-tip-s").tipsy({gravity:"s",opacity:1,offset:3}))}function responsive_Modal(){jQuery(".um-popup-overlay").length&&(ag_height=jQuery(window).height()-jQuery(".um-popup .um-popup-header").outerHeight()-jQuery(".um-popup .um-popup-footer").outerHeight()-80,350<ag_height&&(ag_height=350),jQuery(".um-popup-autogrow:visible").length?jQuery(".um-popup-autogrow:visible").css({height:ag_height+"px"}):jQuery(".um-popup-autogrow2:visible").length&&jQuery(".um-popup-autogrow2:visible").css({"max-height":ag_height+"px"}))}function um_reset_field(e){jQuery(e).find("div.um-field-area").find("input,textarea,select").not(":button, :submit, :reset, :hidden").val("").removeAttr("checked").removeAttr("selected")}function um_selected(e,t){if(e==t)return"selected='selected'"}jQuery(function(){jQuery(".um-search form *").keypress(function(e){if(13==e.which)return jQuery(".um-search form").submit(),!1}),2==jQuery("input[data-key=user_password],input[data-key=confirm_user_password]").length&&UM_check_password_matched()});
1
+ function UM_check_password_matched(){jQuery(document).on("keyup","input[data-key=user_password],input[data-key=confirm_user_password]",function(e){var t=jQuery("input[data-key=user_password]").val(),a=jQuery("input[data-key=confirm_user_password]").val(),o=jQuery("input[data-key=user_password],input[data-key=confirm_user_password]");t||a?t!==a?o.removeClass("um-validate-matched").addClass("um-validate-not-matched"):o.removeClass("um-validate-not-matched").addClass("um-validate-matched"):o.removeClass("um-validate-matched").removeClass("um-validate-not-matched")})}function UM_hide_menus(){var e=jQuery(".um-dropdown");e.parents("div").find("a").removeClass("active"),e.hide()}function UM_domenus(){jQuery(".um-dropdown").each(function(){var e=jQuery(this),t=jQuery(this).attr("data-element"),a=jQuery(this).attr("data-position");if(jQuery(t).addClass("um-trigger-menu-on-"+e.attr("data-trigger")),"lc"===a&&"rtl"===jQuery("html").attr("dir")&&(a="rc"),jQuery(window).width()<=1200&&"div.um-profile-edit"===t&&(a="rtl"===jQuery("html").attr("dir")?"rc":"lc"),jQuery(t).find("img").width()<200?left_p=(jQuery(t).width()-jQuery(t).find("img").width())/2+(jQuery(t).find("img").width()-200)/2:left_p=(jQuery(t).width()-jQuery(t).find("img").width())/2,top_=parseInt(jQuery(t).find("a").css("top")),top_?top_p=jQuery(t).find("img").height()+4+top_:top_p=jQuery(t).find("img").height()+4,4==top_p&&"div.um-cover"===t?top_p=jQuery(t).height()/2+e.height()/2:4==top_p&&(top_p=jQuery(t).height()+20),"lc"===a)gap_right=jQuery(t).width()+17,e.css({top:0,width:200,left:"auto",right:gap_right+"px","text-align":"center"}),e.find(".um-dropdown-arr").find("i").removeClass().addClass("um-icon-arrow-right-b"),e.find(".um-dropdown-arr").css({top:"4px",left:"auto",right:"-17px"});else if("rc"===a)gap_right=jQuery(t).width()+25,e.css({top:0,width:200,left:gap_right+"px",right:"auto","text-align":"center"}),e.find(".um-dropdown-arr").find("i").removeClass().addClass("um-icon-arrow-left-b"),e.find(".um-dropdown-arr").css({top:"4px",left:"-17px",right:"auto"});else if("bc"===a){var o=0,i=e.data("top-offset");void 0!==i&&(o=1*i),e.css({top:top_p+o,width:200,left:left_p,right:"auto","text-align":"center"}),e.find(".um-dropdown-arr").find("i").removeClass().addClass("um-icon-arrow-up-b"),e.find(".um-dropdown-arr").css({top:"-17px",left:e.width()/2-12,right:"auto"})}})}function um_responsive(){jQuery(".um").each(function(){element_width=jQuery(this).width(),element_width<=340?(jQuery(this).removeClass("uimob340"),jQuery(this).removeClass("uimob500"),jQuery(this).removeClass("uimob800"),jQuery(this).removeClass("uimob960"),jQuery(this).addClass("uimob340")):element_width<=500?(jQuery(this).removeClass("uimob340"),jQuery(this).removeClass("uimob500"),jQuery(this).removeClass("uimob800"),jQuery(this).removeClass("uimob960"),jQuery(this).addClass("uimob500")):element_width<=800?(jQuery(this).removeClass("uimob340"),jQuery(this).removeClass("uimob500"),jQuery(this).removeClass("uimob800"),jQuery(this).removeClass("uimob960"),jQuery(this).addClass("uimob800")):element_width<=960?(jQuery(this).removeClass("uimob340"),jQuery(this).removeClass("uimob500"),jQuery(this).removeClass("uimob800"),jQuery(this).removeClass("uimob960"),jQuery(this).addClass("uimob960")):960<element_width&&(jQuery(this).removeClass("uimob340"),jQuery(this).removeClass("uimob500"),jQuery(this).removeClass("uimob800"),jQuery(this).removeClass("uimob960")),0<jQuery(".um-account-nav").length&&jQuery(".um-account-side").is(":visible")&&0==jQuery(".um-account-tab:visible").length&&jQuery(".um-account-side li a.current").trigger("click"),jQuery(this).css("opacity",1)}),jQuery(".um-cover, .um-member-cover, .um-cover-e").each(function(){var e=jQuery(this),t=e.data("ratio"),a=e.width(),o=t.split(":");calcHeight=Math.round(a/o[0])+"px",e.height(calcHeight),e.find(".um-cover-add").height(calcHeight)}),UM_domenus()}function initImageUpload_UM(r){r.data("upload_help_text")?upload_help_text='<span class="help">'+r.data("upload_help_text")+"</span>":upload_help_text="",r.data("icon")?icon='<span class="icon"><i class="'+r.data("icon")+'"></i></span>':icon="",r.data("upload_text")?upload_text='<span class="str">'+r.data("upload_text")+"</span>":upload_text="";var e=0;jQuery("#um_upload_single:visible").data("user_id")&&(e=jQuery("#um_upload_single:visible").data("user_id")),r.uploadFile({url:wp.ajax.settings.url,method:"POST",multiple:!1,formData:{action:"um_imageupload",key:r.data("key"),set_id:r.data("set_id"),set_mode:r.data("set_mode"),_wpnonce:r.data("nonce"),timestamp:r.data("timestamp"),user_id:e},fileName:r.data("key"),allowedTypes:r.data("allowed_types"),maxFileSize:r.data("max_size"),dragDropStr:icon+upload_text+upload_help_text,sizeErrorStr:r.data("max_size_error"),extErrorStr:r.data("extension_error"),maxFileCountErrorStr:r.data("max_files_error"),maxFileCount:1,showDelete:!1,showAbort:!1,showDone:!1,showFileCounter:!1,showStatusAfterSuccess:!0,returnType:"json",onSubmit:function(e){r.parents(".um-modal-body").find(".um-error-block").remove()},onSuccess:function(e,t,a){r.selectedFiles=0,t.success&&0==t.success||void 0!==t.data.error?(r.parents(".um-modal-body").append('<div class="um-error-block">'+t.data.error+"</div>"),r.parents(".um-modal-body").find(".upload-statusbar").hide(0),um_modal_responsive()):jQuery.each(t.data,function(e,t){var a=r.parents(".um-modal-body").find(".um-single-image-preview img"),o=r.parents(".um-modal-body").find(".um-single-image-preview"),i=new Date;a.attr("src",t.url+"?"+i.getTime()),a.data("file",t.file),a.on("load",function(){r.parents(".um-modal-body").find(".um-modal-btn.um-finish-upload.disabled").removeClass("disabled"),r.parents(".um-modal-body").find(".ajax-upload-dragdrop,.upload-statusbar").hide(0),o.show(0),um_modal_responsive()})})},onError:function(e){console.log(e)}})}function initFileUpload_UM(o){o.data("upload_help_text")?upload_help_text='<span class="help">'+o.data("upload_help_text")+"</span>":upload_help_text="",o.data("icon")?icon='<span class="icon"><i class="'+o.data("icon")+'"></i></span>':icon="",o.data("upload_text")?upload_text='<span class="str">'+o.data("upload_text")+"</span>":upload_text="",jQuery("#um_upload_single:visible").data("user_id")&&(user_id=jQuery("#um_upload_single:visible").data("user_id")),o.uploadFile({url:wp.ajax.settings.url,method:"POST",multiple:!1,formData:{action:"um_fileupload",key:o.data("key"),set_id:o.data("set_id"),user_id:o.data("user_id"),set_mode:o.data("set_mode"),_wpnonce:o.data("nonce"),timestamp:o.data("timestamp")},fileName:o.data("key"),allowedTypes:o.data("allowed_types"),maxFileSize:o.data("max_size"),dragDropStr:icon+upload_text+upload_help_text,sizeErrorStr:o.data("max_size_error"),extErrorStr:o.data("extension_error"),maxFileCountErrorStr:o.data("max_files_error"),maxFileCount:1,showDelete:!1,showAbort:!1,showDone:!1,showFileCounter:!1,showStatusAfterSuccess:!0,onSubmit:function(e){o.parents(".um-modal-body").find(".um-error-block").remove()},onSuccess:function(e,t,a){o.selectedFiles=0,t.success&&0==t.success||void 0!==t.data.error?(o.parents(".um-modal-body").append('<div class="um-error-block">'+t.data.error+"</div>"),o.parents(".um-modal-body").find(".upload-statusbar").hide(0)):jQuery.each(t.data,function(e,t){o.parents(".um-modal-body").find(".um-modal-btn.um-finish-upload.disabled").removeClass("disabled"),o.parents(".um-modal-body").find(".ajax-upload-dragdrop,.upload-statusbar").hide(0),o.parents(".um-modal-body").find(".um-single-file-preview").show(0),"icon"==e?o.parents(".um-modal-body").find(".um-single-fileinfo i").removeClass().addClass(t):"icon_bg"==e?o.parents(".um-modal-body").find(".um-single-fileinfo span.icon").css({"background-color":t}):"filename"==e?o.parents(".um-modal-body").find(".um-single-fileinfo a").attr("data-file",t):"original_name"==e?(o.parents(".um-modal-body").find(".um-single-fileinfo a").attr("data-orignal-name",t),o.parents(".um-modal-body").find(".um-single-fileinfo span.filename").html(t)):"url"==e&&o.parents(".um-modal-body").find(".um-single-fileinfo a").attr("href",t)}),setTimeout(function(){um_modal_responsive()},1e3)},onError:function(e){console.log(e)}})}function initCrop_UM(){var t=jQuery(".um-modal .um-single-image-preview img").first(),e=jQuery(".um-modal .um-single-image-preview"),a=t.parent().attr("data-crop"),o=t.parent().attr("data-min_width"),i=t.parent().attr("data-min_height"),r=t.parent().attr("data-ratio");if(jQuery(".um-modal").find("#um_upload_single").attr("data-ratio"))r=(r=jQuery(".um-modal").find("#um_upload_single").attr("data-ratio")).split(":")[0];if(t.length&&""!=t.attr("src")){var d=jQuery(window).height()-(jQuery(".um-modal-footer a").height()+20)-50-jQuery(".um-modal-header:visible").height();if(t.css({height:"auto"}),e.css({height:"auto"}),jQuery(window).height()<=400?(e.css({height:d+"px","max-height":d+"px"}),t.css({height:"auto"})):(t.css({height:"auto","max-height":d+"px"}),e.css({height:t.height(),"max-height":d+"px"})),"square"==a)var u={minWidth:o,minHeight:i,dragCrop:!1,aspectRatio:1,zoomable:!1,rotatable:!1,dashed:!1,done:function(e){t.parent().attr("data-coord",Math.round(e.x)+","+Math.round(e.y)+","+Math.round(e.width)+","+Math.round(e.height))}};else if("cover"==a){0<Math.round(o/r)&&(i=Math.round(o/r));u={minWidth:o,minHeight:i,dragCrop:!1,aspectRatio:r,zoomable:!1,rotatable:!1,dashed:!1,done:function(e){t.parent().attr("data-coord",Math.round(e.x)+","+Math.round(e.y)+","+Math.round(e.width)+","+Math.round(e.height))}}}else if("user"==a)u={minWidth:o,minHeight:i,dragCrop:!0,aspectRatio:"auto",zoomable:!1,rotatable:!1,dashed:!1,done:function(e){t.parent().attr("data-coord",Math.round(e.x)+","+Math.round(e.y)+","+Math.round(e.width)+","+Math.round(e.height))}};0!=a&&(t.cropper(u),jQuery(".um-single-image-preview img.cropper-hidden").cropper("destroy"),jQuery(".um-single-image-preview img.lazyloaded").addClass("cropper-hidden"),jQuery(".um-single-image-preview img.lazyloaded").removeClass("lazyloaded"),jQuery(".um-single-image-preview .cropper-container").append('<div class="um-clear"></div>'))}}function um_new_modal(e,t,a,o){if(0==jQuery("body").find(".um-modal-overlay").length)if(jQuery(".tipsy").hide(),UM_hide_menus(),jQuery("body,html,textarea").css("overflow","hidden"),jQuery(document).bind("touchmove",function(e){e.preventDefault()}),jQuery(".um-modal").on("touchmove",function(e){e.stopPropagation()}),a?jQuery("body").append('<div class="um-modal-overlay"></div><div class="um-modal is-photo"></div>'):jQuery("body").append('<div class="um-modal-overlay"></div><div class="um-modal no-photo"></div>'),jQuery("#"+e).prependTo(".um-modal"),a){jQuery(".um-modal").find(".um-modal-photo").html("<img />");var i=jQuery(".um-modal-photo img"),r=jQuery(window).width()-60,d=jQuery(window).height()-.25*jQuery(window).height();i.attr("src",o),i.on("load",function(){jQuery("#"+e).show(),jQuery(".um-modal").show(),i.css({opacity:0}),i.css({"max-width":r}),i.css({"max-height":d}),jQuery(".um-modal").css({width:i.width(),"margin-left":"-"+i.width()/2+"px"}),i.animate({opacity:1},1e3),um_modal_responsive()})}else jQuery("#"+e).show(),jQuery(".um-modal").show(),um_modal_size(t),initImageUpload_UM(jQuery(".um-modal:visible").find(".um-single-image-upload")),initFileUpload_UM(jQuery(".um-modal:visible").find(".um-single-file-upload")),um_modal_responsive()}function um_modal_responsive(){var e=window.innerWidth||document.documentElement.clientWidth||document.body.clientWidth,t=window.innerHeight||document.documentElement.clientHeight||document.body.clientHeight,a=jQuery(".um-modal:visible");if(jQuery(".um-modal-body.photo:visible").length){a.removeClass("uimob340"),a.removeClass("uimob500");var o=jQuery(".um-modal-photo img"),i=e-60,r=t-.25*t;o.css({opacity:0}),o.css({"max-width":i}),o.css({"max-height":r}),jQuery(".um-modal").css({width:o.width(),"margin-left":"-"+o.width()/2+"px"}),o.animate({opacity:1},1e3);var d=(t-a.innerHeight())/2+"px";a.animate({bottom:d},300)}else if(a.length)if(a.removeClass("uimob340"),a.removeClass("uimob500"),e<=340)a.addClass("uimob340"),initCrop_UM(),a.animate({bottom:0},300);else if(e<=500)a.addClass("uimob500"),initCrop_UM(),a.animate({bottom:0},300);else if(e<=800){initCrop_UM();d=(t-a.innerHeight())/2+"px";a.animate({bottom:d},300)}else if(e<=960){initCrop_UM();d=(t-a.innerHeight())/2+"px";a.animate({bottom:d},300)}else if(960<e){initCrop_UM();d=(t-a.innerHeight())/2+"px";a.animate({bottom:d},300)}}function um_remove_modal(){jQuery("img.cropper-hidden").cropper("destroy"),jQuery("body,html,textarea").css("overflow","auto"),jQuery(document).unbind("touchmove"),jQuery('.um-modal div[id^="um_"]').hide().appendTo("body"),jQuery(".um-modal,.um-modal-overlay").remove()}function um_modal_size(e){jQuery(".um-modal:visible").addClass(e)}function um_modal_add_attr(e,t){jQuery(".um-modal:visible").data(e,t)}function prepare_Modal(){0==jQuery(".um-popup-overlay").length&&(jQuery("body").append('<div class="um-popup-overlay"></div>'),jQuery("body").append('<div class="um-popup"></div>'),jQuery(".um-popup").addClass("loading"),jQuery("body,html").css({overflow:"hidden"}))}function remove_Modal(){jQuery(".um-popup-overlay").length&&(jQuery(document).trigger("um_before_modal_removed"),jQuery(".tipsy").remove(),jQuery(".um-popup").empty().remove(),jQuery(".um-popup-overlay").empty().remove(),jQuery("body,html").css({overflow:"auto"}))}function show_Modal(e){jQuery(".um-popup-overlay").length&&(jQuery(".um-popup").removeClass("loading").html(e),jQuery(".um-tip-n").tipsy({gravity:"n",opacity:1,offset:3}),jQuery(".um-tip-w").tipsy({gravity:"w",opacity:1,offset:3}),jQuery(".um-tip-e").tipsy({gravity:"e",opacity:1,offset:3}),jQuery(".um-tip-s").tipsy({gravity:"s",opacity:1,offset:3}))}function responsive_Modal(){jQuery(".um-popup-overlay").length&&(ag_height=jQuery(window).height()-jQuery(".um-popup .um-popup-header").outerHeight()-jQuery(".um-popup .um-popup-footer").outerHeight()-80,350<ag_height&&(ag_height=350),jQuery(".um-popup-autogrow:visible").length?jQuery(".um-popup-autogrow:visible").css({height:ag_height+"px"}):jQuery(".um-popup-autogrow2:visible").length&&jQuery(".um-popup-autogrow2:visible").css({"max-height":ag_height+"px"}))}function um_reset_field(e){jQuery(e).find("div.um-field-area").find("input,textarea,select").not(":button, :submit, :reset, :hidden").val("").removeAttr("checked").removeAttr("selected")}function um_selected(e,t){if(e==t)return"selected='selected'"}jQuery(function(){jQuery(".um-search form *").keypress(function(e){if(13==e.which)return jQuery(".um-search form").submit(),!1}),2==jQuery("input[data-key=user_password],input[data-key=confirm_user_password]").length&&UM_check_password_matched()});
assets/js/um-modal.js CHANGED
@@ -9,7 +9,7 @@ jQuery(document).ready(function() {
9
  um_remove_modal();
10
  });
11
 
12
- jQuery(document).on('click', 'a[data-modal^="um_"], span[data-modal^="um_"], .um-modal a', function(e){
13
  e.preventDefault();
14
  return false;
15
  });
9
  um_remove_modal();
10
  });
11
 
12
+ jQuery(document).on('click', 'a[data-modal^="um_"], span[data-modal^="um_"], .um-modal:not(:has(.um-form)) a', function(e){
13
  e.preventDefault();
14
  return false;
15
  });
assets/js/um-modal.min.js CHANGED
@@ -1 +1 @@
1
- jQuery(document).ready(function(){jQuery(document).on("click",".um-popup-overlay",function(){remove_Modal()}),jQuery(document).on("click",'.um-modal-overlay, a[data-action="um_remove_modal"]',function(){um_remove_modal()}),jQuery(document).on("click",'a[data-modal^="um_"], span[data-modal^="um_"], .um-modal a',function(e){return e.preventDefault(),!1}),jQuery(document).on("click",".um-modal .um-single-file-preview a.cancel",function(e){e.preventDefault();var a=jQuery(this).parents(".um-modal-body"),t=jQuery(this).parents(".um-modal-body").find(".um-single-fileinfo a").attr("href"),i=a.find(".um-single-file-upload").data("set_mode");return jQuery.ajax({url:wp.ajax.settings.url,type:"post",data:{action:"um_remove_file",src:t,mode:i,nonce:um_scripts.nonce},success:function(){a.find(".um-single-file-preview").hide(),a.find(".ajax-upload-dragdrop").show(),a.find(".um-modal-btn.um-finish-upload").addClass("disabled"),um_modal_responsive()}}),!1}),jQuery(document).on("click",".um-modal .um-single-image-preview a.cancel",function(e){e.preventDefault();var a=jQuery(this).parents(".um-modal-body"),t=jQuery(this).parents(".um-modal-body").find(".um-single-image-preview img").attr("src"),i=a.find(".um-single-image-upload").data("set_mode");return jQuery.ajax({url:wp.ajax.settings.url,type:"post",data:{action:"um_remove_file",src:t,mode:i,nonce:um_scripts.nonce},success:function(){jQuery("img.cropper-hidden").cropper("destroy"),a.find(".um-single-image-preview img").attr("src",""),a.find(".um-single-image-preview").hide(),a.find(".ajax-upload-dragdrop").show(),a.find(".um-modal-btn.um-finish-upload").addClass("disabled"),um_modal_responsive()}}),!1}),jQuery(document).on("click",".um-finish-upload.file:not(.disabled)",function(){var e=jQuery(this).attr("data-key"),a=jQuery(this).parents(".um-modal-body").find(".um-single-file-preview").html();um_remove_modal(),jQuery(".um-single-file-preview[data-key="+e+"]").fadeIn().html(a);var t=jQuery(".um-field[data-key="+e+"]").find(".um-single-fileinfo a").data("file");jQuery(".um-single-file-preview[data-key="+e+"]").parents(".um-field").find(".um-btn-auto-width").html(jQuery(this).attr("data-change")),jQuery(".um-single-file-preview[data-key="+e+"]").parents(".um-field").find('input[type="hidden"]').val(t)}),jQuery(document).on("click",".um-finish-upload.image:not(.disabled)",function(){var a=jQuery(this),t=jQuery(this).attr("data-key"),e=jQuery(this).parents(".um-modal-body").find(".um-single-image-preview"),i=e.find("img").attr("src"),r=e.attr("data-coord"),u=e.find("img").data("file"),n=0;jQuery(this).parents("#um_upload_single").data("user_id")&&(n=jQuery(this).parents("#um_upload_single").data("user_id"));var m=0,o="";if(1===jQuery('div.um-field-image[data-key="'+t+'"]').length){var s=jQuery('div.um-field-image[data-key="'+t+'"]').closest(".um-form");m=s.find('input[name="form_id"]').val(),o=s.attr("data-mode")}r?(jQuery(this).html(jQuery(this).attr("data-processing")).addClass("disabled"),jQuery.ajax({url:wp.ajax.settings.url,type:"POST",dataType:"json",data:{action:"um_resize_image",src:i,coord:r,user_id:n,key:t,set_id:m,set_mode:o,nonce:um_scripts.nonce},success:function(e){e.success&&(d=new Date,"profile_photo"===t?jQuery(".um-profile-photo-img img").attr("src",e.data.image.source_url+"?"+d.getTime()):"cover_photo"===t&&(jQuery(".um-cover-e").empty().html('<img src="'+e.data.image.source_url+"?"+d.getTime()+'" alt="" />'),jQuery(".um").hasClass("um-editing")&&jQuery(".um-cover-overlay").show()),jQuery(".um-single-image-preview[data-key="+t+"]").fadeIn().find("img").attr("src",e.data.image.source_url+"?"+d.getTime()),um_remove_modal(),jQuery("img.cropper-invisible").remove(),jQuery(".um-single-image-preview[data-key="+t+"]").parents(".um-field").find(".um-btn-auto-width").html(a.attr("data-change")),jQuery(".um-single-image-preview[data-key="+t+"]").parents(".um-field").find('input[type="hidden"]').val(e.data.image.filename))}})):(d=new Date,jQuery(".um-single-image-preview[data-key="+t+"]").fadeIn().find("img").attr("src",i+"?"+d.getTime()),um_remove_modal(),jQuery(".um-single-image-preview[data-key="+t+"]").parents(".um-field").find(".um-btn-auto-width").html(a.attr("data-change")),jQuery(".um-single-image-preview[data-key="+t+"]").parents(".um-field").find("input[type=hidden]").val(u))}),jQuery(document.body).on("click",'a[data-modal^="um_"], span[data-modal^="um_"]',function(e){var a=jQuery(this).attr("data-modal"),t="normal";if(jQuery(this).data("modal-size"))t=jQuery(this).data("modal-size");jQuery(this).data("modal-copy")&&(jQuery("#"+a).html(jQuery(this).parents(".um-field").find(".um-modal-hidden-content").html()),jQuery(this).parents(".um-profile-photo").attr("data-user_id")&&jQuery("#"+a).attr("data-user_id",jQuery(this).parents(".um-profile-photo").attr("data-user_id")),jQuery(this).parents(".um-cover").attr("data-ratio")&&jQuery("#"+a).attr("data-ratio",jQuery(this).parents(".um-cover").attr("data-ratio")),jQuery(this).parents(".um-cover").attr("data-user_id")&&jQuery("#"+a).attr("data-user_id",jQuery(this).parents(".um-cover").attr("data-user_id")),0<jQuery("input[type=hidden][name='user_id']").length&&jQuery("#"+a).attr("data-user_id",jQuery("input[type=hidden][name='user_id']").val())),um_new_modal(a,t)})});
1
+ jQuery(document).ready(function(){jQuery(document).on("click",".um-popup-overlay",function(){remove_Modal()}),jQuery(document).on("click",'.um-modal-overlay, a[data-action="um_remove_modal"]',function(){um_remove_modal()}),jQuery(document).on("click",'a[data-modal^="um_"], span[data-modal^="um_"], .um-modal:not(:has(.um-form)) a',function(e){return e.preventDefault(),!1}),jQuery(document).on("click",".um-modal .um-single-file-preview a.cancel",function(e){e.preventDefault();var a=jQuery(this).parents(".um-modal-body"),t=jQuery(this).parents(".um-modal-body").find(".um-single-fileinfo a").attr("href"),i=a.find(".um-single-file-upload").data("set_mode");return jQuery.ajax({url:wp.ajax.settings.url,type:"post",data:{action:"um_remove_file",src:t,mode:i,nonce:um_scripts.nonce},success:function(){a.find(".um-single-file-preview").hide(),a.find(".ajax-upload-dragdrop").show(),a.find(".um-modal-btn.um-finish-upload").addClass("disabled"),um_modal_responsive()}}),!1}),jQuery(document).on("click",".um-modal .um-single-image-preview a.cancel",function(e){e.preventDefault();var a=jQuery(this).parents(".um-modal-body"),t=jQuery(this).parents(".um-modal-body").find(".um-single-image-preview img").attr("src"),i=a.find(".um-single-image-upload").data("set_mode");return jQuery.ajax({url:wp.ajax.settings.url,type:"post",data:{action:"um_remove_file",src:t,mode:i,nonce:um_scripts.nonce},success:function(){jQuery("img.cropper-hidden").cropper("destroy"),a.find(".um-single-image-preview img").attr("src",""),a.find(".um-single-image-preview").hide(),a.find(".ajax-upload-dragdrop").show(),a.find(".um-modal-btn.um-finish-upload").addClass("disabled"),um_modal_responsive()}}),!1}),jQuery(document).on("click",".um-finish-upload.file:not(.disabled)",function(){var e=jQuery(this).attr("data-key"),a=jQuery(this).parents(".um-modal-body").find(".um-single-file-preview").html();um_remove_modal(),jQuery(".um-single-file-preview[data-key="+e+"]").fadeIn().html(a);var t=jQuery(".um-field[data-key="+e+"]").find(".um-single-fileinfo a").data("file");jQuery(".um-single-file-preview[data-key="+e+"]").parents(".um-field").find(".um-btn-auto-width").html(jQuery(this).attr("data-change")),jQuery(".um-single-file-preview[data-key="+e+"]").parents(".um-field").find('input[type="hidden"]').val(t)}),jQuery(document).on("click",".um-finish-upload.image:not(.disabled)",function(){var a=jQuery(this),t=jQuery(this).attr("data-key"),e=jQuery(this).parents(".um-modal-body").find(".um-single-image-preview"),i=e.find("img").attr("src"),r=e.attr("data-coord"),u=e.find("img").data("file"),m=0;jQuery(this).parents("#um_upload_single").data("user_id")&&(m=jQuery(this).parents("#um_upload_single").data("user_id"));var n=0,o="";if(1===jQuery('div.um-field-image[data-key="'+t+'"]').length){var s=jQuery('div.um-field-image[data-key="'+t+'"]').closest(".um-form");n=s.find('input[name="form_id"]').val(),o=s.attr("data-mode")}r?(jQuery(this).html(jQuery(this).attr("data-processing")).addClass("disabled"),jQuery.ajax({url:wp.ajax.settings.url,type:"POST",dataType:"json",data:{action:"um_resize_image",src:i,coord:r,user_id:m,key:t,set_id:n,set_mode:o,nonce:um_scripts.nonce},success:function(e){e.success&&(d=new Date,"profile_photo"===t?jQuery(".um-profile-photo-img img").attr("src",e.data.image.source_url+"?"+d.getTime()):"cover_photo"===t&&(jQuery(".um-cover-e").empty().html('<img src="'+e.data.image.source_url+"?"+d.getTime()+'" alt="" />'),jQuery(".um").hasClass("um-editing")&&jQuery(".um-cover-overlay").show()),jQuery(".um-single-image-preview[data-key="+t+"]").fadeIn().find("img").attr("src",e.data.image.source_url+"?"+d.getTime()),um_remove_modal(),jQuery("img.cropper-invisible").remove(),jQuery(".um-single-image-preview[data-key="+t+"]").parents(".um-field").find(".um-btn-auto-width").html(a.attr("data-change")),jQuery(".um-single-image-preview[data-key="+t+"]").parents(".um-field").find('input[type="hidden"]').val(e.data.image.filename))}})):(d=new Date,jQuery(".um-single-image-preview[data-key="+t+"]").fadeIn().find("img").attr("src",i+"?"+d.getTime()),um_remove_modal(),jQuery(".um-single-image-preview[data-key="+t+"]").parents(".um-field").find(".um-btn-auto-width").html(a.attr("data-change")),jQuery(".um-single-image-preview[data-key="+t+"]").parents(".um-field").find("input[type=hidden]").val(u))}),jQuery(document.body).on("click",'a[data-modal^="um_"], span[data-modal^="um_"]',function(e){var a=jQuery(this).attr("data-modal"),t="normal";if(jQuery(this).data("modal-size"))t=jQuery(this).data("modal-size");jQuery(this).data("modal-copy")&&(jQuery("#"+a).html(jQuery(this).parents(".um-field").find(".um-modal-hidden-content").html()),jQuery(this).parents(".um-profile-photo").attr("data-user_id")&&jQuery("#"+a).attr("data-user_id",jQuery(this).parents(".um-profile-photo").attr("data-user_id")),jQuery(this).parents(".um-cover").attr("data-ratio")&&jQuery("#"+a).attr("data-ratio",jQuery(this).parents(".um-cover").attr("data-ratio")),jQuery(this).parents(".um-cover").attr("data-user_id")&&jQuery("#"+a).attr("data-user_id",jQuery(this).parents(".um-cover").attr("data-user_id")),0<jQuery("input[type=hidden][name='user_id']").length&&jQuery("#"+a).attr("data-user_id",jQuery("input[type=hidden][name='user_id']").val())),um_new_modal(a,t)})});
assets/js/um-profile.js CHANGED
@@ -9,7 +9,7 @@ jQuery(document).ready(function() {
9
  });
10
 
11
  if ( jQuery('.um-profile.um-viewing .um-profile-body').length && jQuery('.um-profile.um-viewing .um-profile-body').find('.um-field').length == 0 ) {
12
- jQuery('.um-row-heading,.um-row').remove();
13
  jQuery('.um-profile-note').show();
14
  }
15
 
@@ -129,7 +129,7 @@ jQuery(document).ready(function() {
129
  return false;
130
  }
131
  });
132
-
133
  /**
134
  * Fix profile nav links for iPhone
135
  * @see https://www.html5rocks.com/en/mobile/touchandmouse/
9
  });
10
 
11
  if ( jQuery('.um-profile.um-viewing .um-profile-body').length && jQuery('.um-profile.um-viewing .um-profile-body').find('.um-field').length == 0 ) {
12
+ jQuery('.um-profile.um-viewing .um-profile-body').find('.um-row-heading,.um-row').remove();
13
  jQuery('.um-profile-note').show();
14
  }
15
 
129
  return false;
130
  }
131
  });
132
+
133
  /**
134
  * Fix profile nav links for iPhone
135
  * @see https://www.html5rocks.com/en/mobile/touchandmouse/
assets/js/um-profile.min.js CHANGED
@@ -1 +1 @@
1
- jQuery(document).ready(function(){jQuery(".um-profile.um-viewing .um-profile-body .um-row").each(function(){var e=jQuery(this);0==e.find(".um-field").length&&(e.prev(".um-row-heading").remove(),e.remove())}),jQuery(".um-profile.um-viewing .um-profile-body").length&&0==jQuery(".um-profile.um-viewing .um-profile-body").find(".um-field").length&&(jQuery(".um-row-heading,.um-row").remove(),jQuery(".um-profile-note").show()),jQuery(document.body).on("click",".um-profile-save",function(e){return e.preventDefault(),jQuery(this).parents(".um").find("form").submit(),!1}),jQuery(document.body).on("click",".um-profile-edit-a",function(e){jQuery(this).addClass("active")}),jQuery(document.body).on("click",".um-cover a.um-cover-add, .um-photo a",function(e){e.preventDefault()}),jQuery(document.body).on("click",".um-photo-modal",function(e){e.preventDefault();var t=jQuery(this).attr("data-src");return um_new_modal("um_view_photo","fit",!0,t),!1}),jQuery(document.body).on("click",".um-reset-profile-photo",function(e){return jQuery(".um-profile-photo-img img").attr("src",jQuery(this).attr("data-default_src")),user_id=jQuery(this).attr("data-user_id"),metakey="profile_photo",UM_hide_menus(),jQuery.ajax({url:wp.ajax.settings.url,type:"post",data:{action:"um_delete_profile_photo",metakey:metakey,user_id:user_id,nonce:um_scripts.nonce}}),jQuery(this).parents("li").hide(),!1}),jQuery(document.body).on("click",".um-reset-cover-photo",function(e){var t=jQuery(this);return jQuery(".um-cover-overlay").hide(),jQuery(".um-cover-e").html('<a href="javascript:void(0);" class="um-cover-add" style="height: 370px;"><span class="um-cover-add-i"><i class="um-icon-plus um-tip-n" original-title="Upload a cover photo"></i></span></a>'),um_responsive(),user_id=jQuery(this).attr("data-user_id"),metakey="cover_photo",jQuery.ajax({url:wp.ajax.settings.url,type:"post",data:{action:"um_delete_cover_photo",metakey:metakey,user_id:user_id,nonce:um_scripts.nonce},success:function(e){t.hide()}}),UM_hide_menus(),!1}),jQuery(document.body).on("change, keyup",'textarea[id="um-meta-bio"]',function(){if(void 0!==jQuery(this).val()){var e=jQuery(this).attr("data-character-limit")-jQuery(this).val().length;jQuery("span.um-meta-bio-character span.um-bio-limit").text(e),e<5?jQuery("span.um-meta-bio-character").css("color","red"):jQuery("span.um-meta-bio-character").css("color","")}}),jQuery('textarea[id="um-meta-bio"]').trigger("change"),jQuery(".um-profile-edit a.um_delete-item").click(function(e){if(e.preventDefault(),!confirm(wp.i18n.__("Are you sure that you want to delete this user?","ultimate-member")))return!1}),jQuery(".um-profile-nav a").on("touchend",function(e){e.currentTarget.click()})});
1
+ jQuery(document).ready(function(){jQuery(".um-profile.um-viewing .um-profile-body .um-row").each(function(){var e=jQuery(this);0==e.find(".um-field").length&&(e.prev(".um-row-heading").remove(),e.remove())}),jQuery(".um-profile.um-viewing .um-profile-body").length&&0==jQuery(".um-profile.um-viewing .um-profile-body").find(".um-field").length&&(jQuery(".um-profile.um-viewing .um-profile-body").find(".um-row-heading,.um-row").remove(),jQuery(".um-profile-note").show()),jQuery(document.body).on("click",".um-profile-save",function(e){return e.preventDefault(),jQuery(this).parents(".um").find("form").submit(),!1}),jQuery(document.body).on("click",".um-profile-edit-a",function(e){jQuery(this).addClass("active")}),jQuery(document.body).on("click",".um-cover a.um-cover-add, .um-photo a",function(e){e.preventDefault()}),jQuery(document.body).on("click",".um-photo-modal",function(e){e.preventDefault();var t=jQuery(this).attr("data-src");return um_new_modal("um_view_photo","fit",!0,t),!1}),jQuery(document.body).on("click",".um-reset-profile-photo",function(e){return jQuery(".um-profile-photo-img img").attr("src",jQuery(this).attr("data-default_src")),user_id=jQuery(this).attr("data-user_id"),metakey="profile_photo",UM_hide_menus(),jQuery.ajax({url:wp.ajax.settings.url,type:"post",data:{action:"um_delete_profile_photo",metakey:metakey,user_id:user_id,nonce:um_scripts.nonce}}),jQuery(this).parents("li").hide(),!1}),jQuery(document.body).on("click",".um-reset-cover-photo",function(e){var t=jQuery(this);return jQuery(".um-cover-overlay").hide(),jQuery(".um-cover-e").html('<a href="javascript:void(0);" class="um-cover-add" style="height: 370px;"><span class="um-cover-add-i"><i class="um-icon-plus um-tip-n" original-title="Upload a cover photo"></i></span></a>'),um_responsive(),user_id=jQuery(this).attr("data-user_id"),metakey="cover_photo",jQuery.ajax({url:wp.ajax.settings.url,type:"post",data:{action:"um_delete_cover_photo",metakey:metakey,user_id:user_id,nonce:um_scripts.nonce},success:function(e){t.hide()}}),UM_hide_menus(),!1}),jQuery(document.body).on("change, keyup",'textarea[id="um-meta-bio"]',function(){if(void 0!==jQuery(this).val()){var e=jQuery(this).attr("data-character-limit")-jQuery(this).val().length;jQuery("span.um-meta-bio-character span.um-bio-limit").text(e),e<5?jQuery("span.um-meta-bio-character").css("color","red"):jQuery("span.um-meta-bio-character").css("color","")}}),jQuery('textarea[id="um-meta-bio"]').trigger("change"),jQuery(".um-profile-edit a.um_delete-item").click(function(e){if(e.preventDefault(),!confirm(wp.i18n.__("Are you sure that you want to delete this user?","ultimate-member")))return!1}),jQuery(".um-profile-nav a").on("touchend",function(e){e.currentTarget.click()})});
includes/admin/core/class-admin-builder.php CHANGED
@@ -1055,7 +1055,12 @@ if ( ! class_exists( 'um\admin\core\Admin_Builder' ) ) {
1055
  }
1056
 
1057
  $output = '<div class="um-admin-preview-overlay"></div>';
1058
- $output .= do_shortcode('[ultimatemember form_id="' . $arg1 . '" /]');
 
 
 
 
 
1059
 
1060
  break;
1061
 
1055
  }
1056
 
1057
  $output = '<div class="um-admin-preview-overlay"></div>';
1058
+
1059
+ if ( version_compare( get_bloginfo('version'),'5.4', '<' ) ) {
1060
+ $output .= do_shortcode('[ultimatemember form_id="' . $arg1 . '" /]');
1061
+ } else {
1062
+ $output .= apply_shortcodes('[ultimatemember form_id="' . $arg1 . '" /]');
1063
+ }
1064
 
1065
  break;
1066
 
includes/admin/core/class-admin-forms.php CHANGED
@@ -1092,7 +1092,7 @@ if ( ! class_exists( 'um\admin\core\Admin_Forms' ) ) {
1092
  $columns = ( ! empty( $field_data['columns'] ) && is_numeric( $field_data['columns'] ) ) ? $field_data['columns'] : 1;
1093
  while ( $i < $columns ) {
1094
  $per_page = ceil( count( $field_data['options'] ) / $columns );
1095
- $section_fields_per_page = array_slice( $field_data['options'], $i*$per_page, $per_page );
1096
  $html .= '<span class="um-form-fields-section" style="width:' . floor( 100 / $columns ) . '% !important;">';
1097
 
1098
  foreach ( $section_fields_per_page as $k => $title ) {
@@ -1362,6 +1362,11 @@ if ( ! class_exists( 'um\admin\core\Admin_Forms' ) ) {
1362
  }
1363
 
1364
 
 
 
 
 
 
1365
  function render_md_default_filters( $field_data ) {
1366
  if ( empty( $field_data['id'] ) ) {
1367
  return false;
@@ -1445,6 +1450,11 @@ if ( ! class_exists( 'um\admin\core\Admin_Forms' ) ) {
1445
  }
1446
 
1447
 
 
 
 
 
 
1448
  function render_md_sorting_fields( $field_data ) {
1449
  if ( empty( $field_data['id'] ) ) {
1450
  return false;
@@ -1560,6 +1570,7 @@ if ( ! class_exists( 'um\admin\core\Admin_Forms' ) ) {
1560
  return $html;
1561
  }
1562
 
 
1563
  /**
1564
  * Get field value
1565
  *
@@ -1568,8 +1579,17 @@ if ( ! class_exists( 'um\admin\core\Admin_Forms' ) ) {
1568
  * @return string|array
1569
  */
1570
  function get_field_value( $field_data, $i = '' ) {
1571
- $default = ( $field_data['type'] == 'multi_checkbox' ) ? array() : '';
1572
- $default = isset( $field_data[ 'default' . $i ] ) ? $field_data[ 'default' . $i ] : $default;
 
 
 
 
 
 
 
 
 
1573
 
1574
  if ( $field_data['type'] == 'checkbox' || $field_data['type'] == 'multi_checkbox' ) {
1575
  $value = ( isset( $field_data[ 'value' . $i ] ) && '' !== $field_data[ 'value' . $i ] ) ? $field_data[ 'value' . $i ] : $default;
1092
  $columns = ( ! empty( $field_data['columns'] ) && is_numeric( $field_data['columns'] ) ) ? $field_data['columns'] : 1;
1093
  while ( $i < $columns ) {
1094
  $per_page = ceil( count( $field_data['options'] ) / $columns );
1095
+ $section_fields_per_page = array_slice( $field_data['options'], $i*$per_page, $per_page, true );
1096
  $html .= '<span class="um-form-fields-section" style="width:' . floor( 100 / $columns ) . '% !important;">';
1097
 
1098
  foreach ( $section_fields_per_page as $k => $title ) {
1362
  }
1363
 
1364
 
1365
+ /**
1366
+ * @param $field_data
1367
+ *
1368
+ * @return string
1369
+ */
1370
  function render_md_default_filters( $field_data ) {
1371
  if ( empty( $field_data['id'] ) ) {
1372
  return false;
1450
  }
1451
 
1452
 
1453
+ /**
1454
+ * @param $field_data
1455
+ *
1456
+ * @return string
1457
+ */
1458
  function render_md_sorting_fields( $field_data ) {
1459
  if ( empty( $field_data['id'] ) ) {
1460
  return false;
1570
  return $html;
1571
  }
1572
 
1573
+
1574
  /**
1575
  * Get field value
1576
  *
1579
  * @return string|array
1580
  */
1581
  function get_field_value( $field_data, $i = '' ) {
1582
+
1583
+ $default = '';
1584
+ if ( $field_data['type'] === 'multi_checkbox' ) {
1585
+ $default = array();
1586
+ if ( isset( $field_data['default'] ) ) {
1587
+ $default = is_array( $field_data['default'] ) ? $field_data['default'] : array( $field_data['default'] );
1588
+ }
1589
+ }
1590
+ if ( isset( $field_data[ 'default' . $i ] ) ) {
1591
+ $default = $field_data[ 'default' . $i ];
1592
+ }
1593
 
1594
  if ( $field_data['type'] == 'checkbox' || $field_data['type'] == 'multi_checkbox' ) {
1595
  $value = ( isset( $field_data[ 'value' . $i ] ) && '' !== $field_data[ 'value' . $i ] ) ? $field_data[ 'value' . $i ] : $default;
includes/admin/core/class-admin-metabox.php CHANGED
@@ -10,6 +10,7 @@ if ( ! class_exists( 'um\admin\core\Admin_Metabox' ) ) {
10
 
11
  /**
12
  * Class Admin_Metabox
 
13
  * @package um\admin\core
14
  */
15
  class Admin_Metabox {
@@ -19,7 +20,17 @@ if ( ! class_exists( 'um\admin\core\Admin_Metabox' ) ) {
19
  * @var bool
20
  */
21
  private $form_nonce_added = false;
 
 
 
 
 
22
  private $directory_nonce_added = false;
 
 
 
 
 
23
  private $custom_nonce_added = false;
24
 
25
 
@@ -1073,6 +1084,7 @@ if ( ! class_exists( 'um\admin\core\Admin_Metabox' ) ) {
1073
  delete_post_meta( $post_id, '_um_roles_can_search' );
1074
  delete_post_meta( $post_id, '_um_roles_can_filter' );
1075
  delete_post_meta( $post_id, '_um_show_these_users' );
 
1076
 
1077
  delete_post_meta( $post_id, '_um_search_filters' );
1078
  delete_post_meta( $post_id, '_um_search_filters_gmt' );
@@ -1084,6 +1096,10 @@ if ( ! class_exists( 'um\admin\core\Admin_Metabox' ) ) {
1084
  $v = preg_split( '/[\r\n]+/', $v, -1, PREG_SPLIT_NO_EMPTY );
1085
  }
1086
 
 
 
 
 
1087
  if ( strstr( $k, '_um_' ) ) {
1088
 
1089
  if ( $k === '_um_is_default' ) {
@@ -2249,15 +2265,24 @@ if ( ! class_exists( 'um\admin\core\Admin_Metabox' ) ) {
2249
  break;
2250
 
2251
  case '_public':
2252
- ?>
2253
-
2254
- <p><label for="_public"><?php _e( 'Privacy', 'ultimate-member' ) ?> <?php UM()->tooltip( __( 'Field privacy allows you to select who can view this field on the front-end. The site admin can view all fields regardless of the option set here.', 'ultimate-member' ) ); ?></label>
2255
- <select name="_public" id="_public" class="um-adm-conditional" data-cond1='-2' data-cond1-show='_roles' data-cond2='-3' data-cond2-show='_roles' style="width: 100%">
2256
- <option value="1" <?php selected( 1, $this->edit_mode_value ); ?>><?php _e( 'Everyone', 'ultimate-member' ) ?></option>
2257
- <option value="2" <?php selected( 2, $this->edit_mode_value ); ?>><?php _e( 'Members', 'ultimate-member' ) ?></option>
2258
- <option value="-1" <?php selected( -1, $this->edit_mode_value ); ?>><?php _e( 'Only visible to profile owner and admins', 'ultimate-member' ) ?></option>
2259
- <option value="-3" <?php selected( -3, $this->edit_mode_value ); ?>><?php _e( 'Only visible to profile owner and specific roles', 'ultimate-member' ) ?></option>
2260
- <option value="-2" <?php selected( -2, $this->edit_mode_value ); ?>><?php _e( 'Only specific member roles', 'ultimate-member' ) ?></option>
 
 
 
 
 
 
 
 
 
2261
  </select>
2262
  </p>
2263
 
10
 
11
  /**
12
  * Class Admin_Metabox
13
+ *
14
  * @package um\admin\core
15
  */
16
  class Admin_Metabox {
20
  * @var bool
21
  */
22
  private $form_nonce_added = false;
23
+
24
+
25
+ /**
26
+ * @var bool
27
+ */
28
  private $directory_nonce_added = false;
29
+
30
+
31
+ /**
32
+ * @var bool
33
+ */
34
  private $custom_nonce_added = false;
35
 
36
 
1084
  delete_post_meta( $post_id, '_um_roles_can_search' );
1085
  delete_post_meta( $post_id, '_um_roles_can_filter' );
1086
  delete_post_meta( $post_id, '_um_show_these_users' );
1087
+ delete_post_meta( $post_id, '_um_exclude_these_users' );
1088
 
1089
  delete_post_meta( $post_id, '_um_search_filters' );
1090
  delete_post_meta( $post_id, '_um_search_filters_gmt' );
1096
  $v = preg_split( '/[\r\n]+/', $v, -1, PREG_SPLIT_NO_EMPTY );
1097
  }
1098
 
1099
+ if ( $k == '_um_exclude_these_users' && trim( $_POST['um_metadata'][ $k ] ) ) {
1100
+ $v = preg_split( '/[\r\n]+/', $v, -1, PREG_SPLIT_NO_EMPTY );
1101
+ }
1102
+
1103
  if ( strstr( $k, '_um_' ) ) {
1104
 
1105
  if ( $k === '_um_is_default' ) {
2265
  break;
2266
 
2267
  case '_public':
2268
+ $privacy_options = array(
2269
+ '1' => __( 'Everyone', 'ultimate-member' ),
2270
+ '2' => __( 'Members', 'ultimate-member' ),
2271
+ '-1' => __( 'Only visible to profile owner and admins', 'ultimate-member' ),
2272
+ '-3' => __( 'Only visible to profile owner and specific roles', 'ultimate-member' ),
2273
+ '-2' => __( 'Only specific member roles', 'ultimate-member' ),
2274
+ );
2275
+
2276
+ $privacy_options = apply_filters( 'um_field_privacy_options', $privacy_options ); ?>
2277
+
2278
+ <p>
2279
+ <label for="_public"><?php _e( 'Privacy', 'ultimate-member' ) ?> <?php UM()->tooltip( __( 'Field privacy allows you to select who can view this field on the front-end. The site admin can view all fields regardless of the option set here.', 'ultimate-member' ) ); ?></label>
2280
+ <select name="_public" id="_public" class="um-adm-conditional" data-cond1="-2" data-cond1-show="_roles" data-cond2="-3" data-cond2-show="_roles" style="width: 100%">
2281
+ <?php foreach ( $privacy_options as $value => $title ) { ?>
2282
+ <option value="<?php echo esc_attr( $value ) ?>" <?php selected( $value, $this->edit_mode_value ); ?>>
2283
+ <?php echo $title ?>
2284
+ </option>
2285
+ <?php } ?>
2286
  </select>
2287
  </p>
2288
 
includes/admin/core/class-admin-navmenu.php CHANGED
@@ -18,20 +18,133 @@ if ( ! class_exists( 'um\admin\core\Admin_Navmenu' ) ) {
18
  protected static $fields = array();
19
 
20
 
 
 
 
21
  function __construct() {
 
 
22
  self::$fields = array(
23
  'um_nav_public' => __( 'Display Mode', 'ultimate-member' ),
24
  'um_nav_roles' => __( 'By Role', 'ultimate-member' )
25
  );
26
 
 
 
 
 
 
 
 
27
  add_action( 'wp_update_nav_menu_item', array( &$this, '_save' ), 10, 3 );
28
- //add_filter( 'manage_nav-menus_columns', array( &$this, '_columns' ), 99 );
29
 
30
- add_action( 'load-nav-menus.php', array( &$this, 'enqueue_nav_menus_scripts' ) );
31
- add_action( 'admin_footer-nav-menus.php', array( &$this, '_wp_template' ) );
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
32
  }
33
 
34
 
 
 
 
 
 
 
 
 
 
 
 
 
 
35
  /**
36
  * @param $menu_id
37
  * @param $menu_item_db_id
@@ -69,18 +182,6 @@ if ( ! class_exists( 'um\admin\core\Admin_Navmenu' ) ) {
69
  }
70
 
71
 
72
- /**
73
- * @param $columns
74
- *
75
- * @return array
76
- */
77
- function _columns( $columns ) {
78
- $columns = array_merge( $columns, self::$fields );
79
-
80
- return $columns;
81
- }
82
-
83
-
84
  /**
85
  *
86
  */
18
  protected static $fields = array();
19
 
20
 
21
+ /**
22
+ * Admin_Navmenu constructor.
23
+ */
24
  function __construct() {
25
+ global $wp_version;
26
+
27
  self::$fields = array(
28
  'um_nav_public' => __( 'Display Mode', 'ultimate-member' ),
29
  'um_nav_roles' => __( 'By Role', 'ultimate-member' )
30
  );
31
 
32
+ if ( $wp_version < '5.4' ) {
33
+ add_action( 'admin_footer-nav-menus.php', array( &$this, '_wp_template' ) );
34
+ add_action( 'load-nav-menus.php', array( &$this, 'enqueue_nav_menus_scripts' ) );
35
+ } else {
36
+ add_action( 'load-customize.php', array( &$this, 'enqueue_nav_menus_scripts' ) );
37
+ }
38
+
39
  add_action( 'wp_update_nav_menu_item', array( &$this, '_save' ), 10, 3 );
 
40
 
41
+ add_action( 'wp_nav_menu_item_custom_fields', array( $this, 'wp_nav_menu_item_custom_fields' ), 20, 5 );
42
+ //add_action( 'wp_nav_menu_item_custom_fields_customize_template', array( $this, 'wp_nav_menu_item_custom_fields_customize_template' ), 20 ); //waiting wp.org answer
43
+ }
44
+
45
+
46
+ /**
47
+ * Fires just before the move buttons of a nav menu item in the menu editor.
48
+ * Adds block "Ultimate Member Menu Settings"
49
+ *
50
+ * @since WP 5.4.0
51
+ * @hook wp_nav_menu_item_custom_fields
52
+ *
53
+ * @param int $item_id Menu item ID.
54
+ * @param \WP_Post $item Menu item data object.
55
+ * @param int $depth Depth of menu item. Used for padding.
56
+ * @param \stdClass $args An object of menu item arguments.
57
+ * @param int $id Nav menu ID.
58
+ */
59
+ function wp_nav_menu_item_custom_fields( $item_id, $item, $depth, $args, $id ) {
60
+
61
+ $um_nav_public = get_post_meta( $item->ID, 'menu-item-um_nav_public', true );
62
+ $_nav_roles_meta = get_post_meta( $item->ID, 'menu-item-um_nav_roles', true );
63
+ $um_nav_roles = array();
64
+ if ( $_nav_roles_meta ) {
65
+ foreach ( $_nav_roles_meta as $key => $value ) {
66
+ if ( is_int( $key ) ) {
67
+ $um_nav_roles[] = $value;
68
+ }
69
+ }
70
+ }
71
+ $options = UM()->roles()->get_roles( false, array( 'administrator' ) );
72
+ ?>
73
+ <div class="um-nav-edit">
74
+ <div class="clear"></div>
75
+ <h4 style="margin-bottom: 0.6em;"><?php _e( 'Ultimate Member Menu Settings', 'ultimate-member' ) ?></h4>
76
+
77
+ <p class="description description-wide um-nav-mode">
78
+ <label for="edit-menu-item-um_nav_public-<?php echo esc_attr( $item_id ); ?>">
79
+ <?php _e( "Who can see this menu link?", 'ultimate-member' ); ?><br/>
80
+ <select id="edit-menu-item-um_nav_public-<?php echo esc_attr( $item_id ); ?>" name="menu-item-um_nav_public[<?php echo esc_attr( $item_id ); ?>]" style="width:100%;">
81
+ <option value="0" <?php selected( $um_nav_public, 0 ); ?>><?php _e( 'Everyone', 'ultimate-member' ) ?></option>
82
+ <option value="1" <?php selected( $um_nav_public, 1 ); ?>><?php _e( 'Logged Out Users', 'ultimate-member' ) ?></option>
83
+ <option value="2" <?php selected( $um_nav_public, 2 ); ?>><?php _e( 'Logged In Users', 'ultimate-member' ) ?></option>
84
+ </select>
85
+ </label>
86
+ </p>
87
+
88
+ <p class="description description-wide um-nav-roles" <?php echo $um_nav_public == 2 ? 'style="display: block;"' : ''; ?>><?php _e( "Select the member roles that can see this link", 'ultimate-member' ) ?><br>
89
+
90
+ <?php
91
+ $i = 0;
92
+ $html = '';
93
+ $columns = apply_filters( 'wp_nav_menu_item:um_nav_columns', 2, $item_id, $item );
94
+ $per_page = ceil( count( $options ) / $columns );
95
+ while ( $i < $columns ) {
96
+ $section_fields_per_page = array_slice( $options, $i * $per_page, $per_page );
97
+ $html .= '<span class="um-form-fields-section" style="width:' . floor( 100 / $columns ) . '% !important;">';
98
+
99
+ foreach ( $section_fields_per_page as $k => $title ) {
100
+ $id_attr = ' id="edit-menu-item-um_nav_roles-' . $item_id . '_' . $k . '" ';
101
+ $for_attr = ' for="edit-menu-item-um_nav_roles-' . $item_id . '_' . $k . '" ';
102
+ $checked_attr = checked( in_array($k,$um_nav_roles), true, false );
103
+ $html .= "<label {$for_attr}> <input type='checkbox' {$id_attr} name='menu-item-um_nav_roles[{$item_id}][{$k}]' value='1' {$checked_attr} /> <span>{$title}</span> </label>";
104
+ }
105
+
106
+ $html .= '</span>';
107
+ $i++;
108
+ }
109
+ echo $html;
110
+ ?>
111
+ </p>
112
+ <div class="clear"></div>
113
+ </div>
114
+ <?php
115
+ }
116
+
117
+
118
+ /**
119
+ *
120
+ */
121
+ function wp_nav_menu_item_custom_fields_customize_template() {
122
+ ?>
123
+ <div class="um-nav-edit">
124
+ <div class="clear"></div>
125
+ <h4 style="margin-bottom: 0.6em;"><?php _e( 'Ultimate Member Menu Settings', 'ultimate-member' ) ?></h4>
126
+
127
+ <# console.log( data ); #>
128
+
129
+ <div class="clear"></div>
130
+ </div>
131
+ <?php
132
  }
133
 
134
 
135
+
136
+
137
+
138
+
139
+
140
+
141
+ /**
142
+ *
143
+ * Backward compatibility with WP < 5.4
144
+ *
145
+ */
146
+
147
+
148
  /**
149
  * @param $menu_id
150
  * @param $menu_item_db_id
182
  }
183
 
184
 
 
 
 
 
 
 
 
 
 
 
 
 
185
  /**
186
  *
187
  */
includes/admin/core/class-admin-settings.php CHANGED
@@ -637,63 +637,63 @@ if ( ! class_exists( 'um\admin\core\Admin_Settings' ) ) {
637
  'title' => __( 'Account', 'ultimate-member' ),
638
  'fields' => array(
639
  array(
640
- 'id' => 'account_tab_password',
641
- 'type' => 'checkbox',
642
- 'label' => __( 'Password Account Tab','ultimate-member' ),
643
- 'tooltip' => 'Enable/disable the Password account tab in account page',
644
  ),
645
  array(
646
- 'id' => 'account_tab_privacy',
647
- 'type' => 'checkbox',
648
- 'label' => __( 'Privacy Account Tab','ultimate-member' ),
649
- 'tooltip' => __('Enable/disable the Privacy account tab in account page','ultimate-member'),
650
  ),
651
  array(
652
- 'id' => 'account_tab_notifications',
653
- 'type' => 'checkbox',
654
- 'label' => __( 'Notifications Account Tab','ultimate-member' ),
655
- 'tooltip' => __('Enable/disable the Notifications account tab in account page','ultimate-member'),
656
  ),
657
  array(
658
- 'id' => 'account_tab_delete',
659
- 'type' => 'checkbox',
660
- 'label' => __( 'Delete Account Tab','ultimate-member' ),
661
- 'tooltip' => __('Enable/disable the Delete account tab in account page','ultimate-member'),
662
  ),
663
  array(
664
- 'id' => 'delete_account_text',
665
- 'type' => 'textarea', // bug with wp 4.4? should be editor
666
- 'label' => __( 'Account Deletion Custom Text','ultimate-member' ),
667
- 'tooltip' => __('This is custom text that will be displayed to users before they delete their accounts from your site','ultimate-member'),
668
- 'args' => array(
669
  'textarea_rows' => 6
670
  ),
671
  ),
672
  array(
673
- 'id' => 'account_name',
674
- 'type' => 'checkbox',
675
- 'label' => __( 'Add a First & Last Name fields','ultimate-member' ),
676
- 'tooltip' => __('Whether to enable these fields on the user account page by default or hide them.','ultimate-member'),
677
  ),
678
  array(
679
- 'id' => 'account_name_disable',
680
- 'type' => 'checkbox',
681
- 'label' => __( 'Disable First & Last Name fields','ultimate-member' ),
682
- 'tooltip' => __('Whether to allow users changing their first and last name in account page.','ultimate-member'),
683
- 'conditional' => array( 'account_name', '=', '1' ),
684
  ),
685
  array(
686
- 'id' => 'account_name_require',
687
- 'type' => 'checkbox',
688
- 'label' => __( 'Require First & Last Name','ultimate-member' ),
689
- 'tooltip' => __('Require first and last name?','ultimate-member'),
690
- 'conditional' => array( 'account_name', '=', '1' ),
691
  ),
692
  array(
693
- 'id' => 'account_email',
694
- 'type' => 'checkbox',
695
- 'label' => __( 'Allow users to change e-mail','ultimate-member' ),
696
- 'tooltip' => __( 'Whether to allow users changing their email in account page.', 'ultimate-member' ),
697
  ),
698
  array(
699
  'id' => 'account_general_password',
@@ -731,63 +731,63 @@ if ( ! class_exists( 'um\admin\core\Admin_Settings' ) ) {
731
  'title' => __( 'Uploads', 'ultimate-member' ),
732
  'fields' => array(
733
  array(
734
- 'id' => 'profile_photo_max_size',
735
- 'type' => 'text',
736
- 'size' => 'small',
737
- 'label' => __( 'Profile Photo Maximum File Size (bytes)', 'ultimate-member' ),
738
- 'tooltip' => __( 'Sets a maximum size for the uploaded photo', 'ultimate-member' ),
739
  ),
740
 
741
  array(
742
- 'id' => 'cover_photo_max_size',
743
- 'type' => 'text',
744
- 'size' => 'small',
745
- 'label' => __( 'Cover Photo Maximum File Size (bytes)', 'ultimate-member' ),
746
- 'tooltip' => __( 'Sets a maximum size for the uploaded cover', 'ultimate-member' ),
747
  ),
748
  array(
749
- 'id' => 'photo_thumb_sizes',
750
- 'type' => 'multi_text',
751
- 'size' => 'small',
752
- 'label' => __( 'Profile Photo Thumbnail Sizes (px)','ultimate-member' ),
753
- 'tooltip' => __( 'Here you can define which thumbnail sizes will be created for each profile photo upload.','ultimate-member' ),
754
- 'validate' => 'numeric',
755
- 'add_text' => __('Add New Size','ultimate-member'),
756
- 'show_default_number' => 1,
757
  ),
758
  array(
759
- 'id' => 'cover_thumb_sizes',
760
- 'type' => 'multi_text',
761
- 'size' => 'small',
762
- 'label' => __( 'Cover Photo Thumbnail Sizes (px)','ultimate-member' ),
763
- 'tooltip' => __( 'Here you can define which thumbnail sizes will be created for each cover photo upload.','ultimate-member' ),
764
- 'validate' => 'numeric',
765
- 'add_text' => __('Add New Size','ultimate-member'),
766
- 'show_default_number' => 1,
767
  ),
768
 
769
  array(
770
- 'id' => 'image_compression',
771
- 'type' => 'text',
772
- 'size' => 'small',
773
- 'label' => __( 'Image Quality','ultimate-member'),
774
- 'tooltip' => __( 'Quality is used to determine quality of image uploads, and ranges from 0 (worst quality, smaller file) to 100 (best quality, biggest file). The default range is 60.', 'ultimate-member' ),
775
  ),
776
 
777
  array(
778
- 'id' => 'image_max_width',
779
- 'type' => 'text',
780
- 'size' => 'small',
781
- 'label' => __( 'Image Upload Maximum Width (px)', 'ultimate-member' ),
782
- 'tooltip' => __( 'Any image upload above this width will be resized to this limit automatically.', 'ultimate-member' ),
783
  ),
784
 
785
  array(
786
- 'id' => 'cover_min_width',
787
- 'type' => 'text',
788
- 'size' => 'small',
789
- 'label' => __( 'Cover Photo Minimum Width (px)', 'ultimate-member' ),
790
- 'tooltip' => __( 'This will be the minimum width for cover photo uploads', 'ultimate-member' ),
791
  ),
792
  )
793
  )
637
  'title' => __( 'Account', 'ultimate-member' ),
638
  'fields' => array(
639
  array(
640
+ 'id' => 'account_tab_password',
641
+ 'type' => 'checkbox',
642
+ 'label' => __( 'Password Account Tab', 'ultimate-member' ),
643
+ 'tooltip' => __( 'Enable/disable the Password account tab in account page', 'ultimate-member' ),
644
  ),
645
  array(
646
+ 'id' => 'account_tab_privacy',
647
+ 'type' => 'checkbox',
648
+ 'label' => __( 'Privacy Account Tab','ultimate-member' ),
649
+ 'tooltip' => __( 'Enable/disable the Privacy account tab in account page', 'ultimate-member' ),
650
  ),
651
  array(
652
+ 'id' => 'account_tab_notifications',
653
+ 'type' => 'checkbox',
654
+ 'label' => __( 'Notifications Account Tab','ultimate-member' ),
655
+ 'tooltip' => __( 'Enable/disable the Notifications account tab in account page', 'ultimate-member' ),
656
  ),
657
  array(
658
+ 'id' => 'account_tab_delete',
659
+ 'type' => 'checkbox',
660
+ 'label' => __( 'Delete Account Tab','ultimate-member' ),
661
+ 'tooltip' => __( 'Enable/disable the Delete account tab in account page', 'ultimate-member' ),
662
  ),
663
  array(
664
+ 'id' => 'delete_account_text',
665
+ 'type' => 'textarea', // bug with wp 4.4? should be editor
666
+ 'label' => __( 'Account Deletion Custom Text','ultimate-member' ),
667
+ 'tooltip' => __( 'This is custom text that will be displayed to users before they delete their accounts from your site', 'ultimate-member' ),
668
+ 'args' => array(
669
  'textarea_rows' => 6
670
  ),
671
  ),
672
  array(
673
+ 'id' => 'account_name',
674
+ 'type' => 'checkbox',
675
+ 'label' => __( 'Add a First & Last Name fields','ultimate-member' ),
676
+ 'tooltip' => __( 'Whether to enable these fields on the user account page by default or hide them.', 'ultimate-member' ),
677
  ),
678
  array(
679
+ 'id' => 'account_name_disable',
680
+ 'type' => 'checkbox',
681
+ 'label' => __( 'Disable First & Last Name fields','ultimate-member' ),
682
+ 'tooltip' => __( 'Whether to allow users changing their first and last name in account page.', 'ultimate-member' ),
683
+ 'conditional' => array( 'account_name', '=', '1' ),
684
  ),
685
  array(
686
+ 'id' => 'account_name_require',
687
+ 'type' => 'checkbox',
688
+ 'label' => __( 'Require First & Last Name', 'ultimate-member' ),
689
+ 'tooltip' => __( 'Require first and last name?', 'ultimate-member' ),
690
+ 'conditional' => array( 'account_name', '=', '1' ),
691
  ),
692
  array(
693
+ 'id' => 'account_email',
694
+ 'type' => 'checkbox',
695
+ 'label' => __( 'Allow users to change e-mail','ultimate-member' ),
696
+ 'tooltip' => __( 'Whether to allow users changing their email in account page.', 'ultimate-member' ),
697
  ),
698
  array(
699
  'id' => 'account_general_password',
731
  'title' => __( 'Uploads', 'ultimate-member' ),
732
  'fields' => array(
733
  array(
734
+ 'id' => 'profile_photo_max_size',
735
+ 'type' => 'text',
736
+ 'size' => 'small',
737
+ 'label' => __( 'Profile Photo Maximum File Size (bytes)', 'ultimate-member' ),
738
+ 'tooltip' => __( 'Sets a maximum size for the uploaded photo', 'ultimate-member' ),
739
  ),
740
 
741
  array(
742
+ 'id' => 'cover_photo_max_size',
743
+ 'type' => 'text',
744
+ 'size' => 'small',
745
+ 'label' => __( 'Cover Photo Maximum File Size (bytes)', 'ultimate-member' ),
746
+ 'tooltip' => __( 'Sets a maximum size for the uploaded cover', 'ultimate-member' ),
747
  ),
748
  array(
749
+ 'id' => 'photo_thumb_sizes',
750
+ 'type' => 'multi_text',
751
+ 'size' => 'small',
752
+ 'label' => __( 'Profile Photo Thumbnail Sizes (px)', 'ultimate-member' ),
753
+ 'tooltip' => __( 'Here you can define which thumbnail sizes will be created for each profile photo upload.', 'ultimate-member' ),
754
+ 'validate' => 'numeric',
755
+ 'add_text' => __( 'Add New Size', 'ultimate-member' ),
756
+ 'show_default_number' => 1,
757
  ),
758
  array(
759
+ 'id' => 'cover_thumb_sizes',
760
+ 'type' => 'multi_text',
761
+ 'size' => 'small',
762
+ 'label' => __( 'Cover Photo Thumbnail Sizes (px)', 'ultimate-member' ),
763
+ 'tooltip' => __( 'Here you can define which thumbnail sizes will be created for each cover photo upload.', 'ultimate-member' ),
764
+ 'validate' => 'numeric',
765
+ 'add_text' => __( 'Add New Size', 'ultimate-member' ),
766
+ 'show_default_number' => 1,
767
  ),
768
 
769
  array(
770
+ 'id' => 'image_compression',
771
+ 'type' => 'text',
772
+ 'size' => 'small',
773
+ 'label' => __( 'Image Quality', 'ultimate-member' ),
774
+ 'tooltip' => __( 'Quality is used to determine quality of image uploads, and ranges from 0 (worst quality, smaller file) to 100 (best quality, biggest file). The default range is 60.', 'ultimate-member' ),
775
  ),
776
 
777
  array(
778
+ 'id' => 'image_max_width',
779
+ 'type' => 'text',
780
+ 'size' => 'small',
781
+ 'label' => __( 'Image Upload Maximum Width (px)', 'ultimate-member' ),
782
+ 'tooltip' => __( 'Any image upload above this width will be resized to this limit automatically.', 'ultimate-member' ),
783
  ),
784
 
785
  array(
786
+ 'id' => 'cover_min_width',
787
+ 'type' => 'text',
788
+ 'size' => 'small',
789
+ 'label' => __( 'Cover Photo Minimum Width (px)', 'ultimate-member' ),
790
+ 'tooltip' => __( 'This will be the minimum width for cover photo uploads', 'ultimate-member' ),
791
  ),
792
  )
793
  )
includes/admin/core/list-tables/emails-list-table.php CHANGED
@@ -221,20 +221,29 @@ class UM_Emails_List_Table extends WP_List_Table {
221
  function column_email( $item ) {
222
  $active = UM()->options()->get( $item['key'] . '_on' );
223
 
224
- return '<span class="dashicons um-notification-status ' . ( ! empty( $active ) ? 'um-notification-is-active dashicons-yes' : 'dashicons-no-alt' ) . '"></span><a href="' . add_query_arg( array( 'email' => $item['key'] ) ) . '"><strong>'. $item['title'] . '</strong></a>';
 
 
 
 
 
 
 
 
225
  }
226
 
227
 
228
  /**
229
  * @param $item
230
  *
231
- * @return mixed|string|void
232
  */
233
  function column_recipients( $item ) {
234
- if ( $item['recipient'] == 'admin' )
235
  return UM()->options()->get( 'admin_email' );
236
- else
237
  return __( 'Member', 'ultimate-member' );
 
238
  }
239
 
240
 
@@ -244,7 +253,7 @@ class UM_Emails_List_Table extends WP_List_Table {
244
  * @return string
245
  */
246
  function column_configure( $item ) {
247
- return '<a class="button um-email-configure" href="' . add_query_arg( array( 'email' => $item['key'] ) ) . '"><span class="dashicons dashicons-admin-generic"></span></a>';
248
  }
249
 
250
 
221
  function column_email( $item ) {
222
  $active = UM()->options()->get( $item['key'] . '_on' );
223
 
224
+ $icon = ! empty( $active ) ? 'um-notification-is-active dashicons-yes' : 'dashicons-no-alt';
225
+ $link = add_query_arg( array( 'email' => $item['key'] ) );
226
+ $text = '<span class="dashicons um-notification-status ' . esc_attr( $icon ) . '"></span><a href="' . esc_url( $link ) . '"><strong>' . $item['title'] . '</strong></a>';
227
+
228
+ if ( ! empty( $item['description'] ) ) {
229
+ $text .= ' <span class="um_tooltip dashicons dashicons-editor-help" title="' . esc_attr__( $item['description'], 'ultimate-member' ) . '"></span>';
230
+ }
231
+
232
+ return $text;
233
  }
234
 
235
 
236
  /**
237
  * @param $item
238
  *
239
+ * @return string
240
  */
241
  function column_recipients( $item ) {
242
+ if ( $item['recipient'] == 'admin' ) {
243
  return UM()->options()->get( 'admin_email' );
244
+ } else {
245
  return __( 'Member', 'ultimate-member' );
246
+ }
247
  }
248
 
249
 
253
  * @return string
254
  */
255
  function column_configure( $item ) {
256
+ return '<a class="button um-email-configure" href="' . add_query_arg( array( 'email' => $item['key'] ) ) . '" title="' . esc_attr__( 'Edit template', 'ultimate-member' ) . '"><span class="dashicons dashicons-admin-generic"></span></a>';
257
  }
258
 
259
 
includes/admin/templates/directory/general.php CHANGED
@@ -10,6 +10,11 @@ if ( $show_these_users ) {
10
  $show_these_users = implode( "\n", str_replace( "\r", "", $show_these_users ) );
11
  }
12
 
 
 
 
 
 
13
  $_um_view_types_value = get_post_meta( $post_id, '_um_view_types', true );
14
  $_um_view_types_value = empty( $_um_view_types_value ) ? array( 'grid', 'list' ) : $_um_view_types_value;
15
 
@@ -77,6 +82,12 @@ foreach ( $view_types_options as $key => $value ) {
77
  'label' => __( 'Only show specific users (Enter one username per line)', 'ultimate-member' ),
78
  'value' => $show_these_users,
79
  ),
 
 
 
 
 
 
80
  );
81
 
82
  /**
10
  $show_these_users = implode( "\n", str_replace( "\r", "", $show_these_users ) );
11
  }
12
 
13
+ $exclude_these_users = get_post_meta( get_the_ID(), '_um_exclude_these_users', true );
14
+ if ( $exclude_these_users ) {
15
+ $exclude_these_users = implode( "\n", str_replace( "\r", "", $exclude_these_users ) );
16
+ }
17
+
18
  $_um_view_types_value = get_post_meta( $post_id, '_um_view_types', true );
19
  $_um_view_types_value = empty( $_um_view_types_value ) ? array( 'grid', 'list' ) : $_um_view_types_value;
20
 
82
  'label' => __( 'Only show specific users (Enter one username per line)', 'ultimate-member' ),
83
  'value' => $show_these_users,
84
  ),
85
+ array(
86
+ 'id' => '_um_exclude_these_users',
87
+ 'type' => 'textarea',
88
+ 'label' => __( 'Exclude specific users (Enter one username per line)', 'ultimate-member' ),
89
+ 'value' => $exclude_these_users,
90
+ ),
91
  );
92
 
93
  /**
includes/admin/templates/role/admin-permissions.php CHANGED
@@ -5,56 +5,56 @@
5
  <?php $role = $object['data'];
6
 
7
  UM()->admin_forms( array(
8
- 'class' => 'um-role-admin um-half-column',
9
- 'prefix_id' => 'role',
10
- 'fields' => array(
11
  array(
12
- 'id' => '_um_can_access_wpadmin',
13
- 'type' => 'checkbox',
14
- 'label' => __( 'Can access wp-admin?', 'ultimate-member' ),
15
- 'tooltip' => __( 'The core admin role must always have access to wp-admin / WordPress backend', 'ultimate-member' ),
16
- 'value' => ! empty( $role['_um_can_access_wpadmin'] ) ? $role['_um_can_access_wpadmin'] : 0,
17
  ),
18
  array(
19
- 'id' => '_um_can_not_see_adminbar',
20
- 'type' => 'checkbox',
21
- 'label' => __( 'Force hiding adminbar in frontend?', 'ultimate-member' ),
22
- 'tooltip' => __( 'Show/hide the adminbar on frontend', 'ultimate-member' ),
23
- 'value' => isset( $role['_um_can_not_see_adminbar'] ) ? $role['_um_can_not_see_adminbar'] : 1,
24
  ),
25
  array(
26
- 'id' => '_um_can_edit_everyone',
27
- 'type' => 'checkbox',
28
- 'label' => __( 'Can edit other member accounts?', 'ultimate-member' ),
29
- 'tooltip' => __( 'Allow this role to edit accounts of other members', 'ultimate-member' ),
30
- 'value' => ! empty( $role['_um_can_edit_everyone'] ) ? $role['_um_can_edit_everyone'] : 0,
31
  ),
32
  array(
33
- 'id' => '_um_can_edit_roles',
34
- 'type' => 'select',
35
- 'label' => __( 'Can edit these user roles only', 'ultimate-member' ),
36
- 'tooltip' => __( 'Which roles that role can edit, choose none to allow role to edit all member roles', 'ultimate-member' ),
37
- 'options' => UM()->roles()->get_roles(),
38
- 'multi' => true,
39
- 'value' => ! empty( $role['_um_can_edit_roles'] ) ? $role['_um_can_edit_roles'] : array(),
40
- 'conditional' => array( '_um_can_edit_everyone', '=', '1' )
41
  ),
42
  array(
43
- 'id' => '_um_can_delete_everyone',
44
- 'type' => 'checkbox',
45
- 'label' => __( 'Can delete other member accounts?', 'ultimate-member' ),
46
- 'tooltip' => __( 'Allow this role to edit accounts of other members', 'ultimate-member' ),
47
- 'value' => ! empty( $role['_um_can_delete_everyone'] ) ? $role['_um_can_delete_everyone'] : 0,
48
  ),
49
  array(
50
- 'id' => '_um_can_delete_roles',
51
- 'type' => 'select',
52
- 'label' => __( 'Can delete these user roles only', 'ultimate-member' ),
53
- 'tooltip' => __( 'Which roles that role can edit, choose none to allow role to edit all member roles', 'ultimate-member' ),
54
- 'options' => UM()->roles()->get_roles(),
55
- 'multi' => true,
56
- 'value' => ! empty( $role['_um_can_delete_roles'] ) ? $role['_um_can_delete_roles'] : array(),
57
- 'conditional' => array( '_um_can_delete_everyone', '=', '1' )
58
  )
59
  )
60
  ) )->render_form(); ?>
5
  <?php $role = $object['data'];
6
 
7
  UM()->admin_forms( array(
8
+ 'class' => 'um-role-admin um-half-column',
9
+ 'prefix_id' => 'role',
10
+ 'fields' => array(
11
  array(
12
+ 'id' => '_um_can_access_wpadmin',
13
+ 'type' => 'checkbox',
14
+ 'label' => __( 'Can access wp-admin?', 'ultimate-member' ),
15
+ 'tooltip' => __( 'The core admin role must always have access to wp-admin / WordPress backend', 'ultimate-member' ),
16
+ 'value' => ! empty( $role['_um_can_access_wpadmin'] ) ? $role['_um_can_access_wpadmin'] : 0,
17
  ),
18
  array(
19
+ 'id' => '_um_can_not_see_adminbar',
20
+ 'type' => 'checkbox',
21
+ 'label' => __( 'Force hiding adminbar in frontend?', 'ultimate-member' ),
22
+ 'tooltip' => __( 'Mark this option if you need to hide the adminbar on frontend for this role', 'ultimate-member' ),
23
+ 'value' => isset( $role['_um_can_not_see_adminbar'] ) ? $role['_um_can_not_see_adminbar'] : 1,
24
  ),
25
  array(
26
+ 'id' => '_um_can_edit_everyone',
27
+ 'type' => 'checkbox',
28
+ 'label' => __( 'Can edit other member accounts?', 'ultimate-member' ),
29
+ 'tooltip' => __( 'Allow this role to edit accounts of other members', 'ultimate-member' ),
30
+ 'value' => ! empty( $role['_um_can_edit_everyone'] ) ? $role['_um_can_edit_everyone'] : 0,
31
  ),
32
  array(
33
+ 'id' => '_um_can_edit_roles',
34
+ 'type' => 'select',
35
+ 'label' => __( 'Can edit these user roles only', 'ultimate-member' ),
36
+ 'tooltip' => __( 'Which roles that role can edit, choose none to allow role to edit all member roles', 'ultimate-member' ),
37
+ 'options' => UM()->roles()->get_roles(),
38
+ 'multi' => true,
39
+ 'value' => ! empty( $role['_um_can_edit_roles'] ) ? $role['_um_can_edit_roles'] : array(),
40
+ 'conditional' => array( '_um_can_edit_everyone', '=', '1' )
41
  ),
42
  array(
43
+ 'id' => '_um_can_delete_everyone',
44
+ 'type' => 'checkbox',
45
+ 'label' => __( 'Can delete other member accounts?', 'ultimate-member' ),
46
+ 'tooltip' => __( 'Allow this role to edit accounts of other members', 'ultimate-member' ),
47
+ 'value' => ! empty( $role['_um_can_delete_everyone'] ) ? $role['_um_can_delete_everyone'] : 0,
48
  ),
49
  array(
50
+ 'id' => '_um_can_delete_roles',
51
+ 'type' => 'select',
52
+ 'label' => __( 'Can delete these user roles only', 'ultimate-member' ),
53
+ 'tooltip' => __( 'Which roles that role can edit, choose none to allow role to edit all member roles', 'ultimate-member' ),
54
+ 'options' => UM()->roles()->get_roles(),
55
+ 'multi' => true,
56
+ 'value' => ! empty( $role['_um_can_delete_roles'] ) ? $role['_um_can_delete_roles'] : array(),
57
+ 'conditional' => array( '_um_can_delete_everyone', '=', '1' )
58
  )
59
  )
60
  ) )->render_form(); ?>
includes/class-config.php CHANGED
@@ -147,6 +147,7 @@ if ( ! class_exists( 'um\Config' ) ) {
147
  '_um_has_profile_photo' => 0,
148
  '_um_has_cover_photo' => 0,
149
  '_um_show_these_users' => '',
 
150
 
151
  '_um_sortby' => 'user_registered_desc',
152
  '_um_sortby_custom' => '',
147
  '_um_has_profile_photo' => 0,
148
  '_um_has_cover_photo' => 0,
149
  '_um_show_these_users' => '',
150
+ '_um_exclude_these_users' => '',
151
 
152
  '_um_sortby' => 'user_registered_desc',
153
  '_um_sortby_custom' => '',
includes/core/class-enqueue.php CHANGED
@@ -127,7 +127,7 @@ if ( ! class_exists( 'um\core\Enqueue' ) ) {
127
  wp_register_script( 'um_responsive', $this->js_baseurl . 'um-responsive' . $this->suffix . '.js', array( 'jquery', 'um_functions', 'um_crop' ), ultimatemember_version, true );
128
 
129
  wp_register_script( 'um-gdpr', $this->js_baseurl . 'um-gdpr' . $this->suffix . '.js', array( 'jquery' ), ultimatemember_version, false );
130
- wp_register_script('um_conditional', $this->js_baseurl . 'um-conditional' . $this->suffix . '.js', array( 'jquery' ), ultimatemember_version, true );
131
  wp_register_script('um_scripts', $this->js_baseurl . 'um-scripts' . $this->suffix . '.js', array( 'jquery', 'wp-util', 'um_conditional', 'um_datetime', 'um_datetime_date', 'um_datetime_time', 'um_datetime_legacy', 'select2' ), ultimatemember_version, true );
132
  /**
133
  * UM hook
127
  wp_register_script( 'um_responsive', $this->js_baseurl . 'um-responsive' . $this->suffix . '.js', array( 'jquery', 'um_functions', 'um_crop' ), ultimatemember_version, true );
128
 
129
  wp_register_script( 'um-gdpr', $this->js_baseurl . 'um-gdpr' . $this->suffix . '.js', array( 'jquery' ), ultimatemember_version, false );
130
+ wp_register_script('um_conditional', $this->js_baseurl . 'um-conditional' . $this->suffix . '.js', array( 'jquery', 'wp-hooks' ), ultimatemember_version, true );
131
  wp_register_script('um_scripts', $this->js_baseurl . 'um-scripts' . $this->suffix . '.js', array( 'jquery', 'wp-util', 'um_conditional', 'um_datetime', 'um_datetime_date', 'um_datetime_time', 'um_datetime_legacy', 'select2' ), ultimatemember_version, true );
132
  /**
133
  * UM hook
includes/core/class-fields.php CHANGED
@@ -150,7 +150,7 @@ if ( ! class_exists( 'um\core\Fields' ) ) {
150
  unset( $fields[ $id ]['in_group'] );
151
  unset( $fields[ $id ]['position'] );
152
 
153
- do_action( 'um_add_new_field', $id );
154
 
155
  update_option( 'um_fields', $fields );
156
  }
@@ -249,9 +249,11 @@ if ( ! class_exists( 'um\core\Fields' ) ) {
249
  function delete_field_from_db( $id ) {
250
  $fields = UM()->builtin()->saved_fields;
251
  if ( isset( $fields[ $id ] ) ) {
 
 
252
  unset( $fields[ $id ] );
253
 
254
- do_action( 'um_delete_custom_field', $id );
255
 
256
  update_option( 'um_fields', $fields );
257
  }
@@ -360,7 +362,7 @@ if ( ! class_exists( 'um\core\Fields' ) ) {
360
  unset( $all_fields[ $new_metakey ]['position'] );
361
 
362
 
363
- do_action( 'um_add_new_field', $new_metakey );
364
 
365
  UM()->query()->update_attr( 'custom_fields', $form_id, $fields );
366
  update_option( 'um_fields', $all_fields );
@@ -3576,8 +3578,13 @@ if ( ! class_exists( 'um\core\Fields' ) ) {
3576
  case 'shortcode':
3577
 
3578
  $content = str_replace( '{profile_id}', um_profile_id(), $content );
 
 
 
 
 
3579
 
3580
- $output .= '<div ' . $this->get_atts( $key, $classes, $conditional, $data ) . '>' . do_shortcode( $content ) . '</div>';
3581
  break;
3582
 
3583
  /* Unlimited Group */
@@ -4100,8 +4107,13 @@ if ( ! class_exists( 'um\core\Fields' ) ) {
4100
  case 'shortcode':
4101
 
4102
  $content = str_replace( '{profile_id}', um_profile_id(), $content );
 
 
 
 
 
4103
 
4104
- $output .= '<div ' . $this->get_atts( $key, $classes, $conditional, $data ) . '>' . do_shortcode( $content ) . '</div>';
4105
  break;
4106
 
4107
  /* Gap/Space */
150
  unset( $fields[ $id ]['in_group'] );
151
  unset( $fields[ $id ]['position'] );
152
 
153
+ do_action( 'um_add_new_field', $id, $args );
154
 
155
  update_option( 'um_fields', $fields );
156
  }
249
  function delete_field_from_db( $id ) {
250
  $fields = UM()->builtin()->saved_fields;
251
  if ( isset( $fields[ $id ] ) ) {
252
+ $args = $fields[ $id ];
253
+
254
  unset( $fields[ $id ] );
255
 
256
+ do_action( 'um_delete_custom_field', $id, $args );
257
 
258
  update_option( 'um_fields', $fields );
259
  }
362
  unset( $all_fields[ $new_metakey ]['position'] );
363
 
364
 
365
+ do_action( 'um_add_new_field', $new_metakey, $duplicate );
366
 
367
  UM()->query()->update_attr( 'custom_fields', $form_id, $fields );
368
  update_option( 'um_fields', $all_fields );
3578
  case 'shortcode':
3579
 
3580
  $content = str_replace( '{profile_id}', um_profile_id(), $content );
3581
+ if ( version_compare( get_bloginfo('version'),'5.4', '<' ) ) {
3582
+ $content = do_shortcode( $content );
3583
+ } else {
3584
+ $content = apply_shortcodes( $content );
3585
+ }
3586
 
3587
+ $output .= '<div ' . $this->get_atts( $key, $classes, $conditional, $data ) . '>' . $content . '</div>';
3588
  break;
3589
 
3590
  /* Unlimited Group */
4107
  case 'shortcode':
4108
 
4109
  $content = str_replace( '{profile_id}', um_profile_id(), $content );
4110
+ if ( version_compare( get_bloginfo('version'),'5.4', '<' ) ) {
4111
+ $content = do_shortcode( $content );
4112
+ } else {
4113
+ $content = apply_shortcodes( $content );
4114
+ }
4115
 
4116
+ $output .= '<div ' . $this->get_atts( $key, $classes, $conditional, $data ) . '>' . $content . '</div>';
4117
  break;
4118
 
4119
  /* Gap/Space */
includes/core/class-login.php CHANGED
@@ -1,13 +1,86 @@
1
  <?php
2
  namespace um\core;
3
 
4
- // Exit if accessed directly
5
  if ( ! defined( 'ABSPATH' ) ) exit;
6
 
 
7
  if ( ! class_exists( 'um\core\Login' ) ) {
8
 
9
- class Login {
10
 
11
- }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
12
 
13
  }
1
  <?php
2
  namespace um\core;
3
 
4
+
5
  if ( ! defined( 'ABSPATH' ) ) exit;
6
 
7
+
8
  if ( ! class_exists( 'um\core\Login' ) ) {
9
 
 
10
 
11
+ /**
12
+ * Class Login
13
+ *
14
+ * @package um\core
15
+ */
16
+ class Login {
17
+
18
+
19
+ /**
20
+ * Logged-in user ID
21
+ */
22
+ var $auth_id = '';
23
+
24
+
25
+ /**
26
+ * Register constructor.
27
+ */
28
+ function __construct() {
29
+ add_action( 'um_after_login_fields', array( $this, 'add_nonce' ) );
30
+ add_action( 'um_submit_form_login', array( $this, 'verify_nonce' ), 1, 1 );
31
+ }
32
+
33
+
34
+ /**
35
+ * Add registration form notice
36
+ */
37
+ function add_nonce() {
38
+ wp_nonce_field( 'um_login_form' );
39
+ }
40
+
41
+
42
+ /**
43
+ * Verify nonce handler
44
+ *
45
+ * @param $args
46
+ *
47
+ * @return mixed
48
+ */
49
+ function verify_nonce( $args ) {
50
+ /**
51
+ * UM hook
52
+ *
53
+ * @type filter
54
+ * @title um_login_allow_nonce_verification
55
+ * @description Enable/Disable nonce verification of login
56
+ * @input_vars
57
+ * [{"var":"$allow_nonce","type":"bool","desc":"Enable nonce"}]
58
+ * @change_log
59
+ * ["Since: 2.0"]
60
+ * @usage
61
+ * <?php add_filter( 'um_login_allow_nonce_verification', 'function_name', 10, 1 ); ?>
62
+ * @example
63
+ * <?php
64
+ * add_filter( 'um_login_allow_nonce_verification', 'my_login_allow_nonce_verification', 10, 1 );
65
+ * function my_login_allow_nonce_verification( $allow_nonce ) {
66
+ * // your code here
67
+ * return $allow_nonce;
68
+ * }
69
+ * ?>
70
+ */
71
+ $allow_nonce_verification = apply_filters( 'um_login_allow_nonce_verification', true );
72
+
73
+ if ( ! $allow_nonce_verification ) {
74
+ return $args;
75
+ }
76
+
77
+ if ( ! wp_verify_nonce( $args['_wpnonce'], 'um_login_form' ) || empty( $args['_wpnonce'] ) || ! isset( $args['_wpnonce'] ) ) {
78
+ wp_die( __( 'Invalid Nonce.', 'ultimate-member' ) );
79
+ }
80
+
81
+ return $args;
82
+ }
83
+
84
+ }
85
 
86
  }
includes/core/class-member-directory-meta.php CHANGED
@@ -40,8 +40,8 @@ if ( ! class_exists( 'um\core\Member_Directory_Meta' ) ) {
40
  add_action( 'added_user_meta', array( &$this, 'on_update_usermeta' ), 10, 4 );
41
  add_action( 'deleted_user_meta', array( &$this, 'on_delete_usermeta' ), 10, 4 );
42
 
43
- add_action( 'um_add_new_field', array( &$this, 'on_new_field_added' ), 10, 1 );
44
- add_action( 'um_delete_custom_field', array( &$this, 'on_delete_custom_field' ), 10, 1 );
45
  }
46
 
47
 
@@ -49,25 +49,55 @@ if ( ! class_exists( 'um\core\Member_Directory_Meta' ) ) {
49
  * Delete custom field and metakey from UM usermeta table
50
  *
51
  * @param $metakey
 
52
  */
53
- function on_delete_custom_field( $metakey ) {
54
  $metakeys = get_option( 'um_usermeta_fields', array() );
55
- if ( in_array( $metakey, $metakeys ) ) {
56
- unset( $metakeys[ array_search( $metakey, $metakeys ) ] );
57
 
58
- global $wpdb;
 
 
 
 
 
 
 
 
 
 
59
 
60
- $wpdb->delete(
61
- "{$wpdb->prefix}um_metadata",
62
- array(
63
- 'um_key' => $metakey
64
- ),
65
- array(
66
- '%s'
67
- )
68
- );
69
 
70
- update_option( 'um_usermeta_fields', array_values( $metakeys ) );
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
71
  }
72
  }
73
 
@@ -76,12 +106,36 @@ if ( ! class_exists( 'um\core\Member_Directory_Meta' ) ) {
76
  * Add metakey to usermeta fields
77
  *
78
  * @param $metakey
 
79
  */
80
- function on_new_field_added( $metakey ) {
81
  $metakeys = get_option( 'um_usermeta_fields', array() );
82
- if ( ! in_array( $metakey, $metakeys ) ) {
83
- $metakeys[] = $metakey;
84
- update_option( 'um_usermeta_fields', array_values( $metakeys ) );
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
85
  }
86
  }
87
 
@@ -460,6 +514,23 @@ if ( ! class_exists( 'um\core\Member_Directory_Meta' ) ) {
460
  }
461
  }
462
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
463
 
464
  $profile_photo_where = '';
465
  if ( $directory_data['has_profile_photo'] == 1 ) {
40
  add_action( 'added_user_meta', array( &$this, 'on_update_usermeta' ), 10, 4 );
41
  add_action( 'deleted_user_meta', array( &$this, 'on_delete_usermeta' ), 10, 4 );
42
 
43
+ add_action( 'um_add_new_field', array( &$this, 'on_new_field_added' ), 10, 2 );
44
+ add_action( 'um_delete_custom_field', array( &$this, 'on_delete_custom_field' ), 10, 2 );
45
  }
46
 
47
 
49
  * Delete custom field and metakey from UM usermeta table
50
  *
51
  * @param $metakey
52
+ * @param $args
53
  */
54
+ function on_delete_custom_field( $metakey, $args ) {
55
  $metakeys = get_option( 'um_usermeta_fields', array() );
 
 
56
 
57
+ if ( $args['type'] == 'user_location' ) {
58
+ if ( array_intersect( array( $metakey . '_lat', $metakey . '_lng', $metakey . '_url' ), $metakeys ) ) {
59
+ if ( false !== $searched = array_search( $metakey . '_lat', $metakeys ) ) {
60
+ unset( $metakeys[ $searched ] );
61
+ }
62
+ if ( false !== $searched = array_search( $metakey . '_lng', $metakeys ) ) {
63
+ unset( $metakeys[ $searched ] );
64
+ }
65
+ if ( false !== $searched = array_search( $metakey . '_url', $metakeys ) ) {
66
+ unset( $metakeys[ $searched ] );
67
+ }
68
 
69
+ global $wpdb;
 
 
 
 
 
 
 
 
70
 
71
+ $wpdb->query( $wpdb->prepare(
72
+ "DELETE FROM {$wpdb->prefix}um_metadata
73
+ WHERE um_key = %s OR
74
+ um_key = %s OR
75
+ um_key = %s",
76
+ $metakey . '_lat',
77
+ $metakey . '_lng',
78
+ $metakey . '_url'
79
+ ) );
80
+
81
+ update_option( 'um_usermeta_fields', array_values( $metakeys ) );
82
+ }
83
+ } else {
84
+ if ( in_array( $metakey, $metakeys ) ) {
85
+ unset( $metakeys[ array_search( $metakey, $metakeys ) ] );
86
+
87
+ global $wpdb;
88
+
89
+ $wpdb->delete(
90
+ "{$wpdb->prefix}um_metadata",
91
+ array(
92
+ 'um_key' => $metakey
93
+ ),
94
+ array(
95
+ '%s'
96
+ )
97
+ );
98
+
99
+ update_option( 'um_usermeta_fields', array_values( $metakeys ) );
100
+ }
101
  }
102
  }
103
 
106
  * Add metakey to usermeta fields
107
  *
108
  * @param $metakey
109
+ * @param $args
110
  */
111
+ function on_new_field_added( $metakey, $args ) {
112
  $metakeys = get_option( 'um_usermeta_fields', array() );
113
+
114
+ if ( $args['type'] == 'user_location' ) {
115
+ $update = false;
116
+ if ( ! in_array( $metakey . '_lat', $metakeys ) ) {
117
+ $update = true;
118
+ $metakeys[] = $metakey . '_lat';
119
+ }
120
+
121
+ if ( ! in_array( $metakey . '_lng', $metakeys ) ) {
122
+ $update = true;
123
+ $metakeys[] = $metakey . '_lng';
124
+ }
125
+
126
+ if ( ! in_array( $metakey . '_url', $metakeys ) ) {
127
+ $update = true;
128
+ $metakeys[] = $metakey . '_url';
129
+ }
130
+
131
+ if ( $update ) {
132
+ update_option( 'um_usermeta_fields', array_values( $metakeys ) );
133
+ }
134
+ } else {
135
+ if ( ! in_array( $metakey, $metakeys ) ) {
136
+ $metakeys[] = $metakey;
137
+ update_option( 'um_usermeta_fields', array_values( $metakeys ) );
138
+ }
139
  }
140
  }
141
 
514
  }
515
  }
516
 
517
+ if ( ! empty( $directory_data['exclude_these_users'] ) ) {
518
+ $exclude_these_users = maybe_unserialize( $directory_data['exclude_these_users'] );
519
+
520
+ if ( is_array( $exclude_these_users ) && ! empty( $exclude_these_users ) ) {
521
+ $users_array = array();
522
+ foreach ( $exclude_these_users as $username ) {
523
+ if ( false !== ( $exists_id = username_exists( $username ) ) ) {
524
+ $users_array[] = $exists_id;
525
+ }
526
+ }
527
+
528
+ if ( ! empty( $users_array ) ) {
529
+ $this->where_clauses[] = "u.ID NOT IN ( '" . implode( "','", $users_array ) . "' )";
530
+ }
531
+ }
532
+ }
533
+
534
 
535
  $profile_photo_where = '';
536
  if ( $directory_data['has_profile_photo'] == 1 ) {
includes/core/class-member-directory.php CHANGED
@@ -1093,6 +1093,7 @@ if ( ! class_exists( 'um\core\Member_Directory' ) ) {
1093
  $this->show_only_with_avatar( $directory_data );
1094
  $this->show_only_with_cover( $directory_data );
1095
  $this->show_only_these_users( $directory_data );
 
1096
 
1097
  do_action( 'um_member_directory_general_options_handle_extend', $directory_data );
1098
  }
@@ -1177,6 +1178,34 @@ if ( ! class_exists( 'um\core\Member_Directory' ) ) {
1177
  }
1178
 
1179
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1180
  /**
1181
  * Handle "Pagination Options" metabox settings
1182
  *
@@ -1935,7 +1964,7 @@ if ( ! class_exists( 'um\core\Member_Directory' ) ) {
1935
 
1936
  break;
1937
  case 'role':
1938
- $value = explode( '||', $value );
1939
  $value = array_map( 'strtolower', $value );
1940
 
1941
  if ( ! empty( $this->query_args['role__in'] ) ) {
1093
  $this->show_only_with_avatar( $directory_data );
1094
  $this->show_only_with_cover( $directory_data );
1095
  $this->show_only_these_users( $directory_data );
1096
+ $this->exclude_these_users( $directory_data );
1097
 
1098
  do_action( 'um_member_directory_general_options_handle_extend', $directory_data );
1099
  }
1178
  }
1179
 
1180
 
1181
+ /**
1182
+ * Handle "Exclude specific users (Enter one username per line)" option
1183
+ *
1184
+ * @param array $directory_data
1185
+ */
1186
+ function exclude_these_users( $directory_data ) {
1187
+ if ( ! empty( $directory_data['exclude_these_users'] ) ) {
1188
+ $exclude_these_users = maybe_unserialize( $directory_data['exclude_these_users'] );
1189
+
1190
+ if ( is_array( $exclude_these_users ) && ! empty( $exclude_these_users ) ) {
1191
+
1192
+ $users_array = array();
1193
+
1194
+ foreach ( $exclude_these_users as $username ) {
1195
+ if ( false !== ( $exists_id = username_exists( $username ) ) ) {
1196
+ $users_array[] = $exists_id;
1197
+ }
1198
+ }
1199
+
1200
+ if ( ! empty( $users_array ) ) {
1201
+ $this->query_args['exclude'] = $users_array;
1202
+ }
1203
+
1204
+ }
1205
+ }
1206
+ }
1207
+
1208
+
1209
  /**
1210
  * Handle "Pagination Options" metabox settings
1211
  *
1964
 
1965
  break;
1966
  case 'role':
1967
+ $value = is_array( $value ) ? $value : explode( '||', $value );
1968
  $value = array_map( 'strtolower', $value );
1969
 
1970
  if ( ! empty( $this->query_args['role__in'] ) ) {
includes/core/class-modal.php CHANGED
@@ -21,7 +21,15 @@ if ( ! class_exists( 'um\core\Modal' ) ) {
21
  * Modal constructor.
22
  */
23
  function __construct() {
24
- add_action( 'wp_footer', array(&$this, 'load_modal_content' ), 9 );
 
 
 
 
 
 
 
 
25
  }
26
 
27
 
21
  * Modal constructor.
22
  */
23
  function __construct() {
24
+ add_action( 'wp_footer', array( &$this, 'load_modal_content' ), $this->get_priority() );
25
+ }
26
+
27
+
28
+ /**
29
+ * @return int
30
+ */
31
+ function get_priority() {
32
+ return apply_filters( 'um_core_includes_modals_priority', 9 );
33
  }
34
 
35
 
includes/core/class-roles-capabilities.php CHANGED
@@ -35,35 +35,30 @@ if ( ! class_exists( 'um\core\Roles_Capabilities' ) ) {
35
  foreach ( $wp_roles->roles as $roleID => $role_data ) {
36
  $role_meta = get_option( "um_role_{$roleID}_meta" );
37
 
38
- if ( ! empty( $role_meta ) )
39
- $wp_roles->roles[$roleID] = array_merge( $role_data, $role_meta );
 
40
  }
41
 
42
 
43
  //Add custom UM roles
44
  $roles = array();
45
 
46
- $role_keys = get_option( 'um_roles' );
47
-
48
- if ( $role_keys ) {
49
-
50
- foreach ( $role_keys as $role_key ) {
51
- $role_meta = get_option( "um_role_{$role_key}_meta" );
52
- if ( $role_meta ) {
53
- //$role_meta['name'] = 'UM ' . $role_meta['name'];
54
- $roles['um_' . $role_key] = $role_meta;
55
- }
56
- }
57
-
58
- foreach ( $roles as $role_id => $details ) {
59
- $capabilities = ! empty( $details['wp_capabilities'] ) ? array_keys( $details['wp_capabilities'] ) : array();
60
- $details['capabilities'] = array_fill_keys( array_values( $capabilities ), true );
61
- unset( $details['wp_capabilities'] );
62
- $wp_roles->roles[$role_id] = $details;
63
- $wp_roles->role_objects[$role_id] = new \WP_Role( $role_id, $details['capabilities'] );
64
- $wp_roles->role_names[$role_id] = $details['name'];
65
  }
 
66
 
 
 
 
 
 
 
 
67
  }
68
 
69
  // Return the modified $wp_roles array
35
  foreach ( $wp_roles->roles as $roleID => $role_data ) {
36
  $role_meta = get_option( "um_role_{$roleID}_meta" );
37
 
38
+ if ( ! empty( $role_meta ) ) {
39
+ $wp_roles->roles[ $roleID ] = array_merge( $role_data, $role_meta );
40
+ }
41
  }
42
 
43
 
44
  //Add custom UM roles
45
  $roles = array();
46
 
47
+ $role_keys = get_option( 'um_roles', array() );
48
+ foreach ( $role_keys as $role_key ) {
49
+ $role_meta = get_option( "um_role_{$role_key}_meta" );
50
+ if ( $role_meta ) {
51
+ $roles[ 'um_' . $role_key ] = $role_meta;
 
 
 
 
 
 
 
 
 
 
 
 
 
 
52
  }
53
+ }
54
 
55
+ foreach ( $roles as $role_id => $details ) {
56
+ $capabilities = ! empty( $details['wp_capabilities'] ) ? array_keys( $details['wp_capabilities'] ) : array();
57
+ $details['capabilities'] = array_fill_keys( array_values( $capabilities ), true );
58
+ unset( $details['wp_capabilities'] );
59
+ $wp_roles->roles[ $role_id ] = $details;
60
+ $wp_roles->role_objects[ $role_id ] = new \WP_Role( $role_id, $details['capabilities'] );
61
+ $wp_roles->role_names[ $role_id ] = $details['name'];
62
  }
63
 
64
  // Return the modified $wp_roles array
includes/core/class-shortcodes.php CHANGED
@@ -13,6 +13,7 @@ if ( ! class_exists( 'um\core\Shortcodes' ) ) {
13
  */
14
  class Shortcodes {
15
 
 
16
 
17
  /**
18
  * Shortcodes constructor.
@@ -373,7 +374,11 @@ if ( ! class_exists( 'um\core\Shortcodes' ) ) {
373
  UM()->get_template( 'login-to-view.php', '', $args, true );
374
  }
375
  } else {
376
- echo do_shortcode( $this->convert_locker_tags( wpautop( $content ) ) );
 
 
 
 
377
  }
378
 
379
  $output = ob_get_clean();
@@ -397,7 +402,11 @@ if ( ! class_exists( 'um\core\Shortcodes' ) ) {
397
  if ( is_user_logged_in() ) {
398
  echo '';
399
  } else {
400
- echo do_shortcode( wpautop( $content ) );
 
 
 
 
401
  }
402
 
403
  $output = ob_get_clean();
@@ -430,7 +439,11 @@ if ( ! class_exists( 'um\core\Shortcodes' ) ) {
430
  $shortcode_attrs .= " {$key}=\"{$value}\"";
431
  }
432
 
433
- return do_shortcode( "[ultimatemember {$shortcode_attrs} /]" );
 
 
 
 
434
  }
435
 
436
 
@@ -459,7 +472,11 @@ if ( ! class_exists( 'um\core\Shortcodes' ) ) {
459
  $shortcode_attrs .= " {$key}=\"{$value}\"";
460
  }
461
 
462
- return do_shortcode( "[ultimatemember {$shortcode_attrs} /]" );
 
 
 
 
463
  }
464
 
465
 
@@ -489,7 +506,11 @@ if ( ! class_exists( 'um\core\Shortcodes' ) ) {
489
  $shortcode_attrs .= " {$key}=\"{$value}\"";
490
  }
491
 
492
- return do_shortcode( "[ultimatemember {$shortcode_attrs} /]" );
 
 
 
 
493
  }
494
 
495
 
@@ -519,7 +540,11 @@ if ( ! class_exists( 'um\core\Shortcodes' ) ) {
519
  $shortcode_attrs .= " {$key}=\"{$value}\"";
520
  }
521
 
522
- return do_shortcode( "[ultimatemember {$shortcode_attrs} /]" );
 
 
 
 
523
  }
524
 
525
 
@@ -666,21 +691,28 @@ if ( ! class_exists( 'um\core\Shortcodes' ) ) {
666
  um_set_requested_user( um_profile_id() );
667
  }
668
 
669
- if ( ! empty( $args['use_custom_settings'] ) ) { // Custom Form settings
670
- $current_user_roles = UM()->roles()->get_all_user_roles( um_profile_id() );
671
 
672
- //backward compatibility between single/multi role form's setting
673
- if ( ! empty( $args['role'] ) ) {
674
- if ( is_array( $args['role'] ) ) {
675
- if ( ! count( array_intersect( $args['role'], $current_user_roles ) ) ) {
676
- ob_get_clean();
677
- return '';
 
 
 
 
 
 
 
678
  }
 
 
679
  } else {
680
- if ( ! in_array( $args['role'], $current_user_roles ) ) {
681
- ob_get_clean();
682
- return '';
683
- }
684
  }
685
  }
686
  }
@@ -1144,20 +1176,32 @@ if ( ! class_exists( 'um\core\Shortcodes' ) ) {
1144
  $current_user_roles = um_user( 'roles' );
1145
 
1146
  if ( ! empty( $a['not'] ) && ! empty( $a['roles'] ) ) {
1147
- return do_shortcode( $this->convert_locker_tags( $content ) );
 
 
 
 
1148
  }
1149
 
1150
  if ( ! empty( $a['not'] ) ) {
1151
  $not_in_roles = explode( ",", $a['not'] );
1152
 
1153
  if ( is_array( $not_in_roles ) && ( empty( $current_user_roles ) || count( array_intersect( $current_user_roles, $not_in_roles ) ) <= 0 ) ) {
1154
- return do_shortcode( $this->convert_locker_tags( $content ) );
 
 
 
 
1155
  }
1156
  } else {
1157
  $roles = explode( ",", $a['roles'] );
1158
 
1159
  if ( ! empty( $current_user_roles ) && is_array( $roles ) && count( array_intersect( $current_user_roles, $roles ) ) > 0 ) {
1160
- return do_shortcode( $this->convert_locker_tags( $content ) );
 
 
 
 
1161
  }
1162
  }
1163
 
13
  */
14
  class Shortcodes {
15
 
16
+ var $profile_role = '';
17
 
18
  /**
19
  * Shortcodes constructor.
374
  UM()->get_template( 'login-to-view.php', '', $args, true );
375
  }
376
  } else {
377
+ if ( version_compare( get_bloginfo('version'),'5.4', '<' ) ) {
378
+ echo do_shortcode( $this->convert_locker_tags( wpautop( $content ) ) );
379
+ } else {
380
+ echo apply_shortcodes( $this->convert_locker_tags( wpautop( $content ) ) );
381
+ }
382
  }
383
 
384
  $output = ob_get_clean();
402
  if ( is_user_logged_in() ) {
403
  echo '';
404
  } else {
405
+ if ( version_compare( get_bloginfo('version'),'5.4', '<' ) ) {
406
+ echo do_shortcode( wpautop( $content ) );
407
+ } else {
408
+ echo apply_shortcodes( wpautop( $content ) );
409
+ }
410
  }
411
 
412
  $output = ob_get_clean();
439
  $shortcode_attrs .= " {$key}=\"{$value}\"";
440
  }
441
 
442
+ if ( version_compare( get_bloginfo('version'),'5.4', '<' ) ) {
443
+ return do_shortcode( "[ultimatemember {$shortcode_attrs} /]" );
444
+ } else {
445
+ return apply_shortcodes( "[ultimatemember {$shortcode_attrs} /]" );
446
+ }
447
  }
448
 
449
 
472
  $shortcode_attrs .= " {$key}=\"{$value}\"";
473
  }
474
 
475
+ if ( version_compare( get_bloginfo('version'),'5.4', '<' ) ) {
476
+ return do_shortcode( "[ultimatemember {$shortcode_attrs} /]" );
477
+ } else {
478
+ return apply_shortcodes( "[ultimatemember {$shortcode_attrs} /]" );
479
+ }
480
  }
481
 
482
 
506
  $shortcode_attrs .= " {$key}=\"{$value}\"";
507
  }
508
 
509
+ if ( version_compare( get_bloginfo('version'),'5.4', '<' ) ) {
510
+ return do_shortcode( "[ultimatemember {$shortcode_attrs} /]" );
511
+ } else {
512
+ return apply_shortcodes( "[ultimatemember {$shortcode_attrs} /]" );
513
+ }
514
  }
515
 
516
 
540
  $shortcode_attrs .= " {$key}=\"{$value}\"";
541
  }
542
 
543
+ if ( version_compare( get_bloginfo('version'),'5.4', '<' ) ) {
544
+ return do_shortcode( "[ultimatemember {$shortcode_attrs} /]" );
545
+ } else {
546
+ return apply_shortcodes( "[ultimatemember {$shortcode_attrs} /]" );
547
+ }
548
  }
549
 
550
 
691
  um_set_requested_user( um_profile_id() );
692
  }
693
 
694
+ if ( ! empty( $args['use_custom_settings'] ) ) { // Option "Apply custom settings to this form"
695
+ if ( ! empty( $args['role'] ) ) { // Option "Make this profile form role-specific"
696
 
697
+ // show the first Profile Form with role selected, don't show profile forms below the page with other role-specific setting
698
+ if ( empty( $this->profile_role ) ) {
699
+ $current_user_roles = UM()->roles()->get_all_user_roles( um_profile_id() );
700
+ if ( is_array( $args['role'] ) ) {
701
+ if ( ! count( array_intersect( $args['role'], $current_user_roles ) ) ) {
702
+ ob_get_clean();
703
+ return '';
704
+ }
705
+ } else {
706
+ if ( ! in_array( $args['role'], $current_user_roles ) ) {
707
+ ob_get_clean();
708
+ return '';
709
+ }
710
  }
711
+
712
+ $this->profile_role = $args['role'];
713
  } else {
714
+ ob_get_clean();
715
+ return '';
 
 
716
  }
717
  }
718
  }
1176
  $current_user_roles = um_user( 'roles' );
1177
 
1178
  if ( ! empty( $a['not'] ) && ! empty( $a['roles'] ) ) {
1179
+ if ( version_compare( get_bloginfo('version'),'5.4', '<' ) ) {
1180
+ return do_shortcode( $this->convert_locker_tags( $content ) );
1181
+ } else {
1182
+ return apply_shortcodes( $this->convert_locker_tags( $content ) );
1183
+ }
1184
  }
1185
 
1186
  if ( ! empty( $a['not'] ) ) {
1187
  $not_in_roles = explode( ",", $a['not'] );
1188
 
1189
  if ( is_array( $not_in_roles ) && ( empty( $current_user_roles ) || count( array_intersect( $current_user_roles, $not_in_roles ) ) <= 0 ) ) {
1190
+ if ( version_compare( get_bloginfo('version'),'5.4', '<' ) ) {
1191
+ return do_shortcode( $this->convert_locker_tags( $content ) );
1192
+ } else {
1193
+ return apply_shortcodes( $this->convert_locker_tags( $content ) );
1194
+ }
1195
  }
1196
  } else {
1197
  $roles = explode( ",", $a['roles'] );
1198
 
1199
  if ( ! empty( $current_user_roles ) && is_array( $roles ) && count( array_intersect( $current_user_roles, $roles ) ) > 0 ) {
1200
+ if ( version_compare( get_bloginfo('version'),'5.4', '<' ) ) {
1201
+ return do_shortcode( $this->convert_locker_tags( $content ) );
1202
+ } else {
1203
+ return apply_shortcodes( $this->convert_locker_tags( $content ) );
1204
+ }
1205
  }
1206
  }
1207
 
includes/core/class-user.php CHANGED
@@ -1711,7 +1711,7 @@ if ( ! class_exists( 'um\core\User' ) ) {
1711
  if ( $privacy == __( 'Only me', 'ultimate-member' ) || $privacy == 'Only me' ) {
1712
  return true;
1713
  }
1714
- return false;
1715
  }
1716
 
1717
 
1711
  if ( $privacy == __( 'Only me', 'ultimate-member' ) || $privacy == 'Only me' ) {
1712
  return true;
1713
  }
1714
+ return $this->is_private_case( $user_id, $privacy );
1715
  }
1716
 
1717
 
includes/core/um-actions-account.php CHANGED
@@ -415,7 +415,7 @@ add_action( 'um_account_page_hidden_fields', 'um_account_page_hidden_fields' );
415
  * Before delete account tab content
416
  */
417
  function um_before_account_delete() {
418
- echo wpautop( htmlspecialchars( UM()->options()->get( 'delete_account_text' ) ) );
419
  }
420
  add_action( 'um_before_account_delete', 'um_before_account_delete' );
421
 
@@ -496,36 +496,54 @@ function um_after_account_privacy( $args ) {
496
  </span>
497
  <div class="um-clear"></div>
498
  </div>
499
- <?php
500
- $completed = $wpdb->get_results( "SELECT ID FROM $wpdb->posts WHERE post_author = $user_id AND post_type = 'user_request' AND post_name = 'export_personal_data' AND post_status = 'request-completed' ORDER BY ID DESC LIMIT 1", ARRAY_A );
501
- if ( $completed ) {
 
 
 
 
 
 
 
 
 
 
 
 
 
502
 
503
- echo '<p>' . esc_html__( 'You could download your previous data:', 'ultimate-member' ) . '</p>';
504
- echo '<a href="' . get_post_meta( $completed[0]['ID'], '_export_file_url', true ) . '">' . esc_html__( 'download personal data', 'ultimate-member' ) . '</a>';
505
- echo '<p>' . esc_html__( 'You could send a new request for an export of personal your data.', 'ultimate-member' ) . '</p>';
506
-
507
- }
508
 
509
- $pending = $wpdb->get_results( "SELECT ID, post_status FROM $wpdb->posts WHERE post_author = $user_id AND post_type = 'user_request' AND post_name = 'export_personal_data' AND post_status != 'request-completed' ORDER BY ID DESC LIMIT 1", ARRAY_A );
510
-
511
- if ( $pending[0]['post_status'] == 'request-pending' ) {
512
- echo '<p>' . esc_html__( 'A confirmation email has been sent to your email. Click the link within the email to confirm your export request.', 'ultimate-member' ) . '</p>';
513
- } elseif ( $pending[0]['post_status'] == 'request-confirmed' ) {
514
- echo '<p>' . esc_html__( 'The administrator has not yet approved downloading the data. Please expect an email with a link to your data.', 'ultimate-member' ) . '</p>';
515
- } else { ?>
516
- <label name="um-export-data">
517
- <?php esc_html_e( 'Enter your current password to confirm a new export of your personal data.', 'ultimate-member' ); ?>
518
- </label>
519
- <div class="um-field-area">
520
- <input id="um-export-data" type="password" placeholder="<?php esc_attr_e( 'Password', 'ultimate-member' )?>">
521
- <div class="um-field-error um-export-data">
522
- <span class="um-field-arrow"><i class="um-faicon-caret-up"></i></span><?php esc_html_e( 'You must enter a password', 'ultimate-member' ); ?>
523
- </div>
524
- <div class="um-field-area-response um-export-data"></div>
 
 
 
 
 
 
 
525
  </div>
526
- <a class="um-request-button um-export-data-button" data-action="um-export-data" href="javascript:void(0);">
527
- <?php esc_html_e( 'Request data', 'ultimate-member' ); ?>
528
- </a>
 
 
529
  <?php } ?>
530
 
531
  </div>
@@ -540,34 +558,53 @@ function um_after_account_privacy( $args ) {
540
  </span>
541
  <div class="um-clear"></div>
542
  </div>
543
- <?php
544
- $completed = $wpdb->get_results( "SELECT ID FROM $wpdb->posts WHERE post_author = $user_id AND post_type = 'user_request' AND post_name = 'remove_personal_data' AND post_status = 'request-completed' ORDER BY ID DESC LIMIT 1", ARRAY_A );
545
- if ( $completed ) {
546
 
547
- echo '<p>' . esc_html__( 'Your personal data has been deleted.', 'ultimate-member' ) . '</p>';
548
- echo '<p>' . esc_html__( 'You could send a new request for deleting your personal data.', 'ultimate-member' ) . '</p>';
 
 
 
 
 
 
 
 
549
 
550
- }
 
 
 
551
 
552
- $pending = $wpdb->get_results( "SELECT ID, post_status FROM $wpdb->posts WHERE post_author = $user_id AND post_type = 'user_request' AND post_name = 'remove_personal_data' AND post_status != 'request-completed' ORDER BY ID DESC LIMIT 1", ARRAY_A );
553
-
554
- if ( $pending[0]['post_status'] == 'request-pending' ) {
555
- echo '<p>' . esc_html__( 'A confirmation email has been sent to your email. Click the link within the email to confirm your export request.', 'ultimate-member' ) . '</p>';
556
- } elseif ( $pending[0]['post_status'] == 'request-confirmed' ) {
557
- echo '<p>' . esc_html__( 'The administrator has not yet approved deleting your data. Please expect an email with a link to your data.', 'ultimate-member' ) . '</p>';
558
- } else { ?>
559
- <label name="um-erase-data">
560
- <?php esc_html_e( 'Enter your current password to confirm the erasure of your personal data.', 'ultimate-member' ); ?>
561
- <input id="um-erase-data" type="password" placeholder="<?php esc_attr_e( 'Password', 'ultimate-member' )?>">
562
- <div class="um-field-error um-erase-data">
563
- <span class="um-field-arrow"><i class="um-faicon-caret-up"></i></span><?php esc_html_e( 'You must enter a password', 'ultimate-member' ); ?>
564
- </div>
565
- <div class="um-field-area-response um-erase-data"></div>
566
- </label>
567
- <a class="um-request-button um-erase-data-button" data-action="um-erase-data" href="javascript:void(0);">
568
- <?php esc_html_e( 'Request data erase', 'ultimate-member' ); ?>
569
- </a>
570
- <?php } ?>
 
 
 
 
 
 
 
 
 
 
 
571
 
572
  </div>
573
 
415
  * Before delete account tab content
416
  */
417
  function um_before_account_delete() {
418
+ printf( __( '%s', 'ultimate-member' ), wpautop( htmlspecialchars( UM()->options()->get( 'delete_account_text' ) ) ) );
419
  }
420
  add_action( 'um_before_account_delete', 'um_before_account_delete' );
421
 
496
  </span>
497
  <div class="um-clear"></div>
498
  </div>
499
+ <?php $completed = $wpdb->get_row(
500
+ "SELECT ID
501
+ FROM $wpdb->posts
502
+ WHERE post_author = $user_id AND
503
+ post_type = 'user_request' AND
504
+ post_name = 'export_personal_data' AND
505
+ post_status = 'request-completed'
506
+ ORDER BY ID DESC
507
+ LIMIT 1",
508
+ ARRAY_A );
509
+
510
+ if ( ! empty( $completed ) ) {
511
+
512
+ echo '<p>' . esc_html__( 'You could download your previous data:', 'ultimate-member' ) . '</p>';
513
+ echo '<a href="' . get_post_meta( $completed['ID'], '_export_file_url', true ) . '">' . esc_html__( 'download personal data', 'ultimate-member' ) . '</a>';
514
+ echo '<p>' . esc_html__( 'You could send a new request for an export of personal your data.', 'ultimate-member' ) . '</p>';
515
 
516
+ }
 
 
 
 
517
 
518
+ $pending = $wpdb->get_row(
519
+ "SELECT ID, post_status
520
+ FROM $wpdb->posts
521
+ WHERE post_author = $user_id AND
522
+ post_type = 'user_request' AND
523
+ post_name = 'export_personal_data' AND
524
+ post_status != 'request-completed'
525
+ ORDER BY ID DESC
526
+ LIMIT 1",
527
+ ARRAY_A );
528
+
529
+ if ( ! empty( $pending ) && $pending['post_status'] == 'request-pending' ) {
530
+ echo '<p>' . esc_html__( 'A confirmation email has been sent to your email. Click the link within the email to confirm your export request.', 'ultimate-member' ) . '</p>';
531
+ } elseif ( ! empty( $pending ) && $pending['post_status'] == 'request-confirmed' ) {
532
+ echo '<p>' . esc_html__( 'The administrator has not yet approved downloading the data. Please expect an email with a link to your data.', 'ultimate-member' ) . '</p>';
533
+ } else { ?>
534
+ <label name="um-export-data">
535
+ <?php esc_html_e( 'Enter your current password to confirm a new export of your personal data.', 'ultimate-member' ); ?>
536
+ </label>
537
+ <div class="um-field-area">
538
+ <input id="um-export-data" type="password" placeholder="<?php esc_attr_e( 'Password', 'ultimate-member' )?>">
539
+ <div class="um-field-error um-export-data">
540
+ <span class="um-field-arrow"><i class="um-faicon-caret-up"></i></span><?php esc_html_e( 'You must enter a password', 'ultimate-member' ); ?>
541
  </div>
542
+ <div class="um-field-area-response um-export-data"></div>
543
+ </div>
544
+ <a class="um-request-button um-export-data-button" data-action="um-export-data" href="javascript:void(0);">
545
+ <?php esc_html_e( 'Request data', 'ultimate-member' ); ?>
546
+ </a>
547
  <?php } ?>
548
 
549
  </div>
558
  </span>
559
  <div class="um-clear"></div>
560
  </div>
 
 
 
561
 
562
+ <?php $completed = $wpdb->get_row(
563
+ "SELECT ID
564
+ FROM $wpdb->posts
565
+ WHERE post_author = $user_id AND
566
+ post_type = 'user_request' AND
567
+ post_name = 'remove_personal_data' AND
568
+ post_status = 'request-completed'
569
+ ORDER BY ID DESC
570
+ LIMIT 1",
571
+ ARRAY_A );
572
 
573
+ if ( ! empty( $completed ) ) {
574
+
575
+ echo '<p>' . esc_html__( 'Your personal data has been deleted.', 'ultimate-member' ) . '</p>';
576
+ echo '<p>' . esc_html__( 'You could send a new request for deleting your personal data.', 'ultimate-member' ) . '</p>';
577
 
578
+ }
579
+
580
+ $pending = $wpdb->get_row(
581
+ "SELECT ID, post_status
582
+ FROM $wpdb->posts
583
+ WHERE post_author = $user_id AND
584
+ post_type = 'user_request' AND
585
+ post_name = 'remove_personal_data' AND
586
+ post_status != 'request-completed'
587
+ ORDER BY ID DESC
588
+ LIMIT 1",
589
+ ARRAY_A );
590
+
591
+ if ( ! empty( $pending ) && $pending['post_status'] == 'request-pending' ) {
592
+ echo '<p>' . esc_html__( 'A confirmation email has been sent to your email. Click the link within the email to confirm your export request.', 'ultimate-member' ) . '</p>';
593
+ } elseif ( ! empty( $pending ) && $pending['post_status'] == 'request-confirmed' ) {
594
+ echo '<p>' . esc_html__( 'The administrator has not yet approved deleting your data. Please expect an email with a link to your data.', 'ultimate-member' ) . '</p>';
595
+ } else { ?>
596
+ <label name="um-erase-data">
597
+ <?php esc_html_e( 'Enter your current password to confirm the erasure of your personal data.', 'ultimate-member' ); ?>
598
+ <input id="um-erase-data" type="password" placeholder="<?php esc_attr_e( 'Password', 'ultimate-member' )?>">
599
+ <div class="um-field-error um-erase-data">
600
+ <span class="um-field-arrow"><i class="um-faicon-caret-up"></i></span><?php esc_html_e( 'You must enter a password', 'ultimate-member' ); ?>
601
+ </div>
602
+ <div class="um-field-area-response um-erase-data"></div>
603
+ </label>
604
+ <a class="um-request-button um-erase-data-button" data-action="um-erase-data" href="javascript:void(0);">
605
+ <?php esc_html_e( 'Request data erase', 'ultimate-member' ); ?>
606
+ </a>
607
+ <?php } ?>
608
 
609
  </div>
610
 
includes/core/um-actions-form.php CHANGED
@@ -1,4 +1,4 @@
1
- <?php if ( ! defined( 'ABSPATH' ) ) exit; // Exit if accessed directly
2
 
3
 
4
  /**
@@ -8,34 +8,39 @@
8
  */
9
  function um_submit_form_errors_hook__blockedemails( $args ) {
10
  $emails = UM()->options()->get( 'blocked_emails' );
11
- if ( ! $emails )
12
  return;
 
13
 
14
- $emails = array_map("rtrim", explode("\n", $emails));
15
 
16
  if ( isset( $args['user_email'] ) && is_email( $args['user_email'] ) ) {
17
 
18
- $domain = explode('@', $args['user_email'] );
19
- $check_domain = str_replace($domain[0], '*', $args['user_email']);
20
 
21
- if ( in_array( $args['user_email'], $emails ) )
22
- exit( wp_redirect( esc_url( add_query_arg('err', 'blocked_email') ) ) );
 
23
 
24
- if ( in_array( $check_domain, $emails ) )
25
- exit( wp_redirect( esc_url( add_query_arg('err', 'blocked_domain') ) ) );
 
26
 
27
  }
28
 
29
  if ( isset( $args['username'] ) && is_email( $args['username'] ) ) {
30
 
31
- $domain = explode('@', $args['username'] );
32
- $check_domain = str_replace($domain[0], '*', $args['username']);
33
 
34
- if ( in_array( $args['username'], $emails ) )
35
- exit( wp_redirect( esc_url( add_query_arg('err', 'blocked_email') ) ) );
 
36
 
37
- if ( in_array( $check_domain, $emails ) )
38
- exit( wp_redirect( esc_url( add_query_arg('err', 'blocked_domain') ) ) );
 
39
 
40
  }
41
  }
@@ -47,18 +52,19 @@ add_action( 'um_submit_form_errors_hook__blockedemails', 'um_submit_form_errors_
47
  *
48
  * @param $args
49
  */
50
- function um_submit_form_errors_hook__blockedips($args){
51
- $ips = UM()->options()->get('blocked_ips');
52
- if ( !$ips )
53
  return;
 
54
 
55
- $ips = array_map("rtrim", explode("\n", $ips));
56
  $user_ip = um_user_ip();
57
 
58
- foreach($ips as $ip) {
59
- $ip = str_replace('*','',$ip);
60
- if ( !empty( $ip ) && strpos($user_ip, $ip) === 0) {
61
- exit( wp_redirect( esc_url( add_query_arg('err', 'blocked_ip') ) ) );
62
  }
63
  }
64
  }
@@ -71,24 +77,24 @@ add_action( 'um_submit_form_errors_hook__blockedips', 'um_submit_form_errors_hoo
71
  * @param $args
72
  */
73
  function um_submit_form_errors_hook__blockedwords( $args ) {
 
 
 
 
 
74
  $form_id = $args['form_id'];
75
  $mode = $args['mode'];
76
  $fields = unserialize( $args['custom_fields'] );
77
 
78
- $words = UM()->options()->get('blocked_words');
79
- if ( $words != '' ) {
80
-
81
- $words = array_map("rtrim", explode("\n", $words));
82
- if ( ! empty( $fields ) && is_array( $fields ) ) {
83
- foreach ( $fields as $key => $array ) {
84
- if ( isset($array['validate']) && in_array( $array['validate'], array('unique_username','unique_email','unique_username_or_email') ) ) {
85
- if ( ! UM()->form()->has_error( $key ) && isset( $args[$key] ) && in_array( $args[$key], $words ) ) {
86
- UM()->form()->add_error( $key, __('You are not allowed to use this word as your username.','ultimate-member') );
87
- }
88
  }
89
  }
90
  }
91
-
92
  }
93
  }
94
  add_action( 'um_submit_form_errors_hook__blockedwords', 'um_submit_form_errors_hook__blockedwords', 10 );
@@ -127,9 +133,10 @@ function um_submit_form_errors_hook( $args ) {
127
  * }
128
  * ?>
129
  */
130
- do_action( "um_submit_form_errors_hook__registration", $args );
131
 
132
  }
 
133
  /**
134
  * UM hook
135
  *
@@ -149,7 +156,7 @@ function um_submit_form_errors_hook( $args ) {
149
  * }
150
  * ?>
151
  */
152
- do_action( "um_submit_form_errors_hook__blockedips", $args );
153
  /**
154
  * UM hook
155
  *
@@ -169,7 +176,7 @@ function um_submit_form_errors_hook( $args ) {
169
  * }
170
  * ?>
171
  */
172
- do_action( "um_submit_form_errors_hook__blockedemails", $args );
173
 
174
  if ( $mode == 'login' ) {
175
  /**
@@ -253,7 +260,7 @@ function um_submit_form_errors_hook( $args ) {
253
  * }
254
  * ?>
255
  */
256
- do_action( "um_submit_form_errors_hook__blockedwords", $args );
257
 
258
  }
259
 
@@ -457,10 +464,10 @@ function um_submit_form_errors_hook_( $args ) {
457
  UM()->form()->add_error( $key, sprintf( __( '%s is required.', 'ultimate-member' ), $array['title'] ) );
458
  }
459
 
460
- if ( $key == 'role_select' || $key == 'role_radio' ) {
461
- if ( isset( $array['required'] ) && $array['required'] == 1 && ( ! isset( $args['role'] ) || empty( $args['role'] ) ) ) {
462
- UM()->form()->add_error( 'role', __( 'Please specify account type.', 'ultimate-member' ) );
463
- }
464
  }
465
 
466
  /**
@@ -662,12 +669,6 @@ function um_submit_form_errors_hook_( $args ) {
662
  }
663
  break;
664
 
665
- case 'skype':
666
- if ( ! UM()->validation()->is_url( $args[ $key ], 'skype.com' ) ) {
667
- UM()->form()->add_error( $key, sprintf( __( 'Please enter a valid %s username or profile URL', 'ultimate-member' ), $array['label'] ) );
668
- }
669
- break;
670
-
671
  case 'unique_username':
672
 
673
  if ( $args[ $key ] == '' ) {
1
+ <?php if ( ! defined( 'ABSPATH' ) ) exit;
2
 
3
 
4
  /**
8
  */
9
  function um_submit_form_errors_hook__blockedemails( $args ) {
10
  $emails = UM()->options()->get( 'blocked_emails' );
11
+ if ( ! $emails ) {
12
  return;
13
+ }
14
 
15
+ $emails = array_map( 'rtrim', explode( "\n", $emails ) );
16
 
17
  if ( isset( $args['user_email'] ) && is_email( $args['user_email'] ) ) {
18
 
19
+ $domain = explode( '@', $args['user_email'] );
20
+ $check_domain = str_replace( $domain[0], '*', $args['user_email'] );
21
 
22
+ if ( in_array( $args['user_email'], $emails ) ) {
23
+ exit( wp_redirect( esc_url( add_query_arg( 'err', 'blocked_email' ) ) ) );
24
+ }
25
 
26
+ if ( in_array( $check_domain, $emails ) ) {
27
+ exit( wp_redirect( esc_url( add_query_arg( 'err', 'blocked_domain' ) ) ) );
28
+ }
29
 
30
  }
31
 
32
  if ( isset( $args['username'] ) && is_email( $args['username'] ) ) {
33
 
34
+ $domain = explode( '@', $args['username'] );
35
+ $check_domain = str_replace( $domain[0], '*', $args['username'] );
36
 
37
+ if ( in_array( $args['username'], $emails ) ) {
38
+ exit( wp_redirect( esc_url( add_query_arg( 'err', 'blocked_email' ) ) ) );
39
+ }
40
 
41
+ if ( in_array( $check_domain, $emails ) ) {
42
+ exit( wp_redirect( esc_url( add_query_arg( 'err', 'blocked_domain' ) ) ) );
43
+ }
44
 
45
  }
46
  }
52
  *
53
  * @param $args
54
  */
55
+ function um_submit_form_errors_hook__blockedips( $args ) {
56
+ $ips = UM()->options()->get( 'blocked_ips' );
57
+ if ( ! $ips ) {
58
  return;
59
+ }
60
 
61
+ $ips = array_map( 'rtrim', explode( "\n", $ips ) );
62
  $user_ip = um_user_ip();
63
 
64
+ foreach ( $ips as $ip ) {
65
+ $ip = str_replace( '*', '', $ip );
66
+ if ( ! empty( $ip ) && strpos( $user_ip, $ip ) === 0 ) {
67
+ exit( wp_redirect( esc_url( add_query_arg( 'err', 'blocked_ip' ) ) ) );
68
  }
69
  }
70
  }
77
  * @param $args
78
  */
79
  function um_submit_form_errors_hook__blockedwords( $args ) {
80
+ $words = UM()->options()->get( 'blocked_words' );
81
+ if ( empty( $words ) ) {
82
+ return;
83
+ }
84
+
85
  $form_id = $args['form_id'];
86
  $mode = $args['mode'];
87
  $fields = unserialize( $args['custom_fields'] );
88
 
89
+ $words = array_map( 'rtrim', explode( "\n", $words ) );
90
+ if ( ! empty( $fields ) && is_array( $fields ) ) {
91
+ foreach ( $fields as $key => $array ) {
92
+ if ( isset( $array['validate'] ) && in_array( $array['validate'], array( 'unique_username', 'unique_email', 'unique_username_or_email' ) ) ) {
93
+ if ( ! UM()->form()->has_error( $key ) && isset( $args[ $key ] ) && in_array( $args[ $key ], $words ) ) {
94
+ UM()->form()->add_error( $key, __( 'You are not allowed to use this word as your username.', 'ultimate-member' ) );
 
 
 
 
95
  }
96
  }
97
  }
 
98
  }
99
  }
100
  add_action( 'um_submit_form_errors_hook__blockedwords', 'um_submit_form_errors_hook__blockedwords', 10 );
133
  * }
134
  * ?>
135
  */
136
+ do_action( 'um_submit_form_errors_hook__registration', $args );
137
 
138
  }
139
+
140
  /**
141
  * UM hook
142
  *
156
  * }
157
  * ?>
158
  */
159
+ do_action( 'um_submit_form_errors_hook__blockedips', $args );
160
  /**
161
  * UM hook
162
  *
176
  * }
177
  * ?>
178
  */
179
+ do_action( 'um_submit_form_errors_hook__blockedemails', $args );
180
 
181
  if ( $mode == 'login' ) {
182
  /**
260
  * }
261
  * ?>
262
  */
263
+ do_action( 'um_submit_form_errors_hook__blockedwords', $args );
264
 
265
  }
266
 
464
  UM()->form()->add_error( $key, sprintf( __( '%s is required.', 'ultimate-member' ), $array['title'] ) );
465
  }
466
 
467
+ /* WordPress uses the default user role if the role wasn't chosen in the registration form. That is why we should use submitted data to validate fields Roles (Radio) and Roles (Dropdown). */
468
+ if ( in_array( $key, array( 'role_radio', 'role_select' ) ) && isset( $array['required'] ) && $array['required'] == 1 && empty( UM()->form()->post_form['submitted']['role'] ) ) {
469
+ UM()->form()->add_error( 'role', __( 'Please specify account type.', 'ultimate-member' ) );
470
+ UM()->form()->post_form[ $key ] = '';
471
  }
472
 
473
  /**
669
  }
670
  break;
671
 
 
 
 
 
 
 
672
  case 'unique_username':
673
 
674
  if ( $args[ $key ] == '' ) {
includes/core/um-actions-global.php CHANGED
@@ -57,7 +57,7 @@ add_action( 'wp_head', 'um_add_form_honeypot_css' );
57
  function um_add_form_honeypot_js() {
58
  ?>
59
  <script type="text/javascript">
60
- jQuery(window).load(function() {
61
  jQuery("input[name='<?php echo esc_js( UM()->honeypot ); ?>']").val('');
62
  });
63
  </script>
57
  function um_add_form_honeypot_js() {
58
  ?>
59
  <script type="text/javascript">
60
+ jQuery( window ).on( 'load', function() {
61
  jQuery("input[name='<?php echo esc_js( UM()->honeypot ); ?>']").val('');
62
  });
63
  </script>
includes/core/um-actions-login.php CHANGED
@@ -27,22 +27,25 @@ function um_submit_form_errors_hook_login( $args ) {
27
  }
28
 
29
  if ( isset( $args['username'] ) ) {
 
30
  $field = 'username';
31
  if ( is_email( $args['username'] ) ) {
32
  $is_email = true;
33
  $data = get_user_by('email', $args['username'] );
34
- $user_name = (isset ( $data->user_login ) ) ? $data->user_login : null;
35
  } else {
36
  $user_name = $args['username'];
37
  }
38
  } elseif ( isset( $args['user_email'] ) ) {
 
39
  $field = 'user_email';
40
  $is_email = true;
41
  $data = get_user_by('email', $args['user_email'] );
42
- $user_name = (isset ( $data->user_login ) ) ? $data->user_login : null;
43
  } else {
44
  $field = 'user_login';
45
  $user_name = $args['user_login'];
 
46
  }
47
 
48
  if ( $args['user_password'] == '' ) {
@@ -56,18 +59,16 @@ function um_submit_form_errors_hook_login( $args ) {
56
  UM()->form()->add_error( 'user_password', __( 'Password is incorrect. Please try again.', 'ultimate-member' ) );
57
  }
58
 
59
- $user = apply_filters( 'authenticate', null, $user_name, $args['user_password'] );
60
-
61
- $authenticate_user = apply_filters( 'wp_authenticate_user', $user_name, $args['user_password'] );
62
-
63
  // @since 4.18 replacement for 'wp_login_failed' action hook
64
  // see WP function wp_authenticate()
65
- $ignore_codes = array('empty_username', 'empty_password');
66
 
 
67
  if ( is_wp_error( $user ) && ! in_array( $user->get_error_code(), $ignore_codes ) ) {
68
  UM()->form()->add_error( $user->get_error_code(), __( $user->get_error_message(), 'ultimate-member' ) );
69
  }
70
 
 
71
  if ( is_wp_error( $authenticate_user ) && ! in_array( $authenticate_user->get_error_code(), $ignore_codes ) ) {
72
  UM()->form()->add_error( $authenticate_user->get_error_code(), __( $authenticate_user->get_error_message(), 'ultimate-member' ) );
73
  }
@@ -469,18 +470,4 @@ add_action( 'um_after_login_fields', 'um_after_login_submit', 1001 );
469
  function um_add_login_fields( $args ) {
470
  echo UM()->fields()->display( 'login', $args );
471
  }
472
- add_action( 'um_main_login_fields', 'um_add_login_fields', 100 );
473
-
474
-
475
- /**
476
- * Remove authenticate filter
477
- * @uses 'wp_authenticate_username_password_before'
478
- *
479
- * @param $user
480
- * @param $username
481
- * @param $password
482
- */
483
- function um_auth_username_password_before( $user, $username, $password ) {
484
- remove_filter( 'authenticate', 'wp_authenticate_username_password', 20 );
485
- }
486
- add_action( 'wp_authenticate_username_password_before', 'um_auth_username_password_before', 10, 3 );
27
  }
28
 
29
  if ( isset( $args['username'] ) ) {
30
+ $authenticate = $args['username'];
31
  $field = 'username';
32
  if ( is_email( $args['username'] ) ) {
33
  $is_email = true;
34
  $data = get_user_by('email', $args['username'] );
35
+ $user_name = isset( $data->user_login ) ? $data->user_login : null;
36
  } else {
37
  $user_name = $args['username'];
38
  }
39
  } elseif ( isset( $args['user_email'] ) ) {
40
+ $authenticate = $args['user_email'];
41
  $field = 'user_email';
42
  $is_email = true;
43
  $data = get_user_by('email', $args['user_email'] );
44
+ $user_name = isset( $data->user_login ) ? $data->user_login : null;
45
  } else {
46
  $field = 'user_login';
47
  $user_name = $args['user_login'];
48
+ $authenticate = $args['user_login'];
49
  }
50
 
51
  if ( $args['user_password'] == '' ) {
59
  UM()->form()->add_error( 'user_password', __( 'Password is incorrect. Please try again.', 'ultimate-member' ) );
60
  }
61
 
 
 
 
 
62
  // @since 4.18 replacement for 'wp_login_failed' action hook
63
  // see WP function wp_authenticate()
64
+ $ignore_codes = array( 'empty_username', 'empty_password' );
65
 
66
+ $user = apply_filters( 'authenticate', null, $authenticate, $args['user_password'] );
67
  if ( is_wp_error( $user ) && ! in_array( $user->get_error_code(), $ignore_codes ) ) {
68
  UM()->form()->add_error( $user->get_error_code(), __( $user->get_error_message(), 'ultimate-member' ) );
69
  }
70
 
71
+ $authenticate_user = apply_filters( 'wp_authenticate_user', $user_name, $args['user_password'] );
72
  if ( is_wp_error( $authenticate_user ) && ! in_array( $authenticate_user->get_error_code(), $ignore_codes ) ) {
73
  UM()->form()->add_error( $authenticate_user->get_error_code(), __( $authenticate_user->get_error_message(), 'ultimate-member' ) );
74
  }
470
  function um_add_login_fields( $args ) {
471
  echo UM()->fields()->display( 'login', $args );
472
  }
473
+ add_action( 'um_main_login_fields', 'um_add_login_fields', 100 );
 
 
 
 
 
 
 
 
 
 
 
 
 
 
includes/core/um-actions-profile.php CHANGED
@@ -529,8 +529,8 @@ function um_user_edit_profile( $args ) {
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
  }
@@ -587,34 +587,109 @@ function um_editing_user_id_input( $args ) {
587
  add_action( 'um_after_form_fields', 'um_editing_user_id_input' );
588
 
589
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
590
  /**
591
  * Meta description
 
 
 
 
592
  */
593
  function um_profile_dynamic_meta_desc() {
594
  if ( um_is_core_page( 'user' ) && um_get_requested_user() ) {
595
 
596
- um_fetch_user( um_get_requested_user() );
597
-
598
- $content = um_convert_tags( UM()->options()->get( 'profile_desc' ) );
599
- $user_id = um_user( 'ID' );
600
 
601
- $url = um_user_profile_url();
602
- $avatar = um_get_user_avatar_url( $user_id, 'original' );
 
603
 
604
- um_reset_user(); ?>
 
 
605
 
606
- <meta name="description" content="<?php echo esc_attr( $content ); ?>">
 
 
 
 
 
 
 
 
 
 
 
 
 
 
607
 
608
- <meta property="og:title" content="<?php echo esc_attr( um_get_display_name( $user_id ) ); ?>"/>
609
- <meta property="og:type" content="article"/>
610
- <meta property="og:image" content="<?php echo esc_url( $avatar ); ?>"/>
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
611
  <meta property="og:url" content="<?php echo esc_url( $url ); ?>"/>
612
- <meta property="og:description" content="<?php echo esc_attr( $content ); ?>"/>
613
 
 
 
 
 
 
 
 
 
 
 
 
614
  <?php
615
  }
616
  }
617
- add_action( 'wp_head', 'um_profile_dynamic_meta_desc', 9999999 );
618
 
619
 
620
  /**
529
  do_action( 'um_update_profile_full_name', $user_id, $to_update );
530
 
531
  if ( ! isset( $args['is_signup'] ) ) {
 
532
  $url = um_user_profile_url( $user_id );
533
+ $url = apply_filters( 'um_update_profile_redirect_after', $url, $user_id, $args );
534
  exit( wp_redirect( um_edit_my_profile_cancel_uri( $url ) ) );
535
  }
536
  }
587
  add_action( 'um_after_form_fields', 'um_editing_user_id_input' );
588
 
589
 
590
+ /**
591
+ * Remove Yoast from front end for the Profile page
592
+ *
593
+ * @see https://gist.github.com/amboutwe/1c847f9c706ff6f8c9eca76abea23fb6
594
+ * @since 2.1.6
595
+ */
596
+ if ( !function_exists( 'um_profile_remove_wpseo' ) ) {
597
+
598
+ function um_profile_remove_wpseo() {
599
+ if ( um_is_core_page( 'user' ) && um_get_requested_user() ) {
600
+
601
+ /* Yoast SEO 12.4 */
602
+ if ( isset( $GLOBALS['wpseo_front'] ) && is_object( $GLOBALS['wpseo_front'] ) ) {
603
+ remove_action( 'wp_head', array( $GLOBALS['wpseo_front'], 'head' ), 1 );
604
+ } elseif ( class_exists( 'WPSEO_Frontend' ) && is_callable( array( 'WPSEO_Frontend', 'get_instance' ) ) ) {
605
+ remove_action( 'wp_head', array( WPSEO_Frontend::get_instance(), 'head' ), 1 );
606
+ }
607
+
608
+ /* Yoast SEO 14.1 */
609
+ remove_all_filters( 'wpseo_head' );
610
+
611
+ if( ! has_action( 'wp_head', '_wp_render_title_tag' ) ){
612
+ add_action( 'wp_head', '_wp_render_title_tag', 18 );
613
+ }
614
+ }
615
+ }
616
+
617
+ }
618
+ add_action( 'get_header', 'um_profile_remove_wpseo', 8 );
619
+
620
+
621
  /**
622
  * Meta description
623
+ *
624
+ * @see https://ogp.me/ - The Open Graph protocol
625
+ * @see https://developer.twitter.com/en/docs/tweets/optimize-with-cards/overview/summary - The Twitter Summary card
626
+ * @see https://schema.org/Person - The schema.org Person schema
627
  */
628
  function um_profile_dynamic_meta_desc() {
629
  if ( um_is_core_page( 'user' ) && um_get_requested_user() ) {
630
 
631
+ $user_id = um_get_requested_user();
632
+ um_fetch_user( $user_id );
 
 
633
 
634
+ $locale = get_user_locale( $user_id );
635
+ $site_name = get_bloginfo( 'name' );
636
+ $twitter_site = '@' . sanitize_title( $site_name );
637
 
638
+ $title = trim( um_user( 'display_name' ) );
639
+ $description = um_convert_tags( UM()->options()->get( 'profile_desc' ) );
640
+ $url = um_user_profile_url( $user_id );
641
 
642
+ $size = 190;
643
+ $sizes = UM()->options()->get( 'photo_thumb_sizes' );
644
+ if ( is_array( $sizes ) ) {
645
+ $size = um_closest_num( $sizes, $size );
646
+ }
647
+ $image = um_get_user_avatar_url( $user_id, $size );
648
+
649
+ $person = array(
650
+ "@context" => "http://schema.org",
651
+ "@type" => "Person",
652
+ "name" => esc_attr( $title ),
653
+ "description" => esc_attr( $description ),
654
+ "image" => esc_url( $image ),
655
+ "url" => esc_url( $url )
656
+ );
657
 
658
+ um_reset_user();
659
+ ?>
660
+ <!-- START - Ultimate Member profile SEO meta tags -->
661
+
662
+ <link rel="canonical" href="<?php echo esc_url( $url ); ?>"/>
663
+ <link rel="image_src" href="<?php echo esc_url( $image ); ?>"/>
664
+
665
+ <meta name="description" content="<?php echo esc_attr( $description ); ?>"/>
666
+
667
+ <meta property="og:type" content="profile"/>
668
+ <meta property="og:locale" content="<?php echo esc_attr( $locale ); ?>"/>
669
+ <meta property="og:site_name" content="<?php echo esc_attr( $site_name ); ?>"/>
670
+ <meta property="og:title" content="<?php echo esc_attr( $title ); ?>"/>
671
+ <meta property="og:description" content="<?php echo esc_attr( $description ); ?>"/>
672
+ <meta property="og:image" content="<?php echo esc_url( $image ); ?>"/>
673
+ <meta property="og:image:alt" content="<?php echo esc_attr_e( 'Profile photo', 'ultimate-member' ); ?>"/>
674
+ <meta property="og:image:height" content="<?php echo intval( $size ); ?>"/>
675
+ <meta property="og:image:width" content="<?php echo intval( $size ); ?>"/>
676
  <meta property="og:url" content="<?php echo esc_url( $url ); ?>"/>
 
677
 
678
+ <meta name="twitter:card" content="summary"/>
679
+ <meta name="twitter:site" content="<?php echo esc_attr( $twitter_site ); ?>"/>
680
+ <meta name="twitter:title" content="<?php echo esc_attr( $title ); ?>"/>
681
+ <meta name="twitter:description" content="<?php echo esc_attr( $description ); ?>"/>
682
+ <meta name="twitter:image" content="<?php echo esc_url( $image ); ?>"/>
683
+ <meta name="twitter:image:alt" content="<?php echo esc_attr_e( 'Profile photo', 'ultimate-member' ); ?>"/>
684
+ <meta name="twitter:url" content="<?php echo esc_url( $url ); ?>"/>
685
+
686
+ <script type="application/ld+json"><?php echo json_encode( $person ); ?></script>
687
+
688
+ <!-- END - Ultimate Member profile SEO meta tags -->
689
  <?php
690
  }
691
  }
692
+ add_action( 'wp_head', 'um_profile_dynamic_meta_desc', 20 );
693
 
694
 
695
  /**
includes/core/um-actions-register.php CHANGED
@@ -63,7 +63,12 @@ function um_after_insert_user( $user_id, $args ) {
63
  if ( ! empty( $args['submitted'] ) ) {
64
  UM()->user()->set_registration_details( $args['submitted'], $args );
65
  }
66
- UM()->user()->set_status( um_user( 'status' ) );
 
 
 
 
 
67
 
68
  /**
69
  * UM hook
63
  if ( ! empty( $args['submitted'] ) ) {
64
  UM()->user()->set_registration_details( $args['submitted'], $args );
65
  }
66
+
67
+ /* save user status */
68
+ UM()->user()->set_status( um_user( 'status' ) );
69
+
70
+ /* create user uploads directory */
71
+ UM()->uploader()->get_upload_user_base_dir( $user_id, true );
72
 
73
  /**
74
  * UM hook
includes/core/um-actions-wpadmin.php CHANGED
@@ -34,12 +34,8 @@ add_action( 'init', 'um_block_wpadmin_by_user_role', 99 );
34
  * @return bool
35
  */
36
  function um_control_admin_bar( $show ) {
37
- if ( is_user_logged_in() && um_user( 'can_not_see_adminbar' ) ) {
38
  $show = false;
39
-
40
- /*if ( is_admin() && um_user( 'can_access_wpadmin' ) ) {
41
- $show = true;
42
- }*/
43
  }
44
 
45
  return apply_filters( 'um_show_admin_bar_callback', $show );
34
  * @return bool
35
  */
36
  function um_control_admin_bar( $show ) {
37
+ if ( is_user_logged_in() && UM()->roles()->um_user_can( 'can_not_see_adminbar' ) ) {
38
  $show = false;
 
 
 
 
39
  }
40
 
41
  return apply_filters( 'um_show_admin_bar_callback', $show );
includes/core/um-filters-fields.php CHANGED
@@ -722,15 +722,15 @@ function um_profile_field_filter_xss_validation( $value, $data, $type = '' ) {
722
  */
723
  $option_pairs = apply_filters( 'um_select_options_pair', null, $data );
724
 
725
- $arr = $data['options'];
726
  if ( $option_pairs ) {
727
- $arr = array_keys( $data['options'] );
728
  }
729
 
730
  if ( ! empty( $arr ) && ! in_array( $value, array_map( 'trim', $arr ) ) && empty( $data['custom_dropdown_options_source'] ) ) {
731
  $value = '';
732
  } else {
733
- if ( $option_pairs ) {
734
  $value = $data['options'][ $value ];
735
  }
736
  }
722
  */
723
  $option_pairs = apply_filters( 'um_select_options_pair', null, $data );
724
 
725
+ $arr = empty( $data['options'] ) ? array() : $data['options'];
726
  if ( $option_pairs ) {
727
+ $arr = array_keys( $arr );
728
  }
729
 
730
  if ( ! empty( $arr ) && ! in_array( $value, array_map( 'trim', $arr ) ) && empty( $data['custom_dropdown_options_source'] ) ) {
731
  $value = '';
732
  } else {
733
+ if ( $option_pairs && isset( $data['options'] ) && is_array( $data['options'] ) && isset( $data['options'][ $value ] ) ) {
734
  $value = $data['options'][ $value ];
735
  }
736
  }
includes/core/um-filters-login.php CHANGED
@@ -55,7 +55,7 @@ add_filter( 'login_message', 'um_custom_wp_err_messages' );
55
 
56
 
57
  /**
58
- * Check for blocked ip
59
  *
60
  * @param $user
61
  * @param $username
@@ -65,47 +65,8 @@ add_filter( 'login_message', 'um_custom_wp_err_messages' );
65
  */
66
  function um_wp_form_errors_hook_ip_test( $user, $username, $password ) {
67
  if ( ! empty( $username ) ) {
68
- /**
69
- * UM hook
70
- *
71
- * @type action
72
- * @title um_submit_form_errors_hook__blockedips
73
- * @description Hook that runs after user reset their password
74
- * @input_vars
75
- * [{"var":"$args","type":"array","desc":"Form data"}]
76
- * @change_log
77
- * ["Since: 2.0"]
78
- * @usage add_action( 'um_submit_form_errors_hook__blockedips', 'function_name', 10, 1 );
79
- * @example
80
- * <?php
81
- * add_action( 'um_submit_form_errors_hook__blockedips', 'my_submit_form_errors_hook__blockedips', 10, 1 );
82
- * function my_submit_form_errors_hook__blockedips( $args ) {
83
- * // your code here
84
- * }
85
- * ?>
86
- */
87
- do_action( "um_submit_form_errors_hook__blockedips", $args = array() );
88
- /**
89
- * UM hook
90
- *
91
- * @type action
92
- * @title um_submit_form_errors_hook__blockedemails
93
- * @description Hook that runs after user reset their password
94
- * @input_vars
95
- * [{"var":"$args","type":"array","desc":"Form data"}]
96
- * @change_log
97
- * ["Since: 2.0"]
98
- * @usage add_action( 'um_submit_form_errors_hook__blockedemails', 'function_name', 10, 1 );
99
- * @example
100
- * <?php
101
- * add_action( 'um_submit_form_errors_hook__blockedemails', 'my_submit_form_errors_hook__blockedemails', 10, 1 );
102
- * function my_submit_form_errors_hook__blockedemails( $args ) {
103
- * // your code here
104
- * }
105
- * ?>
106
- */
107
- do_action( "um_submit_form_errors_hook__blockedemails", $args = array( 'username' => $username ) );
108
-
109
  }
110
 
111
  return $user;
@@ -124,35 +85,34 @@ add_filter( 'authenticate', 'um_wp_form_errors_hook_ip_test', 10, 3 );
124
  */
125
  function um_wp_form_errors_hook_logincheck( $user, $username, $password ) {
126
 
127
- do_action( 'wp_authenticate_username_password_before', $user, $username, $password );
128
-
129
  if ( isset( $user->ID ) ) {
130
 
131
  um_fetch_user( $user->ID );
132
- $status = um_user('account_status');
133
 
134
  switch( $status ) {
135
  case 'inactive':
136
- return new WP_Error( $status, __('Your account has been disabled.','ultimate-member') );
137
  break;
138
  case 'awaiting_admin_review':
139
- return new WP_Error( $status, __('Your account has not been approved yet.','ultimate-member') );
140
  break;
141
  case 'awaiting_email_confirmation':
142
- return new WP_Error( $status, __('Your account is awaiting e-mail verification.','ultimate-member') );
143
  break;
144
  case 'rejected':
145
- return new WP_Error( $status, __('Your membership request has been rejected.','ultimate-member') );
146
  break;
147
  }
148
 
149
  }
150
 
151
- return wp_authenticate_username_password( $user, $username, $password );
152
 
153
  }
154
  add_filter( 'authenticate', 'um_wp_form_errors_hook_logincheck', 50, 3 );
155
 
 
156
  /**
157
  * Change lost password url in UM Login form
158
  * @param string $lostpassword_url
@@ -160,11 +120,10 @@ add_filter( 'authenticate', 'um_wp_form_errors_hook_logincheck', 50, 3 );
160
  */
161
  function um_lostpassword_url( $lostpassword_url ) {
162
 
163
- if( um_is_core_page("login") ){
164
- return um_get_core_page("password-reset");
165
  }
166
 
167
  return $lostpassword_url;
168
  }
169
- add_filter( 'lostpassword_url', 'um_lostpassword_url', 10, 1 );
170
-
55
 
56
 
57
  /**
58
+ * Check for blocked IPs or Email on wp-login.php form
59
  *
60
  * @param $user
61
  * @param $username
65
  */
66
  function um_wp_form_errors_hook_ip_test( $user, $username, $password ) {
67
  if ( ! empty( $username ) ) {
68
+ do_action( 'um_submit_form_errors_hook__blockedips', array() );
69
+ do_action( 'um_submit_form_errors_hook__blockedemails', array( 'username' => $username ) );
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
70
  }
71
 
72
  return $user;
85
  */
86
  function um_wp_form_errors_hook_logincheck( $user, $username, $password ) {
87
 
 
 
88
  if ( isset( $user->ID ) ) {
89
 
90
  um_fetch_user( $user->ID );
91
+ $status = um_user( 'account_status' );
92
 
93
  switch( $status ) {
94
  case 'inactive':
95
+ return new WP_Error( $status, __( 'Your account has been disabled.', 'ultimate-member' ) );
96
  break;
97
  case 'awaiting_admin_review':
98
+ return new WP_Error( $status, __( 'Your account has not been approved yet.', 'ultimate-member' ) );
99
  break;
100
  case 'awaiting_email_confirmation':
101
+ return new WP_Error( $status, __( 'Your account is awaiting e-mail verification.', 'ultimate-member' ) );
102
  break;
103
  case 'rejected':
104
+ return new WP_Error( $status, __( 'Your membership request has been rejected.', 'ultimate-member' ) );
105
  break;
106
  }
107
 
108
  }
109
 
110
+ return $user;
111
 
112
  }
113
  add_filter( 'authenticate', 'um_wp_form_errors_hook_logincheck', 50, 3 );
114
 
115
+
116
  /**
117
  * Change lost password url in UM Login form
118
  * @param string $lostpassword_url
120
  */
121
  function um_lostpassword_url( $lostpassword_url ) {
122
 
123
+ if ( um_is_core_page( 'login' ) ) {
124
+ return um_get_core_page( 'password-reset' );
125
  }
126
 
127
  return $lostpassword_url;
128
  }
129
+ add_filter( 'lostpassword_url', 'um_lostpassword_url', 10, 1 );
 
includes/um-deprecated-functions.php CHANGED
@@ -451,7 +451,11 @@ function um_members( $argument ) {
451
  function um_get_search_form() {
452
  //um_deprecated_function( 'um_get_search_form', '2.1.0', 'do_shortcode( \'[ultimatemember_searchform]\' )' );
453
 
454
- return do_shortcode( '[ultimatemember_searchform]' );
 
 
 
 
455
  }
456
 
457
 
451
  function um_get_search_form() {
452
  //um_deprecated_function( 'um_get_search_form', '2.1.0', 'do_shortcode( \'[ultimatemember_searchform]\' )' );
453
 
454
+ if ( version_compare( get_bloginfo('version'),'5.4', '<' ) ) {
455
+ return do_shortcode( '[ultimatemember_searchform]' );
456
+ } else {
457
+ return apply_shortcodes( '[ultimatemember_searchform]' );
458
+ }
459
  }
460
 
461
 
includes/widgets/class-um-search-widget.php CHANGED
@@ -50,7 +50,12 @@ class UM_Search_Widget extends \WP_Widget {
50
  }
51
 
52
  // display the search form
53
- echo do_shortcode( '[ultimatemember_searchform /]' );
 
 
 
 
 
54
 
55
  echo $args['after_widget'];
56
  }
50
  }
51
 
52
  // display the search form
53
+ if ( version_compare( get_bloginfo('version'),'5.4', '<' ) ) {
54
+ echo do_shortcode( '[ultimatemember_searchform /]' );
55
+ } else {
56
+ echo apply_shortcodes( '[ultimatemember_searchform /]' );
57
+ }
58
+
59
 
60
  echo $args['after_widget'];
61
  }
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: 2020-04-01 18:27+0300\n"
5
- "PO-Revision-Date: 2020-04-01 18:27+0300\n"
6
  "Last-Translator: \n"
7
  "Language-Team: \n"
8
  "Language: en_US\n"
@@ -103,7 +103,7 @@ msgstr ""
103
  #: includes/admin/core/class-admin-builder.php:763
104
  #: includes/admin/core/class-admin-dragdrop.php:33
105
  #: includes/admin/core/class-admin-menu.php:106
106
- #: includes/core/class-fields.php:4532
107
  msgid "Please login as administrator"
108
  msgstr ""
109
 
@@ -181,7 +181,7 @@ msgstr ""
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:396
186
  #: includes/core/class-password.php:535
187
  msgid "This is not possible for security reasons."
@@ -193,9 +193,9 @@ msgstr ""
193
 
194
  #: includes/admin/core/class-admin-columns.php:131
195
  #: includes/admin/core/class-admin-columns.php:151
196
- #: includes/admin/core/class-admin-metabox.php:2142
197
  #: includes/admin/templates/role/role-edit.php:193
198
- #: includes/widgets/class-um-search-widget.php:81
199
  msgid "Title"
200
  msgstr ""
201
 
@@ -219,8 +219,8 @@ msgstr ""
219
 
220
  #: includes/admin/core/class-admin-columns.php:135
221
  #: includes/admin/core/class-admin-columns.php:154
222
- #: includes/admin/core/class-admin-metabox.php:801
223
- #: includes/admin/core/class-admin-metabox.php:963
224
  msgid "Shortcode"
225
  msgstr ""
226
 
@@ -294,13 +294,13 @@ msgstr ""
294
  #: includes/admin/core/class-admin-enqueue.php:485
295
  #: includes/core/class-builtin.php:706 includes/core/class-builtin.php:709
296
  #: includes/core/class-builtin.php:1166 includes/core/class-builtin.php:1169
297
- #: includes/core/um-actions-account.php:520
298
- #: includes/core/um-actions-account.php:561
299
  msgid "Password"
300
  msgstr ""
301
 
302
  #: includes/admin/core/class-admin-enqueue.php:489
303
- #: includes/admin/core/class-admin-metabox.php:2254
304
  #: includes/core/class-account.php:109
305
  msgid "Privacy"
306
  msgstr ""
@@ -320,14 +320,14 @@ msgid "Required"
320
  msgstr ""
321
 
322
  #: includes/admin/core/class-admin-forms.php:526
323
- #: includes/admin/core/class-admin-metabox.php:1432
324
- #: includes/admin/core/class-admin-metabox.php:1460
325
  msgid "Choose Icon"
326
  msgstr ""
327
 
328
  #: includes/admin/core/class-admin-forms.php:532
329
- #: includes/admin/core/class-admin-metabox.php:1434
330
- #: includes/admin/core/class-admin-metabox.php:1462
331
  msgid "No Icon"
332
  msgstr ""
333
 
@@ -340,12 +340,12 @@ msgstr ""
340
  #: includes/admin/core/class-admin-forms.php:1052
341
  #: includes/admin/core/class-admin-forms.php:1178
342
  #: includes/admin/core/class-admin-forms.php:1187
343
- #: includes/admin/core/class-admin-forms.php:1422
344
- #: includes/admin/core/class-admin-forms.php:1436
345
- #: includes/admin/core/class-admin-forms.php:1527
346
- #: includes/admin/core/class-admin-forms.php:1549
347
  #: includes/admin/core/class-admin-notices.php:400
348
- #: includes/core/um-actions-profile.php:673
349
  msgid "Remove"
350
  msgstr ""
351
 
@@ -361,15 +361,15 @@ msgstr ""
361
  msgid "Clear"
362
  msgstr ""
363
 
364
- #: includes/admin/core/class-admin-forms.php:1528
365
- #: includes/admin/core/class-admin-forms.php:1550
366
  #: includes/admin/templates/directory/sorting.php:23
367
  msgid "Meta key"
368
  msgstr ""
369
 
370
- #: includes/admin/core/class-admin-forms.php:1529
371
- #: includes/admin/core/class-admin-forms.php:1551
372
- #: includes/admin/core/class-admin-metabox.php:2234
373
  msgid "Label"
374
  msgstr ""
375
 
@@ -527,965 +527,966 @@ msgstr ""
527
  msgid "Upgrade's Manual Request"
528
  msgstr ""
529
 
530
- #: includes/admin/core/class-admin-metabox.php:222
531
  msgid "UM Content Restriction"
532
  msgstr ""
533
 
534
- #: includes/admin/core/class-admin-metabox.php:374
535
- #: includes/admin/core/class-admin-metabox.php:525
536
  #: includes/admin/templates/access/restrict_content.php:53
537
  msgid "Restrict access to this content?"
538
  msgstr ""
539
 
540
- #: includes/admin/core/class-admin-metabox.php:375
541
- #: includes/admin/core/class-admin-metabox.php:382
542
- #: includes/admin/core/class-admin-metabox.php:395
543
- #: includes/admin/core/class-admin-metabox.php:526
544
- #: includes/admin/core/class-admin-metabox.php:534
545
- #: includes/admin/core/class-admin-metabox.php:548
546
  #: includes/admin/templates/access/restrict_content.php:54
547
  #: includes/admin/templates/access/restrict_content.php:61
548
  #: includes/admin/templates/access/restrict_content.php:74
549
  msgid "Activate content restriction for this post"
550
  msgstr ""
551
 
552
- #: includes/admin/core/class-admin-metabox.php:381
553
- #: includes/admin/core/class-admin-metabox.php:533
554
  #: includes/admin/templates/access/restrict_content.php:60
555
  msgid "Who can access this content?"
556
  msgstr ""
557
 
558
- #: includes/admin/core/class-admin-metabox.php:385
559
- #: includes/admin/core/class-admin-metabox.php:537
560
- #: includes/admin/core/class-admin-metabox.php:2256
561
- #: includes/admin/core/class-admin-navmenu.php:141
 
562
  #: includes/admin/templates/access/restrict_content.php:64
563
  #: includes/core/class-builtin.php:670
564
  msgid "Everyone"
565
  msgstr ""
566
 
567
- #: includes/admin/core/class-admin-metabox.php:386
568
- #: includes/admin/core/class-admin-metabox.php:538
569
  #: includes/admin/templates/access/restrict_content.php:65
570
  msgid "Logged out users"
571
  msgstr ""
572
 
573
- #: includes/admin/core/class-admin-metabox.php:387
574
- #: includes/admin/core/class-admin-metabox.php:539
575
  #: includes/admin/templates/access/restrict_content.php:66
576
  msgid "Logged in users"
577
  msgstr ""
578
 
579
- #: includes/admin/core/class-admin-metabox.php:394
580
- #: includes/admin/core/class-admin-metabox.php:547
581
  #: includes/admin/templates/access/restrict_content.php:73
582
  msgid "Select which roles can access this content"
583
  msgstr ""
584
 
585
- #: includes/admin/core/class-admin-metabox.php:403
586
- #: includes/admin/core/class-admin-metabox.php:558
587
  #: includes/admin/templates/access/restrict_content.php:83
588
  msgid "What happens when users without access tries to view the content?"
589
  msgstr ""
590
 
591
- #: includes/admin/core/class-admin-metabox.php:404
592
- #: includes/admin/core/class-admin-metabox.php:416
593
- #: includes/admin/core/class-admin-metabox.php:559
594
- #: includes/admin/core/class-admin-metabox.php:572
595
  #: includes/admin/templates/access/restrict_content.php:84
596
  #: includes/admin/templates/access/restrict_content.php:96
597
  msgid "Action when users without access tries to view the content"
598
  msgstr ""
599
 
600
- #: includes/admin/core/class-admin-metabox.php:407
601
- #: includes/admin/core/class-admin-metabox.php:562
602
  #: includes/admin/templates/access/restrict_content.php:87
603
  msgid "Show access restricted message"
604
  msgstr ""
605
 
606
- #: includes/admin/core/class-admin-metabox.php:408
607
- #: includes/admin/core/class-admin-metabox.php:563
608
  #: includes/admin/templates/access/restrict_content.php:88
609
  msgid "Redirect user"
610
  msgstr ""
611
 
612
- #: includes/admin/core/class-admin-metabox.php:415
613
- #: includes/admin/core/class-admin-metabox.php:571
614
  #: includes/admin/templates/access/restrict_content.php:95
615
  msgid ""
616
  "Would you like to use the global default message or apply a custom message "
617
  "to this content?"
618
  msgstr ""
619
 
620
- #: includes/admin/core/class-admin-metabox.php:419
621
- #: includes/admin/core/class-admin-metabox.php:575
622
  #: includes/admin/templates/access/restrict_content.php:99
623
  msgid "Global default message (default)"
624
  msgstr ""
625
 
626
- #: includes/admin/core/class-admin-metabox.php:420
627
- #: includes/admin/core/class-admin-metabox.php:576
628
  #: includes/admin/templates/access/restrict_content.php:100
629
  msgid "Custom message"
630
  msgstr ""
631
 
632
- #: includes/admin/core/class-admin-metabox.php:427
633
- #: includes/admin/core/class-admin-metabox.php:584
634
  #: includes/admin/templates/access/restrict_content.php:107
635
  msgid "Custom Restrict Content message"
636
  msgstr ""
637
 
638
- #: includes/admin/core/class-admin-metabox.php:428
639
- #: includes/admin/core/class-admin-metabox.php:448
640
- #: includes/admin/core/class-admin-metabox.php:585
641
- #: includes/admin/core/class-admin-metabox.php:607
642
  #: includes/admin/templates/access/restrict_content.php:108
643
  #: includes/admin/templates/access/restrict_content.php:128
644
  msgid "Changed global restrict message"
645
  msgstr ""
646
 
647
- #: includes/admin/core/class-admin-metabox.php:435
648
- #: includes/admin/core/class-admin-metabox.php:593
649
  #: includes/admin/templates/access/restrict_content.php:115
650
  msgid "Where should users be redirected to?"
651
  msgstr ""
652
 
653
- #: includes/admin/core/class-admin-metabox.php:436
654
- #: includes/admin/core/class-admin-metabox.php:594
655
  #: includes/admin/templates/access/restrict_content.php:116
656
  msgid "Select redirect to page when user hasn't access to content"
657
  msgstr ""
658
 
659
- #: includes/admin/core/class-admin-metabox.php:440
660
- #: includes/admin/core/class-admin-metabox.php:598
661
  #: includes/admin/templates/access/restrict_content.php:120
662
  msgid "Login page"
663
  msgstr ""
664
 
665
- #: includes/admin/core/class-admin-metabox.php:441
666
- #: includes/admin/core/class-admin-metabox.php:599
667
  #: includes/admin/templates/access/restrict_content.php:121
668
  msgid "Custom URL"
669
  msgstr ""
670
 
671
- #: includes/admin/core/class-admin-metabox.php:447
672
- #: includes/admin/core/class-admin-metabox.php:606
673
  #: includes/admin/templates/access/restrict_content.php:127
674
  msgid "Redirect URL"
675
  msgstr ""
676
 
677
- #: includes/admin/core/class-admin-metabox.php:455
678
- #: includes/admin/core/class-admin-metabox.php:615
679
  #: includes/admin/templates/access/restrict_content.php:135
680
  msgid "Hide from queries"
681
  msgstr ""
682
 
683
- #: includes/admin/core/class-admin-metabox.php:456
684
- #: includes/admin/core/class-admin-metabox.php:616
685
  #: includes/admin/templates/access/restrict_content.php:136
686
  msgid ""
687
  "Hide this content from archives, RSS feeds etc for users who do not have "
688
  "permission to view this content"
689
  msgstr ""
690
 
691
- #: includes/admin/core/class-admin-metabox.php:796
692
  msgid "General Options"
693
  msgstr ""
694
 
695
- #: includes/admin/core/class-admin-metabox.php:797
696
  msgid "Sorting"
697
  msgstr ""
698
 
699
- #: includes/admin/core/class-admin-metabox.php:798
700
  msgid "Profile Card"
701
  msgstr ""
702
 
703
- #: includes/admin/core/class-admin-metabox.php:799
704
  msgid "Search Options"
705
  msgstr ""
706
 
707
- #: includes/admin/core/class-admin-metabox.php:800
708
  msgid "Results &amp; Pagination"
709
  msgstr ""
710
 
711
- #: includes/admin/core/class-admin-metabox.php:802
712
  msgid "Styling: General"
713
  msgstr ""
714
 
715
- #: includes/admin/core/class-admin-metabox.php:815
716
  msgid "Administrative Permissions"
717
  msgstr ""
718
 
719
- #: includes/admin/core/class-admin-metabox.php:823
720
  msgid "General Permissions"
721
  msgstr ""
722
 
723
- #: includes/admin/core/class-admin-metabox.php:831
724
  msgid "Profile Access"
725
  msgstr ""
726
 
727
- #: includes/admin/core/class-admin-metabox.php:842
728
  msgid "Homepage Options"
729
  msgstr ""
730
 
731
- #: includes/admin/core/class-admin-metabox.php:853
732
  msgid "Registration Options"
733
  msgstr ""
734
 
735
- #: includes/admin/core/class-admin-metabox.php:861
736
  msgid "Login Options"
737
  msgstr ""
738
 
739
- #: includes/admin/core/class-admin-metabox.php:869
740
  msgid "Logout Options"
741
  msgstr ""
742
 
743
- #: includes/admin/core/class-admin-metabox.php:877
744
  msgid "Delete Options"
745
  msgstr ""
746
 
747
- #: includes/admin/core/class-admin-metabox.php:885
748
  msgid "Publish"
749
  msgstr ""
750
 
751
- #: includes/admin/core/class-admin-metabox.php:934
752
  msgid "WP Capabilities"
753
  msgstr ""
754
 
755
- #: includes/admin/core/class-admin-metabox.php:961
756
  msgid "Select Form Type"
757
  msgstr ""
758
 
759
- #: includes/admin/core/class-admin-metabox.php:962
760
  msgid "Form Builder"
761
  msgstr ""
762
 
763
- #: includes/admin/core/class-admin-metabox.php:965
764
- #: includes/admin/core/class-admin-metabox.php:986
765
- #: includes/admin/core/class-admin-metabox.php:1008
766
  msgid "Customize this form"
767
  msgstr ""
768
 
769
- #: includes/admin/core/class-admin-metabox.php:987
770
  msgid "User Meta"
771
  msgstr ""
772
 
773
- #: includes/admin/core/class-admin-metabox.php:1009
774
  msgid "Options"
775
  msgstr ""
776
 
777
- #: includes/admin/core/class-admin-metabox.php:1061
778
  #, php-format
779
  msgid "Directory #%s"
780
  msgstr ""
781
 
782
- #: includes/admin/core/class-admin-metabox.php:1149
783
  #, php-format
784
  msgid "Form #%s"
785
  msgstr ""
786
 
787
- #: includes/admin/core/class-admin-metabox.php:1253
788
  msgid "Visibility"
789
  msgstr ""
790
 
791
- #: includes/admin/core/class-admin-metabox.php:1253
792
  msgid ""
793
  "Select where this field should appear. This option should only be changed on "
794
  "the profile form and allows you to show a field in one mode only (edit or "
795
  "view) or in both modes."
796
  msgstr ""
797
 
798
- #: includes/admin/core/class-admin-metabox.php:1255
799
  msgid "View everywhere"
800
  msgstr ""
801
 
802
- #: includes/admin/core/class-admin-metabox.php:1256
803
  msgid "Edit mode only"
804
  msgstr ""
805
 
806
- #: includes/admin/core/class-admin-metabox.php:1257
807
  msgid "View mode only"
808
  msgstr ""
809
 
810
- #: includes/admin/core/class-admin-metabox.php:1285
811
  msgid "If"
812
  msgstr ""
813
 
814
- #: includes/admin/core/class-admin-metabox.php:1362
815
  msgid "Value"
816
  msgstr ""
817
 
818
- #: includes/admin/core/class-admin-metabox.php:1371
819
  msgid "Validate"
820
  msgstr ""
821
 
822
- #: includes/admin/core/class-admin-metabox.php:1371
823
  msgid "Does this field require a special validation"
824
  msgstr ""
825
 
826
- #: includes/admin/core/class-admin-metabox.php:1372
827
  msgid "Select a validation type..."
828
  msgstr ""
829
 
830
- #: includes/admin/core/class-admin-metabox.php:1416
831
  msgid "Custom Action"
832
  msgstr ""
833
 
834
- #: includes/admin/core/class-admin-metabox.php:1416
835
  msgid ""
836
  "If you want to apply your custom validation, you can use action hooks to add "
837
  "custom validation. Please refer to documentation for further details."
838
  msgstr ""
839
 
840
- #: includes/admin/core/class-admin-metabox.php:1430
841
- #: includes/admin/core/class-admin-metabox.php:1458
842
  msgid "Icon"
843
  msgstr ""
844
 
845
- #: includes/admin/core/class-admin-metabox.php:1430
846
- #: includes/admin/core/class-admin-metabox.php:1458
847
  msgid ""
848
  "Select an icon to appear in the field. Leave blank if you do not want an "
849
  "icon to show in the field."
850
  msgstr ""
851
 
852
- #: includes/admin/core/class-admin-metabox.php:1485
853
  msgid "CSS Class"
854
  msgstr ""
855
 
856
- #: includes/admin/core/class-admin-metabox.php:1485
857
  msgid "Specify a custom CSS class to be applied to this element"
858
  msgstr ""
859
 
860
- #: includes/admin/core/class-admin-metabox.php:1495
861
  msgid "Thickness (in pixels)"
862
  msgstr ""
863
 
864
- #: includes/admin/core/class-admin-metabox.php:1495
865
  msgid "This is the width in pixels, e.g. 4 or 2, etc"
866
  msgstr ""
867
 
868
- #: includes/admin/core/class-admin-metabox.php:1505
869
  msgid "Optional Text"
870
  msgstr ""
871
 
872
- #: includes/admin/core/class-admin-metabox.php:1505
873
  msgid "Optional text to include with the divider"
874
  msgstr ""
875
 
876
- #: includes/admin/core/class-admin-metabox.php:1515
877
  msgid "Padding"
878
  msgstr ""
879
 
880
- #: includes/admin/core/class-admin-metabox.php:1515
881
  msgid "Set padding for this section"
882
  msgstr ""
883
 
884
- #: includes/admin/core/class-admin-metabox.php:1525
885
  msgid "Margin"
886
  msgstr ""
887
 
888
- #: includes/admin/core/class-admin-metabox.php:1525
889
  msgid "Set margin for this section"
890
  msgstr ""
891
 
892
- #: includes/admin/core/class-admin-metabox.php:1535
893
  msgid "Border"
894
  msgstr ""
895
 
896
- #: includes/admin/core/class-admin-metabox.php:1535
897
  msgid "Set border for this section"
898
  msgstr ""
899
 
900
- #: includes/admin/core/class-admin-metabox.php:1545
901
- #: includes/admin/core/class-admin-metabox.php:1716
902
  msgid "Style"
903
  msgstr ""
904
 
905
- #: includes/admin/core/class-admin-metabox.php:1545
906
  msgid "Choose the border style"
907
  msgstr ""
908
 
909
- #: includes/admin/core/class-admin-metabox.php:1547
910
- #: includes/admin/core/class-admin-metabox.php:1718
911
  msgid "Solid"
912
  msgstr ""
913
 
914
- #: includes/admin/core/class-admin-metabox.php:1548
915
- #: includes/admin/core/class-admin-metabox.php:1719
916
  msgid "Dotted"
917
  msgstr ""
918
 
919
- #: includes/admin/core/class-admin-metabox.php:1549
920
- #: includes/admin/core/class-admin-metabox.php:1720
921
  msgid "Dashed"
922
  msgstr ""
923
 
924
- #: includes/admin/core/class-admin-metabox.php:1550
925
- #: includes/admin/core/class-admin-metabox.php:1721
926
  msgid "Double"
927
  msgstr ""
928
 
929
- #: includes/admin/core/class-admin-metabox.php:1560
930
  msgid "Border Radius"
931
  msgstr ""
932
 
933
- #: includes/admin/core/class-admin-metabox.php:1560
934
  msgid "Rounded corners can be applied by setting a pixels value here. e.g. 5px"
935
  msgstr ""
936
 
937
- #: includes/admin/core/class-admin-metabox.php:1570
938
  msgid "Border Color"
939
  msgstr ""
940
 
941
- #: includes/admin/core/class-admin-metabox.php:1570
942
  msgid "Give a color to this border"
943
  msgstr ""
944
 
945
- #: includes/admin/core/class-admin-metabox.php:1580
946
  msgid "Enable Row Heading"
947
  msgstr ""
948
 
949
- #: includes/admin/core/class-admin-metabox.php:1580
950
  msgid "Whether to enable a heading for this row"
951
  msgstr ""
952
 
953
- #: includes/admin/core/class-admin-metabox.php:1590
954
  msgid "Heading Text"
955
  msgstr ""
956
 
957
- #: includes/admin/core/class-admin-metabox.php:1590
958
  msgid "Enter the row heading text here"
959
  msgstr ""
960
 
961
- #: includes/admin/core/class-admin-metabox.php:1600
962
  msgid "Background Color"
963
  msgstr ""
964
 
965
- #: includes/admin/core/class-admin-metabox.php:1600
966
  msgid "This will be the background of entire section"
967
  msgstr ""
968
 
969
- #: includes/admin/core/class-admin-metabox.php:1610
970
  msgid "Heading Background Color"
971
  msgstr ""
972
 
973
- #: includes/admin/core/class-admin-metabox.php:1610
974
  msgid "This will be the background of the heading section"
975
  msgstr ""
976
 
977
- #: includes/admin/core/class-admin-metabox.php:1620
978
  msgid "Heading Text Color"
979
  msgstr ""
980
 
981
- #: includes/admin/core/class-admin-metabox.php:1620
982
  msgid "This will be the text color of heading part only"
983
  msgstr ""
984
 
985
- #: includes/admin/core/class-admin-metabox.php:1630
986
  msgid "Text Color"
987
  msgstr ""
988
 
989
- #: includes/admin/core/class-admin-metabox.php:1630
990
  msgid "This will be the text color of entire section"
991
  msgstr ""
992
 
993
- #: includes/admin/core/class-admin-metabox.php:1640
994
  msgid "Icon Color"
995
  msgstr ""
996
 
997
- #: includes/admin/core/class-admin-metabox.php:1640
998
  msgid ""
999
  "This will be the color of selected icon. By default It will be the same "
1000
  "color as heading text color"
1001
  msgstr ""
1002
 
1003
- #: includes/admin/core/class-admin-metabox.php:1650
1004
  msgid "Color"
1005
  msgstr ""
1006
 
1007
- #: includes/admin/core/class-admin-metabox.php:1650
1008
  msgid "Select a color for this divider"
1009
  msgstr ""
1010
 
1011
- #: includes/admin/core/class-admin-metabox.php:1660
1012
  msgid "URL Alt Text"
1013
  msgstr ""
1014
 
1015
- #: includes/admin/core/class-admin-metabox.php:1660
1016
  msgid "Entering custom text here will replace the url with a text link"
1017
  msgstr ""
1018
 
1019
- #: includes/admin/core/class-admin-metabox.php:1670
1020
  msgid "Link Target"
1021
  msgstr ""
1022
 
1023
- #: includes/admin/core/class-admin-metabox.php:1670
1024
  msgid "Choose whether to open this link in same window or in a new window"
1025
  msgstr ""
1026
 
1027
- #: includes/admin/core/class-admin-metabox.php:1672
1028
  msgid "Open in new window"
1029
  msgstr ""
1030
 
1031
- #: includes/admin/core/class-admin-metabox.php:1673
1032
  msgid "Same window"
1033
  msgstr ""
1034
 
1035
- #: includes/admin/core/class-admin-metabox.php:1683
1036
  msgid "SEO Follow"
1037
  msgstr ""
1038
 
1039
- #: includes/admin/core/class-admin-metabox.php:1683
1040
  msgid "Whether to follow or nofollow this link by search engines"
1041
  msgstr ""
1042
 
1043
- #: includes/admin/core/class-admin-metabox.php:1685
1044
  msgid "Follow"
1045
  msgstr ""
1046
 
1047
- #: includes/admin/core/class-admin-metabox.php:1686
1048
  msgid "No-Follow"
1049
  msgstr ""
1050
 
1051
- #: includes/admin/core/class-admin-metabox.php:1696
1052
  msgid "Force strong password?"
1053
  msgstr ""
1054
 
1055
- #: includes/admin/core/class-admin-metabox.php:1696
1056
  msgid ""
1057
  "Turn on to force users to create a strong password (A combination of one "
1058
  "lowercase letter, one uppercase letter, and one number). If turned on this "
1059
  "option is only applied to register forms and not to login forms."
1060
  msgstr ""
1061
 
1062
- #: includes/admin/core/class-admin-metabox.php:1706
1063
  msgid "Automatically add a confirm password field?"
1064
  msgstr ""
1065
 
1066
- #: includes/admin/core/class-admin-metabox.php:1706
1067
  msgid ""
1068
  "Turn on to add a confirm password field. If turned on the confirm password "
1069
  "field will only show on register forms and not on login forms."
1070
  msgstr ""
1071
 
1072
- #: includes/admin/core/class-admin-metabox.php:1716
1073
  msgid "This is the line-style of divider"
1074
  msgstr ""
1075
 
1076
- #: includes/admin/core/class-admin-metabox.php:1732
1077
  msgid "Time Intervals (in minutes)"
1078
  msgstr ""
1079
 
1080
- #: includes/admin/core/class-admin-metabox.php:1732
1081
  msgid "Choose the minutes interval between each time in the time picker."
1082
  msgstr ""
1083
 
1084
- #: includes/admin/core/class-admin-metabox.php:1733
1085
  msgid "e.g. 30, 60, 120"
1086
  msgstr ""
1087
 
1088
- #: includes/admin/core/class-admin-metabox.php:1745
1089
  msgid "Date User-Friendly Format"
1090
  msgstr ""
1091
 
1092
- #: includes/admin/core/class-admin-metabox.php:1745
1093
  msgid "The display format of the date which is visible to user."
1094
  msgstr ""
1095
 
1096
- #: includes/admin/core/class-admin-metabox.php:1756
1097
  msgid "Time Format"
1098
  msgstr ""
1099
 
1100
- #: includes/admin/core/class-admin-metabox.php:1756
1101
  msgid "Choose the displayed time-format for this field"
1102
  msgstr ""
1103
 
1104
- #: includes/admin/core/class-admin-metabox.php:1758
1105
- #: includes/admin/core/class-admin-metabox.php:1759
1106
  msgid "( 12-hr format )"
1107
  msgstr ""
1108
 
1109
- #: includes/admin/core/class-admin-metabox.php:1760
1110
  msgid "( 24-hr format )"
1111
  msgstr ""
1112
 
1113
- #: includes/admin/core/class-admin-metabox.php:1771
1114
  msgid "Use custom Date format"
1115
  msgstr ""
1116
 
1117
- #: includes/admin/core/class-admin-metabox.php:1771
1118
  msgid ""
1119
  "This option overrides \"Date User-Friendly Format\" option. See https://www."
1120
  "php.net/manual/en/function.date.php"
1121
  msgstr ""
1122
 
1123
- #: includes/admin/core/class-admin-metabox.php:1781
1124
  msgid "Displayed Date Format"
1125
  msgstr ""
1126
 
1127
- #: includes/admin/core/class-admin-metabox.php:1781
1128
  msgid ""
1129
  "Whether you wish to show the date in full or only show the years e.g. 25 "
1130
  "Years"
1131
  msgstr ""
1132
 
1133
- #: includes/admin/core/class-admin-metabox.php:1783
1134
  msgid "Show full date"
1135
  msgstr ""
1136
 
1137
- #: includes/admin/core/class-admin-metabox.php:1784
1138
  msgid "Show years only"
1139
  msgstr ""
1140
 
1141
- #: includes/admin/core/class-admin-metabox.php:1800
1142
  msgid "Disable specific weekdays"
1143
  msgstr ""
1144
 
1145
- #: includes/admin/core/class-admin-metabox.php:1800
1146
  msgid ""
1147
  "Disable specific week days from being available for selection in this date "
1148
  "picker"
1149
  msgstr ""
1150
 
1151
- #: includes/admin/core/class-admin-metabox.php:1802
1152
  msgid "Sunday"
1153
  msgstr ""
1154
 
1155
- #: includes/admin/core/class-admin-metabox.php:1803
1156
  msgid "Monday"
1157
  msgstr ""
1158
 
1159
- #: includes/admin/core/class-admin-metabox.php:1804
1160
  msgid "Tuesday"
1161
  msgstr ""
1162
 
1163
- #: includes/admin/core/class-admin-metabox.php:1805
1164
  msgid "Wednesday"
1165
  msgstr ""
1166
 
1167
- #: includes/admin/core/class-admin-metabox.php:1806
1168
  msgid "Thursday"
1169
  msgstr ""
1170
 
1171
- #: includes/admin/core/class-admin-metabox.php:1807
1172
  msgid "Friday"
1173
  msgstr ""
1174
 
1175
- #: includes/admin/core/class-admin-metabox.php:1808
1176
  msgid "Saturday"
1177
  msgstr ""
1178
 
1179
- #: includes/admin/core/class-admin-metabox.php:1818
1180
  msgid "Number of Years to pick from"
1181
  msgstr ""
1182
 
1183
- #: includes/admin/core/class-admin-metabox.php:1818
1184
  msgid ""
1185
  "Number of years available for the date selection. Default to last 50 years"
1186
  msgstr ""
1187
 
1188
- #: includes/admin/core/class-admin-metabox.php:1828
1189
  msgid "Years Selection"
1190
  msgstr ""
1191
 
1192
- #: includes/admin/core/class-admin-metabox.php:1828
1193
  msgid "This decides which years should be shown relative to today date"
1194
  msgstr ""
1195
 
1196
- #: includes/admin/core/class-admin-metabox.php:1830
1197
  msgid "Equal years before / after today"
1198
  msgstr ""
1199
 
1200
- #: includes/admin/core/class-admin-metabox.php:1831
1201
  msgid "Past years only"
1202
  msgstr ""
1203
 
1204
- #: includes/admin/core/class-admin-metabox.php:1832
1205
  msgid "Future years only"
1206
  msgstr ""
1207
 
1208
- #: includes/admin/core/class-admin-metabox.php:1842
1209
  msgid "Date Range Start"
1210
  msgstr ""
1211
 
1212
- #: includes/admin/core/class-admin-metabox.php:1842
1213
  msgid "Set the minimum date/day in range in the format YYYY/MM/DD"
1214
  msgstr ""
1215
 
1216
- #: includes/admin/core/class-admin-metabox.php:1843
1217
- #: includes/admin/core/class-admin-metabox.php:1853
1218
  msgid "YYYY/MM/DD"
1219
  msgstr ""
1220
 
1221
- #: includes/admin/core/class-admin-metabox.php:1852
1222
  msgid "Date Range End"
1223
  msgstr ""
1224
 
1225
- #: includes/admin/core/class-admin-metabox.php:1852
1226
  msgid "Set the maximum date/day in range in the format YYYY/MM/DD"
1227
  msgstr ""
1228
 
1229
- #: includes/admin/core/class-admin-metabox.php:1862
1230
  msgid "Set Date Range"
1231
  msgstr ""
1232
 
1233
- #: includes/admin/core/class-admin-metabox.php:1862
1234
  msgid ""
1235
  "Whether to show a specific number of years or specify a date range to be "
1236
  "available for the date picker."
1237
  msgstr ""
1238
 
1239
- #: includes/admin/core/class-admin-metabox.php:1864
1240
  msgid "Fixed Number of Years"
1241
  msgstr ""
1242
 
1243
- #: includes/admin/core/class-admin-metabox.php:1865
1244
  msgid "Specific Date Range"
1245
  msgstr ""
1246
 
1247
- #: includes/admin/core/class-admin-metabox.php:1878
1248
  msgid "Enter Shortcode"
1249
  msgstr ""
1250
 
1251
- #: includes/admin/core/class-admin-metabox.php:1878
1252
  msgid ""
1253
  "Enter the shortcode in the following textarea and it will be displayed on "
1254
  "the fields"
1255
  msgstr ""
1256
 
1257
- #: includes/admin/core/class-admin-metabox.php:1879
1258
  msgid "e.g. [my_custom_shortcode]"
1259
  msgstr ""
1260
 
1261
- #: includes/admin/core/class-admin-metabox.php:1888
1262
  msgid "Content Editor"
1263
  msgstr ""
1264
 
1265
- #: includes/admin/core/class-admin-metabox.php:1888
1266
  msgid "Edit the content of this field here"
1267
  msgstr ""
1268
 
1269
- #: includes/admin/core/class-admin-metabox.php:1901
1270
  msgid "Crop Feature"
1271
  msgstr ""
1272
 
1273
- #: includes/admin/core/class-admin-metabox.php:1901
1274
  msgid "Enable/disable crop feature for this image upload and define ratio"
1275
  msgstr ""
1276
 
1277
- #: includes/admin/core/class-admin-metabox.php:1903
1278
  msgid "Turn Off (Default)"
1279
  msgstr ""
1280
 
1281
- #: includes/admin/core/class-admin-metabox.php:1904
1282
  msgid "Crop and force 1:1 ratio"
1283
  msgstr ""
1284
 
1285
- #: includes/admin/core/class-admin-metabox.php:1905
1286
  msgid "Crop and force user-defined ratio"
1287
  msgstr ""
1288
 
1289
- #: includes/admin/core/class-admin-metabox.php:1922
1290
  msgid "Allowed Image Types"
1291
  msgstr ""
1292
 
1293
- #: includes/admin/core/class-admin-metabox.php:1922
1294
- #: includes/admin/core/class-admin-metabox.php:1940
1295
  msgid ""
1296
  "Select the image types that you want to allow to be uploaded via this field."
1297
  msgstr ""
1298
 
1299
- #: includes/admin/core/class-admin-metabox.php:1940
1300
  msgid "Allowed File Types"
1301
  msgstr ""
1302
 
1303
- #: includes/admin/core/class-admin-metabox.php:1957
1304
  msgid "Drag &amp; Drop Photo"
1305
  msgstr ""
1306
 
1307
- #: includes/admin/core/class-admin-metabox.php:1960
1308
  msgid "Drag &amp; Drop File"
1309
  msgstr ""
1310
 
1311
- #: includes/admin/core/class-admin-metabox.php:1965
1312
- #: includes/admin/core/class-admin-metabox.php:1985
1313
  msgid "Upload Box Text"
1314
  msgstr ""
1315
 
1316
- #: includes/admin/core/class-admin-metabox.php:1965
1317
  msgid "This is the headline that appears in the upload box for this field"
1318
  msgstr ""
1319
 
1320
- #: includes/admin/core/class-admin-metabox.php:1975
1321
  msgid "Additional Instructions Text"
1322
  msgstr ""
1323
 
1324
- #: includes/admin/core/class-admin-metabox.php:1975
1325
  msgid ""
1326
  "If you need to add information or secondary line below the headline of "
1327
  "upload box, enter it here"
1328
  msgstr ""
1329
 
1330
- #: includes/admin/core/class-admin-metabox.php:1985
1331
  msgid "The text that appears on the button. e.g. Upload"
1332
  msgstr ""
1333
 
1334
- #: includes/admin/core/class-admin-metabox.php:1986
1335
- #: includes/core/class-fields.php:1705 includes/core/class-fields.php:1746
1336
- #: includes/core/class-fields.php:2585 includes/core/class-fields.php:2660
1337
  msgid "Upload"
1338
  msgstr ""
1339
 
1340
- #: includes/admin/core/class-admin-metabox.php:1995
1341
  msgid "Maximum Size in bytes"
1342
  msgstr ""
1343
 
1344
- #: includes/admin/core/class-admin-metabox.php:1995
1345
  msgid ""
1346
  "The maximum size for image that can be uploaded through this field. Leave "
1347
  "empty for unlimited size."
1348
  msgstr ""
1349
 
1350
- #: includes/admin/core/class-admin-metabox.php:2005
1351
  msgid "Textarea Height"
1352
  msgstr ""
1353
 
1354
- #: includes/admin/core/class-admin-metabox.php:2005
1355
  msgid "The height of textarea in pixels. Default is 100 pixels"
1356
  msgstr ""
1357
 
1358
- #: includes/admin/core/class-admin-metabox.php:2015
1359
  msgid "Spacing"
1360
  msgstr ""
1361
 
1362
- #: includes/admin/core/class-admin-metabox.php:2015
1363
  msgid "This is the required spacing in pixels. e.g. 20px"
1364
  msgstr ""
1365
 
1366
- #: includes/admin/core/class-admin-metabox.php:2025
1367
  msgid "Allow multiple selections"
1368
  msgstr ""
1369
 
1370
- #: includes/admin/core/class-admin-metabox.php:2025
1371
  msgid "Enable/disable multiple selections for this field"
1372
  msgstr ""
1373
 
1374
- #: includes/admin/core/class-admin-metabox.php:2035
1375
  msgid "Maximum number of selections"
1376
  msgstr ""
1377
 
1378
- #: includes/admin/core/class-admin-metabox.php:2035
1379
  msgid ""
1380
  "Enter a number here to force a maximum number of selections by user for this "
1381
  "field"
1382
  msgstr ""
1383
 
1384
- #: includes/admin/core/class-admin-metabox.php:2045
1385
  msgid "Minimum number of selections"
1386
  msgstr ""
1387
 
1388
- #: includes/admin/core/class-admin-metabox.php:2045
1389
  msgid ""
1390
  "Enter a number here to force a minimum number of selections by user for this "
1391
  "field"
1392
  msgstr ""
1393
 
1394
- #: includes/admin/core/class-admin-metabox.php:2055
1395
  msgid "Maximum number of entries"
1396
  msgstr ""
1397
 
1398
- #: includes/admin/core/class-admin-metabox.php:2055
1399
  msgid "This is the max number of entries the user can add via field group."
1400
  msgstr ""
1401
 
1402
- #: includes/admin/core/class-admin-metabox.php:2065
1403
  msgid "Maximum allowed words"
1404
  msgstr ""
1405
 
1406
- #: includes/admin/core/class-admin-metabox.php:2065
1407
  msgid ""
1408
  "If you want to enable a maximum number of words to be input in this "
1409
  "textarea. Leave empty to disable this setting"
1410
  msgstr ""
1411
 
1412
- #: includes/admin/core/class-admin-metabox.php:2075
1413
  msgid "Minimum Number"
1414
  msgstr ""
1415
 
1416
- #: includes/admin/core/class-admin-metabox.php:2075
1417
  msgid "Minimum number that can be entered in this field"
1418
  msgstr ""
1419
 
1420
- #: includes/admin/core/class-admin-metabox.php:2085
1421
  msgid "Maximum Number"
1422
  msgstr ""
1423
 
1424
- #: includes/admin/core/class-admin-metabox.php:2085
1425
  msgid "Maximum number that can be entered in this field"
1426
  msgstr ""
1427
 
1428
- #: includes/admin/core/class-admin-metabox.php:2095
1429
  msgid "Minimum length"
1430
  msgstr ""
1431
 
1432
- #: includes/admin/core/class-admin-metabox.php:2095
1433
  msgid ""
1434
  "If you want to enable a minimum number of characters to be input in this "
1435
  "field. Leave empty to disable this setting"
1436
  msgstr ""
1437
 
1438
- #: includes/admin/core/class-admin-metabox.php:2105
1439
  msgid "Maximum length"
1440
  msgstr ""
1441
 
1442
- #: includes/admin/core/class-admin-metabox.php:2105
1443
  msgid ""
1444
  "If you want to enable a maximum number of characters to be input in this "
1445
  "field. Leave empty to disable this setting"
1446
  msgstr ""
1447
 
1448
- #: includes/admin/core/class-admin-metabox.php:2115
1449
  msgid "Does this textarea accept HTML?"
1450
  msgstr ""
1451
 
1452
- #: includes/admin/core/class-admin-metabox.php:2115
1453
  msgid "Turn on/off HTML tags for this textarea"
1454
  msgstr ""
1455
 
1456
- #: includes/admin/core/class-admin-metabox.php:2132
1457
  msgid "Edit Choices"
1458
  msgstr ""
1459
 
1460
- #: includes/admin/core/class-admin-metabox.php:2132
1461
  msgid ""
1462
  "Enter one choice per line. This will represent the available choices or "
1463
  "selections available for user."
1464
  msgstr ""
1465
 
1466
- #: includes/admin/core/class-admin-metabox.php:2142
1467
  msgid ""
1468
  "This is the title of the field for your reference in the backend. The title "
1469
  "will not appear on the front-end of your website."
1470
  msgstr ""
1471
 
1472
- #: includes/admin/core/class-admin-metabox.php:2153
1473
  msgid "Unique ID"
1474
  msgstr ""
1475
 
1476
- #: includes/admin/core/class-admin-metabox.php:2167
1477
- #: includes/admin/core/class-admin-metabox.php:2173
1478
  msgid "Meta Key"
1479
  msgstr ""
1480
 
1481
- #: includes/admin/core/class-admin-metabox.php:2167
1482
  msgid ""
1483
  "The meta key cannot be changed for duplicated fields or when editing an "
1484
  "existing field. If you require a different meta key please create a new "
1485
  "field."
1486
  msgstr ""
1487
 
1488
- #: includes/admin/core/class-admin-metabox.php:2173
1489
  msgid ""
1490
  "A meta key is required to store the entered info in this field in the "
1491
  "database. The meta key should be unique to this field and be written in "
@@ -1493,11 +1494,11 @@ msgid ""
1493
  "job_title"
1494
  msgstr ""
1495
 
1496
- #: includes/admin/core/class-admin-metabox.php:2186
1497
  msgid "Help Text"
1498
  msgstr ""
1499
 
1500
- #: includes/admin/core/class-admin-metabox.php:2186
1501
  msgid ""
1502
  "This is the text that appears in a tooltip when a user hovers over the info "
1503
  "icon. Help text is useful for providing users with more information about "
@@ -1505,177 +1506,183 @@ msgid ""
1505
  "for field."
1506
  msgstr ""
1507
 
1508
- #: includes/admin/core/class-admin-metabox.php:2198
1509
  msgid "Default Text"
1510
  msgstr ""
1511
 
1512
- #: includes/admin/core/class-admin-metabox.php:2198
1513
  msgid "Text to display by default in this field"
1514
  msgstr ""
1515
 
1516
- #: includes/admin/core/class-admin-metabox.php:2204
1517
  msgid "Default Date"
1518
  msgstr ""
1519
 
1520
- #: includes/admin/core/class-admin-metabox.php:2204
1521
- #: includes/admin/core/class-admin-metabox.php:2210
1522
  msgid ""
1523
  "You may use all PHP compatible date formats such as: 2020-02-02, 02/02/2020, "
1524
  "yesterday, today, tomorrow, next monday, first day of next month, +3 day"
1525
  msgstr ""
1526
 
1527
- #: includes/admin/core/class-admin-metabox.php:2210
1528
  msgid "Default Time"
1529
  msgstr ""
1530
 
1531
- #: includes/admin/core/class-admin-metabox.php:2216
1532
  msgid "Default Rating"
1533
  msgstr ""
1534
 
1535
- #: includes/admin/core/class-admin-metabox.php:2216
1536
  msgid ""
1537
  "If you wish the rating field to be prefilled with a number of stars, enter "
1538
  "it here."
1539
  msgstr ""
1540
 
1541
- #: includes/admin/core/class-admin-metabox.php:2222
1542
  msgid "Default Value"
1543
  msgstr ""
1544
 
1545
- #: includes/admin/core/class-admin-metabox.php:2222
1546
  msgid ""
1547
  "This option allows you to pre-fill the field with a default value prior to "
1548
  "the user entering a value in the field. Leave blank to have no default value"
1549
  msgstr ""
1550
 
1551
- #: includes/admin/core/class-admin-metabox.php:2234
1552
  msgid ""
1553
  "The field label is the text that appears above the field on your front-end "
1554
  "form. Leave blank to not show a label above field."
1555
  msgstr ""
1556
 
1557
- #: includes/admin/core/class-admin-metabox.php:2244
1558
  msgid "Placeholder"
1559
  msgstr ""
1560
 
1561
- #: includes/admin/core/class-admin-metabox.php:2244
1562
  msgid ""
1563
  "This is the text that appears within the field e.g please enter your email "
1564
  "address. Leave blank to not show any placeholder text."
1565
  msgstr ""
1566
 
1567
- #: includes/admin/core/class-admin-metabox.php:2254
1568
- msgid ""
1569
- "Field privacy allows you to select who can view this field on the front-end. "
1570
- "The site admin can view all fields regardless of the option set here."
1571
- msgstr ""
1572
-
1573
- #: includes/admin/core/class-admin-metabox.php:2257
1574
- #: includes/class-config.php:134 includes/class-config.php:791
1575
  msgid "Members"
1576
  msgstr ""
1577
 
1578
- #: includes/admin/core/class-admin-metabox.php:2258
1579
  msgid "Only visible to profile owner and admins"
1580
  msgstr ""
1581
 
1582
- #: includes/admin/core/class-admin-metabox.php:2259
1583
  msgid "Only visible to profile owner and specific roles"
1584
  msgstr ""
1585
 
1586
- #: includes/admin/core/class-admin-metabox.php:2260
1587
  msgid "Only specific member roles"
1588
  msgstr ""
1589
 
1590
- #: includes/admin/core/class-admin-metabox.php:2277
 
 
 
 
 
 
1591
  msgid "Select member roles"
1592
  msgstr ""
1593
 
1594
- #: includes/admin/core/class-admin-metabox.php:2277
1595
  msgid "Select the member roles that can view this field on the front-end."
1596
  msgstr ""
1597
 
1598
- #: includes/admin/core/class-admin-metabox.php:2303
1599
  msgid "Is this field required?"
1600
  msgstr ""
1601
 
1602
- #: includes/admin/core/class-admin-metabox.php:2303
1603
  msgid ""
1604
  "This option allows you to set whether the field must be filled in before the "
1605
  "form can be processed."
1606
  msgstr ""
1607
 
1608
- #: includes/admin/core/class-admin-metabox.php:2317
1609
  msgid "Can user edit this field?"
1610
  msgstr ""
1611
 
1612
- #: includes/admin/core/class-admin-metabox.php:2317
1613
  msgid ""
1614
  "This option allows you to set whether or not the user can edit the "
1615
  "information in this field."
1616
  msgstr ""
1617
 
1618
- #: includes/admin/core/class-admin-metabox.php:2330
1619
  msgid "Rating System"
1620
  msgstr ""
1621
 
1622
- #: includes/admin/core/class-admin-metabox.php:2330
1623
  msgid "Choose whether you want a 5-stars or 10-stars ratings based here."
1624
  msgstr ""
1625
 
1626
- #: includes/admin/core/class-admin-metabox.php:2332
1627
  msgid "5 stars rating system"
1628
  msgstr ""
1629
 
1630
- #: includes/admin/core/class-admin-metabox.php:2333
1631
  msgid "10 stars rating system"
1632
  msgstr ""
1633
 
1634
- #: includes/admin/core/class-admin-metabox.php:2343
1635
  msgid "Choices Callback"
1636
  msgstr ""
1637
 
1638
- #: includes/admin/core/class-admin-metabox.php:2343
1639
  msgid "Add a callback source to retrieve choices."
1640
  msgstr ""
1641
 
1642
- #: includes/admin/core/class-admin-metabox.php:2354
1643
  msgid "Parent Option"
1644
  msgstr ""
1645
 
1646
- #: includes/admin/core/class-admin-metabox.php:2354
1647
  msgid "Dynamically populates the option based from selected parent option."
1648
  msgstr ""
1649
 
1650
- #: includes/admin/core/class-admin-metabox.php:2356
1651
  msgid "No Selected"
1652
  msgstr ""
1653
 
1654
- #: includes/admin/core/class-admin-navmenu.php:23
1655
  msgid "Display Mode"
1656
  msgstr ""
1657
 
1658
- #: includes/admin/core/class-admin-navmenu.php:24
1659
  msgid "By Role"
1660
  msgstr ""
1661
 
1662
- #: includes/admin/core/class-admin-navmenu.php:133
 
 
1663
  msgid "Ultimate Member Menu Settings"
1664
  msgstr ""
1665
 
1666
- #: includes/admin/core/class-admin-navmenu.php:137
 
1667
  msgid "Who can see this menu link?"
1668
  msgstr ""
1669
 
1670
- #: includes/admin/core/class-admin-navmenu.php:144
 
1671
  msgid "Logged Out Users"
1672
  msgstr ""
1673
 
1674
- #: includes/admin/core/class-admin-navmenu.php:147
 
1675
  msgid "Logged In Users"
1676
  msgstr ""
1677
 
1678
- #: includes/admin/core/class-admin-navmenu.php:153
 
1679
  msgid "Select the member roles that can see this link"
1680
  msgstr ""
1681
 
@@ -2279,7 +2286,7 @@ msgid ""
2279
  msgstr ""
2280
 
2281
  #: includes/admin/core/class-admin-settings.php:637
2282
- #: includes/class-config.php:136 includes/class-config.php:793
2283
  #: includes/core/class-account.php:97
2284
  msgid "Account"
2285
  msgstr ""
@@ -2288,6 +2295,10 @@ msgstr ""
2288
  msgid "Password Account Tab"
2289
  msgstr ""
2290
 
 
 
 
 
2291
  #: includes/admin/core/class-admin-settings.php:648
2292
  msgid "Privacy Account Tab"
2293
  msgstr ""
@@ -2515,7 +2526,7 @@ msgid ""
2515
  msgstr ""
2516
 
2517
  #: includes/admin/core/class-admin-settings.php:837
2518
- #: includes/admin/core/list-tables/emails-list-table.php:300
2519
  msgid "Email"
2520
  msgstr ""
2521
 
@@ -3229,7 +3240,7 @@ msgid "UM Action"
3229
  msgstr ""
3230
 
3231
  #: includes/admin/core/class-admin-users.php:124
3232
- #: includes/core/class-fields.php:2641
3233
  msgid "Apply"
3234
  msgstr ""
3235
 
@@ -3318,23 +3329,27 @@ msgstr ""
3318
  msgid "not found."
3319
  msgstr ""
3320
 
3321
- #: includes/admin/core/list-tables/emails-list-table.php:237
3322
  msgid "Member"
3323
  msgstr ""
3324
 
3325
- #: includes/admin/core/list-tables/emails-list-table.php:270
 
 
 
 
3326
  msgid "Email Notification"
3327
  msgstr ""
3328
 
3329
- #: includes/admin/core/list-tables/emails-list-table.php:271
3330
  msgid "Email Notifications"
3331
  msgstr ""
3332
 
3333
- #: includes/admin/core/list-tables/emails-list-table.php:301
3334
  msgid "Recipient(s)"
3335
  msgstr ""
3336
 
3337
- #: includes/admin/core/list-tables/emails-list-table.php:314
3338
  #, php-format
3339
  msgid ""
3340
  "You may get more details about email notifications customization <a href=\"%s"
@@ -3691,48 +3706,52 @@ msgstr ""
3691
  msgid "Template"
3692
  msgstr ""
3693
 
3694
- #: includes/admin/templates/directory/general.php:36
3695
  msgid "View type(s)"
3696
  msgstr ""
3697
 
3698
- #: includes/admin/templates/directory/general.php:37
3699
  msgid "View type a specific parameter in the directory"
3700
  msgstr ""
3701
 
3702
- #: includes/admin/templates/directory/general.php:46
3703
  msgid "Default view type"
3704
  msgstr ""
3705
 
3706
- #: includes/admin/templates/directory/general.php:47
3707
  msgid "Default directory view type"
3708
  msgstr ""
3709
 
3710
- #: includes/admin/templates/directory/general.php:55
3711
  msgid "User Roles to Display"
3712
  msgstr ""
3713
 
3714
- #: includes/admin/templates/directory/general.php:56
3715
  msgid ""
3716
  "If you do not want to show all members, select only user roles to appear in "
3717
  "this directory"
3718
  msgstr ""
3719
 
3720
- #: includes/admin/templates/directory/general.php:64
3721
  msgid "Only show members who have uploaded a profile photo"
3722
  msgstr ""
3723
 
3724
- #: includes/admin/templates/directory/general.php:65
3725
  msgid "If 'Use Gravatars' as profile photo is enabled, this option is ignored"
3726
  msgstr ""
3727
 
3728
- #: includes/admin/templates/directory/general.php:71
3729
  msgid "Only show members who have uploaded a cover photo"
3730
  msgstr ""
3731
 
3732
- #: includes/admin/templates/directory/general.php:77
3733
  msgid "Only show specific users (Enter one username per line)"
3734
  msgstr ""
3735
 
 
 
 
 
3736
  #: includes/admin/templates/directory/pagination.php:12
3737
  msgid "Show results only after search/filtration"
3738
  msgstr ""
@@ -4314,14 +4333,14 @@ msgstr ""
4314
  #: includes/admin/templates/modal/dynamic_new_field.php:18
4315
  #: includes/admin/templates/modal/dynamic_new_group.php:18
4316
  #: includes/admin/templates/modal/fonticons.php:14
4317
- #: includes/admin/templates/role/publish.php:24 includes/class-config.php:253
4318
- #: includes/core/class-fields.php:2642 includes/core/class-fields.php:2741
4319
- #: includes/core/um-actions-profile.php:674
4320
- #: includes/core/um-actions-profile.php:686
4321
- #: includes/core/um-actions-profile.php:874
4322
- #: includes/core/um-actions-profile.php:907
4323
- #: includes/core/um-actions-profile.php:1254
4324
- #: includes/core/um-actions-profile.php:1261
4325
  msgid "Cancel"
4326
  msgstr ""
4327
 
@@ -4386,7 +4405,8 @@ msgid "Force hiding adminbar in frontend?"
4386
  msgstr ""
4387
 
4388
  #: includes/admin/templates/role/admin-permissions.php:22
4389
- msgid "Show/hide the adminbar on frontend"
 
4390
  msgstr ""
4391
 
4392
  #: includes/admin/templates/role/admin-permissions.php:28
@@ -4670,158 +4690,158 @@ msgstr ""
4670
  msgid "Check All"
4671
  msgstr ""
4672
 
4673
- #: includes/class-config.php:131 includes/class-config.php:788
4674
  msgid "User"
4675
  msgstr ""
4676
 
4677
- #: includes/class-config.php:132 includes/class-config.php:263
4678
- #: includes/class-config.php:271 includes/class-config.php:789
4679
  msgid "Login"
4680
  msgstr ""
4681
 
4682
- #: includes/class-config.php:133 includes/class-config.php:261
4683
- #: includes/class-config.php:275 includes/class-config.php:790
4684
  msgid "Register"
4685
  msgstr ""
4686
 
4687
- #: includes/class-config.php:135 includes/class-config.php:792
4688
- #: includes/core/class-member-directory.php:2152
4689
- #: includes/core/um-actions-profile.php:1260
4690
  #: includes/core/um-actions-user.php:19
4691
  msgid "Logout"
4692
  msgstr ""
4693
 
4694
- #: includes/class-config.php:137 includes/class-config.php:794
4695
  msgid "Password Reset"
4696
  msgstr ""
4697
 
4698
- #: includes/class-config.php:180 includes/class-config.php:280
4699
  msgid "{total_users} Members"
4700
  msgstr ""
4701
 
4702
- #: includes/class-config.php:181 includes/class-config.php:281
4703
  msgid "{total_users} Member"
4704
  msgstr ""
4705
 
4706
- #: includes/class-config.php:182
4707
  msgid "We are sorry. We cannot find any users who match your search criteria."
4708
  msgstr ""
4709
 
4710
- #: includes/class-config.php:251
4711
  msgid "Update Profile"
4712
  msgstr ""
4713
 
4714
- #: includes/class-config.php:340
4715
  msgid "Account Welcome Email"
4716
  msgstr ""
4717
 
4718
- #: includes/class-config.php:351
4719
  msgid ""
4720
  "Whether to send the user an email when his account is automatically approved"
4721
  msgstr ""
4722
 
4723
- #: includes/class-config.php:357
4724
  msgid "Account Activation Email"
4725
  msgstr ""
4726
 
4727
- #: includes/class-config.php:365
4728
  msgid ""
4729
  "Whether to send the user an email when his account needs e-mail activation"
4730
  msgstr ""
4731
 
4732
- #: includes/class-config.php:370
4733
  msgid "Your account is pending review"
4734
  msgstr ""
4735
 
4736
- #: includes/class-config.php:378
4737
  msgid "Whether to send the user an email when his account needs admin review"
4738
  msgstr ""
4739
 
4740
- #: includes/class-config.php:383
4741
  msgid "Account Approved Email"
4742
  msgstr ""
4743
 
4744
- #: includes/class-config.php:395
4745
  msgid "Whether to send the user an email when his account is approved"
4746
  msgstr ""
4747
 
4748
- #: includes/class-config.php:400
4749
  msgid "Account Rejected Email"
4750
  msgstr ""
4751
 
4752
- #: includes/class-config.php:407
4753
  msgid "Whether to send the user an email when his account is rejected"
4754
  msgstr ""
4755
 
4756
- #: includes/class-config.php:412
4757
  msgid "Account Deactivated Email"
4758
  msgstr ""
4759
 
4760
- #: includes/class-config.php:419
4761
  msgid "Whether to send the user an email when his account is deactivated"
4762
  msgstr ""
4763
 
4764
- #: includes/class-config.php:425
4765
  msgid "Account Deleted Email"
4766
  msgstr ""
4767
 
4768
- #: includes/class-config.php:432
4769
  msgid "Whether to send the user an email when his account is deleted"
4770
  msgstr ""
4771
 
4772
- #: includes/class-config.php:438
4773
  msgid "Password Reset Email"
4774
  msgstr ""
4775
 
4776
- #: includes/class-config.php:446
4777
  msgid ""
4778
  "Whether to send an email when users changed their password (Recommended, "
4779
  "please keep on)"
4780
  msgstr ""
4781
 
4782
- #: includes/class-config.php:452
4783
  msgid "Password Changed Email"
4784
  msgstr ""
4785
 
4786
- #: includes/class-config.php:459
4787
  msgid ""
4788
  "Whether to send the user an email when he request to reset password "
4789
  "(Recommended, please keep on)"
4790
  msgstr ""
4791
 
4792
- #: includes/class-config.php:465
4793
  msgid "Account Updated Email"
4794
  msgstr ""
4795
 
4796
- #: includes/class-config.php:472
4797
  msgid "Whether to send the user an email when he updated their account"
4798
  msgstr ""
4799
 
4800
- #: includes/class-config.php:478
4801
  msgid "New User Notification"
4802
  msgstr ""
4803
 
4804
- #: includes/class-config.php:484
4805
  msgid "Whether to receive notification when a new user account is approved"
4806
  msgstr ""
4807
 
4808
- #: includes/class-config.php:490
4809
  msgid "Account Needs Review Notification"
4810
  msgstr ""
4811
 
4812
- #: includes/class-config.php:497
4813
  msgid "Whether to receive notification when an account needs admin review"
4814
  msgstr ""
4815
 
4816
- #: includes/class-config.php:502
4817
  msgid "Account Deletion Notification"
4818
  msgstr ""
4819
 
4820
- #: includes/class-config.php:505
4821
  msgid "Whether to receive notification when an account is deleted"
4822
  msgstr ""
4823
 
4824
- #: includes/class-config.php:528
4825
  msgid ""
4826
  "Are you sure you want to delete your account? This will erase all of your "
4827
  "account data from the site. To delete your account enter your password below"
@@ -5137,7 +5157,7 @@ msgid "Cover Photo"
5137
  msgstr ""
5138
 
5139
  #: includes/core/class-builtin.php:1093
5140
- #: includes/core/um-actions-profile.php:634
5141
  msgid "Change your cover photo"
5142
  msgstr ""
5143
 
@@ -7061,101 +7081,102 @@ msgstr ""
7061
  msgid "Add translation to %s"
7062
  msgstr ""
7063
 
7064
- #: includes/core/class-fields.php:1330 templates/message.php:6
 
7065
  #, php-format
7066
  msgid "%s"
7067
  msgstr ""
7068
 
7069
- #: includes/core/class-fields.php:1351
7070
  msgid "Custom Field"
7071
  msgstr ""
7072
 
7073
- #: includes/core/class-fields.php:1694
7074
  msgid "Please upload a valid image!"
7075
  msgstr ""
7076
 
7077
- #: includes/core/class-fields.php:1708
7078
  msgid "Sorry this is not a valid image."
7079
  msgstr ""
7080
 
7081
- #: includes/core/class-fields.php:1711
7082
  msgid "This image is too large!"
7083
  msgstr ""
7084
 
7085
- #: includes/core/class-fields.php:1714
7086
  msgid "This image is too small!"
7087
  msgstr ""
7088
 
7089
- #: includes/core/class-fields.php:1717
7090
  msgid "You can only upload one image"
7091
  msgstr ""
7092
 
7093
- #: includes/core/class-fields.php:1749
7094
  msgid "Sorry this is not a valid file."
7095
  msgstr ""
7096
 
7097
- #: includes/core/class-fields.php:1752
7098
  msgid "This file is too large!"
7099
  msgstr ""
7100
 
7101
- #: includes/core/class-fields.php:1755
7102
  msgid "This file is too small!"
7103
  msgstr ""
7104
 
7105
- #: includes/core/class-fields.php:1758
7106
  msgid "You can only upload one file"
7107
  msgstr ""
7108
 
7109
- #: includes/core/class-fields.php:2286
7110
  msgid "Current Password"
7111
  msgstr ""
7112
 
7113
- #: includes/core/class-fields.php:2317
7114
  msgid "New Password"
7115
  msgstr ""
7116
 
7117
- #: includes/core/class-fields.php:2351
7118
  #, php-format
7119
  msgid "Confirm %s"
7120
  msgstr ""
7121
 
7122
- #: includes/core/class-fields.php:2595
7123
  msgid "Upload Photo"
7124
  msgstr ""
7125
 
7126
- #: includes/core/class-fields.php:2617 includes/core/class-fields.php:2641
7127
- #: includes/core/um-actions-profile.php:905
7128
  msgid "Change photo"
7129
  msgstr ""
7130
 
7131
- #: includes/core/class-fields.php:2641 includes/core/class-fields.php:2740
7132
  msgid "Processing..."
7133
  msgstr ""
7134
 
7135
- #: includes/core/class-fields.php:2665
7136
  msgid "Upload File"
7137
  msgstr ""
7138
 
7139
- #: includes/core/class-fields.php:2707 includes/core/um-filters-fields.php:267
7140
  msgid "This file has been removed."
7141
  msgstr ""
7142
 
7143
- #: includes/core/class-fields.php:2710 includes/core/class-fields.php:2740
7144
  msgid "Change file"
7145
  msgstr ""
7146
 
7147
- #: includes/core/class-fields.php:2740
7148
  msgid "Save"
7149
  msgstr ""
7150
 
7151
- #: includes/core/class-fields.php:4265
7152
  #, php-format
7153
  msgid ""
7154
  "Your profile is looking a little empty. Why not <a href=\"%s\">add</a> some "
7155
  "information!"
7156
  msgstr ""
7157
 
7158
- #: includes/core/class-fields.php:4267
7159
  msgid "This user has not added any information to their profile yet."
7160
  msgstr ""
7161
 
@@ -7205,6 +7226,10 @@ msgstr ""
7205
  msgid "You can not edit this user"
7206
  msgstr ""
7207
 
 
 
 
 
7208
  #: includes/core/class-mail.php:615 includes/core/class-password.php:703
7209
  #: includes/core/class-profile.php:481
7210
  msgid "Your set password"
@@ -7271,15 +7296,15 @@ msgstr ""
7271
  msgid "<strong>Age:</strong>&nbsp;{min_range} - {max_range} years old"
7272
  msgstr ""
7273
 
7274
- #: includes/core/class-member-directory.php:2097
7275
- #: includes/core/class-member-directory.php:2141
7276
- #: includes/core/um-actions-profile.php:1227
7277
- #: includes/core/um-actions-profile.php:1258
7278
  msgid "Edit Profile"
7279
  msgstr ""
7280
 
7281
- #: includes/core/class-member-directory.php:2147
7282
- #: includes/core/um-actions-profile.php:1259
7283
  msgid "My Account"
7284
  msgstr ""
7285
 
@@ -7310,7 +7335,7 @@ msgid "Your password must contain less than 30 characters"
7310
  msgstr ""
7311
 
7312
  #: includes/core/class-password.php:553 includes/core/um-actions-account.php:66
7313
- #: includes/core/um-actions-form.php:531
7314
  msgid ""
7315
  "Your password must contain at least one lowercase letter, one capital letter "
7316
  "and one number"
@@ -7320,7 +7345,7 @@ msgstr ""
7320
  msgid "You must confirm your new password"
7321
  msgstr ""
7322
 
7323
- #: includes/core/class-password.php:563 includes/core/um-actions-form.php:540
7324
  msgid "Your passwords do not match"
7325
  msgstr ""
7326
 
@@ -7373,21 +7398,17 @@ msgstr ""
7373
  msgid "Comments"
7374
  msgstr ""
7375
 
7376
- #: includes/core/class-register.php:71
7377
- msgid "Invalid Nonce."
7378
- msgstr ""
7379
-
7380
- #: includes/core/class-shortcodes.php:362
7381
  msgid ""
7382
  "This content has been restricted to logged in users only. Please <a href="
7383
  "\"{login_referrer}\">login</a> to view this content."
7384
  msgstr ""
7385
 
7386
- #: includes/core/class-shortcodes.php:657
7387
  msgid "You are already registered"
7388
  msgstr ""
7389
 
7390
- #: includes/core/class-shortcodes.php:904
7391
  msgid "Default Template"
7392
  msgstr ""
7393
 
@@ -7542,82 +7563,82 @@ msgid ""
7542
  "and useful to you."
7543
  msgstr ""
7544
 
7545
- #: includes/core/um-actions-account.php:503
7546
  msgid "You could download your previous data:"
7547
  msgstr ""
7548
 
7549
- #: includes/core/um-actions-account.php:504
7550
  msgid "download personal data"
7551
  msgstr ""
7552
 
7553
- #: includes/core/um-actions-account.php:505
7554
  msgid "You could send a new request for an export of personal your data."
7555
  msgstr ""
7556
 
7557
- #: includes/core/um-actions-account.php:512
7558
- #: includes/core/um-actions-account.php:555
7559
- #: includes/core/um-actions-account.php:602
7560
  msgid ""
7561
  "A confirmation email has been sent to your email. Click the link within the "
7562
  "email to confirm your export request."
7563
  msgstr ""
7564
 
7565
- #: includes/core/um-actions-account.php:514
7566
  msgid ""
7567
  "The administrator has not yet approved downloading the data. Please expect "
7568
  "an email with a link to your data."
7569
  msgstr ""
7570
 
7571
- #: includes/core/um-actions-account.php:517
7572
  msgid ""
7573
  "Enter your current password to confirm a new export of your personal data."
7574
  msgstr ""
7575
 
7576
- #: includes/core/um-actions-account.php:522
7577
- #: includes/core/um-actions-account.php:563
7578
  msgid "You must enter a password"
7579
  msgstr ""
7580
 
7581
- #: includes/core/um-actions-account.php:527
7582
  msgid "Request data"
7583
  msgstr ""
7584
 
7585
- #: includes/core/um-actions-account.php:536
7586
  msgid "Erase of your data"
7587
  msgstr ""
7588
 
7589
- #: includes/core/um-actions-account.php:538
7590
  msgid "You can request erasing of the data that we have about you."
7591
  msgstr ""
7592
 
7593
- #: includes/core/um-actions-account.php:547
7594
  msgid "Your personal data has been deleted."
7595
  msgstr ""
7596
 
7597
- #: includes/core/um-actions-account.php:548
7598
  msgid "You could send a new request for deleting your personal data."
7599
  msgstr ""
7600
 
7601
- #: includes/core/um-actions-account.php:557
7602
  msgid ""
7603
  "The administrator has not yet approved deleting your data. Please expect an "
7604
  "email with a link to your data."
7605
  msgstr ""
7606
 
7607
- #: includes/core/um-actions-account.php:560
7608
  msgid ""
7609
  "Enter your current password to confirm the erasure of your personal data."
7610
  msgstr ""
7611
 
7612
- #: includes/core/um-actions-account.php:568
7613
  msgid "Request data erase"
7614
  msgstr ""
7615
 
7616
- #: includes/core/um-actions-account.php:595
7617
  msgid "Wrong request."
7618
  msgstr ""
7619
 
7620
- #: includes/core/um-actions-account.php:607
7621
  msgid "The password you entered is incorrect."
7622
  msgstr ""
7623
 
@@ -7635,154 +7656,154 @@ msgstr ""
7635
  msgid "You do not have permission to delete this user."
7636
  msgstr ""
7637
 
7638
- #: includes/core/um-actions-form.php:86
7639
  msgid "You are not allowed to use this word as your username."
7640
  msgstr ""
7641
 
7642
- #: includes/core/um-actions-form.php:387
7643
  msgid "Profile Photo is required."
7644
  msgstr ""
7645
 
7646
- #: includes/core/um-actions-form.php:440 includes/core/um-actions-form.php:441
7647
  #, php-format
7648
  msgid "%s - wrong conditions."
7649
  msgstr ""
7650
 
7651
- #: includes/core/um-actions-form.php:449 includes/core/um-actions-form.php:453
7652
- #: includes/core/um-actions-form.php:457
7653
  #, php-format
7654
  msgid "%s is required."
7655
  msgstr ""
7656
 
7657
- #: includes/core/um-actions-form.php:462
7658
  msgid "Please specify account type."
7659
  msgstr ""
7660
 
7661
- #: includes/core/um-actions-form.php:492
7662
  msgid "This field is required"
7663
  msgstr ""
7664
 
7665
- #: includes/core/um-actions-form.php:494
7666
  #, php-format
7667
  msgid "%s is required"
7668
  msgstr ""
7669
 
7670
- #: includes/core/um-actions-form.php:503
7671
  #, php-format
7672
  msgid "You are only allowed to enter a maximum of %s words"
7673
  msgstr ""
7674
 
7675
- #: includes/core/um-actions-form.php:509
7676
  #, php-format
7677
  msgid "Your %s must contain at least %s characters"
7678
  msgstr ""
7679
 
7680
- #: includes/core/um-actions-form.php:515
7681
  #, php-format
7682
  msgid "Your %s must contain less than %s characters"
7683
  msgstr ""
7684
 
7685
- #: includes/core/um-actions-form.php:524
7686
  msgid "You can not use HTML tags here"
7687
  msgstr ""
7688
 
7689
- #: includes/core/um-actions-form.php:537
7690
  msgid "Please confirm your password"
7691
  msgstr ""
7692
 
7693
- #: includes/core/um-actions-form.php:546
7694
  #, php-format
7695
  msgid "Please select at least %s choices"
7696
  msgstr ""
7697
 
7698
- #: includes/core/um-actions-form.php:552
7699
  #, php-format
7700
  msgid "You can only select up to %s choices"
7701
  msgstr ""
7702
 
7703
- #: includes/core/um-actions-form.php:558
7704
  #, php-format
7705
  msgid "Minimum number limit is %s"
7706
  msgstr ""
7707
 
7708
- #: includes/core/um-actions-form.php:564
7709
  #, php-format
7710
  msgid "Maximum number limit is %s"
7711
  msgstr ""
7712
 
7713
- #: includes/core/um-actions-form.php:600
7714
  msgid "Please enter numbers only in this field"
7715
  msgstr ""
7716
 
7717
- #: includes/core/um-actions-form.php:606
7718
  msgid "Please enter a valid phone number"
7719
  msgstr ""
7720
 
7721
- #: includes/core/um-actions-form.php:612 includes/core/um-actions-form.php:618
7722
- #: includes/core/um-actions-form.php:624 includes/core/um-actions-form.php:630
7723
- #: includes/core/um-actions-form.php:643 includes/core/um-actions-form.php:649
7724
- #: includes/core/um-actions-form.php:655 includes/core/um-actions-form.php:667
7725
  #, php-format
7726
  msgid "Please enter a valid %s username or profile URL"
7727
  msgstr ""
7728
 
7729
- #: includes/core/um-actions-form.php:637
7730
  #, php-format
7731
  msgid "Please enter a valid %s profile URL"
7732
  msgstr ""
7733
 
7734
- #: includes/core/um-actions-form.php:661
7735
  msgid "Please enter a valid URL"
7736
  msgstr ""
7737
 
7738
- #: includes/core/um-actions-form.php:674 includes/core/um-actions-form.php:688
7739
  msgid "You must provide a username"
7740
  msgstr ""
7741
 
7742
- #: includes/core/um-actions-form.php:676 includes/core/um-actions-form.php:690
7743
  msgid "Your username is already taken"
7744
  msgstr ""
7745
 
7746
- #: includes/core/um-actions-form.php:678
7747
  msgid "Username cannot be an email"
7748
  msgstr ""
7749
 
7750
- #: includes/core/um-actions-form.php:680 includes/core/um-actions-form.php:694
7751
  msgid "Your username contains invalid characters"
7752
  msgstr ""
7753
 
7754
- #: includes/core/um-actions-form.php:692 includes/core/um-actions-form.php:714
7755
- #: includes/core/um-actions-form.php:716 includes/core/um-actions-form.php:728
7756
- #: includes/core/um-actions-form.php:735
7757
  msgid "This email is already linked to an existing account"
7758
  msgstr ""
7759
 
7760
- #: includes/core/um-actions-form.php:712
7761
  msgid "You must provide your email"
7762
  msgstr ""
7763
 
7764
- #: includes/core/um-actions-form.php:718 includes/core/um-actions-form.php:726
7765
- #: includes/core/um-actions-form.php:750
7766
  msgid "This is not a valid email"
7767
  msgstr ""
7768
 
7769
- #: includes/core/um-actions-form.php:720
7770
  msgid "Your email contains invalid characters"
7771
  msgstr ""
7772
 
7773
- #: includes/core/um-actions-form.php:769
7774
  msgid "You must provide a unique value"
7775
  msgstr ""
7776
 
7777
- #: includes/core/um-actions-form.php:779
7778
  msgid "You must provide alphabetic letters"
7779
  msgstr ""
7780
 
7781
- #: includes/core/um-actions-form.php:791
7782
  msgid "You must provide lowercase letters."
7783
  msgstr ""
7784
 
7785
- #: includes/core/um-actions-form.php:809
7786
  #, php-format
7787
  msgid "Your user description must contain less than %s characters"
7788
  msgstr ""
@@ -7803,23 +7824,23 @@ msgstr ""
7803
  msgid "Please enter your email"
7804
  msgstr ""
7805
 
7806
- #: includes/core/um-actions-login.php:49
7807
  msgid "Please enter your password"
7808
  msgstr ""
7809
 
7810
- #: includes/core/um-actions-login.php:56
7811
  msgid "Password is incorrect. Please try again."
7812
  msgstr ""
7813
 
7814
- #: includes/core/um-actions-login.php:183
7815
  msgid "This action has been prevented for security measures."
7816
  msgstr ""
7817
 
7818
- #: includes/core/um-actions-login.php:411
7819
  msgid "Keep me signed in"
7820
  msgstr ""
7821
 
7822
- #: includes/core/um-actions-login.php:455
7823
  msgid "Forgot your password?"
7824
  msgstr ""
7825
 
@@ -7855,19 +7876,19 @@ msgstr ""
7855
  msgid "Your IP address has been blocked."
7856
  msgstr ""
7857
 
7858
- #: includes/core/um-actions-misc.php:174 includes/core/um-filters-login.php:136
7859
  msgid "Your account has been disabled."
7860
  msgstr ""
7861
 
7862
- #: includes/core/um-actions-misc.php:178 includes/core/um-filters-login.php:139
7863
  msgid "Your account has not been approved yet."
7864
  msgstr ""
7865
 
7866
- #: includes/core/um-actions-misc.php:182 includes/core/um-filters-login.php:142
7867
  msgid "Your account is awaiting e-mail verification."
7868
  msgstr ""
7869
 
7870
- #: includes/core/um-actions-misc.php:186 includes/core/um-filters-login.php:145
7871
  msgid "Your membership request has been rejected."
7872
  msgstr ""
7873
 
@@ -7880,29 +7901,34 @@ msgstr ""
7880
  msgid "Your choosed %s"
7881
  msgstr ""
7882
 
7883
- #: includes/core/um-actions-profile.php:669
7884
- #: includes/core/um-actions-profile.php:685
7885
- #: includes/core/um-actions-profile.php:756
 
 
 
 
 
7886
  msgid "Upload a cover photo"
7887
  msgstr ""
7888
 
7889
- #: includes/core/um-actions-profile.php:669
7890
  msgid "Change cover photo"
7891
  msgstr ""
7892
 
7893
- #: includes/core/um-actions-profile.php:873
7894
  msgid "Upload photo"
7895
  msgstr ""
7896
 
7897
- #: includes/core/um-actions-profile.php:906
7898
  msgid "Remove photo"
7899
  msgstr ""
7900
 
7901
- #: includes/core/um-actions-profile.php:1069
7902
  msgid "Tell us a bit about yourself..."
7903
  msgstr ""
7904
 
7905
- #: includes/core/um-actions-profile.php:1084
7906
  #, php-format
7907
  msgid "This user account status is %s"
7908
  msgstr ""
@@ -7971,7 +7997,7 @@ msgstr ""
7971
  msgid "Shows the search member form."
7972
  msgstr ""
7973
 
7974
- #: includes/widgets/class-um-search-widget.php:68
7975
  msgid "Search Users"
7976
  msgstr ""
7977
 
1
  msgid ""
2
  msgstr ""
3
  "Project-Id-Version: Ultimate Member\n"
4
+ "POT-Creation-Date: 2020-06-04 12:21+0300\n"
5
+ "PO-Revision-Date: 2020-06-04 12:21+0300\n"
6
  "Last-Translator: \n"
7
  "Language-Team: \n"
8
  "Language: en_US\n"
103
  #: includes/admin/core/class-admin-builder.php:763
104
  #: includes/admin/core/class-admin-dragdrop.php:33
105
  #: includes/admin/core/class-admin-menu.php:106
106
+ #: includes/core/class-fields.php:4544
107
  msgid "Please login as administrator"
108
  msgstr ""
109
 
181
  msgid "This field type is not setup correcty."
182
  msgstr ""
183
 
184
+ #: includes/admin/core/class-admin-builder.php:1174
185
  #: includes/core/class-form.php:176 includes/core/class-form.php:396
186
  #: includes/core/class-password.php:535
187
  msgid "This is not possible for security reasons."
193
 
194
  #: includes/admin/core/class-admin-columns.php:131
195
  #: includes/admin/core/class-admin-columns.php:151
196
+ #: includes/admin/core/class-admin-metabox.php:2158
197
  #: includes/admin/templates/role/role-edit.php:193
198
+ #: includes/widgets/class-um-search-widget.php:86
199
  msgid "Title"
200
  msgstr ""
201
 
219
 
220
  #: includes/admin/core/class-admin-columns.php:135
221
  #: includes/admin/core/class-admin-columns.php:154
222
+ #: includes/admin/core/class-admin-metabox.php:812
223
+ #: includes/admin/core/class-admin-metabox.php:974
224
  msgid "Shortcode"
225
  msgstr ""
226
 
294
  #: includes/admin/core/class-admin-enqueue.php:485
295
  #: includes/core/class-builtin.php:706 includes/core/class-builtin.php:709
296
  #: includes/core/class-builtin.php:1166 includes/core/class-builtin.php:1169
297
+ #: includes/core/um-actions-account.php:538
298
+ #: includes/core/um-actions-account.php:598
299
  msgid "Password"
300
  msgstr ""
301
 
302
  #: includes/admin/core/class-admin-enqueue.php:489
303
+ #: includes/admin/core/class-admin-metabox.php:2279
304
  #: includes/core/class-account.php:109
305
  msgid "Privacy"
306
  msgstr ""
320
  msgstr ""
321
 
322
  #: includes/admin/core/class-admin-forms.php:526
323
+ #: includes/admin/core/class-admin-metabox.php:1448
324
+ #: includes/admin/core/class-admin-metabox.php:1476
325
  msgid "Choose Icon"
326
  msgstr ""
327
 
328
  #: includes/admin/core/class-admin-forms.php:532
329
+ #: includes/admin/core/class-admin-metabox.php:1450
330
+ #: includes/admin/core/class-admin-metabox.php:1478
331
  msgid "No Icon"
332
  msgstr ""
333
 
340
  #: includes/admin/core/class-admin-forms.php:1052
341
  #: includes/admin/core/class-admin-forms.php:1178
342
  #: includes/admin/core/class-admin-forms.php:1187
343
+ #: includes/admin/core/class-admin-forms.php:1427
344
+ #: includes/admin/core/class-admin-forms.php:1441
345
+ #: includes/admin/core/class-admin-forms.php:1537
346
+ #: includes/admin/core/class-admin-forms.php:1559
347
  #: includes/admin/core/class-admin-notices.php:400
348
+ #: includes/core/um-actions-profile.php:748
349
  msgid "Remove"
350
  msgstr ""
351
 
361
  msgid "Clear"
362
  msgstr ""
363
 
364
+ #: includes/admin/core/class-admin-forms.php:1538
365
+ #: includes/admin/core/class-admin-forms.php:1560
366
  #: includes/admin/templates/directory/sorting.php:23
367
  msgid "Meta key"
368
  msgstr ""
369
 
370
+ #: includes/admin/core/class-admin-forms.php:1539
371
+ #: includes/admin/core/class-admin-forms.php:1561
372
+ #: includes/admin/core/class-admin-metabox.php:2250
373
  msgid "Label"
374
  msgstr ""
375
 
527
  msgid "Upgrade's Manual Request"
528
  msgstr ""
529
 
530
+ #: includes/admin/core/class-admin-metabox.php:233
531
  msgid "UM Content Restriction"
532
  msgstr ""
533
 
534
+ #: includes/admin/core/class-admin-metabox.php:385
535
+ #: includes/admin/core/class-admin-metabox.php:536
536
  #: includes/admin/templates/access/restrict_content.php:53
537
  msgid "Restrict access to this content?"
538
  msgstr ""
539
 
540
+ #: includes/admin/core/class-admin-metabox.php:386
541
+ #: includes/admin/core/class-admin-metabox.php:393
542
+ #: includes/admin/core/class-admin-metabox.php:406
543
+ #: includes/admin/core/class-admin-metabox.php:537
544
+ #: includes/admin/core/class-admin-metabox.php:545
545
+ #: includes/admin/core/class-admin-metabox.php:559
546
  #: includes/admin/templates/access/restrict_content.php:54
547
  #: includes/admin/templates/access/restrict_content.php:61
548
  #: includes/admin/templates/access/restrict_content.php:74
549
  msgid "Activate content restriction for this post"
550
  msgstr ""
551
 
552
+ #: includes/admin/core/class-admin-metabox.php:392
553
+ #: includes/admin/core/class-admin-metabox.php:544
554
  #: includes/admin/templates/access/restrict_content.php:60
555
  msgid "Who can access this content?"
556
  msgstr ""
557
 
558
+ #: includes/admin/core/class-admin-metabox.php:396
559
+ #: includes/admin/core/class-admin-metabox.php:548
560
+ #: includes/admin/core/class-admin-metabox.php:2269
561
+ #: includes/admin/core/class-admin-navmenu.php:80
562
+ #: includes/admin/core/class-admin-navmenu.php:241
563
  #: includes/admin/templates/access/restrict_content.php:64
564
  #: includes/core/class-builtin.php:670
565
  msgid "Everyone"
566
  msgstr ""
567
 
568
+ #: includes/admin/core/class-admin-metabox.php:397
569
+ #: includes/admin/core/class-admin-metabox.php:549
570
  #: includes/admin/templates/access/restrict_content.php:65
571
  msgid "Logged out users"
572
  msgstr ""
573
 
574
+ #: includes/admin/core/class-admin-metabox.php:398
575
+ #: includes/admin/core/class-admin-metabox.php:550
576
  #: includes/admin/templates/access/restrict_content.php:66
577
  msgid "Logged in users"
578
  msgstr ""
579
 
580
+ #: includes/admin/core/class-admin-metabox.php:405
581
+ #: includes/admin/core/class-admin-metabox.php:558
582
  #: includes/admin/templates/access/restrict_content.php:73
583
  msgid "Select which roles can access this content"
584
  msgstr ""
585
 
586
+ #: includes/admin/core/class-admin-metabox.php:414
587
+ #: includes/admin/core/class-admin-metabox.php:569
588
  #: includes/admin/templates/access/restrict_content.php:83
589
  msgid "What happens when users without access tries to view the content?"
590
  msgstr ""
591
 
592
+ #: includes/admin/core/class-admin-metabox.php:415
593
+ #: includes/admin/core/class-admin-metabox.php:427
594
+ #: includes/admin/core/class-admin-metabox.php:570
595
+ #: includes/admin/core/class-admin-metabox.php:583
596
  #: includes/admin/templates/access/restrict_content.php:84
597
  #: includes/admin/templates/access/restrict_content.php:96
598
  msgid "Action when users without access tries to view the content"
599
  msgstr ""
600
 
601
+ #: includes/admin/core/class-admin-metabox.php:418
602
+ #: includes/admin/core/class-admin-metabox.php:573
603
  #: includes/admin/templates/access/restrict_content.php:87
604
  msgid "Show access restricted message"
605
  msgstr ""
606
 
607
+ #: includes/admin/core/class-admin-metabox.php:419
608
+ #: includes/admin/core/class-admin-metabox.php:574
609
  #: includes/admin/templates/access/restrict_content.php:88
610
  msgid "Redirect user"
611
  msgstr ""
612
 
613
+ #: includes/admin/core/class-admin-metabox.php:426
614
+ #: includes/admin/core/class-admin-metabox.php:582
615
  #: includes/admin/templates/access/restrict_content.php:95
616
  msgid ""
617
  "Would you like to use the global default message or apply a custom message "
618
  "to this content?"
619
  msgstr ""
620
 
621
+ #: includes/admin/core/class-admin-metabox.php:430
622
+ #: includes/admin/core/class-admin-metabox.php:586
623
  #: includes/admin/templates/access/restrict_content.php:99
624
  msgid "Global default message (default)"
625
  msgstr ""
626
 
627
+ #: includes/admin/core/class-admin-metabox.php:431
628
+ #: includes/admin/core/class-admin-metabox.php:587
629
  #: includes/admin/templates/access/restrict_content.php:100
630
  msgid "Custom message"
631
  msgstr ""
632
 
633
+ #: includes/admin/core/class-admin-metabox.php:438
634
+ #: includes/admin/core/class-admin-metabox.php:595
635
  #: includes/admin/templates/access/restrict_content.php:107
636
  msgid "Custom Restrict Content message"
637
  msgstr ""
638
 
639
+ #: includes/admin/core/class-admin-metabox.php:439
640
+ #: includes/admin/core/class-admin-metabox.php:459
641
+ #: includes/admin/core/class-admin-metabox.php:596
642
+ #: includes/admin/core/class-admin-metabox.php:618
643
  #: includes/admin/templates/access/restrict_content.php:108
644
  #: includes/admin/templates/access/restrict_content.php:128
645
  msgid "Changed global restrict message"
646
  msgstr ""
647
 
648
+ #: includes/admin/core/class-admin-metabox.php:446
649
+ #: includes/admin/core/class-admin-metabox.php:604
650
  #: includes/admin/templates/access/restrict_content.php:115
651
  msgid "Where should users be redirected to?"
652
  msgstr ""
653
 
654
+ #: includes/admin/core/class-admin-metabox.php:447
655
+ #: includes/admin/core/class-admin-metabox.php:605
656
  #: includes/admin/templates/access/restrict_content.php:116
657
  msgid "Select redirect to page when user hasn't access to content"
658
  msgstr ""
659
 
660
+ #: includes/admin/core/class-admin-metabox.php:451
661
+ #: includes/admin/core/class-admin-metabox.php:609
662
  #: includes/admin/templates/access/restrict_content.php:120
663
  msgid "Login page"
664
  msgstr ""
665
 
666
+ #: includes/admin/core/class-admin-metabox.php:452
667
+ #: includes/admin/core/class-admin-metabox.php:610
668
  #: includes/admin/templates/access/restrict_content.php:121
669
  msgid "Custom URL"
670
  msgstr ""
671
 
672
+ #: includes/admin/core/class-admin-metabox.php:458
673
+ #: includes/admin/core/class-admin-metabox.php:617
674
  #: includes/admin/templates/access/restrict_content.php:127
675
  msgid "Redirect URL"
676
  msgstr ""
677
 
678
+ #: includes/admin/core/class-admin-metabox.php:466
679
+ #: includes/admin/core/class-admin-metabox.php:626
680
  #: includes/admin/templates/access/restrict_content.php:135
681
  msgid "Hide from queries"
682
  msgstr ""
683
 
684
+ #: includes/admin/core/class-admin-metabox.php:467
685
+ #: includes/admin/core/class-admin-metabox.php:627
686
  #: includes/admin/templates/access/restrict_content.php:136
687
  msgid ""
688
  "Hide this content from archives, RSS feeds etc for users who do not have "
689
  "permission to view this content"
690
  msgstr ""
691
 
692
+ #: includes/admin/core/class-admin-metabox.php:807
693
  msgid "General Options"
694
  msgstr ""
695
 
696
+ #: includes/admin/core/class-admin-metabox.php:808
697
  msgid "Sorting"
698
  msgstr ""
699
 
700
+ #: includes/admin/core/class-admin-metabox.php:809
701
  msgid "Profile Card"
702
  msgstr ""
703
 
704
+ #: includes/admin/core/class-admin-metabox.php:810
705
  msgid "Search Options"
706
  msgstr ""
707
 
708
+ #: includes/admin/core/class-admin-metabox.php:811
709
  msgid "Results &amp; Pagination"
710
  msgstr ""
711
 
712
+ #: includes/admin/core/class-admin-metabox.php:813
713
  msgid "Styling: General"
714
  msgstr ""
715
 
716
+ #: includes/admin/core/class-admin-metabox.php:826
717
  msgid "Administrative Permissions"
718
  msgstr ""
719
 
720
+ #: includes/admin/core/class-admin-metabox.php:834
721
  msgid "General Permissions"
722
  msgstr ""
723
 
724
+ #: includes/admin/core/class-admin-metabox.php:842
725
  msgid "Profile Access"
726
  msgstr ""
727
 
728
+ #: includes/admin/core/class-admin-metabox.php:853
729
  msgid "Homepage Options"
730
  msgstr ""
731
 
732
+ #: includes/admin/core/class-admin-metabox.php:864
733
  msgid "Registration Options"
734
  msgstr ""
735
 
736
+ #: includes/admin/core/class-admin-metabox.php:872
737
  msgid "Login Options"
738
  msgstr ""
739
 
740
+ #: includes/admin/core/class-admin-metabox.php:880
741
  msgid "Logout Options"
742
  msgstr ""
743
 
744
+ #: includes/admin/core/class-admin-metabox.php:888
745
  msgid "Delete Options"
746
  msgstr ""
747
 
748
+ #: includes/admin/core/class-admin-metabox.php:896
749
  msgid "Publish"
750
  msgstr ""
751
 
752
+ #: includes/admin/core/class-admin-metabox.php:945
753
  msgid "WP Capabilities"
754
  msgstr ""
755
 
756
+ #: includes/admin/core/class-admin-metabox.php:972
757
  msgid "Select Form Type"
758
  msgstr ""
759
 
760
+ #: includes/admin/core/class-admin-metabox.php:973
761
  msgid "Form Builder"
762
  msgstr ""
763
 
764
+ #: includes/admin/core/class-admin-metabox.php:976
765
+ #: includes/admin/core/class-admin-metabox.php:997
766
+ #: includes/admin/core/class-admin-metabox.php:1019
767
  msgid "Customize this form"
768
  msgstr ""
769
 
770
+ #: includes/admin/core/class-admin-metabox.php:998
771
  msgid "User Meta"
772
  msgstr ""
773
 
774
+ #: includes/admin/core/class-admin-metabox.php:1020
775
  msgid "Options"
776
  msgstr ""
777
 
778
+ #: includes/admin/core/class-admin-metabox.php:1072
779
  #, php-format
780
  msgid "Directory #%s"
781
  msgstr ""
782
 
783
+ #: includes/admin/core/class-admin-metabox.php:1165
784
  #, php-format
785
  msgid "Form #%s"
786
  msgstr ""
787
 
788
+ #: includes/admin/core/class-admin-metabox.php:1269
789
  msgid "Visibility"
790
  msgstr ""
791
 
792
+ #: includes/admin/core/class-admin-metabox.php:1269
793
  msgid ""
794
  "Select where this field should appear. This option should only be changed on "
795
  "the profile form and allows you to show a field in one mode only (edit or "
796
  "view) or in both modes."
797
  msgstr ""
798
 
799
+ #: includes/admin/core/class-admin-metabox.php:1271
800
  msgid "View everywhere"
801
  msgstr ""
802
 
803
+ #: includes/admin/core/class-admin-metabox.php:1272
804
  msgid "Edit mode only"
805
  msgstr ""
806
 
807
+ #: includes/admin/core/class-admin-metabox.php:1273
808
  msgid "View mode only"
809
  msgstr ""
810
 
811
+ #: includes/admin/core/class-admin-metabox.php:1301
812
  msgid "If"
813
  msgstr ""
814
 
815
+ #: includes/admin/core/class-admin-metabox.php:1378
816
  msgid "Value"
817
  msgstr ""
818
 
819
+ #: includes/admin/core/class-admin-metabox.php:1387
820
  msgid "Validate"
821
  msgstr ""
822
 
823
+ #: includes/admin/core/class-admin-metabox.php:1387
824
  msgid "Does this field require a special validation"
825
  msgstr ""
826
 
827
+ #: includes/admin/core/class-admin-metabox.php:1388
828
  msgid "Select a validation type..."
829
  msgstr ""
830
 
831
+ #: includes/admin/core/class-admin-metabox.php:1432
832
  msgid "Custom Action"
833
  msgstr ""
834
 
835
+ #: includes/admin/core/class-admin-metabox.php:1432
836
  msgid ""
837
  "If you want to apply your custom validation, you can use action hooks to add "
838
  "custom validation. Please refer to documentation for further details."
839
  msgstr ""
840
 
841
+ #: includes/admin/core/class-admin-metabox.php:1446
842
+ #: includes/admin/core/class-admin-metabox.php:1474
843
  msgid "Icon"
844
  msgstr ""
845
 
846
+ #: includes/admin/core/class-admin-metabox.php:1446
847
+ #: includes/admin/core/class-admin-metabox.php:1474
848
  msgid ""
849
  "Select an icon to appear in the field. Leave blank if you do not want an "
850
  "icon to show in the field."
851
  msgstr ""
852
 
853
+ #: includes/admin/core/class-admin-metabox.php:1501
854
  msgid "CSS Class"
855
  msgstr ""
856
 
857
+ #: includes/admin/core/class-admin-metabox.php:1501
858
  msgid "Specify a custom CSS class to be applied to this element"
859
  msgstr ""
860
 
861
+ #: includes/admin/core/class-admin-metabox.php:1511
862
  msgid "Thickness (in pixels)"
863
  msgstr ""
864
 
865
+ #: includes/admin/core/class-admin-metabox.php:1511
866
  msgid "This is the width in pixels, e.g. 4 or 2, etc"
867
  msgstr ""
868
 
869
+ #: includes/admin/core/class-admin-metabox.php:1521
870
  msgid "Optional Text"
871
  msgstr ""
872
 
873
+ #: includes/admin/core/class-admin-metabox.php:1521
874
  msgid "Optional text to include with the divider"
875
  msgstr ""
876
 
877
+ #: includes/admin/core/class-admin-metabox.php:1531
878
  msgid "Padding"
879
  msgstr ""
880
 
881
+ #: includes/admin/core/class-admin-metabox.php:1531
882
  msgid "Set padding for this section"
883
  msgstr ""
884
 
885
+ #: includes/admin/core/class-admin-metabox.php:1541
886
  msgid "Margin"
887
  msgstr ""
888
 
889
+ #: includes/admin/core/class-admin-metabox.php:1541
890
  msgid "Set margin for this section"
891
  msgstr ""
892
 
893
+ #: includes/admin/core/class-admin-metabox.php:1551
894
  msgid "Border"
895
  msgstr ""
896
 
897
+ #: includes/admin/core/class-admin-metabox.php:1551
898
  msgid "Set border for this section"
899
  msgstr ""
900
 
901
+ #: includes/admin/core/class-admin-metabox.php:1561
902
+ #: includes/admin/core/class-admin-metabox.php:1732
903
  msgid "Style"
904
  msgstr ""
905
 
906
+ #: includes/admin/core/class-admin-metabox.php:1561
907
  msgid "Choose the border style"
908
  msgstr ""
909
 
910
+ #: includes/admin/core/class-admin-metabox.php:1563
911
+ #: includes/admin/core/class-admin-metabox.php:1734
912
  msgid "Solid"
913
  msgstr ""
914
 
915
+ #: includes/admin/core/class-admin-metabox.php:1564
916
+ #: includes/admin/core/class-admin-metabox.php:1735
917
  msgid "Dotted"
918
  msgstr ""
919
 
920
+ #: includes/admin/core/class-admin-metabox.php:1565
921
+ #: includes/admin/core/class-admin-metabox.php:1736
922
  msgid "Dashed"
923
  msgstr ""
924
 
925
+ #: includes/admin/core/class-admin-metabox.php:1566
926
+ #: includes/admin/core/class-admin-metabox.php:1737
927
  msgid "Double"
928
  msgstr ""
929
 
930
+ #: includes/admin/core/class-admin-metabox.php:1576
931
  msgid "Border Radius"
932
  msgstr ""
933
 
934
+ #: includes/admin/core/class-admin-metabox.php:1576
935
  msgid "Rounded corners can be applied by setting a pixels value here. e.g. 5px"
936
  msgstr ""
937
 
938
+ #: includes/admin/core/class-admin-metabox.php:1586
939
  msgid "Border Color"
940
  msgstr ""
941
 
942
+ #: includes/admin/core/class-admin-metabox.php:1586
943
  msgid "Give a color to this border"
944
  msgstr ""
945
 
946
+ #: includes/admin/core/class-admin-metabox.php:1596
947
  msgid "Enable Row Heading"
948
  msgstr ""
949
 
950
+ #: includes/admin/core/class-admin-metabox.php:1596
951
  msgid "Whether to enable a heading for this row"
952
  msgstr ""
953
 
954
+ #: includes/admin/core/class-admin-metabox.php:1606
955
  msgid "Heading Text"
956
  msgstr ""
957
 
958
+ #: includes/admin/core/class-admin-metabox.php:1606
959
  msgid "Enter the row heading text here"
960
  msgstr ""
961
 
962
+ #: includes/admin/core/class-admin-metabox.php:1616
963
  msgid "Background Color"
964
  msgstr ""
965
 
966
+ #: includes/admin/core/class-admin-metabox.php:1616
967
  msgid "This will be the background of entire section"
968
  msgstr ""
969
 
970
+ #: includes/admin/core/class-admin-metabox.php:1626
971
  msgid "Heading Background Color"
972
  msgstr ""
973
 
974
+ #: includes/admin/core/class-admin-metabox.php:1626
975
  msgid "This will be the background of the heading section"
976
  msgstr ""
977
 
978
+ #: includes/admin/core/class-admin-metabox.php:1636
979
  msgid "Heading Text Color"
980
  msgstr ""
981
 
982
+ #: includes/admin/core/class-admin-metabox.php:1636
983
  msgid "This will be the text color of heading part only"
984
  msgstr ""
985
 
986
+ #: includes/admin/core/class-admin-metabox.php:1646
987
  msgid "Text Color"
988
  msgstr ""
989
 
990
+ #: includes/admin/core/class-admin-metabox.php:1646
991
  msgid "This will be the text color of entire section"
992
  msgstr ""
993
 
994
+ #: includes/admin/core/class-admin-metabox.php:1656
995
  msgid "Icon Color"
996
  msgstr ""
997
 
998
+ #: includes/admin/core/class-admin-metabox.php:1656
999
  msgid ""
1000
  "This will be the color of selected icon. By default It will be the same "
1001
  "color as heading text color"
1002
  msgstr ""
1003
 
1004
+ #: includes/admin/core/class-admin-metabox.php:1666
1005
  msgid "Color"
1006
  msgstr ""
1007
 
1008
+ #: includes/admin/core/class-admin-metabox.php:1666
1009
  msgid "Select a color for this divider"
1010
  msgstr ""
1011
 
1012
+ #: includes/admin/core/class-admin-metabox.php:1676
1013
  msgid "URL Alt Text"
1014
  msgstr ""
1015
 
1016
+ #: includes/admin/core/class-admin-metabox.php:1676
1017
  msgid "Entering custom text here will replace the url with a text link"
1018
  msgstr ""
1019
 
1020
+ #: includes/admin/core/class-admin-metabox.php:1686
1021
  msgid "Link Target"
1022
  msgstr ""
1023
 
1024
+ #: includes/admin/core/class-admin-metabox.php:1686
1025
  msgid "Choose whether to open this link in same window or in a new window"
1026
  msgstr ""
1027
 
1028
+ #: includes/admin/core/class-admin-metabox.php:1688
1029
  msgid "Open in new window"
1030
  msgstr ""
1031
 
1032
+ #: includes/admin/core/class-admin-metabox.php:1689
1033
  msgid "Same window"
1034
  msgstr ""
1035
 
1036
+ #: includes/admin/core/class-admin-metabox.php:1699
1037
  msgid "SEO Follow"
1038
  msgstr ""
1039
 
1040
+ #: includes/admin/core/class-admin-metabox.php:1699
1041
  msgid "Whether to follow or nofollow this link by search engines"
1042
  msgstr ""
1043
 
1044
+ #: includes/admin/core/class-admin-metabox.php:1701
1045
  msgid "Follow"
1046
  msgstr ""
1047
 
1048
+ #: includes/admin/core/class-admin-metabox.php:1702
1049
  msgid "No-Follow"
1050
  msgstr ""
1051
 
1052
+ #: includes/admin/core/class-admin-metabox.php:1712
1053
  msgid "Force strong password?"
1054
  msgstr ""
1055
 
1056
+ #: includes/admin/core/class-admin-metabox.php:1712
1057
  msgid ""
1058
  "Turn on to force users to create a strong password (A combination of one "
1059
  "lowercase letter, one uppercase letter, and one number). If turned on this "
1060
  "option is only applied to register forms and not to login forms."
1061
  msgstr ""
1062
 
1063
+ #: includes/admin/core/class-admin-metabox.php:1722
1064
  msgid "Automatically add a confirm password field?"
1065
  msgstr ""
1066
 
1067
+ #: includes/admin/core/class-admin-metabox.php:1722
1068
  msgid ""
1069
  "Turn on to add a confirm password field. If turned on the confirm password "
1070
  "field will only show on register forms and not on login forms."
1071
  msgstr ""
1072
 
1073
+ #: includes/admin/core/class-admin-metabox.php:1732
1074
  msgid "This is the line-style of divider"
1075
  msgstr ""
1076
 
1077
+ #: includes/admin/core/class-admin-metabox.php:1748
1078
  msgid "Time Intervals (in minutes)"
1079
  msgstr ""
1080
 
1081
+ #: includes/admin/core/class-admin-metabox.php:1748
1082
  msgid "Choose the minutes interval between each time in the time picker."
1083
  msgstr ""
1084
 
1085
+ #: includes/admin/core/class-admin-metabox.php:1749
1086
  msgid "e.g. 30, 60, 120"
1087
  msgstr ""
1088
 
1089
+ #: includes/admin/core/class-admin-metabox.php:1761
1090
  msgid "Date User-Friendly Format"
1091
  msgstr ""
1092
 
1093
+ #: includes/admin/core/class-admin-metabox.php:1761
1094
  msgid "The display format of the date which is visible to user."
1095
  msgstr ""
1096
 
1097
+ #: includes/admin/core/class-admin-metabox.php:1772
1098
  msgid "Time Format"
1099
  msgstr ""
1100
 
1101
+ #: includes/admin/core/class-admin-metabox.php:1772
1102
  msgid "Choose the displayed time-format for this field"
1103
  msgstr ""
1104
 
1105
+ #: includes/admin/core/class-admin-metabox.php:1774
1106
+ #: includes/admin/core/class-admin-metabox.php:1775
1107
  msgid "( 12-hr format )"
1108
  msgstr ""
1109
 
1110
+ #: includes/admin/core/class-admin-metabox.php:1776
1111
  msgid "( 24-hr format )"
1112
  msgstr ""
1113
 
1114
+ #: includes/admin/core/class-admin-metabox.php:1787
1115
  msgid "Use custom Date format"
1116
  msgstr ""
1117
 
1118
+ #: includes/admin/core/class-admin-metabox.php:1787
1119
  msgid ""
1120
  "This option overrides \"Date User-Friendly Format\" option. See https://www."
1121
  "php.net/manual/en/function.date.php"
1122
  msgstr ""
1123
 
1124
+ #: includes/admin/core/class-admin-metabox.php:1797
1125
  msgid "Displayed Date Format"
1126
  msgstr ""
1127
 
1128
+ #: includes/admin/core/class-admin-metabox.php:1797
1129
  msgid ""
1130
  "Whether you wish to show the date in full or only show the years e.g. 25 "
1131
  "Years"
1132
  msgstr ""
1133
 
1134
+ #: includes/admin/core/class-admin-metabox.php:1799
1135
  msgid "Show full date"
1136
  msgstr ""
1137
 
1138
+ #: includes/admin/core/class-admin-metabox.php:1800
1139
  msgid "Show years only"
1140
  msgstr ""
1141
 
1142
+ #: includes/admin/core/class-admin-metabox.php:1816
1143
  msgid "Disable specific weekdays"
1144
  msgstr ""
1145
 
1146
+ #: includes/admin/core/class-admin-metabox.php:1816
1147
  msgid ""
1148
  "Disable specific week days from being available for selection in this date "
1149
  "picker"
1150
  msgstr ""
1151
 
1152
+ #: includes/admin/core/class-admin-metabox.php:1818
1153
  msgid "Sunday"
1154
  msgstr ""
1155
 
1156
+ #: includes/admin/core/class-admin-metabox.php:1819
1157
  msgid "Monday"
1158
  msgstr ""
1159
 
1160
+ #: includes/admin/core/class-admin-metabox.php:1820
1161
  msgid "Tuesday"
1162
  msgstr ""
1163
 
1164
+ #: includes/admin/core/class-admin-metabox.php:1821
1165
  msgid "Wednesday"
1166
  msgstr ""
1167
 
1168
+ #: includes/admin/core/class-admin-metabox.php:1822
1169
  msgid "Thursday"
1170
  msgstr ""
1171
 
1172
+ #: includes/admin/core/class-admin-metabox.php:1823
1173
  msgid "Friday"
1174
  msgstr ""
1175
 
1176
+ #: includes/admin/core/class-admin-metabox.php:1824
1177
  msgid "Saturday"
1178
  msgstr ""
1179
 
1180
+ #: includes/admin/core/class-admin-metabox.php:1834
1181
  msgid "Number of Years to pick from"
1182
  msgstr ""
1183
 
1184
+ #: includes/admin/core/class-admin-metabox.php:1834
1185
  msgid ""
1186
  "Number of years available for the date selection. Default to last 50 years"
1187
  msgstr ""
1188
 
1189
+ #: includes/admin/core/class-admin-metabox.php:1844
1190
  msgid "Years Selection"
1191
  msgstr ""
1192
 
1193
+ #: includes/admin/core/class-admin-metabox.php:1844
1194
  msgid "This decides which years should be shown relative to today date"
1195
  msgstr ""
1196
 
1197
+ #: includes/admin/core/class-admin-metabox.php:1846
1198
  msgid "Equal years before / after today"
1199
  msgstr ""
1200
 
1201
+ #: includes/admin/core/class-admin-metabox.php:1847
1202
  msgid "Past years only"
1203
  msgstr ""
1204
 
1205
+ #: includes/admin/core/class-admin-metabox.php:1848
1206
  msgid "Future years only"
1207
  msgstr ""
1208
 
1209
+ #: includes/admin/core/class-admin-metabox.php:1858
1210
  msgid "Date Range Start"
1211
  msgstr ""
1212
 
1213
+ #: includes/admin/core/class-admin-metabox.php:1858
1214
  msgid "Set the minimum date/day in range in the format YYYY/MM/DD"
1215
  msgstr ""
1216
 
1217
+ #: includes/admin/core/class-admin-metabox.php:1859
1218
+ #: includes/admin/core/class-admin-metabox.php:1869
1219
  msgid "YYYY/MM/DD"
1220
  msgstr ""
1221
 
1222
+ #: includes/admin/core/class-admin-metabox.php:1868
1223
  msgid "Date Range End"
1224
  msgstr ""
1225
 
1226
+ #: includes/admin/core/class-admin-metabox.php:1868
1227
  msgid "Set the maximum date/day in range in the format YYYY/MM/DD"
1228
  msgstr ""
1229
 
1230
+ #: includes/admin/core/class-admin-metabox.php:1878
1231
  msgid "Set Date Range"
1232
  msgstr ""
1233
 
1234
+ #: includes/admin/core/class-admin-metabox.php:1878
1235
  msgid ""
1236
  "Whether to show a specific number of years or specify a date range to be "
1237
  "available for the date picker."
1238
  msgstr ""
1239
 
1240
+ #: includes/admin/core/class-admin-metabox.php:1880
1241
  msgid "Fixed Number of Years"
1242
  msgstr ""
1243
 
1244
+ #: includes/admin/core/class-admin-metabox.php:1881
1245
  msgid "Specific Date Range"
1246
  msgstr ""
1247
 
1248
+ #: includes/admin/core/class-admin-metabox.php:1894
1249
  msgid "Enter Shortcode"
1250
  msgstr ""
1251
 
1252
+ #: includes/admin/core/class-admin-metabox.php:1894
1253
  msgid ""
1254
  "Enter the shortcode in the following textarea and it will be displayed on "
1255
  "the fields"
1256
  msgstr ""
1257
 
1258
+ #: includes/admin/core/class-admin-metabox.php:1895
1259
  msgid "e.g. [my_custom_shortcode]"
1260
  msgstr ""
1261
 
1262
+ #: includes/admin/core/class-admin-metabox.php:1904
1263
  msgid "Content Editor"
1264
  msgstr ""
1265
 
1266
+ #: includes/admin/core/class-admin-metabox.php:1904
1267
  msgid "Edit the content of this field here"
1268
  msgstr ""
1269
 
1270
+ #: includes/admin/core/class-admin-metabox.php:1917
1271
  msgid "Crop Feature"
1272
  msgstr ""
1273
 
1274
+ #: includes/admin/core/class-admin-metabox.php:1917
1275
  msgid "Enable/disable crop feature for this image upload and define ratio"
1276
  msgstr ""
1277
 
1278
+ #: includes/admin/core/class-admin-metabox.php:1919
1279
  msgid "Turn Off (Default)"
1280
  msgstr ""
1281
 
1282
+ #: includes/admin/core/class-admin-metabox.php:1920
1283
  msgid "Crop and force 1:1 ratio"
1284
  msgstr ""
1285
 
1286
+ #: includes/admin/core/class-admin-metabox.php:1921
1287
  msgid "Crop and force user-defined ratio"
1288
  msgstr ""
1289
 
1290
+ #: includes/admin/core/class-admin-metabox.php:1938
1291
  msgid "Allowed Image Types"
1292
  msgstr ""
1293
 
1294
+ #: includes/admin/core/class-admin-metabox.php:1938
1295
+ #: includes/admin/core/class-admin-metabox.php:1956
1296
  msgid ""
1297
  "Select the image types that you want to allow to be uploaded via this field."
1298
  msgstr ""
1299
 
1300
+ #: includes/admin/core/class-admin-metabox.php:1956
1301
  msgid "Allowed File Types"
1302
  msgstr ""
1303
 
1304
+ #: includes/admin/core/class-admin-metabox.php:1973
1305
  msgid "Drag &amp; Drop Photo"
1306
  msgstr ""
1307
 
1308
+ #: includes/admin/core/class-admin-metabox.php:1976
1309
  msgid "Drag &amp; Drop File"
1310
  msgstr ""
1311
 
1312
+ #: includes/admin/core/class-admin-metabox.php:1981
1313
+ #: includes/admin/core/class-admin-metabox.php:2001
1314
  msgid "Upload Box Text"
1315
  msgstr ""
1316
 
1317
+ #: includes/admin/core/class-admin-metabox.php:1981
1318
  msgid "This is the headline that appears in the upload box for this field"
1319
  msgstr ""
1320
 
1321
+ #: includes/admin/core/class-admin-metabox.php:1991
1322
  msgid "Additional Instructions Text"
1323
  msgstr ""
1324
 
1325
+ #: includes/admin/core/class-admin-metabox.php:1991
1326
  msgid ""
1327
  "If you need to add information or secondary line below the headline of "
1328
  "upload box, enter it here"
1329
  msgstr ""
1330
 
1331
+ #: includes/admin/core/class-admin-metabox.php:2001
1332
  msgid "The text that appears on the button. e.g. Upload"
1333
  msgstr ""
1334
 
1335
+ #: includes/admin/core/class-admin-metabox.php:2002
1336
+ #: includes/core/class-fields.php:1707 includes/core/class-fields.php:1748
1337
+ #: includes/core/class-fields.php:2587 includes/core/class-fields.php:2662
1338
  msgid "Upload"
1339
  msgstr ""
1340
 
1341
+ #: includes/admin/core/class-admin-metabox.php:2011
1342
  msgid "Maximum Size in bytes"
1343
  msgstr ""
1344
 
1345
+ #: includes/admin/core/class-admin-metabox.php:2011
1346
  msgid ""
1347
  "The maximum size for image that can be uploaded through this field. Leave "
1348
  "empty for unlimited size."
1349
  msgstr ""
1350
 
1351
+ #: includes/admin/core/class-admin-metabox.php:2021
1352
  msgid "Textarea Height"
1353
  msgstr ""
1354
 
1355
+ #: includes/admin/core/class-admin-metabox.php:2021
1356
  msgid "The height of textarea in pixels. Default is 100 pixels"
1357
  msgstr ""
1358
 
1359
+ #: includes/admin/core/class-admin-metabox.php:2031
1360
  msgid "Spacing"
1361
  msgstr ""
1362
 
1363
+ #: includes/admin/core/class-admin-metabox.php:2031
1364
  msgid "This is the required spacing in pixels. e.g. 20px"
1365
  msgstr ""
1366
 
1367
+ #: includes/admin/core/class-admin-metabox.php:2041
1368
  msgid "Allow multiple selections"
1369
  msgstr ""
1370
 
1371
+ #: includes/admin/core/class-admin-metabox.php:2041
1372
  msgid "Enable/disable multiple selections for this field"
1373
  msgstr ""
1374
 
1375
+ #: includes/admin/core/class-admin-metabox.php:2051
1376
  msgid "Maximum number of selections"
1377
  msgstr ""
1378
 
1379
+ #: includes/admin/core/class-admin-metabox.php:2051
1380
  msgid ""
1381
  "Enter a number here to force a maximum number of selections by user for this "
1382
  "field"
1383
  msgstr ""
1384
 
1385
+ #: includes/admin/core/class-admin-metabox.php:2061
1386
  msgid "Minimum number of selections"
1387
  msgstr ""
1388
 
1389
+ #: includes/admin/core/class-admin-metabox.php:2061
1390
  msgid ""
1391
  "Enter a number here to force a minimum number of selections by user for this "
1392
  "field"
1393
  msgstr ""
1394
 
1395
+ #: includes/admin/core/class-admin-metabox.php:2071
1396
  msgid "Maximum number of entries"
1397
  msgstr ""
1398
 
1399
+ #: includes/admin/core/class-admin-metabox.php:2071
1400
  msgid "This is the max number of entries the user can add via field group."
1401
  msgstr ""
1402
 
1403
+ #: includes/admin/core/class-admin-metabox.php:2081
1404
  msgid "Maximum allowed words"
1405
  msgstr ""
1406
 
1407
+ #: includes/admin/core/class-admin-metabox.php:2081
1408
  msgid ""
1409
  "If you want to enable a maximum number of words to be input in this "
1410
  "textarea. Leave empty to disable this setting"
1411
  msgstr ""
1412
 
1413
+ #: includes/admin/core/class-admin-metabox.php:2091
1414
  msgid "Minimum Number"
1415
  msgstr ""
1416
 
1417
+ #: includes/admin/core/class-admin-metabox.php:2091
1418
  msgid "Minimum number that can be entered in this field"
1419
  msgstr ""
1420
 
1421
+ #: includes/admin/core/class-admin-metabox.php:2101
1422
  msgid "Maximum Number"
1423
  msgstr ""
1424
 
1425
+ #: includes/admin/core/class-admin-metabox.php:2101
1426
  msgid "Maximum number that can be entered in this field"
1427
  msgstr ""
1428
 
1429
+ #: includes/admin/core/class-admin-metabox.php:2111
1430
  msgid "Minimum length"
1431
  msgstr ""
1432
 
1433
+ #: includes/admin/core/class-admin-metabox.php:2111
1434
  msgid ""
1435
  "If you want to enable a minimum number of characters to be input in this "
1436
  "field. Leave empty to disable this setting"
1437
  msgstr ""
1438
 
1439
+ #: includes/admin/core/class-admin-metabox.php:2121
1440
  msgid "Maximum length"
1441
  msgstr ""
1442
 
1443
+ #: includes/admin/core/class-admin-metabox.php:2121
1444
  msgid ""
1445
  "If you want to enable a maximum number of characters to be input in this "
1446
  "field. Leave empty to disable this setting"
1447
  msgstr ""
1448
 
1449
+ #: includes/admin/core/class-admin-metabox.php:2131
1450
  msgid "Does this textarea accept HTML?"
1451
  msgstr ""
1452
 
1453
+ #: includes/admin/core/class-admin-metabox.php:2131
1454
  msgid "Turn on/off HTML tags for this textarea"
1455
  msgstr ""
1456
 
1457
+ #: includes/admin/core/class-admin-metabox.php:2148
1458
  msgid "Edit Choices"
1459
  msgstr ""
1460
 
1461
+ #: includes/admin/core/class-admin-metabox.php:2148
1462
  msgid ""
1463
  "Enter one choice per line. This will represent the available choices or "
1464
  "selections available for user."
1465
  msgstr ""
1466
 
1467
+ #: includes/admin/core/class-admin-metabox.php:2158
1468
  msgid ""
1469
  "This is the title of the field for your reference in the backend. The title "
1470
  "will not appear on the front-end of your website."
1471
  msgstr ""
1472
 
1473
+ #: includes/admin/core/class-admin-metabox.php:2169
1474
  msgid "Unique ID"
1475
  msgstr ""
1476
 
1477
+ #: includes/admin/core/class-admin-metabox.php:2183
1478
+ #: includes/admin/core/class-admin-metabox.php:2189
1479
  msgid "Meta Key"
1480
  msgstr ""
1481
 
1482
+ #: includes/admin/core/class-admin-metabox.php:2183
1483
  msgid ""
1484
  "The meta key cannot be changed for duplicated fields or when editing an "
1485
  "existing field. If you require a different meta key please create a new "
1486
  "field."
1487
  msgstr ""
1488
 
1489
+ #: includes/admin/core/class-admin-metabox.php:2189
1490
  msgid ""
1491
  "A meta key is required to store the entered info in this field in the "
1492
  "database. The meta key should be unique to this field and be written in "
1494
  "job_title"
1495
  msgstr ""
1496
 
1497
+ #: includes/admin/core/class-admin-metabox.php:2202
1498
  msgid "Help Text"
1499
  msgstr ""
1500
 
1501
+ #: includes/admin/core/class-admin-metabox.php:2202
1502
  msgid ""
1503
  "This is the text that appears in a tooltip when a user hovers over the info "
1504
  "icon. Help text is useful for providing users with more information about "
1506
  "for field."
1507
  msgstr ""
1508
 
1509
+ #: includes/admin/core/class-admin-metabox.php:2214
1510
  msgid "Default Text"
1511
  msgstr ""
1512
 
1513
+ #: includes/admin/core/class-admin-metabox.php:2214
1514
  msgid "Text to display by default in this field"
1515
  msgstr ""
1516
 
1517
+ #: includes/admin/core/class-admin-metabox.php:2220
1518
  msgid "Default Date"
1519
  msgstr ""
1520
 
1521
+ #: includes/admin/core/class-admin-metabox.php:2220
1522
+ #: includes/admin/core/class-admin-metabox.php:2226
1523
  msgid ""
1524
  "You may use all PHP compatible date formats such as: 2020-02-02, 02/02/2020, "
1525
  "yesterday, today, tomorrow, next monday, first day of next month, +3 day"
1526
  msgstr ""
1527
 
1528
+ #: includes/admin/core/class-admin-metabox.php:2226
1529
  msgid "Default Time"
1530
  msgstr ""
1531
 
1532
+ #: includes/admin/core/class-admin-metabox.php:2232
1533
  msgid "Default Rating"
1534
  msgstr ""
1535
 
1536
+ #: includes/admin/core/class-admin-metabox.php:2232
1537
  msgid ""
1538
  "If you wish the rating field to be prefilled with a number of stars, enter "
1539
  "it here."
1540
  msgstr ""
1541
 
1542
+ #: includes/admin/core/class-admin-metabox.php:2238
1543
  msgid "Default Value"
1544
  msgstr ""
1545
 
1546
+ #: includes/admin/core/class-admin-metabox.php:2238
1547
  msgid ""
1548
  "This option allows you to pre-fill the field with a default value prior to "
1549
  "the user entering a value in the field. Leave blank to have no default value"
1550
  msgstr ""
1551
 
1552
+ #: includes/admin/core/class-admin-metabox.php:2250
1553
  msgid ""
1554
  "The field label is the text that appears above the field on your front-end "
1555
  "form. Leave blank to not show a label above field."
1556
  msgstr ""
1557
 
1558
+ #: includes/admin/core/class-admin-metabox.php:2260
1559
  msgid "Placeholder"
1560
  msgstr ""
1561
 
1562
+ #: includes/admin/core/class-admin-metabox.php:2260
1563
  msgid ""
1564
  "This is the text that appears within the field e.g please enter your email "
1565
  "address. Leave blank to not show any placeholder text."
1566
  msgstr ""
1567
 
1568
+ #: includes/admin/core/class-admin-metabox.php:2270
1569
+ #: includes/class-config.php:134 includes/class-config.php:792
 
 
 
 
 
 
1570
  msgid "Members"
1571
  msgstr ""
1572
 
1573
+ #: includes/admin/core/class-admin-metabox.php:2271
1574
  msgid "Only visible to profile owner and admins"
1575
  msgstr ""
1576
 
1577
+ #: includes/admin/core/class-admin-metabox.php:2272
1578
  msgid "Only visible to profile owner and specific roles"
1579
  msgstr ""
1580
 
1581
+ #: includes/admin/core/class-admin-metabox.php:2273
1582
  msgid "Only specific member roles"
1583
  msgstr ""
1584
 
1585
+ #: includes/admin/core/class-admin-metabox.php:2279
1586
+ msgid ""
1587
+ "Field privacy allows you to select who can view this field on the front-end. "
1588
+ "The site admin can view all fields regardless of the option set here."
1589
+ msgstr ""
1590
+
1591
+ #: includes/admin/core/class-admin-metabox.php:2302
1592
  msgid "Select member roles"
1593
  msgstr ""
1594
 
1595
+ #: includes/admin/core/class-admin-metabox.php:2302
1596
  msgid "Select the member roles that can view this field on the front-end."
1597
  msgstr ""
1598
 
1599
+ #: includes/admin/core/class-admin-metabox.php:2328
1600
  msgid "Is this field required?"
1601
  msgstr ""
1602
 
1603
+ #: includes/admin/core/class-admin-metabox.php:2328
1604
  msgid ""
1605
  "This option allows you to set whether the field must be filled in before the "
1606
  "form can be processed."
1607
  msgstr ""
1608
 
1609
+ #: includes/admin/core/class-admin-metabox.php:2342
1610
  msgid "Can user edit this field?"
1611
  msgstr ""
1612
 
1613
+ #: includes/admin/core/class-admin-metabox.php:2342
1614
  msgid ""
1615
  "This option allows you to set whether or not the user can edit the "
1616
  "information in this field."
1617
  msgstr ""
1618
 
1619
+ #: includes/admin/core/class-admin-metabox.php:2355
1620
  msgid "Rating System"
1621
  msgstr ""
1622
 
1623
+ #: includes/admin/core/class-admin-metabox.php:2355
1624
  msgid "Choose whether you want a 5-stars or 10-stars ratings based here."
1625
  msgstr ""
1626
 
1627
+ #: includes/admin/core/class-admin-metabox.php:2357
1628
  msgid "5 stars rating system"
1629
  msgstr ""
1630
 
1631
+ #: includes/admin/core/class-admin-metabox.php:2358
1632
  msgid "10 stars rating system"
1633
  msgstr ""
1634
 
1635
+ #: includes/admin/core/class-admin-metabox.php:2368
1636
  msgid "Choices Callback"
1637
  msgstr ""
1638
 
1639
+ #: includes/admin/core/class-admin-metabox.php:2368
1640
  msgid "Add a callback source to retrieve choices."
1641
  msgstr ""
1642
 
1643
+ #: includes/admin/core/class-admin-metabox.php:2379
1644
  msgid "Parent Option"
1645
  msgstr ""
1646
 
1647
+ #: includes/admin/core/class-admin-metabox.php:2379
1648
  msgid "Dynamically populates the option based from selected parent option."
1649
  msgstr ""
1650
 
1651
+ #: includes/admin/core/class-admin-metabox.php:2381
1652
  msgid "No Selected"
1653
  msgstr ""
1654
 
1655
+ #: includes/admin/core/class-admin-navmenu.php:28
1656
  msgid "Display Mode"
1657
  msgstr ""
1658
 
1659
+ #: includes/admin/core/class-admin-navmenu.php:29
1660
  msgid "By Role"
1661
  msgstr ""
1662
 
1663
+ #: includes/admin/core/class-admin-navmenu.php:74
1664
+ #: includes/admin/core/class-admin-navmenu.php:124
1665
+ #: includes/admin/core/class-admin-navmenu.php:233
1666
  msgid "Ultimate Member Menu Settings"
1667
  msgstr ""
1668
 
1669
+ #: includes/admin/core/class-admin-navmenu.php:78
1670
+ #: includes/admin/core/class-admin-navmenu.php:237
1671
  msgid "Who can see this menu link?"
1672
  msgstr ""
1673
 
1674
+ #: includes/admin/core/class-admin-navmenu.php:81
1675
+ #: includes/admin/core/class-admin-navmenu.php:244
1676
  msgid "Logged Out Users"
1677
  msgstr ""
1678
 
1679
+ #: includes/admin/core/class-admin-navmenu.php:82
1680
+ #: includes/admin/core/class-admin-navmenu.php:247
1681
  msgid "Logged In Users"
1682
  msgstr ""
1683
 
1684
+ #: includes/admin/core/class-admin-navmenu.php:87
1685
+ #: includes/admin/core/class-admin-navmenu.php:253
1686
  msgid "Select the member roles that can see this link"
1687
  msgstr ""
1688
 
2286
  msgstr ""
2287
 
2288
  #: includes/admin/core/class-admin-settings.php:637
2289
+ #: includes/class-config.php:136 includes/class-config.php:794
2290
  #: includes/core/class-account.php:97
2291
  msgid "Account"
2292
  msgstr ""
2295
  msgid "Password Account Tab"
2296
  msgstr ""
2297
 
2298
+ #: includes/admin/core/class-admin-settings.php:643
2299
+ msgid "Enable/disable the Password account tab in account page"
2300
+ msgstr ""
2301
+
2302
  #: includes/admin/core/class-admin-settings.php:648
2303
  msgid "Privacy Account Tab"
2304
  msgstr ""
2526
  msgstr ""
2527
 
2528
  #: includes/admin/core/class-admin-settings.php:837
2529
+ #: includes/admin/core/list-tables/emails-list-table.php:309
2530
  msgid "Email"
2531
  msgstr ""
2532
 
3240
  msgstr ""
3241
 
3242
  #: includes/admin/core/class-admin-users.php:124
3243
+ #: includes/core/class-fields.php:2643
3244
  msgid "Apply"
3245
  msgstr ""
3246
 
3329
  msgid "not found."
3330
  msgstr ""
3331
 
3332
+ #: includes/admin/core/list-tables/emails-list-table.php:245
3333
  msgid "Member"
3334
  msgstr ""
3335
 
3336
+ #: includes/admin/core/list-tables/emails-list-table.php:256
3337
+ msgid "Edit template"
3338
+ msgstr ""
3339
+
3340
+ #: includes/admin/core/list-tables/emails-list-table.php:279
3341
  msgid "Email Notification"
3342
  msgstr ""
3343
 
3344
+ #: includes/admin/core/list-tables/emails-list-table.php:280
3345
  msgid "Email Notifications"
3346
  msgstr ""
3347
 
3348
+ #: includes/admin/core/list-tables/emails-list-table.php:310
3349
  msgid "Recipient(s)"
3350
  msgstr ""
3351
 
3352
+ #: includes/admin/core/list-tables/emails-list-table.php:323
3353
  #, php-format
3354
  msgid ""
3355
  "You may get more details about email notifications customization <a href=\"%s"
3706
  msgid "Template"
3707
  msgstr ""
3708
 
3709
+ #: includes/admin/templates/directory/general.php:41
3710
  msgid "View type(s)"
3711
  msgstr ""
3712
 
3713
+ #: includes/admin/templates/directory/general.php:42
3714
  msgid "View type a specific parameter in the directory"
3715
  msgstr ""
3716
 
3717
+ #: includes/admin/templates/directory/general.php:51
3718
  msgid "Default view type"
3719
  msgstr ""
3720
 
3721
+ #: includes/admin/templates/directory/general.php:52
3722
  msgid "Default directory view type"
3723
  msgstr ""
3724
 
3725
+ #: includes/admin/templates/directory/general.php:60
3726
  msgid "User Roles to Display"
3727
  msgstr ""
3728
 
3729
+ #: includes/admin/templates/directory/general.php:61
3730
  msgid ""
3731
  "If you do not want to show all members, select only user roles to appear in "
3732
  "this directory"
3733
  msgstr ""
3734
 
3735
+ #: includes/admin/templates/directory/general.php:69
3736
  msgid "Only show members who have uploaded a profile photo"
3737
  msgstr ""
3738
 
3739
+ #: includes/admin/templates/directory/general.php:70
3740
  msgid "If 'Use Gravatars' as profile photo is enabled, this option is ignored"
3741
  msgstr ""
3742
 
3743
+ #: includes/admin/templates/directory/general.php:76
3744
  msgid "Only show members who have uploaded a cover photo"
3745
  msgstr ""
3746
 
3747
+ #: includes/admin/templates/directory/general.php:82
3748
  msgid "Only show specific users (Enter one username per line)"
3749
  msgstr ""
3750
 
3751
+ #: includes/admin/templates/directory/general.php:88
3752
+ msgid "Exclude specific users (Enter one username per line)"
3753
+ msgstr ""
3754
+
3755
  #: includes/admin/templates/directory/pagination.php:12
3756
  msgid "Show results only after search/filtration"
3757
  msgstr ""
4333
  #: includes/admin/templates/modal/dynamic_new_field.php:18
4334
  #: includes/admin/templates/modal/dynamic_new_group.php:18
4335
  #: includes/admin/templates/modal/fonticons.php:14
4336
+ #: includes/admin/templates/role/publish.php:24 includes/class-config.php:254
4337
+ #: includes/core/class-fields.php:2644 includes/core/class-fields.php:2743
4338
+ #: includes/core/um-actions-profile.php:749
4339
+ #: includes/core/um-actions-profile.php:761
4340
+ #: includes/core/um-actions-profile.php:949
4341
+ #: includes/core/um-actions-profile.php:982
4342
+ #: includes/core/um-actions-profile.php:1329
4343
+ #: includes/core/um-actions-profile.php:1336
4344
  msgid "Cancel"
4345
  msgstr ""
4346
 
4405
  msgstr ""
4406
 
4407
  #: includes/admin/templates/role/admin-permissions.php:22
4408
+ msgid ""
4409
+ "Mark this option if you need to hide the adminbar on frontend for this role"
4410
  msgstr ""
4411
 
4412
  #: includes/admin/templates/role/admin-permissions.php:28
4690
  msgid "Check All"
4691
  msgstr ""
4692
 
4693
+ #: includes/class-config.php:131 includes/class-config.php:789
4694
  msgid "User"
4695
  msgstr ""
4696
 
4697
+ #: includes/class-config.php:132 includes/class-config.php:264
4698
+ #: includes/class-config.php:272 includes/class-config.php:790
4699
  msgid "Login"
4700
  msgstr ""
4701
 
4702
+ #: includes/class-config.php:133 includes/class-config.php:262
4703
+ #: includes/class-config.php:276 includes/class-config.php:791
4704
  msgid "Register"
4705
  msgstr ""
4706
 
4707
+ #: includes/class-config.php:135 includes/class-config.php:793
4708
+ #: includes/core/class-member-directory.php:2181
4709
+ #: includes/core/um-actions-profile.php:1335
4710
  #: includes/core/um-actions-user.php:19
4711
  msgid "Logout"
4712
  msgstr ""
4713
 
4714
+ #: includes/class-config.php:137 includes/class-config.php:795
4715
  msgid "Password Reset"
4716
  msgstr ""
4717
 
4718
+ #: includes/class-config.php:181 includes/class-config.php:281
4719
  msgid "{total_users} Members"
4720
  msgstr ""
4721
 
4722
+ #: includes/class-config.php:182 includes/class-config.php:282
4723
  msgid "{total_users} Member"
4724
  msgstr ""
4725
 
4726
+ #: includes/class-config.php:183
4727
  msgid "We are sorry. We cannot find any users who match your search criteria."
4728
  msgstr ""
4729
 
4730
+ #: includes/class-config.php:252
4731
  msgid "Update Profile"
4732
  msgstr ""
4733
 
4734
+ #: includes/class-config.php:341
4735
  msgid "Account Welcome Email"
4736
  msgstr ""
4737
 
4738
+ #: includes/class-config.php:352
4739
  msgid ""
4740
  "Whether to send the user an email when his account is automatically approved"
4741
  msgstr ""
4742
 
4743
+ #: includes/class-config.php:358
4744
  msgid "Account Activation Email"
4745
  msgstr ""
4746
 
4747
+ #: includes/class-config.php:366
4748
  msgid ""
4749
  "Whether to send the user an email when his account needs e-mail activation"
4750
  msgstr ""
4751
 
4752
+ #: includes/class-config.php:371
4753
  msgid "Your account is pending review"
4754
  msgstr ""
4755
 
4756
+ #: includes/class-config.php:379
4757
  msgid "Whether to send the user an email when his account needs admin review"
4758
  msgstr ""
4759
 
4760
+ #: includes/class-config.php:384
4761
  msgid "Account Approved Email"
4762
  msgstr ""
4763
 
4764
+ #: includes/class-config.php:396
4765
  msgid "Whether to send the user an email when his account is approved"
4766
  msgstr ""
4767
 
4768
+ #: includes/class-config.php:401
4769
  msgid "Account Rejected Email"
4770
  msgstr ""
4771
 
4772
+ #: includes/class-config.php:408
4773
  msgid "Whether to send the user an email when his account is rejected"
4774
  msgstr ""
4775
 
4776
+ #: includes/class-config.php:413
4777
  msgid "Account Deactivated Email"
4778
  msgstr ""
4779
 
4780
+ #: includes/class-config.php:420
4781
  msgid "Whether to send the user an email when his account is deactivated"
4782
  msgstr ""
4783
 
4784
+ #: includes/class-config.php:426
4785
  msgid "Account Deleted Email"
4786
  msgstr ""
4787
 
4788
+ #: includes/class-config.php:433
4789
  msgid "Whether to send the user an email when his account is deleted"
4790
  msgstr ""
4791
 
4792
+ #: includes/class-config.php:439
4793
  msgid "Password Reset Email"
4794
  msgstr ""
4795
 
4796
+ #: includes/class-config.php:447
4797
  msgid ""
4798
  "Whether to send an email when users changed their password (Recommended, "
4799
  "please keep on)"
4800
  msgstr ""
4801
 
4802
+ #: includes/class-config.php:453
4803
  msgid "Password Changed Email"
4804
  msgstr ""
4805
 
4806
+ #: includes/class-config.php:460
4807
  msgid ""
4808
  "Whether to send the user an email when he request to reset password "
4809
  "(Recommended, please keep on)"
4810
  msgstr ""
4811
 
4812
+ #: includes/class-config.php:466
4813
  msgid "Account Updated Email"
4814
  msgstr ""
4815
 
4816
+ #: includes/class-config.php:473
4817
  msgid "Whether to send the user an email when he updated their account"
4818
  msgstr ""
4819
 
4820
+ #: includes/class-config.php:479
4821
  msgid "New User Notification"
4822
  msgstr ""
4823
 
4824
+ #: includes/class-config.php:485
4825
  msgid "Whether to receive notification when a new user account is approved"
4826
  msgstr ""
4827
 
4828
+ #: includes/class-config.php:491
4829
  msgid "Account Needs Review Notification"
4830
  msgstr ""
4831
 
4832
+ #: includes/class-config.php:498
4833
  msgid "Whether to receive notification when an account needs admin review"
4834
  msgstr ""
4835
 
4836
+ #: includes/class-config.php:503
4837
  msgid "Account Deletion Notification"
4838
  msgstr ""
4839
 
4840
+ #: includes/class-config.php:506
4841
  msgid "Whether to receive notification when an account is deleted"
4842
  msgstr ""
4843
 
4844
+ #: includes/class-config.php:529
4845
  msgid ""
4846
  "Are you sure you want to delete your account? This will erase all of your "
4847
  "account data from the site. To delete your account enter your password below"
5157
  msgstr ""
5158
 
5159
  #: includes/core/class-builtin.php:1093
5160
+ #: includes/core/um-actions-profile.php:709
5161
  msgid "Change your cover photo"
5162
  msgstr ""
5163
 
7081
  msgid "Add translation to %s"
7082
  msgstr ""
7083
 
7084
+ #: includes/core/class-fields.php:1332 includes/core/um-actions-account.php:418
7085
+ #: templates/message.php:6
7086
  #, php-format
7087
  msgid "%s"
7088
  msgstr ""
7089
 
7090
+ #: includes/core/class-fields.php:1353
7091
  msgid "Custom Field"
7092
  msgstr ""
7093
 
7094
+ #: includes/core/class-fields.php:1696
7095
  msgid "Please upload a valid image!"
7096
  msgstr ""
7097
 
7098
+ #: includes/core/class-fields.php:1710
7099
  msgid "Sorry this is not a valid image."
7100
  msgstr ""
7101
 
7102
+ #: includes/core/class-fields.php:1713
7103
  msgid "This image is too large!"
7104
  msgstr ""
7105
 
7106
+ #: includes/core/class-fields.php:1716
7107
  msgid "This image is too small!"
7108
  msgstr ""
7109
 
7110
+ #: includes/core/class-fields.php:1719
7111
  msgid "You can only upload one image"
7112
  msgstr ""
7113
 
7114
+ #: includes/core/class-fields.php:1751
7115
  msgid "Sorry this is not a valid file."
7116
  msgstr ""
7117
 
7118
+ #: includes/core/class-fields.php:1754
7119
  msgid "This file is too large!"
7120
  msgstr ""
7121
 
7122
+ #: includes/core/class-fields.php:1757
7123
  msgid "This file is too small!"
7124
  msgstr ""
7125
 
7126
+ #: includes/core/class-fields.php:1760
7127
  msgid "You can only upload one file"
7128
  msgstr ""
7129
 
7130
+ #: includes/core/class-fields.php:2288
7131
  msgid "Current Password"
7132
  msgstr ""
7133
 
7134
+ #: includes/core/class-fields.php:2319
7135
  msgid "New Password"
7136
  msgstr ""
7137
 
7138
+ #: includes/core/class-fields.php:2353
7139
  #, php-format
7140
  msgid "Confirm %s"
7141
  msgstr ""
7142
 
7143
+ #: includes/core/class-fields.php:2597
7144
  msgid "Upload Photo"
7145
  msgstr ""
7146
 
7147
+ #: includes/core/class-fields.php:2619 includes/core/class-fields.php:2643
7148
+ #: includes/core/um-actions-profile.php:980
7149
  msgid "Change photo"
7150
  msgstr ""
7151
 
7152
+ #: includes/core/class-fields.php:2643 includes/core/class-fields.php:2742
7153
  msgid "Processing..."
7154
  msgstr ""
7155
 
7156
+ #: includes/core/class-fields.php:2667
7157
  msgid "Upload File"
7158
  msgstr ""
7159
 
7160
+ #: includes/core/class-fields.php:2709 includes/core/um-filters-fields.php:267
7161
  msgid "This file has been removed."
7162
  msgstr ""
7163
 
7164
+ #: includes/core/class-fields.php:2712 includes/core/class-fields.php:2742
7165
  msgid "Change file"
7166
  msgstr ""
7167
 
7168
+ #: includes/core/class-fields.php:2742
7169
  msgid "Save"
7170
  msgstr ""
7171
 
7172
+ #: includes/core/class-fields.php:4277
7173
  #, php-format
7174
  msgid ""
7175
  "Your profile is looking a little empty. Why not <a href=\"%s\">add</a> some "
7176
  "information!"
7177
  msgstr ""
7178
 
7179
+ #: includes/core/class-fields.php:4279
7180
  msgid "This user has not added any information to their profile yet."
7181
  msgstr ""
7182
 
7226
  msgid "You can not edit this user"
7227
  msgstr ""
7228
 
7229
+ #: includes/core/class-login.php:78 includes/core/class-register.php:71
7230
+ msgid "Invalid Nonce."
7231
+ msgstr ""
7232
+
7233
  #: includes/core/class-mail.php:615 includes/core/class-password.php:703
7234
  #: includes/core/class-profile.php:481
7235
  msgid "Your set password"
7296
  msgid "<strong>Age:</strong>&nbsp;{min_range} - {max_range} years old"
7297
  msgstr ""
7298
 
7299
+ #: includes/core/class-member-directory.php:2126
7300
+ #: includes/core/class-member-directory.php:2170
7301
+ #: includes/core/um-actions-profile.php:1302
7302
+ #: includes/core/um-actions-profile.php:1333
7303
  msgid "Edit Profile"
7304
  msgstr ""
7305
 
7306
+ #: includes/core/class-member-directory.php:2176
7307
+ #: includes/core/um-actions-profile.php:1334
7308
  msgid "My Account"
7309
  msgstr ""
7310
 
7335
  msgstr ""
7336
 
7337
  #: includes/core/class-password.php:553 includes/core/um-actions-account.php:66
7338
+ #: includes/core/um-actions-form.php:538
7339
  msgid ""
7340
  "Your password must contain at least one lowercase letter, one capital letter "
7341
  "and one number"
7345
  msgid "You must confirm your new password"
7346
  msgstr ""
7347
 
7348
+ #: includes/core/class-password.php:563 includes/core/um-actions-form.php:547
7349
  msgid "Your passwords do not match"
7350
  msgstr ""
7351
 
7398
  msgid "Comments"
7399
  msgstr ""
7400
 
7401
+ #: includes/core/class-shortcodes.php:363
 
 
 
 
7402
  msgid ""
7403
  "This content has been restricted to logged in users only. Please <a href="
7404
  "\"{login_referrer}\">login</a> to view this content."
7405
  msgstr ""
7406
 
7407
+ #: includes/core/class-shortcodes.php:682
7408
  msgid "You are already registered"
7409
  msgstr ""
7410
 
7411
+ #: includes/core/class-shortcodes.php:936
7412
  msgid "Default Template"
7413
  msgstr ""
7414
 
7563
  "and useful to you."
7564
  msgstr ""
7565
 
7566
+ #: includes/core/um-actions-account.php:512
7567
  msgid "You could download your previous data:"
7568
  msgstr ""
7569
 
7570
+ #: includes/core/um-actions-account.php:513
7571
  msgid "download personal data"
7572
  msgstr ""
7573
 
7574
+ #: includes/core/um-actions-account.php:514
7575
  msgid "You could send a new request for an export of personal your data."
7576
  msgstr ""
7577
 
7578
+ #: includes/core/um-actions-account.php:530
7579
+ #: includes/core/um-actions-account.php:592
7580
+ #: includes/core/um-actions-account.php:639
7581
  msgid ""
7582
  "A confirmation email has been sent to your email. Click the link within the "
7583
  "email to confirm your export request."
7584
  msgstr ""
7585
 
7586
+ #: includes/core/um-actions-account.php:532
7587
  msgid ""
7588
  "The administrator has not yet approved downloading the data. Please expect "
7589
  "an email with a link to your data."
7590
  msgstr ""
7591
 
7592
+ #: includes/core/um-actions-account.php:535
7593
  msgid ""
7594
  "Enter your current password to confirm a new export of your personal data."
7595
  msgstr ""
7596
 
7597
+ #: includes/core/um-actions-account.php:540
7598
+ #: includes/core/um-actions-account.php:600
7599
  msgid "You must enter a password"
7600
  msgstr ""
7601
 
7602
+ #: includes/core/um-actions-account.php:545
7603
  msgid "Request data"
7604
  msgstr ""
7605
 
7606
+ #: includes/core/um-actions-account.php:554
7607
  msgid "Erase of your data"
7608
  msgstr ""
7609
 
7610
+ #: includes/core/um-actions-account.php:556
7611
  msgid "You can request erasing of the data that we have about you."
7612
  msgstr ""
7613
 
7614
+ #: includes/core/um-actions-account.php:575
7615
  msgid "Your personal data has been deleted."
7616
  msgstr ""
7617
 
7618
+ #: includes/core/um-actions-account.php:576
7619
  msgid "You could send a new request for deleting your personal data."
7620
  msgstr ""
7621
 
7622
+ #: includes/core/um-actions-account.php:594
7623
  msgid ""
7624
  "The administrator has not yet approved deleting your data. Please expect an "
7625
  "email with a link to your data."
7626
  msgstr ""
7627
 
7628
+ #: includes/core/um-actions-account.php:597
7629
  msgid ""
7630
  "Enter your current password to confirm the erasure of your personal data."
7631
  msgstr ""
7632
 
7633
+ #: includes/core/um-actions-account.php:605
7634
  msgid "Request data erase"
7635
  msgstr ""
7636
 
7637
+ #: includes/core/um-actions-account.php:632
7638
  msgid "Wrong request."
7639
  msgstr ""
7640
 
7641
+ #: includes/core/um-actions-account.php:644
7642
  msgid "The password you entered is incorrect."
7643
  msgstr ""
7644
 
7656
  msgid "You do not have permission to delete this user."
7657
  msgstr ""
7658
 
7659
+ #: includes/core/um-actions-form.php:94
7660
  msgid "You are not allowed to use this word as your username."
7661
  msgstr ""
7662
 
7663
+ #: includes/core/um-actions-form.php:394
7664
  msgid "Profile Photo is required."
7665
  msgstr ""
7666
 
7667
+ #: includes/core/um-actions-form.php:447 includes/core/um-actions-form.php:448
7668
  #, php-format
7669
  msgid "%s - wrong conditions."
7670
  msgstr ""
7671
 
7672
+ #: includes/core/um-actions-form.php:456 includes/core/um-actions-form.php:460
7673
+ #: includes/core/um-actions-form.php:464
7674
  #, php-format
7675
  msgid "%s is required."
7676
  msgstr ""
7677
 
7678
+ #: includes/core/um-actions-form.php:469
7679
  msgid "Please specify account type."
7680
  msgstr ""
7681
 
7682
+ #: includes/core/um-actions-form.php:499
7683
  msgid "This field is required"
7684
  msgstr ""
7685
 
7686
+ #: includes/core/um-actions-form.php:501
7687
  #, php-format
7688
  msgid "%s is required"
7689
  msgstr ""
7690
 
7691
+ #: includes/core/um-actions-form.php:510
7692
  #, php-format
7693
  msgid "You are only allowed to enter a maximum of %s words"
7694
  msgstr ""
7695
 
7696
+ #: includes/core/um-actions-form.php:516
7697
  #, php-format
7698
  msgid "Your %s must contain at least %s characters"
7699
  msgstr ""
7700
 
7701
+ #: includes/core/um-actions-form.php:522
7702
  #, php-format
7703
  msgid "Your %s must contain less than %s characters"
7704
  msgstr ""
7705
 
7706
+ #: includes/core/um-actions-form.php:531
7707
  msgid "You can not use HTML tags here"
7708
  msgstr ""
7709
 
7710
+ #: includes/core/um-actions-form.php:544
7711
  msgid "Please confirm your password"
7712
  msgstr ""
7713
 
7714
+ #: includes/core/um-actions-form.php:553
7715
  #, php-format
7716
  msgid "Please select at least %s choices"
7717
  msgstr ""
7718
 
7719
+ #: includes/core/um-actions-form.php:559
7720
  #, php-format
7721
  msgid "You can only select up to %s choices"
7722
  msgstr ""
7723
 
7724
+ #: includes/core/um-actions-form.php:565
7725
  #, php-format
7726
  msgid "Minimum number limit is %s"
7727
  msgstr ""
7728
 
7729
+ #: includes/core/um-actions-form.php:571
7730
  #, php-format
7731
  msgid "Maximum number limit is %s"
7732
  msgstr ""
7733
 
7734
+ #: includes/core/um-actions-form.php:607
7735
  msgid "Please enter numbers only in this field"
7736
  msgstr ""
7737
 
7738
+ #: includes/core/um-actions-form.php:613
7739
  msgid "Please enter a valid phone number"
7740
  msgstr ""
7741
 
7742
+ #: includes/core/um-actions-form.php:619 includes/core/um-actions-form.php:625
7743
+ #: includes/core/um-actions-form.php:631 includes/core/um-actions-form.php:637
7744
+ #: includes/core/um-actions-form.php:650 includes/core/um-actions-form.php:656
7745
+ #: includes/core/um-actions-form.php:662
7746
  #, php-format
7747
  msgid "Please enter a valid %s username or profile URL"
7748
  msgstr ""
7749
 
7750
+ #: includes/core/um-actions-form.php:644
7751
  #, php-format
7752
  msgid "Please enter a valid %s profile URL"
7753
  msgstr ""
7754
 
7755
+ #: includes/core/um-actions-form.php:668
7756
  msgid "Please enter a valid URL"
7757
  msgstr ""
7758
 
7759
+ #: includes/core/um-actions-form.php:675 includes/core/um-actions-form.php:689
7760
  msgid "You must provide a username"
7761
  msgstr ""
7762
 
7763
+ #: includes/core/um-actions-form.php:677 includes/core/um-actions-form.php:691
7764
  msgid "Your username is already taken"
7765
  msgstr ""
7766
 
7767
+ #: includes/core/um-actions-form.php:679
7768
  msgid "Username cannot be an email"
7769
  msgstr ""
7770
 
7771
+ #: includes/core/um-actions-form.php:681 includes/core/um-actions-form.php:695
7772
  msgid "Your username contains invalid characters"
7773
  msgstr ""
7774
 
7775
+ #: includes/core/um-actions-form.php:693 includes/core/um-actions-form.php:715
7776
+ #: includes/core/um-actions-form.php:717 includes/core/um-actions-form.php:729
7777
+ #: includes/core/um-actions-form.php:736
7778
  msgid "This email is already linked to an existing account"
7779
  msgstr ""
7780
 
7781
+ #: includes/core/um-actions-form.php:713
7782
  msgid "You must provide your email"
7783
  msgstr ""
7784
 
7785
+ #: includes/core/um-actions-form.php:719 includes/core/um-actions-form.php:727
7786
+ #: includes/core/um-actions-form.php:751
7787
  msgid "This is not a valid email"
7788
  msgstr ""
7789
 
7790
+ #: includes/core/um-actions-form.php:721
7791
  msgid "Your email contains invalid characters"
7792
  msgstr ""
7793
 
7794
+ #: includes/core/um-actions-form.php:770
7795
  msgid "You must provide a unique value"
7796
  msgstr ""
7797
 
7798
+ #: includes/core/um-actions-form.php:780
7799
  msgid "You must provide alphabetic letters"
7800
  msgstr ""
7801
 
7802
+ #: includes/core/um-actions-form.php:792
7803
  msgid "You must provide lowercase letters."
7804
  msgstr ""
7805
 
7806
+ #: includes/core/um-actions-form.php:810
7807
  #, php-format
7808
  msgid "Your user description must contain less than %s characters"
7809
  msgstr ""
7824
  msgid "Please enter your email"
7825
  msgstr ""
7826
 
7827
+ #: includes/core/um-actions-login.php:52
7828
  msgid "Please enter your password"
7829
  msgstr ""
7830
 
7831
+ #: includes/core/um-actions-login.php:59
7832
  msgid "Password is incorrect. Please try again."
7833
  msgstr ""
7834
 
7835
+ #: includes/core/um-actions-login.php:184
7836
  msgid "This action has been prevented for security measures."
7837
  msgstr ""
7838
 
7839
+ #: includes/core/um-actions-login.php:412
7840
  msgid "Keep me signed in"
7841
  msgstr ""
7842
 
7843
+ #: includes/core/um-actions-login.php:456
7844
  msgid "Forgot your password?"
7845
  msgstr ""
7846
 
7876
  msgid "Your IP address has been blocked."
7877
  msgstr ""
7878
 
7879
+ #: includes/core/um-actions-misc.php:174 includes/core/um-filters-login.php:95
7880
  msgid "Your account has been disabled."
7881
  msgstr ""
7882
 
7883
+ #: includes/core/um-actions-misc.php:178 includes/core/um-filters-login.php:98
7884
  msgid "Your account has not been approved yet."
7885
  msgstr ""
7886
 
7887
+ #: includes/core/um-actions-misc.php:182 includes/core/um-filters-login.php:101
7888
  msgid "Your account is awaiting e-mail verification."
7889
  msgstr ""
7890
 
7891
+ #: includes/core/um-actions-misc.php:186 includes/core/um-filters-login.php:104
7892
  msgid "Your membership request has been rejected."
7893
  msgstr ""
7894
 
7901
  msgid "Your choosed %s"
7902
  msgstr ""
7903
 
7904
+ #: includes/core/um-actions-profile.php:673
7905
+ #: includes/core/um-actions-profile.php:683
7906
+ msgid "Profile photo"
7907
+ msgstr ""
7908
+
7909
+ #: includes/core/um-actions-profile.php:744
7910
+ #: includes/core/um-actions-profile.php:760
7911
+ #: includes/core/um-actions-profile.php:831
7912
  msgid "Upload a cover photo"
7913
  msgstr ""
7914
 
7915
+ #: includes/core/um-actions-profile.php:744
7916
  msgid "Change cover photo"
7917
  msgstr ""
7918
 
7919
+ #: includes/core/um-actions-profile.php:948
7920
  msgid "Upload photo"
7921
  msgstr ""
7922
 
7923
+ #: includes/core/um-actions-profile.php:981
7924
  msgid "Remove photo"
7925
  msgstr ""
7926
 
7927
+ #: includes/core/um-actions-profile.php:1144
7928
  msgid "Tell us a bit about yourself..."
7929
  msgstr ""
7930
 
7931
+ #: includes/core/um-actions-profile.php:1159
7932
  #, php-format
7933
  msgid "This user account status is %s"
7934
  msgstr ""
7997
  msgid "Shows the search member form."
7998
  msgstr ""
7999
 
8000
+ #: includes/widgets/class-um-search-widget.php:73
8001
  msgid "Search Users"
8002
  msgstr ""
8003
 
readme.txt CHANGED
@@ -6,8 +6,8 @@ Donate link:
6
  Tags: community, member, membership, user-profile, user-registration
7
  Requires PHP: 5.6
8
  Requires at least: 5.0
9
- Tested up to: 5.4
10
- Stable tag: 2.1.5
11
  License: GNU Version 2 or Any Later Version
12
  License URI: http://www.gnu.org/licenses/gpl-3.0.txt
13
 
@@ -145,6 +145,35 @@ The plugin works with popular caching plugins by automatically excluding Ultimat
145
  * To learn more about version 2.1 please see this [topic](https://wordpress.org/support/topic/version-2-1-4/)
146
  * 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
147
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
148
  = 2.1.5: April 2, 2020 =
149
 
150
  * Enhancements:
6
  Tags: community, member, membership, user-profile, user-registration
7
  Requires PHP: 5.6
8
  Requires at least: 5.0
9
+ Tested up to: 5.4.1
10
+ Stable tag: 2.1.6
11
  License: GNU Version 2 or Any Later Version
12
  License URI: http://www.gnu.org/licenses/gpl-3.0.txt
13
 
145
  * To learn more about version 2.1 please see this [topic](https://wordpress.org/support/topic/version-2-1-4/)
146
  * 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
147
 
148
+ = 2.1.6: June 1, 2020 =
149
+
150
+ * Enhancements:
151
+
152
+ - Added The profile page SEO meta tags for OG, Twitter and schema.org
153
+ - Added filter to the field's privacy option for the 3rd-party integrations 'um_field_privacy_options'
154
+ - Added layout changes to show email notification description in Settings > Email screen
155
+ - Added member directory option 'Exclude specific users'
156
+ - Added filter for the changing redirect after profile edited 'um_update_profile_redirect_after'
157
+ - Added JS filters for conditional logic
158
+ - Tweak: apply_shortcodes() function support
159
+ - Tweak: nav-menu custom fields using 'wp_nav_menu_item_custom_fields' hook
160
+
161
+ * Bugfixes:
162
+
163
+ - Fixed custom meta table fields migration (create, edit, remove field actions)
164
+ - Fixed wp-login.php and UM login form validation/errors triggers when using email for login
165
+ - Fixed profile form duplicates, show only the first form shortcode on the page for the user with selected role
166
+ - Fixed creating user uploads directory on registration
167
+ - Fixed Role fields validation on registration
168
+ - Fixed Erase User Data field on the Account page
169
+ - Fixed profile privacy
170
+ - Fixed SkypeID field
171
+ - Fixed clickable links in the UM forms which are displayed in a modal window
172
+ - Fixed disabling select and textarea fields in inactive tabs on Account
173
+ - Fixed compatibility with jQuery 3.x and 'load' event
174
+ - Fixed some translations
175
+ - Small PHP notices fixes
176
+
177
  = 2.1.5: April 2, 2020 =
178
 
179
  * Enhancements:
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.5
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.6
7
  Author: Ultimate Member
8
  Author URI: http://ultimatemember.com/
9
  Text Domain: ultimate-member