Ultimate Member – User Profile & Membership Plugin - Version 2.1.0

Version Description

Download this release

Release Info

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

Code changes from version 2.0.56 to 2.1.0

Files changed (96) hide show
  1. assets/css/jquery-ui.css +1311 -0
  2. assets/css/um-fileupload.css +1 -0
  3. assets/css/um-members-rtl.css +82 -0
  4. assets/css/um-members.css +994 -373
  5. assets/css/um-misc.css +10 -0
  6. assets/css/um-old-default.css +11 -2
  7. assets/css/um-profile.css +9 -4
  8. assets/css/um-responsive.css +7 -101
  9. assets/css/um-styles.css +26 -11
  10. assets/css/um.rtl.css +8 -4
  11. assets/dynamic_css/dynamic_profile.php +37 -31
  12. assets/js/dropdown.js +85 -0
  13. assets/js/dropdown.min.js +1 -0
  14. assets/js/um-conditional.js +9 -3
  15. assets/js/um-conditional.min.js +1 -1
  16. assets/js/um-functions.js +8 -22
  17. assets/js/um-functions.min.js +1 -1
  18. assets/js/um-members.js +1383 -25
  19. assets/js/um-members.min.js +1 -1
  20. assets/js/um-modal.js +16 -18
  21. assets/js/um-modal.min.js +1 -1
  22. assets/js/um-profile.js +2 -1
  23. assets/js/um-profile.min.js +1 -1
  24. assets/js/um-raty.js +2 -2
  25. assets/js/um-raty.min.js +1 -1
  26. assets/js/um-scripts.js +106 -17
  27. assets/js/um-scripts.min.js +1 -1
  28. includes/admin/assets/css/um-admin-forms.css +55 -4
  29. includes/admin/assets/css/um-admin-global.css +4 -0
  30. includes/admin/assets/css/um-admin-select2.css +2 -2
  31. includes/admin/assets/js/um-admin-blocks-shortcode.js +2 -2
  32. includes/admin/assets/js/um-admin-forms.js +393 -21
  33. includes/admin/assets/js/um-admin-modal.js +18 -3
  34. includes/admin/class-admin.php +13 -0
  35. includes/admin/core/class-admin-ajax-hooks.php +1 -0
  36. includes/admin/core/class-admin-builder.php +26 -9
  37. includes/admin/core/class-admin-enqueue.php +17 -8
  38. includes/admin/core/class-admin-forms.php +147 -1
  39. includes/admin/core/class-admin-metabox.php +45 -9
  40. includes/admin/core/class-admin-notices.php +1 -1
  41. includes/admin/core/class-admin-settings.php +297 -283
  42. includes/admin/core/class-admin-users.php +1 -1
  43. includes/admin/core/packages/2.1.0-beta1/functions.php +25 -0
  44. includes/admin/core/packages/2.1.0-beta1/hooks.php +6 -0
  45. includes/admin/core/packages/2.1.0-beta1/init.php +57 -0
  46. includes/admin/core/packages/2.1.0-beta1/member-directory.php +181 -0
  47. includes/admin/core/packages/2.1.0-beta1/metadata.php +18 -0
  48. includes/admin/templates/directory/general.php +58 -86
  49. includes/admin/templates/directory/pagination.php +51 -22
  50. includes/admin/templates/directory/profile.php +96 -70
  51. includes/admin/templates/directory/search.php +64 -67
  52. includes/admin/templates/directory/sorting.php +54 -0
  53. includes/admin/templates/form/profile_customize.php +87 -77
  54. includes/class-config.php +94 -66
  55. includes/class-dependencies.php +42 -32
  56. includes/class-extensions.php +2 -2
  57. includes/class-functions.php +30 -3
  58. includes/class-init.php +31 -25
  59. includes/core/class-access.php +18 -9
  60. includes/core/class-account.php +106 -49
  61. includes/core/class-ajax-common.php +7 -1
  62. includes/core/class-builtin.php +17 -15
  63. includes/core/class-common.php +38 -34
  64. includes/core/class-enqueue.php +36 -16
  65. includes/core/class-fields.php +224 -138
  66. includes/core/class-files.php +39 -248
  67. includes/core/class-form.php +13 -8
  68. includes/core/class-gdpr.php +1 -1
  69. includes/core/class-mail.php +4 -1
  70. includes/core/class-member-directory.php +2198 -0
  71. includes/core/class-members.php +0 -620
  72. includes/core/class-plugin-updater.php +9 -1
  73. includes/core/class-profile.php +9 -4
  74. includes/core/class-register.php +7 -6
  75. includes/core/class-rewrite.php +27 -41
  76. includes/core/class-setup.php +11 -6
  77. includes/core/class-shortcodes.php +57 -17
  78. includes/core/class-uploader.php +114 -79
  79. includes/core/class-user-posts.php +47 -28
  80. includes/core/class-user.php +4 -8
  81. includes/core/um-actions-account.php +40 -45
  82. includes/core/um-actions-form.php +26 -17
  83. includes/core/um-actions-members.php +0 -255
  84. includes/core/um-actions-profile.php +77 -23
  85. includes/core/um-actions-register.php +15 -13
  86. includes/core/um-actions-wpadmin.php +12 -2
  87. includes/core/um-filters-account.php +6 -46
  88. includes/core/um-filters-fields.php +29 -3
  89. includes/core/um-filters-members.php +1 -495
  90. includes/core/um-filters-profile.php +24 -22
  91. includes/core/um-filters-user.php +7 -6
  92. includes/um-deprecated-functions.php +156 -1
  93. includes/um-short-functions.php +13 -145
  94. includes/widgets/class-um-search-widget.php +1 -1
  95. languages/ultimate-member-en_US.mo +0 -0
  96. languages/ultimate-member-en_US.po +4246 -7693
assets/css/jquery-ui.css ADDED
@@ -0,0 +1,1311 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ /*! jQuery UI - v1.12.1 - 2016-09-14
2
+ * http://jqueryui.com
3
+ * Includes: core.css, accordion.css, autocomplete.css, menu.css, button.css, controlgroup.css, checkboxradio.css, datepicker.css, dialog.css, draggable.css, resizable.css, progressbar.css, selectable.css, selectmenu.css, slider.css, sortable.css, spinner.css, tabs.css, tooltip.css, theme.css
4
+ * To view and modify this theme, visit http://jqueryui.com/themeroller/?ffDefault=Arial%2CHelvetica%2Csans-serif&fsDefault=1em&fwDefault=normal&cornerRadius=3px&bgColorHeader=e9e9e9&bgTextureHeader=flat&borderColorHeader=dddddd&fcHeader=333333&iconColorHeader=444444&bgColorContent=ffffff&bgTextureContent=flat&borderColorContent=dddddd&fcContent=333333&iconColorContent=444444&bgColorDefault=f6f6f6&bgTextureDefault=flat&borderColorDefault=c5c5c5&fcDefault=454545&iconColorDefault=777777&bgColorHover=ededed&bgTextureHover=flat&borderColorHover=cccccc&fcHover=2b2b2b&iconColorHover=555555&bgColorActive=007fff&bgTextureActive=flat&borderColorActive=003eff&fcActive=ffffff&iconColorActive=ffffff&bgColorHighlight=fffa90&bgTextureHighlight=flat&borderColorHighlight=dad55e&fcHighlight=777620&iconColorHighlight=777620&bgColorError=fddfdf&bgTextureError=flat&borderColorError=f1a899&fcError=5f3f3f&iconColorError=cc0000&bgColorOverlay=aaaaaa&bgTextureOverlay=flat&bgImgOpacityOverlay=0&opacityOverlay=30&bgColorShadow=666666&bgTextureShadow=flat&bgImgOpacityShadow=0&opacityShadow=30&thicknessShadow=5px&offsetTopShadow=0px&offsetLeftShadow=0px&cornerRadiusShadow=8px
5
+ * Copyright jQuery Foundation and other contributors; Licensed MIT */
6
+
7
+ /* Layout helpers
8
+ ----------------------------------*/
9
+ .ui-helper-hidden {
10
+ display: none;
11
+ }
12
+ .ui-helper-hidden-accessible {
13
+ border: 0;
14
+ clip: rect(0 0 0 0);
15
+ height: 1px;
16
+ margin: -1px;
17
+ overflow: hidden;
18
+ padding: 0;
19
+ position: absolute;
20
+ width: 1px;
21
+ }
22
+ .ui-helper-reset {
23
+ margin: 0;
24
+ padding: 0;
25
+ border: 0;
26
+ outline: 0;
27
+ line-height: 1.3;
28
+ text-decoration: none;
29
+ font-size: 100%;
30
+ list-style: none;
31
+ }
32
+ .ui-helper-clearfix:before,
33
+ .ui-helper-clearfix:after {
34
+ content: "";
35
+ display: table;
36
+ border-collapse: collapse;
37
+ }
38
+ .ui-helper-clearfix:after {
39
+ clear: both;
40
+ }
41
+ .ui-helper-zfix {
42
+ width: 100%;
43
+ height: 100%;
44
+ top: 0;
45
+ left: 0;
46
+ position: absolute;
47
+ opacity: 0;
48
+ filter:Alpha(Opacity=0); /* support: IE8 */
49
+ }
50
+
51
+ .ui-front {
52
+ z-index: 100;
53
+ }
54
+
55
+
56
+ /* Interaction Cues
57
+ ----------------------------------*/
58
+ .ui-state-disabled {
59
+ cursor: default !important;
60
+ pointer-events: none;
61
+ }
62
+
63
+
64
+ /* Icons
65
+ ----------------------------------*/
66
+ .ui-icon {
67
+ display: inline-block;
68
+ vertical-align: middle;
69
+ margin-top: -.25em;
70
+ position: relative;
71
+ text-indent: -99999px;
72
+ overflow: hidden;
73
+ background-repeat: no-repeat;
74
+ }
75
+
76
+ .ui-widget-icon-block {
77
+ left: 50%;
78
+ margin-left: -8px;
79
+ display: block;
80
+ }
81
+
82
+ /* Misc visuals
83
+ ----------------------------------*/
84
+
85
+ /* Overlays */
86
+ .ui-widget-overlay {
87
+ position: fixed;
88
+ top: 0;
89
+ left: 0;
90
+ width: 100%;
91
+ height: 100%;
92
+ }
93
+ .ui-accordion .ui-accordion-header {
94
+ display: block;
95
+ cursor: pointer;
96
+ position: relative;
97
+ margin: 2px 0 0 0;
98
+ padding: .5em .5em .5em .7em;
99
+ font-size: 100%;
100
+ }
101
+ .ui-accordion .ui-accordion-content {
102
+ padding: 1em 2.2em;
103
+ border-top: 0;
104
+ overflow: auto;
105
+ }
106
+ .ui-autocomplete {
107
+ position: absolute;
108
+ top: 0;
109
+ left: 0;
110
+ cursor: default;
111
+ }
112
+ .ui-menu {
113
+ list-style: none;
114
+ padding: 0;
115
+ margin: 0;
116
+ display: block;
117
+ outline: 0;
118
+ }
119
+ .ui-menu .ui-menu {
120
+ position: absolute;
121
+ }
122
+ .ui-menu .ui-menu-item {
123
+ margin: 0;
124
+ cursor: pointer;
125
+ /* support: IE10, see #8844 */
126
+ list-style-image: url("data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7");
127
+ }
128
+ .ui-menu .ui-menu-item-wrapper {
129
+ position: relative;
130
+ padding: 3px 1em 3px .4em;
131
+ }
132
+ .ui-menu .ui-menu-divider {
133
+ margin: 5px 0;
134
+ height: 0;
135
+ font-size: 0;
136
+ line-height: 0;
137
+ border-width: 1px 0 0 0;
138
+ }
139
+ .ui-menu .ui-state-focus,
140
+ .ui-menu .ui-state-active {
141
+ margin: -1px;
142
+ }
143
+
144
+ /* icon support */
145
+ .ui-menu-icons {
146
+ position: relative;
147
+ }
148
+ .ui-menu-icons .ui-menu-item-wrapper {
149
+ padding-left: 2em;
150
+ }
151
+
152
+ /* left-aligned */
153
+ .ui-menu .ui-icon {
154
+ position: absolute;
155
+ top: 0;
156
+ bottom: 0;
157
+ left: .2em;
158
+ margin: auto 0;
159
+ }
160
+
161
+ /* right-aligned */
162
+ .ui-menu .ui-menu-icon {
163
+ left: auto;
164
+ right: 0;
165
+ }
166
+ .ui-button {
167
+ padding: .4em 1em;
168
+ display: inline-block;
169
+ position: relative;
170
+ line-height: normal;
171
+ margin-right: .1em;
172
+ cursor: pointer;
173
+ vertical-align: middle;
174
+ text-align: center;
175
+ -webkit-user-select: none;
176
+ -moz-user-select: none;
177
+ -ms-user-select: none;
178
+ user-select: none;
179
+
180
+ /* Support: IE <= 11 */
181
+ overflow: visible;
182
+ }
183
+
184
+ .ui-button,
185
+ .ui-button:link,
186
+ .ui-button:visited,
187
+ .ui-button:hover,
188
+ .ui-button:active {
189
+ text-decoration: none;
190
+ }
191
+
192
+ /* to make room for the icon, a width needs to be set here */
193
+ .ui-button-icon-only {
194
+ width: 2em;
195
+ box-sizing: border-box;
196
+ text-indent: -9999px;
197
+ white-space: nowrap;
198
+ }
199
+
200
+ /* no icon support for input elements */
201
+ input.ui-button.ui-button-icon-only {
202
+ text-indent: 0;
203
+ }
204
+
205
+ /* button icon element(s) */
206
+ .ui-button-icon-only .ui-icon {
207
+ position: absolute;
208
+ top: 50%;
209
+ left: 50%;
210
+ margin-top: -8px;
211
+ margin-left: -8px;
212
+ }
213
+
214
+ .ui-button.ui-icon-notext .ui-icon {
215
+ padding: 0;
216
+ width: 2.1em;
217
+ height: 2.1em;
218
+ text-indent: -9999px;
219
+ white-space: nowrap;
220
+
221
+ }
222
+
223
+ input.ui-button.ui-icon-notext .ui-icon {
224
+ width: auto;
225
+ height: auto;
226
+ text-indent: 0;
227
+ white-space: normal;
228
+ padding: .4em 1em;
229
+ }
230
+
231
+ /* workarounds */
232
+ /* Support: Firefox 5 - 40 */
233
+ input.ui-button::-moz-focus-inner,
234
+ button.ui-button::-moz-focus-inner {
235
+ border: 0;
236
+ padding: 0;
237
+ }
238
+ .ui-controlgroup {
239
+ vertical-align: middle;
240
+ display: inline-block;
241
+ }
242
+ .ui-controlgroup > .ui-controlgroup-item {
243
+ float: left;
244
+ margin-left: 0;
245
+ margin-right: 0;
246
+ }
247
+ .ui-controlgroup > .ui-controlgroup-item:focus,
248
+ .ui-controlgroup > .ui-controlgroup-item.ui-visual-focus {
249
+ z-index: 9999;
250
+ }
251
+ .ui-controlgroup-vertical > .ui-controlgroup-item {
252
+ display: block;
253
+ float: none;
254
+ width: 100%;
255
+ margin-top: 0;
256
+ margin-bottom: 0;
257
+ text-align: left;
258
+ }
259
+ .ui-controlgroup-vertical .ui-controlgroup-item {
260
+ box-sizing: border-box;
261
+ }
262
+ .ui-controlgroup .ui-controlgroup-label {
263
+ padding: .4em 1em;
264
+ }
265
+ .ui-controlgroup .ui-controlgroup-label span {
266
+ font-size: 80%;
267
+ }
268
+ .ui-controlgroup-horizontal .ui-controlgroup-label + .ui-controlgroup-item {
269
+ border-left: none;
270
+ }
271
+ .ui-controlgroup-vertical .ui-controlgroup-label + .ui-controlgroup-item {
272
+ border-top: none;
273
+ }
274
+ .ui-controlgroup-horizontal .ui-controlgroup-label.ui-widget-content {
275
+ border-right: none;
276
+ }
277
+ .ui-controlgroup-vertical .ui-controlgroup-label.ui-widget-content {
278
+ border-bottom: none;
279
+ }
280
+
281
+ /* Spinner specific style fixes */
282
+ .ui-controlgroup-vertical .ui-spinner-input {
283
+
284
+ /* Support: IE8 only, Android < 4.4 only */
285
+ width: 75%;
286
+ width: calc( 100% - 2.4em );
287
+ }
288
+ .ui-controlgroup-vertical .ui-spinner .ui-spinner-up {
289
+ border-top-style: solid;
290
+ }
291
+
292
+ .ui-checkboxradio-label .ui-icon-background {
293
+ box-shadow: inset 1px 1px 1px #ccc;
294
+ border-radius: .12em;
295
+ border: none;
296
+ }
297
+ .ui-checkboxradio-radio-label .ui-icon-background {
298
+ width: 16px;
299
+ height: 16px;
300
+ border-radius: 1em;
301
+ overflow: visible;
302
+ border: none;
303
+ }
304
+ .ui-checkboxradio-radio-label.ui-checkboxradio-checked .ui-icon,
305
+ .ui-checkboxradio-radio-label.ui-checkboxradio-checked:hover .ui-icon {
306
+ background-image: none;
307
+ width: 8px;
308
+ height: 8px;
309
+ border-width: 4px;
310
+ border-style: solid;
311
+ }
312
+ .ui-checkboxradio-disabled {
313
+ pointer-events: none;
314
+ }
315
+ .ui-datepicker {
316
+ width: 17em;
317
+ padding: .2em .2em 0;
318
+ display: none;
319
+ }
320
+ .ui-datepicker .ui-datepicker-header {
321
+ position: relative;
322
+ padding: .2em 0;
323
+ }
324
+ .ui-datepicker .ui-datepicker-prev,
325
+ .ui-datepicker .ui-datepicker-next {
326
+ position: absolute;
327
+ top: 2px;
328
+ width: 1.8em;
329
+ height: 1.8em;
330
+ }
331
+ .ui-datepicker .ui-datepicker-prev-hover,
332
+ .ui-datepicker .ui-datepicker-next-hover {
333
+ top: 1px;
334
+ }
335
+ .ui-datepicker .ui-datepicker-prev {
336
+ left: 2px;
337
+ }
338
+ .ui-datepicker .ui-datepicker-next {
339
+ right: 2px;
340
+ }
341
+ .ui-datepicker .ui-datepicker-prev-hover {
342
+ left: 1px;
343
+ }
344
+ .ui-datepicker .ui-datepicker-next-hover {
345
+ right: 1px;
346
+ }
347
+ .ui-datepicker .ui-datepicker-prev span,
348
+ .ui-datepicker .ui-datepicker-next span {
349
+ display: block;
350
+ position: absolute;
351
+ left: 50%;
352
+ margin-left: -8px;
353
+ top: 50%;
354
+ margin-top: -8px;
355
+ }
356
+ .ui-datepicker .ui-datepicker-title {
357
+ margin: 0 2.3em;
358
+ line-height: 1.8em;
359
+ text-align: center;
360
+ }
361
+ .ui-datepicker .ui-datepicker-title select {
362
+ font-size: 1em;
363
+ margin: 1px 0;
364
+ }
365
+ .ui-datepicker select.ui-datepicker-month,
366
+ .ui-datepicker select.ui-datepicker-year {
367
+ width: 45%;
368
+ }
369
+ .ui-datepicker table {
370
+ width: 100%;
371
+ font-size: .9em;
372
+ border-collapse: collapse;
373
+ margin: 0 0 .4em;
374
+ }
375
+ .ui-datepicker th {
376
+ padding: .7em .3em;
377
+ text-align: center;
378
+ font-weight: bold;
379
+ border: 0;
380
+ }
381
+ .ui-datepicker td {
382
+ border: 0;
383
+ padding: 1px;
384
+ }
385
+ .ui-datepicker td span,
386
+ .ui-datepicker td a {
387
+ display: block;
388
+ padding: .2em;
389
+ text-align: right;
390
+ text-decoration: none;
391
+ }
392
+ .ui-datepicker .ui-datepicker-buttonpane {
393
+ background-image: none;
394
+ margin: .7em 0 0 0;
395
+ padding: 0 .2em;
396
+ border-left: 0;
397
+ border-right: 0;
398
+ border-bottom: 0;
399
+ }
400
+ .ui-datepicker .ui-datepicker-buttonpane button {
401
+ float: right;
402
+ margin: .5em .2em .4em;
403
+ cursor: pointer;
404
+ padding: .2em .6em .3em .6em;
405
+ width: auto;
406
+ overflow: visible;
407
+ }
408
+ .ui-datepicker .ui-datepicker-buttonpane button.ui-datepicker-current {
409
+ float: left;
410
+ }
411
+
412
+ /* with multiple calendars */
413
+ .ui-datepicker.ui-datepicker-multi {
414
+ width: auto;
415
+ }
416
+ .ui-datepicker-multi .ui-datepicker-group {
417
+ float: left;
418
+ }
419
+ .ui-datepicker-multi .ui-datepicker-group table {
420
+ width: 95%;
421
+ margin: 0 auto .4em;
422
+ }
423
+ .ui-datepicker-multi-2 .ui-datepicker-group {
424
+ width: 50%;
425
+ }
426
+ .ui-datepicker-multi-3 .ui-datepicker-group {
427
+ width: 33.3%;
428
+ }
429
+ .ui-datepicker-multi-4 .ui-datepicker-group {
430
+ width: 25%;
431
+ }
432
+ .ui-datepicker-multi .ui-datepicker-group-last .ui-datepicker-header,
433
+ .ui-datepicker-multi .ui-datepicker-group-middle .ui-datepicker-header {
434
+ border-left-width: 0;
435
+ }
436
+ .ui-datepicker-multi .ui-datepicker-buttonpane {
437
+ clear: left;
438
+ }
439
+ .ui-datepicker-row-break {
440
+ clear: both;
441
+ width: 100%;
442
+ font-size: 0;
443
+ }
444
+
445
+ /* RTL support */
446
+ .ui-datepicker-rtl {
447
+ direction: rtl;
448
+ }
449
+ .ui-datepicker-rtl .ui-datepicker-prev {
450
+ right: 2px;
451
+ left: auto;
452
+ }
453
+ .ui-datepicker-rtl .ui-datepicker-next {
454
+ left: 2px;
455
+ right: auto;
456
+ }
457
+ .ui-datepicker-rtl .ui-datepicker-prev:hover {
458
+ right: 1px;
459
+ left: auto;
460
+ }
461
+ .ui-datepicker-rtl .ui-datepicker-next:hover {
462
+ left: 1px;
463
+ right: auto;
464
+ }
465
+ .ui-datepicker-rtl .ui-datepicker-buttonpane {
466
+ clear: right;
467
+ }
468
+ .ui-datepicker-rtl .ui-datepicker-buttonpane button {
469
+ float: left;
470
+ }
471
+ .ui-datepicker-rtl .ui-datepicker-buttonpane button.ui-datepicker-current,
472
+ .ui-datepicker-rtl .ui-datepicker-group {
473
+ float: right;
474
+ }
475
+ .ui-datepicker-rtl .ui-datepicker-group-last .ui-datepicker-header,
476
+ .ui-datepicker-rtl .ui-datepicker-group-middle .ui-datepicker-header {
477
+ border-right-width: 0;
478
+ border-left-width: 1px;
479
+ }
480
+
481
+ /* Icons */
482
+ .ui-datepicker .ui-icon {
483
+ display: block;
484
+ text-indent: -99999px;
485
+ overflow: hidden;
486
+ background-repeat: no-repeat;
487
+ left: .5em;
488
+ top: .3em;
489
+ }
490
+ .ui-dialog {
491
+ position: absolute;
492
+ top: 0;
493
+ left: 0;
494
+ padding: .2em;
495
+ outline: 0;
496
+ }
497
+ .ui-dialog .ui-dialog-titlebar {
498
+ padding: .4em 1em;
499
+ position: relative;
500
+ }
501
+ .ui-dialog .ui-dialog-title {
502
+ float: left;
503
+ margin: .1em 0;
504
+ white-space: nowrap;
505
+ width: 90%;
506
+ overflow: hidden;
507
+ text-overflow: ellipsis;
508
+ }
509
+ .ui-dialog .ui-dialog-titlebar-close {
510
+ position: absolute;
511
+ right: .3em;
512
+ top: 50%;
513
+ width: 20px;
514
+ margin: -10px 0 0 0;
515
+ padding: 1px;
516
+ height: 20px;
517
+ }
518
+ .ui-dialog .ui-dialog-content {
519
+ position: relative;
520
+ border: 0;
521
+ padding: .5em 1em;
522
+ background: none;
523
+ overflow: auto;
524
+ }
525
+ .ui-dialog .ui-dialog-buttonpane {
526
+ text-align: left;
527
+ border-width: 1px 0 0 0;
528
+ background-image: none;
529
+ margin-top: .5em;
530
+ padding: .3em 1em .5em .4em;
531
+ }
532
+ .ui-dialog .ui-dialog-buttonpane .ui-dialog-buttonset {
533
+ float: right;
534
+ }
535
+ .ui-dialog .ui-dialog-buttonpane button {
536
+ margin: .5em .4em .5em 0;
537
+ cursor: pointer;
538
+ }
539
+ .ui-dialog .ui-resizable-n {
540
+ height: 2px;
541
+ top: 0;
542
+ }
543
+ .ui-dialog .ui-resizable-e {
544
+ width: 2px;
545
+ right: 0;
546
+ }
547
+ .ui-dialog .ui-resizable-s {
548
+ height: 2px;
549
+ bottom: 0;
550
+ }
551
+ .ui-dialog .ui-resizable-w {
552
+ width: 2px;
553
+ left: 0;
554
+ }
555
+ .ui-dialog .ui-resizable-se,
556
+ .ui-dialog .ui-resizable-sw,
557
+ .ui-dialog .ui-resizable-ne,
558
+ .ui-dialog .ui-resizable-nw {
559
+ width: 7px;
560
+ height: 7px;
561
+ }
562
+ .ui-dialog .ui-resizable-se {
563
+ right: 0;
564
+ bottom: 0;
565
+ }
566
+ .ui-dialog .ui-resizable-sw {
567
+ left: 0;
568
+ bottom: 0;
569
+ }
570
+ .ui-dialog .ui-resizable-ne {
571
+ right: 0;
572
+ top: 0;
573
+ }
574
+ .ui-dialog .ui-resizable-nw {
575
+ left: 0;
576
+ top: 0;
577
+ }
578
+ .ui-draggable .ui-dialog-titlebar {
579
+ cursor: move;
580
+ }
581
+ .ui-draggable-handle {
582
+ -ms-touch-action: none;
583
+ touch-action: none;
584
+ }
585
+ .ui-resizable {
586
+ position: relative;
587
+ }
588
+ .ui-resizable-handle {
589
+ position: absolute;
590
+ font-size: 0.1px;
591
+ display: block;
592
+ -ms-touch-action: none;
593
+ touch-action: none;
594
+ }
595
+ .ui-resizable-disabled .ui-resizable-handle,
596
+ .ui-resizable-autohide .ui-resizable-handle {
597
+ display: none;
598
+ }
599
+ .ui-resizable-n {
600
+ cursor: n-resize;
601
+ height: 7px;
602
+ width: 100%;
603
+ top: -5px;
604
+ left: 0;
605
+ }
606
+ .ui-resizable-s {
607
+ cursor: s-resize;
608
+ height: 7px;
609
+ width: 100%;
610
+ bottom: -5px;
611
+ left: 0;
612
+ }
613
+ .ui-resizable-e {
614
+ cursor: e-resize;
615
+ width: 7px;
616
+ right: -5px;
617
+ top: 0;
618
+ height: 100%;
619
+ }
620
+ .ui-resizable-w {
621
+ cursor: w-resize;
622
+ width: 7px;
623
+ left: -5px;
624
+ top: 0;
625
+ height: 100%;
626
+ }
627
+ .ui-resizable-se {
628
+ cursor: se-resize;
629
+ width: 12px;
630
+ height: 12px;
631
+ right: 1px;
632
+ bottom: 1px;
633
+ }
634
+ .ui-resizable-sw {
635
+ cursor: sw-resize;
636
+ width: 9px;
637
+ height: 9px;
638
+ left: -5px;
639
+ bottom: -5px;
640
+ }
641
+ .ui-resizable-nw {
642
+ cursor: nw-resize;
643
+ width: 9px;
644
+ height: 9px;
645
+ left: -5px;
646
+ top: -5px;
647
+ }
648
+ .ui-resizable-ne {
649
+ cursor: ne-resize;
650
+ width: 9px;
651
+ height: 9px;
652
+ right: -5px;
653
+ top: -5px;
654
+ }
655
+ .ui-progressbar {
656
+ height: 2em;
657
+ text-align: left;
658
+ overflow: hidden;
659
+ }
660
+ .ui-progressbar .ui-progressbar-value {
661
+ margin: -1px;
662
+ height: 100%;
663
+ }
664
+ .ui-progressbar .ui-progressbar-overlay {
665
+ background: url("data:image/gif;base64,R0lGODlhKAAoAIABAAAAAP///yH/C05FVFNDQVBFMi4wAwEAAAAh+QQJAQABACwAAAAAKAAoAAACkYwNqXrdC52DS06a7MFZI+4FHBCKoDeWKXqymPqGqxvJrXZbMx7Ttc+w9XgU2FB3lOyQRWET2IFGiU9m1frDVpxZZc6bfHwv4c1YXP6k1Vdy292Fb6UkuvFtXpvWSzA+HycXJHUXiGYIiMg2R6W459gnWGfHNdjIqDWVqemH2ekpObkpOlppWUqZiqr6edqqWQAAIfkECQEAAQAsAAAAACgAKAAAApSMgZnGfaqcg1E2uuzDmmHUBR8Qil95hiPKqWn3aqtLsS18y7G1SzNeowWBENtQd+T1JktP05nzPTdJZlR6vUxNWWjV+vUWhWNkWFwxl9VpZRedYcflIOLafaa28XdsH/ynlcc1uPVDZxQIR0K25+cICCmoqCe5mGhZOfeYSUh5yJcJyrkZWWpaR8doJ2o4NYq62lAAACH5BAkBAAEALAAAAAAoACgAAAKVDI4Yy22ZnINRNqosw0Bv7i1gyHUkFj7oSaWlu3ovC8GxNso5fluz3qLVhBVeT/Lz7ZTHyxL5dDalQWPVOsQWtRnuwXaFTj9jVVh8pma9JjZ4zYSj5ZOyma7uuolffh+IR5aW97cHuBUXKGKXlKjn+DiHWMcYJah4N0lYCMlJOXipGRr5qdgoSTrqWSq6WFl2ypoaUAAAIfkECQEAAQAsAAAAACgAKAAAApaEb6HLgd/iO7FNWtcFWe+ufODGjRfoiJ2akShbueb0wtI50zm02pbvwfWEMWBQ1zKGlLIhskiEPm9R6vRXxV4ZzWT2yHOGpWMyorblKlNp8HmHEb/lCXjcW7bmtXP8Xt229OVWR1fod2eWqNfHuMjXCPkIGNileOiImVmCOEmoSfn3yXlJWmoHGhqp6ilYuWYpmTqKUgAAIfkECQEAAQAsAAAAACgAKAAAApiEH6kb58biQ3FNWtMFWW3eNVcojuFGfqnZqSebuS06w5V80/X02pKe8zFwP6EFWOT1lDFk8rGERh1TTNOocQ61Hm4Xm2VexUHpzjymViHrFbiELsefVrn6XKfnt2Q9G/+Xdie499XHd2g4h7ioOGhXGJboGAnXSBnoBwKYyfioubZJ2Hn0RuRZaflZOil56Zp6iioKSXpUAAAh+QQJAQABACwAAAAAKAAoAAACkoQRqRvnxuI7kU1a1UU5bd5tnSeOZXhmn5lWK3qNTWvRdQxP8qvaC+/yaYQzXO7BMvaUEmJRd3TsiMAgswmNYrSgZdYrTX6tSHGZO73ezuAw2uxuQ+BbeZfMxsexY35+/Qe4J1inV0g4x3WHuMhIl2jXOKT2Q+VU5fgoSUI52VfZyfkJGkha6jmY+aaYdirq+lQAACH5BAkBAAEALAAAAAAoACgAAAKWBIKpYe0L3YNKToqswUlvznigd4wiR4KhZrKt9Upqip61i9E3vMvxRdHlbEFiEXfk9YARYxOZZD6VQ2pUunBmtRXo1Lf8hMVVcNl8JafV38aM2/Fu5V16Bn63r6xt97j09+MXSFi4BniGFae3hzbH9+hYBzkpuUh5aZmHuanZOZgIuvbGiNeomCnaxxap2upaCZsq+1kAACH5BAkBAAEALAAAAAAoACgAAAKXjI8By5zf4kOxTVrXNVlv1X0d8IGZGKLnNpYtm8Lr9cqVeuOSvfOW79D9aDHizNhDJidFZhNydEahOaDH6nomtJjp1tutKoNWkvA6JqfRVLHU/QUfau9l2x7G54d1fl995xcIGAdXqMfBNadoYrhH+Mg2KBlpVpbluCiXmMnZ2Sh4GBqJ+ckIOqqJ6LmKSllZmsoq6wpQAAAh+QQJAQABACwAAAAAKAAoAAAClYx/oLvoxuJDkU1a1YUZbJ59nSd2ZXhWqbRa2/gF8Gu2DY3iqs7yrq+xBYEkYvFSM8aSSObE+ZgRl1BHFZNr7pRCavZ5BW2142hY3AN/zWtsmf12p9XxxFl2lpLn1rseztfXZjdIWIf2s5dItwjYKBgo9yg5pHgzJXTEeGlZuenpyPmpGQoKOWkYmSpaSnqKileI2FAAACH5BAkBAAEALAAAAAAoACgAAAKVjB+gu+jG4kORTVrVhRlsnn2dJ3ZleFaptFrb+CXmO9OozeL5VfP99HvAWhpiUdcwkpBH3825AwYdU8xTqlLGhtCosArKMpvfa1mMRae9VvWZfeB2XfPkeLmm18lUcBj+p5dnN8jXZ3YIGEhYuOUn45aoCDkp16hl5IjYJvjWKcnoGQpqyPlpOhr3aElaqrq56Bq7VAAAOw==");
666
+ height: 100%;
667
+ filter: alpha(opacity=25); /* support: IE8 */
668
+ opacity: 0.25;
669
+ }
670
+ .ui-progressbar-indeterminate .ui-progressbar-value {
671
+ background-image: none;
672
+ }
673
+ .ui-selectable {
674
+ -ms-touch-action: none;
675
+ touch-action: none;
676
+ }
677
+ .ui-selectable-helper {
678
+ position: absolute;
679
+ z-index: 100;
680
+ border: 1px dotted black;
681
+ }
682
+ .ui-selectmenu-menu {
683
+ padding: 0;
684
+ margin: 0;
685
+ position: absolute;
686
+ top: 0;
687
+ left: 0;
688
+ display: none;
689
+ }
690
+ .ui-selectmenu-menu .ui-menu {
691
+ overflow: auto;
692
+ overflow-x: hidden;
693
+ padding-bottom: 1px;
694
+ }
695
+ .ui-selectmenu-menu .ui-menu .ui-selectmenu-optgroup {
696
+ font-size: 1em;
697
+ font-weight: bold;
698
+ line-height: 1.5;
699
+ padding: 2px 0.4em;
700
+ margin: 0.5em 0 0 0;
701
+ height: auto;
702
+ border: 0;
703
+ }
704
+ .ui-selectmenu-open {
705
+ display: block;
706
+ }
707
+ .ui-selectmenu-text {
708
+ display: block;
709
+ margin-right: 20px;
710
+ overflow: hidden;
711
+ text-overflow: ellipsis;
712
+ }
713
+ .ui-selectmenu-button.ui-button {
714
+ text-align: left;
715
+ white-space: nowrap;
716
+ width: 14em;
717
+ }
718
+ .ui-selectmenu-icon.ui-icon {
719
+ float: right;
720
+ margin-top: 0;
721
+ }
722
+ .ui-slider {
723
+ position: relative;
724
+ text-align: left;
725
+ }
726
+ .ui-slider .ui-slider-handle {
727
+ position: absolute;
728
+ z-index: 2;
729
+ width: 1.2em;
730
+ height: 1.2em;
731
+ cursor: default;
732
+ -ms-touch-action: none;
733
+ touch-action: none;
734
+ }
735
+ .ui-slider .ui-slider-range {
736
+ position: absolute;
737
+ z-index: 1;
738
+ font-size: .7em;
739
+ display: block;
740
+ border: 0;
741
+ background-position: 0 0;
742
+ }
743
+
744
+ /* support: IE8 - See #6727 */
745
+ .ui-slider.ui-state-disabled .ui-slider-handle,
746
+ .ui-slider.ui-state-disabled .ui-slider-range {
747
+ filter: inherit;
748
+ }
749
+
750
+ .ui-slider-horizontal {
751
+ height: .8em;
752
+ }
753
+ .ui-slider-horizontal .ui-slider-handle {
754
+ top: -.3em;
755
+ margin-left: -.6em;
756
+ }
757
+ .ui-slider-horizontal .ui-slider-range {
758
+ top: 0;
759
+ height: 100%;
760
+ }
761
+ .ui-slider-horizontal .ui-slider-range-min {
762
+ left: 0;
763
+ }
764
+ .ui-slider-horizontal .ui-slider-range-max {
765
+ right: 0;
766
+ }
767
+
768
+ .ui-slider-vertical {
769
+ width: .8em;
770
+ height: 100px;
771
+ }
772
+ .ui-slider-vertical .ui-slider-handle {
773
+ left: -.3em;
774
+ margin-left: 0;
775
+ margin-bottom: -.6em;
776
+ }
777
+ .ui-slider-vertical .ui-slider-range {
778
+ left: 0;
779
+ width: 100%;
780
+ }
781
+ .ui-slider-vertical .ui-slider-range-min {
782
+ bottom: 0;
783
+ }
784
+ .ui-slider-vertical .ui-slider-range-max {
785
+ top: 0;
786
+ }
787
+ .ui-sortable-handle {
788
+ -ms-touch-action: none;
789
+ touch-action: none;
790
+ }
791
+ .ui-spinner {
792
+ position: relative;
793
+ display: inline-block;
794
+ overflow: hidden;
795
+ padding: 0;
796
+ vertical-align: middle;
797
+ }
798
+ .ui-spinner-input {
799
+ border: none;
800
+ background: none;
801
+ color: inherit;
802
+ padding: .222em 0;
803
+ margin: .2em 0;
804
+ vertical-align: middle;
805
+ margin-left: .4em;
806
+ margin-right: 2em;
807
+ }
808
+ .ui-spinner-button {
809
+ width: 1.6em;
810
+ height: 50%;
811
+ font-size: .5em;
812
+ padding: 0;
813
+ margin: 0;
814
+ text-align: center;
815
+ position: absolute;
816
+ cursor: default;
817
+ display: block;
818
+ overflow: hidden;
819
+ right: 0;
820
+ }
821
+ /* more specificity required here to override default borders */
822
+ .ui-spinner a.ui-spinner-button {
823
+ border-top-style: none;
824
+ border-bottom-style: none;
825
+ border-right-style: none;
826
+ }
827
+ .ui-spinner-up {
828
+ top: 0;
829
+ }
830
+ .ui-spinner-down {
831
+ bottom: 0;
832
+ }
833
+ .ui-tabs {
834
+ position: relative;/* position: relative prevents IE scroll bug (element with position: relative inside container with overflow: auto appear as "fixed") */
835
+ padding: .2em;
836
+ }
837
+ .ui-tabs .ui-tabs-nav {
838
+ margin: 0;
839
+ padding: .2em .2em 0;
840
+ }
841
+ .ui-tabs .ui-tabs-nav li {
842
+ list-style: none;
843
+ float: left;
844
+ position: relative;
845
+ top: 0;
846
+ margin: 1px .2em 0 0;
847
+ border-bottom-width: 0;
848
+ padding: 0;
849
+ white-space: nowrap;
850
+ }
851
+ .ui-tabs .ui-tabs-nav .ui-tabs-anchor {
852
+ float: left;
853
+ padding: .5em 1em;
854
+ text-decoration: none;
855
+ }
856
+ .ui-tabs .ui-tabs-nav li.ui-tabs-active {
857
+ margin-bottom: -1px;
858
+ padding-bottom: 1px;
859
+ }
860
+ .ui-tabs .ui-tabs-nav li.ui-tabs-active .ui-tabs-anchor,
861
+ .ui-tabs .ui-tabs-nav li.ui-state-disabled .ui-tabs-anchor,
862
+ .ui-tabs .ui-tabs-nav li.ui-tabs-loading .ui-tabs-anchor {
863
+ cursor: text;
864
+ }
865
+ .ui-tabs-collapsible .ui-tabs-nav li.ui-tabs-active .ui-tabs-anchor {
866
+ cursor: pointer;
867
+ }
868
+ .ui-tabs .ui-tabs-panel {
869
+ display: block;
870
+ border-width: 0;
871
+ padding: 1em 1.4em;
872
+ background: none;
873
+ }
874
+ .ui-tooltip {
875
+ padding: 8px;
876
+ position: absolute;
877
+ z-index: 9999;
878
+ max-width: 300px;
879
+ }
880
+ body .ui-tooltip {
881
+ border-width: 2px;
882
+ }
883
+ /* Component containers
884
+ ----------------------------------*/
885
+ .ui-widget {
886
+ font-family: Arial,Helvetica,sans-serif;
887
+ font-size: 1em;
888
+ }
889
+ .ui-widget .ui-widget {
890
+ font-size: 1em;
891
+ }
892
+ .ui-widget input,
893
+ .ui-widget select,
894
+ .ui-widget textarea,
895
+ .ui-widget button {
896
+ font-family: Arial,Helvetica,sans-serif;
897
+ font-size: 1em;
898
+ }
899
+ .ui-widget.ui-widget-content {
900
+ border: 1px solid #c5c5c5;
901
+ }
902
+ .ui-widget-content {
903
+ border: 1px solid #dddddd;
904
+ background: #ffffff;
905
+ color: #333333;
906
+ }
907
+ .ui-widget-content a {
908
+ color: #333333;
909
+ }
910
+ .ui-widget-header {
911
+ border: 1px solid #dddddd;
912
+ background: #e9e9e9;
913
+ color: #333333;
914
+ font-weight: bold;
915
+ }
916
+ .ui-widget-header a {
917
+ color: #333333;
918
+ }
919
+
920
+ /* Interaction states
921
+ ----------------------------------*/
922
+ .ui-state-default,
923
+ .ui-widget-content .ui-state-default,
924
+ .ui-widget-header .ui-state-default,
925
+ .ui-button,
926
+
927
+ /* We use html here because we need a greater specificity to make sure disabled
928
+ works properly when clicked or hovered */
929
+ html .ui-button.ui-state-disabled:hover,
930
+ html .ui-button.ui-state-disabled:active {
931
+ border: 1px solid #c5c5c5;
932
+ background: #f6f6f6;
933
+ font-weight: normal;
934
+ color: #454545;
935
+ }
936
+ .ui-state-default a,
937
+ .ui-state-default a:link,
938
+ .ui-state-default a:visited,
939
+ a.ui-button,
940
+ a:link.ui-button,
941
+ a:visited.ui-button,
942
+ .ui-button {
943
+ color: #454545;
944
+ text-decoration: none;
945
+ }
946
+ .ui-state-hover,
947
+ .ui-widget-content .ui-state-hover,
948
+ .ui-widget-header .ui-state-hover,
949
+ .ui-state-focus,
950
+ .ui-widget-content .ui-state-focus,
951
+ .ui-widget-header .ui-state-focus,
952
+ .ui-button:hover,
953
+ .ui-button:focus {
954
+ border: 1px solid #cccccc;
955
+ background: #ededed;
956
+ font-weight: normal;
957
+ color: #2b2b2b;
958
+ }
959
+ .ui-state-hover a,
960
+ .ui-state-hover a:hover,
961
+ .ui-state-hover a:link,
962
+ .ui-state-hover a:visited,
963
+ .ui-state-focus a,
964
+ .ui-state-focus a:hover,
965
+ .ui-state-focus a:link,
966
+ .ui-state-focus a:visited,
967
+ a.ui-button:hover,
968
+ a.ui-button:focus {
969
+ color: #2b2b2b;
970
+ text-decoration: none;
971
+ }
972
+
973
+ .ui-visual-focus {
974
+ box-shadow: 0 0 3px 1px rgb(94, 158, 214);
975
+ }
976
+ .ui-state-active,
977
+ .ui-widget-content .ui-state-active,
978
+ .ui-widget-header .ui-state-active,
979
+ a.ui-button:active,
980
+ .ui-button:active,
981
+ .ui-button.ui-state-active:hover {
982
+ border: 1px solid #003eff;
983
+ background: #007fff;
984
+ font-weight: normal;
985
+ color: #ffffff;
986
+ }
987
+ .ui-icon-background,
988
+ .ui-state-active .ui-icon-background {
989
+ border: #003eff;
990
+ background-color: #ffffff;
991
+ }
992
+ .ui-state-active a,
993
+ .ui-state-active a:link,
994
+ .ui-state-active a:visited {
995
+ color: #ffffff;
996
+ text-decoration: none;
997
+ }
998
+
999
+ /* Interaction Cues
1000
+ ----------------------------------*/
1001
+ .ui-state-highlight,
1002
+ .ui-widget-content .ui-state-highlight,
1003
+ .ui-widget-header .ui-state-highlight {
1004
+ border: 1px solid #dad55e;
1005
+ background: #fffa90;
1006
+ color: #777620;
1007
+ }
1008
+ .ui-state-checked {
1009
+ border: 1px solid #dad55e;
1010
+ background: #fffa90;
1011
+ }
1012
+ .ui-state-highlight a,
1013
+ .ui-widget-content .ui-state-highlight a,
1014
+ .ui-widget-header .ui-state-highlight a {
1015
+ color: #777620;
1016
+ }
1017
+ .ui-state-error,
1018
+ .ui-widget-content .ui-state-error,
1019
+ .ui-widget-header .ui-state-error {
1020
+ border: 1px solid #f1a899;
1021
+ background: #fddfdf;
1022
+ color: #5f3f3f;
1023
+ }
1024
+ .ui-state-error a,
1025
+ .ui-widget-content .ui-state-error a,
1026
+ .ui-widget-header .ui-state-error a {
1027
+ color: #5f3f3f;
1028
+ }
1029
+ .ui-state-error-text,
1030
+ .ui-widget-content .ui-state-error-text,
1031
+ .ui-widget-header .ui-state-error-text {
1032
+ color: #5f3f3f;
1033
+ }
1034
+ .ui-priority-primary,
1035
+ .ui-widget-content .ui-priority-primary,
1036
+ .ui-widget-header .ui-priority-primary {
1037
+ font-weight: bold;
1038
+ }
1039
+ .ui-priority-secondary,
1040
+ .ui-widget-content .ui-priority-secondary,
1041
+ .ui-widget-header .ui-priority-secondary {
1042
+ opacity: .7;
1043
+ filter:Alpha(Opacity=70); /* support: IE8 */
1044
+ font-weight: normal;
1045
+ }
1046
+ .ui-state-disabled,
1047
+ .ui-widget-content .ui-state-disabled,
1048
+ .ui-widget-header .ui-state-disabled {
1049
+ opacity: .35;
1050
+ filter:Alpha(Opacity=35); /* support: IE8 */
1051
+ background-image: none;
1052
+ }
1053
+ .ui-state-disabled .ui-icon {
1054
+ filter:Alpha(Opacity=35); /* support: IE8 - See #6059 */
1055
+ }
1056
+
1057
+ /* Icons
1058
+ ----------------------------------*/
1059
+
1060
+ /* states and images */
1061
+ .ui-icon {
1062
+ width: 16px;
1063
+ height: 16px;
1064
+ }
1065
+ .ui-icon,
1066
+ .ui-widget-content .ui-icon {
1067
+ background-image: url("images/ui-icons_444444_256x240.png");
1068
+ }
1069
+ .ui-widget-header .ui-icon {
1070
+ background-image: url("images/ui-icons_444444_256x240.png");
1071
+ }
1072
+ .ui-state-hover .ui-icon,
1073
+ .ui-state-focus .ui-icon,
1074
+ .ui-button:hover .ui-icon,
1075
+ .ui-button:focus .ui-icon {
1076
+ background-image: url("images/ui-icons_555555_256x240.png");
1077
+ }
1078
+ .ui-state-active .ui-icon,
1079
+ .ui-button:active .ui-icon {
1080
+ background-image: url("images/ui-icons_ffffff_256x240.png");
1081
+ }
1082
+ .ui-state-highlight .ui-icon,
1083
+ .ui-button .ui-state-highlight.ui-icon {
1084
+ background-image: url("images/ui-icons_777620_256x240.png");
1085
+ }
1086
+ .ui-state-error .ui-icon,
1087
+ .ui-state-error-text .ui-icon {
1088
+ background-image: url("images/ui-icons_cc0000_256x240.png");
1089
+ }
1090
+ .ui-button .ui-icon {
1091
+ background-image: url("images/ui-icons_777777_256x240.png");
1092
+ }
1093
+
1094
+ /* positioning */
1095
+ .ui-icon-blank { background-position: 16px 16px; }
1096
+ .ui-icon-caret-1-n { background-position: 0 0; }
1097
+ .ui-icon-caret-1-ne { background-position: -16px 0; }
1098
+ .ui-icon-caret-1-e { background-position: -32px 0; }
1099
+ .ui-icon-caret-1-se { background-position: -48px 0; }
1100
+ .ui-icon-caret-1-s { background-position: -65px 0; }
1101
+ .ui-icon-caret-1-sw { background-position: -80px 0; }
1102
+ .ui-icon-caret-1-w { background-position: -96px 0; }
1103
+ .ui-icon-caret-1-nw { background-position: -112px 0; }
1104
+ .ui-icon-caret-2-n-s { background-position: -128px 0; }
1105
+ .ui-icon-caret-2-e-w { background-position: -144px 0; }
1106
+ .ui-icon-triangle-1-n { background-position: 0 -16px; }
1107
+ .ui-icon-triangle-1-ne { background-position: -16px -16px; }
1108
+ .ui-icon-triangle-1-e { background-position: -32px -16px; }
1109
+ .ui-icon-triangle-1-se { background-position: -48px -16px; }
1110
+ .ui-icon-triangle-1-s { background-position: -65px -16px; }
1111
+ .ui-icon-triangle-1-sw { background-position: -80px -16px; }
1112
+ .ui-icon-triangle-1-w { background-position: -96px -16px; }
1113
+ .ui-icon-triangle-1-nw { background-position: -112px -16px; }
1114
+ .ui-icon-triangle-2-n-s { background-position: -128px -16px; }
1115
+ .ui-icon-triangle-2-e-w { background-position: -144px -16px; }
1116
+ .ui-icon-arrow-1-n { background-position: 0 -32px; }
1117
+ .ui-icon-arrow-1-ne { background-position: -16px -32px; }
1118
+ .ui-icon-arrow-1-e { background-position: -32px -32px; }
1119
+ .ui-icon-arrow-1-se { background-position: -48px -32px; }
1120
+ .ui-icon-arrow-1-s { background-position: -65px -32px; }
1121
+ .ui-icon-arrow-1-sw { background-position: -80px -32px; }
1122
+ .ui-icon-arrow-1-w { background-position: -96px -32px; }
1123
+ .ui-icon-arrow-1-nw { background-position: -112px -32px; }
1124
+ .ui-icon-arrow-2-n-s { background-position: -128px -32px; }
1125
+ .ui-icon-arrow-2-ne-sw { background-position: -144px -32px; }
1126
+ .ui-icon-arrow-2-e-w { background-position: -160px -32px; }
1127
+ .ui-icon-arrow-2-se-nw { background-position: -176px -32px; }
1128
+ .ui-icon-arrowstop-1-n { background-position: -192px -32px; }
1129
+ .ui-icon-arrowstop-1-e { background-position: -208px -32px; }
1130
+ .ui-icon-arrowstop-1-s { background-position: -224px -32px; }
1131
+ .ui-icon-arrowstop-1-w { background-position: -240px -32px; }
1132
+ .ui-icon-arrowthick-1-n { background-position: 1px -48px; }
1133
+ .ui-icon-arrowthick-1-ne { background-position: -16px -48px; }
1134
+ .ui-icon-arrowthick-1-e { background-position: -32px -48px; }
1135
+ .ui-icon-arrowthick-1-se { background-position: -48px -48px; }
1136
+ .ui-icon-arrowthick-1-s { background-position: -64px -48px; }
1137
+ .ui-icon-arrowthick-1-sw { background-position: -80px -48px; }
1138
+ .ui-icon-arrowthick-1-w { background-position: -96px -48px; }
1139
+ .ui-icon-arrowthick-1-nw { background-position: -112px -48px; }
1140
+ .ui-icon-arrowthick-2-n-s { background-position: -128px -48px; }
1141
+ .ui-icon-arrowthick-2-ne-sw { background-position: -144px -48px; }
1142
+ .ui-icon-arrowthick-2-e-w { background-position: -160px -48px; }
1143
+ .ui-icon-arrowthick-2-se-nw { background-position: -176px -48px; }
1144
+ .ui-icon-arrowthickstop-1-n { background-position: -192px -48px; }
1145
+ .ui-icon-arrowthickstop-1-e { background-position: -208px -48px; }
1146
+ .ui-icon-arrowthickstop-1-s { background-position: -224px -48px; }
1147
+ .ui-icon-arrowthickstop-1-w { background-position: -240px -48px; }
1148
+ .ui-icon-arrowreturnthick-1-w { background-position: 0 -64px; }
1149
+ .ui-icon-arrowreturnthick-1-n { background-position: -16px -64px; }
1150
+ .ui-icon-arrowreturnthick-1-e { background-position: -32px -64px; }
1151
+ .ui-icon-arrowreturnthick-1-s { background-position: -48px -64px; }
1152
+ .ui-icon-arrowreturn-1-w { background-position: -64px -64px; }
1153
+ .ui-icon-arrowreturn-1-n { background-position: -80px -64px; }
1154
+ .ui-icon-arrowreturn-1-e { background-position: -96px -64px; }
1155
+ .ui-icon-arrowreturn-1-s { background-position: -112px -64px; }
1156
+ .ui-icon-arrowrefresh-1-w { background-position: -128px -64px; }
1157
+ .ui-icon-arrowrefresh-1-n { background-position: -144px -64px; }
1158
+ .ui-icon-arrowrefresh-1-e { background-position: -160px -64px; }
1159
+ .ui-icon-arrowrefresh-1-s { background-position: -176px -64px; }
1160
+ .ui-icon-arrow-4 { background-position: 0 -80px; }
1161
+ .ui-icon-arrow-4-diag { background-position: -16px -80px; }
1162
+ .ui-icon-extlink { background-position: -32px -80px; }
1163
+ .ui-icon-newwin { background-position: -48px -80px; }
1164
+ .ui-icon-refresh { background-position: -64px -80px; }
1165
+ .ui-icon-shuffle { background-position: -80px -80px; }
1166
+ .ui-icon-transfer-e-w { background-position: -96px -80px; }
1167
+ .ui-icon-transferthick-e-w { background-position: -112px -80px; }
1168
+ .ui-icon-folder-collapsed { background-position: 0 -96px; }
1169
+ .ui-icon-folder-open { background-position: -16px -96px; }
1170
+ .ui-icon-document { background-position: -32px -96px; }
1171
+ .ui-icon-document-b { background-position: -48px -96px; }
1172
+ .ui-icon-note { background-position: -64px -96px; }
1173
+ .ui-icon-mail-closed { background-position: -80px -96px; }
1174
+ .ui-icon-mail-open { background-position: -96px -96px; }
1175
+ .ui-icon-suitcase { background-position: -112px -96px; }
1176
+ .ui-icon-comment { background-position: -128px -96px; }
1177
+ .ui-icon-person { background-position: -144px -96px; }
1178
+ .ui-icon-print { background-position: -160px -96px; }
1179
+ .ui-icon-trash { background-position: -176px -96px; }
1180
+ .ui-icon-locked { background-position: -192px -96px; }
1181
+ .ui-icon-unlocked { background-position: -208px -96px; }
1182
+ .ui-icon-bookmark { background-position: -224px -96px; }
1183
+ .ui-icon-tag { background-position: -240px -96px; }
1184
+ .ui-icon-home { background-position: 0 -112px; }
1185
+ .ui-icon-flag { background-position: -16px -112px; }
1186
+ .ui-icon-calendar { background-position: -32px -112px; }
1187
+ .ui-icon-cart { background-position: -48px -112px; }
1188
+ .ui-icon-pencil { background-position: -64px -112px; }
1189
+ .ui-icon-clock { background-position: -80px -112px; }
1190
+ .ui-icon-disk { background-position: -96px -112px; }
1191
+ .ui-icon-calculator { background-position: -112px -112px; }
1192
+ .ui-icon-zoomin { background-position: -128px -112px; }
1193
+ .ui-icon-zoomout { background-position: -144px -112px; }
1194
+ .ui-icon-search { background-position: -160px -112px; }
1195
+ .ui-icon-wrench { background-position: -176px -112px; }
1196
+ .ui-icon-gear { background-position: -192px -112px; }
1197
+ .ui-icon-heart { background-position: -208px -112px; }
1198
+ .ui-icon-star { background-position: -224px -112px; }
1199
+ .ui-icon-link { background-position: -240px -112px; }
1200
+ .ui-icon-cancel { background-position: 0 -128px; }
1201
+ .ui-icon-plus { background-position: -16px -128px; }
1202
+ .ui-icon-plusthick { background-position: -32px -128px; }
1203
+ .ui-icon-minus { background-position: -48px -128px; }
1204
+ .ui-icon-minusthick { background-position: -64px -128px; }
1205
+ .ui-icon-close { background-position: -80px -128px; }
1206
+ .ui-icon-closethick { background-position: -96px -128px; }
1207
+ .ui-icon-key { background-position: -112px -128px; }
1208
+ .ui-icon-lightbulb { background-position: -128px -128px; }
1209
+ .ui-icon-scissors { background-position: -144px -128px; }
1210
+ .ui-icon-clipboard { background-position: -160px -128px; }
1211
+ .ui-icon-copy { background-position: -176px -128px; }
1212
+ .ui-icon-contact { background-position: -192px -128px; }
1213
+ .ui-icon-image { background-position: -208px -128px; }
1214
+ .ui-icon-video { background-position: -224px -128px; }
1215
+ .ui-icon-script { background-position: -240px -128px; }
1216
+ .ui-icon-alert { background-position: 0 -144px; }
1217
+ .ui-icon-info { background-position: -16px -144px; }
1218
+ .ui-icon-notice { background-position: -32px -144px; }
1219
+ .ui-icon-help { background-position: -48px -144px; }
1220
+ .ui-icon-check { background-position: -64px -144px; }
1221
+ .ui-icon-bullet { background-position: -80px -144px; }
1222
+ .ui-icon-radio-on { background-position: -96px -144px; }
1223
+ .ui-icon-radio-off { background-position: -112px -144px; }
1224
+ .ui-icon-pin-w { background-position: -128px -144px; }
1225
+ .ui-icon-pin-s { background-position: -144px -144px; }
1226
+ .ui-icon-play { background-position: 0 -160px; }
1227
+ .ui-icon-pause { background-position: -16px -160px; }
1228
+ .ui-icon-seek-next { background-position: -32px -160px; }
1229
+ .ui-icon-seek-prev { background-position: -48px -160px; }
1230
+ .ui-icon-seek-end { background-position: -64px -160px; }
1231
+ .ui-icon-seek-start { background-position: -80px -160px; }
1232
+ /* ui-icon-seek-first is deprecated, use ui-icon-seek-start instead */
1233
+ .ui-icon-seek-first { background-position: -80px -160px; }
1234
+ .ui-icon-stop { background-position: -96px -160px; }
1235
+ .ui-icon-eject { background-position: -112px -160px; }
1236
+ .ui-icon-volume-off { background-position: -128px -160px; }
1237
+ .ui-icon-volume-on { background-position: -144px -160px; }
1238
+ .ui-icon-power { background-position: 0 -176px; }
1239
+ .ui-icon-signal-diag { background-position: -16px -176px; }
1240
+ .ui-icon-signal { background-position: -32px -176px; }
1241
+ .ui-icon-battery-0 { background-position: -48px -176px; }
1242
+ .ui-icon-battery-1 { background-position: -64px -176px; }
1243
+ .ui-icon-battery-2 { background-position: -80px -176px; }
1244
+ .ui-icon-battery-3 { background-position: -96px -176px; }
1245
+ .ui-icon-circle-plus { background-position: 0 -192px; }
1246
+ .ui-icon-circle-minus { background-position: -16px -192px; }
1247
+ .ui-icon-circle-close { background-position: -32px -192px; }
1248
+ .ui-icon-circle-triangle-e { background-position: -48px -192px; }
1249
+ .ui-icon-circle-triangle-s { background-position: -64px -192px; }
1250
+ .ui-icon-circle-triangle-w { background-position: -80px -192px; }
1251
+ .ui-icon-circle-triangle-n { background-position: -96px -192px; }
1252
+ .ui-icon-circle-arrow-e { background-position: -112px -192px; }
1253
+ .ui-icon-circle-arrow-s { background-position: -128px -192px; }
1254
+ .ui-icon-circle-arrow-w { background-position: -144px -192px; }
1255
+ .ui-icon-circle-arrow-n { background-position: -160px -192px; }
1256
+ .ui-icon-circle-zoomin { background-position: -176px -192px; }
1257
+ .ui-icon-circle-zoomout { background-position: -192px -192px; }
1258
+ .ui-icon-circle-check { background-position: -208px -192px; }
1259
+ .ui-icon-circlesmall-plus { background-position: 0 -208px; }
1260
+ .ui-icon-circlesmall-minus { background-position: -16px -208px; }
1261
+ .ui-icon-circlesmall-close { background-position: -32px -208px; }
1262
+ .ui-icon-squaresmall-plus { background-position: -48px -208px; }
1263
+ .ui-icon-squaresmall-minus { background-position: -64px -208px; }
1264
+ .ui-icon-squaresmall-close { background-position: -80px -208px; }
1265
+ .ui-icon-grip-dotted-vertical { background-position: 0 -224px; }
1266
+ .ui-icon-grip-dotted-horizontal { background-position: -16px -224px; }
1267
+ .ui-icon-grip-solid-vertical { background-position: -32px -224px; }
1268
+ .ui-icon-grip-solid-horizontal { background-position: -48px -224px; }
1269
+ .ui-icon-gripsmall-diagonal-se { background-position: -64px -224px; }
1270
+ .ui-icon-grip-diagonal-se { background-position: -80px -224px; }
1271
+
1272
+
1273
+ /* Misc visuals
1274
+ ----------------------------------*/
1275
+
1276
+ /* Corner radius */
1277
+ .ui-corner-all,
1278
+ .ui-corner-top,
1279
+ .ui-corner-left,
1280
+ .ui-corner-tl {
1281
+ border-top-left-radius: 3px;
1282
+ }
1283
+ .ui-corner-all,
1284
+ .ui-corner-top,
1285
+ .ui-corner-right,
1286
+ .ui-corner-tr {
1287
+ border-top-right-radius: 3px;
1288
+ }
1289
+ .ui-corner-all,
1290
+ .ui-corner-bottom,
1291
+ .ui-corner-left,
1292
+ .ui-corner-bl {
1293
+ border-bottom-left-radius: 3px;
1294
+ }
1295
+ .ui-corner-all,
1296
+ .ui-corner-bottom,
1297
+ .ui-corner-right,
1298
+ .ui-corner-br {
1299
+ border-bottom-right-radius: 3px;
1300
+ }
1301
+
1302
+ /* Overlays */
1303
+ .ui-widget-overlay {
1304
+ background: #aaaaaa;
1305
+ opacity: .3;
1306
+ filter: Alpha(Opacity=30); /* support: IE8 */
1307
+ }
1308
+ .ui-widget-shadow {
1309
+ -webkit-box-shadow: 0px 0px 5px #666666;
1310
+ box-shadow: 0px 0px 5px #666666;
1311
+ }
assets/css/um-fileupload.css CHANGED
@@ -70,6 +70,7 @@
70
  .um-single-fileinfo {
71
  padding: 26px 0 20px 0;
72
  display: inline-block;
 
73
  }
74
 
75
  .um-single-fileinfo span.icon {
70
  .um-single-fileinfo {
71
  padding: 26px 0 20px 0;
72
  display: inline-block;
73
+ max-width: 100%;
74
  }
75
 
76
  .um-single-fileinfo span.icon {
assets/css/um-members-rtl.css ADDED
@@ -0,0 +1,82 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ .um-directory .um-member-directory-header .um-member-directory-header-row .um-member-directory-search-line label {
2
+ margin: 0 0 0 10px; }
3
+
4
+ .um-directory .um-member-directory-header .um-member-directory-header-row .um-member-directory-nav-line .um-member-directory-view-type {
5
+ margin: 0 0 0 10px; }
6
+
7
+ .um-directory .um-member-directory-header .um-member-directory-header-row .um-member-directory-nav-line .um-member-directory-sorting .um-member-directory-sorting-a a {
8
+ margin: 0 0 0 5px; }
9
+
10
+ .um-directory .um-member-directory-header .um-member-directory-header-row .um-member-directory-nav-line .um-member-directory-sorting .um-member-directory-sorting-a .um-new-dropdown {
11
+ right: -12px;
12
+ left: auto; }
13
+
14
+ .um-directory .um-member-directory-header .um-member-directory-header-row .um-member-directory-nav-line .um-member-directory-filters .um-member-directory-filters-a a {
15
+ margin: 0 0 0 5px; }
16
+
17
+ .um-directory .um-member-directory-header .um-member-directory-header-row .um-search .um-search-filter.um-datepicker-filter-type input, .um-directory .um-member-directory-header .um-member-directory-header-row .um-search .um-search-filter.um-timepicker-filter-type input {
18
+ margin: 0 0 0 5px; }
19
+ .um-directory .um-member-directory-header .um-member-directory-header-row .um-search .um-search-filter.um-datepicker-filter-type input:nth-child(even), .um-directory .um-member-directory-header .um-member-directory-header-row .um-search .um-search-filter.um-timepicker-filter-type input:nth-child(even) {
20
+ margin: 0 5px 0 0; }
21
+
22
+ .um-directory .um-member-directory-header .um-member-directory-header-row .um-filtered-line .um-members-filter-tag {
23
+ margin: 0 0 5px 10px; }
24
+ .um-directory .um-member-directory-header .um-member-directory-header-row .um-filtered-line .um-members-filter-tag:first-child {
25
+ margin-left: 10px; }
26
+ .um-directory .um-member-directory-header .um-member-directory-header-row .um-filtered-line .um-members-filter-tag .um-members-filter-remove {
27
+ margin-left: 0;
28
+ margin-right: 10px; }
29
+
30
+ .um-directory .um-members-wrapper .um-members.um-members-grid .um-member .um-member-card .um-members-edit-btn a.um-edit-profile-btn:before {
31
+ margin-right: 0;
32
+ margin-left: 8px; }
33
+
34
+ .um-directory .um-members-wrapper .um-members.um-members-list .um-member .um-member-card-container .um-member-photo {
35
+ margin: 0 0 0 15px; }
36
+
37
+ .um-directory .um-members-wrapper .um-members.um-members-list .um-member .um-member-card-container .um-member-card .um-member-card-content {
38
+ margin: 0 0 0 10px; }
39
+
40
+ .um-directory .um-members-wrapper .um-members.um-members-list .um-member .um-member-card-container .um-member-card .um-member-card-actions .um-member-cog .um-new-dropdown {
41
+ right: auto;
42
+ left: 0;
43
+ text-align: right; }
44
+
45
+ .um-directory .um-members-pagination-box .um-members-pagi {
46
+ align-items: center; }
47
+ .um-directory .um-members-pagination-box .um-members-pagi .pagi.pagi-arrow {
48
+ transform: rotate(180deg); }
49
+
50
+ .um-directory.uimob340 .um-member-directory-header .um-member-directory-header-row .um-member-directory-nav-line .um-member-directory-view-type {
51
+ margin: 0 0 0 2px; }
52
+
53
+ .um-directory.uimob340 .um-member-directory-header .um-member-directory-header-row .um-member-directory-nav-line .um-member-directory-sorting .um-new-dropdown {
54
+ right: auto;
55
+ left: 0; }
56
+
57
+ .um-directory.uimob340 .um-members-wrapper .um-members.um-members-list .um-member .um-member-photo {
58
+ margin: 0 0 0 10px; }
59
+
60
+ .um-directory.uimob340 .um-members-wrapper .um-members.um-members-list .um-member .um-member-card-footer .um-member-card-footer-buttons {
61
+ margin: 0 0 0 10px; }
62
+
63
+ .um-directory.uimob500 .um-member-directory-header .um-member-directory-header-row .um-member-directory-nav-line .um-member-directory-view-type {
64
+ margin: 0 0 0 5px; }
65
+
66
+ .um-directory.uimob500 .um-members-wrapper .um-members.um-members-list .um-member .um-member-photo {
67
+ margin: 0 0 0 10px; }
68
+
69
+ .um-directory.uimob500 .um-members-wrapper .um-members.um-members-list .um-member .um-member-card-footer {
70
+ align-items: flex-start; }
71
+ .um-directory.uimob500 .um-members-wrapper .um-members.um-members-list .um-member .um-member-card-footer .um-member-card-footer-buttons {
72
+ margin: 0 0 0 10px; }
73
+ .um-directory.uimob500 .um-members-wrapper .um-members.um-members-list .um-member .um-member-card-footer .um-member-card-footer-buttons .um-members-list-footer-button-wrapper {
74
+ margin: 0 0 5px 10px; }
75
+
76
+ .um-directory.uimob800 .um-members-wrapper .um-members.um-members-list .um-member .um-member-photo {
77
+ margin: 0 0 0 10px; }
78
+
79
+ .um-directory.uimob800 .um-members-wrapper .um-members.um-members-list .um-member .um-member-card-footer .um-member-card-footer-buttons {
80
+ margin: 0 0 0 10px; }
81
+ .um-directory.uimob800 .um-members-wrapper .um-members.um-members-list .um-member .um-member-card-footer .um-member-card-footer-buttons .um-members-list-footer-button-wrapper {
82
+ margin: 0 0 5px 10px; }
assets/css/um-members.css CHANGED
@@ -1,373 +1,994 @@
1
- /*
2
- - Members mode .um alias
3
- */
4
-
5
- .um-members img {
6
- display: block;
7
- overflow:hidden;
8
- -moz-border-radius: 0!important;
9
- -webkit-border-radius: 0!important;
10
- border-radius: 0!important;
11
- margin: 0!important;
12
- padding: 0!important;
13
- }
14
-
15
- .um-members a,
16
- .um-members a:hover {text-decoration:none !important}
17
-
18
- /*
19
- - Members overview
20
- */
21
-
22
- .um-members-intro {
23
- text-align: center;
24
- margin: 0 0 20px 0;
25
- }
26
-
27
- .um-members-total {
28
- font-size: 30px;
29
- font-weight: 300;
30
- }
31
-
32
- /*
33
- - no results
34
- */
35
-
36
- .um-members-none {
37
- text-align: center;
38
- font-size: 18px;
39
- }
40
-
41
- /*
42
- - Members search
43
- */
44
-
45
- .um-search {
46
- text-align: center;
47
- padding: 20px 50px;
48
- }
49
-
50
- .um-search.um-search-2 {
51
- padding-left: 20%;
52
- padding-right: 20%;
53
- width: 100%;
54
- box-sizing: border-box;
55
- }
56
-
57
- .um-search.um-search-1 {
58
- padding-left: 32%;
59
- padding-right: 32%;
60
- width: 100%;
61
- box-sizing: border-box;
62
- }
63
-
64
- .um-search.um-search-1 .um-search-submit .um-button {
65
- display: block !important;
66
- min-width: 100% !important;
67
- margin: 0 0 10px 0 !important;
68
- }
69
-
70
- .um-search.um-search-1 .um-search-filter {
71
- width: 100%;
72
- padding: 0 0 10px 0;
73
- float: none;
74
- }
75
-
76
- .um-search.um-search-2 .um-search-filter {
77
- width: 50%;
78
- }
79
-
80
- .um-search-filter {
81
- padding: 0 15px 30px 15px;
82
- display: block;
83
- float: left;
84
- width: 33%;
85
- box-sizing: border-box;
86
- }
87
-
88
- .um-search-submit .um-button {
89
- display: inline-block !important;
90
- width: auto !important;
91
- padding: 12px 20px !important;
92
- margin: 0 10px !important;
93
- min-width: 150px !important;
94
- }
95
-
96
- /*
97
- - Member box
98
- */
99
-
100
- .um-members {
101
- -ms-word-break: break-all;
102
- word-break: break-word;
103
- word-wrap: break-word;
104
- }
105
-
106
- .um-member {
107
- float: left;
108
- width: 30%;
109
- background: #fff;
110
- text-align: center;
111
- border: 1px solid #eee;
112
- box-sizing: border-box;
113
- margin-bottom: 40px;
114
- position: relative;
115
- }
116
-
117
- .um-member.awaiting_admin_review,
118
- .um-member.inactive,
119
- .um-member.rejected {
120
- opacity: 0.7;
121
- }
122
-
123
- .um-member-status {display:none}
124
- .um-member-status.awaiting_admin_review,
125
- .um-member-status.inactive,
126
- .um-member-status.rejected
127
- {
128
- display: block;
129
- position: absolute;
130
- top: 0;
131
- left: 0;
132
- width: 100%;
133
- padding: 7px 15px;
134
- background: #C74A4A;
135
- color: #fff;
136
- z-index: 10;
137
- font-size: 13px;
138
- box-sizing: border-box;
139
- }
140
-
141
- .um-member-status.inactive,
142
- .um-member-status.rejected
143
- {background: #999}
144
-
145
- .um-gutter-sizer { width: 5% }
146
-
147
- /*
148
- - Member cover
149
- */
150
-
151
- .um-member-cover {
152
- background-color: #eee;
153
- box-sizing: border-box;
154
- position: relative;
155
- }
156
-
157
- .um-member-cover-e {
158
- text-align: center;
159
- box-sizing: border-box;
160
- }
161
-
162
- .um-member-cover-e img {width: 100% !important;}
163
-
164
- /*
165
- - Member photo
166
- */
167
-
168
- .um-member-photo {
169
- padding: 40px 0 20px 0;
170
- text-align: center;
171
- }
172
-
173
- .um-member-photo a{ display: inline !important; }
174
-
175
- .um-member-photo img {
176
- display: inline !important;
177
- border: 5px solid #fff;
178
- background: #fff;
179
- width: 140px;
180
- height: 140px;
181
- float: none !important;
182
- }
183
-
184
- .um-member.with-cover .um-member-photo {padding-top: 0}
185
- .um-member.with-cover .um-member-photo img {
186
- width: 90px;
187
- height: 90px;
188
- position: relative;
189
- top: -35px;
190
- margin-bottom: -45px !important;
191
- float: none !important;
192
- opacity: 1;
193
- }
194
-
195
- .um-member-photo.radius-1 img { -moz-border-radius: 999px !important;-webkit-border-radius: 999px !important;border-radius: 999px !important }
196
- .um-member-photo.radius-2 img { -moz-border-radius: 4px !important;-webkit-border-radius: 4px !important;border-radius: 4px !important }
197
- .um-member-photo.radius-3 img { -moz-border-radius: 0 !important;-webkit-border-radius: 0 !important; border-radius: 0 !important }
198
-
199
- /*
200
- - Member name
201
- */
202
-
203
- .um-member-card.no-photo {
204
- padding-top: 30px;
205
- }
206
-
207
- .um-member-card {
208
- padding-bottom: 15px;
209
- }
210
-
211
- .um-member-name {
212
- margin: 0 0 4px 0;
213
- }
214
-
215
- .um-member-name a {
216
- font-size: 16px;
217
- line-height: 26px;
218
- color: #444;
219
- font-weight: 700;
220
- }
221
-
222
- .um-member-tagline {
223
- font-size: 13px;
224
- line-height: 22px;
225
- color: #999;
226
- padding: 0 15px;
227
- }
228
-
229
- /*
230
- - Member meta
231
- */
232
-
233
- .um-member-less { display: none }
234
-
235
- .um-member-more a, .um-member-less a {
236
- color: #666;
237
- display: inline-block;
238
- }
239
-
240
- .um-member-more i, .um-member-less i {
241
- display: block;
242
- font-size: 32px;
243
- height: 32px;
244
- line-height: 32px;
245
- }
246
-
247
- .um-member-meta {
248
- display: none;
249
- margin: 20px 15px 0 15px;
250
- padding: 15px 0;
251
- border-top: 1px solid #e5e5e5;
252
- }
253
-
254
- .um-member-meta.no-animate {
255
- display: block;
256
- }
257
-
258
- .um-member-metaline {
259
- font-size: 13px;
260
- padding: 12px 0 0 0;
261
- line-height: 16px;
262
- vertical-align: middle;
263
- }
264
-
265
- .um-member-metaline span {
266
- display: block;
267
- text-align: center;
268
- }
269
-
270
- /*
271
- - Member connect bar
272
- */
273
-
274
- .um-member-connect {
275
- padding-top: 20px;
276
- }
277
-
278
- .um-member-connect a {
279
- display: inline-block;
280
- width: 40px;
281
- line-height: 40px;
282
- height: 40px;
283
- -moz-border-radius: 999px;
284
- -webkit-border-radius: 999px;
285
- border-radius: 999px;
286
- color: #fff !important;
287
- opacity: 0.85;
288
- margin: 0 1px;
289
- font-size: 22px;
290
- transition: 0.25s;
291
- }
292
-
293
- .um-member-connect i {
294
-
295
- }
296
-
297
- .um-member-connect a:hover {
298
- opacity: 1;
299
- color: #fff;
300
- }
301
-
302
- /*
303
- - Members pagination
304
- */
305
-
306
- .um-members-pagi,
307
- .um-members-pagidrop
308
- {
309
- text-align: center;
310
- padding: 5px 0;
311
- font-size: 15px;
312
- }
313
-
314
- .um-members-pagi span.current,
315
- .um-members-pagi span.current:hover {
316
- color: #fff !important;
317
- }
318
-
319
- .um-members-pagi i:before {font-size: 20px;vertical-align: middle !important;height: 34px;line-height: 34px;top: -2px;position: relative;}
320
-
321
- .um-members-pagi span.disabled {opacity: .4;cursor: default}
322
-
323
- .um-members-pagi span.none {color: #aaa !important;}
324
-
325
- .um-members-pagi span {cursor: default}
326
- .um-members-pagi span,
327
- .um-members-pagi a {
328
- display: inline-block;
329
- width: auto;
330
- height: 34px;
331
- line-height: 34px;
332
- transition: all .2s linear;
333
- padding: 0 14px;
334
- color: #666 !important;
335
- font-weight: normal;
336
- }
337
-
338
- .um-members-pagi a:hover {
339
- text-decoration: none !important;
340
- }
341
-
342
- .um-members-edit-btn {
343
- margin: 2px 0;
344
- height: 40px;
345
- }
346
-
347
- a.um-edit-profile-btn {
348
- padding: 10px 15px !important;
349
- transition: none !important;
350
- display: inline-block !important;
351
- margin: 0 auto !important;
352
- min-width: 110px;
353
- width: auto;
354
- text-align: center;
355
- }
356
-
357
- a.um-edit-profile-btn:before {
358
- font-family: "FontAwesome";
359
- margin-right: 8px;
360
- width: 14px;
361
- text-align: left;
362
- display: inline-block;
363
- font-size: 16px;
364
- position: relative;
365
- left: 0;
366
- top: 1px;
367
- }
368
-
369
- a.um-edit-profile-btn:before {content: "\f013"}
370
-
371
- a.um-edit-profile-btn {
372
- font-size: 13px;
373
- }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ @-webkit-keyframes um-ajax-spinning {
2
+ 0% {
3
+ -webkit-transform: rotate(0deg);
4
+ transform: rotate(0deg); }
5
+ 100% {
6
+ -webkit-transform: rotate(360deg);
7
+ transform: rotate(360deg); } }
8
+
9
+ @-moz-keyframes um-ajax-spinning {
10
+ 0% {
11
+ -webkit-transform: rotate(0deg);
12
+ transform: rotate(0deg); }
13
+ 100% {
14
+ -webkit-transform: rotate(360deg);
15
+ transform: rotate(360deg); } }
16
+
17
+ @-ms-keyframes um-ajax-spinning {
18
+ 0% {
19
+ -webkit-transform: rotate(0deg);
20
+ transform: rotate(0deg); }
21
+ 100% {
22
+ -webkit-transform: rotate(360deg);
23
+ transform: rotate(360deg); } }
24
+
25
+ @keyframes um-ajax-spinning {
26
+ 0% {
27
+ -webkit-transform: rotate(0deg);
28
+ transform: rotate(0deg); }
29
+ 100% {
30
+ -webkit-transform: rotate(360deg);
31
+ transform: rotate(360deg); } }
32
+
33
+ .um-new-dropdown {
34
+ font-size: 16px;
35
+ margin: 0;
36
+ position: absolute;
37
+ height: auto;
38
+ background: #fff;
39
+ z-index: 10;
40
+ display: none;
41
+ border: 1px solid #ddd;
42
+ box-shadow: 0 7px 14px 0 rgba(50, 50, 93, 0.1), 0 3px 6px 0 rgba(0, 0, 0, 0.07);
43
+ -webkit-box-shadow: 0 7px 14px 0 rgba(50, 50, 93, 0.1), 0 3px 6px 0 rgba(0, 0, 0, 0.07);
44
+ box-sizing: border-box;
45
+ -moz-box-sizing: border-box;
46
+ -webkit-box-sizing: border-box;
47
+ border-radius: 5px 5px 5px 5px;
48
+ -moz-border-radius: 5px 5px 5px 5px;
49
+ -webkit-border-radius: 5px 5px 5px 5px; }
50
+ .um-new-dropdown ul {
51
+ margin: 0;
52
+ padding: 0; }
53
+ .um-new-dropdown ul li {
54
+ list-style-type: none;
55
+ padding: 0;
56
+ margin: 0; }
57
+ .um-new-dropdown ul li a {
58
+ display: block;
59
+ padding: 8px 12px;
60
+ line-height: 1; }
61
+
62
+ .um-new-dropdown-arr {
63
+ position: absolute;
64
+ font-size: 24px;
65
+ width: 24px;
66
+ height: 24px;
67
+ overflow: hidden;
68
+ z-index: 15;
69
+ color: #eee; }
70
+ .um-new-dropdown-arr * {
71
+ display: block;
72
+ width: 24px;
73
+ height: 24px;
74
+ vertical-align: bottom;
75
+ overflow: hidden;
76
+ line-height: 24px; }
77
+
78
+ body #content .um-directory a {
79
+ text-decoration: none;
80
+ border-bottom: none;
81
+ box-shadow: none; }
82
+ body #content .um-directory a:hover, body #content .um-directory a:focus {
83
+ text-decoration: none;
84
+ border-bottom: none;
85
+ box-shadow: none; }
86
+
87
+ .um-directory {
88
+ display: flex;
89
+ flex-direction: column;
90
+ justify-content: flex-start;
91
+ align-items: stretch;
92
+ flex-wrap: nowrap;
93
+ position: relative; }
94
+ .um-directory a {
95
+ text-decoration: none;
96
+ border-bottom: none;
97
+ box-shadow: none; }
98
+ .um-directory a:hover, .um-directory a:focus {
99
+ text-decoration: none;
100
+ border-bottom: none;
101
+ box-shadow: none; }
102
+ .um-directory .select2-container--disabled {
103
+ opacity: 0.6; }
104
+ .um-directory .um-members-overlay {
105
+ display: none;
106
+ position: absolute;
107
+ width: 100%;
108
+ top: 0;
109
+ bottom: 0;
110
+ background: rgba(255, 255, 255, 0.8);
111
+ z-index: 2; }
112
+ .um-directory .um-members-overlay .um-ajax-loading {
113
+ -webkit-transition: 0.1s opacity;
114
+ -moz-transition: 0.1s opacity;
115
+ -ms-transition: 0.1s opacity;
116
+ -o-transition: 0.1s opacity;
117
+ transition: 0.1s opacity;
118
+ color: #c6c6c6 !important;
119
+ -webkit-animation: um-ajax-spinning 1.1s infinite linear;
120
+ animation: um-ajax-spinning 1.1s infinite linear;
121
+ border-top: 0.2em solid rgba(198, 198, 198, 0.2);
122
+ border-right: 0.2em solid rgba(198, 198, 198, 0.2);
123
+ border-bottom: 0.2em solid rgba(198, 198, 198, 0.2);
124
+ border-left: .2em solid #c6c6c6;
125
+ font-size: 1.75em;
126
+ position: absolute;
127
+ left: calc(50% - 1.75em);
128
+ top: calc(50% - 1.75em);
129
+ filter: alpha(opacity=0);
130
+ -ms-transform: translateZ(0);
131
+ transform: translateZ(0);
132
+ border-radius: 50%;
133
+ display: block;
134
+ width: 2.5em;
135
+ height: 2.5em;
136
+ margin: 0;
137
+ outline: 0;
138
+ padding: 0;
139
+ vertical-align: baseline; }
140
+ .um-directory .um-member-directory-header {
141
+ display: flex;
142
+ flex-direction: column;
143
+ justify-content: flex-start;
144
+ align-items: stretch;
145
+ flex-wrap: nowrap;
146
+ width: 100%; }
147
+ .um-directory .um-member-directory-header .um-member-directory-header-row {
148
+ display: flex;
149
+ flex-direction: row;
150
+ justify-content: flex-start;
151
+ align-items: baseline;
152
+ flex-wrap: nowrap;
153
+ margin: 0 0 10px 0; }
154
+ .um-directory .um-member-directory-header .um-member-directory-header-row.um-header-row-invisible {
155
+ margin: 0; }
156
+ .um-directory .um-member-directory-header .um-member-directory-header-row.um-member-directory-search-row {
157
+ justify-content: flex-end; }
158
+ .um-directory .um-member-directory-header .um-member-directory-header-row .um-member-directory-search-line {
159
+ display: flex;
160
+ flex-direction: row;
161
+ justify-content: flex-start;
162
+ align-items: baseline;
163
+ flex-wrap: nowrap;
164
+ width: 60%; }
165
+ .um-directory .um-member-directory-header .um-member-directory-header-row .um-member-directory-search-line label {
166
+ flex: 1;
167
+ margin: 0 10px 0 0;
168
+ min-width: 90px;
169
+ max-width: 85%; }
170
+ .um-directory .um-member-directory-header .um-member-directory-header-row .um-member-directory-search-line label span {
171
+ display: none;
172
+ margin: 0 5px 0 0; }
173
+ .um-directory .um-member-directory-header .um-member-directory-header-row .um-member-directory-search-line label .um-search-line {
174
+ -webkit-appearance: textfield;
175
+ width: 100%; }
176
+ .um-directory .um-member-directory-header .um-member-directory-header-row .um-member-directory-search-line .um-do-search {
177
+ min-width: 15%; }
178
+ .um-directory .um-member-directory-header .um-member-directory-header-row .um-member-directory-nav-line {
179
+ display: flex;
180
+ flex-direction: row;
181
+ justify-content: space-between;
182
+ align-items: center;
183
+ flex-wrap: nowrap;
184
+ width: 100%; }
185
+ .um-directory .um-member-directory-header .um-member-directory-header-row .um-member-directory-nav-line .um-member-directory-view-type {
186
+ font-size: 30px;
187
+ line-height: 30px;
188
+ margin: 0 10px 0 0;
189
+ width: 30px; }
190
+ .um-directory .um-member-directory-header .um-member-directory-header-row .um-member-directory-nav-line .um-member-directory-view-type .um-member-directory-view-type-a {
191
+ color: #ddd;
192
+ display: none; }
193
+ .um-directory .um-member-directory-header .um-member-directory-header-row .um-member-directory-nav-line .um-member-directory-view-type.um-disabled {
194
+ cursor: default; }
195
+ .um-directory .um-member-directory-header .um-member-directory-header-row .um-member-directory-nav-line .um-member-directory-view-type.um-disabled a {
196
+ cursor: default; }
197
+ .um-directory .um-member-directory-header .um-member-directory-header-row .um-member-directory-nav-line .um-member-directory-view-type:not(.um-disabled) .um-member-directory-view-type-a:hover {
198
+ color: #ccc; }
199
+ .um-directory .um-member-directory-header .um-member-directory-header-row .um-member-directory-nav-line .um-member-directory-view-type:not(.um-disabled) .um-member-directory-view-type-a:focus {
200
+ color: #ddd; }
201
+ .um-directory .um-member-directory-header .um-member-directory-header-row .um-member-directory-nav-line .um-member-directory-sorting {
202
+ display: flex;
203
+ flex-direction: row;
204
+ justify-content: flex-start;
205
+ align-items: baseline;
206
+ flex-wrap: nowrap;
207
+ flex: 5; }
208
+ .um-directory .um-member-directory-header .um-member-directory-header-row .um-member-directory-nav-line .um-member-directory-sorting .um-member-directory-sorting-a {
209
+ display: flex;
210
+ flex-direction: row;
211
+ justify-content: flex-start;
212
+ align-items: baseline;
213
+ flex-wrap: nowrap;
214
+ position: relative;
215
+ cursor: pointer; }
216
+ .um-directory .um-member-directory-header .um-member-directory-header-row .um-member-directory-nav-line .um-member-directory-sorting .um-member-directory-sorting-a a {
217
+ margin: 0 5px 0 0; }
218
+ .um-directory .um-member-directory-header .um-member-directory-header-row .um-member-directory-nav-line .um-member-directory-sorting .um-member-directory-sorting-a i.um-faicon-caret-down {
219
+ display: inline; }
220
+ .um-directory .um-member-directory-header .um-member-directory-header-row .um-member-directory-nav-line .um-member-directory-sorting .um-member-directory-sorting-a i.um-faicon-caret-up {
221
+ display: none; }
222
+ .um-directory .um-member-directory-header .um-member-directory-header-row .um-member-directory-nav-line .um-member-directory-sorting .um-member-directory-sorting-a.um-member-directory-sorting-visible i.um-faicon-caret-down {
223
+ display: none; }
224
+ .um-directory .um-member-directory-header .um-member-directory-header-row .um-member-directory-nav-line .um-member-directory-sorting .um-member-directory-sorting-a.um-member-directory-sorting-visible i.um-faicon-caret-up {
225
+ display: inline; }
226
+ .um-directory .um-member-directory-header .um-member-directory-header-row .um-member-directory-nav-line .um-member-directory-sorting .um-member-directory-sorting-a .um-new-dropdown {
227
+ top: 24px;
228
+ width: 200px;
229
+ left: -12px; }
230
+ .um-directory .um-member-directory-header .um-member-directory-header-row .um-member-directory-nav-line .um-member-directory-sorting .um-member-directory-sorting-a .um-new-dropdown li a[data-selected="1"] {
231
+ display: none; }
232
+ .um-directory .um-member-directory-header .um-member-directory-header-row .um-member-directory-nav-line .um-member-directory-filters {
233
+ display: flex;
234
+ flex-direction: row;
235
+ justify-content: flex-end;
236
+ align-items: baseline;
237
+ flex-wrap: nowrap;
238
+ flex: 2;
239
+ text-align: right; }
240
+ .um-directory .um-member-directory-header .um-member-directory-header-row .um-member-directory-nav-line .um-member-directory-filters .um-member-directory-filters-a {
241
+ display: flex;
242
+ flex-direction: row;
243
+ justify-content: flex-start;
244
+ align-items: baseline;
245
+ flex-wrap: nowrap;
246
+ cursor: pointer; }
247
+ .um-directory .um-member-directory-header .um-member-directory-header-row .um-member-directory-nav-line .um-member-directory-filters .um-member-directory-filters-a a {
248
+ margin: 0 5px 0 0; }
249
+ .um-directory .um-member-directory-header .um-member-directory-header-row .um-member-directory-nav-line .um-member-directory-filters .um-member-directory-filters-a i.um-faicon-caret-down {
250
+ display: inline; }
251
+ .um-directory .um-member-directory-header .um-member-directory-header-row .um-member-directory-nav-line .um-member-directory-filters .um-member-directory-filters-a i.um-faicon-caret-up {
252
+ display: none; }
253
+ .um-directory .um-member-directory-header .um-member-directory-header-row .um-member-directory-nav-line .um-member-directory-filters .um-member-directory-filters-a.um-member-directory-filters-visible i.um-faicon-caret-down {
254
+ display: none; }
255
+ .um-directory .um-member-directory-header .um-member-directory-header-row .um-member-directory-nav-line .um-member-directory-filters .um-member-directory-filters-a.um-member-directory-filters-visible i.um-faicon-caret-up {
256
+ display: inline; }
257
+ .um-directory .um-member-directory-header .um-member-directory-header-row .um-search {
258
+ margin: 0;
259
+ width: 100%;
260
+ display: grid;
261
+ grid-template-rows: auto 1fr;
262
+ grid-template-columns: repeat(3, 1fr);
263
+ grid-gap: 10px;
264
+ grid-auto-rows: minmax(max-content, auto);
265
+ -ms-grid-template-rows: auto 1fr;
266
+ -ms-grid-template-columns: repeat(3, 1fr);
267
+ -ms-grid-gap: 10px;
268
+ -ms-grid-auto-rows: minmax(max-content, auto);
269
+ align-items: center; }
270
+ .um-directory .um-member-directory-header .um-member-directory-header-row .um-search .um-search-filter {
271
+ display: flex;
272
+ flex-direction: row;
273
+ justify-content: flex-start;
274
+ align-items: baseline;
275
+ flex-wrap: nowrap;
276
+ width: 100%; }
277
+ .um-directory .um-member-directory-header .um-member-directory-header-row .um-search .um-search-filter .select2-container {
278
+ float: left;
279
+ width: 100% !important; }
280
+ .um-directory .um-member-directory-header .um-member-directory-header-row .um-search .um-search-filter .um-s1 {
281
+ width: 100%; }
282
+ .um-directory .um-member-directory-header .um-member-directory-header-row .um-search .um-search-filter.um-slider-filter-type {
283
+ flex-direction: column;
284
+ align-items: stretch; }
285
+ .um-directory .um-member-directory-header .um-member-directory-header-row .um-search .um-search-filter.um-slider-filter-type .um-slider {
286
+ width: calc( 100% - 16px); }
287
+ .um-directory .um-member-directory-header .um-member-directory-header-row .um-search .um-search-filter.um-slider-filter-type .um-slider .ui-slider-range.ui-widget-header {
288
+ background: #44b0ec;
289
+ border: 1px solid #44b0ec !important;
290
+ margin-top: -1px; }
291
+ .um-directory .um-member-directory-header .um-member-directory-header-row .um-search .um-search-filter.um-slider-filter-type .um-slider.ui-slider.ui-slider-horizontal {
292
+ border: 1px solid #ddd !important;
293
+ box-sizing: border-box;
294
+ margin: 4px 8px 0 8px; }
295
+ .um-directory .um-member-directory-header .um-member-directory-header-row .um-search .um-search-filter.um-slider-filter-type .um-slider-range {
296
+ display: flex;
297
+ flex-direction: row;
298
+ justify-content: flex-start;
299
+ align-items: baseline;
300
+ flex-wrap: nowrap;
301
+ margin: 6px 0 0 8px;
302
+ font-size: 0.8em; }
303
+ .um-directory .um-member-directory-header .um-member-directory-header-row .um-search .um-search-filter.um-datepicker-filter-type, .um-directory .um-member-directory-header .um-member-directory-header-row .um-search .um-search-filter.um-timepicker-filter-type {
304
+ display: flex;
305
+ flex-direction: row;
306
+ justify-content: flex-start;
307
+ align-items: baseline;
308
+ flex-wrap: nowrap; }
309
+ .um-directory .um-member-directory-header .um-member-directory-header-row .um-search .um-search-filter.um-datepicker-filter-type input, .um-directory .um-member-directory-header .um-member-directory-header-row .um-search .um-search-filter.um-timepicker-filter-type input {
310
+ width: calc( 50% - 5px);
311
+ margin: 0 5px 0 0;
312
+ box-sizing: border-box;
313
+ -moz-box-sizing: border-box;
314
+ -webkit-box-sizing: border-box; }
315
+ .um-directory .um-member-directory-header .um-member-directory-header-row .um-search .um-search-filter.um-datepicker-filter-type input:nth-child(even), .um-directory .um-member-directory-header .um-member-directory-header-row .um-search .um-search-filter.um-timepicker-filter-type input:nth-child(even) {
316
+ margin: 0 0 0 5px; }
317
+ .um-directory .um-member-directory-header .um-member-directory-header-row .um-search[style*="overflow: hidden;"] .um-search-filter {
318
+ pointer-events: none; }
319
+ .um-directory .um-member-directory-header .um-member-directory-header-row .um-search.um-search-invisible {
320
+ display: none; }
321
+ .um-directory .um-member-directory-header .um-member-directory-header-row .um-filtered-line {
322
+ display: flex;
323
+ flex-direction: row;
324
+ justify-content: flex-start;
325
+ align-items: baseline;
326
+ flex-wrap: wrap;
327
+ margin: 0;
328
+ padding: 0;
329
+ box-sizing: border-box;
330
+ border: none; }
331
+ .um-directory .um-member-directory-header .um-member-directory-header-row .um-filtered-line .um-members-filter-tag {
332
+ display: flex;
333
+ flex-direction: row;
334
+ justify-content: flex-start;
335
+ align-items: center;
336
+ flex-wrap: nowrap;
337
+ margin: 0 10px 5px 0;
338
+ padding: 0 10px;
339
+ border-radius: 3px;
340
+ cursor: default;
341
+ background: #f1f1f1;
342
+ font-size: 13px; }
343
+ .um-directory .um-member-directory-header .um-member-directory-header-row .um-filtered-line .um-members-filter-tag:first-child {
344
+ margin-left: 0; }
345
+ .um-directory .um-member-directory-header .um-member-directory-header-row .um-filtered-line .um-members-filter-tag .um-members-filter-remove {
346
+ float: right;
347
+ display: inline-block;
348
+ margin-left: 10px;
349
+ cursor: pointer;
350
+ font-weight: bold;
351
+ font-size: 20px; }
352
+ .um-directory .um-member-directory-header .um-member-directory-header-row .um-filtered-line .um-members-filter-tag .um-members-filter-remove:hover {
353
+ color: #a00; }
354
+ .um-directory .um-member-directory-header .um-member-directory-header-row .um-filtered-line .um-clear-filters {
355
+ display: none; }
356
+ .um-directory .um-member-directory-header .um-member-directory-header-row .um-filtered-line .um-clear-filters a {
357
+ padding: 3px 10px;
358
+ margin: 0 10px; }
359
+ .um-directory .um-members-wrapper {
360
+ display: flex;
361
+ flex-direction: column;
362
+ justify-content: flex-start;
363
+ align-items: stretch;
364
+ flex-wrap: nowrap;
365
+ width: 100%;
366
+ margin: 0 0 10px 0;
367
+ padding: 0;
368
+ position: relative;
369
+ height: 300px; }
370
+ .um-directory .um-members-wrapper .um-members-intro {
371
+ text-align: center;
372
+ margin: 0 0 10px 0; }
373
+ .um-directory .um-members-wrapper .um-members-total {
374
+ font-size: 20px;
375
+ font-weight: 300; }
376
+ .um-directory .um-members-wrapper .um-members {
377
+ width: 100%;
378
+ margin: 0;
379
+ padding: 0;
380
+ -ms-word-break: break-all;
381
+ word-break: break-word;
382
+ word-wrap: break-word; }
383
+ .um-directory .um-members-wrapper .um-members .um-member {
384
+ border: 1px solid #ddd;
385
+ box-sizing: border-box;
386
+ -moz-box-sizing: border-box;
387
+ -webkit-box-sizing: border-box; }
388
+ .um-directory .um-members-wrapper .um-members .um-member .um-member-photo.radius-1 a img {
389
+ -moz-border-radius: 999px !important;
390
+ -webkit-border-radius: 999px !important;
391
+ border-radius: 999px !important; }
392
+ .um-directory .um-members-wrapper .um-members .um-member .um-member-photo.radius-1.radius-2 a img {
393
+ -moz-border-radius: 4px !important;
394
+ -webkit-border-radius: 4px !important;
395
+ border-radius: 4px !important; }
396
+ .um-directory .um-members-wrapper .um-members .um-member .um-member-photo.radius-1.radius-3 a img {
397
+ -moz-border-radius: 0 !important;
398
+ -webkit-border-radius: 0 !important;
399
+ border-radius: 0 !important; }
400
+ .um-directory .um-members-wrapper .um-members .um-member .um-member-card .um-member-name {
401
+ display: flex;
402
+ flex-direction: row;
403
+ justify-content: flex-start;
404
+ align-items: baseline;
405
+ flex-wrap: nowrap; }
406
+ .um-directory .um-members-wrapper .um-members .um-member .um-member-card .um-member-name a {
407
+ display: flex;
408
+ flex-direction: row;
409
+ justify-content: flex-start;
410
+ align-items: center;
411
+ flex-wrap: nowrap; }
412
+ .um-directory .um-members-wrapper .um-members img {
413
+ display: block;
414
+ overflow: hidden;
415
+ -moz-border-radius: 0;
416
+ -webkit-border-radius: 0;
417
+ border-radius: 0;
418
+ margin: 0;
419
+ padding: 0; }
420
+ .um-directory .um-members-wrapper .um-members.um-members-grid .um-gutter-sizer {
421
+ width: 5%; }
422
+ .um-directory .um-members-wrapper .um-members.um-members-grid .um-member {
423
+ float: left;
424
+ width: 30%;
425
+ background: #fff;
426
+ text-align: center;
427
+ margin-bottom: 40px;
428
+ position: relative; }
429
+ .um-directory .um-members-wrapper .um-members.um-members-grid .um-member .um-member-status {
430
+ display: none;
431
+ background: #999; }
432
+ .um-directory .um-members-wrapper .um-members.um-members-grid .um-member .um-member-status.awaiting_admin_review, .um-directory .um-members-wrapper .um-members.um-members-grid .um-member .um-member-status.inactive, .um-directory .um-members-wrapper .um-members.um-members-grid .um-member .um-member-status.rejected {
433
+ display: block;
434
+ position: absolute;
435
+ top: 0;
436
+ left: 0;
437
+ width: 100%;
438
+ padding: 7px 15px;
439
+ color: #fff;
440
+ z-index: 10;
441
+ font-size: 13px;
442
+ box-sizing: border-box;
443
+ -moz-box-sizing: border-box;
444
+ -webkit-box-sizing: border-box; }
445
+ .um-directory .um-members-wrapper .um-members.um-members-grid .um-member .um-member-status.awaiting_admin_review {
446
+ background: #c74a4a; }
447
+ .um-directory .um-members-wrapper .um-members.um-members-grid .um-member .um-member-photo {
448
+ padding: 40px 0 20px 0;
449
+ text-align: center; }
450
+ .um-directory .um-members-wrapper .um-members.um-members-grid .um-member .um-member-photo a {
451
+ text-decoration: none;
452
+ box-shadow: none !important;
453
+ display: inline !important; }
454
+ .um-directory .um-members-wrapper .um-members.um-members-grid .um-member .um-member-photo a img {
455
+ display: inline !important;
456
+ border: 5px solid #fff;
457
+ background: #fff;
458
+ width: 140px;
459
+ height: 140px;
460
+ float: none !important; }
461
+ .um-directory .um-members-wrapper .um-members.um-members-grid .um-member.awaiting_admin_review, .um-directory .um-members-wrapper .um-members.um-members-grid .um-member.inactive, .um-directory .um-members-wrapper .um-members.um-members-grid .um-member.rejected {
462
+ opacity: 0.7; }
463
+ .um-directory .um-members-wrapper .um-members.um-members-grid .um-member.with-cover .um-member-photo {
464
+ padding-top: 0; }
465
+ .um-directory .um-members-wrapper .um-members.um-members-grid .um-member.with-cover .um-member-photo a img {
466
+ width: 90px;
467
+ height: 90px;
468
+ position: relative;
469
+ top: -35px;
470
+ margin-bottom: -45px;
471
+ float: none;
472
+ opacity: 1; }
473
+ .um-directory .um-members-wrapper .um-members.um-members-grid .um-member .um-member-cover {
474
+ background-color: #eee;
475
+ box-sizing: border-box;
476
+ position: relative; }
477
+ .um-directory .um-members-wrapper .um-members.um-members-grid .um-member .um-member-cover[data-ratio] {
478
+ overflow-y: hidden; }
479
+ .um-directory .um-members-wrapper .um-members.um-members-grid .um-member .um-member-cover .um-member-cover-e {
480
+ text-align: center;
481
+ box-sizing: border-box; }
482
+ .um-directory .um-members-wrapper .um-members.um-members-grid .um-member .um-member-cover .um-member-cover-e img {
483
+ width: 100% !important; }
484
+ .um-directory .um-members-wrapper .um-members.um-members-grid .um-member .um-member-card {
485
+ padding-bottom: 15px; }
486
+ .um-directory .um-members-wrapper .um-members.um-members-grid .um-member .um-member-card.no-photo {
487
+ padding-top: 30px; }
488
+ .um-directory .um-members-wrapper .um-members.um-members-grid .um-member .um-member-card .um-member-name {
489
+ margin: 0 0 4px 0;
490
+ justify-content: center; }
491
+ .um-directory .um-members-wrapper .um-members.um-members-grid .um-member .um-member-card .um-member-name a {
492
+ font-size: 16px;
493
+ line-height: 26px;
494
+ color: #444;
495
+ font-weight: 700; }
496
+ .um-directory .um-members-wrapper .um-members.um-members-grid .um-member .um-member-card .um-members-edit-btn {
497
+ margin: 2px 0;
498
+ height: 40px; }
499
+ .um-directory .um-members-wrapper .um-members.um-members-grid .um-member .um-member-card .um-members-edit-btn a.um-edit-profile-btn {
500
+ padding: 10px 15px !important;
501
+ transition: none !important;
502
+ display: inline-block !important;
503
+ margin: 0 auto !important;
504
+ min-width: 110px;
505
+ width: auto;
506
+ text-align: center;
507
+ font-size: 13px; }
508
+ .um-directory .um-members-wrapper .um-members.um-members-grid .um-member .um-member-card .um-members-edit-btn a.um-edit-profile-btn:before {
509
+ font-family: "FontAwesome";
510
+ margin-right: 8px;
511
+ width: 14px;
512
+ text-align: left;
513
+ display: inline-block;
514
+ font-size: 16px;
515
+ position: relative;
516
+ left: 0;
517
+ top: 1px;
518
+ content: "\f013"; }
519
+ .um-directory .um-members-wrapper .um-members.um-members-grid .um-member .um-member-card .um-member-tagline {
520
+ font-size: 13px;
521
+ line-height: 22px;
522
+ color: #999;
523
+ padding: 0 15px; }
524
+ .um-directory .um-members-wrapper .um-members.um-members-grid .um-member .um-member-card .um-member-meta-main .um-member-meta {
525
+ display: none;
526
+ margin: 20px 15px 0 15px;
527
+ padding: 15px 0;
528
+ border-top: 1px solid #e5e5e5; }
529
+ .um-directory .um-members-wrapper .um-members.um-members-grid .um-member .um-member-card .um-member-meta-main .um-member-meta.no-animate {
530
+ display: block; }
531
+ .um-directory .um-members-wrapper .um-members.um-members-grid .um-member .um-member-card .um-member-meta-main .um-member-meta .um-member-metaline {
532
+ font-size: 13px;
533
+ padding: 12px 0 0 0;
534
+ line-height: 16px;
535
+ vertical-align: middle; }
536
+ .um-directory .um-members-wrapper .um-members.um-members-grid .um-member .um-member-card .um-member-meta-main .um-member-meta .um-member-metaline strong {
537
+ display: block;
538
+ clear: both; }
539
+ .um-directory .um-members-wrapper .um-members.um-members-grid .um-member .um-member-card .um-member-meta-main .um-member-meta .um-member-metaline span {
540
+ display: block;
541
+ text-align: center; }
542
+ .um-directory .um-members-wrapper .um-members.um-members-grid .um-member .um-member-card .um-member-meta-main .um-member-meta .um-member-connect {
543
+ padding-top: 20px; }
544
+ .um-directory .um-members-wrapper .um-members.um-members-grid .um-member .um-member-card .um-member-meta-main .um-member-meta .um-member-connect a {
545
+ display: inline-block;
546
+ width: 40px;
547
+ line-height: 40px;
548
+ height: 40px;
549
+ -moz-border-radius: 999px;
550
+ -webkit-border-radius: 999px;
551
+ border-radius: 999px;
552
+ color: #fff !important;
553
+ opacity: 0.85;
554
+ margin: 0 1px;
555
+ font-size: 22px;
556
+ transition: 0.25s; }
557
+ .um-directory .um-members-wrapper .um-members.um-members-grid .um-member .um-member-card .um-member-meta-main .um-member-meta .um-member-connect a:hover {
558
+ opacity: 1;
559
+ color: #fff; }
560
+ .um-directory .um-members-wrapper .um-members.um-members-grid .um-member .um-member-card .um-member-meta-main .um-member-less {
561
+ display: none; }
562
+ .um-directory .um-members-wrapper .um-members.um-members-grid .um-member .um-member-card .um-member-meta-main .um-member-less a {
563
+ color: #666;
564
+ display: inline-block; }
565
+ .um-directory .um-members-wrapper .um-members.um-members-grid .um-member .um-member-card .um-member-meta-main .um-member-less a i {
566
+ display: block;
567
+ font-size: 32px;
568
+ height: 32px;
569
+ line-height: 32px; }
570
+ .um-directory .um-members-wrapper .um-members.um-members-grid .um-member .um-member-card .um-member-meta-main .um-member-more a {
571
+ color: #666;
572
+ display: inline-block; }
573
+ .um-directory .um-members-wrapper .um-members.um-members-grid .um-member .um-member-card .um-member-meta-main .um-member-more a i {
574
+ display: block;
575
+ font-size: 32px;
576
+ height: 32px;
577
+ line-height: 32px; }
578
+ .um-directory .um-members-wrapper .um-members.um-members-list {
579
+ display: grid;
580
+ grid-template-rows: auto 1fr;
581
+ grid-template-columns: repeat(1, 1fr);
582
+ grid-gap: 10px;
583
+ grid-auto-rows: minmax(max-content, auto);
584
+ -ms-grid-template-rows: auto 1fr;
585
+ -ms-grid-template-columns: repeat(1, 1fr);
586
+ -ms-grid-gap: 10px;
587
+ -ms-grid-auto-rows: minmax(max-content, auto);
588
+ align-items: center; }
589
+ .um-directory .um-members-wrapper .um-members.um-members-list .um-member {
590
+ display: flex;
591
+ flex-direction: column;
592
+ justify-content: flex-start;
593
+ align-items: stretch;
594
+ flex-wrap: nowrap;
595
+ width: 100%;
596
+ padding: 15px;
597
+ margin: 0;
598
+ background: none;
599
+ box-sizing: border-box;
600
+ -moz-box-sizing: border-box;
601
+ -webkit-box-sizing: border-box; }
602
+ .um-directory .um-members-wrapper .um-members.um-members-list .um-member .um-member-status {
603
+ display: none;
604
+ background: #999; }
605
+ .um-directory .um-members-wrapper .um-members.um-members-list .um-member .um-member-status.awaiting_admin_review, .um-directory .um-members-wrapper .um-members.um-members-list .um-member .um-member-status.inactive, .um-directory .um-members-wrapper .um-members.um-members-list .um-member .um-member-status.rejected {
606
+ display: block;
607
+ width: 100%;
608
+ padding: 7px 15px;
609
+ margin-bottom: 10px;
610
+ color: #fff;
611
+ font-size: 13px;
612
+ box-sizing: border-box;
613
+ -moz-box-sizing: border-box;
614
+ -webkit-box-sizing: border-box; }
615
+ .um-directory .um-members-wrapper .um-members.um-members-list .um-member .um-member-status.awaiting_admin_review {
616
+ background: #c74a4a; }
617
+ .um-directory .um-members-wrapper .um-members.um-members-list .um-member .um-member-card-container {
618
+ display: flex;
619
+ flex-direction: row;
620
+ justify-content: flex-start;
621
+ align-items: flex-start;
622
+ flex-wrap: nowrap;
623
+ width: 100%;
624
+ margin: 0 0 10px 0;
625
+ padding: 0; }
626
+ .um-directory .um-members-wrapper .um-members.um-members-list .um-member .um-member-card-container .um-member-photo {
627
+ width: 100px;
628
+ margin: 0 15px 0 0;
629
+ padding: 0; }
630
+ .um-directory .um-members-wrapper .um-members.um-members-list .um-member .um-member-card-container .um-member-photo a {
631
+ width: 100px;
632
+ height: 100px;
633
+ display: block; }
634
+ .um-directory .um-members-wrapper .um-members.um-members-list .um-member .um-member-card-container .um-member-photo a img {
635
+ width: 100px;
636
+ height: 100px;
637
+ position: relative;
638
+ top: 0;
639
+ margin: 0;
640
+ margin-bottom: 0;
641
+ border: none; }
642
+ .um-directory .um-members-wrapper .um-members.um-members-list .um-member .um-member-card-container .um-member-card {
643
+ display: flex;
644
+ flex-direction: row;
645
+ justify-content: flex-start;
646
+ align-items: flex-start;
647
+ flex-wrap: nowrap;
648
+ width: calc( 100% - 115px);
649
+ padding: 0;
650
+ margin: 0;
651
+ box-sizing: border-box;
652
+ -moz-box-sizing: border-box;
653
+ -webkit-box-sizing: border-box; }
654
+ .um-directory .um-members-wrapper .um-members.um-members-list .um-member .um-member-card-container .um-member-card .um-member-card-content {
655
+ display: flex;
656
+ flex-direction: column;
657
+ justify-content: flex-start;
658
+ align-items: stretch;
659
+ flex-wrap: nowrap;
660
+ width: calc( 100% - 30px);
661
+ margin: 0 10px 0 0; }
662
+ .um-directory .um-members-wrapper .um-members.um-members-list .um-member .um-member-card-container .um-member-card .um-member-card-content .um-member-card-header {
663
+ width: 100%; }
664
+ .um-directory .um-members-wrapper .um-members.um-members-list .um-member .um-member-card-container .um-member-card .um-member-card-content .um-member-card-header .um-member-name {
665
+ margin: 0 0 4px 0; }
666
+ .um-directory .um-members-wrapper .um-members.um-members-list .um-member .um-member-card-container .um-member-card .um-member-card-content .um-member-card-header .um-member-name a {
667
+ font-size: 16px;
668
+ line-height: 26px;
669
+ color: #444;
670
+ font-weight: 700; }
671
+ .um-directory .um-members-wrapper .um-members.um-members-list .um-member .um-member-card-container .um-member-card .um-member-card-content .um-member-tagline {
672
+ display: flex;
673
+ flex-direction: row;
674
+ justify-content: flex-start;
675
+ align-items: baseline;
676
+ flex-wrap: wrap;
677
+ width: 100%;
678
+ font-size: 13px;
679
+ color: #999;
680
+ padding: 0;
681
+ box-sizing: border-box; }
682
+ .um-directory .um-members-wrapper .um-members.um-members-list .um-member .um-member-card-container .um-member-card .um-member-card-content .um-member-meta-main {
683
+ width: 100%;
684
+ padding: 0;
685
+ box-sizing: border-box;
686
+ display: none; }
687
+ .um-directory .um-members-wrapper .um-members.um-members-list .um-member .um-member-card-container .um-member-card .um-member-card-content .um-member-meta-main.no-animate {
688
+ display: block; }
689
+ .um-directory .um-members-wrapper .um-members.um-members-list .um-member .um-member-card-container .um-member-card .um-member-card-content .um-member-meta-main .um-member-meta {
690
+ float: left;
691
+ width: 100%;
692
+ display: block;
693
+ margin: 10px 0 0 0;
694
+ box-sizing: border-box;
695
+ border: none; }
696
+ .um-directory .um-members-wrapper .um-members.um-members-list .um-member .um-member-card-container .um-member-card .um-member-card-content .um-member-meta-main .um-member-meta .um-member-metaline {
697
+ display: flex;
698
+ flex-direction: row;
699
+ justify-content: flex-start;
700
+ align-items: center;
701
+ flex-wrap: wrap;
702
+ font-size: 13px;
703
+ padding: 12px 0 0 0;
704
+ line-height: 16px;
705
+ width: 100%; }
706
+ .um-directory .um-members-wrapper .um-members.um-members-list .um-member .um-member-card-container .um-member-card .um-member-card-content .um-member-meta-main .um-member-meta .um-member-connect {
707
+ padding-top: 10px; }
708
+ .um-directory .um-members-wrapper .um-members.um-members-list .um-member .um-member-card-container .um-member-card .um-member-card-content .um-member-meta-main .um-member-meta .um-member-connect a {
709
+ display: inline-block;
710
+ width: 40px;
711
+ line-height: 40px;
712
+ height: 40px;
713
+ -moz-border-radius: 999px;
714
+ -webkit-border-radius: 999px;
715
+ border-radius: 999px;
716
+ color: #fff !important;
717
+ opacity: 0.85;
718
+ margin: 0 1px;
719
+ font-size: 22px;
720
+ transition: 0.25s;
721
+ text-align: center; }
722
+ .um-directory .um-members-wrapper .um-members.um-members-list .um-member .um-member-card-container .um-member-card .um-member-card-content .um-member-meta-main .um-member-meta .um-member-connect a:hover {
723
+ opacity: 1;
724
+ color: #fff; }
725
+ .um-directory .um-members-wrapper .um-members.um-members-list .um-member .um-member-card-container .um-member-card .um-member-card-actions {
726
+ display: flex;
727
+ flex-direction: column;
728
+ justify-content: flex-start;
729
+ align-items: flex-end;
730
+ flex-wrap: nowrap;
731
+ width: 20px;
732
+ text-align: right;
733
+ padding: 0; }
734
+ .um-directory .um-members-wrapper .um-members.um-members-list .um-member .um-member-card-container .um-member-card .um-member-card-actions .um-member-cog {
735
+ position: relative; }
736
+ .um-directory .um-members-wrapper .um-members.um-members-list .um-member .um-member-card-container .um-member-card .um-member-card-actions .um-member-cog .um-member-actions-a {
737
+ line-height: 1;
738
+ display: block;
739
+ color: #666; }
740
+ .um-directory .um-members-wrapper .um-members.um-members-list .um-member .um-member-card-container .um-member-card .um-member-card-actions .um-member-cog .um-member-actions-a i {
741
+ display: block;
742
+ font-size: 20px;
743
+ line-height: 1; }
744
+ .um-directory .um-members-wrapper .um-members.um-members-list .um-member .um-member-card-container .um-member-card .um-member-card-actions .um-member-cog .um-new-dropdown {
745
+ width: 180px;
746
+ right: 0;
747
+ text-align: left; }
748
+ .um-directory .um-members-wrapper .um-members.um-members-list .um-member .um-member-card-container .um-member-card .um-member-card-actions a {
749
+ box-sizing: border-box; }
750
+ .um-directory .um-members-wrapper .um-members.um-members-list .um-member .um-member-card-footer {
751
+ display: flex;
752
+ flex-direction: row;
753
+ justify-content: flex-end;
754
+ align-items: center;
755
+ flex-wrap: nowrap;
756
+ width: 100%; }
757
+ .um-directory .um-members-wrapper .um-members.um-members-list .um-member .um-member-card-footer .um-member-card-footer-buttons {
758
+ display: flex;
759
+ flex-direction: row;
760
+ justify-content: flex-start;
761
+ align-items: baseline;
762
+ flex-wrap: nowrap;
763
+ width: calc( 100% - 145px);
764
+ margin: 0 10px 0 0; }
765
+ .um-directory .um-members-wrapper .um-members.um-members-list .um-member .um-member-card-footer .um-member-card-footer-buttons .um-members-list-footer-button-wrapper {
766
+ display: flex;
767
+ flex-direction: row;
768
+ justify-content: flex-start;
769
+ align-items: baseline;
770
+ flex-wrap: nowrap;
771
+ margin: 0; }
772
+ .um-directory .um-members-wrapper .um-members.um-members-list .um-member .um-member-card-footer .um-member-card-footer-buttons > :not(:last-child) {
773
+ margin: 0 10px 0 0; }
774
+ .um-directory .um-members-wrapper .um-members.um-members-list .um-member .um-member-card-footer .um-member-card-reveal-buttons {
775
+ width: 20px;
776
+ text-align: right; }
777
+ .um-directory .um-members-wrapper .um-members.um-members-list .um-member .um-member-card-footer .um-member-card-reveal-buttons .um-member-more {
778
+ display: flex;
779
+ flex-direction: column;
780
+ justify-content: flex-start;
781
+ align-items: baseline;
782
+ flex-wrap: nowrap; }
783
+ .um-directory .um-members-wrapper .um-members.um-members-list .um-member .um-member-card-footer .um-member-card-reveal-buttons .um-member-more a {
784
+ color: #666;
785
+ display: inline-block; }
786
+ .um-directory .um-members-wrapper .um-members.um-members-list .um-member .um-member-card-footer .um-member-card-reveal-buttons .um-member-more a i {
787
+ display: block;
788
+ font-size: 28px;
789
+ height: 28px;
790
+ line-height: 28px; }
791
+ .um-directory .um-members-wrapper .um-members.um-members-list .um-member .um-member-card-footer .um-member-card-reveal-buttons .um-member-less {
792
+ display: flex;
793
+ flex-direction: column;
794
+ justify-content: flex-start;
795
+ align-items: baseline;
796
+ flex-wrap: nowrap;
797
+ display: none; }
798
+ .um-directory .um-members-wrapper .um-members.um-members-list .um-member .um-member-card-footer .um-member-card-reveal-buttons .um-member-less a {
799
+ color: #666;
800
+ display: inline-block; }
801
+ .um-directory .um-members-wrapper .um-members.um-members-list .um-member .um-member-card-footer .um-member-card-reveal-buttons .um-member-less a i {
802
+ display: block;
803
+ font-size: 28px;
804
+ height: 28px;
805
+ line-height: 28px; }
806
+ .um-directory .um-members-wrapper .um-members .um-members-none {
807
+ text-align: center;
808
+ font-size: 18px; }
809
+ .um-directory .um-members-pagination-box {
810
+ width: 100%;
811
+ float: left;
812
+ margin: 0 0 10px 0;
813
+ padding: 0; }
814
+ .um-directory .um-members-pagination-box .um-members-pagi {
815
+ display: flex;
816
+ flex-direction: row;
817
+ justify-content: center;
818
+ align-items: baseline;
819
+ flex-wrap: nowrap;
820
+ width: 100%;
821
+ margin: 0;
822
+ padding: 0;
823
+ font-size: 15px; }
824
+ .um-directory .um-members-pagination-box .um-members-pagi .pagi {
825
+ cursor: pointer;
826
+ display: inline-block;
827
+ width: auto;
828
+ height: 34px;
829
+ line-height: 34px;
830
+ transition: all .2s linear;
831
+ padding: 0 14px;
832
+ color: #666 !important;
833
+ font-weight: normal; }
834
+ .um-directory .um-members-pagination-box .um-members-pagi .pagi.pagi-arrow {
835
+ line-height: 38px; }
836
+ .um-directory .um-members-pagination-box .um-members-pagi .pagi.pagi-arrow i:before {
837
+ font-size: 20px;
838
+ vertical-align: middle !important;
839
+ height: 34px;
840
+ line-height: 34px;
841
+ top: -2px;
842
+ position: relative; }
843
+ .um-directory .um-members-pagination-box .um-members-pagi .pagi.current {
844
+ cursor: default;
845
+ color: #fff !important; }
846
+ .um-directory .um-members-pagination-box .um-members-pagi .pagi.current:hover {
847
+ color: #fff !important; }
848
+ .um-directory .um-members-pagination-box .um-members-pagi .pagi.disabled {
849
+ cursor: default;
850
+ opacity: .4; }
851
+ .um-directory .um-members-pagination-box .um-members-pagi .pagi.none {
852
+ color: #aaa !important; }
853
+ .um-directory .um-members-pagination-box .um-members-pagidrop {
854
+ width: 100%;
855
+ float: left;
856
+ margin: 0;
857
+ text-align: center;
858
+ padding: 5px 0;
859
+ font-size: 15px; }
860
+ .um-directory.um-loaded .um-members-wrapper {
861
+ height: auto; }
862
+ .um-directory[data-view_type="list"] .um-member-directory-header .um-member-directory-header-row .um-member-directory-view-type .um-member-directory-view-type-a[data-type="list"] {
863
+ display: block; }
864
+ .um-directory[data-view_type="grid"] .um-member-directory-header .um-member-directory-header-row .um-member-directory-view-type .um-member-directory-view-type-a[data-type="grid"] {
865
+ display: block; }
866
+ .um-directory[data-view_type="map"] .um-member-directory-header .um-member-directory-header-row .um-member-directory-view-type .um-member-directory-view-type-a[data-type="map"] {
867
+ display: block; }
868
+ .um-directory.uimob340 .um-member-directory-header .um-member-directory-header-row .um-member-directory-search-line {
869
+ width: 100%; }
870
+ .um-directory.uimob340 .um-member-directory-header .um-member-directory-header-row.um-member-directory-search-row {
871
+ justify-content: flex-start; }
872
+ .um-directory.uimob340 .um-member-directory-header .um-member-directory-header-row .um-member-directory-nav-line {
873
+ flex-wrap: wrap; }
874
+ .um-directory.uimob340 .um-member-directory-header .um-member-directory-header-row .um-member-directory-nav-line .um-member-directory-view-type {
875
+ width: 20px;
876
+ font-size: 20px;
877
+ line-height: 20px;
878
+ margin: 0 2px 0 0; }
879
+ .um-directory.uimob340 .um-member-directory-header .um-member-directory-header-row .um-member-directory-nav-line .um-member-directory-sorting {
880
+ width: calc( 100% - 25px);
881
+ justify-content: flex-end; }
882
+ .um-directory.uimob340 .um-member-directory-header .um-member-directory-header-row .um-member-directory-nav-line .um-member-directory-sorting .um-new-dropdown {
883
+ right: 0;
884
+ left: auto; }
885
+ .um-directory.uimob340 .um-member-directory-header .um-member-directory-header-row .um-member-directory-nav-line .um-member-directory-filters {
886
+ flex: none;
887
+ width: 100%; }
888
+ .um-directory.uimob340 .um-member-directory-header .um-search {
889
+ grid-template-columns: repeat(1, 1fr); }
890
+ .um-directory.uimob340 .um-members-wrapper .um-members .um-member {
891
+ width: 100%; }
892
+ .um-directory.uimob340 .um-members-wrapper .um-members.um-members-grid .um-gutter-sizer {
893
+ width: 0; }
894
+ .um-directory.uimob340 .um-members-wrapper .um-members.um-members-list .um-member {
895
+ padding: 10px; }
896
+ .um-directory.uimob340 .um-members-wrapper .um-members.um-members-list .um-member .um-member-photo {
897
+ width: 50px;
898
+ margin: 0 10px 0 0; }
899
+ .um-directory.uimob340 .um-members-wrapper .um-members.um-members-list .um-member .um-member-photo a {
900
+ width: 50px;
901
+ height: 50px; }
902
+ .um-directory.uimob340 .um-members-wrapper .um-members.um-members-list .um-member .um-member-photo a img {
903
+ width: 50px;
904
+ height: 50px; }
905
+ .um-directory.uimob340 .um-members-wrapper .um-members.um-members-list .um-member .um-member-card {
906
+ width: calc( 100% - 60px); }
907
+ .um-directory.uimob340 .um-members-wrapper .um-members.um-members-list .um-member .um-member-card-footer {
908
+ align-items: flex-start; }
909
+ .um-directory.uimob340 .um-members-wrapper .um-members.um-members-list .um-member .um-member-card-footer .um-member-card-footer-buttons {
910
+ display: flex;
911
+ flex-direction: column;
912
+ justify-content: flex-start;
913
+ align-items: stretch;
914
+ flex-wrap: nowrap;
915
+ width: calc( 100% - 90px);
916
+ margin: 0 10px 0 0; }
917
+ .um-directory.uimob340 .um-members-wrapper .um-members.um-members-list .um-member .um-member-card-footer .um-member-card-footer-buttons .um-members-list-footer-button-wrapper {
918
+ margin: 0 0 5px 0; }
919
+ .um-directory.uimob340 .um-members-wrapper .um-members.um-members-list .um-member .um-member-card-footer .um-member-card-footer-buttons .um-members-list-footer-button-wrapper a.um-button {
920
+ width: 100% !important; }
921
+ .um-directory.uimob340 .um-members-pagination-box .um-members-pagi {
922
+ display: none; }
923
+ .um-directory.uimob500 .um-member-directory-header .um-member-directory-header-row .um-member-directory-search-line {
924
+ width: 100%; }
925
+ .um-directory.uimob500 .um-member-directory-header .um-member-directory-header-row.um-member-directory-search-row {
926
+ justify-content: flex-start; }
927
+ .um-directory.uimob500 .um-member-directory-header .um-member-directory-header-row .um-member-directory-nav-line .um-member-directory-view-type {
928
+ width: 20px;
929
+ font-size: 20px;
930
+ line-height: 20px;
931
+ margin: 0 5px 0 0; }
932
+ .um-directory.uimob500 .um-member-directory-header .um-search {
933
+ grid-template-columns: repeat(1, 1fr); }
934
+ .um-directory.uimob500 .um-members-wrapper .um-members .um-member {
935
+ width: 100%; }
936
+ .um-directory.uimob500 .um-members-wrapper .um-members.um-members-grid .um-gutter-sizer {
937
+ width: 0; }
938
+ .um-directory.uimob500 .um-members-wrapper .um-members.um-members-list .um-member .um-member-photo {
939
+ width: 70px;
940
+ margin: 0 10px 0 0; }
941
+ .um-directory.uimob500 .um-members-wrapper .um-members.um-members-list .um-member .um-member-photo a {
942
+ width: 70px;
943
+ height: 70px; }
944
+ .um-directory.uimob500 .um-members-wrapper .um-members.um-members-list .um-member .um-member-photo a img {
945
+ width: 70px;
946
+ height: 70px; }
947
+ .um-directory.uimob500 .um-members-wrapper .um-members.um-members-list .um-member .um-member-card {
948
+ width: calc( 100% - 80px); }
949
+ .um-directory.uimob500 .um-members-wrapper .um-members.um-members-list .um-member .um-member-card-footer {
950
+ align-items: flex-start; }
951
+ .um-directory.uimob500 .um-members-wrapper .um-members.um-members-list .um-member .um-member-card-footer .um-member-card-footer-buttons {
952
+ flex-wrap: wrap;
953
+ width: calc( 100% - 110px);
954
+ margin: 0 10px 0 0; }
955
+ .um-directory.uimob500 .um-members-wrapper .um-members.um-members-list .um-member .um-member-card-footer .um-member-card-footer-buttons .um-members-list-footer-button-wrapper {
956
+ margin: 0 10px 5px 0; }
957
+ .um-directory.uimob500 .um-members-pagination-box .um-members-pagi {
958
+ display: none; }
959
+ .um-directory.uimob800 .um-member-directory-header .um-member-directory-header-row .um-member-directory-search-line {
960
+ width: 100%; }
961
+ .um-directory.uimob800 .um-member-directory-header .um-search {
962
+ grid-template-columns: repeat(2, 1fr); }
963
+ .um-directory.uimob800 .um-members-wrapper .um-members.um-members-grid .um-gutter-sizer {
964
+ width: 4%; }
965
+ .um-directory.uimob800 .um-members-wrapper .um-members.um-members-grid .um-member {
966
+ width: 48%; }
967
+ .um-directory.uimob800 .um-members-wrapper .um-members.um-members-list .um-member .um-member-photo {
968
+ width: 80px;
969
+ margin: 0 10px 0 0; }
970
+ .um-directory.uimob800 .um-members-wrapper .um-members.um-members-list .um-member .um-member-photo a {
971
+ width: 80px;
972
+ height: 80px; }
973
+ .um-directory.uimob800 .um-members-wrapper .um-members.um-members-list .um-member .um-member-photo a img {
974
+ width: 80px;
975
+ height: 80px; }
976
+ .um-directory.uimob800 .um-members-wrapper .um-members.um-members-list .um-member .um-member-card {
977
+ width: calc( 100% - 90px); }
978
+ .um-directory.uimob800 .um-members-wrapper .um-members.um-members-list .um-member .um-member-card-footer {
979
+ align-items: flex-start; }
980
+ .um-directory.uimob800 .um-members-wrapper .um-members.um-members-list .um-member .um-member-card-footer .um-member-card-footer-buttons {
981
+ flex-wrap: wrap;
982
+ width: calc( 100% - 120px);
983
+ margin: 0 10px 0 0; }
984
+ .um-directory.uimob800 .um-members-wrapper .um-members.um-members-list .um-member .um-member-card-footer .um-member-card-footer-buttons .um-members-list-footer-button-wrapper {
985
+ margin: 0 10px 5px 0; }
986
+ .um-directory.uimob960 .um-member-directory-header .um-search {
987
+ grid-template-columns: repeat(2, 1fr); }
988
+ .um-directory.uimob960 .um-members-wrapper .um-members.um-members-grid .um-gutter-sizer {
989
+ width: 4%; }
990
+ .um-directory.uimob960 .um-members-wrapper .um-members.um-members-grid .um-member {
991
+ width: 48%; }
992
+
993
+ .select2-container .select2-results li.select2-results__option[aria-disabled=true] {
994
+ display: none; }
assets/css/um-misc.css CHANGED
@@ -62,6 +62,16 @@
62
  line-height: 36px;
63
  height: 36px;
64
  font-size: 20px;
 
 
 
 
 
 
 
 
 
 
65
  }
66
 
67
  /* pop effect */
62
  line-height: 36px;
63
  height: 36px;
64
  font-size: 20px;
65
+ border-radius: 999px;
66
+ color: #fff !important;
67
+ opacity: 0.85;
68
+ margin: 0 1px;
69
+ transition: 0.25s;
70
+ display: inline-block;
71
+ }
72
+
73
+ .um-profile-connect.um-member-connect a:hover {
74
+ opacity: 1;
75
  }
76
 
77
  /* pop effect */
assets/css/um-old-default.css CHANGED
@@ -89,6 +89,10 @@ div.uimob800 .um-account-side li a.current:hover
89
  color: #ffffff;
90
  }
91
 
 
 
 
 
92
  .um .um-button.um-alt,
93
  .um input[type=submit].um-button.um-alt {
94
  background: #eeeeee;
@@ -104,6 +108,11 @@ div.uimob800 .um-account-side li a.current:hover
104
  color: #666666;
105
  }
106
 
 
 
 
 
 
107
  .um .um-tip {
108
  color: #cccccc;
109
  }
@@ -128,7 +137,7 @@ div.uimob800 .um-account-side li a.current:hover
128
  .select2-drop-active,
129
  .select2-drop.select2-drop-above
130
  {
131
- border: 2px solid #ddd !important;
132
  }
133
 
134
  .um .um-form .select2-container-multi .select2-choices .select2-search-field input[type=text] {
@@ -142,7 +151,7 @@ div.uimob800 .um-account-side li a.current:hover
142
  .um .um-form .um-datepicker.picker__input.picker__input--active,
143
  .um .um-form .um-datepicker.picker__input.picker__input--target,
144
  .um .um-form textarea:focus {
145
- border: 2px solid #bbb !important;
146
  }
147
 
148
  .um .um-form input[type=text],
89
  color: #ffffff;
90
  }
91
 
92
+ .um .um-button:before {
93
+ color: #ffffff;
94
+ }
95
+
96
  .um .um-button.um-alt,
97
  .um input[type=submit].um-button.um-alt {
98
  background: #eeeeee;
108
  color: #666666;
109
  }
110
 
111
+ .um .um-button.um-alt:before,
112
+ .um input[type=submit].um-button.um-alt:before {
113
+ color: #666666;
114
+ }
115
+
116
  .um .um-tip {
117
  color: #cccccc;
118
  }
137
  .select2-drop-active,
138
  .select2-drop.select2-drop-above
139
  {
140
+ border: 1px solid #ddd !important;
141
  }
142
 
143
  .um .um-form .select2-container-multi .select2-choices .select2-search-field input[type=text] {
151
  .um .um-form .um-datepicker.picker__input.picker__input--active,
152
  .um .um-form .um-datepicker.picker__input.picker__input--target,
153
  .um .um-form textarea:focus {
154
+ border: 1px solid #bbb !important;
155
  }
156
 
157
  .um .um-form input[type=text],
assets/css/um-profile.css CHANGED
@@ -143,7 +143,7 @@
143
  height: 30px;
144
  line-height: 30px;
145
  z-index: 66;
146
- padding-right: 10px;
147
  }
148
 
149
  .um-profile-edit i {
@@ -194,19 +194,24 @@
194
  float: left;
195
  position: relative;
196
  width:200px;
 
 
197
  }
198
 
199
  .um-profile-photo a.um-profile-photo-img {
200
  float: left;
201
  position: absolute;
202
  background: #fff;
203
- padding: 5px;
204
- left: 30px;
 
 
 
205
  }
206
 
207
  .um-profile-photo a.um-profile-photo-img img {
208
  width: 100%;
209
- height: 100%;
210
  }
211
 
212
  .um-profile-photo-overlay {
143
  height: 30px;
144
  line-height: 30px;
145
  z-index: 66;
146
+ margin-right: 10px;
147
  }
148
 
149
  .um-profile-edit i {
194
  float: left;
195
  position: relative;
196
  width:200px;
197
+ margin: 0 0 0 30px;
198
+ box-sizing: border-box;
199
  }
200
 
201
  .um-profile-photo a.um-profile-photo-img {
202
  float: left;
203
  position: absolute;
204
  background: #fff;
205
+ border-radius: 100%;
206
+ border: 5px solid #fff;
207
+ border-bottom: 5px solid #fff !important;/* rewrite ".um-header a" style */
208
+ overflow: hidden;
209
+ left: 0;
210
  }
211
 
212
  .um-profile-photo a.um-profile-photo-img img {
213
  width: 100%;
214
+ height: auto;
215
  }
216
 
217
  .um-profile-photo-overlay {
assets/css/um-responsive.css CHANGED
@@ -152,6 +152,7 @@ div.uimob340 .um-profile-photo {
152
  position: absolute;
153
  top: -40px;
154
  left: 0;
 
155
  }
156
 
157
  div.uimob340 .um-header.no-cover .um-profile-photo {
@@ -214,27 +215,6 @@ div.uimob340 .um-field-half {
214
  width: 100%;
215
  }
216
 
217
- div.uimob340 .um-search {
218
- padding: 20px 0 !important;
219
- width: 100% !important;
220
- box-sizing: border-box;
221
- }
222
-
223
- div.uimob340 .um-search .um-search-filter {
224
- width: 100% !important;
225
- float: none !important;
226
- padding: 0 0 15px 0 !important;
227
- }
228
-
229
- div.uimob340 .um-search .um-search-submit .um-button {
230
- display: block !important;
231
- min-width: 100% !important;
232
- margin: 0 0 15px 0 !important;
233
- }
234
-
235
- div.uimob340 .um-member {width: 100%}
236
- div.uimob340 .um-gutter-sizer {width: 0px}
237
-
238
  div.uimob340 .um-account-main {
239
  float: none;
240
  width: 100%;
@@ -374,6 +354,7 @@ div.uimob500 .um-profile-photo {
374
  position: absolute;
375
  top: -40px;
376
  left: 0;
 
377
  }
378
 
379
  div.uimob500 .um-header.no-cover .um-profile-photo {
@@ -436,27 +417,6 @@ div.uimob500 .um-field-half {
436
  width: 100%;
437
  }
438
 
439
- div.uimob500 .um-search {
440
- padding: 20px 0 !important;
441
- width: 100% !important;
442
- box-sizing: border-box;
443
- }
444
-
445
- div.uimob500 .um-search .um-search-filter {
446
- width: 100% !important;
447
- float: none !important;
448
- padding: 0 0 15px 0 !important;
449
- }
450
-
451
- div.uimob500 .um-search .um-search-submit .um-button {
452
- display: block !important;
453
- min-width: 100% !important;
454
- margin: 0 0 15px 0 !important;
455
- }
456
-
457
- div.uimob500 .um-member {width: 100%}
458
- div.uimob500 .um-gutter-sizer {width: 0px}
459
-
460
  div.uimob500 .um-account-main {
461
  float: none;
462
  width: 100%;
@@ -575,8 +535,12 @@ div.uimob800 .um-account-meta img {
575
  height: auto;
576
  }
577
 
 
 
 
 
578
  div.uimob800 .um-profile-photo {
579
- width: 200px !important;
580
  }
581
 
582
  div.uimob800 .um-profile-photo a.um-profile-photo-img {
@@ -598,35 +562,6 @@ div.uimob800 .um-cover-overlay
598
  padding: 0;
599
  }
600
 
601
- div.uimob800 .um-search {
602
- padding: 20px 0 !important;
603
- width: 100% !important;
604
- box-sizing: border-box;
605
- }
606
-
607
- div.uimob800 .um-search .um-search-filter {
608
- width: 48% !important;
609
- float: left !important;
610
- padding: 0 0 15px 0 !important;
611
- }
612
-
613
- div.uimob800 .um-search .um-search-filter-2 {
614
- margin-left: 4%;
615
- }
616
-
617
- div.uimob800 .um-search .um-search-submit .um-button {
618
- display: block !important;
619
- width: 48% !important;
620
- margin: 0 0 15px 0 !important;
621
- box-sizing: border-box;
622
- float: left;
623
- }
624
-
625
- div.uimob800 .um-search .um-search-submit .um-button.um-alt {float: right}
626
-
627
- div.uimob800 .um-member {width: 48%}
628
- div.uimob800 .um-gutter-sizer {width: 4%}
629
-
630
  /********************************************/
631
 
632
  /**
@@ -635,35 +570,6 @@ div.uimob800 .um-gutter-sizer {width: 4%}
635
 
636
  /********************************************/
637
 
638
- div.uimob960 .um-search {
639
- padding: 20px 0 !important;
640
- width: 100% !important;
641
- box-sizing: border-box;
642
- }
643
-
644
- div.uimob960 .um-search .um-search-filter {
645
- width: 48% !important;
646
- float: left !important;
647
- padding: 0 0 15px 0 !important;
648
- }
649
-
650
- div.uimob960 .um-search .um-search-filter-2 {
651
- margin-left: 4%;
652
- }
653
-
654
- div.uimob960 .um-search .um-search-submit .um-button {
655
- display: block !important;
656
- width: 48% !important;
657
- margin: 0 0 15px 0 !important;
658
- box-sizing: border-box;
659
- float: left;
660
- }
661
-
662
- div.uimob960 .um-search .um-search-submit .um-button.um-alt {float: right}
663
-
664
- div.uimob960 .um-member {width: 48%}
665
- div.uimob960 .um-gutter-sizer {width: 4%}
666
-
667
  div.uimob960 .um-profile-photo {
668
  width: 200px !important;
669
  }
152
  position: absolute;
153
  top: -40px;
154
  left: 0;
155
+ margin: 0;
156
  }
157
 
158
  div.uimob340 .um-header.no-cover .um-profile-photo {
215
  width: 100%;
216
  }
217
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
218
  div.uimob340 .um-account-main {
219
  float: none;
220
  width: 100%;
354
  position: absolute;
355
  top: -40px;
356
  left: 0;
357
+ margin: 0;
358
  }
359
 
360
  div.uimob500 .um-header.no-cover .um-profile-photo {
417
  width: 100%;
418
  }
419
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
420
  div.uimob500 .um-account-main {
421
  float: none;
422
  width: 100%;
535
  height: auto;
536
  }
537
 
538
+ div.uimob800 .um-account-meta img {
539
+ width: 100%;
540
+ }
541
+
542
  div.uimob800 .um-profile-photo {
543
+ width: 150px !important;
544
  }
545
 
546
  div.uimob800 .um-profile-photo a.um-profile-photo-img {
562
  padding: 0;
563
  }
564
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
565
  /********************************************/
566
 
567
  /**
570
 
571
  /********************************************/
572
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
573
  div.uimob960 .um-profile-photo {
574
  width: 200px !important;
575
  }
assets/css/um-styles.css CHANGED
@@ -60,9 +60,9 @@
60
  }
61
  .um.um-in-admin .um-tip {display: none !important}
62
 
63
- .um input,
64
- .um select,
65
- .um textarea{
66
  font-size: 15px;
67
  }
68
 
@@ -175,6 +175,11 @@ p.um-notice {
175
  position: relative;
176
  }
177
 
 
 
 
 
 
178
  p.um-notice i {
179
  position: absolute;
180
  right: 14px;
@@ -201,6 +206,11 @@ p.um-notice.warning {
201
  padding: 8px 15px !important;
202
  }
203
 
 
 
 
 
 
204
  /*
205
  - Errors
206
  */
@@ -227,7 +237,7 @@ p.um-notice.warning {
227
  top: -17px;
228
  left: 10px;
229
  position: absolute;
230
- z-index: 900;
231
  color: #C74A4A;
232
  font-size: 28px;
233
  line-height: 1em !important;
@@ -464,8 +474,8 @@ p.um-notice.warning {
464
  position: relative;
465
  }
466
 
467
- .um-field-checkbox,
468
- .um-field-radio {
469
  display: block;
470
  margin: 8px 0;
471
  position: relative;
@@ -705,7 +715,13 @@ a.um-link-alt:hover {text-decoration: underline !important;}
705
  margin: 0 !important;
706
  }
707
 
708
- .um-dropdown li a {
 
 
 
 
 
 
709
  display: block;
710
  padding: 8px 12px;
711
  color: #666;
@@ -718,7 +734,7 @@ a.um-link-alt:hover {text-decoration: underline !important;}
718
  padding: 12px;
719
  }
720
 
721
- .um-dropdown li a:hover {
722
 
723
  }
724
 
@@ -728,7 +744,6 @@ a.um-link-alt:hover {text-decoration: underline !important;}
728
 
729
  .um-dropdown-arr {
730
  position: absolute;
731
- color: #fff;
732
  font-size: 24px;
733
  width: 24px;
734
  height: 24px;
@@ -845,7 +860,7 @@ small.um-max-filesize span{
845
  user-select: none;
846
  background: none !important;
847
  background-color: #fff !important;
848
- border: 2px solid #ddd !important;
849
  }
850
  .select2.select2-container .select2-selection .select2-selection__arrow b[role=presentation]{
851
  display:none;
@@ -876,7 +891,7 @@ small.um-max-filesize span{
876
  border-left: 0 !important;
877
  }
878
  .select2-container.select2-container--open .select2-dropdown{
879
- border: 2px solid #ddd !important;
880
  }
881
  .select2-results li{
882
  list-style: none;
60
  }
61
  .um.um-in-admin .um-tip {display: none !important}
62
 
63
+ .um:not(.um-directory) input,
64
+ .um:not(.um-directory) select,
65
+ .um:not(.um-directory) textarea{
66
  font-size: 15px;
67
  }
68
 
175
  position: relative;
176
  }
177
 
178
+ p.um-notice a {
179
+ color: #fff;
180
+ text-decoration: underline;
181
+ }
182
+
183
  p.um-notice i {
184
  position: absolute;
185
  right: 14px;
206
  padding: 8px 15px !important;
207
  }
208
 
209
+ p.um-notice.warning a {
210
+ color: #666;
211
+ text-decoration: underline;
212
+ }
213
+
214
  /*
215
  - Errors
216
  */
237
  top: -17px;
238
  left: 10px;
239
  position: absolute;
240
+ z-index: 1;
241
  color: #C74A4A;
242
  font-size: 28px;
243
  line-height: 1em !important;
474
  position: relative;
475
  }
476
 
477
+ .um-field-checkbox:not(.um-field),
478
+ .um-field-radio:not(.um-field) {
479
  display: block;
480
  margin: 8px 0;
481
  position: relative;
715
  margin: 0 !important;
716
  }
717
 
718
+ .um-dropdown ul {
719
+ background: #fff;
720
+ position: relative;
721
+ z-index: 16;
722
+ }
723
+
724
+ .um-dropdown li a {
725
  display: block;
726
  padding: 8px 12px;
727
  color: #666;
734
  padding: 12px;
735
  }
736
 
737
+ .um-dropdown li a:hover {
738
 
739
  }
740
 
744
 
745
  .um-dropdown-arr {
746
  position: absolute;
 
747
  font-size: 24px;
748
  width: 24px;
749
  height: 24px;
860
  user-select: none;
861
  background: none !important;
862
  background-color: #fff !important;
863
+ border: 1px solid #ddd !important;
864
  }
865
  .select2.select2-container .select2-selection .select2-selection__arrow b[role=presentation]{
866
  display:none;
891
  border-left: 0 !important;
892
  }
893
  .select2-container.select2-container--open .select2-dropdown{
894
+ border: 1px solid #ddd !important;
895
  }
896
  .select2-results li{
897
  list-style: none;
assets/css/um.rtl.css CHANGED
@@ -5,6 +5,7 @@
5
 
6
  .um-profile-photo {
7
  float: right;
 
8
  }
9
 
10
  .um-profile-photo a.um-profile-photo-img {
@@ -13,7 +14,7 @@
13
  }
14
 
15
  .um-cover + .um-header .um-profile-photo a.um-profile-photo-img {
16
- right: 30px;
17
  }
18
 
19
  div.uimob500 .um-profile-photo a.um-profile-photo-img {
@@ -22,8 +23,9 @@ div.uimob500 .um-profile-photo a.um-profile-photo-img {
22
 
23
  .um-profile-edit {
24
  right: auto;
25
- left: 10px;
26
- padding-left: 10px;
 
27
  }
28
 
29
  div.uimob960 .um-header .um-profile-meta,
@@ -188,4 +190,6 @@ p.um-notice i {
188
  .um-modal-body .um-single-image-preview a.cancel,
189
  .um-modal-body .um-single-file-preview a.cancel {
190
  left: -15px;
191
- }
 
 
5
 
6
  .um-profile-photo {
7
  float: right;
8
+ margin: 0 30px 0 0;
9
  }
10
 
11
  .um-profile-photo a.um-profile-photo-img {
14
  }
15
 
16
  .um-cover + .um-header .um-profile-photo a.um-profile-photo-img {
17
+ right: 0;
18
  }
19
 
20
  div.uimob500 .um-profile-photo a.um-profile-photo-img {
23
 
24
  .um-profile-edit {
25
  right: auto;
26
+ left: 0;
27
+ margin-left: 10px;
28
+ margin-right: 0;
29
  }
30
 
31
  div.uimob960 .um-header .um-profile-meta,
190
  .um-modal-body .um-single-image-preview a.cancel,
191
  .um-modal-body .um-single-file-preview a.cancel {
192
  left: -15px;
193
+ }
194
+
195
+ .um-item-link { padding-right: 0; padding-left: 40px;}
assets/dynamic_css/dynamic_profile.php CHANGED
@@ -1,43 +1,49 @@
1
- <style type="text/css">
2
- <?php
3
 
4
- $photosize = str_replace('px','',$photosize);
5
- $photosize_up = ( $photosize / 2 ) + 10;
6
- $meta_padding = ( $photosize + 60 ) . 'px';
7
 
8
- if ( $area_max_width ) {
9
- print "
10
- .um-$form_id.um .um-profile-body {
11
- max-width: $area_max_width;
12
- }
13
- ";
14
- }
15
 
16
- print "
17
- .um-$form_id.um .um-profile-photo a.um-profile-photo-img {
18
- width: ".$photosize."px;
19
- height: ".$photosize."px;
20
- }
21
- ";
22
 
23
- print "
24
- .um-$form_id.um .um-profile-photo a.um-profile-photo-img {
25
- top: -".$photosize_up."px;
26
- }
27
- ";
 
 
28
 
29
- if ( is_rtl() ) {
30
  print "
31
- .um-$form_id.um .um-profile-meta {
32
- padding-right: $meta_padding;
 
33
  }
34
  ";
35
- } else {
36
  print "
37
- .um-$form_id.um .um-profile-meta {
38
- padding-left: $meta_padding;
39
  }
40
  ";
41
- }
42
- ?>
 
 
 
 
 
 
 
 
 
 
 
 
 
43
  </style>
1
+ <?php if ( ! defined( 'ABSPATH' ) ) exit; ?>
 
2
 
3
+ <style type="text/css">
 
 
4
 
5
+ <?php if ( ! $photosize || $photosize == 'original' ) {
6
+ //cannot be more than metadefault value
7
+ $photosize = um_get_metadefault( 'profile_photosize' );
8
+ }
9
+ $photosize = filter_var( $photosize, FILTER_SANITIZE_NUMBER_INT );
 
 
10
 
11
+ $photosize_up = ( $photosize / 2 ) + 10;
12
+ $meta_padding = ( $photosize + 60 ) . 'px';
 
 
 
 
13
 
14
+ if ( $area_max_width ) {
15
+ print "
16
+ .um-$form_id.um .um-profile-body {
17
+ max-width: $area_max_width;
18
+ }
19
+ ";
20
+ }
21
 
 
22
  print "
23
+ .um-$form_id.um .um-profile-photo a.um-profile-photo-img {
24
+ width: ".$photosize."px;
25
+ height: ".$photosize."px;
26
  }
27
  ";
28
+
29
  print "
30
+ .um-$form_id.um .um-profile-photo a.um-profile-photo-img {
31
+ top: -".$photosize_up."px;
32
  }
33
  ";
34
+
35
+ if ( is_rtl() ) {
36
+ print "
37
+ .um-$form_id.um .um-profile-meta {
38
+ padding-right: $meta_padding;
39
+ }
40
+ ";
41
+ } else {
42
+ print "
43
+ .um-$form_id.um .um-profile-meta {
44
+ padding-left: $meta_padding;
45
+ }
46
+ ";
47
+ }
48
+ ?>
49
  </style>
assets/js/dropdown.js ADDED
@@ -0,0 +1,85 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ var um_dropdown_triggers = {};
2
+
3
+ function um_init_new_dropdown() {
4
+ jQuery('.um-new-dropdown').each( function() {
5
+ var menu = jQuery(this);
6
+
7
+ var is_inited = menu.data( 'um-dropdown-inited' );
8
+ if ( is_inited ) {
9
+ return;
10
+ }
11
+
12
+ var element = menu.data('element');
13
+ var trigger = menu.data('trigger');
14
+
15
+ menu.data( 'um-dropdown-inited', true );
16
+
17
+ if ( -1 === jQuery.inArray( element, um_dropdown_triggers[ trigger ] ) ) {
18
+ jQuery( document.body ).on( trigger, element, function(e) {
19
+ var obj = jQuery(this);
20
+
21
+ if ( obj.data( 'um-new-dropdown-show' ) === true ) {
22
+ obj.data( 'um-new-dropdown-show', false );
23
+ obj.find( '.um-new-dropdown' ).hide();
24
+ } else {
25
+ jQuery('.um-new-dropdown').hide();
26
+ jQuery('.um-new-dropdown').parent().data( 'um-new-dropdown-show', false );
27
+
28
+ if ( ! obj.find( '.um-new-dropdown' ).length ) {
29
+ var dropdown_layout = menu.clone();
30
+
31
+ // dropdown_layout.css({
32
+ // top : '20px',
33
+ // width: '150px',
34
+ // right: 0
35
+ // });
36
+
37
+ obj.append( dropdown_layout );
38
+
39
+ obj.trigger( 'fmwp_dropdown_render', { dropdown_layout:dropdown_layout, trigger:trigger, element:element, obj:obj} );
40
+
41
+ dropdown_layout.show();
42
+ } else {
43
+ obj.find( '.um-new-dropdown' )./*css({
44
+ top : '20px',
45
+ width: '150px',
46
+ right: 0
47
+ }).*/show();
48
+ }
49
+
50
+ obj.data( 'um-new-dropdown-show', true );
51
+
52
+ jQuery( document.body ).bind( 'click', function( event ) {
53
+
54
+ if ( jQuery('.um-new-dropdown').find( '.' + jQuery( event.target ).attr('class').trim().replace( ' ', '.' ) ).length === 0 &&
55
+
56
+
57
+ jQuery( '.' + jQuery(event.target).attr('class').trim() ) !== element ) {
58
+ //event = ev;
59
+ jQuery('.um-new-dropdown').hide();
60
+ jQuery('.um-new-dropdown').parent().data( 'um-new-dropdown-show', false );
61
+ jQuery( document.body ).unbind( event );
62
+
63
+ }
64
+ });
65
+ }
66
+ });
67
+
68
+ if ( typeof um_dropdown_triggers[ trigger ] == 'undefined' ) {
69
+ um_dropdown_triggers[ trigger ] = [];
70
+ }
71
+ um_dropdown_triggers[ trigger ].push( element );
72
+ }
73
+ });
74
+ }
75
+
76
+ jQuery( document ).ready( function($) {
77
+ um_init_new_dropdown();
78
+
79
+ jQuery( document.body ).on( 'click', '.um-new-dropdown a', function(e) {
80
+ jQuery(this).parents('.um-new-dropdown').hide();
81
+ jQuery(this).parents('.um-new-dropdown').parent().data( 'um-new-dropdown-show', false );
82
+ jQuery('body').trigger('click');
83
+ e.stopPropagation();
84
+ });
85
+ });
assets/js/dropdown.min.js ADDED
@@ -0,0 +1 @@
 
1
+ var um_dropdown_triggers={};function um_init_new_dropdown(){jQuery(".um-new-dropdown").each(function(){var r=jQuery(this);if(!r.data("um-dropdown-inited")){var e=r.data("element"),u=r.data("trigger");r.data("um-dropdown-inited",!0),-1===jQuery.inArray(e,um_dropdown_triggers[u])&&(jQuery(document.body).on(u,e,function(d){var n=jQuery(this);if(!0===n.data("um-new-dropdown-show"))n.data("um-new-dropdown-show",!1),n.find(".um-new-dropdown").hide();else{if(jQuery(".um-new-dropdown").hide(),jQuery(".um-new-dropdown").parent().data("um-new-dropdown-show",!1),n.find(".um-new-dropdown").length)n.find(".um-new-dropdown").show();else{var o=r.clone();n.append(o),n.trigger("fmwp_dropdown_render",{dropdown_layout:o,trigger:u,element:e,obj:n}),o.show()}n.data("um-new-dropdown-show",!0),jQuery(document.body).bind("click",function(d){0===jQuery(".um-new-dropdown").find("."+jQuery(d.target).attr("class").trim().replace(" ",".")).length&&jQuery("."+jQuery(d.target).attr("class").trim())!==e&&(jQuery(".um-new-dropdown").hide(),jQuery(".um-new-dropdown").parent().data("um-new-dropdown-show",!1),jQuery(document.body).unbind(d))})}}),void 0===um_dropdown_triggers[u]&&(um_dropdown_triggers[u]=[]),um_dropdown_triggers[u].push(e))}})}jQuery(document).ready(function(d){um_init_new_dropdown(),jQuery(document.body).on("click",".um-new-dropdown a",function(d){jQuery(this).parents(".um-new-dropdown").hide(),jQuery(this).parents(".um-new-dropdown").parent().data("um-new-dropdown-show",!1),jQuery("body").trigger("click"),d.stopPropagation()})});
assets/js/um-conditional.js CHANGED
@@ -204,12 +204,18 @@ function um_in_array(needle, haystack, strict){
204
  * @param object $dom
205
  * @param boolean is_single_update
206
  */
207
- function um_apply_conditions($dom, is_single_update) {
208
  var operators = ['empty', 'not empty', 'equals to', 'not equals', 'greater than', 'less than', 'contains'];
 
 
 
209
  var key = $dom.parents('.um-field[data-key]').data('key');
210
- var conditions = um_field_conditions[key];
 
 
 
211
 
212
- var live_field_value = um_get_field_data($dom);
213
 
214
  var $owners = {};
215
  var $owners_values = {};
204
  * @param object $dom
205
  * @param boolean is_single_update
206
  */
207
+ function um_apply_conditions( $dom, is_single_update ) {
208
  var operators = ['empty', 'not empty', 'equals to', 'not equals', 'greater than', 'less than', 'contains'];
209
+ if ( ! $dom.parents('.um-field[data-key]').length ) {
210
+ return;
211
+ }
212
  var key = $dom.parents('.um-field[data-key]').data('key');
213
+ var conditions = um_field_conditions[ key ];
214
+ if ( typeof conditions === 'undefined' ) {
215
+ return;
216
+ }
217
 
218
+ var live_field_value = um_get_field_data( $dom );
219
 
220
  var $owners = {};
221
  var $owners_values = {};
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":1<=e.find("input[type=checkbox]:checked").length&&(1<e.find("input[type=checkbox]:checked").length?e.find("input[type=checkbox]:checked").each(function(){i=i+jQuery(this).val()+" "}):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 t=[];return jQuery.each(arr_all_conditions,function(e,i){i.field.parent==n&&t.push(i.field.condition)}),t}function um_splitup_array(e,i){for(var n=e.length%i,t=n,a=Math.floor(e.length/i),u=[],o=0;o<e.length;o+=a){var r=a+o,d=!1;0!==n&&t&&(r++,t--,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 t,a=!1;n=!!n;for(t in i)if(n&&i[t]===e||!n&&i[t]==e){a=!0;break}return a}function um_apply_conditions(n,e){var i=n.parents(".um-field[data-key]").data("key"),t=um_field_conditions[i],a=um_get_field_data(n),u={},o={},r={};jQuery.each(t,function(e,i){void 0===o[i.owner]&&(o[i.owner]=[],r[i.owner]={}),o[i.owner].push(i.value),r[i.owner]=i}),jQuery.each(t,function(e,i){void 0===u[i.owner]&&(u[i.owner]={}),"empty"==i.operator&&(!a||""==a&&um_in_array(a,o[i.owner])?u[i.owner][e]=!0:u[i.owner][e]=!1),"not empty"==i.operator&&(a&&""!=a&&!um_in_array(a,o[i.owner])?u[i.owner][e]=!0:u[i.owner][e]=!1),"equals to"==i.operator&&(i.value==a&&um_in_array(a,o[i.owner])?u[i.owner][e]=!0:u[i.owner][e]=!1),"not equals"==i.operator&&(jQuery.isNumeric(i.value)&&parseInt(a)!=parseInt(i.value)&&a&&!um_in_array(a,o[i.owner])?u[i.owner][e]=!0:i.value==a||um_in_array(a,o[i.owner])?u[i.owner][e]=!1:u[i.owner][e]=!0),"greater than"==i.operator&&(jQuery.isNumeric(i.value)&&parseInt(a)>parseInt(i.value)?u[i.owner][e]=!0:u[i.owner][e]=!1),"less than"==i.operator&&(jQuery.isNumeric(i.value)&&parseInt(a)<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]"))?a&&0<=a.indexOf(i.value)&&um_in_array(i.value,a)?u[i.owner][e]=!0:u[i.owner][e]=!1:"checkbox"==um_get_field_type(n.parents(".um-field[data-key]"))?a&&0<=a.indexOf(i.value)?u[i.owner][e]=!0:u[i.owner][e]=!1:a&&0<=a.indexOf(i.value)&&um_in_array(a,o[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,r[e],!0):um_field_apply_action(n,r[e],!1)}),n.trigger("um_fields_change")}function um_field_apply_action(e,i,n){var t=jQuery('div.um-field[data-key="'+i.owner+'"]');"show"==i.action&&n&&(t.show(),_show_in_ie(t),um_field_restore_default_value(t)),"show"!=i.action||n||(t.hide(),_hide_in_ie(t)),"hide"==i.action&&n&&(t.hide(),_hide_in_ie(t)),"hide"!=i.action||n||(t.show(),_show_in_ie(t),um_field_restore_default_value(t)),e.removeClass("um-field-has-changed")}function um_field_restore_default_value(t){var e=um_get_field_type(t),i=t.data("key"),n=um_field_default_values[i];switch(e){case"text":case"number":case"date":case"textarea":t.find("input:text,input[type=number],textareas").val(n.value);break;case"select":t.find("select").find("option").prop("selected",!1),t.find("select").val(n.value),t.find("select").trigger("change");break;case"multiselect":t.find("select").find("option").prop("selected",!1),jQuery.each(n.value,function(e,i){t.find("select").find('option[value="'+i+'"]').attr("selected",!0)}),t.find("select").trigger("change");break;case"checkbox":if(1<=t.find("input[type=checkbox]:checked").length)if(t.find("input[type=checkbox]:checked").removeAttr("checked"),t.find("span.um-field-checkbox-state i").removeClass("um-icon-android-checkbox-outline"),t.find("span.um-field-checkbox-state i").addClass("um-icon-android-checkbox-outline-blank"),t.find(".um-field-checkbox.active").removeClass("active"),jQuery.isArray(n.value))jQuery.each(n.value,function(e,i){var n=t.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 a=t.find('input[type=checkbox][value="'+n.value+'"]');a.attr("checked",!0),a.closest(".um-field-checkbox").find("i").removeClass("um-icon-android-checkbox-outline-blank"),a.closest(".um-field-checkbox").find("i").addClass("um-icon-android-checkbox-outline"),a.closest(".um-field-checkbox").addClass("active")}break;case"radio":1<=t.find("input[type=radio]:checked").length&&setTimeout(function(){t.find("input[type=radio]:checked").removeAttr("checked"),t.find("span.um-field-radio-state i").removeClass("um-icon-android-radio-button-on"),t.find("span.um-field-radio-state i").addClass("um-icon-android-radio-button-off"),t.find(".um-field-radio.active").removeClass("active");var e=t.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(!t.hasClass("um-field-has-changed")){var u=um_get_field_element(t);"radio"!=e&&"checkbox"!=e||(u=u.find(":checked")),u&&(u.trigger("change"),t.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 t=jQuery(this).data("key");e.push(t);var u={};jQuery.each(jQuery(this)[0].attributes,function(e,i){if(-1!=i.name.indexOf("data-cond")){var n=i.name.slice(10),t=n.substring(1,0),a=n.slice(2);void 0===u[t]&&(u[t]={}),u[t][a]=i.value}}),jQuery.each(u,function(e,i){var n={field:{owner:t,action:i.action,parent:i.field,operator:i.operator,value:i.value,condition:{owner:t,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":1<=e.find("input[type=checkbox]:checked").length&&(1<e.find("input[type=checkbox]:checked").length?e.find("input[type=checkbox]:checked").each(function(){i=i+jQuery(this).val()+" "}):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 t=[];return jQuery.each(arr_all_conditions,function(e,i){i.field.parent==n&&t.push(i.field.condition)}),t}function um_splitup_array(e,i){for(var n=e.length%i,t=n,a=Math.floor(e.length/i),u=[],o=0;o<e.length;o+=a){var r=a+o,d=!1;0!==n&&t&&(r++,t--,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 t,a=!1;n=!!n;for(t in i)if(n&&i[t]===e||!n&&i[t]==e){a=!0;break}return a}function um_apply_conditions(n,e){if(n.parents(".um-field[data-key]").length){var i=n.parents(".um-field[data-key]").data("key"),t=um_field_conditions[i];if(void 0!==t){var a=um_get_field_data(n),u={},o={},r={};jQuery.each(t,function(e,i){void 0===o[i.owner]&&(o[i.owner]=[],r[i.owner]={}),o[i.owner].push(i.value),r[i.owner]=i}),jQuery.each(t,function(e,i){void 0===u[i.owner]&&(u[i.owner]={}),"empty"==i.operator&&(!a||""==a&&um_in_array(a,o[i.owner])?u[i.owner][e]=!0:u[i.owner][e]=!1),"not empty"==i.operator&&(a&&""!=a&&!um_in_array(a,o[i.owner])?u[i.owner][e]=!0:u[i.owner][e]=!1),"equals to"==i.operator&&(i.value==a&&um_in_array(a,o[i.owner])?u[i.owner][e]=!0:u[i.owner][e]=!1),"not equals"==i.operator&&(jQuery.isNumeric(i.value)&&parseInt(a)!=parseInt(i.value)&&a&&!um_in_array(a,o[i.owner])?u[i.owner][e]=!0:i.value==a||um_in_array(a,o[i.owner])?u[i.owner][e]=!1:u[i.owner][e]=!0),"greater than"==i.operator&&(jQuery.isNumeric(i.value)&&parseInt(a)>parseInt(i.value)?u[i.owner][e]=!0:u[i.owner][e]=!1),"less than"==i.operator&&(jQuery.isNumeric(i.value)&&parseInt(a)<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]"))?a&&0<=a.indexOf(i.value)&&um_in_array(i.value,a)?u[i.owner][e]=!0:u[i.owner][e]=!1:"checkbox"==um_get_field_type(n.parents(".um-field[data-key]"))?a&&0<=a.indexOf(i.value)?u[i.owner][e]=!0:u[i.owner][e]=!1:a&&0<=a.indexOf(i.value)&&um_in_array(a,o[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,r[e],!0):um_field_apply_action(n,r[e],!1)}),n.trigger("um_fields_change")}}}function um_field_apply_action(e,i,n){var t=jQuery('div.um-field[data-key="'+i.owner+'"]');"show"==i.action&&n&&(t.show(),_show_in_ie(t),um_field_restore_default_value(t)),"show"!=i.action||n||(t.hide(),_hide_in_ie(t)),"hide"==i.action&&n&&(t.hide(),_hide_in_ie(t)),"hide"!=i.action||n||(t.show(),_show_in_ie(t),um_field_restore_default_value(t)),e.removeClass("um-field-has-changed")}function um_field_restore_default_value(t){var e=um_get_field_type(t),i=t.data("key"),n=um_field_default_values[i];switch(e){case"text":case"number":case"date":case"textarea":t.find("input:text,input[type=number],textareas").val(n.value);break;case"select":t.find("select").find("option").prop("selected",!1),t.find("select").val(n.value),t.find("select").trigger("change");break;case"multiselect":t.find("select").find("option").prop("selected",!1),jQuery.each(n.value,function(e,i){t.find("select").find('option[value="'+i+'"]').attr("selected",!0)}),t.find("select").trigger("change");break;case"checkbox":if(1<=t.find("input[type=checkbox]:checked").length)if(t.find("input[type=checkbox]:checked").removeAttr("checked"),t.find("span.um-field-checkbox-state i").removeClass("um-icon-android-checkbox-outline"),t.find("span.um-field-checkbox-state i").addClass("um-icon-android-checkbox-outline-blank"),t.find(".um-field-checkbox.active").removeClass("active"),jQuery.isArray(n.value))jQuery.each(n.value,function(e,i){var n=t.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 a=t.find('input[type=checkbox][value="'+n.value+'"]');a.attr("checked",!0),a.closest(".um-field-checkbox").find("i").removeClass("um-icon-android-checkbox-outline-blank"),a.closest(".um-field-checkbox").find("i").addClass("um-icon-android-checkbox-outline"),a.closest(".um-field-checkbox").addClass("active")}break;case"radio":1<=t.find("input[type=radio]:checked").length&&setTimeout(function(){t.find("input[type=radio]:checked").removeAttr("checked"),t.find("span.um-field-radio-state i").removeClass("um-icon-android-radio-button-on"),t.find("span.um-field-radio-state i").addClass("um-icon-android-radio-button-off"),t.find(".um-field-radio.active").removeClass("active");var e=t.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(!t.hasClass("um-field-has-changed")){var u=um_get_field_element(t);"radio"!=e&&"checkbox"!=e||(u=u.find(":checked")),u&&(u.trigger("change"),t.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 t=jQuery(this).data("key");e.push(t);var u={};jQuery.each(jQuery(this)[0].attributes,function(e,i){if(-1!=i.name.indexOf("data-cond")){var n=i.name.slice(10),t=n.substring(1,0),a=n.slice(2);void 0===u[t]&&(u[t]={}),u[t][a]=i.value}}),jQuery.each(u,function(e,i){var n={field:{owner:t,action:i.action,parent:i.field,operator:i.operator,value:i.value,condition:{owner:t,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
@@ -34,6 +34,7 @@ function UM_domenus() {
34
  if ( position === 'lc' && jQuery('html').attr('dir') === 'rtl' ){
35
  position = 'rc';
36
  }
 
37
  if ( jQuery(window).width() <= 1200 && element === 'div.um-profile-edit' ) {
38
  if ( jQuery('html').attr('dir') === 'rtl' ){
39
  position = 'rc';
@@ -53,10 +54,8 @@ function UM_domenus() {
53
 
54
  if ( top_ ) {
55
  top_p = jQuery(element).find('img').height() + 4 + top_;
56
- left_gap = 4;
57
  } else {
58
  top_p = jQuery(element).find('img').height() + 4;
59
- left_gap = 0;
60
  }
61
 
62
  if ( top_p == 4 && element === 'div.um-cover' ) {
@@ -105,16 +104,16 @@ function UM_domenus() {
105
 
106
  } else if ( position === 'bc' ) {
107
 
108
- if ( jQuery('html').attr('dir') === 'rtl' ){
109
- rtl_gap = 10;
110
- } else {
111
- rtl_gap = 0
112
  }
113
 
114
  menu.css({
115
- 'top' : top_p,
116
  'width': 200,
117
- 'left': left_p + left_gap + rtl_gap,
118
  'right' : 'auto',
119
  'text-align' : 'center'
120
  });
@@ -204,22 +203,9 @@ function um_responsive(){
204
 
205
  });
206
 
207
- jQuery('.um-members').each(function(){
208
- UM_Member_Grid( jQuery(this) );
209
- });
210
-
211
  UM_domenus();
212
-
213
  }
214
 
215
- function UM_Member_Grid( container ) {
216
- container.masonry({
217
- itemSelector: '.um-member',
218
- columnWidth: '.um-member',
219
- gutter: '.um-gutter-sizer'
220
- });
221
-
222
- }
223
 
224
  function initImageUpload_UM( trigger ) {
225
 
@@ -677,7 +663,7 @@ function um_modal_responsive() {
677
 
678
  }
679
 
680
- function um_remove_modal(){
681
  jQuery('img.cropper-hidden').cropper('destroy');
682
 
683
  jQuery('body,html,textarea').css("overflow", "auto");
34
  if ( position === 'lc' && jQuery('html').attr('dir') === 'rtl' ){
35
  position = 'rc';
36
  }
37
+
38
  if ( jQuery(window).width() <= 1200 && element === 'div.um-profile-edit' ) {
39
  if ( jQuery('html').attr('dir') === 'rtl' ){
40
  position = 'rc';
54
 
55
  if ( top_ ) {
56
  top_p = jQuery(element).find('img').height() + 4 + top_;
 
57
  } else {
58
  top_p = jQuery(element).find('img').height() + 4;
 
59
  }
60
 
61
  if ( top_p == 4 && element === 'div.um-cover' ) {
104
 
105
  } else if ( position === 'bc' ) {
106
 
107
+ var top_o = 0;
108
+ var top_offset = menu.data('top-offset');
109
+ if ( typeof top_offset !== 'undefined' ) {
110
+ top_o = top_offset*1;
111
  }
112
 
113
  menu.css({
114
+ 'top' : top_p + top_o,
115
  'width': 200,
116
+ 'left': left_p,
117
  'right' : 'auto',
118
  'text-align' : 'center'
119
  });
203
 
204
  });
205
 
 
 
 
 
206
  UM_domenus();
 
207
  }
208
 
 
 
 
 
 
 
 
 
209
 
210
  function initImageUpload_UM( trigger ) {
211
 
663
 
664
  }
665
 
666
+ function um_remove_modal() {
667
  jQuery('img.cropper-hidden').cropper('destroy');
668
 
669
  jQuery('body,html,textarea').css("overflow", "auto");
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");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_,left_gap=4):(top_p=jQuery(t).find("img").height()+4,left_gap=0),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"})):"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"})):"bc"===a&&("rtl"===jQuery("html").attr("dir")?rtl_gap=10:rtl_gap=0,e.css({top:top_p,width:200,left:left_p+left_gap+rtl_gap,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)}),jQuery(".um-members").each(function(){UM_Member_Grid(jQuery(this))}),UM_domenus()}function UM_Member_Grid(e){e.masonry({itemSelector:".um-member",columnWidth:".um-member",gutter:".um-gutter-sizer"})}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 u=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:u+"px","max-height":u+"px"}),t.css({height:"auto"})):(t.css({height:"auto","max-height":u+"px"}),e.css({height:t.height(),"max-height":u+"px"})),"square"==a)var d={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));d={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)d={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(d),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,u=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":u}),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 u=(t-a.innerHeight())/2+"px";a.animate({bottom:u},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();u=(t-a.innerHeight())/2+"px";a.animate({bottom:u},300)}else if(e<=960){initCrop_UM();u=(t-a.innerHeight())/2+"px";a.animate({bottom:u},300)}else if(960<e){initCrop_UM();u=(t-a.innerHeight())/2+"px";a.animate({bottom:u},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.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()});
assets/js/um-members.js CHANGED
@@ -1,22 +1,760 @@
1
- jQuery(document).ready(function() {
2
 
3
- jQuery('.um-members').each(function(){
4
- UM_Member_Grid( jQuery(this) );
 
 
 
 
 
 
 
 
 
 
 
5
  });
 
 
6
 
7
- jQuery('.um-directory .um-member-connect').each(function(){
8
- if ( jQuery(this).find('a').length == 0 ) {
9
- jQuery(this).remove();
 
 
 
 
 
 
10
  }
11
  });
12
-
13
- jQuery('.um-member-meta-main').each(function(){
14
- if ( jQuery(this).find('.um-member-metaline').length == 0 && jQuery(this).find('.um-member-connect').find('a').length == 0 ) {
15
- jQuery(this).remove();
 
 
 
 
 
 
16
  }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
17
  });
18
 
19
- jQuery(document.body).on('click', '.um-member-more a', function(e){
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
20
  e.preventDefault();
21
 
22
  var block = jQuery(this).parents('.um-member');
@@ -24,13 +762,13 @@ jQuery(document).ready(function() {
24
  block.find('.um-member-more').hide();
25
  block.find('.um-member-meta').slideDown( function(){ UM_Member_Grid( container ) } );
26
  block.find('.um-member-less').fadeIn( );
27
-
28
  setTimeout(function(){ UM_Member_Grid( container ) }, 100);
29
 
30
  return false;
31
  });
32
 
33
- jQuery(document.body).on('click', '.um-member-less a', function(e){
34
  e.preventDefault();
35
 
36
  var block = jQuery(this).parents('.um-member');
@@ -44,23 +782,643 @@ jQuery(document).ready(function() {
44
  return false;
45
  });
46
 
47
- jQuery(document.body).on('click', '.um-do-search', function(e){
48
- e.preventDefault();
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
49
 
50
- jQuery(this).parents('form').find('input').filter(function(e){
51
- if ( this.value.length ===0 ) {
52
- return true;
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
53
  }
54
- }).prop('disabled', true);
55
 
 
 
 
 
 
56
 
57
- jQuery(this).parents('form').find('select').filter(function(e){
58
- if ( this.value.length ===0 ) {
59
- return true;
60
  }
61
- }).prop('disabled', true);
62
- jQuery(this).parents('form').submit();
63
- return false;
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
64
  });
65
 
66
  });
1
+ var um_members_directory_busy = [];
2
 
3
+ var um_member_directories = [];
4
+
5
+ var um_member_directory_last_data = [];
6
+
7
+
8
+ function um_parse_current_url() {
9
+ var data = {};
10
+
11
+ var query = window.location.search.substring(1);
12
+ var attrs = query.split( '&' );
13
+ jQuery.each( attrs, function( i ) {
14
+ var attr = attrs[ i ].split( '=' );
15
+ data[ attr[0] ] = attr[1];
16
  });
17
+ return data;
18
+ }
19
 
20
+
21
+ function um_get_data_for_directory( directory, search_key ) {
22
+ var hash = um_members_get_hash( directory );
23
+ var data = {};
24
+
25
+ var url_data = um_parse_current_url();
26
+ jQuery.each( url_data, function( key ) {
27
+ if ( key.indexOf( '_' + hash ) !== -1 && url_data[ key ] !== '' ) {
28
+ data[ key.replace( '_' + hash, '' ) ] = url_data[ key ];
29
  }
30
  });
31
+
32
+ if ( ! search_key ) {
33
+ return data;
34
+ } else {
35
+ if ( typeof data[ search_key ] !== 'undefined' ) {
36
+ try {
37
+ data[ search_key ] = decodeURI( data[ search_key ] );
38
+ } catch(e) { // catches a malformed URI
39
+ console.error(e);
40
+ }
41
  }
42
+
43
+ return data[ search_key ];
44
+ }
45
+ }
46
+
47
+
48
+ function um_set_url_from_data( directory, key, value ) {
49
+ var hash = um_members_get_hash( directory );
50
+ var data = um_get_data_for_directory( directory );
51
+
52
+ var other_directories = um_member_directories;
53
+
54
+ var new_data = {};
55
+ if ( value !== '' ) {
56
+ new_data[ key + '_' + hash ] = value;
57
+ }
58
+ jQuery.each( data, function( data_key ) {
59
+ if ( key === data_key ) {
60
+ if ( value !== '' ) {
61
+ new_data[ data_key + '_' + hash ] = value;
62
+ }
63
+ } else {
64
+ new_data[ data_key + '_' + hash ] = data[ data_key ];
65
+ }
66
+ });
67
+
68
+ // added data of other directories to the url
69
+ jQuery.each( um_member_directories, function( k ) {
70
+ var dir_hash = um_member_directories[ k ];
71
+ if ( dir_hash !== hash ) {
72
+ var other_directory = jQuery( '.um-directory[data-hash="' + dir_hash + '"]' );
73
+ var dir_data = um_get_data_for_directory( other_directory );
74
+
75
+ jQuery.each( dir_data, function( data_key ) {
76
+ new_data[ data_key + '_' + dir_hash ] = dir_data[ data_key ];
77
+ });
78
+ }
79
+ });
80
+
81
+ var query_strings = [];
82
+ jQuery.each( new_data, function( data_key ) {
83
+ query_strings.push( data_key + '=' + new_data[ data_key ] );
84
  });
85
 
86
+ query_strings = wp.hooks.applyFilters( 'um_member_directory_url_attrs', query_strings );
87
+
88
+ var query_string = '?' + query_strings.join( '&' );
89
+
90
+ if ( query_string === '?' ) {
91
+ query_string = '';
92
+ }
93
+
94
+ window.history.pushState("string", "UM Member Directory", window.location.origin + window.location.pathname + query_string );
95
+ }
96
+
97
+
98
+ function um_members_get_hash( directory ) {
99
+ return directory.data( 'hash' );
100
+ }
101
+
102
+ function um_is_directory_busy( directory ) {
103
+ var hash = um_members_get_hash( directory );
104
+ return typeof um_members_directory_busy[ hash ] != 'undefined' && um_members_directory_busy[ hash ];
105
+ }
106
+
107
+
108
+ function um_members_show_preloader( directory ) {
109
+ um_members_directory_busy[ um_members_get_hash( directory ) ] = true;
110
+ directory.find('.um-members-overlay').show();
111
+ }
112
+
113
+
114
+ function um_members_hide_preloader( directory ) {
115
+ um_members_directory_busy[ um_members_get_hash( directory ) ] = false;
116
+ directory.find('.um-members-overlay').hide();
117
+ }
118
+
119
+
120
+ function um_set_range_label( slider, ui ) {
121
+ var placeholder = slider.siblings( '.um-slider-range' ).data( 'placeholder' );
122
+
123
+ if( ui ) {
124
+ placeholder = placeholder.replace( '\{min_range\}', ui.values[ 0 ] )
125
+ .replace( '\{max_range\}', ui.values[ 1 ] )
126
+ .replace( '\{field_label\}', slider.siblings( '.um-slider-range' )
127
+ .data('label') );
128
+ } else {
129
+ placeholder = placeholder.replace( '\{min_range\}', slider.slider( "values", 0 ) )
130
+ .replace( '\{max_range\}', slider.slider( "values", 1 ) )
131
+ .replace( '\{field_label\}', slider.siblings( '.um-slider-range' )
132
+ .data('label') );
133
+ }
134
+ slider.siblings( '.um-slider-range' ).html( placeholder );
135
+
136
+ slider.siblings( ".um_range_min" ).val( slider.slider( "values", 0 ) );
137
+ slider.siblings( ".um_range_max" ).val( slider.slider( "values", 1 ) );
138
+ }
139
+
140
+
141
+ function um_get_search( directory ) {
142
+ if ( directory.find('.um-search-line').length ) {
143
+ return directory.find( '.um-search-line' ).val();
144
+ } else {
145
+ return '';
146
+ }
147
+ }
148
+
149
+ function um_get_sort( directory ) {
150
+ return directory.data( 'sorting' );
151
+ }
152
+
153
+ function um_get_current_page( directory ) {
154
+ var page = directory.data( 'page' );
155
+ if ( ! page || typeof page == 'undefined' ) {
156
+ page = 1;
157
+ }
158
+ return page;
159
+ }
160
+
161
+
162
+ function um_ajax_get_members( directory, args ) {
163
+
164
+ /**
165
+ * Operates with the next data:
166
+ *
167
+ * 1) Page - getting from directory data 'page'
168
+ * 2) Sort - getting from 'um-member-directory-sorting-options' field value
169
+ * 3) Search - getting from 'um-search-line' field value
170
+ * 4) Filters - getting from URL data by 'um_get_data_for_directory' function
171
+ *
172
+ */
173
+
174
+
175
+ var hash = um_members_get_hash( directory );
176
+ var page = um_get_current_page( directory );
177
+ var search = um_get_search( directory );
178
+ var sorting = um_get_sort( directory );
179
+
180
+ var local_date = new Date();
181
+ var gmt_hours = -local_date.getTimezoneOffset() / 60;
182
+
183
+ var request = {
184
+ directory_id: hash,
185
+ page: page,
186
+ search: search,
187
+ sorting: sorting,
188
+ gmt_offset: gmt_hours,
189
+ post_refferer: directory.data('base-post'),
190
+ nonce: um_scripts.nonce
191
+ };
192
+
193
+ if ( directory.find('.um-search-filter').length ) {
194
+ directory.find('.um-search-filter').each( function() {
195
+ var filter = jQuery(this);
196
+
197
+ if ( filter.find( '.um-slider' ).length ) {
198
+ var filter_name = filter.find( '.um-slider' ).data('field_name');
199
+
200
+ var value_from = um_get_data_for_directory( directory, 'filter_' + filter_name + '_from' );
201
+ var value_to = um_get_data_for_directory( directory, 'filter_' + filter_name + '_to' );
202
+ if ( typeof value_from != 'undefined' || typeof value_to != 'undefined' ) {
203
+ request[ filter_name ] = [ value_from, value_to ];
204
+ }
205
+ } else if ( filter.find( '.um-datepicker-filter' ).length ) {
206
+ var filter_name = filter.find( '.um-datepicker-filter' ).data('filter_name');
207
+ var value_from = um_get_data_for_directory( directory, 'filter_' + filter_name + '_from' );
208
+ var value_to = um_get_data_for_directory( directory, 'filter_' + filter_name + '_to' );
209
+ if ( typeof value_from != 'undefined' || typeof value_to != 'undefined') {
210
+ request[ filter_name ] = [ value_from, value_to ];
211
+ }
212
+ } else if ( filter.find( '.um-timepicker-filter' ).length ) {
213
+ var filter_name = filter.find( '.um-timepicker-filter' ).data('filter_name');
214
+ var value_from = um_get_data_for_directory( directory, 'filter_' + filter_name + '_from' );
215
+ var value_to = um_get_data_for_directory( directory, 'filter_' + filter_name + '_to' );
216
+ if ( typeof value_from != 'undefined' || typeof value_to != 'undefined' ) {
217
+ request[ filter_name ] = [ value_from, value_to ];
218
+ }
219
+ } else {
220
+ var filter_name = filter.find('select').attr('name');
221
+ var value = um_get_data_for_directory( directory, 'filter_' + filter_name );
222
+ if ( typeof value != 'undefined' ) {
223
+ request[ filter_name ] = value.split( '||' );
224
+ }
225
+ }
226
+ });
227
+ }
228
+
229
+ request = wp.hooks.applyFilters( 'um_member_directory_filter_request', request );
230
+
231
+ wp.ajax.send( 'um_get_members', {
232
+ data: request,
233
+ success: function( answer ) {
234
+ //set last data hard for using on layouts reloading
235
+ um_member_directory_last_data[ hash ] = answer;
236
+
237
+ um_build_template( directory, answer );
238
+
239
+ var pagination_template = wp.template( 'um-members-pagination' );
240
+ directory.find('.um-members-pagination-box').html( pagination_template( answer ) );
241
+
242
+ directory.data( 'total_pages', answer.pagination.total_pages );
243
+
244
+ if ( answer.pagination.total_pages ) {
245
+ directory.find( '.um-member-directory-sorting-options' ).prop( 'disabled', false );
246
+ directory.find( '.um-member-directory-view-type' ).removeClass( 'um-disabled' );
247
+ } else {
248
+ directory.find( '.um-member-directory-sorting-options' ).prop( 'disabled', true );
249
+ directory.find( '.um-member-directory-view-type' ).addClass( 'um-disabled' );
250
+ }
251
+
252
+ //args.directory = directory;
253
+ jQuery( document ).trigger('um_members_rendered', args );
254
+
255
+ um_init_new_dropdown();
256
+
257
+ um_members_hide_preloader( directory );
258
+ },
259
+ error: function( data ) {
260
+ console.log( data );
261
+
262
+ um_members_hide_preloader( directory );
263
+ }
264
+ });
265
+ }
266
+
267
+
268
+ function um_build_template( directory, data ) {
269
+ var layout = directory.data('view_type');
270
+ var template = wp.template( 'um-member-' + layout );
271
+
272
+ directory.find('.um-members-grid, .um-members-list').remove();
273
+ directory.find('.um-members-wrapper').prepend( template( data.users ) );
274
+
275
+ var header_template = wp.template( 'um-members-header' );
276
+ directory.find('.um-members-intro').remove();
277
+ directory.find('.um-members-wrapper').prepend( header_template( data ) );
278
+
279
+ directory.addClass('um-loaded');
280
+
281
+ if ( directory.find('.um-members.um-members-grid').length ) {
282
+ UM_Member_Grid( directory.find('.um-members.um-members-grid') );
283
+ }
284
+
285
+ jQuery( document ).trigger( 'um_build_template', [ directory, data ] );
286
+ jQuery( window ).trigger( 'resize' );
287
+
288
+ init_tipsy();
289
+ }
290
+
291
+
292
+
293
+ function UM_Member_Grid( container ) {
294
+ if ( container.find( '.um-member' ).length ) {
295
+ container.imagesLoaded( function() {
296
+ var $grid = container.masonry({
297
+ itemSelector: '.um-member',
298
+ columnWidth: '.um-member',
299
+ gutter: '.um-gutter-sizer'
300
+ });
301
+
302
+ $grid.on( 'layoutComplete', function( event, laidOutItems ) {
303
+ jQuery( document ).trigger( "um_grid_initialized", [ event, laidOutItems ] );
304
+ });
305
+ });
306
+ }
307
+ }
308
+
309
+
310
+ function um_get_filters_data( directory ) {
311
+ var filters_data = [];
312
+
313
+ directory.find('.um-search-filter').each( function() {
314
+
315
+ var filter = jQuery(this);
316
+ var filter_name,
317
+ filter_title;
318
+
319
+ var filter_type;
320
+ if ( filter.find('input.um-datepicker-filter').length ) {
321
+ filter_type = 'datepicker';
322
+
323
+ filter.find('input.um-datepicker-filter').each( function() {
324
+ var range = jQuery(this).data('range');
325
+ if ( range === 'to' ) {
326
+ return;
327
+ }
328
+
329
+ var filter_name = jQuery(this).data('filter_name');
330
+
331
+ var filter_value_from = um_get_data_for_directory( directory, 'filter_' + filter_name + '_from' );
332
+ var filter_value_to = um_get_data_for_directory( directory, 'filter_' + filter_name + '_to' );
333
+ if ( typeof filter_value_from === 'undefined' && typeof filter_value_to === 'undefined' ) {
334
+ return;
335
+ }
336
+
337
+ var from_val = jQuery(this).val();
338
+ var to_val = directory.find('input.um-datepicker-filter[data-range="to"][data-filter_name="' + filter_name + '"]').val();
339
+
340
+ var value;
341
+ if ( from_val === to_val ) {
342
+ value = to_val;
343
+ } else if ( from_val !== '' && to_val !== '' ) {
344
+ value = from_val + ' - ' + to_val;
345
+ } else if ( from_val === '' ) {
346
+ value = 'before ' + to_val;
347
+ } else if ( to_val === '' ) {
348
+ value = 'since ' + from_val;
349
+ }
350
+
351
+ filters_data.push( {'name':filter_name, 'label':jQuery(this).data('filter-label'), 'value_label': value, 'value':[filter_value_from, filter_value_to], 'type':filter_type} );
352
+ });
353
+
354
+ } else if( filter.find('input.um-timepicker-filter').length ) {
355
+ filter_type = 'timepicker';
356
+
357
+ filter.find('input.um-timepicker-filter').each( function() {
358
+ var range = jQuery(this).data('range');
359
+ if ( range === 'to' ) {
360
+ return;
361
+ }
362
+
363
+ var filter_name = jQuery(this).data('filter_name');
364
+
365
+ var filter_value_from = um_get_data_for_directory( directory, 'filter_' + filter_name + '_from' );
366
+ var filter_value_to = um_get_data_for_directory( directory, 'filter_' + filter_name + '_to' );
367
+ if ( typeof filter_value_from === 'undefined' && typeof filter_value_to === 'undefined' ) {
368
+ return;
369
+ }
370
+
371
+ var from_val = jQuery(this).val();
372
+ var to_val = directory.find('input.um-timepicker-filter[data-range="to"][data-filter_name="' + filter_name + '"]').val();
373
+
374
+ var value;
375
+ if ( from_val === to_val ) {
376
+ value = to_val;
377
+ } else if ( from_val !== '' && to_val !== '' ) {
378
+ value = from_val + ' - ' + to_val;
379
+ } else if ( from_val === '' ) {
380
+ value = 'before ' + to_val;
381
+ } else if ( to_val === '' ) {
382
+ value = 'since ' + from_val;
383
+ }
384
+
385
+ filters_data.push( {'name':filter_name, 'label':jQuery(this).data('filter-label'), 'value_label': value, 'value':[filter_value_from, filter_value_to], 'type':filter_type} );
386
+ });
387
+ } else if( filter.find('select').length ) {
388
+
389
+ filter_type = 'select';
390
+ filter_name = filter.find('select').attr('name');
391
+ filter_title = filter.find('select').data('placeholder');
392
+
393
+ var filter_value = um_get_data_for_directory( directory, 'filter_' + filter_name );
394
+ if ( typeof filter_value == 'undefined' ) {
395
+ filter_value = [];
396
+ } else {
397
+ filter_value = filter_value.split( '||' );
398
+ }
399
+
400
+ jQuery.each( filter_value, function(i) {
401
+ var filter_value_title = filter.find('select option[value="' + filter_value[ i ] + '"]').data('value_label');
402
+ filters_data.push( {'name':filter_name, 'label':filter_title, 'value_label':filter_value_title, 'value':filter_value[ i ], 'type':filter_type} );
403
+ });
404
+
405
+ } else if( filter.find('div.ui-slider').length ) {
406
+ filter_type = 'slider';
407
+
408
+ filter_name = filter.find('div.ui-slider').data( 'field_name' );
409
+ var filter_value_from = um_get_data_for_directory( directory, 'filter_' + filter_name + '_from' );
410
+ var filter_value_to = um_get_data_for_directory( directory, 'filter_' + filter_name + '_to' );
411
+
412
+ if ( typeof filter_value_from === 'undefined' && typeof filter_value_to === 'undefined' ) {
413
+ return;
414
+ }
415
+
416
+ filter_title = filter.find('div.um-slider-range').data('label');
417
+
418
+ var filter_value_title = filter.find('div.um-slider-range').data( 'placeholder' ).replace( '\{min_range\}', filter_value_from )
419
+ .replace( '\{max_range\}', filter_value_to )
420
+ .replace( '\{field_label\}', filter.find('div.um-slider-range').data('label') );
421
+
422
+ filters_data.push( {'name':filter_name, 'label':filter_title, 'value_label':filter_value_title, 'value':[filter_value_from, filter_value_to], 'type':filter_type} );
423
+ }
424
+ });
425
+
426
+ return filters_data;
427
+ }
428
+
429
+
430
+ function um_change_tag( directory ) {
431
+ var filters_data = um_get_filters_data( directory );
432
+
433
+ directory.find('.um-members-filter-tag').remove();
434
+
435
+ var filtered_line = directory.find('.um-filtered-line');
436
+ if ( filtered_line.length ){
437
+ var filters_template = wp.template( 'um-members-filtered-line' );
438
+ filtered_line.prepend( filters_template( {'filters': filters_data} ) );
439
+
440
+ if ( directory.find( '.um-members-filter-remove' ).length === 0 ) {
441
+ directory.find('.um-clear-filters').hide();
442
+ directory.find('.um-clear-filters').parents('.um-member-directory-header-row').addClass( 'um-header-row-invisible' );
443
+ } else {
444
+ directory.find('.um-clear-filters').show();
445
+ directory.find('.um-clear-filters').parents('.um-member-directory-header-row').removeClass( 'um-header-row-invisible' );
446
+ }
447
+ }
448
+
449
+
450
+ }
451
+
452
+
453
+
454
+ function um_run_search( directory ) {
455
+ if ( um_is_directory_busy( directory ) ) {
456
+ return;
457
+ }
458
+ um_members_show_preloader( directory );
459
+
460
+ var pre_search = um_get_data_for_directory( directory, 'search' );
461
+
462
+ var search = directory.find('.um-search-line').val();
463
+ if ( search === pre_search || ( search === '' && typeof pre_search == 'undefined' ) ) {
464
+ um_members_hide_preloader( directory );
465
+ return;
466
+ }
467
+
468
+ directory.data( 'general_search', search );
469
+ um_set_url_from_data( directory, 'search', search );
470
+
471
+ //set 1st page after search
472
+ directory.data( 'page', 1 );
473
+ um_set_url_from_data( directory, 'page', '' );
474
+
475
+ var show_after_search = directory.data('must-search');
476
+ if ( show_after_search === 1 ) {
477
+ var search = um_get_search( directory );
478
+ if ( directory.find( '.um-members-filter-remove' ).length === 0 && ! search ) {
479
+ directory.data( 'searched', 0 );
480
+ directory.find('.um-members-grid, .um-members-list').remove();
481
+ directory.find( '.um-member-directory-sorting-options' ).prop( 'disabled', true );
482
+ directory.find( '.um-member-directory-view-type' ).addClass( 'um-disabled' );
483
+ um_members_hide_preloader( directory );
484
+ return;
485
+ }
486
+ }
487
+
488
+ directory.data( 'searched', 1 );
489
+
490
+ directory.find( '.um-member-directory-sorting-options' ).prop( 'disabled', false );
491
+ directory.find( '.um-member-directory-view-type' ).removeClass( 'um-disabled' );
492
+
493
+ um_ajax_get_members( directory );
494
+ }
495
+
496
+
497
+ jQuery(document.body).ready( function() {
498
+
499
+
500
+ jQuery( '.um-directory .um-search-filter select' ).each( function() {
501
+ if ( jQuery(this).find('option:not(:disabled)').length === 1 ) {
502
+ jQuery(this).prop('disabled', true);
503
+ }
504
+ jQuery(this).select2('destroy').select2();
505
+ });
506
+
507
+ /**
508
+ * Change View Type Handlers
509
+ */
510
+
511
+
512
+ //UI for change view type button
513
+ jQuery( document.body ).on( 'mouseover', '.um-directory .um-member-directory-view-type', function() {
514
+ if ( jQuery(this).hasClass('um-disabled') ) {
515
+ return;
516
+ }
517
+
518
+ var $obj = jQuery(this).find('.um-member-directory-view-type-a:visible');
519
+
520
+ $obj.hide();
521
+
522
+ if ( $obj.next().length ) {
523
+ $obj.next().show().tipsy('show');
524
+ } else {
525
+ jQuery(this).find( '.um-member-directory-view-type-a:first' ).show().tipsy('show');
526
+ }
527
+ }).on( 'mouseout', '.um-directory .um-member-directory-view-type', function() {
528
+ if ( jQuery(this).hasClass('um-disabled') ) {
529
+ return;
530
+ }
531
+
532
+ jQuery(this).find('.um-member-directory-view-type-a').hide().tipsy('hide');
533
+ jQuery(this).find('.um-member-directory-view-type-a[data-type="' + jQuery(this).parents( '.um-directory' ).data('view_type') + '"]').show();
534
+ });
535
+
536
+ //change layout handler
537
+ jQuery( document.body ).on( 'click', '.um-directory .um-member-directory-view-type-a', function() {
538
+ var directory = jQuery(this).parents('.um-directory');
539
+ if ( um_is_directory_busy( directory ) ) {
540
+ return false;
541
+ }
542
+
543
+ var $this = jQuery(this);
544
+ var views = $this.parents('.um-member-directory-view-type');
545
+
546
+ if ( views.hasClass('um-disabled') ) {
547
+ return;
548
+ }
549
+
550
+ um_members_show_preloader( directory );
551
+
552
+ var $obj = views.find('.um-member-directory-view-type-a:visible');
553
+
554
+ $obj.hide();
555
+
556
+ if ( $obj.next().length ) {
557
+ $obj.next().show().tipsy('show');
558
+ } else {
559
+ views.find( '.um-member-directory-view-type-a:first' ).show().tipsy('show');
560
+ }
561
+
562
+ var data = um_member_directory_last_data[ um_members_get_hash( directory ) ];
563
+ if ( data !== null ) {
564
+ var layout = $this.data('type');
565
+
566
+ um_set_url_from_data( directory, 'view_type', layout );
567
+ directory.data( 'view_type', layout );
568
+
569
+ um_build_template( directory, data );
570
+ }
571
+ um_members_hide_preloader( directory );
572
+ });
573
+
574
+
575
+ /**
576
+ * END: Change View Type Handlers
577
+ */
578
+
579
+
580
+ /**
581
+ * General Search
582
+ */
583
+
584
+
585
+ //searching
586
+ jQuery( document.body ).on( 'click', '.um-directory .um-do-search', function() {
587
+ var directory = jQuery(this).parents('.um-directory');
588
+ um_run_search( directory );
589
+ });
590
+
591
+
592
+ //make search on Enter click
593
+ jQuery( document.body ).on( 'keypress', '.um-directory .um-search-line', function(e) {
594
+ if ( e.which === 13 ) {
595
+ var directory = jQuery(this).parents('.um-directory');
596
+ um_run_search( directory );
597
+ }
598
+ });
599
+
600
+
601
+ /**
602
+ * END: General Search
603
+ */
604
+
605
+
606
+
607
+ /**
608
+ * Sorting
609
+ */
610
+
611
+ jQuery( document.body ).on( 'click', '.um-directory .um-member-directory-sorting-a .um-new-dropdown li a', function() {
612
+ var directory = jQuery(this).parents('.um-directory');
613
+
614
+ if ( um_is_directory_busy( directory ) ) {
615
+ return;
616
+ }
617
+
618
+ if ( jQuery( this ).data('selected') === 1 ) {
619
+ return;
620
+ }
621
+
622
+ um_members_show_preloader( directory );
623
+
624
+ var sort = jQuery(this).data('value');
625
+
626
+ directory.data( 'sorting', sort );
627
+ um_set_url_from_data( directory, 'sort', sort );
628
+
629
+ um_ajax_get_members( directory );
630
+
631
+ jQuery( this ).parents('.um-new-dropdown').find('a').data('selected', 0).prop('data-selected', 0).attr('data-selected', 0);
632
+ jQuery( this ).data('selected', 1).prop('data-selected', 1).attr('data-selected', 1);
633
+ jQuery( this ).parents('.um-member-directory-sorting-a').find('> a').html( jQuery( this ).html() );
634
+ });
635
+
636
+ /**
637
+ * END: Sorting
638
+ */
639
+
640
+
641
+
642
+ /**
643
+ * Pagination
644
+ */
645
+
646
+
647
+ jQuery( document.body ).on( 'click', '.um-directory .pagi:not(.current)', function() {
648
+ if ( jQuery(this).hasClass('disabled') ) {
649
+ return;
650
+ }
651
+
652
+ var directory = jQuery(this).parents('.um-directory');
653
+ if ( um_is_directory_busy( directory ) ) {
654
+ return;
655
+ }
656
+
657
+ um_members_show_preloader( directory );
658
+
659
+ var page;
660
+ if ( 'first' === jQuery(this).data('page') ) {
661
+ page = 1;
662
+ } else if ( 'prev' === jQuery(this).data('page') ) {
663
+ page = directory.data( 'page' )*1 - 1;
664
+ } else if ( 'next' === jQuery(this).data('page') ) {
665
+ page = directory.data( 'page' )*1 + 1;
666
+ } else if ( 'last' === jQuery(this).data('page') ) {
667
+ page = parseInt( directory.data( 'total_pages' ) );
668
+ } else {
669
+ page = parseInt( jQuery(this).data('page') );
670
+ }
671
+
672
+ if ( page === 1 ) {
673
+ directory.find('.pagi[data-page="first"], .pagi[data-page="prev"]').addClass('disabled');
674
+ directory.find('.pagi[data-page="prev"], .pagi[data-page="last"]').removeClass('disabled');
675
+ } else if ( page === parseInt( directory.data( 'total_pages' ) ) ) {
676
+ directory.find('.pagi[data-page="prev"], .pagi[data-page="last"]').addClass('disabled');
677
+ directory.find('.pagi[data-page="first"], .pagi[data-page="prev"]').removeClass('disabled');
678
+ } else {
679
+ directory.find('.pagi[data-page="prev"], .pagi[data-page="last"]').removeClass('disabled');
680
+ directory.find('.pagi[data-page="first"], .pagi[data-page="prev"]').removeClass('disabled');
681
+ }
682
+
683
+ directory.find('.pagi').removeClass('current');
684
+ directory.find('.pagi[data-page="' + page + '"]').addClass('current');
685
+
686
+ directory.data( 'page', page );
687
+ if ( page === 1 ) {
688
+ um_set_url_from_data( directory, 'page', '' );
689
+ } else {
690
+ um_set_url_from_data( directory, 'page', page );
691
+ }
692
+
693
+ um_ajax_get_members( directory );
694
+ });
695
+
696
+
697
+ //mobile pagination
698
+ jQuery( document.body ).on( 'change', '.um-directory .um-members-pagi-dropdown', function() {
699
+ var directory = jQuery(this).parents('.um-directory');
700
+
701
+ if ( um_is_directory_busy( directory ) ) {
702
+ return;
703
+ }
704
+
705
+ um_members_show_preloader( directory );
706
+
707
+ var page = jQuery(this).val();
708
+
709
+ directory.find('.pagi').removeClass('current');
710
+ directory.find('.pagi[data-page="' + page + '"]').addClass('current');
711
+
712
+ directory.data( 'page', page );
713
+ if ( page === 1 ) {
714
+ um_set_url_from_data( directory, 'page', '' );
715
+ } else {
716
+ um_set_url_from_data( directory, 'page', page );
717
+ }
718
+
719
+ um_ajax_get_members( directory );
720
+ });
721
+
722
+
723
+ /**
724
+ * END: Pagination
725
+ */
726
+
727
+
728
+ /**
729
+ * Profile Cards actions
730
+ */
731
+
732
+ jQuery( document.body ).on('click', '.um-directory .um-members.um-members-list .um-member-more a', function(e){
733
+ e.preventDefault();
734
+
735
+ var block = jQuery(this).parents('.um-member');
736
+
737
+ block.find('.um-member-more').hide();
738
+ block.find('.um-member-meta-main').slideDown();
739
+ block.find('.um-member-less').fadeIn();
740
+
741
+ return false;
742
+ });
743
+
744
+ jQuery( document.body ).on('click', '.um-directory .um-members.um-members-list .um-member-less a', function(e){
745
+ e.preventDefault();
746
+
747
+ var block = jQuery(this).parents('.um-member');
748
+
749
+ block.find('.um-member-less').hide();
750
+ block.find('.um-member-meta-main').slideUp();
751
+ block.find('.um-member-more').fadeIn();
752
+
753
+ return false;
754
+ });
755
+
756
+
757
+ jQuery( document.body ).on('click', '.um-directory .um-members.um-members-grid .um-member-more a', function(e){
758
  e.preventDefault();
759
 
760
  var block = jQuery(this).parents('.um-member');
762
  block.find('.um-member-more').hide();
763
  block.find('.um-member-meta').slideDown( function(){ UM_Member_Grid( container ) } );
764
  block.find('.um-member-less').fadeIn( );
765
+
766
  setTimeout(function(){ UM_Member_Grid( container ) }, 100);
767
 
768
  return false;
769
  });
770
 
771
+ jQuery( document.body ).on('click', '.um-directory .um-members.um-members-grid .um-member-less a', function(e){
772
  e.preventDefault();
773
 
774
  var block = jQuery(this).parents('.um-member');
782
  return false;
783
  });
784
 
785
+ /**
786
+ * END: Profile Cards actions
787
+ */
788
+
789
+
790
+ //filters controls
791
+ jQuery('.um-member-directory-filters-a').click( function() {
792
+ var obj = jQuery(this);
793
+ var search_bar = obj.parents('.um-directory').find('.um-search');
794
+
795
+ if ( search_bar.is( ':visible' ) ) {
796
+ search_bar.slideUp( 250, function(){
797
+ obj.toggleClass('um-member-directory-filters-visible');
798
+ search_bar.parents('.um-member-directory-header-row').toggleClass('um-header-row-invisible');
799
+ });
800
+ } else {
801
+ search_bar.slideDown({
802
+ start: function() {
803
+ jQuery(this).css({
804
+ display: "grid"
805
+ });
806
+ obj.toggleClass('um-member-directory-filters-visible');
807
+ search_bar.parents('.um-member-directory-header-row').toggleClass('um-header-row-invisible');
808
+ }
809
+ }, 250 );
810
+ }
811
+ });
812
+
813
+
814
+ //filtration process
815
+ jQuery( document.body ).on( 'change', '.um-directory .um-search-filter select', function() {
816
+ if ( jQuery(this).val() === '' ) {
817
+ return;
818
+ }
819
+
820
+ var directory = jQuery(this).parents('.um-directory');
821
+
822
+ if ( um_is_directory_busy( directory ) ) {
823
+ return;
824
+ }
825
+
826
+ um_members_show_preloader( directory );
827
+
828
+ var filter_name = jQuery(this).prop('name');
829
+
830
+ var current_value = um_get_data_for_directory( directory, 'filter_' + filter_name );
831
+ if ( typeof current_value == 'undefined' ) {
832
+ current_value = [];
833
+ } else {
834
+ current_value = current_value.split( '||' );
835
+ }
836
+
837
+ if ( -1 === jQuery.inArray( jQuery(this).val(), current_value ) ) {
838
+ current_value.push( jQuery(this).val() );
839
+ current_value = current_value.join( '||' );
840
+
841
+ um_set_url_from_data( directory, 'filter_' + filter_name, current_value );
842
 
843
+ //set 1st page after filtration
844
+ directory.data( 'page', 1 );
845
+ um_set_url_from_data( directory, 'page', '' );
846
+ }
847
+
848
+ //disable options and disable select if all options are disabled
849
+ jQuery(this).find('option[value="' + jQuery(this).val() + '"]').prop('disabled', true).hide();
850
+ if ( jQuery(this).find('option:not(:disabled)').length === 1 ) {
851
+ jQuery(this).prop('disabled', true);
852
+ }
853
+
854
+ jQuery(this).select2('destroy').select2();
855
+ jQuery(this).val('').trigger( 'change' );
856
+
857
+ um_ajax_get_members( directory );
858
+
859
+ um_change_tag( directory );
860
+
861
+ directory.data( 'searched', 1 );
862
+ directory.find( '.um-member-directory-sorting-options' ).prop( 'disabled', false );
863
+ directory.find( '.um-member-directory-view-type' ).removeClass( 'um-disabled' );
864
+ });
865
+
866
+
867
+ jQuery( document.body ).on( 'click', '.um-directory .um-members-filter-remove', function() {
868
+ var directory = jQuery(this).parents('.um-directory');
869
+
870
+ if ( um_is_directory_busy( directory ) || ! directory ) {
871
+ return;
872
+ }
873
+
874
+ um_members_show_preloader( directory );
875
+
876
+ var removeItem = jQuery(this).data('value');
877
+ var filter_name = jQuery(this).data('name');
878
+
879
+ var type = jQuery(this).data('type');
880
+ if ( type === 'select' ) {
881
+
882
+ var current_value = um_get_data_for_directory( directory, 'filter_' + filter_name );
883
+ if ( typeof current_value == 'undefined' ) {
884
+ current_value = [];
885
+ } else {
886
+ current_value = current_value.split( '||' );
887
  }
 
888
 
889
+ if ( -1 !== jQuery.inArray( removeItem.toString(), current_value ) ) {
890
+ current_value = jQuery.grep( current_value, function( value ) {
891
+ return value !== removeItem.toString();
892
+ });
893
+ }
894
 
895
+ if ( ! current_value.length ) {
896
+ current_value = '';
 
897
  }
898
+
899
+ um_set_url_from_data( directory, 'filter_' + filter_name, current_value );
900
+
901
+
902
+ var select = jQuery( '.um-search-filter select[name="' + filter_name + '"]' );
903
+ select.find('option[value="' + removeItem + '"]').prop('disabled', false).show();
904
+
905
+ //disable options and disable select if all options are disabled
906
+ if ( select.find('option:not(:disabled)').length > 1 ) {
907
+ select.prop('disabled', false);
908
+ }
909
+ select.select2('destroy').select2();
910
+
911
+ } else if ( type === 'slider' ) {
912
+ um_set_url_from_data( directory, 'filter_' + filter_name + '_from','' );
913
+ um_set_url_from_data( directory, 'filter_' + filter_name + '_to', '' );
914
+ } else if ( type === 'datepicker' ) {
915
+ um_set_url_from_data( directory, 'filter_' + filter_name + '_from','' );
916
+ um_set_url_from_data( directory, 'filter_' + filter_name + '_to', '' );
917
+ } else if ( type === 'timepicker' ) {
918
+ um_set_url_from_data( directory, 'filter_' + filter_name + '_from','' );
919
+ um_set_url_from_data( directory, 'filter_' + filter_name + '_to', '' );
920
+ }
921
+
922
+
923
+ //set 1st page after filtration
924
+ directory.data( 'page', 1 );
925
+ um_set_url_from_data( directory, 'page', '' );
926
+
927
+ jQuery(this).tipsy('hide');
928
+ jQuery(this).parents('.um-members-filter-tag').remove();
929
+
930
+ if ( directory.find( '.um-members-filter-remove' ).length === 0 ) {
931
+ directory.find('.um-clear-filters').hide();
932
+ } else {
933
+ directory.find('.um-clear-filters').show();
934
+ }
935
+
936
+ var show_after_search = directory.data('must-search');
937
+ if ( show_after_search === 1 ) {
938
+ var search = um_get_search( directory );
939
+ if ( directory.find( '.um-members-filter-remove' ).length === 0 && ! search ) {
940
+ directory.data( 'searched', 0 );
941
+ directory.find('.um-members-grid, .um-members-list').remove();
942
+ directory.find( '.um-member-directory-sorting-options' ).prop( 'disabled', true );
943
+ directory.find( '.um-member-directory-view-type' ).addClass( 'um-disabled' );
944
+ um_members_hide_preloader( directory );
945
+ return;
946
+ }
947
+ }
948
+
949
+ directory.find( '.um-member-directory-sorting-options' ).prop( 'disabled', false );
950
+ directory.find( '.um-member-directory-view-type' ).removeClass( 'um-disabled' );
951
+
952
+ um_ajax_get_members( directory );
953
+ });
954
+
955
+
956
+ jQuery( document.body ).on( 'click', '.um-directory .um-clear-filters-a', function() {
957
+ var directory = jQuery(this).parents('.um-directory');
958
+ if ( um_is_directory_busy( directory ) ) {
959
+ return;
960
+ }
961
+
962
+ um_members_show_preloader( directory );
963
+
964
+ directory.find( '.um-members-filter-remove' ).each( function() {
965
+ var removeItem = jQuery(this).data('value');
966
+ var filter_name = jQuery(this).data('name');
967
+
968
+ var type = jQuery(this).data('type');
969
+ if ( type === 'select' ) {
970
+
971
+ var current_value = um_get_data_for_directory( directory, 'filter_' + filter_name );
972
+ if ( typeof current_value == 'undefined' ) {
973
+ current_value = [];
974
+ } else {
975
+ current_value = current_value.split( '||' );
976
+ }
977
+
978
+ if ( -1 !== jQuery.inArray( removeItem.toString(), current_value ) ) {
979
+ current_value = jQuery.grep( current_value, function( value ) {
980
+ return value !== removeItem.toString();
981
+ });
982
+ }
983
+
984
+ if ( ! current_value.length ) {
985
+ current_value = '';
986
+ }
987
+
988
+ um_set_url_from_data( directory, 'filter_' + filter_name, current_value );
989
+
990
+ var select = jQuery( '.um-search-filter select[name="' + filter_name + '"]' );
991
+ select.find('option[value="' + removeItem + '"]').prop('disabled', false).show();
992
+
993
+ //disable options and disable select if all options are disabled
994
+ if ( select.find('option:not(:disabled)').length > 1 ) {
995
+ select.prop('disabled', false);
996
+ }
997
+ select.select2('destroy').select2();
998
+
999
+ } else if ( type === 'slider' ) {
1000
+ um_set_url_from_data( directory, 'filter_' + filter_name + '_from','' );
1001
+ um_set_url_from_data( directory, 'filter_' + filter_name + '_to', '' );
1002
+ } else if ( type === 'datepicker' ) {
1003
+ um_set_url_from_data( directory, 'filter_' + filter_name + '_from','' );
1004
+ um_set_url_from_data( directory, 'filter_' + filter_name + '_to', '' );
1005
+ } else if ( type === 'timepicker' ) {
1006
+ um_set_url_from_data( directory, 'filter_' + filter_name + '_from','' );
1007
+ um_set_url_from_data( directory, 'filter_' + filter_name + '_to', '' );
1008
+ }
1009
+ });
1010
+
1011
+ //set 1st page after filtration
1012
+ directory.data( 'page', 1 );
1013
+ um_set_url_from_data( directory, 'page', '' );
1014
+ directory.find('.um-members-filter-tag').remove();
1015
+
1016
+ //jQuery(this).hide();
1017
+ if ( directory.find( '.um-members-filter-remove' ).length === 0 ) {
1018
+ directory.find('.um-clear-filters').hide();
1019
+ directory.find('.um-clear-filters').parents('.um-member-directory-header-row').addClass( 'um-header-row-invisible' );
1020
+ } else {
1021
+ directory.find('.um-clear-filters').show();
1022
+ directory.find('.um-clear-filters').parents('.um-member-directory-header-row').removeClass( 'um-header-row-invisible' );
1023
+ }
1024
+
1025
+ var show_after_search = directory.data('must-search');
1026
+ if ( show_after_search === 1 ) {
1027
+ var search = um_get_search( directory );
1028
+ if ( ! search ) {
1029
+ directory.data( 'searched', 0 );
1030
+ directory.find('.um-members-grid, .um-members-list').remove();
1031
+ directory.find( '.um-member-directory-sorting-options' ).prop( 'disabled', true );
1032
+ directory.find( '.um-member-directory-view-type' ).addClass( 'um-disabled' );
1033
+ um_members_hide_preloader( directory );
1034
+ return;
1035
+ }
1036
+ }
1037
+
1038
+ directory.find( '.um-member-directory-sorting-options' ).prop( 'disabled', false );
1039
+ directory.find( '.um-member-directory-view-type' ).removeClass( 'um-disabled' );
1040
+
1041
+ um_ajax_get_members( directory );
1042
+ });
1043
+
1044
+
1045
+ /**
1046
+ * First Page Loading
1047
+ */
1048
+
1049
+
1050
+ //Init Directories
1051
+ jQuery( '.um-directory' ).each( function() {
1052
+ var directory = jQuery(this);
1053
+ var hash = um_members_get_hash( directory );
1054
+ um_member_directories.push( hash );
1055
+
1056
+ var show_after_search = directory.data('must-search');
1057
+ if ( show_after_search === 1 ) {
1058
+ var search = um_get_search( directory );
1059
+ var filters_data = um_get_filters_data( directory );
1060
+ if ( ! filters_data.length && ! search ) {
1061
+ return;
1062
+ }
1063
+ }
1064
+
1065
+ um_members_show_preloader( directory );
1066
+ um_ajax_get_members( directory, {first_load:true} );
1067
+
1068
+
1069
+ //slider filter
1070
+ directory.find('.um-slider').each( function() {
1071
+ var slider = jQuery( this );
1072
+ var directory = slider.parents('.um-directory');
1073
+
1074
+ var filter_name = slider.data('field_name');
1075
+
1076
+ var min_default_value = um_get_data_for_directory( directory, 'filter_' + filter_name + '_from' );
1077
+ var max_default_value = um_get_data_for_directory( directory, 'filter_' + filter_name + '_to' );
1078
+ if ( typeof min_default_value == 'undefined' ) {
1079
+ min_default_value = parseInt( slider.data('min') );
1080
+ }
1081
+
1082
+ if ( typeof max_default_value == 'undefined' ) {
1083
+ max_default_value = parseInt( slider.data('max') );
1084
+ }
1085
+
1086
+ var default_value = [ min_default_value, max_default_value ];
1087
+
1088
+ slider.slider({
1089
+ range: true,
1090
+ min: parseInt( slider.data('min') ),
1091
+ max: parseInt( slider.data('max') ),
1092
+ values: default_value,
1093
+ create: function( event, ui ) {
1094
+ //console.log( ui );
1095
+ },
1096
+ step: 1,
1097
+ slide: function( event, ui ) {
1098
+ um_set_range_label( jQuery( this ), ui );
1099
+ },
1100
+ stop: function( event, ui ) {
1101
+ if ( ! um_is_directory_busy( directory ) ) {
1102
+ um_set_url_from_data( directory, 'filter_' + filter_name + '_from', ui.values[0] );
1103
+ um_set_url_from_data( directory, 'filter_' + filter_name + '_to', ui.values[1] );
1104
+
1105
+ //set 1st page after filtration
1106
+ directory.data( 'page', 1 );
1107
+ um_set_url_from_data( directory, 'page', '' );
1108
+ um_ajax_get_members( directory );
1109
+
1110
+ um_change_tag( directory );
1111
+
1112
+ directory.data( 'searched', 1 );
1113
+ directory.find( '.um-member-directory-sorting-options' ).prop( 'disabled', false );
1114
+ directory.find( '.um-member-directory-view-type' ).removeClass( 'um-disabled' );
1115
+ }
1116
+ }
1117
+ });
1118
+
1119
+ um_set_range_label( slider );
1120
+ });
1121
+
1122
+
1123
+ //datepicker filter
1124
+ directory.find('.um-datepicker-filter').each( function() {
1125
+ var elem = jQuery(this);
1126
+
1127
+ var min = new Date( elem.data('date_min')*1000 );
1128
+ var max = new Date( elem.data('date_max')*1000 );
1129
+
1130
+ var $input = elem.pickadate({
1131
+ selectYears: true,
1132
+ min: min,
1133
+ max: max,
1134
+ formatSubmit: 'yyyy/mm/dd',
1135
+ hiddenName: true,
1136
+ onOpen: function() {
1137
+ elem.blur();
1138
+ },
1139
+ onClose: function() {
1140
+ elem.blur();
1141
+ },
1142
+ onSet: function( context ) {
1143
+ var directory = elem.parents('.um-directory');
1144
+
1145
+ if ( um_is_directory_busy( directory ) ) {
1146
+ return;
1147
+ }
1148
+
1149
+ um_members_show_preloader( directory );
1150
+
1151
+ var filter_name = elem.data( 'filter_name' );
1152
+ var range = elem.data( 'range' );
1153
+
1154
+ var current_value_from = um_get_data_for_directory( directory, 'filter_' + filter_name + '_from' );
1155
+ var current_value_to = um_get_data_for_directory( directory, 'filter_' + filter_name + '_to' );
1156
+ if ( typeof current_value_from === "undefined" ) {
1157
+ current_value_from = min / 1000;
1158
+ }
1159
+ if ( typeof current_value_to === "undefined" ) {
1160
+ current_value_to = max / 1000;
1161
+ }
1162
+
1163
+ var select_val = context.select / 1000;
1164
+ var change_val = elem.val();
1165
+
1166
+ if ( range === 'from' ) {
1167
+ current_value_from = select_val;
1168
+ } else if ( range === 'to' ) {
1169
+ current_value_to = select_val;
1170
+ }
1171
+
1172
+ um_set_url_from_data( directory, 'filter_' + filter_name + '_from', current_value_from );
1173
+ um_set_url_from_data( directory, 'filter_' + filter_name + '_to', current_value_to );
1174
+
1175
+ //set 1st page after filtration
1176
+ directory.data( 'page', 1 );
1177
+ um_set_url_from_data( directory, 'page', '' );
1178
+
1179
+ um_ajax_get_members( directory );
1180
+
1181
+ um_change_tag( directory );
1182
+
1183
+ directory.data( 'searched', 1 );
1184
+ directory.find( '.um-member-directory-sorting-options' ).prop( 'disabled', false );
1185
+ directory.find( '.um-member-directory-view-type' ).removeClass( 'um-disabled' );
1186
+ }
1187
+ });
1188
+
1189
+ var $picker = $input.pickadate('picker');
1190
+ var $fname = elem.data('filter_name');
1191
+ var $frange = elem.data('range');
1192
+ var $directory = elem.parents('.um-directory');
1193
+
1194
+ var query_value = um_get_data_for_directory( $directory, 'filter_' + $fname + '_' + $frange );
1195
+ if ( typeof query_value !== 'undefined' ) {
1196
+ $picker.set( 'select', query_value*1000 );
1197
+ }
1198
+
1199
+ });
1200
+
1201
+
1202
+ //timepicker filter
1203
+ directory.find('.um-timepicker-filter').each( function() {
1204
+ var elem = jQuery(this);
1205
+
1206
+ //using arrays formatted as [HOUR,MINUTE]
1207
+
1208
+ var min = elem.data('min');
1209
+ var max = elem.data('max');
1210
+ var picker_min = min.split(':');
1211
+ var picker_max = max.split(':');
1212
+
1213
+ var $input = elem.pickatime({
1214
+ format: elem.data('format'),
1215
+ interval: parseInt( elem.data('intervals') ),
1216
+ min: [picker_min[0],picker_min[1]],
1217
+ max: [picker_max[0],picker_max[1]],
1218
+ formatSubmit: 'HH:i',
1219
+ hiddenName: true,
1220
+ onOpen: function() { elem.blur(); },
1221
+ onClose: function() { elem.blur(); },
1222
+ onSet: function( context ) {
1223
+ var directory = elem.parents('.um-directory');
1224
+
1225
+ if ( um_is_directory_busy( directory ) ) {
1226
+ return;
1227
+ }
1228
+
1229
+ um_members_show_preloader( directory );
1230
+
1231
+ var filter_name = elem.data( 'filter_name' );
1232
+ var range = elem.data( 'range' );
1233
+
1234
+ var current_value_from = um_get_data_for_directory( directory, 'filter_' + filter_name + '_from' );
1235
+ var current_value_to = um_get_data_for_directory( directory, 'filter_' + filter_name + '_to' );
1236
+ if ( typeof current_value_from === "undefined" ) {
1237
+ current_value_from = min;
1238
+ }
1239
+ if ( typeof current_value_to === "undefined" ) {
1240
+ current_value_to = max;
1241
+ }
1242
+
1243
+ if ( typeof context.select !== 'undefined' ) {
1244
+ var select_val = context.select / 60;
1245
+ var change_val = elem.val();
1246
+
1247
+ if ( range === 'from' ) {
1248
+ current_value_from = select_val + ':00';
1249
+ } else if ( range === 'to' ) {
1250
+ current_value_to = select_val + ':00';
1251
+ }
1252
+ } else {
1253
+ if ( range === 'from' ) {
1254
+ current_value_from = min;
1255
+ } else if ( range === 'to' ) {
1256
+ current_value_to = max;
1257
+ }
1258
+ }
1259
+
1260
+ um_set_url_from_data( directory, 'filter_' + filter_name + '_from', current_value_from );
1261
+ um_set_url_from_data( directory, 'filter_' + filter_name + '_to', current_value_to );
1262
+
1263
+ //set 1st page after filtration
1264
+ directory.data( 'page', 1 );
1265
+ um_set_url_from_data( directory, 'page', '' );
1266
+
1267
+ um_ajax_get_members( directory );
1268
+
1269
+ um_change_tag( directory );
1270
+
1271
+ directory.data( 'searched', 1 );
1272
+ directory.find( '.um-member-directory-sorting-options' ).prop( 'disabled', false );
1273
+ directory.find( '.um-member-directory-view-type' ).removeClass( 'um-disabled' );
1274
+ }
1275
+ });
1276
+
1277
+
1278
+ var $picker = $input.pickatime('picker');
1279
+ var $fname = elem.data('filter_name');
1280
+ var $frange = elem.data('range');
1281
+ var $directory = elem.parents('.um-directory');
1282
+
1283
+ var query_value = um_get_data_for_directory( $directory, 'filter_' + $fname + '_' + $frange );
1284
+ if ( typeof query_value !== 'undefined' ) {
1285
+ var arr = query_value.split(':');
1286
+ $picker.set( 'select', arr[0]*60 );
1287
+ }
1288
+ });
1289
+
1290
+ um_change_tag( directory );
1291
+ });
1292
+
1293
+
1294
+ //history events when back/forward and change window.location.hash
1295
+ window.addEventListener( "popstate", function(e) {
1296
+ jQuery( '.um-directory' ).each( function() {
1297
+ var directory = jQuery(this);
1298
+ var hash = um_members_get_hash( directory );
1299
+ um_member_directories.push( hash );
1300
+
1301
+ um_members_show_preloader( directory );
1302
+
1303
+ // clear layout and header
1304
+ directory.find('.um-members-grid, .um-members-list, .um-members-intro').remove();
1305
+
1306
+ // set search from history
1307
+ if ( directory.find( '.um-member-directory-search-line' ).length ) {
1308
+ var search = um_get_data_for_directory( directory, 'search' );
1309
+ if ( typeof search == 'undefined' ) {
1310
+ search = '';
1311
+ }
1312
+ directory.data( 'general_search', search );
1313
+ directory.find('.um-search-line').val( search );
1314
+ }
1315
+
1316
+ var page = um_get_data_for_directory( directory, 'page' );
1317
+ if ( typeof page == 'undefined' ) {
1318
+ page = 1;
1319
+ } else if ( page > directory.data( 'total_pages' ) ) {
1320
+ page = directory.data( 'total_pages' );
1321
+ }
1322
+
1323
+ directory.data( 'page', page ).attr( 'data-page', page );
1324
+
1325
+ //sorting from history
1326
+ if ( directory.find( '.um-member-directory-sorting' ).length ) {
1327
+ var sort = um_get_data_for_directory( directory, 'sort' );
1328
+ if ( typeof sort == 'undefined' ) {
1329
+ sort = directory.find( '.um-new-dropdown[data-element=".um-member-directory-sorting-a"]' ).find('a[data-default="1"]').data('value');
1330
+ }
1331
+ directory.data( 'sorting', sort );
1332
+
1333
+ var sort_dropdown = directory.find( '.um-new-dropdown[data-element=".um-member-directory-sorting-a"]' );
1334
+ sort_dropdown.find('a').data('selected', 0).prop('data-selected', 0).attr('data-selected', 0);
1335
+ sort_dropdown.find('a[data-value="' + sort + '"]').data('selected', 1).prop('data-selected', 1).attr('data-selected', 1);
1336
+ directory.find('.um-member-directory-sorting-a').find('> a').html( sort_dropdown.find('a[data-value="' + sort + '"]').html() );
1337
+ }
1338
+
1339
+ //view type from history
1340
+ if ( directory.find( '.um-member-directory-view-type' ).length ) {
1341
+ var layout = um_get_data_for_directory( directory, 'view_type' );
1342
+ if ( typeof layout == 'undefined' ) {
1343
+ layout = directory.find( '.um-member-directory-view-type-a[data-default="1"]' ).data('type');
1344
+ }
1345
+ directory.data( 'view_type', layout );
1346
+
1347
+ directory.find('.um-member-directory-view-type .um-member-directory-view-type-a').hide();
1348
+ directory.find('.um-member-directory-view-type .um-member-directory-view-type-a[data-type="' + layout + '"]').show();
1349
+ }
1350
+
1351
+ //datepicker filter
1352
+ directory.find('.um-datepicker-filter').each( function() {
1353
+ var elem = jQuery(this);
1354
+
1355
+ var $picker = elem.pickadate('picker');
1356
+ var $fname = elem.data('filter_name');
1357
+ var $frange = elem.data('range');
1358
+
1359
+ var query_value = um_get_data_for_directory( directory, 'filter_' + $fname + '_' + $frange );
1360
+ if ( typeof query_value !== 'undefined' ) {
1361
+ $picker.set( 'select', query_value*1000 );
1362
+ } else {
1363
+ $picker.clear();
1364
+ }
1365
+ });
1366
+
1367
+ directory.find('.um-slider').each( function() {
1368
+ var slider = jQuery( this );
1369
+ var filter_name = slider.data('field_name');
1370
+
1371
+ var min_default_value = um_get_data_for_directory( directory, 'filter_' + filter_name + '_from' );
1372
+ var max_default_value = um_get_data_for_directory( directory, 'filter_' + filter_name + '_to' );
1373
+ if ( typeof min_default_value == 'undefined' ) {
1374
+ min_default_value = slider.data('min');
1375
+ }
1376
+ min_default_value = parseInt( min_default_value );
1377
+
1378
+ if ( typeof max_default_value == 'undefined' ) {
1379
+ max_default_value = slider.data('max');
1380
+ }
1381
+ max_default_value = parseInt( max_default_value );
1382
+
1383
+ slider.slider( 'values', [min_default_value, max_default_value] );
1384
+ um_set_range_label( slider );
1385
+ });
1386
+
1387
+ //timepicker filter
1388
+ directory.find('.um-timepicker-filter').each( function() {
1389
+ var elem = jQuery(this);
1390
+
1391
+ var $picker = elem.pickatime('picker');
1392
+ var $fname = elem.data('filter_name');
1393
+ var $frange = elem.data('range');
1394
+
1395
+ var query_value = um_get_data_for_directory( directory, 'filter_' + $fname + '_' + $frange );
1396
+ if ( typeof query_value !== 'undefined' ) {
1397
+ var arr = query_value.split(':');
1398
+ $picker.set( 'select', arr[0]*60 );
1399
+ } else {
1400
+ $picker.clear();
1401
+ }
1402
+ });
1403
+
1404
+
1405
+ var show_after_search = directory.data('must-search');
1406
+ if ( show_after_search === 1 ) {
1407
+ var search = um_get_search( directory );
1408
+ var filters_data = um_get_filters_data( directory );
1409
+ if ( ! filters_data.length && ! search ) {
1410
+ directory.data( 'searched', 0 );
1411
+ um_members_hide_preloader( directory );
1412
+ return;
1413
+ } else {
1414
+ directory.data( 'searched', 1 );
1415
+ }
1416
+ }
1417
+
1418
+ um_ajax_get_members( directory );
1419
+
1420
+ um_change_tag( directory );
1421
+ });
1422
  });
1423
 
1424
  });
assets/js/um-members.min.js CHANGED
@@ -1 +1 @@
1
- jQuery(document).ready(function(){jQuery(".um-members").each(function(){UM_Member_Grid(jQuery(this))}),jQuery(".um-directory .um-member-connect").each(function(){0==jQuery(this).find("a").length&&jQuery(this).remove()}),jQuery(".um-member-meta-main").each(function(){0==jQuery(this).find(".um-member-metaline").length&&0==jQuery(this).find(".um-member-connect").find("a").length&&jQuery(this).remove()}),jQuery(document.body).on("click",".um-member-more a",function(e){e.preventDefault();var r=jQuery(this).parents(".um-member"),m=jQuery(this).parents(".um-members");return r.find(".um-member-more").hide(),r.find(".um-member-meta").slideDown(function(){UM_Member_Grid(m)}),r.find(".um-member-less").fadeIn(),setTimeout(function(){UM_Member_Grid(m)},100),!1}),jQuery(document.body).on("click",".um-member-less a",function(e){e.preventDefault();var r=jQuery(this).parents(".um-member"),m=jQuery(this).parents(".um-members");return r.find(".um-member-less").hide(),r.find(".um-member-meta").slideUp(function(){r.find(".um-member-more").fadeIn(),UM_Member_Grid(m)}),!1}),jQuery(document.body).on("click",".um-do-search",function(e){return e.preventDefault(),jQuery(this).parents("form").find("input").filter(function(e){if(0===this.value.length)return!0}).prop("disabled",!0),jQuery(this).parents("form").find("select").filter(function(e){if(0===this.value.length)return!0}).prop("disabled",!0),jQuery(this).parents("form").submit(),!1})});
1
+ var um_members_directory_busy=[],um_member_directories=[],um_member_directory_last_data=[];function um_parse_current_url(){var t={},a=window.location.search.substring(1).split("&");return jQuery.each(a,function(e){var r=a[e].split("=");t[r[0]]=r[1]}),t}function um_get_data_for_directory(e,r){var t=um_members_get_hash(e),a={},i=um_parse_current_url();if(jQuery.each(i,function(e){-1!==e.indexOf("_"+t)&&""!==i[e]&&(a[e.replace("_"+t,"")]=i[e])}),r){if(void 0!==a[r])try{a[r]=decodeURI(a[r])}catch(e){console.error(e)}return a[r]}return a}function um_set_url_from_data(e,r,t){var a=um_members_get_hash(e),i=um_get_data_for_directory(e),m={};""!==t&&(m[r+"_"+a]=t),jQuery.each(i,function(e){r===e?""!==t&&(m[e+"_"+a]=t):m[e+"_"+a]=i[e]}),jQuery.each(um_member_directories,function(e){var r=um_member_directories[e];if(r!==a){var t=um_get_data_for_directory(jQuery('.um-directory[data-hash="'+r+'"]'));jQuery.each(t,function(e){m[e+"_"+r]=t[e]})}});var d=[];jQuery.each(m,function(e){d.push(e+"="+m[e])});var u="?"+(d=wp.hooks.applyFilters("um_member_directory_url_attrs",d)).join("&");"?"===u&&(u=""),window.history.pushState("string","UM Member Directory",window.location.origin+window.location.pathname+u)}function um_members_get_hash(e){return e.data("hash")}function um_is_directory_busy(e){var r=um_members_get_hash(e);return void 0!==um_members_directory_busy[r]&&um_members_directory_busy[r]}function um_members_show_preloader(e){um_members_directory_busy[um_members_get_hash(e)]=!0,e.find(".um-members-overlay").show()}function um_members_hide_preloader(e){um_members_directory_busy[um_members_get_hash(e)]=!1,e.find(".um-members-overlay").hide()}function um_set_range_label(e,r){var t=e.siblings(".um-slider-range").data("placeholder");t=r?t.replace("{min_range}",r.values[0]).replace("{max_range}",r.values[1]).replace("{field_label}",e.siblings(".um-slider-range").data("label")):t.replace("{min_range}",e.slider("values",0)).replace("{max_range}",e.slider("values",1)).replace("{field_label}",e.siblings(".um-slider-range").data("label")),e.siblings(".um-slider-range").html(t),e.siblings(".um_range_min").val(e.slider("values",0)),e.siblings(".um_range_max").val(e.slider("values",1))}function um_get_search(e){return e.find(".um-search-line").length?e.find(".um-search-line").val():""}function um_get_sort(e){return e.data("sorting")}function um_get_current_page(e){var r=e.data("page");return r&&void 0!==r||(r=1),r}function um_ajax_get_members(m,t){var a=um_members_get_hash(m),e=um_get_current_page(m),r=um_get_search(m),i=um_get_sort(m),d=-(new Date).getTimezoneOffset()/60,u={directory_id:a,page:e,search:r,sorting:i,gmt_offset:d,post_refferer:m.data("base-post"),nonce:um_scripts.nonce};m.find(".um-search-filter").length&&m.find(".um-search-filter").each(function(){var e=jQuery(this);if(e.find(".um-slider").length){var r=e.find(".um-slider").data("field_name"),t=um_get_data_for_directory(m,"filter_"+r+"_from"),a=um_get_data_for_directory(m,"filter_"+r+"_to");void 0===t&&void 0===a||(u[r]=[t,a])}else if(e.find(".um-datepicker-filter").length){r=e.find(".um-datepicker-filter").data("filter_name"),t=um_get_data_for_directory(m,"filter_"+r+"_from"),a=um_get_data_for_directory(m,"filter_"+r+"_to");void 0===t&&void 0===a||(u[r]=[t,a])}else if(e.find(".um-timepicker-filter").length){r=e.find(".um-timepicker-filter").data("filter_name"),t=um_get_data_for_directory(m,"filter_"+r+"_from"),a=um_get_data_for_directory(m,"filter_"+r+"_to");void 0===t&&void 0===a||(u[r]=[t,a])}else{r=e.find("select").attr("name");var i=um_get_data_for_directory(m,"filter_"+r);void 0!==i&&(u[r]=i.split("||"))}}),u=wp.hooks.applyFilters("um_member_directory_filter_request",u),wp.ajax.send("um_get_members",{data:u,success:function(e){um_member_directory_last_data[a]=e,um_build_template(m,e);var r=wp.template("um-members-pagination");m.find(".um-members-pagination-box").html(r(e)),m.data("total_pages",e.pagination.total_pages),e.pagination.total_pages?(m.find(".um-member-directory-sorting-options").prop("disabled",!1),m.find(".um-member-directory-view-type").removeClass("um-disabled")):(m.find(".um-member-directory-sorting-options").prop("disabled",!0),m.find(".um-member-directory-view-type").addClass("um-disabled")),jQuery(document).trigger("um_members_rendered",t),um_init_new_dropdown(),um_members_hide_preloader(m)},error:function(e){console.log(e),um_members_hide_preloader(m)}})}function um_build_template(e,r){var t=e.data("view_type"),a=wp.template("um-member-"+t);e.find(".um-members-grid, .um-members-list").remove(),e.find(".um-members-wrapper").prepend(a(r.users));var i=wp.template("um-members-header");e.find(".um-members-intro").remove(),e.find(".um-members-wrapper").prepend(i(r)),e.addClass("um-loaded"),e.find(".um-members.um-members-grid").length&&UM_Member_Grid(e.find(".um-members.um-members-grid")),jQuery(document).trigger("um_build_template",[e,r]),jQuery(window).trigger("resize"),init_tipsy()}function UM_Member_Grid(e){e.find(".um-member").length&&e.imagesLoaded(function(){e.masonry({itemSelector:".um-member",columnWidth:".um-member",gutter:".um-gutter-sizer"}).on("layoutComplete",function(e,r){jQuery(document).trigger("um_grid_initialized",[e,r])})})}function um_get_filters_data(s){var _=[];return s.find(".um-search-filter").each(function(){var t,a,d,i=jQuery(this);if(i.find("input.um-datepicker-filter").length)d="datepicker",i.find("input.um-datepicker-filter").each(function(){if("to"!==jQuery(this).data("range")){var e=jQuery(this).data("filter_name"),r=um_get_data_for_directory(s,"filter_"+e+"_from"),t=um_get_data_for_directory(s,"filter_"+e+"_to");if(void 0!==r||void 0!==t){var a,i=jQuery(this).val(),m=s.find('input.um-datepicker-filter[data-range="to"][data-filter_name="'+e+'"]').val();i===m?a=m:""!==i&&""!==m?a=i+" - "+m:""===i?a="before "+m:""===m&&(a="since "+i),_.push({name:e,label:jQuery(this).data("filter-label"),value_label:a,value:[r,t],type:d})}}});else if(i.find("input.um-timepicker-filter").length)d="timepicker",i.find("input.um-timepicker-filter").each(function(){if("to"!==jQuery(this).data("range")){var e=jQuery(this).data("filter_name"),r=um_get_data_for_directory(s,"filter_"+e+"_from"),t=um_get_data_for_directory(s,"filter_"+e+"_to");if(void 0!==r||void 0!==t){var a,i=jQuery(this).val(),m=s.find('input.um-timepicker-filter[data-range="to"][data-filter_name="'+e+'"]').val();i===m?a=m:""!==i&&""!==m?a=i+" - "+m:""===i?a="before "+m:""===m&&(a="since "+i),_.push({name:e,label:jQuery(this).data("filter-label"),value_label:a,value:[r,t],type:d})}}});else if(i.find("select").length){d="select",t=i.find("select").attr("name"),a=i.find("select").data("placeholder");var m=um_get_data_for_directory(s,"filter_"+t);m=void 0===m?[]:m.split("||"),jQuery.each(m,function(e){var r=i.find('select option[value="'+m[e]+'"]').data("value_label");_.push({name:t,label:a,value_label:r,value:m[e],type:d})})}else if(i.find("div.ui-slider").length){d="slider",t=i.find("div.ui-slider").data("field_name");var e=um_get_data_for_directory(s,"filter_"+t+"_from"),r=um_get_data_for_directory(s,"filter_"+t+"_to");if(void 0===e&&void 0===r)return;a=i.find("div.um-slider-range").data("label");var u=i.find("div.um-slider-range").data("placeholder").replace("{min_range}",e).replace("{max_range}",r).replace("{field_label}",i.find("div.um-slider-range").data("label"));_.push({name:t,label:a,value_label:u,value:[e,r],type:d})}}),_}function um_change_tag(e){var r=um_get_filters_data(e);e.find(".um-members-filter-tag").remove();var t=e.find(".um-filtered-line");if(t.length){var a=wp.template("um-members-filtered-line");t.prepend(a({filters:r})),0===e.find(".um-members-filter-remove").length?(e.find(".um-clear-filters").hide(),e.find(".um-clear-filters").parents(".um-member-directory-header-row").addClass("um-header-row-invisible")):(e.find(".um-clear-filters").show(),e.find(".um-clear-filters").parents(".um-member-directory-header-row").removeClass("um-header-row-invisible"))}}function um_run_search(e){if(!um_is_directory_busy(e)){um_members_show_preloader(e);var r=um_get_data_for_directory(e,"search");if((t=e.find(".um-search-line").val())===r||""===t&&void 0===r)um_members_hide_preloader(e);else{if(e.data("general_search",t),um_set_url_from_data(e,"search",t),e.data("page",1),um_set_url_from_data(e,"page",""),1===e.data("must-search")){var t=um_get_search(e);if(0===e.find(".um-members-filter-remove").length&&!t)return e.data("searched",0),e.find(".um-members-grid, .um-members-list").remove(),e.find(".um-member-directory-sorting-options").prop("disabled",!0),e.find(".um-member-directory-view-type").addClass("um-disabled"),void um_members_hide_preloader(e)}e.data("searched",1),e.find(".um-member-directory-sorting-options").prop("disabled",!1),e.find(".um-member-directory-view-type").removeClass("um-disabled"),um_ajax_get_members(e)}}}jQuery(document.body).ready(function(){jQuery(".um-directory .um-search-filter select").each(function(){1===jQuery(this).find("option:not(:disabled)").length&&jQuery(this).prop("disabled",!0),jQuery(this).select2("destroy").select2()}),jQuery(document.body).on("mouseover",".um-directory .um-member-directory-view-type",function(){if(!jQuery(this).hasClass("um-disabled")){var e=jQuery(this).find(".um-member-directory-view-type-a:visible");e.hide(),e.next().length?e.next().show().tipsy("show"):jQuery(this).find(".um-member-directory-view-type-a:first").show().tipsy("show")}}).on("mouseout",".um-directory .um-member-directory-view-type",function(){jQuery(this).hasClass("um-disabled")||(jQuery(this).find(".um-member-directory-view-type-a").hide().tipsy("hide"),jQuery(this).find('.um-member-directory-view-type-a[data-type="'+jQuery(this).parents(".um-directory").data("view_type")+'"]').show())}),jQuery(document.body).on("click",".um-directory .um-member-directory-view-type-a",function(){var e=jQuery(this).parents(".um-directory");if(um_is_directory_busy(e))return!1;var r=jQuery(this),t=r.parents(".um-member-directory-view-type");if(!t.hasClass("um-disabled")){um_members_show_preloader(e);var a=t.find(".um-member-directory-view-type-a:visible");a.hide(),a.next().length?a.next().show().tipsy("show"):t.find(".um-member-directory-view-type-a:first").show().tipsy("show");var i=um_member_directory_last_data[um_members_get_hash(e)];if(null!==i){var m=r.data("type");um_set_url_from_data(e,"view_type",m),e.data("view_type",m),um_build_template(e,i)}um_members_hide_preloader(e)}}),jQuery(document.body).on("click",".um-directory .um-do-search",function(){um_run_search(jQuery(this).parents(".um-directory"))}),jQuery(document.body).on("keypress",".um-directory .um-search-line",function(e){13===e.which&&um_run_search(jQuery(this).parents(".um-directory"))}),jQuery(document.body).on("click",".um-directory .um-member-directory-sorting-a .um-new-dropdown li a",function(){var e=jQuery(this).parents(".um-directory");if(!um_is_directory_busy(e)&&1!==jQuery(this).data("selected")){um_members_show_preloader(e);var r=jQuery(this).data("value");e.data("sorting",r),um_set_url_from_data(e,"sort",r),um_ajax_get_members(e),jQuery(this).parents(".um-new-dropdown").find("a").data("selected",0).prop("data-selected",0).attr("data-selected",0),jQuery(this).data("selected",1).prop("data-selected",1).attr("data-selected",1),jQuery(this).parents(".um-member-directory-sorting-a").find("> a").html(jQuery(this).html())}}),jQuery(document.body).on("click",".um-directory .pagi:not(.current)",function(){if(!jQuery(this).hasClass("disabled")){var e,r=jQuery(this).parents(".um-directory");if(!um_is_directory_busy(r))um_members_show_preloader(r),1===(e="first"===jQuery(this).data("page")?1:"prev"===jQuery(this).data("page")?1*r.data("page")-1:"next"===jQuery(this).data("page")?1*r.data("page")+1:"last"===jQuery(this).data("page")?parseInt(r.data("total_pages")):parseInt(jQuery(this).data("page")))?(r.find('.pagi[data-page="first"], .pagi[data-page="prev"]').addClass("disabled"),r.find('.pagi[data-page="prev"], .pagi[data-page="last"]').removeClass("disabled")):(e===parseInt(r.data("total_pages"))?r.find('.pagi[data-page="prev"], .pagi[data-page="last"]').addClass("disabled"):r.find('.pagi[data-page="prev"], .pagi[data-page="last"]').removeClass("disabled"),r.find('.pagi[data-page="first"], .pagi[data-page="prev"]').removeClass("disabled")),r.find(".pagi").removeClass("current"),r.find('.pagi[data-page="'+e+'"]').addClass("current"),r.data("page",e),um_set_url_from_data(r,"page",1===e?"":e),um_ajax_get_members(r)}}),jQuery(document.body).on("change",".um-directory .um-members-pagi-dropdown",function(){var e=jQuery(this).parents(".um-directory");if(!um_is_directory_busy(e)){um_members_show_preloader(e);var r=jQuery(this).val();e.find(".pagi").removeClass("current"),e.find('.pagi[data-page="'+r+'"]').addClass("current"),e.data("page",r),um_set_url_from_data(e,"page",1===r?"":r),um_ajax_get_members(e)}}),jQuery(document.body).on("click",".um-directory .um-members.um-members-list .um-member-more a",function(e){e.preventDefault();var r=jQuery(this).parents(".um-member");return r.find(".um-member-more").hide(),r.find(".um-member-meta-main").slideDown(),r.find(".um-member-less").fadeIn(),!1}),jQuery(document.body).on("click",".um-directory .um-members.um-members-list .um-member-less a",function(e){e.preventDefault();var r=jQuery(this).parents(".um-member");return r.find(".um-member-less").hide(),r.find(".um-member-meta-main").slideUp(),r.find(".um-member-more").fadeIn(),!1}),jQuery(document.body).on("click",".um-directory .um-members.um-members-grid .um-member-more a",function(e){e.preventDefault();var r=jQuery(this).parents(".um-member"),t=jQuery(this).parents(".um-members");return r.find(".um-member-more").hide(),r.find(".um-member-meta").slideDown(function(){UM_Member_Grid(t)}),r.find(".um-member-less").fadeIn(),setTimeout(function(){UM_Member_Grid(t)},100),!1}),jQuery(document.body).on("click",".um-directory .um-members.um-members-grid .um-member-less a",function(e){e.preventDefault();var r=jQuery(this).parents(".um-member"),t=jQuery(this).parents(".um-members");return r.find(".um-member-less").hide(),r.find(".um-member-meta").slideUp(function(){r.find(".um-member-more").fadeIn(),UM_Member_Grid(t)}),!1}),jQuery(".um-member-directory-filters-a").click(function(){var e=jQuery(this),r=e.parents(".um-directory").find(".um-search");r.is(":visible")?r.slideUp(250,function(){e.toggleClass("um-member-directory-filters-visible"),r.parents(".um-member-directory-header-row").toggleClass("um-header-row-invisible")}):r.slideDown({start:function(){jQuery(this).css({display:"grid"}),e.toggleClass("um-member-directory-filters-visible"),r.parents(".um-member-directory-header-row").toggleClass("um-header-row-invisible")}},250)}),jQuery(document.body).on("change",".um-directory .um-search-filter select",function(){if(""!==jQuery(this).val()){var e=jQuery(this).parents(".um-directory");if(!um_is_directory_busy(e)){um_members_show_preloader(e);var r=jQuery(this).prop("name"),t=um_get_data_for_directory(e,"filter_"+r);t=void 0===t?[]:t.split("||"),-1===jQuery.inArray(jQuery(this).val(),t)&&(t.push(jQuery(this).val()),um_set_url_from_data(e,"filter_"+r,t=t.join("||")),e.data("page",1),um_set_url_from_data(e,"page","")),jQuery(this).find('option[value="'+jQuery(this).val()+'"]').prop("disabled",!0).hide(),1===jQuery(this).find("option:not(:disabled)").length&&jQuery(this).prop("disabled",!0),jQuery(this).select2("destroy").select2(),jQuery(this).val("").trigger("change"),um_ajax_get_members(e),um_change_tag(e),e.data("searched",1),e.find(".um-member-directory-sorting-options").prop("disabled",!1),e.find(".um-member-directory-view-type").removeClass("um-disabled")}}}),jQuery(document.body).on("click",".um-directory .um-members-filter-remove",function(){var e=jQuery(this).parents(".um-directory");if(!um_is_directory_busy(e)&&e){um_members_show_preloader(e);var r=jQuery(this).data("value"),t=jQuery(this).data("name"),a=jQuery(this).data("type");if("select"===a){var i=um_get_data_for_directory(e,"filter_"+t);i=void 0===i?[]:i.split("||"),-1!==jQuery.inArray(r.toString(),i)&&(i=jQuery.grep(i,function(e){return e!==r.toString()})),i.length||(i=""),um_set_url_from_data(e,"filter_"+t,i);var m=jQuery('.um-search-filter select[name="'+t+'"]');m.find('option[value="'+r+'"]').prop("disabled",!1).show(),1<m.find("option:not(:disabled)").length&&m.prop("disabled",!1),m.select2("destroy").select2()}else"slider"===a?(um_set_url_from_data(e,"filter_"+t+"_from",""),um_set_url_from_data(e,"filter_"+t+"_to","")):"datepicker"===a?(um_set_url_from_data(e,"filter_"+t+"_from",""),um_set_url_from_data(e,"filter_"+t+"_to","")):"timepicker"===a&&(um_set_url_from_data(e,"filter_"+t+"_from",""),um_set_url_from_data(e,"filter_"+t+"_to",""));if(e.data("page",1),um_set_url_from_data(e,"page",""),jQuery(this).tipsy("hide"),jQuery(this).parents(".um-members-filter-tag").remove(),0===e.find(".um-members-filter-remove").length?e.find(".um-clear-filters").hide():e.find(".um-clear-filters").show(),1===e.data("must-search")){var d=um_get_search(e);if(0===e.find(".um-members-filter-remove").length&&!d)return e.data("searched",0),e.find(".um-members-grid, .um-members-list").remove(),e.find(".um-member-directory-sorting-options").prop("disabled",!0),e.find(".um-member-directory-view-type").addClass("um-disabled"),void um_members_hide_preloader(e)}e.find(".um-member-directory-sorting-options").prop("disabled",!1),e.find(".um-member-directory-view-type").removeClass("um-disabled"),um_ajax_get_members(e)}}),jQuery(document.body).on("click",".um-directory .um-clear-filters-a",function(){var m=jQuery(this).parents(".um-directory");if(!um_is_directory_busy(m)){if(um_members_show_preloader(m),m.find(".um-members-filter-remove").each(function(){var r=jQuery(this).data("value"),e=jQuery(this).data("name"),t=jQuery(this).data("type");if("select"===t){var a=um_get_data_for_directory(m,"filter_"+e);a=void 0===a?[]:a.split("||"),-1!==jQuery.inArray(r.toString(),a)&&(a=jQuery.grep(a,function(e){return e!==r.toString()})),a.length||(a=""),um_set_url_from_data(m,"filter_"+e,a);var i=jQuery('.um-search-filter select[name="'+e+'"]');i.find('option[value="'+r+'"]').prop("disabled",!1).show(),1<i.find("option:not(:disabled)").length&&i.prop("disabled",!1),i.select2("destroy").select2()}else"slider"===t?(um_set_url_from_data(m,"filter_"+e+"_from",""),um_set_url_from_data(m,"filter_"+e+"_to","")):"datepicker"===t?(um_set_url_from_data(m,"filter_"+e+"_from",""),um_set_url_from_data(m,"filter_"+e+"_to","")):"timepicker"===t&&(um_set_url_from_data(m,"filter_"+e+"_from",""),um_set_url_from_data(m,"filter_"+e+"_to",""))}),m.data("page",1),um_set_url_from_data(m,"page",""),m.find(".um-members-filter-tag").remove(),0===m.find(".um-members-filter-remove").length?(m.find(".um-clear-filters").hide(),m.find(".um-clear-filters").parents(".um-member-directory-header-row").addClass("um-header-row-invisible")):(m.find(".um-clear-filters").show(),m.find(".um-clear-filters").parents(".um-member-directory-header-row").removeClass("um-header-row-invisible")),1===m.data("must-search"))if(!um_get_search(m))return m.data("searched",0),m.find(".um-members-grid, .um-members-list").remove(),m.find(".um-member-directory-sorting-options").prop("disabled",!0),m.find(".um-member-directory-view-type").addClass("um-disabled"),void um_members_hide_preloader(m);m.find(".um-member-directory-sorting-options").prop("disabled",!1),m.find(".um-member-directory-view-type").removeClass("um-disabled"),um_ajax_get_members(m)}}),jQuery(".um-directory").each(function(){var e=jQuery(this),r=um_members_get_hash(e);if(um_member_directories.push(r),1===e.data("must-search")){var t=um_get_search(e);if(!um_get_filters_data(e).length&&!t)return}um_members_show_preloader(e),um_ajax_get_members(e,{first_load:!0}),e.find(".um-slider").each(function(){var e=jQuery(this),t=e.parents(".um-directory"),a=e.data("field_name"),r=um_get_data_for_directory(t,"filter_"+a+"_from"),i=um_get_data_for_directory(t,"filter_"+a+"_to");void 0===r&&(r=parseInt(e.data("min"))),void 0===i&&(i=parseInt(e.data("max")));var m=[r,i];e.slider({range:!0,min:parseInt(e.data("min")),max:parseInt(e.data("max")),values:m,create:function(e,r){},step:1,slide:function(e,r){um_set_range_label(jQuery(this),r)},stop:function(e,r){um_is_directory_busy(t)||(um_set_url_from_data(t,"filter_"+a+"_from",r.values[0]),um_set_url_from_data(t,"filter_"+a+"_to",r.values[1]),t.data("page",1),um_set_url_from_data(t,"page",""),um_ajax_get_members(t),um_change_tag(t),t.data("searched",1),t.find(".um-member-directory-sorting-options").prop("disabled",!1),t.find(".um-member-directory-view-type").removeClass("um-disabled"))}}),um_set_range_label(e)}),e.find(".um-datepicker-filter").each(function(){var u=jQuery(this),s=new Date(1e3*u.data("date_min")),_=new Date(1e3*u.data("date_max")),e=u.pickadate({selectYears:!0,min:s,max:_,formatSubmit:"yyyy/mm/dd",hiddenName:!0,onOpen:function(){u.blur()},onClose:function(){u.blur()},onSet:function(e){var r=u.parents(".um-directory");if(!um_is_directory_busy(r)){um_members_show_preloader(r);var t=u.data("filter_name"),a=u.data("range"),i=um_get_data_for_directory(r,"filter_"+t+"_from"),m=um_get_data_for_directory(r,"filter_"+t+"_to");void 0===i&&(i=s/1e3),void 0===m&&(m=_/1e3);var d=e.select/1e3;u.val();"from"===a?i=d:"to"===a&&(m=d),um_set_url_from_data(r,"filter_"+t+"_from",i),um_set_url_from_data(r,"filter_"+t+"_to",m),r.data("page",1),um_set_url_from_data(r,"page",""),um_ajax_get_members(r),um_change_tag(r),r.data("searched",1),r.find(".um-member-directory-sorting-options").prop("disabled",!1),r.find(".um-member-directory-view-type").removeClass("um-disabled")}}}).pickadate("picker"),r=u.data("filter_name"),t=u.data("range"),a=um_get_data_for_directory(u.parents(".um-directory"),"filter_"+r+"_"+t);void 0!==a&&e.set("select",1e3*a)}),e.find(".um-timepicker-filter").each(function(){var u=jQuery(this),s=u.data("min"),_=u.data("max"),e=s.split(":"),r=_.split(":"),t=u.pickatime({format:u.data("format"),interval:parseInt(u.data("intervals")),min:[e[0],e[1]],max:[r[0],r[1]],formatSubmit:"HH:i",hiddenName:!0,onOpen:function(){u.blur()},onClose:function(){u.blur()},onSet:function(e){var r=u.parents(".um-directory");if(!um_is_directory_busy(r)){um_members_show_preloader(r);var t=u.data("filter_name"),a=u.data("range"),i=um_get_data_for_directory(r,"filter_"+t+"_from"),m=um_get_data_for_directory(r,"filter_"+t+"_to");if(void 0===i&&(i=s),void 0===m&&(m=_),void 0!==e.select){var d=e.select/60;u.val();"from"===a?i=d+":00":"to"===a&&(m=d+":00")}else"from"===a?i=s:"to"===a&&(m=_);um_set_url_from_data(r,"filter_"+t+"_from",i),um_set_url_from_data(r,"filter_"+t+"_to",m),r.data("page",1),um_set_url_from_data(r,"page",""),um_ajax_get_members(r),um_change_tag(r),r.data("searched",1),r.find(".um-member-directory-sorting-options").prop("disabled",!1),r.find(".um-member-directory-view-type").removeClass("um-disabled")}}}).pickatime("picker"),a=u.data("filter_name"),i=u.data("range"),m=um_get_data_for_directory(u.parents(".um-directory"),"filter_"+a+"_"+i);if(void 0!==m){var d=m.split(":");t.set("select",60*d[0])}}),um_change_tag(e)}),window.addEventListener("popstate",function(e){jQuery(".um-directory").each(function(){var d=jQuery(this),e=um_members_get_hash(d);(um_member_directories.push(e),um_members_show_preloader(d),d.find(".um-members-grid, .um-members-list, .um-members-intro").remove(),d.find(".um-member-directory-search-line").length)&&(void 0===(m=um_get_data_for_directory(d,"search"))&&(m=""),d.data("general_search",m),d.find(".um-search-line").val(m));var r=um_get_data_for_directory(d,"page");if(void 0===r?r=1:r>d.data("total_pages")&&(r=d.data("total_pages")),d.data("page",r).attr("data-page",r),d.find(".um-member-directory-sorting").length){var t=um_get_data_for_directory(d,"sort");void 0===t&&(t=d.find('.um-new-dropdown[data-element=".um-member-directory-sorting-a"]').find('a[data-default="1"]').data("value")),d.data("sorting",t);var a=d.find('.um-new-dropdown[data-element=".um-member-directory-sorting-a"]');a.find("a").data("selected",0).prop("data-selected",0).attr("data-selected",0),a.find('a[data-value="'+t+'"]').data("selected",1).prop("data-selected",1).attr("data-selected",1),d.find(".um-member-directory-sorting-a").find("> a").html(a.find('a[data-value="'+t+'"]').html())}if(d.find(".um-member-directory-view-type").length){var i=um_get_data_for_directory(d,"view_type");void 0===i&&(i=d.find('.um-member-directory-view-type-a[data-default="1"]').data("type")),d.data("view_type",i),d.find(".um-member-directory-view-type .um-member-directory-view-type-a").hide(),d.find('.um-member-directory-view-type .um-member-directory-view-type-a[data-type="'+i+'"]').show()}if(d.find(".um-datepicker-filter").each(function(){var e=jQuery(this),r=e.pickadate("picker"),t=e.data("filter_name"),a=e.data("range"),i=um_get_data_for_directory(d,"filter_"+t+"_"+a);void 0!==i?r.set("select",1e3*i):r.clear()}),d.find(".um-slider").each(function(){var e=jQuery(this),r=e.data("field_name"),t=um_get_data_for_directory(d,"filter_"+r+"_from"),a=um_get_data_for_directory(d,"filter_"+r+"_to");void 0===t&&(t=e.data("min")),t=parseInt(t),void 0===a&&(a=e.data("max")),a=parseInt(a),e.slider("values",[t,a]),um_set_range_label(e)}),d.find(".um-timepicker-filter").each(function(){var e=jQuery(this),r=e.pickatime("picker"),t=e.data("filter_name"),a=e.data("range"),i=um_get_data_for_directory(d,"filter_"+t+"_"+a);if(void 0!==i){var m=i.split(":");r.set("select",60*m[0])}else r.clear()}),1===d.data("must-search")){var m=um_get_search(d);if(!um_get_filters_data(d).length&&!m)return d.data("searched",0),void um_members_hide_preloader(d);d.data("searched",1)}um_ajax_get_members(d),um_change_tag(d)})})});
assets/js/um-modal.js CHANGED
@@ -6,7 +6,6 @@ jQuery(document).ready(function() {
6
  });
7
 
8
  jQuery(document).on('click', '.um-modal-overlay, a[data-action="um_remove_modal"]', function(){
9
-
10
  um_remove_modal();
11
  });
12
 
@@ -44,22 +43,22 @@ jQuery(document).ready(function() {
44
 
45
  jQuery(document).on('click', '.um-modal .um-single-image-preview a.cancel', function(e){
46
  e.preventDefault();
47
-
48
  var parent = jQuery(this).parents('.um-modal-body');
49
  var src = jQuery(this).parents('.um-modal-body').find('.um-single-image-preview img').attr('src');
50
-
51
  jQuery('img.cropper-hidden').cropper('destroy');
52
-
53
  parent.find('.um-single-image-preview img').attr('src', '');
54
-
55
  parent.find('.um-single-image-preview').hide();
56
-
57
  parent.find('.ajax-upload-dragdrop').show();
58
-
59
  parent.find('.um-modal-btn.um-finish-upload').addClass('disabled');
60
-
61
  um_modal_responsive();
62
-
63
  jQuery.ajax({
64
  url: wp.ajax.settings.url,
65
  type: 'post',
@@ -120,17 +119,15 @@ jQuery(document).ready(function() {
120
  key: key,
121
  nonce: um_scripts.nonce
122
  },
123
- success: function( response ){
124
 
125
- if( response.success == true ){
126
 
127
  d = new Date();
128
 
129
- if ( key == 'profile_photo') {
130
  jQuery('.um-profile-photo-img img').attr('src', response.data.image.source_url + "?"+d.getTime());
131
- }
132
-
133
- if ( key == 'cover_photo') {
134
  jQuery('.um-cover-e').empty().html('<img src="' + response.data.image.source_url + "?"+d.getTime() + '" alt="" />');
135
  if ( jQuery('.um').hasClass('um-editing') ) {
136
  jQuery('.um-cover-overlay').show();
@@ -138,13 +135,14 @@ jQuery(document).ready(function() {
138
  }
139
 
140
  jQuery('.um-single-image-preview[data-key='+key+']').fadeIn().find('img').attr('src', response.data.image.source_url + "?"+d.getTime());
141
-
142
  um_remove_modal();
143
-
 
 
144
  jQuery('.um-single-image-preview[data-key='+key+']').parents('.um-field').find('.um-btn-auto-width').html( elem.attr('data-change') );
145
 
146
  jQuery('.um-single-image-preview[data-key='+key+']').parents('.um-field').find('input[type="hidden"]').val( response.data.image.filename );
147
-
148
  }
149
 
150
  }
6
  });
7
 
8
  jQuery(document).on('click', '.um-modal-overlay, a[data-action="um_remove_modal"]', function(){
 
9
  um_remove_modal();
10
  });
11
 
43
 
44
  jQuery(document).on('click', '.um-modal .um-single-image-preview a.cancel', function(e){
45
  e.preventDefault();
46
+
47
  var parent = jQuery(this).parents('.um-modal-body');
48
  var src = jQuery(this).parents('.um-modal-body').find('.um-single-image-preview img').attr('src');
49
+
50
  jQuery('img.cropper-hidden').cropper('destroy');
51
+
52
  parent.find('.um-single-image-preview img').attr('src', '');
53
+
54
  parent.find('.um-single-image-preview').hide();
55
+
56
  parent.find('.ajax-upload-dragdrop').show();
57
+
58
  parent.find('.um-modal-btn.um-finish-upload').addClass('disabled');
59
+
60
  um_modal_responsive();
61
+
62
  jQuery.ajax({
63
  url: wp.ajax.settings.url,
64
  type: 'post',
119
  key: key,
120
  nonce: um_scripts.nonce
121
  },
122
+ success: function( response ) {
123
 
124
+ if ( response.success ) {
125
 
126
  d = new Date();
127
 
128
+ if ( key === 'profile_photo' ) {
129
  jQuery('.um-profile-photo-img img').attr('src', response.data.image.source_url + "?"+d.getTime());
130
+ } else if ( key === 'cover_photo' ) {
 
 
131
  jQuery('.um-cover-e').empty().html('<img src="' + response.data.image.source_url + "?"+d.getTime() + '" alt="" />');
132
  if ( jQuery('.um').hasClass('um-editing') ) {
133
  jQuery('.um-cover-overlay').show();
135
  }
136
 
137
  jQuery('.um-single-image-preview[data-key='+key+']').fadeIn().find('img').attr('src', response.data.image.source_url + "?"+d.getTime());
138
+
139
  um_remove_modal();
140
+
141
+ jQuery('img.cropper-invisible').remove();
142
+
143
  jQuery('.um-single-image-preview[data-key='+key+']').parents('.um-field').find('.um-btn-auto-width').html( elem.attr('data-change') );
144
 
145
  jQuery('.um-single-image-preview[data-key='+key+']').parents('.um-field').find('input[type="hidden"]').val( response.data.image.filename );
 
146
  }
147
 
148
  }
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");return 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(),jQuery.ajax({url:wp.ajax.settings.url,type:"post",data:{action:"um_remove_file",src:t,nonce:um_scripts.nonce}}),!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");return 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(),jQuery.ajax({url:wp.ajax.settings.url,type:"post",data:{action:"um_remove_file",src:t,nonce:um_scripts.nonce}}),!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")),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,nonce:um_scripts.nonce},success:function(e){1==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(".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 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");return 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(),jQuery.ajax({url:wp.ajax.settings.url,type:"post",data:{action:"um_remove_file",src:t,nonce:um_scripts.nonce}}),!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");return 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(),jQuery.ajax({url:wp.ajax.settings.url,type:"post",data:{action:"um_remove_file",src:t,nonce:um_scripts.nonce}}),!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")),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,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
@@ -124,7 +124,8 @@ jQuery(document).ready(function() {
124
 
125
  jQuery( '.um-profile-edit a.um_delete-item' ).click( function(e) {
126
  e.preventDefault();
127
- if ( ! confirm( 'Are you sure that you want to delete this user?' ) ) {
 
128
  return false;
129
  }
130
  });
124
 
125
  jQuery( '.um-profile-edit a.um_delete-item' ).click( function(e) {
126
  e.preventDefault();
127
+
128
+ if ( ! confirm( wp.i18n.__( 'Are you sure that you want to delete this user?', 'ultimate-member' ) ) ) {
129
  return false;
130
  }
131
  });
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("Are you sure that you want to delete this user?"))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-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()})});
assets/js/um-raty.js CHANGED
@@ -609,7 +609,7 @@
609
  $.fn.um_raty.defaults = {
610
  cancel : false,
611
  cancelClass : 'raty-cancel',
612
- cancelHint : 'Cancel this rating!',
613
  cancelOff : 'cancel-off.png',
614
  cancelOn : 'cancel-on.png',
615
  cancelPlace : 'left',
@@ -620,7 +620,7 @@
620
  iconRange : undefined,
621
  mouseout : undefined,
622
  mouseover : undefined,
623
- noRatedMsg : 'Not rated yet!',
624
  number : 5,
625
  numberMax : 20,
626
  path : undefined,
609
  $.fn.um_raty.defaults = {
610
  cancel : false,
611
  cancelClass : 'raty-cancel',
612
+ cancelHint : wp.i18n.__( 'Cancel this rating!', 'ultimate-member' ),
613
  cancelOff : 'cancel-off.png',
614
  cancelOn : 'cancel-on.png',
615
  cancelPlace : 'left',
620
  iconRange : undefined,
621
  mouseout : undefined,
622
  mouseover : undefined,
623
+ noRatedMsg : wp.i18n.__( 'Not rated yet!', 'ultimate-member' ),
624
  number : 5,
625
  numberMax : 20,
626
  path : undefined,
assets/js/um-raty.min.js CHANGED
@@ -1 +1 @@
1
- !function(l){"use strict";var c={init:function(t){return this.each(function(){this.self=l(this),c.destroy.call(this.self),this.opt=l.extend(!0,{},l.fn.um_raty.defaults,t),c._adjustCallback.call(this),c._adjustNumber.call(this),"img"!==this.opt.starType&&c._adjustStarType.call(this),c._adjustPath.call(this),c._createStars.call(this),this.opt.cancel&&c._createCancel.call(this),this.opt.precision&&c._adjustPrecision.call(this),c._createScore.call(this),c._apply.call(this,this.opt.score),c._target.call(this,this.opt.score),this.opt.readOnly?c._lock.call(this):(this.style.cursor="pointer",c._binds.call(this)),this.self.data("options",this.opt)})},_adjustCallback:function(){for(var t=["number","readOnly","score","scoreName","target"],a=0;a<t.length;a++)"function"==typeof this.opt[t[a]]&&(this.opt[t[a]]=this.opt[t[a]].call(this))},_adjustNumber:function(){this.opt.number=c._between(this.opt.number,1,this.opt.numberMax)},_adjustPath:function(){this.opt.path=this.opt.path||"",this.opt.path&&"/"!==this.opt.path.charAt(this.opt.path.length-1)&&(this.opt.path+="/")},_adjustPrecision:function(){this.opt.half=!0,this.opt.targetType="score"},_adjustStarType:function(){this.opt.path="";for(var t=["cancelOff","cancelOn","starHalf","starOff","starOn"],a=0;a<t.length;a++)this.opt[t[a]]=this.opt[t[a]].replace(".","-")},_apply:function(t){c._fill.call(this,t),t&&(0<t&&this.score.val(c._between(t,0,this.opt.number)),c._roundStars.call(this,t))},_between:function(t,a,e){return Math.min(Math.max(parseFloat(t),a),e)},_binds:function(){this.cancel&&(c._bindOverCancel.call(this),c._bindClickCancel.call(this),c._bindOutCancel.call(this)),c._bindOver.call(this),c._bindClick.call(this),c._bindOut.call(this)},_bindClick:function(){var e=this;e.stars.on("click.um_raty",function(t){var a=l(this);e.score.val(e.opt.half||e.opt.precision?e.self.data("score"):this.alt||a.data("alt")),e.opt.click&&e.opt.click.call(e,+e.score.val(),t)})},_bindClickCancel:function(){var a=this;a.cancel.on("click.um_raty",function(t){a.score.removeAttr("value"),a.opt.click&&a.opt.click.call(a,null,t)})},_bindOut:function(){var e=this;e.self.on("mouseleave.um_raty",function(t){var a=+e.score.val()||void 0;c._apply.call(e,a),c._target.call(e,a,t),e.opt.mouseout&&e.opt.mouseout.call(e,a,t)})},_bindOutCancel:function(){var s=this;s.cancel.on("mouseleave.um_raty",function(t){var a=s.opt.cancelOff;if("img"!==s.opt.starType&&(a=s.opt.cancelClass+" "+a),c._setIcon.call(s,this,a),s.opt.mouseout){var e=+s.score.val()||void 0;s.opt.mouseout.call(s,e,t)}})},_bindOver:function(){var e=this,t=e.opt.half?"mousemove.um_raty":"mouseover.um_raty";e.stars.on(t,function(t){var a=c._getScoreByPosition.call(e,t,this);c._fill.call(e,a),e.opt.half&&(c._roundStars.call(e,a),e.self.data("score",a)),c._target.call(e,a,t),e.opt.mouseover&&e.opt.mouseover.call(e,a,t)})},_bindOverCancel:function(){var s=this;s.cancel.on("mouseover.um_raty",function(t){var a=s.opt.path+s.opt.starOff,e=s.opt.cancelOn;"img"===s.opt.starType?s.stars.attr("src",a):(e=s.opt.cancelClass+" "+e,s.stars.attr("class",a)),c._setIcon.call(s,this,e),c._target.call(s,null,t),s.opt.mouseover&&s.opt.mouseover.call(s,null)})},_buildScoreField:function(){return l("<input />",{name:this.opt.scoreName,type:"hidden"}).appendTo(this)},_createCancel:function(){var t=this.opt.path+this.opt.cancelOff,a=l("<"+this.opt.starType+" />",{title:this.opt.cancelHint,class:this.opt.cancelClass});"img"===this.opt.starType?a.attr({src:t,alt:"x"}):a.attr("data-alt","x").addClass(t),"left"===this.opt.cancelPlace?this.self.prepend("&#160;").prepend(a):this.self.append("&#160;").append(a),this.cancel=a},_createScore:function(){var t=l(this.opt.targetScore);this.score=t.length?t:c._buildScoreField.call(this)},_createStars:function(){for(var t=1;t<=this.opt.number;t++){var a=c._nameForIndex.call(this,t),e={alt:t,src:this.opt.path+this.opt[a]};"img"!==this.opt.starType&&(e={"data-alt":t,class:e.src}),e.title=c._getHint.call(this,t),l("<"+this.opt.starType+" />",e).appendTo(this),this.opt.space&&this.self.append(t<this.opt.number?"&#160;":"")}this.stars=this.self.children(this.opt.starType)},_error:function(t){l(this).text(t),l.error(t)},_fill:function(t){for(var a=0,e=1;e<=this.stars.length;e++){var s,i=this.stars[e-1],o=c._turnOn.call(this,e,t);if(this.opt.iconRange&&this.opt.iconRange.length>a){var r=this.opt.iconRange[a];s=c._getRangeIcon.call(this,r,o),e<=r.range&&c._setIcon.call(this,i,s),e===r.range&&a++}else s=this.opt[o?"starOn":"starOff"],c._setIcon.call(this,i,s)}},_getRangeIcon:function(t,a){return a?t.on||this.opt.starOn:t.off||this.opt.starOff},_getScoreByPosition:function(t,a){var e=parseInt(a.alt||a.getAttribute("data-alt"),10);if(this.opt.half){var s=c._getSize.call(this),i=parseFloat((t.pageX-l(a).offset().left)/s);e=this.opt.precision?e-1+i:e-1+(.5<i?1:.5)}return e},_getSize:function(){var t;return(t="img"===this.opt.starType?this.stars[0].width:parseFloat(this.stars.eq(0).css("font-size")))||c._error.call(this,"Could not be possible get the icon size!"),t},_turnOn:function(t,a){return this.opt.single?t===a:t<=a},_getHint:function(t){var a=this.opt.hints[t-1];return""===a?"":a||t},_lock:function(){var t=parseInt(this.score.val(),10),a=t?c._getHint.call(this,t):this.opt.noRatedMsg;this.style.cursor="",this.title=a,this.score.prop("readonly",!0),this.stars.prop("title",a),this.cancel&&this.cancel.hide(),this.self.data("readonly",!0)},_nameForIndex:function(t){return this.opt.score&&this.opt.score>=t?"starOn":"starOff"},_roundStars:function(t){var a=(t%1).toFixed(2);if(a>this.opt.round.down){var e="starOn";this.opt.halfShow&&a<this.opt.round.up?e="starHalf":a<this.opt.round.full&&(e="starOff");var s=this.opt[e],i=this.stars[Math.ceil(t)-1];c._setIcon.call(this,i,s)}},_setIcon:function(t,a){t["img"===this.opt.starType?"src":"className"]=this.opt.path+a},_setTarget:function(t,a){a&&(a=this.opt.targetFormat.toString().replace("{score}",a)),t.is(":input")?t.val(a):t.html(a)},_target:function(t,a){if(this.opt.target){var e=l(this.opt.target);e.length||c._error.call(this,"Target selector invalid or missing!");var s=a&&"mouseover"===a.type;if(void 0===t)t=this.opt.targetText;else if(null===t)t=s?this.opt.cancelHint:this.opt.targetText;else{"hint"===this.opt.targetType?t=c._getHint.call(this,Math.ceil(t)):this.opt.precision&&(t=parseFloat(t).toFixed(1));var i=a&&"mousemove"===a.type;s||i||this.opt.targetKeep||(t=this.opt.targetText)}c._setTarget.call(this,e,t)}},_unlock:function(){this.style.cursor="pointer",this.removeAttribute("title"),this.score.removeAttr("readonly"),this.self.data("readonly",!1);for(var t=0;t<this.opt.number;t++)this.stars[t].title=c._getHint.call(this,t+1);this.cancel&&this.cancel.css("display","")},cancel:function(a){return this.each(function(){var t=l(this);!0!==t.data("readonly")&&(c[a?"click":"score"].call(t,null),this.score.removeAttr("value"))})},click:function(t){return this.each(function(){!0!==l(this).data("readonly")&&(c._apply.call(this,t),this.opt.click&&this.opt.click.call(this,t,l.Event("click")),c._target.call(this,t))})},destroy:function(){return this.each(function(){var t=l(this),a=t.data("raw");a?t.off(".um_raty").empty().css({cursor:a.style.cursor}).removeData("readonly"):t.data("raw",t.clone()[0])})},getScore:function(){var t,a=[];return this.each(function(){t=this.score.val(),a.push(t?+t:void 0)}),1<a.length?a:a[0]},move:function(n){return this.each(function(){var t=parseInt(n,10),a=l(this).data("options"),e=(+n).toFixed(1).split(".")[1];t>=a.number&&(t=a.number-1,e=10);var s=c._getSize.call(this)/10,i=l(this.stars[t]),o=i.offset().left+s*parseInt(e,10),r=l.Event("mousemove",{pageX:o});i.trigger(r)})},readOnly:function(a){return this.each(function(){var t=l(this);t.data("readonly")!==a&&(a?(t.off(".um_raty").children("img").off(".um_raty"),c._lock.call(this)):(c._binds.call(this),c._unlock.call(this)),t.data("readonly",a))})},reload:function(){return c.set.call(this,{})},score:function(){var t=l(this);return arguments.length?c.setScore.apply(t,arguments):c.getScore.call(t)},set:function(s){return this.each(function(){var t=l(this),a=t.data("options"),e=l.extend({},a,s);t.um_raty(e)})},setScore:function(t){return this.each(function(){!0!==l(this).data("readonly")&&(c._apply.call(this,t),c._target.call(this,t))})}};l.fn.um_raty=function(t){return c[t]?c[t].apply(this,Array.prototype.slice.call(arguments,1)):"object"!=typeof t&&t?void l.error("Method "+t+" does not exist!"):c.init.apply(this,arguments)},l.fn.um_raty.defaults={cancel:!1,cancelClass:"raty-cancel",cancelHint:"Cancel this rating!",cancelOff:"cancel-off.png",cancelOn:"cancel-on.png",cancelPlace:"left",click:void 0,half:!1,halfShow:!0,hints:["bad","poor","regular","good","gorgeous"],iconRange:void 0,mouseout:void 0,mouseover:void 0,noRatedMsg:"Not rated yet!",number:5,numberMax:20,path:void 0,precision:!1,readOnly:!1,round:{down:.25,full:.6,up:.76},score:void 0,scoreName:"score",single:!1,space:!0,starHalf:"star-half.png",starOff:"star-off.png",starOn:"star-on.png",starType:"img",target:void 0,targetFormat:"{score}",targetKeep:!1,targetScore:void 0,targetText:"",targetType:"hint"}}(jQuery);
1
+ !function(l){"use strict";var c={init:function(t){return this.each(function(){this.self=l(this),c.destroy.call(this.self),this.opt=l.extend(!0,{},l.fn.um_raty.defaults,t),c._adjustCallback.call(this),c._adjustNumber.call(this),"img"!==this.opt.starType&&c._adjustStarType.call(this),c._adjustPath.call(this),c._createStars.call(this),this.opt.cancel&&c._createCancel.call(this),this.opt.precision&&c._adjustPrecision.call(this),c._createScore.call(this),c._apply.call(this,this.opt.score),c._target.call(this,this.opt.score),this.opt.readOnly?c._lock.call(this):(this.style.cursor="pointer",c._binds.call(this)),this.self.data("options",this.opt)})},_adjustCallback:function(){for(var t=["number","readOnly","score","scoreName","target"],e=0;e<t.length;e++)"function"==typeof this.opt[t[e]]&&(this.opt[t[e]]=this.opt[t[e]].call(this))},_adjustNumber:function(){this.opt.number=c._between(this.opt.number,1,this.opt.numberMax)},_adjustPath:function(){this.opt.path=this.opt.path||"",this.opt.path&&"/"!==this.opt.path.charAt(this.opt.path.length-1)&&(this.opt.path+="/")},_adjustPrecision:function(){this.opt.half=!0,this.opt.targetType="score"},_adjustStarType:function(){this.opt.path="";for(var t=["cancelOff","cancelOn","starHalf","starOff","starOn"],e=0;e<t.length;e++)this.opt[t[e]]=this.opt[t[e]].replace(".","-")},_apply:function(t){c._fill.call(this,t),t&&(0<t&&this.score.val(c._between(t,0,this.opt.number)),c._roundStars.call(this,t))},_between:function(t,e,a){return Math.min(Math.max(parseFloat(t),e),a)},_binds:function(){this.cancel&&(c._bindOverCancel.call(this),c._bindClickCancel.call(this),c._bindOutCancel.call(this)),c._bindOver.call(this),c._bindClick.call(this),c._bindOut.call(this)},_bindClick:function(){var a=this;a.stars.on("click.um_raty",function(t){var e=l(this);a.score.val(a.opt.half||a.opt.precision?a.self.data("score"):this.alt||e.data("alt")),a.opt.click&&a.opt.click.call(a,+a.score.val(),t)})},_bindClickCancel:function(){var e=this;e.cancel.on("click.um_raty",function(t){e.score.removeAttr("value"),e.opt.click&&e.opt.click.call(e,null,t)})},_bindOut:function(){var a=this;a.self.on("mouseleave.um_raty",function(t){var e=+a.score.val()||void 0;c._apply.call(a,e),c._target.call(a,e,t),a.opt.mouseout&&a.opt.mouseout.call(a,e,t)})},_bindOutCancel:function(){var s=this;s.cancel.on("mouseleave.um_raty",function(t){var e=s.opt.cancelOff;if("img"!==s.opt.starType&&(e=s.opt.cancelClass+" "+e),c._setIcon.call(s,this,e),s.opt.mouseout){var a=+s.score.val()||void 0;s.opt.mouseout.call(s,a,t)}})},_bindOver:function(){var a=this,t=a.opt.half?"mousemove.um_raty":"mouseover.um_raty";a.stars.on(t,function(t){var e=c._getScoreByPosition.call(a,t,this);c._fill.call(a,e),a.opt.half&&(c._roundStars.call(a,e),a.self.data("score",e)),c._target.call(a,e,t),a.opt.mouseover&&a.opt.mouseover.call(a,e,t)})},_bindOverCancel:function(){var s=this;s.cancel.on("mouseover.um_raty",function(t){var e=s.opt.path+s.opt.starOff,a=s.opt.cancelOn;"img"===s.opt.starType?s.stars.attr("src",e):(a=s.opt.cancelClass+" "+a,s.stars.attr("class",e)),c._setIcon.call(s,this,a),c._target.call(s,null,t),s.opt.mouseover&&s.opt.mouseover.call(s,null)})},_buildScoreField:function(){return l("<input />",{name:this.opt.scoreName,type:"hidden"}).appendTo(this)},_createCancel:function(){var t=this.opt.path+this.opt.cancelOff,e=l("<"+this.opt.starType+" />",{title:this.opt.cancelHint,class:this.opt.cancelClass});"img"===this.opt.starType?e.attr({src:t,alt:"x"}):e.attr("data-alt","x").addClass(t),"left"===this.opt.cancelPlace?this.self.prepend("&#160;").prepend(e):this.self.append("&#160;").append(e),this.cancel=e},_createScore:function(){var t=l(this.opt.targetScore);this.score=t.length?t:c._buildScoreField.call(this)},_createStars:function(){for(var t=1;t<=this.opt.number;t++){var e=c._nameForIndex.call(this,t),a={alt:t,src:this.opt.path+this.opt[e]};"img"!==this.opt.starType&&(a={"data-alt":t,class:a.src}),a.title=c._getHint.call(this,t),l("<"+this.opt.starType+" />",a).appendTo(this),this.opt.space&&this.self.append(t<this.opt.number?"&#160;":"")}this.stars=this.self.children(this.opt.starType)},_error:function(t){l(this).text(t),l.error(t)},_fill:function(t){for(var e=0,a=1;a<=this.stars.length;a++){var s,i=this.stars[a-1],o=c._turnOn.call(this,a,t);if(this.opt.iconRange&&this.opt.iconRange.length>e){var r=this.opt.iconRange[e];s=c._getRangeIcon.call(this,r,o),a<=r.range&&c._setIcon.call(this,i,s),a===r.range&&e++}else s=this.opt[o?"starOn":"starOff"],c._setIcon.call(this,i,s)}},_getRangeIcon:function(t,e){return e?t.on||this.opt.starOn:t.off||this.opt.starOff},_getScoreByPosition:function(t,e){var a=parseInt(e.alt||e.getAttribute("data-alt"),10);if(this.opt.half){var s=c._getSize.call(this),i=parseFloat((t.pageX-l(e).offset().left)/s);a=this.opt.precision?a-1+i:a-1+(.5<i?1:.5)}return a},_getSize:function(){var t;return(t="img"===this.opt.starType?this.stars[0].width:parseFloat(this.stars.eq(0).css("font-size")))||c._error.call(this,"Could not be possible get the icon size!"),t},_turnOn:function(t,e){return this.opt.single?t===e:t<=e},_getHint:function(t){var e=this.opt.hints[t-1];return""===e?"":e||t},_lock:function(){var t=parseInt(this.score.val(),10),e=t?c._getHint.call(this,t):this.opt.noRatedMsg;this.style.cursor="",this.title=e,this.score.prop("readonly",!0),this.stars.prop("title",e),this.cancel&&this.cancel.hide(),this.self.data("readonly",!0)},_nameForIndex:function(t){return this.opt.score&&this.opt.score>=t?"starOn":"starOff"},_roundStars:function(t){var e=(t%1).toFixed(2);if(e>this.opt.round.down){var a="starOn";this.opt.halfShow&&e<this.opt.round.up?a="starHalf":e<this.opt.round.full&&(a="starOff");var s=this.opt[a],i=this.stars[Math.ceil(t)-1];c._setIcon.call(this,i,s)}},_setIcon:function(t,e){t["img"===this.opt.starType?"src":"className"]=this.opt.path+e},_setTarget:function(t,e){e&&(e=this.opt.targetFormat.toString().replace("{score}",e)),t.is(":input")?t.val(e):t.html(e)},_target:function(t,e){if(this.opt.target){var a=l(this.opt.target);a.length||c._error.call(this,"Target selector invalid or missing!");var s=e&&"mouseover"===e.type;if(void 0===t)t=this.opt.targetText;else if(null===t)t=s?this.opt.cancelHint:this.opt.targetText;else{"hint"===this.opt.targetType?t=c._getHint.call(this,Math.ceil(t)):this.opt.precision&&(t=parseFloat(t).toFixed(1));var i=e&&"mousemove"===e.type;s||i||this.opt.targetKeep||(t=this.opt.targetText)}c._setTarget.call(this,a,t)}},_unlock:function(){this.style.cursor="pointer",this.removeAttribute("title"),this.score.removeAttr("readonly"),this.self.data("readonly",!1);for(var t=0;t<this.opt.number;t++)this.stars[t].title=c._getHint.call(this,t+1);this.cancel&&this.cancel.css("display","")},cancel:function(e){return this.each(function(){var t=l(this);!0!==t.data("readonly")&&(c[e?"click":"score"].call(t,null),this.score.removeAttr("value"))})},click:function(t){return this.each(function(){!0!==l(this).data("readonly")&&(c._apply.call(this,t),this.opt.click&&this.opt.click.call(this,t,l.Event("click")),c._target.call(this,t))})},destroy:function(){return this.each(function(){var t=l(this),e=t.data("raw");e?t.off(".um_raty").empty().css({cursor:e.style.cursor}).removeData("readonly"):t.data("raw",t.clone()[0])})},getScore:function(){var t,e=[];return this.each(function(){t=this.score.val(),e.push(t?+t:void 0)}),1<e.length?e:e[0]},move:function(n){return this.each(function(){var t=parseInt(n,10),e=l(this).data("options"),a=(+n).toFixed(1).split(".")[1];t>=e.number&&(t=e.number-1,a=10);var s=c._getSize.call(this)/10,i=l(this.stars[t]),o=i.offset().left+s*parseInt(a,10),r=l.Event("mousemove",{pageX:o});i.trigger(r)})},readOnly:function(e){return this.each(function(){var t=l(this);t.data("readonly")!==e&&(e?(t.off(".um_raty").children("img").off(".um_raty"),c._lock.call(this)):(c._binds.call(this),c._unlock.call(this)),t.data("readonly",e))})},reload:function(){return c.set.call(this,{})},score:function(){var t=l(this);return arguments.length?c.setScore.apply(t,arguments):c.getScore.call(t)},set:function(s){return this.each(function(){var t=l(this),e=t.data("options"),a=l.extend({},e,s);t.um_raty(a)})},setScore:function(t){return this.each(function(){!0!==l(this).data("readonly")&&(c._apply.call(this,t),c._target.call(this,t))})}};l.fn.um_raty=function(t){return c[t]?c[t].apply(this,Array.prototype.slice.call(arguments,1)):"object"!=typeof t&&t?void l.error("Method "+t+" does not exist!"):c.init.apply(this,arguments)},l.fn.um_raty.defaults={cancel:!1,cancelClass:"raty-cancel",cancelHint:wp.i18n.__("Cancel this rating!","ultimate-member"),cancelOff:"cancel-off.png",cancelOn:"cancel-on.png",cancelPlace:"left",click:void 0,half:!1,halfShow:!0,hints:["bad","poor","regular","good","gorgeous"],iconRange:void 0,mouseout:void 0,mouseover:void 0,noRatedMsg:wp.i18n.__("Not rated yet!","ultimate-member"),number:5,numberMax:20,path:void 0,precision:!1,readOnly:!1,round:{down:.25,full:.6,up:.76},score:void 0,scoreName:"score",single:!1,space:!0,starHalf:"star-half.png",starOff:"star-off.png",starOn:"star-on.png",starType:"img",target:void 0,targetFormat:"{score}",targetKeep:!1,targetScore:void 0,targetText:"",targetType:"hint"}}(jQuery);
assets/js/um-scripts.js CHANGED
@@ -77,6 +77,17 @@ function um_init_datetimepicker() {
77
  });
78
  }
79
 
 
 
 
 
 
 
 
 
 
 
 
80
  jQuery(document).ready(function() {
81
 
82
  jQuery( document.body ).on('click', '.um-dropdown a.real_url', function(e){
@@ -105,14 +116,14 @@ jQuery(document).ready(function() {
105
 
106
  jQuery('.um-s1,.um-s2').css({'display':'block'});
107
 
108
- if( jQuery(".um-s1").length > 0 ){
109
- jQuery(".um-s1").each(function () {
110
- var select = jQuery(this);
111
- if( select.val() === '' && select.attr('data-default') ) {
112
- select.val(select.attr('data-default'));
113
- }
114
- });
115
- }
116
 
117
  if( typeof(jQuery.fn.select2) === "function" ){
118
  jQuery(".um-s1").select2({
@@ -123,15 +134,15 @@ jQuery(document).ready(function() {
123
  allowClear: false,
124
  minimumResultsForSearch: 10
125
  });
126
- }
127
-
128
- if( typeof(jQuery.fn.tipsy) === "function" ){
129
- jQuery('.um-tip-n').tipsy({gravity: 'n', opacity: 1, live: 'a.live', offset: 3 });
130
- jQuery('.um-tip-w').tipsy({gravity: 'w', opacity: 1, live: 'a.live', offset: 3 });
131
- jQuery('.um-tip-e').tipsy({gravity: 'e', opacity: 1, live: 'a.live', offset: 3 });
132
- jQuery('.um-tip-s').tipsy({gravity: 's', opacity: 1, live: 'a.live', offset: 3 });
133
  }
134
 
 
 
135
  if( typeof(jQuery.fn.um_raty) === "function" ){
136
  jQuery('.um-rating').um_raty({
137
  half: false,
@@ -307,6 +318,31 @@ jQuery(document).ready(function() {
307
  }
308
  }
309
  });
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
310
  } else {
311
  var args = jQuery(this).data('args');
312
  var container = jQuery(this).parents('.um').find('.um-ajax-items');
@@ -359,8 +395,61 @@ jQuery(document).ready(function() {
359
  return false;
360
  });
361
 
362
- jQuery(document).on('click', '#um-search-button', function() {
363
- jQuery(this).parents('form').submit();
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
364
  });
365
 
366
  jQuery('.um-form input[class="um-button"][type="submit"]').removeAttr('disabled');
77
  });
78
  }
79
 
80
+
81
+
82
+ function init_tipsy() {
83
+ if( typeof(jQuery.fn.tipsy) === "function" ){
84
+ jQuery('.um-tip-n').tipsy({gravity: 'n', opacity: 1, live: 'a.live', offset: 3 });
85
+ jQuery('.um-tip-w').tipsy({gravity: 'w', opacity: 1, live: 'a.live', offset: 3 });
86
+ jQuery('.um-tip-e').tipsy({gravity: 'e', opacity: 1, live: 'a.live', offset: 3 });
87
+ jQuery('.um-tip-s').tipsy({gravity: 's', opacity: 1, live: 'a.live', offset: 3 });
88
+ }
89
+ }
90
+
91
  jQuery(document).ready(function() {
92
 
93
  jQuery( document.body ).on('click', '.um-dropdown a.real_url', function(e){
116
 
117
  jQuery('.um-s1,.um-s2').css({'display':'block'});
118
 
119
+ // if( jQuery(".um-s1").length > 0 ){
120
+ // jQuery(".um-s1").each(function () {
121
+ // var select = jQuery(this);
122
+ // if( select.val() === '' && select.attr('data-default') ) {
123
+ // select.val(select.attr('data-default'));
124
+ // }
125
+ // });
126
+ // }
127
 
128
  if( typeof(jQuery.fn.select2) === "function" ){
129
  jQuery(".um-s1").select2({
134
  allowClear: false,
135
  minimumResultsForSearch: 10
136
  });
137
+
138
+ jQuery(".um-s3").select2({
139
+ allowClear: false,
140
+ minimumResultsForSearch: -1
141
+ });
 
 
142
  }
143
 
144
+ init_tipsy();
145
+
146
  if( typeof(jQuery.fn.um_raty) === "function" ){
147
  jQuery('.um-rating').um_raty({
148
  half: false,
318
  }
319
  }
320
  });
321
+ } else if ( 'um_load_comments' === hook ) {
322
+ var pages = jQuery(this).data('pages')*1;
323
+ var next_page = jQuery(this).data('page')*1 + 1;
324
+
325
+ jQuery.ajax({
326
+ url: wp.ajax.settings.url,
327
+ type: 'post',
328
+ data: {
329
+ action: 'um_ajax_paginate_comments',
330
+ user_id: jQuery(this).data('user_id'),
331
+ page: next_page,
332
+ nonce: um_scripts.nonce
333
+ },
334
+ complete: function() {
335
+ parent.removeClass( 'loading' );
336
+ },
337
+ success: function( data ) {
338
+ parent.before( data );
339
+ if ( next_page === pages ) {
340
+ parent.remove();
341
+ } else {
342
+ obj.data( 'page', next_page );
343
+ }
344
+ }
345
+ });
346
  } else {
347
  var args = jQuery(this).data('args');
348
  var container = jQuery(this).parents('.um').find('.um-ajax-items');
395
  return false;
396
  });
397
 
398
+ jQuery( document.body ).on('click', '#um-search-button', function() {
399
+ var action = jQuery(this).parents('.um-search-form').data('members_page');
400
+
401
+ var search_keys = [];
402
+ jQuery(this).parents('.um-search-form').find('input[name="um-search-keys[]"]').each( function() {
403
+ search_keys.push( jQuery(this).val() );
404
+ });
405
+
406
+ var search = jQuery(this).parents('.um-search-form').find('.um-search-field').val();
407
+
408
+ var url;
409
+ if ( search === '' ) {
410
+ url = action;
411
+ } else {
412
+ var query = '?';
413
+ for ( var i = 0; i < search_keys.length; i++ ) {
414
+ query += search_keys[i] + '=' + search;
415
+ if ( i !== search_keys.length - 1 ) {
416
+ query += '&';
417
+ }
418
+ }
419
+
420
+ url = action + query;
421
+ }
422
+ window.location = url;
423
+ });
424
+
425
+ //make search on Enter click
426
+ jQuery( document.body ).on( 'keypress', '.um-search-field', function(e) {
427
+ if ( e.which === 13 ) {
428
+ var action = jQuery(this).parents('.um-search-form').data('members_page');
429
+
430
+ var search_keys = [];
431
+ jQuery(this).parents('.um-search-form').find('input[name="um-search-keys[]"]').each( function() {
432
+ search_keys.push( jQuery(this).val() );
433
+ });
434
+
435
+ var search = jQuery(this).val();
436
+
437
+ var url;
438
+ if ( search === '' ) {
439
+ url = action;
440
+ } else {
441
+ var query = '?';
442
+ for ( var i = 0; i < search_keys.length; i++ ) {
443
+ query += search_keys[i] + '=' + search;
444
+ if ( i !== search_keys.length - 1 ) {
445
+ query += '&';
446
+ }
447
+ }
448
+
449
+ url = action + query;
450
+ }
451
+ window.location = url;
452
+ }
453
  });
454
 
455
  jQuery('.um-form input[class="um-button"][type="submit"]').removeAttr('disabled');
assets/js/um-scripts.min.js CHANGED
@@ -1 +1 @@
1
- function um_init_datetimepicker(){jQuery(".um-datepicker:not(.picker__input)").each(function(){if(elem=jQuery(this),void 0!==elem.attr("data-disabled_weekdays")&&""!=elem.attr("data-disabled_weekdays"))var e=JSON.parse(elem.attr("data-disabled_weekdays"));else e=!1;var t=null;void 0!==elem.attr("data-years")&&(t=elem.attr("data-years"));var a=elem.attr("data-date_min"),i=elem.attr("data-date_max"),r=[],n=[];void 0!==a&&(r=a.split(",")),void 0!==i&&(n=i.split(","));var u=r.length?new Date(r):null,o=r.length?new Date(n):null;if(u&&"Invalid Date"==u.toString()&&3==r.length){var s=r[1]+"/"+r[2]+"/"+r[0];u=new Date(Date.parse(s))}if(o&&"Invalid Date"==o.toString()&&3==n.length){var d=n[1]+"/"+n[2]+"/"+n[0];o=new Date(Date.parse(d))}var l={disable:e,format:elem.attr("data-format"),formatSubmit:"yyyy/mm/dd",hiddenName:!0,onOpen:function(){elem.blur()},onClose:function(){elem.blur()}};null!==t&&(l.selectYears=t),null!==u&&(l.min=u),null!==o&&(l.max=o),elem.pickadate(l)}),jQuery(".um-timepicker:not(.picker__input)").each(function(){elem=jQuery(this),elem.pickatime({format:elem.attr("data-format"),interval:parseInt(elem.attr("data-intervals")),formatSubmit:"HH:i",hiddenName:!0,onOpen:function(){elem.blur()},onClose:function(){elem.blur()}})})}jQuery(document).ready(function(){jQuery(document.body).on("click",".um-dropdown a.real_url",function(e){window.location=jQuery(this).attr("href")}),jQuery(document.body).on("click",".um-trigger-menu-on-click",function(e){return jQuery(".um-dropdown").hide(),jQuery(this).find(".um-dropdown").show(),!1}),jQuery(document.body).on("click",".um-dropdown-hide",function(e){return UM_hide_menus(),!1}),jQuery(document.body).on("click","a.um-manual-trigger",function(){var e=jQuery(this).attr("data-child"),t=jQuery(this).attr("data-parent");return jQuery(this).parents(t).find(e).trigger("click"),UM_hide_menus(),!1}),jQuery(".um-s1,.um-s2").css({display:"block"}),0<jQuery(".um-s1").length&&jQuery(".um-s1").each(function(){var e=jQuery(this);""===e.val()&&e.attr("data-default")&&e.val(e.attr("data-default"))}),"function"==typeof jQuery.fn.select2&&(jQuery(".um-s1").select2({allowClear:!0}),jQuery(".um-s2").select2({allowClear:!1,minimumResultsForSearch:10})),"function"==typeof jQuery.fn.tipsy&&(jQuery(".um-tip-n").tipsy({gravity:"n",opacity:1,live:"a.live",offset:3}),jQuery(".um-tip-w").tipsy({gravity:"w",opacity:1,live:"a.live",offset:3}),jQuery(".um-tip-e").tipsy({gravity:"e",opacity:1,live:"a.live",offset:3}),jQuery(".um-tip-s").tipsy({gravity:"s",opacity:1,live:"a.live",offset:3})),"function"==typeof jQuery.fn.um_raty&&(jQuery(".um-rating").um_raty({half:!1,starType:"i",number:function(){return jQuery(this).attr("data-number")},score:function(){return jQuery(this).attr("data-score")},scoreName:function(){return jQuery(this).attr("data-key")},hints:!1,click:function(e,t){live_field=this.id,live_value=e,um_apply_conditions(jQuery(this),!1)}}),jQuery(".um-rating-readonly").um_raty({half:!1,starType:"i",number:function(){return jQuery(this).attr("data-number")},score:function(){return jQuery(this).attr("data-score")},scoreName:function(){return jQuery(this).attr("data-key")},hints:!1,readOnly:!0})),jQuery(document).on("change",'.um-field-area input[type="radio"]',function(){var e=jQuery(this).parents(".um-field-area"),t=jQuery(this).parents("label");e.find(".um-field-radio").removeClass("active"),e.find(".um-field-radio").find("i").removeAttr("class").addClass("um-icon-android-radio-button-off"),t.addClass("active"),t.find("i").removeAttr("class").addClass("um-icon-android-radio-button-on")}),jQuery(document).on("change",'.um-field-area input[type="checkbox"]',function(){jQuery(this).parents(".um-field-area");var e=jQuery(this).parents("label");e.hasClass("active")?(e.removeClass("active"),e.find("i").removeAttr("class").addClass("um-icon-android-checkbox-outline-blank")):(e.addClass("active"),e.find("i").removeAttr("class").addClass("um-icon-android-checkbox-outline"))}),um_init_datetimepicker(),jQuery(document).on("click",".um .um-single-image-preview a.cancel",function(e){e.preventDefault();var t=jQuery(this).parents(".um-field"),a=jQuery(this).parents(".um-field").find(".um-single-image-preview img").attr("src");return t.find(".um-single-image-preview img").attr("src",""),t.find(".um-single-image-preview").hide(),t.find(".um-btn-auto-width").html("Upload"),t.find("input[type=hidden]").val("empty_file"),jQuery.ajax({url:wp.ajax.settings.url,type:"post",data:{action:"um_remove_file",src:a,nonce:um_scripts.nonce}}),!1}),jQuery(document).on("click",".um .um-single-file-preview a.cancel",function(e){e.preventDefault();var t=jQuery(this).parents(".um-field"),a=jQuery(this).parents(".um-field").find(".um-single-fileinfo a").attr("href");return t.find(".um-single-file-preview").hide(),t.find(".um-btn-auto-width").html("Upload"),t.find("input[type=hidden]").val("empty_file"),jQuery.ajax({url:wp.ajax.settings.url,type:"post",data:{action:"um_remove_file",src:a,nonce:um_scripts.nonce}}),!1}),jQuery(document).on("click",".um-field-group-head:not(.disabled)",function(){var e=jQuery(this).parents(".um-field-group"),t=e.data("max_entries");e.find(".um-field-group-body").is(":hidden")?e.find(".um-field-group-body").show():e.find(".um-field-group-body:first").clone().appendTo(e),increase_id=0,e.find(".um-field-group-body").each(function(){increase_id++,jQuery(this).find("input").each(function(){var e=jQuery(this);e.attr("id",e.data("key")+"-"+increase_id),e.attr("name",e.data("key")+"-"+increase_id),e.parent().parent().find("label").attr("for",e.data("key")+"-"+increase_id)})}),0<t&&e.find(".um-field-group-body").length==t&&jQuery(this).addClass("disabled")}),jQuery(document).on("click",".um-field-group-cancel",function(e){e.preventDefault();var t=jQuery(this).parents(".um-field-group"),a=t.data("max_entries");return 1<t.find(".um-field-group-body").length?jQuery(this).parents(".um-field-group-body").remove():jQuery(this).parents(".um-field-group-body").hide(),0<a&&t.find(".um-field-group-body").length<a&&t.find(".um-field-group-head").removeClass("disabled"),!1}),jQuery(document.body).on("click",".um-ajax-paginate",function(e){e.preventDefault();var t=jQuery(this),a=jQuery(this).parent();a.addClass("loading");var i=jQuery(this).data("hook");if("um_load_posts"===i){var r=1*jQuery(this).data("pages"),n=1*jQuery(this).data("page")+1;jQuery.ajax({url:wp.ajax.settings.url,type:"post",data:{action:"um_ajax_paginate_posts",author:jQuery(this).data("author"),page:n,nonce:um_scripts.nonce},complete:function(){a.removeClass("loading")},success:function(e){a.before(e),n===r?a.remove():t.data("page",n)}})}else{var u=jQuery(this).data("args"),o=jQuery(this).parents(".um").find(".um-ajax-items");jQuery.ajax({url:wp.ajax.settings.url,type:"post",data:{action:"um_ajax_paginate",hook:i,args:u,nonce:um_scripts.nonce},complete:function(){a.removeClass("loading")},success:function(e){a.remove(),o.append(e)}})}}),jQuery(document).on("click",".um-ajax-action",function(e){e.preventDefault();var t=jQuery(this).data("hook"),a=jQuery(this).data("user_id"),arguments=jQuery(this).data("arguments");return jQuery(this).data("js-remove")&&jQuery(this).parents("."+jQuery(this).data("js-remove")).fadeOut("fast"),jQuery.ajax({url:wp.ajax.settings.url,type:"post",data:{action:"um_muted_action",hook:t,user_id:a,arguments:arguments,nonce:um_scripts.nonce},success:function(e){}}),!1}),jQuery(document).on("click","#um-search-button",function(){jQuery(this).parents("form").submit()}),jQuery('.um-form input[class="um-button"][type="submit"]').removeAttr("disabled"),jQuery(document).one("click",'.um:not(.um-account) .um-form input[class="um-button"][type="submit"]:not(.um-has-recaptcha)',function(){jQuery(this).attr("disabled","disabled"),jQuery(this).parents("form").submit()});var o={};function s(e,t,a,i){var r=e.data("um-parent");e.attr("name"),jQuery('select[name="'+r+'"]');e.find('option[value!=""]').remove(),e.hasClass("um-child-option-disabled")||e.removeAttr("disabled");i=[];var n="";if("yes"===t.post.members_directory){var u=new URLSearchParams(window.location.search);n=u.get(t.post.child_name)}jQuery.each(t.items,function(e,t){i.push({id:e,text:t,selected:t===n})}),e.select2("destroy"),e.select2({data:i,allowClear:!0,minimumResultsForSearch:10}),"yes"!==t.post.members_directory&&(void 0===t.field.default||e.data("um-original-value")?""!=e.data("um-original-value")&&e.val(e.data("um-original-value")).trigger("change"):e.val(t.field.default).trigger("change"),0==t.field.editable&&(e.addClass("um-child-option-disabled"),e.attr("disabled","disabled"))),o[a]=t}jQuery("select[data-um-parent]").each(function(){var r=jQuery(this),n=r.data("um-parent"),u=(r.data("um-ajax-url"),r.data("um-ajax-source"));r.val();r.attr("data-um-init-field",!0),jQuery(document).on("change",'select[name="'+n+'"]',function(){var t=jQuery(this),e=t.closest("form").find('input[type="hidden"][name="form_id"]').val(),a=t.val();if(""!=t.val()&&"object"!=typeof o[a]&&jQuery.ajax({url:wp.ajax.settings.url,type:"post",data:{action:"um_select_options",parent_option_name:n,parent_option:t.val(),child_callback:u,child_name:r.attr("name"),members_directory:r.attr("data-mebers-directory"),form_id:e,nonce:um_scripts.nonce},success:function(e){"success"==e.status&&""!=t.val()&&s(r,e,a),void 0!==e.debug&&console.log(e)},error:function(e){console.log(e)}}),""!=t.val()&&"object"==typeof o[a]){var i=o[a];s(r,i,a)}""==t.val()&&(r.find('option[value!=""]').remove(),r.val("").trigger("change"))}),jQuery('select[name="'+n+'"]').trigger("change")})});
1
+ function um_init_datetimepicker(){jQuery(".um-datepicker:not(.picker__input)").each(function(){if(elem=jQuery(this),void 0!==elem.attr("data-disabled_weekdays")&&""!=elem.attr("data-disabled_weekdays"))var e=JSON.parse(elem.attr("data-disabled_weekdays"));else e=!1;var t=null;void 0!==elem.attr("data-years")&&(t=elem.attr("data-years"));var a=elem.attr("data-date_min"),i=elem.attr("data-date_max"),r=[],n=[];void 0!==a&&(r=a.split(",")),void 0!==i&&(n=i.split(","));var u=r.length?new Date(r):null,s=r.length?new Date(n):null;if(u&&"Invalid Date"==u.toString()&&3==r.length){var o=r[1]+"/"+r[2]+"/"+r[0];u=new Date(Date.parse(o))}if(s&&"Invalid Date"==s.toString()&&3==n.length){var d=n[1]+"/"+n[2]+"/"+n[0];s=new Date(Date.parse(d))}var l={disable:e,format:elem.attr("data-format"),formatSubmit:"yyyy/mm/dd",hiddenName:!0,onOpen:function(){elem.blur()},onClose:function(){elem.blur()}};null!==t&&(l.selectYears=t),null!==u&&(l.min=u),null!==s&&(l.max=s),elem.pickadate(l)}),jQuery(".um-timepicker:not(.picker__input)").each(function(){elem=jQuery(this),elem.pickatime({format:elem.attr("data-format"),interval:parseInt(elem.attr("data-intervals")),formatSubmit:"HH:i",hiddenName:!0,onOpen:function(){elem.blur()},onClose:function(){elem.blur()}})})}function init_tipsy(){"function"==typeof jQuery.fn.tipsy&&(jQuery(".um-tip-n").tipsy({gravity:"n",opacity:1,live:"a.live",offset:3}),jQuery(".um-tip-w").tipsy({gravity:"w",opacity:1,live:"a.live",offset:3}),jQuery(".um-tip-e").tipsy({gravity:"e",opacity:1,live:"a.live",offset:3}),jQuery(".um-tip-s").tipsy({gravity:"s",opacity:1,live:"a.live",offset:3}))}jQuery(document).ready(function(){jQuery(document.body).on("click",".um-dropdown a.real_url",function(e){window.location=jQuery(this).attr("href")}),jQuery(document.body).on("click",".um-trigger-menu-on-click",function(e){return jQuery(".um-dropdown").hide(),jQuery(this).find(".um-dropdown").show(),!1}),jQuery(document.body).on("click",".um-dropdown-hide",function(e){return UM_hide_menus(),!1}),jQuery(document.body).on("click","a.um-manual-trigger",function(){var e=jQuery(this).attr("data-child"),t=jQuery(this).attr("data-parent");return jQuery(this).parents(t).find(e).trigger("click"),UM_hide_menus(),!1}),jQuery(".um-s1,.um-s2").css({display:"block"}),"function"==typeof jQuery.fn.select2&&(jQuery(".um-s1").select2({allowClear:!0}),jQuery(".um-s2").select2({allowClear:!1,minimumResultsForSearch:10}),jQuery(".um-s3").select2({allowClear:!1,minimumResultsForSearch:-1})),init_tipsy(),"function"==typeof jQuery.fn.um_raty&&(jQuery(".um-rating").um_raty({half:!1,starType:"i",number:function(){return jQuery(this).attr("data-number")},score:function(){return jQuery(this).attr("data-score")},scoreName:function(){return jQuery(this).attr("data-key")},hints:!1,click:function(e,t){live_field=this.id,live_value=e,um_apply_conditions(jQuery(this),!1)}}),jQuery(".um-rating-readonly").um_raty({half:!1,starType:"i",number:function(){return jQuery(this).attr("data-number")},score:function(){return jQuery(this).attr("data-score")},scoreName:function(){return jQuery(this).attr("data-key")},hints:!1,readOnly:!0})),jQuery(document).on("change",'.um-field-area input[type="radio"]',function(){var e=jQuery(this).parents(".um-field-area"),t=jQuery(this).parents("label");e.find(".um-field-radio").removeClass("active"),e.find(".um-field-radio").find("i").removeAttr("class").addClass("um-icon-android-radio-button-off"),t.addClass("active"),t.find("i").removeAttr("class").addClass("um-icon-android-radio-button-on")}),jQuery(document).on("change",'.um-field-area input[type="checkbox"]',function(){jQuery(this).parents(".um-field-area");var e=jQuery(this).parents("label");e.hasClass("active")?(e.removeClass("active"),e.find("i").removeAttr("class").addClass("um-icon-android-checkbox-outline-blank")):(e.addClass("active"),e.find("i").removeAttr("class").addClass("um-icon-android-checkbox-outline"))}),um_init_datetimepicker(),jQuery(document).on("click",".um .um-single-image-preview a.cancel",function(e){e.preventDefault();var t=jQuery(this).parents(".um-field"),a=jQuery(this).parents(".um-field").find(".um-single-image-preview img").attr("src");return t.find(".um-single-image-preview img").attr("src",""),t.find(".um-single-image-preview").hide(),t.find(".um-btn-auto-width").html("Upload"),t.find("input[type=hidden]").val("empty_file"),jQuery.ajax({url:wp.ajax.settings.url,type:"post",data:{action:"um_remove_file",src:a,nonce:um_scripts.nonce}}),!1}),jQuery(document).on("click",".um .um-single-file-preview a.cancel",function(e){e.preventDefault();var t=jQuery(this).parents(".um-field"),a=jQuery(this).parents(".um-field").find(".um-single-fileinfo a").attr("href");return t.find(".um-single-file-preview").hide(),t.find(".um-btn-auto-width").html("Upload"),t.find("input[type=hidden]").val("empty_file"),jQuery.ajax({url:wp.ajax.settings.url,type:"post",data:{action:"um_remove_file",src:a,nonce:um_scripts.nonce}}),!1}),jQuery(document).on("click",".um-field-group-head:not(.disabled)",function(){var e=jQuery(this).parents(".um-field-group"),t=e.data("max_entries");e.find(".um-field-group-body").is(":hidden")?e.find(".um-field-group-body").show():e.find(".um-field-group-body:first").clone().appendTo(e),increase_id=0,e.find(".um-field-group-body").each(function(){increase_id++,jQuery(this).find("input").each(function(){var e=jQuery(this);e.attr("id",e.data("key")+"-"+increase_id),e.attr("name",e.data("key")+"-"+increase_id),e.parent().parent().find("label").attr("for",e.data("key")+"-"+increase_id)})}),0<t&&e.find(".um-field-group-body").length==t&&jQuery(this).addClass("disabled")}),jQuery(document).on("click",".um-field-group-cancel",function(e){e.preventDefault();var t=jQuery(this).parents(".um-field-group"),a=t.data("max_entries");return 1<t.find(".um-field-group-body").length?jQuery(this).parents(".um-field-group-body").remove():jQuery(this).parents(".um-field-group-body").hide(),0<a&&t.find(".um-field-group-body").length<a&&t.find(".um-field-group-head").removeClass("disabled"),!1}),jQuery(document.body).on("click",".um-ajax-paginate",function(e){e.preventDefault();var t=jQuery(this),a=jQuery(this).parent();a.addClass("loading");var i=jQuery(this).data("hook");if("um_load_posts"===i){var r=1*jQuery(this).data("pages"),n=1*jQuery(this).data("page")+1;jQuery.ajax({url:wp.ajax.settings.url,type:"post",data:{action:"um_ajax_paginate_posts",author:jQuery(this).data("author"),page:n,nonce:um_scripts.nonce},complete:function(){a.removeClass("loading")},success:function(e){a.before(e),n===r?a.remove():t.data("page",n)}})}else if("um_load_comments"===i){r=1*jQuery(this).data("pages"),n=1*jQuery(this).data("page")+1;jQuery.ajax({url:wp.ajax.settings.url,type:"post",data:{action:"um_ajax_paginate_comments",user_id:jQuery(this).data("user_id"),page:n,nonce:um_scripts.nonce},complete:function(){a.removeClass("loading")},success:function(e){a.before(e),n===r?a.remove():t.data("page",n)}})}else{var u=jQuery(this).data("args"),s=jQuery(this).parents(".um").find(".um-ajax-items");jQuery.ajax({url:wp.ajax.settings.url,type:"post",data:{action:"um_ajax_paginate",hook:i,args:u,nonce:um_scripts.nonce},complete:function(){a.removeClass("loading")},success:function(e){a.remove(),s.append(e)}})}}),jQuery(document).on("click",".um-ajax-action",function(e){e.preventDefault();var t=jQuery(this).data("hook"),a=jQuery(this).data("user_id"),arguments=jQuery(this).data("arguments");return jQuery(this).data("js-remove")&&jQuery(this).parents("."+jQuery(this).data("js-remove")).fadeOut("fast"),jQuery.ajax({url:wp.ajax.settings.url,type:"post",data:{action:"um_muted_action",hook:t,user_id:a,arguments:arguments,nonce:um_scripts.nonce},success:function(e){}}),!1}),jQuery(document.body).on("click","#um-search-button",function(){var e=jQuery(this).parents(".um-search-form").data("members_page"),t=[];jQuery(this).parents(".um-search-form").find('input[name="um-search-keys[]"]').each(function(){t.push(jQuery(this).val())});var a,i=jQuery(this).parents(".um-search-form").find(".um-search-field").val();if(""===i)a=e;else{for(var r="?",n=0;n<t.length;n++)r+=t[n]+"="+i,n!==t.length-1&&(r+="&");a=e+r}window.location=a}),jQuery(document.body).on("keypress",".um-search-field",function(e){if(13===e.which){var t=jQuery(this).parents(".um-search-form").data("members_page"),a=[];jQuery(this).parents(".um-search-form").find('input[name="um-search-keys[]"]').each(function(){a.push(jQuery(this).val())});var i,r=jQuery(this).val();if(""===r)i=t;else{for(var n="?",u=0;u<a.length;u++)n+=a[u]+"="+r,u!==a.length-1&&(n+="&");i=t+n}window.location=i}}),jQuery('.um-form input[class="um-button"][type="submit"]').removeAttr("disabled"),jQuery(document).one("click",'.um:not(.um-account) .um-form input[class="um-button"][type="submit"]:not(.um-has-recaptcha)',function(){jQuery(this).attr("disabled","disabled"),jQuery(this).parents("form").submit()});var s={};function o(e,t,a,i){var r=e.data("um-parent");e.attr("name"),jQuery('select[name="'+r+'"]');e.find('option[value!=""]').remove(),e.hasClass("um-child-option-disabled")||e.removeAttr("disabled");i=[];var n="";if("yes"===t.post.members_directory){var u=new URLSearchParams(window.location.search);n=u.get(t.post.child_name)}jQuery.each(t.items,function(e,t){i.push({id:e,text:t,selected:t===n})}),e.select2("destroy"),e.select2({data:i,allowClear:!0,minimumResultsForSearch:10}),"yes"!==t.post.members_directory&&(void 0===t.field.default||e.data("um-original-value")?""!=e.data("um-original-value")&&e.val(e.data("um-original-value")).trigger("change"):e.val(t.field.default).trigger("change"),0==t.field.editable&&(e.addClass("um-child-option-disabled"),e.attr("disabled","disabled"))),s[a]=t}jQuery("select[data-um-parent]").each(function(){var r=jQuery(this),n=r.data("um-parent"),u=(r.data("um-ajax-url"),r.data("um-ajax-source"));r.val();r.attr("data-um-init-field",!0),jQuery(document).on("change",'select[name="'+n+'"]',function(){var t=jQuery(this),e=t.closest("form").find('input[type="hidden"][name="form_id"]').val(),a=t.val();if(""!=t.val()&&"object"!=typeof s[a]&&jQuery.ajax({url:wp.ajax.settings.url,type:"post",data:{action:"um_select_options",parent_option_name:n,parent_option:t.val(),child_callback:u,child_name:r.attr("name"),members_directory:r.attr("data-mebers-directory"),form_id:e,nonce:um_scripts.nonce},success:function(e){"success"==e.status&&""!=t.val()&&o(r,e,a),void 0!==e.debug&&console.log(e)},error:function(e){console.log(e)}}),""!=t.val()&&"object"==typeof s[a]){var i=s[a];o(r,i,a)}""==t.val()&&(r.find('option[value!=""]').remove(),r.val("").trigger("change"))}),jQuery('select[name="'+n+'"]').trigger("change")})});
includes/admin/assets/css/um-admin-forms.css CHANGED
@@ -35,19 +35,22 @@ textarea.um-forms-field.um-small-field {
35
 
36
 
37
  .um-multi-text-list,
38
- .um-multi-selects-list {
 
39
  float: left;
40
  width:100%;
41
  margin: 0 0 10px 0;
42
  }
43
 
44
  .um-hidden-multi-text,
45
- .um-hidden-multi-selects {
 
46
  display: none !important;
47
  }
48
 
49
  .um-multi-text-option-line,
50
- .um-multi-selects-option-line {
 
51
  float:left;
52
  width:100%;
53
  margin: 0;
@@ -55,6 +58,12 @@ textarea.um-forms-field.um-small-field {
55
  clear:both;
56
  }
57
 
 
 
 
 
 
 
58
  .um-multi-text-option-line .um-field-wrapper,
59
  .um-multi-selects-option-line .um-field-wrapper {
60
  float:left;
@@ -63,6 +72,47 @@ textarea.um-forms-field.um-small-field {
63
  box-sizing: border-box;
64
  }
65
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
66
  .um-multi-text-option-line .um-field-wrapper input,
67
  .um-multi-selects-option-line .um-field-wrapper select {
68
  float:left;
@@ -72,7 +122,8 @@ textarea.um-forms-field.um-small-field {
72
 
73
 
74
  .um-multi-text-option-line .um-field-control,
75
- .um-multi-selects-option-line .um-field-control {
 
76
  float:left;
77
  width: 60px;
78
  line-height: 30px;
35
 
36
 
37
  .um-multi-text-list,
38
+ .um-multi-selects-list,
39
+ .um-md-default-filters-list {
40
  float: left;
41
  width:100%;
42
  margin: 0 0 10px 0;
43
  }
44
 
45
  .um-hidden-multi-text,
46
+ .um-hidden-multi-selects,
47
+ .um-hidden-md-default-filters {
48
  display: none !important;
49
  }
50
 
51
  .um-multi-text-option-line,
52
+ .um-multi-selects-option-line,
53
+ .um-md-default-filters-option-line {
54
  float:left;
55
  width:100%;
56
  margin: 0;
58
  clear:both;
59
  }
60
 
61
+ .um-md-default-filters-option-line {
62
+ border-bottom: 1px solid #eee;
63
+ padding: 0 0 5px 0;
64
+ margin: 5px 0 0 0;
65
+ }
66
+
67
  .um-multi-text-option-line .um-field-wrapper,
68
  .um-multi-selects-option-line .um-field-wrapper {
69
  float:left;
72
  box-sizing: border-box;
73
  }
74
 
75
+ .um-md-default-filters-option-line .um-field-wrapper {
76
+ float:left;
77
+ width: calc( 100% - 60px );
78
+ line-height: 30px;
79
+ box-sizing: border-box;
80
+ }
81
+
82
+ .um-md-default-filters-option-line .um-field-wrapper2 {
83
+ float:left;
84
+ width: calc( 100% - 60px );
85
+ line-height: 30px;
86
+ box-sizing: border-box;
87
+ }
88
+
89
+ .um-md-default-filters-option-line .um-field-wrapper2 .ui-slider-range.ui-widget-header {
90
+ background: #44b0ec;
91
+ border: 1px solid #44b0ec !important;
92
+ margin-top: -1px;
93
+ }
94
+
95
+ .um-md-default-filters-option-line .um-field-wrapper2 select {
96
+ width: 100%;
97
+ float: left;
98
+ }
99
+
100
+ .um-md-default-filters-option-line .um-field-wrapper2 input {
101
+ width: calc( 50% - 7px ) !important;
102
+ float: left;
103
+ }
104
+
105
+ .um-md-default-filters-option-line .um-field-wrapper2 .um-slider {
106
+ margin: 5px 9px 0 9px;
107
+ width: calc( 100% - 18px );
108
+ box-sizing: border-box;
109
+ display: block;
110
+ }
111
+
112
+ .um-md-default-filters-option-line .um-field-wrapper2 input:first-child {
113
+ margin-right: 11px;
114
+ }
115
+
116
  .um-multi-text-option-line .um-field-wrapper input,
117
  .um-multi-selects-option-line .um-field-wrapper select {
118
  float:left;
122
 
123
 
124
  .um-multi-text-option-line .um-field-control,
125
+ .um-multi-selects-option-line .um-field-control,
126
+ .um-md-default-filters-option-line .um-field-control {
127
  float:left;
128
  width: 60px;
129
  line-height: 30px;
includes/admin/assets/css/um-admin-global.css CHANGED
@@ -166,6 +166,10 @@ a.um-delete{ color: #a00; }
166
  text-shadow: none !important;
167
  }
168
 
 
 
 
 
169
  .um_tooltip.dashicons,
170
  .um_tooltip.dashicons:before {
171
  height:22px;
166
  text-shadow: none !important;
167
  }
168
 
169
+ .ui-tooltip.um_tooltip a {
170
+ color: #eeeeee !important;
171
+ }
172
+
173
  .um_tooltip.dashicons,
174
  .um_tooltip.dashicons:before {
175
  height:22px;
includes/admin/assets/css/um-admin-select2.css CHANGED
@@ -92,7 +92,7 @@ body.um-admin .select2.select2-container .select2-selection{
92
  user-select: none;
93
  background: none !important;
94
  background-color: #fff !important;
95
- border: 2px solid #ddd !important;
96
  }
97
  body.um-admin .select2.select2-container .select2-selection .select2-selection__arrow b[role=presentation]{
98
  display:none;
@@ -123,7 +123,7 @@ body.um-admin .select2.select2-container .select2-selection .select2-selection__
123
  border-left: 0 !important;
124
  }
125
  body.um-admin .select2-container.select2-container--open .select2-dropdown{
126
- border: 2px solid #ddd !important;
127
  }
128
  body.um-admin .select2-results li{
129
  list-style: none;
92
  user-select: none;
93
  background: none !important;
94
  background-color: #fff !important;
95
+ border: 1px solid #ddd !important;
96
  }
97
  body.um-admin .select2.select2-container .select2-selection .select2-selection__arrow b[role=presentation]{
98
  display:none;
123
  border-left: 0 !important;
124
  }
125
  body.um-admin .select2-container.select2-container--open .select2-dropdown{
126
+ border: 1px solid #ddd !important;
127
  }
128
  body.um-admin .select2-results li{
129
  list-style: none;
includes/admin/assets/js/um-admin-blocks-shortcode.js CHANGED
@@ -18,7 +18,7 @@
18
 
19
  UmRegisterBlockType('um-block/um-forms', {
20
  title: i18n.__( 'UM Form' , 'ultimate-member' ),
21
- description: i18n.__( 'Chose display form', 'ultimate-member' ),
22
  icon: 'forms',
23
  category: 'um-blocks',
24
  attributes: {
@@ -147,7 +147,7 @@
147
 
148
  UmRegisterBlockType( 'um-block/um-member-directories', {
149
  title: i18n.__( 'UM Member Directories', 'ultimate-member'),
150
- description: i18n.__( 'Chose display form', 'ultimate-member' ),
151
  icon: 'groups',
152
  category: 'um-blocks',
153
  attributes: {
18
 
19
  UmRegisterBlockType('um-block/um-forms', {
20
  title: i18n.__( 'UM Form' , 'ultimate-member' ),
21
+ description: i18n.__( 'Choose display form', 'ultimate-member' ),
22
  icon: 'forms',
23
  category: 'um-blocks',
24
  attributes: {
147
 
148
  UmRegisterBlockType( 'um-block/um-member-directories', {
149
  title: i18n.__( 'UM Member Directories', 'ultimate-member'),
150
+ description: i18n.__( 'Choose display form', 'ultimate-member' ),
151
  icon: 'groups',
152
  category: 'um-blocks',
153
  attributes: {
includes/admin/assets/js/um-admin-forms.js CHANGED
@@ -2,10 +2,16 @@ jQuery(document).ready( function() {
2
  /**
3
  * Multi-selects field
4
  */
5
- jQuery( document.body ).on( 'click', '.um-select-delete', function() {
6
  jQuery( this ).parents( 'li.um-multi-selects-option-line' ).remove();
7
  });
8
 
 
 
 
 
 
 
9
 
10
  jQuery( '.um-multi-selects-add-option' ).click( function() {
11
  var list = jQuery(this).siblings('ul.um-multi-selects-list');
@@ -29,6 +35,264 @@ jQuery(document).ready( function() {
29
 
30
  });
31
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
32
 
33
  /**
34
  * Multi-text field
@@ -186,6 +450,11 @@ jQuery(document).ready( function() {
186
  }
187
 
188
 
 
 
 
 
 
189
  /**
190
  * Conditional logic
191
  *
@@ -206,10 +475,12 @@ jQuery(document).ready( function() {
206
  var parent_condition = true;
207
 
208
  if ( condition === '=' || condition === '!=' ) {
209
- var condition_field = jQuery( '#' + prefix + '_' + conditional[0] );
 
210
 
211
- if ( typeof condition_field.parents('.um-forms-line').data('conditional') !== 'undefined' ) {
212
- parent_condition = check_condition( condition_field.parents('.um-forms-line') );
 
213
  }
214
  } else if ( condition === '~' ) {
215
  var selectors = conditional[0].split('|');
@@ -220,35 +491,116 @@ jQuery(document).ready( function() {
220
  if ( typeof condition_fields[0].parents('.um-forms-line').data('conditional') !== 'undefined' ) {
221
  parent_condition = check_condition( condition_fields[0].parents('.um-forms-line') );
222
  }
 
 
 
 
 
 
223
  }
224
 
225
  var own_condition = false;
226
  if ( condition === '=' ) {
227
- var tagName = condition_field.prop("tagName").toLowerCase();
 
 
228
 
229
- if ( tagName == 'input' ) {
230
- var input_type = condition_field.attr('type');
231
- if ( input_type == 'checkbox' ) {
232
- own_condition = ( value == '1' ) ? condition_field.is(':checked') : ! condition_field.is(':checked');
233
- } else {
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
234
  own_condition = ( condition_field.val() == value );
235
  }
236
- } else if ( tagName == 'select' ) {
237
- own_condition = ( condition_field.val() == value );
238
  }
 
239
  } else if ( condition === '!=' ) {
240
- var tagName = condition_field.prop("tagName").toLowerCase();
 
 
241
 
242
- if ( tagName == 'input' ) {
243
- var input_type = condition_field.attr('type');
244
- if ( input_type == 'checkbox' ) {
245
- own_condition = ( value == '1' ) ? ! condition_field.is(':checked') : condition_field.is(':checked');
246
- } else {
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
247
  own_condition = ( condition_field.val() != value );
248
  }
249
- } else if ( tagName == 'select' ) {
250
- own_condition = ( condition_field.val() != value );
251
  }
 
252
  } else if ( condition === '~' ) {
253
 
254
  var field_id = form_line.find( form_line.data('field_type') ).data('field_id');
@@ -265,6 +617,11 @@ jQuery(document).ready( function() {
265
  visible_options.push( condition_field.data( 'fill_' + field_id ) );
266
  }
267
  }
 
 
 
 
 
268
  }
269
  });
270
 
@@ -285,9 +642,24 @@ jQuery(document).ready( function() {
285
  lines_field.val( null );
286
  lines_field.find( 'option' ).attr( 'selected', false ).prop( 'selected', false );
287
  }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
288
  }
289
 
290
- return ( own_condition && parent_condition );
291
  }
292
 
293
  });
2
  /**
3
  * Multi-selects field
4
  */
5
+ jQuery( document.body ).on( 'click', '.um-multi-selects-option-line .um-select-delete', function() {
6
  jQuery( this ).parents( 'li.um-multi-selects-option-line' ).remove();
7
  });
8
 
9
+ /**
10
+ * Multi-selects field
11
+ */
12
+ jQuery( document.body ).on( 'click', '.um-md-default-filters-option-line .um-select-delete', function() {
13
+ jQuery( this ).parents( 'li.um-md-default-filters-option-line' ).remove();
14
+ });
15
 
16
  jQuery( '.um-multi-selects-add-option' ).click( function() {
17
  var list = jQuery(this).siblings('ul.um-multi-selects-list');
35
 
36
  });
37
 
38
+ var um_local_date = new Date();
39
+ var um_gmt_hours = -um_local_date.getTimezoneOffset() / 60;
40
+ jQuery('input[name="um-gmt-offset"]').val( um_gmt_hours );
41
+
42
+ //slider filter
43
+ jQuery('.um-admin-metabox').find('.um-slider').each( function() {
44
+ var slider = jQuery( this );
45
+
46
+ var min_default_value = parseInt( slider.data('min') );
47
+ var max_default_value = parseInt( slider.data('max') );
48
+
49
+ if ( typeof jQuery( '#' + slider.data('field_name') + '_min' ).val() != 'undefined' ) {
50
+ min_default_value = jQuery( '#' + slider.data('field_name') + '_min' ).val();
51
+ }
52
+ if ( typeof jQuery( '#' + slider.data('field_name') + '_max' ).val() != 'undefined' ) {
53
+ max_default_value = jQuery( '#' + slider.data('field_name') + '_max' ).val();
54
+ }
55
+
56
+ var default_value = [ min_default_value, max_default_value ];
57
+
58
+ slider.slider({
59
+ range: true,
60
+ min: parseInt( slider.data('min') ),
61
+ max: parseInt( slider.data('max') ),
62
+ values: default_value,
63
+ create: function( event, ui ) {
64
+ //console.log( ui );
65
+ },
66
+ step: 1,
67
+ slide: function( event, ui ) {
68
+ um_set_range_label( jQuery( this ), ui );
69
+ },
70
+ stop: function( event, ui ) {
71
+
72
+ }
73
+ });
74
+
75
+ um_set_range_label( slider );
76
+ });
77
+
78
+
79
+ //datepicker filter
80
+ jQuery('.um-admin-metabox').find('.um-datepicker-filter').each( function() {
81
+ var elem = jQuery(this);
82
+
83
+ var min = new Date( elem.data('date_min')*1000 );
84
+ var max = new Date( elem.data('date_max')*1000 );
85
+
86
+ var $input = elem.pickadate({
87
+ selectYears: true,
88
+ min: min,
89
+ max: max,
90
+ formatSubmit: 'yyyy/mm/dd',
91
+ hiddenName: true,
92
+ onOpen: function() {
93
+ elem.blur();
94
+ },
95
+ onClose: function() {
96
+ elem.blur();
97
+ },
98
+ onSet: function( context ) {
99
+
100
+ }
101
+ });
102
+
103
+ var $picker = $input.pickadate('picker');
104
+ $picker.set( 'select', elem.data('value')*1000 );
105
+ });
106
+
107
+
108
+ //timepicker filter
109
+ jQuery('.um-admin-metabox').find('.um-timepicker-filter').each( function() {
110
+ var elem = jQuery(this);
111
+
112
+ //using arrays formatted as [HOUR,MINUTE]
113
+
114
+ var min = elem.data('min');
115
+ var max = elem.data('max');
116
+ var picker_min = min.split(':');
117
+ var picker_max = max.split(':');
118
+
119
+ var $input = elem.pickatime({
120
+ format: elem.data('format'),
121
+ interval: parseInt( elem.data('intervals') ),
122
+ min: [picker_min[0],picker_min[1]],
123
+ max: [picker_max[0],picker_max[1]],
124
+ formatSubmit: 'HH:i',
125
+ hiddenName: true,
126
+ onOpen: function() { elem.blur(); },
127
+ onClose: function() { elem.blur(); },
128
+ onSet: function( context ) {
129
+
130
+ }
131
+ });
132
+ });
133
+
134
+ var um_member_dir_filters_busy = false;
135
+
136
+ jQuery( document.body ).on( 'change', '.um-md-default-filters-option-line .um-field-wrapper select', function() {
137
+ if ( um_member_dir_filters_busy ) {
138
+ return;
139
+ }
140
+
141
+ var obj = jQuery(this);
142
+ var filter_key = obj.val();
143
+ var directory_id = obj.data('member_directory');
144
+
145
+ um_member_dir_filters_busy = true;
146
+ wp.ajax.send( 'um_member_directory_default_filter_settings', {
147
+ data: {
148
+ key: filter_key,
149
+ directory_id: directory_id,
150
+ nonce: um_admin_scripts.nonce
151
+ },
152
+ success: function( data ) {
153
+ var field_wrapper = obj.parents( '.um-md-default-filters-option-line' ).find('.um-field-wrapper2');
154
+ field_wrapper.html( data.field_html );
155
+
156
+ um_member_dir_filters_busy = false;
157
+
158
+ //slider filter
159
+ field_wrapper.find('.um-slider').each( function() {
160
+ var slider = jQuery( this );
161
+ var min_default_value = parseInt( slider.data('min') );
162
+ var max_default_value = parseInt( slider.data('max') );
163
+
164
+ var default_value = [ min_default_value, max_default_value ];
165
+
166
+ slider.slider({
167
+ range: true,
168
+ min: parseInt( slider.data('min') ),
169
+ max: parseInt( slider.data('max') ),
170
+ values: default_value,
171
+ create: function( event, ui ) {
172
+ //console.log( ui );
173
+ },
174
+ step: 1,
175
+ slide: function( event, ui ) {
176
+ um_set_range_label( jQuery( this ), ui );
177
+ },
178
+ stop: function( event, ui ) {
179
+
180
+ }
181
+ });
182
+
183
+ um_set_range_label( slider );
184
+ });
185
+
186
+
187
+ //datepicker filter
188
+ field_wrapper.find('.um-datepicker-filter').each( function() {
189
+ var elem = jQuery(this);
190
+
191
+ var min = new Date( elem.data('date_min')*1000 );
192
+ var max = new Date( elem.data('date_max')*1000 );
193
+
194
+ var $input = elem.pickadate({
195
+ selectYears: true,
196
+ min: min,
197
+ max: max,
198
+ formatSubmit: 'yyyy/mm/dd',
199
+ hiddenName: true,
200
+ onOpen: function() {
201
+ elem.blur();
202
+ },
203
+ onClose: function() {
204
+ elem.blur();
205
+ },
206
+ onSet: function( context ) {
207
+
208
+ }
209
+ });
210
+ });
211
+
212
+
213
+ //timepicker filter
214
+ field_wrapper.find('.um-timepicker-filter').each( function() {
215
+ var elem = jQuery(this);
216
+
217
+ //using arrays formatted as [HOUR,MINUTE]
218
+
219
+ var min = elem.data('min');
220
+ var max = elem.data('max');
221
+ var picker_min = min.split(':');
222
+ var picker_max = max.split(':');
223
+
224
+ var $input = elem.pickatime({
225
+ format: elem.data('format'),
226
+ interval: parseInt( elem.data('intervals') ),
227
+ min: [picker_min[0],picker_min[1]],
228
+ max: [picker_max[0],picker_max[1]],
229
+ formatSubmit: 'HH:i',
230
+ hiddenName: true,
231
+ onOpen: function() { elem.blur(); },
232
+ onClose: function() { elem.blur(); },
233
+ onSet: function( context ) {
234
+
235
+ }
236
+ });
237
+ });
238
+
239
+
240
+ },
241
+ error: function( data ) {
242
+ return false;
243
+ }
244
+ });
245
+
246
+ });
247
+
248
+ function um_set_range_label( slider, ui ) {
249
+ var placeholder = slider.siblings( '.um-slider-range' ).data( 'placeholder' );
250
+
251
+ if( ui ) {
252
+ placeholder = placeholder.replace( '\{min_range\}', ui.values[ 0 ] )
253
+ .replace( '\{max_range\}', ui.values[ 1 ] )
254
+ .replace( '\{field_label\}', slider.siblings( '.um-slider-range' )
255
+ .data('label') );
256
+ } else {
257
+ placeholder = placeholder.replace( '\{min_range\}', slider.slider( "values", 0 ) )
258
+ .replace( '\{max_range\}', slider.slider( "values", 1 ) )
259
+ .replace( '\{field_label\}', slider.siblings( '.um-slider-range' )
260
+ .data('label') );
261
+ }
262
+ slider.siblings( '.um-slider-range' ).html( placeholder );
263
+
264
+ slider.siblings( ".um_range_min" ).val( slider.slider( "values", 0 ) );
265
+ slider.siblings( ".um_range_max" ).val( slider.slider( "values", 1 ) );
266
+ }
267
+
268
+
269
+ jQuery( '.um-md-default-filters-add-option' ).click( function() {
270
+ if ( um_member_dir_filters_busy ) {
271
+ return;
272
+ }
273
+
274
+ var list = jQuery(this).siblings('ul.um-md-default-filters-list');
275
+
276
+ var field_id = list.data('field_id');
277
+ var k = 0;
278
+ if ( list.find( 'li:last select.um-forms-field' ).length > 0 ) {
279
+ k = list.find( 'li:last select.um-forms-field' ).attr('id').split("-");
280
+ k = k[1]*1 + 1;
281
+ }
282
+
283
+ var selector_html = jQuery( '<div>' ).append( list.siblings('.um-hidden-md-default-filters').clone() ).html();
284
+
285
+ list.append(
286
+ '<li class="um-md-default-filters-option-line"><span class="um-field-wrapper">' + selector_html +
287
+ '</span></span><span class="um-field-control"><a href="javascript:void(0);" class="um-select-delete">' + php_data.texts.remove + '</a></span><span class="um-field-wrapper2 um"></li>'
288
+ );
289
+
290
+ list.find('li:last .um-hidden-md-default-filters').attr('name', jQuery(this).data('name') ).
291
+ addClass('um-forms-field um-long-field').removeClass('um-hidden-md-default-filters').attr('id', list.data('id_attr') + '-' + k);
292
+
293
+ list.find('li:last .um-field-wrapper select').trigger('change');
294
+ });
295
+
296
 
297
  /**
298
  * Multi-text field
450
  }
451
 
452
 
453
+ function um_distinct( value, index, self ) {
454
+ return self.indexOf( value ) === index;
455
+ }
456
+
457
+
458
  /**
459
  * Conditional logic
460
  *
475
  var parent_condition = true;
476
 
477
  if ( condition === '=' || condition === '!=' ) {
478
+ if ( conditional[0].indexOf( '||' ) === -1 ) {
479
+ var condition_field = jQuery( '#' + prefix + '_' + conditional[0] );
480
 
481
+ if ( typeof condition_field.parents('.um-forms-line').data('conditional') !== 'undefined' ) {
482
+ parent_condition = check_condition( condition_field.parents('.um-forms-line') );
483
+ }
484
  }
485
  } else if ( condition === '~' ) {
486
  var selectors = conditional[0].split('|');
491
  if ( typeof condition_fields[0].parents('.um-forms-line').data('conditional') !== 'undefined' ) {
492
  parent_condition = check_condition( condition_fields[0].parents('.um-forms-line') );
493
  }
494
+ } else if ( condition === '><' ) {
495
+ var condition_field = jQuery( '#' + prefix + '_' + conditional[0] + '_' + conditional[2] );
496
+
497
+ if ( typeof condition_field.parents('.um-forms-line').data('conditional') !== 'undefined' ) {
498
+ parent_condition = check_condition( condition_field.parents('.um-forms-line') );
499
+ }
500
  }
501
 
502
  var own_condition = false;
503
  if ( condition === '=' ) {
504
+ if ( conditional[0].indexOf( '||' ) !== -1 ) {
505
+ var selectors = conditional[0].split('||');
506
+ var complete_condition = false;
507
 
508
+ jQuery.each( selectors, function(i) {
509
+ var cond_field = jQuery( '#' + prefix + '_' + selectors[i] );
510
+
511
+ own_condition = false;
512
+ parent_condition = true;
513
+
514
+ if ( typeof cond_field.parents('.um-forms-line').data('conditional') !== 'undefined' ) {
515
+ parent_condition = check_condition( cond_field.parents('.um-forms-line') );
516
+ }
517
+
518
+ var tagName = cond_field.prop("tagName").toLowerCase();
519
+
520
+ if ( tagName === 'input' ) {
521
+ var input_type = cond_field.attr('type');
522
+ if ( input_type === 'checkbox' ) {
523
+ own_condition = ( value == '1' ) ? cond_field.is(':checked') : ! cond_field.is(':checked');
524
+ } else {
525
+ own_condition = ( cond_field.val() == value );
526
+ }
527
+ } else if ( tagName === 'select' ) {
528
+ own_condition = ( cond_field.val() == value );
529
+ }
530
+
531
+ if ( own_condition && parent_condition ) {
532
+ complete_condition = true;
533
+ }
534
+ });
535
+
536
+ return complete_condition;
537
+ } else {
538
+ var tagName = condition_field.prop("tagName").toLowerCase();
539
+
540
+ if ( tagName == 'input' ) {
541
+ var input_type = condition_field.attr('type');
542
+ if ( input_type == 'checkbox' ) {
543
+ own_condition = ( value == '1' ) ? condition_field.is(':checked') : ! condition_field.is(':checked');
544
+ } else {
545
+ own_condition = ( condition_field.val() == value );
546
+ }
547
+ } else if ( tagName == 'select' ) {
548
  own_condition = ( condition_field.val() == value );
549
  }
550
+
551
+ return ( own_condition && parent_condition );
552
  }
553
+
554
  } else if ( condition === '!=' ) {
555
+ if ( conditional[0].indexOf( '||' ) !== -1 ) {
556
+ var selectors = conditional[0].split('||');
557
+ var complete_condition = false;
558
 
559
+ jQuery.each( selectors, function(i) {
560
+ var cond_field = jQuery( '#' + prefix + '_' + selectors[i] );
561
+
562
+ own_condition = false;
563
+ parent_condition = true;
564
+ if ( typeof cond_field.parents('.um-forms-line').data('conditional') !== 'undefined' ) {
565
+ parent_condition = check_condition( cond_field.parents('.um-forms-line') );
566
+ }
567
+
568
+ var tagName = cond_field.prop("tagName").toLowerCase();
569
+
570
+ if ( tagName === 'input' ) {
571
+ var input_type = cond_field.attr('type');
572
+ if ( input_type === 'checkbox' ) {
573
+ own_condition = ( value == '1' ) ? ! cond_field.is(':checked') : cond_field.is(':checked');
574
+ } else {
575
+ own_condition = ( cond_field.val() != value );
576
+ }
577
+ } else if ( tagName === 'select' ) {
578
+ own_condition = ( cond_field.val() != value );
579
+ }
580
+
581
+ if ( own_condition && parent_condition ) {
582
+ complete_condition = true;
583
+ }
584
+ });
585
+
586
+ return complete_condition;
587
+ } else {
588
+ var tagName = condition_field.prop("tagName").toLowerCase();
589
+
590
+ if ( tagName == 'input' ) {
591
+ var input_type = condition_field.attr('type');
592
+ if ( input_type == 'checkbox' ) {
593
+ own_condition = ( value == '1' ) ? ! condition_field.is(':checked') : condition_field.is(':checked');
594
+ } else {
595
+ own_condition = ( condition_field.val() != value );
596
+ }
597
+ } else if ( tagName == 'select' ) {
598
  own_condition = ( condition_field.val() != value );
599
  }
600
+
601
+ return ( own_condition && parent_condition );
602
  }
603
+
604
  } else if ( condition === '~' ) {
605
 
606
  var field_id = form_line.find( form_line.data('field_type') ).data('field_id');
617
  visible_options.push( condition_field.data( 'fill_' + field_id ) );
618
  }
619
  }
620
+ } else if ( tagName == 'select' ) {
621
+ if ( ! value && condition_field.val() ) {
622
+ visible_options = visible_options.concat( condition_field.val() );
623
+ visible_options = visible_options.filter( um_distinct );
624
+ }
625
  }
626
  });
627
 
642
  lines_field.val( null );
643
  lines_field.find( 'option' ).attr( 'selected', false ).prop( 'selected', false );
644
  }
645
+
646
+ return ( own_condition && parent_condition );
647
+ } else if ( condition === '><' ) {
648
+
649
+ var tagName = condition_field.prop("tagName").toLowerCase();
650
+
651
+ if ( tagName == 'input' ) {
652
+ var input_type = condition_field.attr('type');
653
+ if ( input_type == 'checkbox' ) {
654
+ own_condition = condition_field.is(':checked');
655
+ }
656
+ }
657
+
658
+ return ( own_condition && parent_condition );
659
+
660
  }
661
 
662
+ return false;
663
  }
664
 
665
  });
includes/admin/assets/js/um-admin-modal.js CHANGED
@@ -23,7 +23,7 @@ function um_admin_new_modal( id, ajax, size ) {
23
  jQuery('#' + id).show();
24
  jQuery('.um-admin-modal').show();
25
 
26
- jQuery('.um-admin-modal-head').append('<a href="#" data-action="UM_remove_modal" class="um-admin-modal-close"><i class="um-faicon-times"></i></a>');
27
 
28
  if ( ajax == true ) {
29
  um_admin_modal_size( size );
@@ -97,6 +97,8 @@ function um_admin_modal_ajaxcall( act_id, arg1, arg2, arg3 ) {
97
  in_column = jQuery('.um-col-demon-settings').data('in_column');
98
  in_group = jQuery('.um-col-demon-settings').data('in_group');
99
  }
 
 
100
 
101
  jQuery.ajax({
102
  url: wp.ajax.settings.url,
@@ -111,7 +113,8 @@ function um_admin_modal_ajaxcall( act_id, arg1, arg2, arg3 ) {
111
  in_sub_row: in_sub_row,
112
  in_column: in_column,
113
  in_group: in_group,
114
- nonce: um_admin_scripts.nonce
 
115
  },
116
  complete: function(){
117
  um_admin_modal_loaded();
@@ -126,7 +129,6 @@ function um_admin_modal_ajaxcall( act_id, arg1, arg2, arg3 ) {
126
 
127
  jQuery( "#_custom_dropdown_options_source" ).trigger('blur');
128
 
129
-
130
  if ( jQuery('.um-admin-editor:visible').length > 0 ) {
131
 
132
  if ( act_id == 'um_admin_edit_field_popup' ) {
@@ -151,6 +153,19 @@ function um_admin_modal_ajaxcall( act_id, arg1, arg2, arg3 ) {
151
  function um_admin_modal_responsive() {
152
  var required_margin = jQuery('.um-admin-modal:visible').innerHeight() / 2 + 'px';
153
  jQuery('.um-admin-modal:visible').css({'margin-top': '-' + required_margin });
 
 
 
 
 
 
 
 
 
 
 
 
 
154
  }
155
 
156
  function um_admin_remove_modal() {
23
  jQuery('#' + id).show();
24
  jQuery('.um-admin-modal').show();
25
 
26
+ jQuery('.um-admin-modal-head').append('<a href="javascript:void(0);" data-action="UM_remove_modal" class="um-admin-modal-close"><i class="um-faicon-times"></i></a>');
27
 
28
  if ( ajax == true ) {
29
  um_admin_modal_size( size );
97
  in_column = jQuery('.um-col-demon-settings').data('in_column');
98
  in_group = jQuery('.um-col-demon-settings').data('in_group');
99
  }
100
+
101
+ var form_mode = jQuery('input[type=hidden][id=form__um_mode]').val();
102
 
103
  jQuery.ajax({
104
  url: wp.ajax.settings.url,
113
  in_sub_row: in_sub_row,
114
  in_column: in_column,
115
  in_group: in_group,
116
+ nonce: um_admin_scripts.nonce,
117
+ form_mode: form_mode
118
  },
119
  complete: function(){
120
  um_admin_modal_loaded();
129
 
130
  jQuery( "#_custom_dropdown_options_source" ).trigger('blur');
131
 
 
132
  if ( jQuery('.um-admin-editor:visible').length > 0 ) {
133
 
134
  if ( act_id == 'um_admin_edit_field_popup' ) {
153
  function um_admin_modal_responsive() {
154
  var required_margin = jQuery('.um-admin-modal:visible').innerHeight() / 2 + 'px';
155
  jQuery('.um-admin-modal:visible').css({'margin-top': '-' + required_margin });
156
+
157
+ if ( jQuery('#UM_preview_form .um-s1').length ) {
158
+ jQuery("#UM_preview_form .um-s1").select2({
159
+ allowClear: true
160
+ });
161
+ }
162
+
163
+ if ( jQuery('#UM_preview_form .um-s2').length ) {
164
+ jQuery("#UM_preview_form .um-s2").select2({
165
+ allowClear: false,
166
+ minimumResultsForSearch: 10
167
+ });
168
+ }
169
  }
170
 
171
  function um_admin_remove_modal() {
includes/admin/class-admin.php CHANGED
@@ -432,5 +432,18 @@ if ( ! class_exists( 'um\admin\Admin' ) ) {
432
  }
433
  return $parent_file;
434
  }
 
 
 
 
 
 
 
 
 
 
 
 
 
435
  }
436
  }
432
  }
433
  return $parent_file;
434
  }
435
+
436
+
437
+ /**
438
+ * @since 2.0
439
+ *
440
+ * @return core\Admin_Notices()
441
+ */
442
+ function notices() {
443
+ if ( empty( UM()->classes['admin_notices'] ) ) {
444
+ UM()->classes['admin_notices'] = new core\Admin_Notices();
445
+ }
446
+ return UM()->classes['admin_notices'];
447
+ }
448
  }
449
  }
includes/admin/core/class-admin-ajax-hooks.php CHANGED
@@ -27,6 +27,7 @@ if ( ! class_exists( 'um\admin\core\Admin_Ajax_Hooks' ) ) {
27
  add_action( 'wp_ajax_um_dynamic_modal_content', array( UM()->builder(), 'dynamic_modal_content' ) );
28
  add_action( 'wp_ajax_um_populate_dropdown_options', array( UM()->builder(), 'populate_dropdown_options' ) );
29
  add_action( 'wp_ajax_um_rated', array( UM()->admin_menu(), 'ultimatemember_rated' ) );
 
30
  }
31
 
32
  }
27
  add_action( 'wp_ajax_um_dynamic_modal_content', array( UM()->builder(), 'dynamic_modal_content' ) );
28
  add_action( 'wp_ajax_um_populate_dropdown_options', array( UM()->builder(), 'populate_dropdown_options' ) );
29
  add_action( 'wp_ajax_um_rated', array( UM()->admin_menu(), 'ultimatemember_rated' ) );
30
+ add_action( 'wp_ajax_um_member_directory_default_filter_settings', array( UM()->member_directory(), 'default_filter_settings' ) );
31
  }
32
 
33
  }
includes/admin/core/class-admin-builder.php CHANGED
@@ -54,6 +54,11 @@ if ( ! class_exists( 'um\admin\core\Admin_Builder' ) ) {
54
  $validate = $field_attr['validate'];
55
  foreach ( $validate as $post_input => $arr ) {
56
 
 
 
 
 
 
57
  $mode = $arr['mode'];
58
 
59
  switch ( $mode ) {
@@ -531,21 +536,21 @@ if ( ! class_exists( 'um\admin\core\Admin_Builder' ) ) {
531
  <i class="um-icon-plus"></i>
532
  <?php } else if ( isset($keyarray['icon']) && !empty( $keyarray['icon'] ) ) { ?>
533
  <i class="<?php echo $keyarray['icon']; ?>"></i>
534
- <?php } ?><?php echo $title; ?></div>
535
  <?php $field_name = isset( UM()->builtin()->core_fields[$type]['name'] ) ? UM()->builtin()->core_fields[$type]['name'] : ''; ?>
536
  <div class="um-admin-drag-fld-type um-field-type-<?php echo $type; ?>"><?php echo $field_name; ?></div>
537
  <div class="um-admin-drag-fld-icons um-field-type-<?php echo $type; ?>">
538
 
539
- <a href="javascript:void(0);" class="um-admin-tipsy-n" title="Edit" data-modal="UM_edit_field" data-modal-size="normal" data-dynamic-content="um_admin_edit_field_popup" data-arg1="<?php echo $type; ?>" data-arg2="<?php echo $this->form_id; ?>" data-arg3="<?php echo $key; ?>"><i class="um-faicon-pencil"></i></a>
540
 
541
- <a href="javascript:void(0);" class="um-admin-tipsy-n um_admin_duplicate_field" title="Duplicate" data-silent_action="um_admin_duplicate_field" data-arg1="<?php echo $key; ?>" data-arg2="<?php echo $this->form_id; ?>"><i class="um-faicon-files-o"></i></a>
542
 
543
  <?php if ( $type == 'group' ) { ?>
544
 
545
- <a href="javascript:void(0);" class="um-admin-tipsy-n" title="Delete Group" data-remove_element="um-admin-drag-fld.um-field-type-group" data-silent_action="um_admin_remove_field" data-arg1="<?php echo $key; ?>" data-arg2="<?php echo $this->form_id; ?>"><i class="um-faicon-trash-o"></i></a>
546
  <?php } else { ?>
547
 
548
- <a href="javascript:void(0);" class="um-admin-tipsy-n" title="Delete" data-silent_action="um_admin_remove_field" data-arg1="<?php echo $key; ?>" data-arg2="<?php echo $this->form_id; ?>"><i class="um-faicon-trash-o"></i></a>
549
 
550
  <?php } ?>
551
 
@@ -865,6 +870,13 @@ if ( ! class_exists( 'um\admin\core\Admin_Builder' ) ) {
865
  <?php if ( UM()->builtin()->predefined_fields ) {
866
  foreach ( UM()->builtin()->predefined_fields as $field_key => $array ) {
867
 
 
 
 
 
 
 
 
868
  if ( ! isset( $array['account_only'] ) && ! isset( $array['private_use'] ) ) { ?>
869
 
870
  <a href="javascript:void(0);" class="button" <?php disabled( in_array( $field_key, $form_fields, true ) ) ?> data-silent_action="um_admin_add_field_from_predefined" data-arg1="<?php echo esc_attr( $field_key ); ?>" data-arg2="<?php echo esc_attr( $arg2 ); ?>"><?php echo um_trim_string( stripslashes( $array['title'] ), 20 ); ?></a>
@@ -877,14 +889,17 @@ if ( ! class_exists( 'um\admin\core\Admin_Builder' ) ) {
877
 
878
  </div>
879
 
880
- <h4><?php _e('Custom Fields','ultimate-member'); ?></h4>
881
  <div class="um-admin-btns">
882
 
883
  <?php
884
  if ( UM()->builtin()->custom_fields ) {
885
- foreach ( UM()->builtin()->custom_fields as $field_key => $array ) { ?>
 
 
 
886
 
887
- <a href="javascript:void(0);" class="button with-icon" <?php disabled( in_array( $field_key, $form_fields, true ) ) ?> data-silent_action="um_admin_add_field_from_list" data-arg1="<?php echo esc_attr( $field_key ); ?>" data-arg2="<?php echo esc_attr( $arg2 ); ?>"><?php echo um_trim_string( stripslashes( $array['title'] ), 20 ); ?> <small>(<?php echo ucfirst( $array['type']); ?>)</small><span class="remove"></span></a>
888
 
889
  <?php }
890
  } else {
@@ -1038,13 +1053,15 @@ if ( ! class_exists( 'um\admin\core\Admin_Builder' ) ) {
1038
 
1039
  case 'um_admin_preview_form':
1040
 
 
 
1041
  $mode = UM()->query()->get_attr('mode', $arg1 );
1042
 
1043
  if ( $mode == 'profile' ) {
1044
  UM()->fields()->editing = true;
1045
  }
1046
 
1047
- $output = do_shortcode('[ultimatemember form_id='.$arg1.']');
1048
 
1049
  break;
1050
 
54
  $validate = $field_attr['validate'];
55
  foreach ( $validate as $post_input => $arr ) {
56
 
57
+ $skip = apply_filters( 'um_admin_builder_skip_field_validation', false, $post_input, $array );
58
+ if ( $skip ) {
59
+ continue;
60
+ }
61
+
62
  $mode = $arr['mode'];
63
 
64
  switch ( $mode ) {
536
  <i class="um-icon-plus"></i>
537
  <?php } else if ( isset($keyarray['icon']) && !empty( $keyarray['icon'] ) ) { ?>
538
  <i class="<?php echo $keyarray['icon']; ?>"></i>
539
+ <?php } ?><?php echo ! empty( $keyarray['title'] ) ? $keyarray['title'] : __( '(no title)', 'ultimate-member' ); ?></div>
540
  <?php $field_name = isset( UM()->builtin()->core_fields[$type]['name'] ) ? UM()->builtin()->core_fields[$type]['name'] : ''; ?>
541
  <div class="um-admin-drag-fld-type um-field-type-<?php echo $type; ?>"><?php echo $field_name; ?></div>
542
  <div class="um-admin-drag-fld-icons um-field-type-<?php echo $type; ?>">
543
 
544
+ <a href="javascript:void(0);" class="um-admin-tipsy-n" title="<?php esc_attr_e( 'Edit', 'ultimate-member' ) ?>" data-modal="UM_edit_field" data-modal-size="normal" data-dynamic-content="um_admin_edit_field_popup" data-arg1="<?php echo $type; ?>" data-arg2="<?php echo $this->form_id; ?>" data-arg3="<?php echo $key; ?>"><i class="um-faicon-pencil"></i></a>
545
 
546
+ <a href="javascript:void(0);" class="um-admin-tipsy-n um_admin_duplicate_field" title="<?php esc_attr_e( 'Duplicate', 'ultimate-member' ) ?>" data-silent_action="um_admin_duplicate_field" data-arg1="<?php echo $key; ?>" data-arg2="<?php echo $this->form_id; ?>"><i class="um-faicon-files-o"></i></a>
547
 
548
  <?php if ( $type == 'group' ) { ?>
549
 
550
+ <a href="javascript:void(0);" class="um-admin-tipsy-n" title="<?php esc_attr_e( 'Delete Group', 'ultimate-member' ) ?>" data-remove_element="um-admin-drag-fld.um-field-type-group" data-silent_action="um_admin_remove_field" data-arg1="<?php echo $key; ?>" data-arg2="<?php echo $this->form_id; ?>"><i class="um-faicon-trash-o"></i></a>
551
  <?php } else { ?>
552
 
553
+ <a href="javascript:void(0);" class="um-admin-tipsy-n" title="<?php esc_attr_e( 'Delete', 'ultimate-member' ) ?>" data-silent_action="um_admin_remove_field" data-arg1="<?php echo $key; ?>" data-arg2="<?php echo $this->form_id; ?>"><i class="um-faicon-trash-o"></i></a>
554
 
555
  <?php } ?>
556
 
870
  <?php if ( UM()->builtin()->predefined_fields ) {
871
  foreach ( UM()->builtin()->predefined_fields as $field_key => $array ) {
872
 
873
+ if ( $_POST['form_mode'] == 'profile' ) {
874
+ $restricted_fields = UM()->fields()->get_restricted_fields_for_edit();
875
+ if ( is_array( $restricted_fields ) && in_array( $field_key, $restricted_fields ) ) {
876
+ continue;
877
+ }
878
+ }
879
+
880
  if ( ! isset( $array['account_only'] ) && ! isset( $array['private_use'] ) ) { ?>
881
 
882
  <a href="javascript:void(0);" class="button" <?php disabled( in_array( $field_key, $form_fields, true ) ) ?> data-silent_action="um_admin_add_field_from_predefined" data-arg1="<?php echo esc_attr( $field_key ); ?>" data-arg2="<?php echo esc_attr( $arg2 ); ?>"><?php echo um_trim_string( stripslashes( $array['title'] ), 20 ); ?></a>
889
 
890
  </div>
891
 
892
+ <h4><?php _e( 'Custom Fields', 'ultimate-member' ); ?></h4>
893
  <div class="um-admin-btns">
894
 
895
  <?php
896
  if ( UM()->builtin()->custom_fields ) {
897
+ foreach ( UM()->builtin()->custom_fields as $field_key => $array ) {
898
+ if ( empty( $array['title'] ) || empty( $array['type'] ) ) {
899
+ continue;
900
+ } ?>
901
 
902
+ <a href="javascript:void(0);" class="button with-icon" <?php disabled( in_array( $field_key, $form_fields, true ) ) ?> data-silent_action="um_admin_add_field_from_list" data-arg1="<?php echo esc_attr( $field_key ); ?>" data-arg2="<?php echo esc_attr( $arg2 ); ?>"><?php echo um_trim_string( stripslashes( $array['title'] ), 20 ); ?> <small>(<?php echo ucfirst( $array['type'] ); ?>)</small><span class="remove"></span></a>
903
 
904
  <?php }
905
  } else {
1053
 
1054
  case 'um_admin_preview_form':
1055
 
1056
+ UM()->user()->preview = true;
1057
+
1058
  $mode = UM()->query()->get_attr('mode', $arg1 );
1059
 
1060
  if ( $mode == 'profile' ) {
1061
  UM()->fields()->editing = true;
1062
  }
1063
 
1064
+ $output = do_shortcode('[ultimatemember form_id="' . $arg1 . '" /]');
1065
 
1066
  break;
1067
 
includes/admin/core/class-admin-enqueue.php CHANGED
@@ -128,8 +128,12 @@ if ( ! class_exists( 'um\admin\core\Admin_Enqueue' ) ) {
128
  wp_register_script( 'um_datetime_legacy', $this->front_js_baseurl . 'pickadate/legacy.js', array( 'jquery', 'um_datetime' ), ultimatemember_version, true );
129
  // load a localized version for date/time
130
  $locale = get_locale();
131
- if ( $locale && file_exists( um_path . 'assets/js/pickadate/translations/' . $locale . '.js' ) ) {
132
- wp_register_script('um_datetime_locale', um_url . 'assets/js/pickadate/translations/' . $locale . '.js', array( 'jquery', 'um_datetime' ), ultimatemember_version, true );
 
 
 
 
133
  }
134
 
135
  wp_register_script( 'um_scripts', $this->front_js_baseurl . 'um-scripts' . $this->suffix . '.js', array( 'um_functions', 'um_crop', 'um_raty', 'select2', 'um_jquery_form', 'um_fileupload', 'um_datetime', 'um_datetime_date', 'um_datetime_time', 'um_datetime_legacy' ), ultimatemember_version, true );
@@ -137,7 +141,7 @@ if ( ! class_exists( 'um\admin\core\Admin_Enqueue' ) ) {
137
  wp_register_script( 'um_modal', $this->front_js_baseurl . 'um-modal' . $this->suffix . '.js', array( 'um_responsive' ), ultimatemember_version, true );
138
 
139
 
140
-
141
  wp_register_style( 'um_datetime', $this->front_css_baseurl . 'pickadate/default.css', array(), ultimatemember_version );
142
  wp_register_style( 'um_datetime_date', $this->front_css_baseurl . 'pickadate/default.date.css', array( 'um_datetime' ), ultimatemember_version );
143
  wp_register_style( 'um_datetime_time', $this->front_css_baseurl . 'pickadate/default.time.css', array( 'um_datetime' ), ultimatemember_version );
@@ -152,7 +156,7 @@ if ( ! class_exists( 'um\admin\core\Admin_Enqueue' ) ) {
152
  wp_register_style( 'um_profile', $this->front_css_baseurl . 'um-profile.css', array(), ultimatemember_version );
153
  wp_register_style( 'um_account', $this->front_css_baseurl . 'um-account.css', array(), ultimatemember_version );
154
  wp_register_style( 'um_misc', $this->front_css_baseurl . 'um-misc.css', array(), ultimatemember_version );
155
- wp_register_style( 'um_default_css', $this->front_css_baseurl . 'um-old-default.css', array( 'um_crop', 'um_tipsy', 'um_raty', 'um_responsive', 'um_modal', 'um_styles', 'um_members', 'um_profile', 'um_account', 'um_misc', 'um_datetime_date', 'um_datetime_time', 'um_scrollbar' ), ultimatemember_version );
156
 
157
  wp_enqueue_script( 'um_modal' );
158
  wp_enqueue_style( 'um_default_css' );
@@ -219,7 +223,8 @@ if ( ! class_exists( 'um\admin\core\Admin_Enqueue' ) ) {
219
  * Load Forms
220
  */
221
  function load_forms() {
222
- wp_register_style( 'um_admin_forms', $this->css_url . 'um-admin-forms.css', array( 'wp-color-picker' ), ultimatemember_version );
 
223
  wp_enqueue_style( 'um_admin_forms' );
224
 
225
  wp_register_script( 'um_admin_forms', $this->js_url . 'um-admin-forms.js', array( 'jquery' ), ultimatemember_version, true );
@@ -389,8 +394,12 @@ if ( ! class_exists( 'um\admin\core\Admin_Enqueue' ) ) {
389
  wp_register_script( 'um_datetime_legacy', $this->front_js_baseurl . 'pickadate/legacy.js', array( 'jquery', 'um_datetime' ), ultimatemember_version, true );
390
  // load a localized version for date/time
391
  $locale = get_locale();
392
- if ( $locale && file_exists( um_path . 'assets/js/pickadate/translations/' . $locale . '.js' ) ) {
393
- wp_register_script('um_datetime_locale', um_url . 'assets/js/pickadate/translations/' . $locale . '.js', array( 'jquery', 'um_datetime' ), ultimatemember_version, true );
 
 
 
 
394
  }
395
 
396
  wp_register_style( 'um_datetime', $this->front_css_baseurl . 'pickadate/default.css', array(), ultimatemember_version );
@@ -624,7 +633,7 @@ if ( ! class_exists( 'um\admin\core\Admin_Enqueue' ) ) {
624
  UM()->enqueue()->load_modal();
625
  UM()->enqueue()->load_responsive();
626
 
627
- wp_register_script( 'um_raty', um_url . 'assets/js/um-raty' . UM()->enqueue()->suffix . '.js', array( 'jquery' ), ultimatemember_version, true );
628
  wp_register_style( 'um_raty', um_url . 'assets/css/um-raty.css', array(), ultimatemember_version );
629
 
630
  wp_register_style( 'um_default_css', um_url . 'assets/css/um-old-default.css', '', ultimatemember_version, 'all' );
128
  wp_register_script( 'um_datetime_legacy', $this->front_js_baseurl . 'pickadate/legacy.js', array( 'jquery', 'um_datetime' ), ultimatemember_version, true );
129
  // load a localized version for date/time
130
  $locale = get_locale();
131
+ if ( $locale ) {
132
+ if ( file_exists( WP_LANG_DIR . '/plugins/ultimate-member/assets/js/pickadate/' . $locale . '.js' ) ) {
133
+ wp_register_script('um_datetime_locale', content_url() . '/languages/plugins/ultimate-member/assets/js/pickadate/' . $locale . '.js', array( 'jquery', 'um_datetime' ), ultimatemember_version, true );
134
+ } elseif ( file_exists( um_path . 'assets/js/pickadate/translations/' . $locale . '.js' ) ) {
135
+ wp_register_script('um_datetime_locale', um_url . 'assets/js/pickadate/translations/' . $locale . '.js', array( 'jquery', 'um_datetime' ), ultimatemember_version, true );
136
+ }
137
  }
138
 
139
  wp_register_script( 'um_scripts', $this->front_js_baseurl . 'um-scripts' . $this->suffix . '.js', array( 'um_functions', 'um_crop', 'um_raty', 'select2', 'um_jquery_form', 'um_fileupload', 'um_datetime', 'um_datetime_date', 'um_datetime_time', 'um_datetime_legacy' ), ultimatemember_version, true );
141
  wp_register_script( 'um_modal', $this->front_js_baseurl . 'um-modal' . $this->suffix . '.js', array( 'um_responsive' ), ultimatemember_version, true );
142
 
143
 
144
+ wp_register_style( 'select2', $this->front_css_baseurl . 'select2/select2.min.css', array(), ultimatemember_version );
145
  wp_register_style( 'um_datetime', $this->front_css_baseurl . 'pickadate/default.css', array(), ultimatemember_version );
146
  wp_register_style( 'um_datetime_date', $this->front_css_baseurl . 'pickadate/default.date.css', array( 'um_datetime' ), ultimatemember_version );
147
  wp_register_style( 'um_datetime_time', $this->front_css_baseurl . 'pickadate/default.time.css', array( 'um_datetime' ), ultimatemember_version );
156
  wp_register_style( 'um_profile', $this->front_css_baseurl . 'um-profile.css', array(), ultimatemember_version );
157
  wp_register_style( 'um_account', $this->front_css_baseurl . 'um-account.css', array(), ultimatemember_version );
158
  wp_register_style( 'um_misc', $this->front_css_baseurl . 'um-misc.css', array(), ultimatemember_version );
159
+ wp_register_style( 'um_default_css', $this->front_css_baseurl . 'um-old-default.css', array( 'um_crop', 'um_tipsy', 'um_raty', 'um_responsive', 'um_modal', 'um_styles', 'um_members', 'um_profile', 'um_account', 'um_misc', 'um_datetime_date', 'um_datetime_time', 'um_scrollbar', 'select2' ), ultimatemember_version );
160
 
161
  wp_enqueue_script( 'um_modal' );
162
  wp_enqueue_style( 'um_default_css' );
223
  * Load Forms
224
  */
225
  function load_forms() {
226
+ wp_register_style( 'um_ui', $this->front_css_baseurl . 'jquery-ui.css', array(), ultimatemember_version );
227
+ wp_register_style( 'um_admin_forms', $this->css_url . 'um-admin-forms.css', array( 'wp-color-picker', 'um_ui' ), ultimatemember_version );
228
  wp_enqueue_style( 'um_admin_forms' );
229
 
230
  wp_register_script( 'um_admin_forms', $this->js_url . 'um-admin-forms.js', array( 'jquery' ), ultimatemember_version, true );
394
  wp_register_script( 'um_datetime_legacy', $this->front_js_baseurl . 'pickadate/legacy.js', array( 'jquery', 'um_datetime' ), ultimatemember_version, true );
395
  // load a localized version for date/time
396
  $locale = get_locale();
397
+ if ( $locale ) {
398
+ if ( file_exists( WP_LANG_DIR . '/plugins/ultimate-member/assets/js/pickadate/' . $locale . '.js' ) ) {
399
+ wp_register_script('um_datetime_locale', content_url() . '/languages/plugins/ultimate-member/assets/js/pickadate/' . $locale . '.js', array( 'jquery', 'um_datetime' ), ultimatemember_version, true );
400
+ } elseif ( file_exists( um_path . 'assets/js/pickadate/translations/' . $locale . '.js' ) ) {
401
+ wp_register_script('um_datetime_locale', um_url . 'assets/js/pickadate/translations/' . $locale . '.js', array( 'jquery', 'um_datetime' ), ultimatemember_version, true );
402
+ }
403
  }
404
 
405
  wp_register_style( 'um_datetime', $this->front_css_baseurl . 'pickadate/default.css', array(), ultimatemember_version );
633
  UM()->enqueue()->load_modal();
634
  UM()->enqueue()->load_responsive();
635
 
636
+ wp_register_script( 'um_raty', um_url . 'assets/js/um-raty' . UM()->enqueue()->suffix . '.js', array( 'jquery', 'wp-i18n' ), ultimatemember_version, true );
637
  wp_register_style( 'um_raty', um_url . 'assets/css/um-raty.css', array(), ultimatemember_version );
638
 
639
  wp_register_style( 'um_default_css', um_url . 'assets/css/um-old-default.css', '', ultimatemember_version, 'all' );
includes/admin/core/class-admin-forms.php CHANGED
@@ -411,6 +411,54 @@ if ( ! class_exists( 'um\admin\core\Admin_Forms' ) ) {
411
  }
412
 
413
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
414
  /**
415
  * @param $field_data
416
  *
@@ -908,8 +956,24 @@ if ( ! class_exists( 'um\admin\core\Admin_Forms' ) ) {
908
  $for_attr = ' for="' . esc_attr( $id . '_' . $k ) . '" ';
909
  $name_attr = ' name="' . $name . '[' . $k . ']" ';
910
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
911
  $html .= "<label $for_attr>
912
- <input type=\"checkbox\" " . checked( in_array( $k, $values ), true, false ) . "$id_attr $name_attr value=\"1\" $class_attr>
913
  <span>$title</span>
914
  </label>";
915
  }
@@ -1154,6 +1218,88 @@ if ( ! class_exists( 'um\admin\core\Admin_Forms' ) ) {
1154
  }
1155
 
1156
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1157
  /**
1158
  * Get field value
1159
  *
411
  }
412
 
413
 
414
+ /**
415
+ * Render text field
416
+ *
417
+ * @param $field_data
418
+ *
419
+ * @return bool|string
420
+ */
421
+ function render_number( $field_data ) {
422
+
423
+ if ( empty( $field_data['id'] ) ) {
424
+ return false;
425
+ }
426
+
427
+ $id = ( ! empty( $this->form_data['prefix_id'] ) ? $this->form_data['prefix_id'] : '' ) . '_' . $field_data['id'];
428
+ $id_attr = ' id="' . esc_attr( $id ) . '" ';
429
+
430
+ $class = ! empty( $field_data['class'] ) ? $field_data['class'] : '';
431
+ $class .= ! empty( $field_data['size'] ) ? 'um-' . $field_data['size'] . '-field' : 'um-long-field';
432
+ $class_attr = ' class="um-forms-field ' . esc_attr( $class ) . '" ';
433
+
434
+ $data = array(
435
+ 'field_id' => $field_data['id']
436
+ );
437
+
438
+ if ( ! empty( $field_data['attr'] ) && is_array( $field_data['attr'] ) ){
439
+ $data = array_merge( $data, $field_data['attr'] );
440
+ }
441
+
442
+ $data_attr = '';
443
+ foreach ( $data as $key => $value ) {
444
+ $data_attr .= ' data-' . $key . '="' . esc_attr( $value ) . '" ';
445
+ }
446
+
447
+ $placeholder_attr = ! empty( $field_data['placeholder'] ) ? ' placeholder="' . esc_attr( $field_data['placeholder'] ) . '"' : '';
448
+
449
+ $name = $field_data['id'];
450
+ $name = ! empty( $this->form_data['prefix_id'] ) ? $this->form_data['prefix_id'] . '[' . $name . ']' : $name;
451
+ $name_attr = ' name="' . $name . '" ';
452
+
453
+ $value = $this->get_field_value( $field_data );
454
+ $value_attr = ' value="' . esc_attr( $value ) . '" ';
455
+
456
+ $html = "<input type=\"number\" $id_attr $class_attr $name_attr $data_attr $value_attr $placeholder_attr />";
457
+
458
+ return $html;
459
+ }
460
+
461
+
462
  /**
463
  * @param $field_data
464
  *
956
  $for_attr = ' for="' . esc_attr( $id . '_' . $k ) . '" ';
957
  $name_attr = ' name="' . $name . '[' . $k . ']" ';
958
 
959
+ $data = array(
960
+ 'field_id' => $field_data['id'] . '_' . $k,
961
+ );
962
+
963
+ if ( ! empty( $field_data['data'] ) ) {
964
+ $data = array_merge( $data, $field_data['data'] );
965
+ }
966
+
967
+ $data_attr = '';
968
+ foreach ( $data as $key => $value ) {
969
+ if ( $value == 'checkbox_key' ) {
970
+ $value = $k;
971
+ }
972
+ $data_attr .= ' data-' . $key . '="' . esc_attr( $value ) . '" ';
973
+ }
974
+
975
  $html .= "<label $for_attr>
976
+ <input type=\"checkbox\" " . checked( in_array( $k, $values ), true, false ) . "$id_attr $name_attr $data_attr value=\"1\" $class_attr>
977
  <span>$title</span>
978
  </label>";
979
  }
1218
  }
1219
 
1220
 
1221
+ function render_md_default_filters( $field_data ) {
1222
+ if ( empty( $field_data['id'] ) ) {
1223
+ return false;
1224
+ }
1225
+ global $post;
1226
+
1227
+ $id = ( ! empty( $this->form_data['prefix_id'] ) ? $this->form_data['prefix_id'] : '' ) . '_' . $field_data['id'];
1228
+
1229
+ $class = ! empty( $field_data['class'] ) ? $field_data['class'] : '';
1230
+ $class .= ! empty( $field_data['size'] ) ? $field_data['size'] : 'um-long-field';
1231
+ $class_attr = ' class="um-forms-field ' . $class . '" ';
1232
+
1233
+ $data = array(
1234
+ 'field_id' => $field_data['id'],
1235
+ 'id_attr' => $id,
1236
+ 'member_directory' => $post->ID
1237
+ );
1238
+
1239
+ $data_attr = '';
1240
+ foreach ( $data as $key => $value ) {
1241
+ $data_attr .= ' data-' . $key . '="' . esc_attr( $value ) . '" ';
1242
+ }
1243
+
1244
+ $name = $field_data['id'];
1245
+ $name = ! empty( $this->form_data['prefix_id'] ) ? $this->form_data['prefix_id'] . '[' . $name . ']' : $name;
1246
+ $name = "{$name}[]";
1247
+ $name_attr = ' name="' . $name . '" ';
1248
+
1249
+ $values = $this->get_field_value( $field_data );
1250
+ if ( is_array( $values ) ) {
1251
+ $filters = array_keys( $values );
1252
+ }
1253
+
1254
+ $options = '';
1255
+ foreach ( $field_data['options'] as $key => $option ) {
1256
+ $options .= '<option value="' . $key . '">' . $option . '</option>';
1257
+ }
1258
+
1259
+ $html = "<input type=\"hidden\" name=\"um-gmt-offset\" /><select class=\"um-hidden-md-default-filters\" $data_attr>$options</select>";
1260
+ $html .= "<ul class=\"um-md-default-filters-list\" $data_attr>";
1261
+
1262
+ if ( ! empty( $filters ) && is_array( $filters ) ) {
1263
+ foreach ( $filters as $k => $value ) {
1264
+
1265
+ if ( ! in_array( $value, array_keys( $field_data['options'] ) ) ) {
1266
+ continue ;
1267
+ }
1268
+
1269
+ $id_attr = ' id="' . esc_attr( $id . '-' . $k ) . '" ';
1270
+
1271
+ $options = '';
1272
+ foreach ( $field_data['options'] as $key => $option ) {
1273
+ $options .= '<option value="' . $key . '" ' . selected( $key == $value, true, false ) . '>' . $option . '</option>';
1274
+ }
1275
+
1276
+ $html .= "<li class=\"um-md-default-filters-option-line\"><span class=\"um-field-wrapper\">
1277
+ <select $id_attr $name_attr $class_attr $data_attr>$options</select></span>
1278
+ <span class=\"um-field-control\"><a href=\"javascript:void(0);\" class=\"um-select-delete\">" . __( 'Remove', 'ultimate-member' ) . "</a></span><span class=\"um-field-wrapper2 um\">" . UM()->member_directory()->show_filter( $value, array( 'form_id' => $post->ID ), $values[ $value ] ) . "</span></li>";
1279
+ }
1280
+ } elseif ( ! empty( $field_data['show_default_number'] ) && is_numeric( $field_data['show_default_number'] ) && $field_data['show_default_number'] > 0 ) {
1281
+ $i = 0;
1282
+ while ( $i < $field_data['show_default_number'] ) {
1283
+ $id_attr = ' id="' . $id . '-' . $i . '" ';
1284
+
1285
+ $options = '';
1286
+ foreach ( $field_data['options'] as $key => $option ) {
1287
+ $options .= '<option value="' . $key . '">' . $option . '</option>';
1288
+ }
1289
+
1290
+ $html .= "<li class=\"um-md-default-filters-option-line\"><span class=\"um-field-wrapper\">
1291
+ <select $id_attr $name_attr $class_attr $data_attr>$options</select></span>
1292
+ <span class=\"um-field-control\"><a href=\"javascript:void(0);\" class=\"um-select-delete\">" . __( 'Remove', 'ultimate-member' ) . "</a></span></li>";
1293
+
1294
+ $i++;
1295
+ }
1296
+ }
1297
+
1298
+ $html .= "</ul><a href=\"javascript:void(0);\" class=\"button button-primary um-md-default-filters-add-option\" data-name=\"$name\">{$field_data['add_text']}</a>";
1299
+
1300
+ return $html;
1301
+ }
1302
+
1303
  /**
1304
  * Get field value
1305
  *
includes/admin/core/class-admin-metabox.php CHANGED
@@ -41,6 +41,8 @@ if ( ! class_exists( 'um\admin\core\Admin_Metabox' ) ) {
41
 
42
  add_filter( 'um_builtin_validation_types_continue_loop', array( &$this, 'validation_types_continue_loop' ), 1, 4 );
43
  add_filter( 'um_restrict_content_hide_metabox', array( &$this, 'hide_metabox_restrict_content_shop' ), 10, 1 );
 
 
44
  }
45
 
46
 
@@ -776,6 +778,7 @@ if ( ! class_exists( 'um\admin\core\Admin_Metabox' ) ) {
776
  */
777
  function add_metabox_directory() {
778
  add_meta_box( 'um-admin-form-general', __( 'General Options', 'ultimate-member' ), array( &$this, 'load_metabox_directory' ), 'um_directory', 'normal', 'default' );
 
779
  add_meta_box( 'um-admin-form-profile', __( 'Profile Card', 'ultimate-member' ), array( &$this, 'load_metabox_directory' ), 'um_directory', 'normal', 'default' );
780
  add_meta_box( 'um-admin-form-search', __( 'Search Options', 'ultimate-member' ), array( &$this, 'load_metabox_directory' ), 'um_directory', 'normal', 'default' );
781
  add_meta_box( 'um-admin-form-pagination', __( 'Results &amp; Pagination', 'ultimate-member' ), array( &$this, 'load_metabox_directory' ), 'um_directory', 'normal', 'default' );
@@ -1014,26 +1017,31 @@ if ( ! class_exists( 'um\admin\core\Admin_Metabox' ) ) {
1014
  *
1015
  * @param $post_id
1016
  * @param $post
1017
- *
1018
- * @return mixed
1019
  */
1020
  function save_metabox_directory( $post_id, $post ) {
1021
  global $wpdb;
1022
 
1023
  // validate nonce
1024
- if ( !isset( $_POST['um_admin_save_metabox_directory_nonce'] ) || !wp_verify_nonce( $_POST['um_admin_save_metabox_directory_nonce'], basename( __FILE__ ) ) ) return $post_id;
 
 
1025
 
1026
  // validate post type
1027
- if ( $post->post_type != 'um_directory' ) return $post_id;
 
 
1028
 
1029
  // validate user
1030
  $post_type = get_post_type_object( $post->post_type );
1031
- if ( !current_user_can( $post_type->cap->edit_post, $post_id ) ) return $post_id;
 
 
1032
 
1033
  $where = array( 'ID' => $post_id );
1034
 
1035
- if ( empty( $_POST['post_title'] ) )
1036
  $_POST['post_title'] = 'Directory #'.$post_id;
 
1037
 
1038
  $wpdb->update( $wpdb->posts, array( 'post_title' => $_POST['post_title'] ), $where );
1039
 
@@ -1043,32 +1051,50 @@ if ( ! class_exists( 'um\admin\core\Admin_Metabox' ) ) {
1043
  delete_post_meta( $post_id, '_um_reveal_fields' );
1044
  delete_post_meta( $post_id, '_um_search_fields' );
1045
  delete_post_meta( $post_id, '_um_roles_can_search' );
 
1046
  delete_post_meta( $post_id, '_um_show_these_users' );
1047
 
 
 
 
1048
  //save metadata
1049
  foreach ( $_POST['um_metadata'] as $k => $v ) {
 
1050
  if ( $k == '_um_show_these_users' && trim( $_POST['um_metadata'][ $k ] ) ) {
1051
  $v = preg_split( '/[\r\n]+/', $v, -1, PREG_SPLIT_NO_EMPTY );
1052
  }
 
1053
  if ( strstr( $k, '_um_' ) ) {
 
1054
  if ( $k === '_um_is_default' ) {
 
1055
  $mode = UM()->query()->get_attr( 'mode', $post_id );
 
1056
  if ( ! empty( $mode ) ) {
 
1057
  $posts = $wpdb->get_col(
1058
  "SELECT post_id
1059
  FROM {$wpdb->postmeta}
1060
  WHERE meta_key = '_um_mode' AND
1061
  meta_value = 'directory'"
1062
  );
 
1063
  foreach ( $posts as $p_id ) {
1064
  delete_post_meta( $p_id, '_um_is_default' );
1065
  }
 
1066
  }
 
1067
  }
1068
 
 
 
1069
  update_post_meta( $post_id, $k, $v );
 
1070
  }
1071
  }
 
 
1072
  }
1073
 
1074
 
@@ -1712,6 +1738,16 @@ if ( ! class_exists( 'um\admin\core\Admin_Metabox' ) ) {
1712
  }
1713
  break;
1714
 
 
 
 
 
 
 
 
 
 
 
1715
  case '_pretty_format':
1716
  ?>
1717
 
@@ -2294,9 +2330,9 @@ if ( ! class_exists( 'um\admin\core\Admin_Metabox' ) ) {
2294
 
2295
  <?php if ( UM()->builtin()->custom_fields ) {
2296
  foreach ( UM()->builtin()->custom_fields as $field_key => $array ) {
2297
- if ( in_array( $array['type'], array( 'select' ) ) && ( ! isset( $field_args['metakey'] ) || $field_args['metakey'] != $array['metakey'] ) ) {
2298
- echo "<option value='".$array['metakey']."' ".selected( $array['metakey'], $this->edit_mode_value ).">".$array['title']."</option>";
2299
- }
2300
  }
2301
  } ?>
2302
  </select>
41
 
42
  add_filter( 'um_builtin_validation_types_continue_loop', array( &$this, 'validation_types_continue_loop' ), 1, 4 );
43
  add_filter( 'um_restrict_content_hide_metabox', array( &$this, 'hide_metabox_restrict_content_shop' ), 10, 1 );
44
+
45
+ add_filter( 'um_member_directory_meta_value_before_save', array( UM()->member_directory(), 'before_save_data' ), 10, 3 );
46
  }
47
 
48
 
778
  */
779
  function add_metabox_directory() {
780
  add_meta_box( 'um-admin-form-general', __( 'General Options', 'ultimate-member' ), array( &$this, 'load_metabox_directory' ), 'um_directory', 'normal', 'default' );
781
+ add_meta_box( 'um-admin-form-sorting', __( 'Sorting', 'ultimate-member' ), array( &$this, 'load_metabox_directory' ), 'um_directory', 'normal', 'default' );
782
  add_meta_box( 'um-admin-form-profile', __( 'Profile Card', 'ultimate-member' ), array( &$this, 'load_metabox_directory' ), 'um_directory', 'normal', 'default' );
783
  add_meta_box( 'um-admin-form-search', __( 'Search Options', 'ultimate-member' ), array( &$this, 'load_metabox_directory' ), 'um_directory', 'normal', 'default' );
784
  add_meta_box( 'um-admin-form-pagination', __( 'Results &amp; Pagination', 'ultimate-member' ), array( &$this, 'load_metabox_directory' ), 'um_directory', 'normal', 'default' );
1017
  *
1018
  * @param $post_id
1019
  * @param $post
 
 
1020
  */
1021
  function save_metabox_directory( $post_id, $post ) {
1022
  global $wpdb;
1023
 
1024
  // validate nonce
1025
+ if ( ! isset( $_POST['um_admin_save_metabox_directory_nonce'] ) || ! wp_verify_nonce( $_POST['um_admin_save_metabox_directory_nonce'], basename( __FILE__ ) ) ) {
1026
+ return;
1027
+ }
1028
 
1029
  // validate post type
1030
+ if ( $post->post_type != 'um_directory' ) {
1031
+ return;
1032
+ }
1033
 
1034
  // validate user
1035
  $post_type = get_post_type_object( $post->post_type );
1036
+ if ( ! current_user_can( $post_type->cap->edit_post, $post_id ) ) {
1037
+ return;
1038
+ }
1039
 
1040
  $where = array( 'ID' => $post_id );
1041
 
1042
+ if ( empty( $_POST['post_title'] ) ) {
1043
  $_POST['post_title'] = 'Directory #'.$post_id;
1044
+ }
1045
 
1046
  $wpdb->update( $wpdb->posts, array( 'post_title' => $_POST['post_title'] ), $where );
1047
 
1051
  delete_post_meta( $post_id, '_um_reveal_fields' );
1052
  delete_post_meta( $post_id, '_um_search_fields' );
1053
  delete_post_meta( $post_id, '_um_roles_can_search' );
1054
+ delete_post_meta( $post_id, '_um_roles_can_filter' );
1055
  delete_post_meta( $post_id, '_um_show_these_users' );
1056
 
1057
+ delete_post_meta( $post_id, '_um_search_filters' );
1058
+ delete_post_meta( $post_id, '_um_search_filters_gmt' );
1059
+
1060
  //save metadata
1061
  foreach ( $_POST['um_metadata'] as $k => $v ) {
1062
+
1063
  if ( $k == '_um_show_these_users' && trim( $_POST['um_metadata'][ $k ] ) ) {
1064
  $v = preg_split( '/[\r\n]+/', $v, -1, PREG_SPLIT_NO_EMPTY );
1065
  }
1066
+
1067
  if ( strstr( $k, '_um_' ) ) {
1068
+
1069
  if ( $k === '_um_is_default' ) {
1070
+
1071
  $mode = UM()->query()->get_attr( 'mode', $post_id );
1072
+
1073
  if ( ! empty( $mode ) ) {
1074
+
1075
  $posts = $wpdb->get_col(
1076
  "SELECT post_id
1077
  FROM {$wpdb->postmeta}
1078
  WHERE meta_key = '_um_mode' AND
1079
  meta_value = 'directory'"
1080
  );
1081
+
1082
  foreach ( $posts as $p_id ) {
1083
  delete_post_meta( $p_id, '_um_is_default' );
1084
  }
1085
+
1086
  }
1087
+
1088
  }
1089
 
1090
+ $v = apply_filters( 'um_member_directory_meta_value_before_save', $v, $k, $post_id );
1091
+
1092
  update_post_meta( $post_id, $k, $v );
1093
+
1094
  }
1095
  }
1096
+
1097
+ update_post_meta( $post_id, '_um_search_filters_gmt', intval( $_POST['um-gmt-offset'] ) );
1098
  }
1099
 
1100
 
1738
  }
1739
  break;
1740
 
1741
+ case '_format_custom':
1742
+ ?>
1743
+
1744
+ <p><label for="_format_custom"><?php _e( 'Use custom Date format', 'ultimate-member' ); ?> <?php UM()->tooltip( __( 'This option overrides "Date User-Friendly Format" option. See https://www.php.net/manual/en/function.date.php', 'ultimate-member' ) ); ?></label>
1745
+ <input type="text" name="_format_custom" id="_format_custom" value="<?php echo htmlspecialchars( $this->edit_mode_value, ENT_QUOTES ); ?>" placeholder="j M Y" />
1746
+ </p>
1747
+
1748
+ <?php
1749
+ break;
1750
+
1751
  case '_pretty_format':
1752
  ?>
1753
 
2330
 
2331
  <?php if ( UM()->builtin()->custom_fields ) {
2332
  foreach ( UM()->builtin()->custom_fields as $field_key => $array ) {
2333
+ if ( in_array( $array['type'], array( 'select' ) ) && ( ! isset( $field_args['metakey'] ) || $field_args['metakey'] != $array['metakey'] ) && isset( $array['title'] ) ) { ?>
2334
+ <option value="<?php echo esc_attr( $array['metakey'] ) ?>" <?php selected( $array['metakey'], $this->edit_mode_value ) ?>><?php echo $array['title'] ?></option>
2335
+ <?php }
2336
  }
2337
  } ?>
2338
  </select>
includes/admin/core/class-admin-notices.php CHANGED
@@ -280,7 +280,7 @@ if ( ! class_exists( 'um\admin\core\Admin_Notices' ) ) {
280
 
281
  $this->add_notice( 'old_extensions', array(
282
  'class' => 'error',
283
- 'message' => '<p>' . sprintf( __( '<strong>%s %s</strong> requires 2.0 extensions. You have pre 2.0 extensions installed on your site. <br /> Please update %s extensions to latest versions. For more info see this <a href="%s" target="_blank">doc</a>.', 'ultimate-member' ), ultimatemember_plugin_name, ultimatemember_version, ultimatemember_plugin_name, 'http://docs.ultimatemember.com/article/266-updating-to-2-0-versions-of-extensions' ) . '</p>',
284
  ), 0 );
285
  }
286
 
280
 
281
  $this->add_notice( 'old_extensions', array(
282
  'class' => 'error',
283
+ 'message' => '<p>' . sprintf( __( '<strong>%s %s</strong> requires 2.0 extensions. You have pre 2.0 extensions installed on your site. <br /> Please update %s extensions to latest versions. For more info see this <a href="%s" target="_blank">doc</a>.', 'ultimate-member' ), ultimatemember_plugin_name, ultimatemember_version, ultimatemember_plugin_name, 'https://docs.ultimatemember.com/article/201-how-to-update-your-site' ) . '</p>',
284
  ), 0 );
285
  }
286
 
includes/admin/core/class-admin-settings.php CHANGED
@@ -88,7 +88,7 @@ if ( ! class_exists( 'um\admin\core\Admin_Settings' ) ) {
88
  array(
89
  'id' => 'pages_settings',
90
  'type' => 'hidden',
91
- 'default' => true,
92
  'is_option' => false
93
  )
94
  );
@@ -699,193 +699,204 @@ if ( ! class_exists( 'um\admin\core\Admin_Settings' ) ) {
699
  'title' => __( 'Profile', 'ultimate-member' ),
700
  'fields' => array(
701
  array(
702
- 'id' => 'profile_template',
703
- 'type' => 'select',
704
- 'label' => __( 'Profile Default Template','ultimate-member' ),
705
- 'tooltip' => __( 'This will be the default template to output profile','ultimate-member' ),
706
- 'default' => um_get_metadefault('profile_template'),
707
- 'options' => UM()->shortcodes()->get_templates( 'profile' ),
708
- 'size' => 'small'
709
- ),
710
- array(
711
- 'id' => 'profile_max_width',
712
- 'type' => 'text',
713
- 'label' => __( 'Profile Maximum Width','ultimate-member' ),
714
- 'default' => um_get_metadefault('profile_max_width'),
715
- 'tooltip' => 'The maximum width this shortcode can take from the page width',
716
- 'size' => 'small'
717
- ),
718
-
719
- array(
720
- 'id' => 'profile_area_max_width',
721
- 'type' => 'text',
722
- 'label' => __( 'Profile Area Maximum Width','ultimate-member' ),
723
- 'default' => um_get_metadefault('profile_area_max_width'),
724
- 'tooltip' => __('The maximum width of the profile area inside profile (below profile header)','ultimate-member'),
725
- 'size' => 'small'
726
- ),
727
- array(
728
- 'id' => 'profile_icons',
729
- 'type' => 'select',
730
- 'label' => __( 'Profile Field Icons','ultimate-member' ),
731
- 'tooltip' => __( 'This is applicable for edit mode only','ultimate-member' ),
732
- 'default' => um_get_metadefault('profile_icons'),
733
- 'options' => array(
734
- 'field' => __('Show inside text field','ultimate-member'),
735
- 'label' => __('Show with label','ultimate-member'),
736
- 'off' => __('Turn off','ultimate-member'),
737
  ),
738
- 'size' => 'small'
739
  ),
740
  array(
741
- 'id' => 'profile_primary_btn_word',
742
- 'type' => 'text',
743
- 'label' => __( 'Profile Primary Button Text','ultimate-member' ),
744
- 'default' => um_get_metadefault('profile_primary_btn_word'),
745
- 'tooltip' => __('The text that is used for updating profile button','ultimate-member'),
746
- 'size' => 'medium'
747
  ),
748
  array(
749
- 'id' => 'profile_secondary_btn',
750
- 'type' => 'checkbox',
751
- 'label' => __( 'Profile Secondary Button','ultimate-member' ),
752
- 'default' => um_get_metadefault('profile_secondary_btn'),
753
- 'tooltip' => __('Switch on/off the secondary button display in the form','ultimate-member'),
754
  ),
755
  array(
756
- 'id' => 'profile_secondary_btn_word',
757
- 'type' => 'text',
758
- 'label' => __( 'Profile Secondary Button Text','ultimate-member' ),
759
- 'default' => um_get_metadefault('profile_secondary_btn_word'),
760
- 'tooltip' => __('The text that is used for cancelling update profile button','ultimate-member'),
761
- 'conditional' => array( 'profile_secondary_btn', '=', 1 ),
762
  'size' => 'medium'
763
  ),
764
  array(
765
- 'id' => 'default_avatar',
766
- 'type' => 'media',
767
- 'label' => __('Default Profile Photo', 'ultimate-member'),
768
- 'tooltip' => __('You can change the default profile picture globally here. Please make sure that the photo is 300x300px.', 'ultimate-member'),
769
- 'upload_frame_title'=> __('Select Default Profile Photo', 'ultimate-member'),
770
- 'default' => array(
771
- 'url' => um_url . 'assets/img/default_avatar.jpg',
772
  ),
773
  ),
774
  array(
775
- 'id' => 'default_cover',
776
- 'type' => 'media',
777
- 'url' => true,
778
- 'preview' => false,
779
- 'label' => __('Default Cover Photo', 'ultimate-member'),
780
- 'tooltip' => __('You can change the default cover photo globally here. Please make sure that the default cover is large enough and respects the ratio you are using for cover photos.', 'ultimate-member'),
781
- 'upload_frame_title'=> __('Select Default Cover Photo', 'ultimate-member'),
782
  ),
783
  array(
784
  'id' => 'disable_profile_photo_upload',
785
  'type' => 'checkbox',
786
  'label' => __( 'Disable Profile Photo Upload', 'ultimate-member' ),
787
  'tooltip' => __( 'Switch on/off the profile photo uploader', 'ultimate-member' ),
 
788
  ),
789
  array(
790
- 'id' => 'profile_photosize',
791
- 'type' => 'text',
792
- 'label' => __( 'Profile Photo Size','ultimate-member' ),
793
- 'default' => um_get_metadefault('profile_photosize'),
794
- 'tooltip' => __('The global default of profile photo size. This can be overridden by individual form settings','ultimate-member'),
795
- 'size' => 'small'
 
796
  ),
797
  array(
798
- 'id' => 'profile_cover_enabled',
799
- 'type' => 'checkbox',
800
- 'label' => __( 'Profile Cover Photos','ultimate-member' ),
801
- 'default' => 1,
802
- 'tooltip' => __('Switch on/off the profile cover photos','ultimate-member'),
803
  ),
804
  array(
805
- 'id' => 'profile_cover_ratio',
806
- 'type' => 'select',
807
- 'label' => __( 'Profile Cover Ratio','ultimate-member' ),
808
- 'tooltip' => __( 'Choose global ratio for cover photos of profiles','ultimate-member' ),
809
- 'default' => um_get_metadefault('profile_cover_ratio'),
810
- 'options' => array(
811
- '1.6:1' => '1.6:1',
812
- '2.7:1' => '2.7:1',
813
- '2.2:1' => '2.2:1',
814
- '3.2:1' => '3.2:1',
 
 
 
 
 
 
 
 
 
 
815
  ),
816
- 'conditional' => array( 'profile_cover_enabled', '=', 1 ),
817
  'size' => 'small'
818
  ),
819
  array(
820
- 'id' => 'profile_show_metaicon',
821
- 'type' => 'checkbox',
822
- 'label' => __( 'Profile Header Meta Text Icon','ultimate-member' ),
823
- 'default' => 0,
824
- 'tooltip' => __('Display field icons for related user meta fields in header or not','ultimate-member'),
825
  ),
826
  array(
827
- 'id' => 'profile_show_name',
828
- 'type' => 'checkbox',
829
- 'label' => __( 'Show display name in profile header','ultimate-member' ),
830
- 'default' => um_get_metadefault('profile_show_name'),
831
- 'tooltip' => __('Switch on/off the user name on profile header','ultimate-member'),
832
  ),
833
  array(
834
- 'id' => 'profile_show_social_links',
835
- 'type' => 'checkbox',
836
- 'label' => __( 'Show social links in profile header','ultimate-member' ),
837
- 'default' => um_get_metadefault('profile_show_social_links'),
838
- 'tooltip' => __('Switch on/off the social links on profile header','ultimate-member'),
839
  ),
840
  array(
841
- 'id' => 'profile_show_bio',
842
- 'type' => 'checkbox',
843
- 'label' => __( 'Show user description in header','ultimate-member' ),
844
- 'default' => um_get_metadefault('profile_show_bio'),
845
- 'tooltip' => __('Switch on/off the user description on profile header','ultimate-member'),
846
  ),
847
  array(
848
- 'id' => 'profile_show_html_bio',
849
- 'type' => 'checkbox',
850
- 'label' => __( 'Enable html support for user description','ultimate-member' ),
851
- 'default' => um_get_metadefault('profile_show_html_bio'),
852
- 'tooltip' => __('Switch on/off to enable/disable support for html tags on user description.','ultimate-member'),
853
  ),
854
  array(
855
- 'id' => 'profile_bio_maxchars',
856
- 'type' => 'text',
857
- 'label' => __( 'User description maximum chars','ultimate-member' ),
858
- 'default' => um_get_metadefault('profile_bio_maxchars'),
859
- 'tooltip' => __('Maximum number of characters to allow in user description field in header.','ultimate-member'),
860
- 'conditional' => array( 'profile_show_bio', '=', 1 ),
861
  'size' => 'small'
862
  ),
863
  array(
864
- 'id' => 'profile_header_menu',
865
- 'type' => 'select',
866
- 'label' => __( 'Profile Header Menu Position', 'ultimate-member' ),
867
- 'default' => um_get_metadefault('profile_header_menu'),
868
- 'tooltip' => __( 'For incompatible themes, please make the menu open from left instead of bottom by default.','ultimate-member'),
869
- 'options' => array(
870
- 'bc' => __( 'Bottom of Icon', 'ultimate-member' ),
871
- 'lc' => __( 'Left of Icon (right for RTL)', 'ultimate-member' ),
872
  ),
873
- 'size' => 'small'
874
  ),
875
  array(
876
- 'id' => 'profile_empty_text',
877
- 'type' => 'checkbox',
878
- 'label' => __( 'Show a custom message if profile is empty','ultimate-member' ),
879
- 'default' => um_get_metadefault('profile_empty_text'),
880
- 'tooltip' => __('Switch on/off the custom message that appears when the profile is empty','ultimate-member'),
881
  ),
882
  array(
883
- 'id' => 'profile_empty_text_emo',
884
- 'type' => 'checkbox',
885
- 'label' => __( 'Show the emoticon','ultimate-member' ),
886
- 'default' => um_get_metadefault('profile_empty_text_emo'),
887
- 'tooltip' => __('Switch on/off the emoticon (sad face) that appears above the message','ultimate-member'),
888
- 'conditional' => array( 'profile_empty_text', '=', 1 ),
889
  )
890
  )
891
  ),
@@ -897,89 +908,89 @@ if ( ! class_exists( 'um\admin\core\Admin_Settings' ) ) {
897
  'title' => __( 'Registration Form', 'ultimate-member' ),
898
  'fields' => array(
899
  array(
900
- 'id' => 'register_template',
901
- 'type' => 'select',
902
- 'label' => __( 'Registration Default Template','ultimate-member' ),
903
- 'tooltip' => __( 'This will be the default template to output registration' ),
904
- 'default' => um_get_metadefault('register_template'),
905
- 'options' => UM()->shortcodes()->get_templates( 'register' ),
906
- 'size' => 'small'
907
- ),
908
- array(
909
- 'id' => 'register_max_width',
910
- 'type' => 'text',
911
- 'label' => __( 'Registration Maximum Width','ultimate-member' ),
912
- 'default' => um_get_metadefault('register_max_width'),
913
- 'tooltip' => __('The maximum width this shortcode can take from the page width','ultimate-member'),
914
- 'size' => 'small'
915
- ),
916
- array(
917
- 'id' => 'register_align',
918
- 'type' => 'select',
919
- 'label' => __( 'Registration Shortcode Alignment','ultimate-member' ),
920
- 'tooltip' => __( 'The shortcode is centered by default unless you specify otherwise here','ultimate-member' ),
921
- 'default' => um_get_metadefault('register_align'),
922
- 'options' => array(
923
- 'center' => __('Centered'),
924
- 'left' => __('Left aligned'),
925
- 'right' => __('Right aligned'),
926
  ),
927
- 'size' => 'small'
928
- ),
929
- array(
930
- 'id' => 'register_icons',
931
- 'type' => 'select',
932
- 'label' => __( 'Registration Field Icons','ultimate-member' ),
933
- 'tooltip' => __( 'This controls the display of field icons in the registration form','ultimate-member' ),
934
- 'default' => um_get_metadefault('register_icons'),
935
- 'options' => array(
936
- 'field' => __('Show inside text field'),
937
- 'label' => __('Show with label'),
938
- 'off' => __('Turn off'),
939
  ),
940
- 'size' => 'small'
941
  ),
942
  array(
943
- 'id' => 'register_primary_btn_word',
944
- 'type' => 'text',
945
- 'label' => __( 'Registration Primary Button Text','ultimate-member' ),
946
- 'default' => um_get_metadefault('register_primary_btn_word'),
947
- 'tooltip' => __('The text that is used for primary button text','ultimate-member'),
948
- 'size' => 'medium'
949
  ),
950
  array(
951
- 'id' => 'register_secondary_btn',
952
- 'type' => 'checkbox',
953
- 'label' => __( 'Registration Secondary Button','ultimate-member' ),
954
- 'default' => 1,
955
- 'tooltip' => __('Switch on/off the secondary button display in the form','ultimate-member'),
956
  ),
957
  array(
958
- 'id' => 'register_secondary_btn_word',
959
- 'type' => 'text',
960
- 'label' => __( 'Registration Secondary Button Text','ultimate-member' ),
961
- 'default' => um_get_metadefault('register_secondary_btn_word'),
962
- 'tooltip' => __('The text that is used for the secondary button text','ultimate-member'),
963
- 'conditional' => array( 'register_secondary_btn', '=', 1 ),
964
  'size' => 'medium'
965
  ),
966
  array(
967
- 'id' => 'register_secondary_btn_url',
968
- 'type' => 'text',
969
- 'label' => __( 'Registration Secondary Button URL','ultimate-member' ),
970
- 'default' => um_get_metadefault('register_secondary_btn_url'),
971
- 'tooltip' => __('You can replace default link for this button by entering custom URL','ultimate-member'),
972
- 'conditional' => array( 'register_secondary_btn', '=', 1 ),
973
  'size' => 'medium'
974
  ),
975
  array(
976
- 'id' => 'register_role',
977
- 'type' => 'select',
978
- 'label' => __( 'Registration Default Role','ultimate-member' ),
979
- 'tooltip' => __( 'This will be the default role assigned to users registering thru registration form','ultimate-member' ),
980
- 'default' => um_get_metadefault('register_role'),
981
- 'options' => UM()->roles()->get_roles( $add_default = 'Default' ),
982
- 'size' => 'small'
983
  )
984
  )
985
  ),
@@ -987,94 +998,94 @@ if ( ! class_exists( 'um\admin\core\Admin_Settings' ) ) {
987
  'title' => __( 'Login Form', 'ultimate-member' ),
988
  'fields' => array(
989
  array(
990
- 'id' => 'login_template',
991
- 'type' => 'select',
992
- 'label' => __( 'Login Default Template','ultimate-member' ),
993
- 'tooltip' => __( 'This will be the default template to output login','ultimate-member' ),
994
- 'default' => um_get_metadefault('login_template'),
995
- 'options' => UM()->shortcodes()->get_templates( 'login' ),
996
- 'size' => 'small'
997
- ),
998
- array(
999
- 'id' => 'login_max_width',
1000
- 'type' => 'text',
1001
- 'label' => __( 'Login Maximum Width','ultimate-member' ),
1002
- 'default' => um_get_metadefault('login_max_width'),
1003
- 'tooltip' => __('The maximum width this shortcode can take from the page width','ultimate-member'),
1004
- 'size' => 'small'
1005
- ),
1006
- array(
1007
- 'id' => 'login_align',
1008
- 'type' => 'select',
1009
- 'label' => __( 'Login Shortcode Alignment','ultimate-member' ),
1010
- 'tooltip' => __( 'The shortcode is centered by default unless you specify otherwise here','ultimate-member' ),
1011
- 'default' => um_get_metadefault('login_align'),
1012
- 'options' => array(
1013
- 'center' => __('Centered','ultimate-member'),
1014
- 'left' => __('Left aligned','ultimate-member'),
1015
- 'right' => __('Right aligned','ultimate-member'),
1016
  ),
1017
- 'size' => 'small'
1018
- ),
1019
- array(
1020
- 'id' => 'login_icons',
1021
- 'type' => 'select',
1022
- 'label' => __( 'Login Field Icons','ultimate-member' ),
1023
- 'tooltip' => __( 'This controls the display of field icons in the login form','ultimate-member' ),
1024
- 'default' => um_get_metadefault('login_icons'),
1025
- 'options' => array(
1026
- 'field' => __('Show inside text field','ultimate-member'),
1027
- 'label' => __('Show with label','ultimate-member'),
1028
- 'off' => __('Turn off','ultimate-member'),
1029
  ),
1030
- 'size' => 'small'
1031
  ),
1032
  array(
1033
- 'id' => 'login_primary_btn_word',
1034
- 'type' => 'text',
1035
- 'label' => __( 'Login Primary Button Text','ultimate-member' ),
1036
- 'default' => um_get_metadefault('login_primary_btn_word'),
1037
- 'tooltip' => __('The text that is used for primary button text','ultimate-member'),
1038
- 'size' => 'medium'
1039
  ),
1040
  array(
1041
- 'id' => 'login_secondary_btn',
1042
- 'type' => 'checkbox',
1043
- 'label' => __( 'Login Secondary Button','ultimate-member' ),
1044
- 'default' => 1,
1045
- 'tooltip' => __('Switch on/off the secondary button display in the form','ultimate-member'),
1046
  ),
1047
  array(
1048
- 'id' => 'login_secondary_btn_word',
1049
- 'type' => 'text',
1050
- 'label' => __( 'Login Secondary Button Text','ultimate-member' ),
1051
- 'default' => um_get_metadefault('login_secondary_btn_word'),
1052
- 'tooltip' => __('The text that is used for the secondary button text','ultimate-member'),
1053
- 'conditional' => array( 'login_secondary_btn', '=', 1 ),
1054
  'size' => 'medium'
1055
  ),
1056
  array(
1057
- 'id' => 'login_secondary_btn_url',
1058
- 'type' => 'text',
1059
- 'label' => __( 'Login Secondary Button URL','ultimate-member' ),
1060
- 'default' => um_get_metadefault('login_secondary_btn_url'),
1061
- 'tooltip' => __('You can replace default link for this button by entering custom URL','ultimate-member'),
1062
- 'conditional' => array( 'login_secondary_btn', '=', 1 ),
1063
  'size' => 'medium'
1064
  ),
1065
  array(
1066
- 'id' => 'login_forgot_pass_link',
1067
- 'type' => 'checkbox',
1068
- 'label' => __( 'Login Forgot Password Link','ultimate-member' ),
1069
- 'default' => 1,
1070
- 'tooltip' => __('Switch on/off the forgot password link in login form','ultimate-member'),
1071
  ),
1072
  array(
1073
- 'id' => 'login_show_rememberme',
1074
- 'type' => 'checkbox',
1075
- 'label' => __( 'Show "Remember Me"','ultimate-member' ),
1076
- 'default' => 1,
1077
- 'tooltip' => __('Allow users to choose If they want to stay signed in even after closing the browser. If you do not show this option, the default will be to not remember login session.','ultimate-member'),
1078
  )
1079
  )
1080
  )
@@ -1677,6 +1688,10 @@ if ( ! class_exists( 'um\admin\core\Admin_Settings' ) ) {
1677
  $slug = str_replace( 'core_', '', $option_slug );
1678
  update_post_meta( $post_id, '_um_core', $slug );
1679
  }
 
 
 
 
1680
  } elseif ( ! empty( $_POST['um_options']['permalink_base'] ) ) {
1681
  if ( ! empty( $this->need_change_permalinks ) ) {
1682
  $users = get_users( array(
@@ -2301,7 +2316,6 @@ Upgraded From: <?php echo get_option( 'um_last_version_upgrade', 'N
2301
  Current URL Method: <?php echo UM()->options()->get( 'current_url_method' ). "\n"; ?>
2302
  Cache User Profile: <?php if( UM()->options()->get( 'um_profile_object_cache_stop' ) == 1 ){ echo "No"; }else{ echo "Yes"; } echo "\n"; ?>
2303
  Generate Slugs on Directories: <?php if( UM()->options()->get( 'um_generate_slug_in_directory' ) == 1 ){ echo "No"; }else{ echo "Yes"; } echo "\n"; ?>
2304
- Rewrite Rules: <?php if( UM()->options()->get( 'um_flush_stop' ) == 1 ){ echo "No"; }else{ echo "Yes"; } echo "\n"; ?>
2305
  Force UTF-8 Encoding: <?php if( UM()->options()->get( 'um_force_utf8_strings' ) == 1 ){ echo "Yes"; }else{ echo "No"; } echo "\n"; ?>
2306
  JS/CSS Compression: <?php if ( defined('SCRIPT_DEBUG' ) && SCRIPT_DEBUG ) { echo "Yes"; }else{ echo "No"; } echo "\n"; ?>
2307
  <?php if( is_multisite() ): ?>
88
  array(
89
  'id' => 'pages_settings',
90
  'type' => 'hidden',
91
+ 'value' => true,
92
  'is_option' => false
93
  )
94
  );
699
  'title' => __( 'Profile', 'ultimate-member' ),
700
  'fields' => array(
701
  array(
702
+ 'id' => 'profile_template',
703
+ 'type' => 'select',
704
+ 'label' => __( 'Profile Default Template', 'ultimate-member' ),
705
+ 'tooltip' => __( 'This will be the default template to output profile', 'ultimate-member' ),
706
+ 'default' => um_get_metadefault( 'profile_template' ),
707
+ 'options' => UM()->shortcodes()->get_templates( 'profile' ),
708
+ 'size' => 'small'
709
+ ),
710
+ array(
711
+ 'id' => 'profile_max_width',
712
+ 'type' => 'text',
713
+ 'label' => __( 'Profile Maximum Width', 'ultimate-member' ),
714
+ 'default' => um_get_metadefault( 'profile_max_width' ),
715
+ 'tooltip' => __( 'The maximum width this shortcode can take from the page width', 'ultimate-member' ),
716
+ 'size' => 'small'
717
+ ),
718
+
719
+ array(
720
+ 'id' => 'profile_area_max_width',
721
+ 'type' => 'text',
722
+ 'label' => __( 'Profile Area Maximum Width', 'ultimate-member' ),
723
+ 'default' => um_get_metadefault( 'profile_area_max_width' ),
724
+ 'tooltip' => __( 'The maximum width of the profile area inside profile (below profile header)', 'ultimate-member' ),
725
+ 'size' => 'small'
726
+ ),
727
+ array(
728
+ 'id' => 'profile_icons',
729
+ 'type' => 'select',
730
+ 'label' => __( 'Profile Field Icons', 'ultimate-member' ),
731
+ 'tooltip' => __( 'This is applicable for edit mode only', 'ultimate-member' ),
732
+ 'default' => um_get_metadefault( 'profile_icons' ),
733
+ 'options' => array(
734
+ 'field' => __( 'Show inside text field', 'ultimate-member' ),
735
+ 'label' => __( 'Show with label', 'ultimate-member' ),
736
+ 'off' => __( 'Turn off', 'ultimate-member' ),
737
  ),
738
+ 'size' => 'small'
739
  ),
740
  array(
741
+ 'id' => 'profile_primary_btn_word',
742
+ 'type' => 'text',
743
+ 'label' => __( 'Profile Primary Button Text','ultimate-member' ),
744
+ 'default' => um_get_metadefault( 'profile_primary_btn_word' ),
745
+ 'tooltip' => __( 'The text that is used for updating profile button', 'ultimate-member' ),
746
+ 'size' => 'medium'
747
  ),
748
  array(
749
+ 'id' => 'profile_secondary_btn',
750
+ 'type' => 'checkbox',
751
+ 'label' => __( 'Profile Secondary Button', 'ultimate-member' ),
752
+ 'default' => um_get_metadefault( 'profile_secondary_btn' ),
753
+ 'tooltip' => __( 'Switch on/off the secondary button display in the form', 'ultimate-member' ),
754
  ),
755
  array(
756
+ 'id' => 'profile_secondary_btn_word',
757
+ 'type' => 'text',
758
+ 'label' => __( 'Profile Secondary Button Text', 'ultimate-member' ),
759
+ 'default' => um_get_metadefault( 'profile_secondary_btn_word' ),
760
+ 'tooltip' => __( 'The text that is used for cancelling update profile button', 'ultimate-member' ),
761
+ 'conditional' => array( 'profile_secondary_btn', '=', 1 ),
762
  'size' => 'medium'
763
  ),
764
  array(
765
+ 'id' => 'default_avatar',
766
+ 'type' => 'media',
767
+ 'label' => __( 'Default Profile Photo', 'ultimate-member' ),
768
+ 'tooltip' => __( 'You can change the default profile picture globally here. Please make sure that the photo is 300x300px.', 'ultimate-member' ),
769
+ 'upload_frame_title' => __( 'Select Default Profile Photo', 'ultimate-member' ),
770
+ 'default' => array(
771
+ 'url' => um_url . 'assets/img/default_avatar.jpg',
772
  ),
773
  ),
774
  array(
775
+ 'id' => 'default_cover',
776
+ 'type' => 'media',
777
+ 'url' => true,
778
+ 'preview' => false,
779
+ 'label' => __( 'Default Cover Photo', 'ultimate-member' ),
780
+ 'tooltip' => __( 'You can change the default cover photo globally here. Please make sure that the default cover is large enough and respects the ratio you are using for cover photos.', 'ultimate-member'),
781
+ 'upload_frame_title' => __( 'Select Default Cover Photo', 'ultimate-member' ),
782
  ),
783
  array(
784
  'id' => 'disable_profile_photo_upload',
785
  'type' => 'checkbox',
786
  'label' => __( 'Disable Profile Photo Upload', 'ultimate-member' ),
787
  'tooltip' => __( 'Switch on/off the profile photo uploader', 'ultimate-member' ),
788
+ 'default' => um_get_metadefault( 'disable_profile_photo_upload' ),
789
  ),
790
  array(
791
+ 'id' => 'profile_photosize',
792
+ 'type' => 'select',
793
+ 'label' => __( 'Profile Photo Size', 'ultimate-member' ),
794
+ 'default' => um_get_metadefault( 'profile_photosize' ),
795
+ 'options' => UM()->files()->get_profile_photo_size( 'photo_thumb_sizes' ),
796
+ 'tooltip' => __( 'The global default of profile photo size. This can be overridden by individual form settings', 'ultimate-member' ),
797
+ 'size' => 'small'
798
  ),
799
  array(
800
+ 'id' => 'profile_cover_enabled',
801
+ 'type' => 'checkbox',
802
+ 'label' => __( 'Profile Cover Photos', 'ultimate-member' ),
803
+ 'default' => um_get_metadefault( 'profile_cover_enabled' ),
804
+ 'tooltip' => __( 'Switch on/off the profile cover photos', 'ultimate-member' ),
805
  ),
806
  array(
807
+ 'id' => 'profile_coversize',
808
+ 'type' => 'select',
809
+ 'label' => __( 'Profile Cover Size', 'ultimate-member' ),
810
+ 'default' => um_get_metadefault( 'profile_coversize' ),
811
+ 'options' => UM()->files()->get_profile_photo_size( 'cover_thumb_sizes' ),
812
+ 'tooltip' => __( 'The global default width of cover photo size. This can be overridden by individual form settings', 'ultimate-member' ),
813
+ 'conditional' => array( 'profile_cover_enabled', '=', 1 ),
814
+ 'size' => 'small'
815
+ ),
816
+ array(
817
+ 'id' => 'profile_cover_ratio',
818
+ 'type' => 'select',
819
+ 'label' => __( 'Profile Cover Ratio', 'ultimate-member' ),
820
+ 'tooltip' => __( 'Choose global ratio for cover photos of profiles', 'ultimate-member' ),
821
+ 'default' => um_get_metadefault( 'profile_cover_ratio' ),
822
+ 'options' => array(
823
+ '1.6:1' => '1.6:1',
824
+ '2.7:1' => '2.7:1',
825
+ '2.2:1' => '2.2:1',
826
+ '3.2:1' => '3.2:1',
827
  ),
828
+ 'conditional' => array( 'profile_cover_enabled', '=', 1 ),
829
  'size' => 'small'
830
  ),
831
  array(
832
+ 'id' => 'profile_show_metaicon',
833
+ 'type' => 'checkbox',
834
+ 'label' => __( 'Profile Header Meta Text Icon', 'ultimate-member' ),
835
+ 'default' => 0,
836
+ 'tooltip' => __( 'Display field icons for related user meta fields in header or not', 'ultimate-member' ),
837
  ),
838
  array(
839
+ 'id' => 'profile_show_name',
840
+ 'type' => 'checkbox',
841
+ 'label' => __( 'Show display name in profile header', 'ultimate-member' ),
842
+ 'default' => um_get_metadefault( 'profile_show_name' ),
843
+ 'tooltip' => __( 'Switch on/off the user name on profile header', 'ultimate-member' ),
844
  ),
845
  array(
846
+ 'id' => 'profile_show_social_links',
847
+ 'type' => 'checkbox',
848
+ 'label' => __( 'Show social links in profile header', 'ultimate-member' ),
849
+ 'default' => um_get_metadefault( 'profile_show_social_links' ),
850
+ 'tooltip' => __( 'Switch on/off the social links on profile header', 'ultimate-member' ),
851
  ),
852
  array(
853
+ 'id' => 'profile_show_bio',
854
+ 'type' => 'checkbox',
855
+ 'label' => __( 'Show user description in header', 'ultimate-member' ),
856
+ 'default' => um_get_metadefault( 'profile_show_bio' ),
857
+ 'tooltip' => __( 'Switch on/off the user description on profile header', 'ultimate-member' ),
858
  ),
859
  array(
860
+ 'id' => 'profile_show_html_bio',
861
+ 'type' => 'checkbox',
862
+ 'label' => __( 'Enable HTML support for user description', 'ultimate-member' ),
863
+ 'tooltip' => __( 'Switch on/off to enable/disable support for html tags on user description.', 'ultimate-member' ),
 
864
  ),
865
  array(
866
+ 'id' => 'profile_bio_maxchars',
867
+ 'type' => 'text',
868
+ 'label' => __( 'User description maximum chars', 'ultimate-member' ),
869
+ 'default' => um_get_metadefault( 'profile_bio_maxchars' ),
870
+ 'tooltip' => __( 'Maximum number of characters to allow in user description field in header.', 'ultimate-member' ),
871
+ 'conditional' => array( 'profile_show_bio', '=', 1 ),
872
  'size' => 'small'
873
  ),
874
  array(
875
+ 'id' => 'profile_header_menu',
876
+ 'type' => 'select',
877
+ 'label' => __( 'Profile Header Menu Position', 'ultimate-member' ),
878
+ 'default' => um_get_metadefault( 'profile_header_menu' ),
879
+ 'tooltip' => __( 'For incompatible themes, please make the menu open from left instead of bottom by default.', 'ultimate-member' ),
880
+ 'options' => array(
881
+ 'bc' => __( 'Bottom of Icon', 'ultimate-member' ),
882
+ 'lc' => __( 'Left of Icon (right for RTL)', 'ultimate-member' ),
883
  ),
884
+ 'size' => 'small'
885
  ),
886
  array(
887
+ 'id' => 'profile_empty_text',
888
+ 'type' => 'checkbox',
889
+ 'label' => __( 'Show a custom message if profile is empty', 'ultimate-member' ),
890
+ 'default' => um_get_metadefault( 'profile_empty_text' ),
891
+ 'tooltip' => __( 'Switch on/off the custom message that appears when the profile is empty', 'ultimate-member' ),
892
  ),
893
  array(
894
+ 'id' => 'profile_empty_text_emo',
895
+ 'type' => 'checkbox',
896
+ 'label' => __( 'Show the emoticon', 'ultimate-member' ),
897
+ 'default' => um_get_metadefault( 'profile_empty_text_emo' ),
898
+ 'tooltip' => __( 'Switch on/off the emoticon (sad face) that appears above the message', 'ultimate-member' ),
899
+ 'conditional' => array( 'profile_empty_text', '=', 1 ),
900
  )
901
  )
902
  ),
908
  'title' => __( 'Registration Form', 'ultimate-member' ),
909
  'fields' => array(
910
  array(
911
+ 'id' => 'register_template',
912
+ 'type' => 'select',
913
+ 'label' => __( 'Registration Default Template', 'ultimate-member' ),
914
+ 'tooltip' => __( 'This will be the default template to output registration', 'ultimate-member' ),
915
+ 'default' => um_get_metadefault('register_template'),
916
+ 'options' => UM()->shortcodes()->get_templates( 'register' ),
917
+ 'size' => 'small',
918
+ ),
919
+ array(
920
+ 'id' => 'register_max_width',
921
+ 'type' => 'text',
922
+ 'label' => __( 'Registration Maximum Width', 'ultimate-member' ),
923
+ 'default' => um_get_metadefault('register_max_width'),
924
+ 'tooltip' => __( 'The maximum width this shortcode can take from the page width', 'ultimate-member' ),
925
+ 'size' => 'small'
926
+ ),
927
+ array(
928
+ 'id' => 'register_align',
929
+ 'type' => 'select',
930
+ 'label' => __( 'Registration Shortcode Alignment', 'ultimate-member' ),
931
+ 'tooltip' => __( 'The shortcode is centered by default unless you specify otherwise here', 'ultimate-member' ),
932
+ 'default' => um_get_metadefault( 'register_align' ),
933
+ 'options' => array(
934
+ 'center' => __( 'Centered', 'ultimate-member' ),
935
+ 'left' => __( 'Left aligned', 'ultimate-member' ),
936
+ 'right' => __( 'Right aligned', 'ultimate-member' ),
937
  ),
938
+ 'size' => 'small'
939
+ ),
940
+ array(
941
+ 'id' => 'register_icons',
942
+ 'type' => 'select',
943
+ 'label' => __( 'Registration Field Icons', 'ultimate-member' ),
944
+ 'tooltip' => __( 'This controls the display of field icons in the registration form', 'ultimate-member' ),
945
+ 'default' => um_get_metadefault( 'register_icons' ),
946
+ 'options' => array(
947
+ 'field' => __( 'Show inside text field', 'ultimate-member' ),
948
+ 'label' => __( 'Show with label', 'ultimate-member' ),
949
+ 'off' => __( 'Turn off', 'ultimate-member' ),
950
  ),
951
+ 'size' => 'small'
952
  ),
953
  array(
954
+ 'id' => 'register_primary_btn_word',
955
+ 'type' => 'text',
956
+ 'label' => __( 'Registration Primary Button Text', 'ultimate-member' ),
957
+ 'default' => um_get_metadefault('register_primary_btn_word'),
958
+ 'tooltip' => __( 'The text that is used for primary button text', 'ultimate-member' ),
959
+ 'size' => 'medium'
960
  ),
961
  array(
962
+ 'id' => 'register_secondary_btn',
963
+ 'type' => 'checkbox',
964
+ 'label' => __( 'Registration Secondary Button', 'ultimate-member' ),
965
+ 'default' => 1,
966
+ 'tooltip' => __( 'Switch on/off the secondary button display in the form', 'ultimate-member' ),
967
  ),
968
  array(
969
+ 'id' => 'register_secondary_btn_word',
970
+ 'type' => 'text',
971
+ 'label' => __( 'Registration Secondary Button Text', 'ultimate-member' ),
972
+ 'default' => um_get_metadefault( 'register_secondary_btn_word' ),
973
+ 'tooltip' => __( 'The text that is used for the secondary button text', 'ultimate-member' ),
974
+ 'conditional' => array( 'register_secondary_btn', '=', 1 ),
975
  'size' => 'medium'
976
  ),
977
  array(
978
+ 'id' => 'register_secondary_btn_url',
979
+ 'type' => 'text',
980
+ 'label' => __( 'Registration Secondary Button URL', 'ultimate-member' ),
981
+ 'default' => um_get_metadefault('register_secondary_btn_url'),
982
+ 'tooltip' => __( 'You can replace default link for this button by entering custom URL', 'ultimate-member' ),
983
+ 'conditional' => array( 'register_secondary_btn', '=', 1 ),
984
  'size' => 'medium'
985
  ),
986
  array(
987
+ 'id' => 'register_role',
988
+ 'type' => 'select',
989
+ 'label' => __( 'Registration Default Role', 'ultimate-member' ),
990
+ 'tooltip' => __( 'This will be the default role assigned to users registering thru registration form', 'ultimate-member' ),
991
+ 'default' => um_get_metadefault( 'register_role' ),
992
+ 'options' => UM()->roles()->get_roles( $add_default = 'Default' ),
993
+ 'size' => 'small'
994
  )
995
  )
996
  ),
998
  'title' => __( 'Login Form', 'ultimate-member' ),
999
  'fields' => array(
1000
  array(
1001
+ 'id' => 'login_template',
1002
+ 'type' => 'select',
1003
+ 'label' => __( 'Login Default Template', 'ultimate-member' ),
1004
+ 'tooltip' => __( 'This will be the default template to output login', 'ultimate-member' ),
1005
+ 'default' => um_get_metadefault( 'login_template' ),
1006
+ 'options' => UM()->shortcodes()->get_templates( 'login' ),
1007
+ 'size' => 'small'
1008
+ ),
1009
+ array(
1010
+ 'id' => 'login_max_width',
1011
+ 'type' => 'text',
1012
+ 'label' => __( 'Login Maximum Width', 'ultimate-member' ),
1013
+ 'default' => um_get_metadefault( 'login_max_width' ),
1014
+ 'tooltip' => __( 'The maximum width this shortcode can take from the page width', 'ultimate-member' ),
1015
+ 'size' => 'small'
1016
+ ),
1017
+ array(
1018
+ 'id' => 'login_align',
1019
+ 'type' => 'select',
1020
+ 'label' => __( 'Login Shortcode Alignment', 'ultimate-member' ),
1021
+ 'tooltip' => __( 'The shortcode is centered by default unless you specify otherwise here', 'ultimate-member' ),
1022
+ 'default' => um_get_metadefault( 'login_align' ),
1023
+ 'options' => array(
1024
+ 'center' => __( 'Centered', 'ultimate-member' ),
1025
+ 'left' => __( 'Left aligned', 'ultimate-member' ),
1026
+ 'right' => __( 'Right aligned', 'ultimate-member' ),
1027
  ),
1028
+ 'size' => 'small'
1029
+ ),
1030
+ array(
1031
+ 'id' => 'login_icons',
1032
+ 'type' => 'select',
1033
+ 'label' => __( 'Login Field Icons', 'ultimate-member' ),
1034
+ 'tooltip' => __( 'This controls the display of field icons in the login form', 'ultimate-member' ),
1035
+ 'default' => um_get_metadefault( 'login_icons' ),
1036
+ 'options' => array(
1037
+ 'field' => __( 'Show inside text field', 'ultimate-member' ),
1038
+ 'label' => __( 'Show with label', 'ultimate-member' ),
1039
+ 'off' => __( 'Turn off', 'ultimate-member' ),
1040
  ),
1041
+ 'size' => 'small'
1042
  ),
1043
  array(
1044
+ 'id' => 'login_primary_btn_word',
1045
+ 'type' => 'text',
1046
+ 'label' => __( 'Login Primary Button Text','ultimate-member' ),
1047
+ 'default' => um_get_metadefault( 'login_primary_btn_word' ),
1048
+ 'tooltip' => __( 'The text that is used for primary button text', 'ultimate-member' ),
1049
+ 'size' => 'medium'
1050
  ),
1051
  array(
1052
+ 'id' => 'login_secondary_btn',
1053
+ 'type' => 'checkbox',
1054
+ 'label' => __( 'Login Secondary Button', 'ultimate-member' ),
1055
+ 'default' => 1,
1056
+ 'tooltip' => __( 'Switch on/off the secondary button display in the form', 'ultimate-member' ),
1057
  ),
1058
  array(
1059
+ 'id' => 'login_secondary_btn_word',
1060
+ 'type' => 'text',
1061
+ 'label' => __( 'Login Secondary Button Text', 'ultimate-member' ),
1062
+ 'default' => um_get_metadefault( 'login_secondary_btn_word' ),
1063
+ 'tooltip' => __('The text that is used for the secondary button text', 'ultimate-member' ),
1064
+ 'conditional' => array( 'login_secondary_btn', '=', 1 ),
1065
  'size' => 'medium'
1066
  ),
1067
  array(
1068
+ 'id' => 'login_secondary_btn_url',
1069
+ 'type' => 'text',
1070
+ 'label' => __( 'Login Secondary Button URL', 'ultimate-member' ),
1071
+ 'default' => um_get_metadefault( 'login_secondary_btn_url' ),
1072
+ 'tooltip' => __( 'You can replace default link for this button by entering custom URL', 'ultimate-member' ),
1073
+ 'conditional' => array( 'login_secondary_btn', '=', 1 ),
1074
  'size' => 'medium'
1075
  ),
1076
  array(
1077
+ 'id' => 'login_forgot_pass_link',
1078
+ 'type' => 'checkbox',
1079
+ 'label' => __( 'Login Forgot Password Link', 'ultimate-member' ),
1080
+ 'default' => 1,
1081
+ 'tooltip' => __( 'Switch on/off the forgot password link in login form', 'ultimate-member' ),
1082
  ),
1083
  array(
1084
+ 'id' => 'login_show_rememberme',
1085
+ 'type' => 'checkbox',
1086
+ 'label' => __( 'Show "Remember Me"', 'ultimate-member' ),
1087
+ 'default' => 1,
1088
+ 'tooltip' => __( 'Allow users to choose If they want to stay signed in even after closing the browser. If you do not show this option, the default will be to not remember login session.', 'ultimate-member' ),
1089
  )
1090
  )
1091
  )
1688
  $slug = str_replace( 'core_', '', $option_slug );
1689
  update_post_meta( $post_id, '_um_core', $slug );
1690
  }
1691
+
1692
+ // reset rewrite rules after re-save pages
1693
+ UM()->rewrite()->reset_rules();
1694
+
1695
  } elseif ( ! empty( $_POST['um_options']['permalink_base'] ) ) {
1696
  if ( ! empty( $this->need_change_permalinks ) ) {
1697
  $users = get_users( array(
2316
  Current URL Method: <?php echo UM()->options()->get( 'current_url_method' ). "\n"; ?>
2317
  Cache User Profile: <?php if( UM()->options()->get( 'um_profile_object_cache_stop' ) == 1 ){ echo "No"; }else{ echo "Yes"; } echo "\n"; ?>
2318
  Generate Slugs on Directories: <?php if( UM()->options()->get( 'um_generate_slug_in_directory' ) == 1 ){ echo "No"; }else{ echo "Yes"; } echo "\n"; ?>
 
2319
  Force UTF-8 Encoding: <?php if( UM()->options()->get( 'um_force_utf8_strings' ) == 1 ){ echo "Yes"; }else{ echo "No"; } echo "\n"; ?>
2320
  JS/CSS Compression: <?php if ( defined('SCRIPT_DEBUG' ) && SCRIPT_DEBUG ) { echo "Yes"; }else{ echo "No"; } echo "\n"; ?>
2321
  <?php if( is_multisite() ): ?>
includes/admin/core/class-admin-users.php CHANGED
@@ -377,7 +377,7 @@ if ( ! class_exists( 'um\admin\core\Admin_Users' ) ) {
377
  $rolename = UM()->roles()->get_priority_user_role( get_current_user_id() );
378
  $role = get_role( $rolename );
379
 
380
- if( !current_user_can( 'edit_users' ) && !$role->has_cap( 'edit_users' ) ) {
381
  wp_die( __( 'You do not have enough permissions to do that.', 'ultimate-member' ) );
382
  }
383
 
377
  $rolename = UM()->roles()->get_priority_user_role( get_current_user_id() );
378
  $role = get_role( $rolename );
379
 
380
+ if ( ! current_user_can( 'edit_users' ) && ! $role->has_cap( 'edit_users' ) ) {
381
  wp_die( __( 'You do not have enough permissions to do that.', 'ultimate-member' ) );
382
  }
383
 
includes/admin/core/packages/2.1.0-beta1/functions.php ADDED
@@ -0,0 +1,25 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php if ( ! defined( 'ABSPATH' ) ) exit;
2
+
3
+
4
+ function um_upgrade_metadata210beta1() {
5
+ UM()->admin()->check_ajax_nonce();
6
+
7
+ um_maybe_unset_time_limit();
8
+
9
+ include 'metadata.php';
10
+
11
+ wp_send_json_success( array( 'message' => __( 'Usermeta was upgraded successfully', 'ultimate-member' ) ) );
12
+ }
13
+
14
+
15
+ function um_upgrade_memberdir210beta1() {
16
+ UM()->admin()->check_ajax_nonce();
17
+
18
+ um_maybe_unset_time_limit();
19
+
20
+ include 'member-directory.php';
21
+
22
+ update_option( 'um_last_version_upgrade', '2.1.0-beta1' );
23
+
24
+ wp_send_json_success( array( 'message' => __( 'Member directories were upgraded successfully', 'ultimate-member' ) ) );
25
+ }
includes/admin/core/packages/2.1.0-beta1/hooks.php ADDED
@@ -0,0 +1,6 @@
 
 
 
 
 
 
1
+ <?php if ( ! defined( 'ABSPATH' ) ) exit;
2
+
3
+ return array(
4
+ 'metadata210beta1' => 'metadata210beta1',
5
+ 'memberdir210beta1' => 'memberdir210beta1',
6
+ );
includes/admin/core/packages/2.1.0-beta1/init.php ADDED
@@ -0,0 +1,57 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php if ( ! defined( 'ABSPATH' ) ) exit; ?>
2
+
3
+
4
+ <script type="text/javascript">
5
+ jQuery( document ).ready( function() {
6
+ //upgrade styles
7
+ um_add_upgrade_log( '<?php echo esc_js( __( 'Upgrade user metadata...', 'ultimate-member' ) ) ?>' );
8
+
9
+ jQuery.ajax({
10
+ url: wp.ajax.settings.url,
11
+ type: 'POST',
12
+ dataType: 'json',
13
+ data: {
14
+ action: 'um_metadata210beta1',
15
+ nonce: um_admin_scripts.nonce
16
+ },
17
+ success: function( response ) {
18
+ if ( typeof response.data != 'undefined' ) {
19
+ um_add_upgrade_log( response.data.message );
20
+ um_memberdir210beta1();
21
+ } else {
22
+ um_wrong_ajax();
23
+ }
24
+ },
25
+ error: function() {
26
+ um_something_wrong();
27
+ }
28
+ });
29
+
30
+
31
+ //clear users cache
32
+ function um_memberdir210beta1() {
33
+ um_add_upgrade_log( '<?php echo esc_js( __( 'Upgrade Member Directories...', 'ultimate-member' ) ) ?>' );
34
+ jQuery.ajax({
35
+ url: wp.ajax.settings.url,
36
+ type: 'POST',
37
+ dataType: 'json',
38
+ data: {
39
+ action: 'um_memberdir210beta1',
40
+ nonce: um_admin_scripts.nonce
41
+ },
42
+ success: function( response ) {
43
+ if ( typeof response.data != 'undefined' ) {
44
+ um_add_upgrade_log( response.data.message );
45
+ //switch to the next package
46
+ um_run_upgrade();
47
+ } else {
48
+ um_wrong_ajax();
49
+ }
50
+ },
51
+ error: function() {
52
+ um_something_wrong();
53
+ }
54
+ });
55
+ }
56
+ });
57
+ </script>
includes/admin/core/packages/2.1.0-beta1/member-directory.php ADDED
@@ -0,0 +1,181 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php if ( ! defined( 'ABSPATH' ) ) exit;
2
+
3
+ global $wpdb;
4
+
5
+ //update show messages button setting to hide messages button
6
+ $postmeta = $wpdb->get_results( "SELECT * FROM {$wpdb->postmeta} WHERE meta_key='_um_show_pm_button'", ARRAY_A );
7
+ if ( ! empty( $postmeta ) ) {
8
+ foreach ( $postmeta as $row ) {
9
+ $value = ( $row['meta_value'] == 0 ) ? 1 : 0;
10
+ update_post_meta( $row['post_id'], '_um_hide_pm_button', $value );
11
+ }
12
+
13
+ $wpdb->delete( "{$wpdb->postmeta}",
14
+ array(
15
+ 'meta_value' => '_um_show_pm_button',
16
+ ),
17
+ array(
18
+ '%s'
19
+ )
20
+ );
21
+ }
22
+
23
+ // Update role_select and role_radio filters to role
24
+ $postmeta = $wpdb->get_results( "SELECT * FROM {$wpdb->postmeta} WHERE meta_key='_um_search_fields'", ARRAY_A );
25
+ if ( ! empty( $postmeta ) ) {
26
+ foreach ( $postmeta as $row ) {
27
+ $meta_value = maybe_unserialize( $row['meta_value'] );
28
+
29
+ if ( is_array( $meta_value ) ) {
30
+ $update = false;
31
+
32
+ if ( false !== ( $index = array_search( 'role_select', $meta_value ) ) ) {
33
+ unset( $meta_value[ array_search( 'role_select', $meta_value ) ] );
34
+ $meta_value[] = 'role';
35
+ $update = true;
36
+ }
37
+
38
+ if ( false !== ( $index = array_search( 'role_radio', $meta_value ) ) ) {
39
+ unset( $meta_value[ array_search( 'role_radio', $meta_value ) ] );
40
+ $meta_value[] = 'role';
41
+ $update = true;
42
+ }
43
+
44
+ if ( $update ) {
45
+ update_post_meta( $row['post_id'], '_um_search_fields', array_unique( $meta_value ) );
46
+ }
47
+ }
48
+ }
49
+ }
50
+
51
+ // update member directories settings
52
+ $forms_query = new WP_Query;
53
+ $member_directories = $forms_query->query( array(
54
+ 'post_type' => 'um_directory',
55
+ 'posts_per_page' => -1,
56
+ 'fields' => 'ids',
57
+ ) );
58
+
59
+ if ( ! empty( $member_directories ) && ! is_wp_error( $member_directories ) ) {
60
+ foreach ( $member_directories as $id ) {
61
+ update_post_meta( $id, '_um_view_types', array( 'grid' ) );
62
+ update_post_meta( $id, '_um_default_view', 'grid' );
63
+
64
+ $search_enabled = get_post_meta( $id, '_um_search', true );
65
+ if ( $search_enabled ) {
66
+ $search_fields = $search_fields_old = get_post_meta( $id, '_um_search_fields', true );
67
+ if ( ! empty( $search_fields ) ) {
68
+ $can_search_roles = get_post_meta( $id, '_um_roles_can_search', true );
69
+
70
+ if ( false !== ( $last_login_key = array_search( '_um_last_login', $search_fields ) ) ) {
71
+ unset( $search_fields[ $last_login_key ] );
72
+ $search_fields[] = 'last_login';
73
+ }
74
+
75
+ if ( false !== ( $user_rating_key = array_search( 'user_rating', $search_fields ) ) ) {
76
+ unset( $search_fields[ $user_rating_key ] );
77
+ $search_fields[] = 'filter_rating';
78
+ }
79
+
80
+ $filter_fields = array_intersect( $search_fields, array_keys( UM()->member_directory()->filter_fields ) );
81
+
82
+ $general_search_fields = array_diff( $search_fields, array_keys( UM()->member_directory()->filter_fields ) );
83
+ $search_active = count( $general_search_fields ) > 0 ? 1 : 0;
84
+ update_post_meta( $id, '_um_search', $search_active );
85
+
86
+ update_post_meta( $id, '_um_filters', 1 );
87
+ update_post_meta( $id, '_um_roles_can_filter', $can_search_roles );
88
+ update_post_meta( $id, '_um_search_fields', $filter_fields );
89
+ update_post_meta( $id, '_um_search_fields_old', $search_fields_old );
90
+ } else {
91
+ update_post_meta( $id, '_um_search', 0 );
92
+ update_post_meta( $id, '_um_filters', 0 );
93
+ }
94
+ }
95
+
96
+ $default_filters = get_post_meta( $id, '_um_search_filters', true );
97
+ $default_filters_new = array();
98
+ if ( ! empty( $default_filters ) ) {
99
+ $default_filters_queries = explode( '&', $default_filters );
100
+ foreach ( $default_filters_queries as $filter_query_part ) {
101
+ $filter_query_parts = explode( '=', $filter_query_part );
102
+
103
+ $filter_key = $filter_query_parts[0];
104
+ $filter_value = $filter_query_parts[1];
105
+
106
+ $default_filters_new[ $filter_key ] = $filter_value;
107
+ }
108
+ }
109
+
110
+ update_post_meta( $id, '_um_search_filters', $default_filters_new );
111
+ update_post_meta( $id, '_um_search_filters_old', $default_filters );
112
+
113
+ update_post_meta( $id, '_um_search_old', $search_enabled );
114
+ }
115
+ }
116
+
117
+
118
+ // for user tags settings
119
+ if ( UM()->options()->get( 'members_page' ) ) {
120
+ $member_directory_id = false;
121
+
122
+ $page_id = UM()->config()->permalinks['members'];
123
+ if ( ! empty( $page_id ) ) {
124
+ $members_page = get_post( $page_id );
125
+ if ( ! empty( $members_page ) && ! is_wp_error( $members_page ) ) {
126
+ if ( ! empty( $members_page->post_content ) ) {
127
+ preg_match( '/\[ultimatemember[^\]]*?form_id\=[\'"]*?(\d+)[\'"]*?/i', $members_page->post_content, $matches );
128
+ if ( ! empty( $matches[1] ) && is_numeric( $matches[1] ) ) {
129
+ $member_directory_id = $matches[1];
130
+ }
131
+ }
132
+ }
133
+ }
134
+
135
+ if ( $member_directory_id ) {
136
+ UM()->options()->update( 'user_tags_base_directory' , $member_directory_id );
137
+ }
138
+ }
139
+
140
+
141
+ // update groups settings
142
+ $groups_query = new WP_Query;
143
+ $groups = $groups_query->query( array(
144
+ 'post_type' => 'um_groups',
145
+ 'posts_per_page' => -1,
146
+ 'fields' => 'ids',
147
+ ) );
148
+
149
+ if ( ! empty( $groups ) && ! is_wp_error( $groups ) ) {
150
+ foreach ( $groups as $id ) {
151
+ $filters_enabled = get_post_meta( $id, '_um_groups_invites_search_fields', true );
152
+ if ( ! empty( $filters_enabled ) ) {
153
+ $filters = $filters_old = get_post_meta( $id, '_um_groups_invites_fields', true );
154
+ if ( ! empty( $filters ) ) {
155
+ if ( false !== ( $last_login_key = array_search( '_um_last_login', $filters ) ) ) {
156
+ unset( $filters[ $last_login_key ] );
157
+ $filters[] = 'last_login';
158
+ }
159
+
160
+ if ( false !== ( $user_rating_key = array_search( 'user_rating', $filters ) ) ) {
161
+ unset( $filters[ $user_rating_key ] );
162
+ $filters[] = 'filter_rating';
163
+ }
164
+
165
+ $filter_fields = array_intersect( $filters, array_keys( UM()->member_directory()->filter_fields ) );
166
+
167
+ $general_search_fields = array_diff( $filters, array_keys( UM()->member_directory()->filter_fields ) );
168
+ $search_active = count( $general_search_fields ) > 0 ? 1 : 0;
169
+
170
+ update_post_meta( $id, '_um_groups_invites_fields', $filter_fields );
171
+ update_post_meta( $id, '_um_groups_invites_fields_old', $filters_old );
172
+
173
+ $search_enabled = get_post_meta( $id, '_um_groups_invites_search', true );
174
+ if ( empty( $search_enabled ) && $search_active ) {
175
+ update_post_meta( $id, '_um_groups_invites_search', true );
176
+ update_post_meta( $id, '_um_groups_invites_search_old', $search_enabled );
177
+ }
178
+ }
179
+ }
180
+ }
181
+ }
includes/admin/core/packages/2.1.0-beta1/metadata.php ADDED
@@ -0,0 +1,18 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php if ( ! defined( 'ABSPATH' ) ) exit;
2
+
3
+ global $wpdb;
4
+
5
+ $wpdb->update( "{$wpdb->usermeta}",
6
+ array(
7
+ 'meta_value' => serialize( array() ),
8
+ ),
9
+ array(
10
+ 'meta_key' => 'um_account_secure_fields',
11
+ ),
12
+ array(
13
+ '%s'
14
+ ),
15
+ array(
16
+ '%s'
17
+ )
18
+ );
includes/admin/templates/directory/general.php CHANGED
@@ -1,110 +1,82 @@
1
  <?php if ( ! defined( 'ABSPATH' ) ) exit;
2
 
 
3
 
4
- $meta = get_post_custom( get_the_ID() );
5
- foreach( $meta as $k => $v ) {
6
- if ( strstr( $k, '_um_' ) && !is_array( $v[0] ) ) {
7
- //print "'$k' => '" . $v[0] . "',<br />";
8
- }
9
- }
10
-
11
- $roles_array = array();
12
-
13
- foreach ( UM()->roles()->get_roles() as $key => $value ) {
14
- $_um_roles = UM()->query()->get_meta_value( '_um_roles', $key );
15
- if ( ! empty( $_um_roles ) )
16
- $roles_array[] = $_um_roles;
17
- }
18
 
19
  $show_these_users = get_post_meta( get_the_ID(), '_um_show_these_users', true );
20
  if ( $show_these_users ) {
21
  $show_these_users = implode( "\n", str_replace( "\r", "", $show_these_users ) );
 
 
 
 
 
 
 
 
 
 
 
 
22
  } ?>
23
 
24
  <div class="um-admin-metabox">
25
 
26
- <?php
27
- /**
28
- * UM hook
29
- *
30
- * @type filter
31
- * @title um_admin_directory_sort_users_select
32
- * @description Extend Sort Types for Member Directory
33
- * @input_vars
34
- * [{"var":"$sort_types","type":"array","desc":"Sort Types"}]
35
- * @change_log
36
- * ["Since: 2.0"]
37
- * @usage add_filter( 'um_admin_directory_sort_users_select', 'function_name', 10, 1 );
38
- * @example
39
- * <?php
40
- * add_filter( 'um_admin_directory_sort_users_select', 'my_directory_sort_users_select', 10, 1 );
41
- * function my_directory_sort_users_select( $sort_types ) {
42
- * // your code here
43
- * return $sort_types;
44
- * }
45
- * ?>
46
- */
47
- $sort_options = apply_filters( 'um_admin_directory_sort_users_select', array(
48
- 'user_registered_desc' => __( 'New users first', 'ultimate-member' ),
49
- 'user_registered_asc' => __( 'Old users first', 'ultimate-member' ),
50
- 'last_login' => __( 'Last login', 'ultimate-member' ),
51
- 'display_name' => __( 'Display Name', 'ultimate-member' ),
52
- 'first_name' => __( 'First Name', 'ultimate-member' ),
53
- 'last_name' => __( 'Last Name', 'ultimate-member' ),
54
- 'random' => __( 'Random', 'ultimate-member' ),
55
- 'other' => __( 'Other (custom field)', 'ultimate-member' ),
56
- ) );
57
-
58
- $fields = array(
59
  array(
60
- 'id' => '_um_mode',
61
- 'type' => 'hidden',
62
- 'value' => 'directory',
63
  ),
64
  array(
65
- 'id' => '_um_roles',
66
- 'type' => 'select',
67
- 'label' => __( 'User Roles to Display', 'ultimate-member' ),
68
- 'tooltip' => __( 'If you do not want to show all members, select only user roles to appear in this directory', 'ultimate-member' ),
69
- 'options' => UM()->roles()->get_roles(),
70
- 'multi' => true,
71
- 'value' => $roles_array,
 
72
  ),
73
  array(
74
- 'id' => '_um_has_profile_photo',
75
- 'type' => 'checkbox',
76
- 'label' => __( 'Only show members who have uploaded a profile photo', 'ultimate-member' ),
77
- 'tooltip' => __( 'If \'Use Gravatars\' as profile photo is enabled, this option is ignored', 'ultimate-member' ),
78
- 'value' => UM()->query()->get_meta_value( '_um_has_profile_photo' ),
 
 
79
  ),
80
  array(
81
- 'id' => '_um_has_cover_photo',
82
- 'type' => 'checkbox',
83
- 'label' => __( 'Only show members who have uploaded a cover photo', 'ultimate-member' ),
84
- 'value' => UM()->query()->get_meta_value( '_um_has_cover_photo' ),
 
 
 
85
  ),
86
  array(
87
- 'id' => '_um_sortby',
88
- 'type' => 'select',
89
- 'label' => __( 'Sort users by', 'ultimate-member' ),
90
- 'tooltip' => __( 'Sort users by a specific parameter in the directory', 'ultimate-member' ),
91
- 'options' => $sort_options,
92
- 'value' => UM()->query()->get_meta_value( '_um_sortby' ),
93
  ),
94
  array(
95
- 'id' => '_um_sortby_custom',
96
- 'type' => 'text',
97
- 'label' => __( 'Meta key', 'ultimate-member' ),
98
- 'tooltip' => __( 'To sort by a custom field, enter the meta key of field here', 'ultimate-member' ),
99
- 'value' => UM()->query()->get_meta_value( '_um_sortby_custom', null, 'na' ),
100
- 'conditional' => array( '_um_sortby', '=', 'other' )
101
  ),
102
  array(
103
- 'id' => '_um_show_these_users',
104
- 'type' => 'textarea',
105
- 'label' => __( 'Only show specific users (Enter one username per line)', 'ultimate-member' ),
106
- 'value' => $show_these_users,
107
- )
108
  );
109
 
110
  /**
@@ -130,9 +102,9 @@ if ( $show_these_users ) {
130
  $fields = apply_filters( 'um_admin_extend_directory_options_general', $fields );
131
 
132
  UM()->admin_forms( array(
133
- 'class' => 'um-member-directory-general um-half-column',
134
- 'prefix_id' => 'um_metadata',
135
- 'fields' => $fields
136
  ) )->render_form(); ?>
137
 
138
  <div class="um-admin-clear"></div>
1
  <?php if ( ! defined( 'ABSPATH' ) ) exit;
2
 
3
+ global $post_id;
4
 
5
+ $_um_roles_value = get_post_meta( $post_id, '_um_roles', true );
6
+ $_um_roles_value = empty( $_um_roles_value ) ? array() : $_um_roles_value;
 
 
 
 
 
 
 
 
 
 
 
 
7
 
8
  $show_these_users = get_post_meta( get_the_ID(), '_um_show_these_users', true );
9
  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
+
16
+ $view_types_options = array_map( function( $item ) {
17
+ return $item['title'];
18
+ }, UM()->member_directory()->view_types );
19
+
20
+ $conditional = array();
21
+ foreach ( $view_types_options as $key => $value ) {
22
+ $conditional[] = '_um_view_types_' . $key;
23
  } ?>
24
 
25
  <div class="um-admin-metabox">
26
 
27
+ <?php $fields = array(
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
28
  array(
29
+ 'id' => '_um_mode',
30
+ 'type' => 'hidden',
31
+ 'value' => 'directory',
32
  ),
33
  array(
34
+ 'id' => '_um_view_types',
35
+ 'type' => 'multi_checkbox',
36
+ 'label' => __( 'View type(s)', 'ultimate-member' ),
37
+ 'tooltip' => __( 'View type a specific parameter in the directory', 'ultimate-member' ),
38
+ 'options' => $view_types_options,
39
+ 'columns' => 3,
40
+ 'value' => $_um_view_types_value,
41
+ 'data' => array( 'fill__um_default_view' => 'checkbox_key' ),
42
  ),
43
  array(
44
+ 'id' => '_um_default_view',
45
+ 'type' => 'select',
46
+ 'label' => __( 'Default view type', 'ultimate-member' ),
47
+ 'tooltip' => __( 'Default directory view type', 'ultimate-member' ),
48
+ 'options' => $view_types_options,
49
+ 'value' => UM()->query()->get_meta_value( '_um_default_view', null, 'grid' ),
50
+ 'conditional' => array( implode( '|', $conditional ), '~', 1 )
51
  ),
52
  array(
53
+ 'id' => '_um_roles',
54
+ 'type' => 'multi_checkbox',
55
+ 'label' => __( 'User Roles to Display', 'ultimate-member' ),
56
+ 'tooltip' => __( 'If you do not want to show all members, select only user roles to appear in this directory', 'ultimate-member' ),
57
+ 'options' => UM()->roles()->get_roles(),
58
+ 'columns' => 3,
59
+ 'value' => $_um_roles_value,
60
  ),
61
  array(
62
+ 'id' => '_um_has_profile_photo',
63
+ 'type' => 'checkbox',
64
+ 'label' => __( 'Only show members who have uploaded a profile photo', 'ultimate-member' ),
65
+ 'tooltip' => __( 'If \'Use Gravatars\' as profile photo is enabled, this option is ignored', 'ultimate-member' ),
66
+ 'value' => UM()->query()->get_meta_value( '_um_has_profile_photo' ),
 
67
  ),
68
  array(
69
+ 'id' => '_um_has_cover_photo',
70
+ 'type' => 'checkbox',
71
+ 'label' => __( 'Only show members who have uploaded a cover photo', 'ultimate-member' ),
72
+ 'value' => UM()->query()->get_meta_value( '_um_has_cover_photo' ),
 
 
73
  ),
74
  array(
75
+ 'id' => '_um_show_these_users',
76
+ 'type' => 'textarea',
77
+ 'label' => __( 'Only show specific users (Enter one username per line)', 'ultimate-member' ),
78
+ 'value' => $show_these_users,
79
+ ),
80
  );
81
 
82
  /**
102
  $fields = apply_filters( 'um_admin_extend_directory_options_general', $fields );
103
 
104
  UM()->admin_forms( array(
105
+ 'class' => 'um-member-directory-general um-half-column',
106
+ 'prefix_id' => 'um_metadata',
107
+ 'fields' => $fields
108
  ) )->render_form(); ?>
109
 
110
  <div class="um-admin-clear"></div>
includes/admin/templates/directory/pagination.php CHANGED
@@ -3,33 +3,62 @@
3
 
4
  <div class="um-admin-metabox">
5
  <?php UM()->admin_forms( array(
6
- 'class' => 'um-member-directory-pagination um-half-column',
7
- 'prefix_id' => 'um_metadata',
8
- 'fields' => array(
9
  array(
10
- 'id' => '_um_profiles_per_page',
11
- 'type' => 'text',
12
- 'label' => __( 'Number of profiles per page', 'ultimate-member' ),
13
- 'tooltip' => __( 'Number of profiles to appear on page for standard users', 'ultimate-member' ),
14
- 'value' => UM()->query()->get_meta_value( '_um_profiles_per_page', null, 12 ),
15
- 'size' => 'small'
16
  ),
17
  array(
18
- 'id' => '_um_profiles_per_page_mobile',
19
- 'type' => 'text',
20
- 'label' => __( 'Number of profiles per page (for Mobiles & Tablets)', 'ultimate-member' ),
21
- 'tooltip' => __( 'Number of profiles to appear on page for mobile users', 'ultimate-member' ),
22
- 'value' => UM()->query()->get_meta_value( '_um_profiles_per_page_mobile', null, 8 ),
23
- 'size' => 'small'
24
  ),
25
  array(
26
- 'id' => '_um_max_users',
27
- 'type' => 'text',
28
- 'label' => __( 'Maximum number of profiles', 'ultimate-member' ),
29
- 'tooltip' => __( 'Use this setting to control the maximum number of profiles to appear in this directory. Leave blank to disable this limit', 'ultimate-member' ),
30
- 'value' => UM()->query()->get_meta_value( '_um_max_users', null, 'na' ),
31
- 'size' => 'small'
32
- )
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
33
  )
34
  ) )->render_form(); ?>
35
 
3
 
4
  <div class="um-admin-metabox">
5
  <?php UM()->admin_forms( array(
6
+ 'class' => 'um-member-directory-pagination um-half-column',
7
+ 'prefix_id' => 'um_metadata',
8
+ 'fields' => array(
9
  array(
10
+ 'id' => '_um_must_search',
11
+ 'type' => 'checkbox',
12
+ 'label' => __( 'Show results only after search/filtration', 'ultimate-member' ),
13
+ 'tooltip' => __( 'If turned on, member results will only appear after search/filter is performed', 'ultimate-member' ),
14
+ 'value' => UM()->query()->get_meta_value( '_um_must_search' ),
15
+ 'conditional' => array( '_um_search||_um_filters', '=', 1 ),
16
  ),
17
  array(
18
+ 'id' => '_um_max_users',
19
+ 'type' => 'number',
20
+ 'label' => __( 'Maximum number of profiles', 'ultimate-member' ),
21
+ 'tooltip' => __( 'Use this setting to control the maximum number of profiles to appear in this directory. Leave blank to disable this limit', 'ultimate-member' ),
22
+ 'value' => UM()->query()->get_meta_value( '_um_max_users', null, 'na' ),
23
+ 'size' => 'small'
24
  ),
25
  array(
26
+ 'id' => '_um_profiles_per_page',
27
+ 'type' => 'number',
28
+ 'label' => __( 'Number of profiles per page', 'ultimate-member' ),
29
+ 'tooltip' => __( 'Number of profiles to appear on page for standard users', 'ultimate-member' ),
30
+ 'value' => UM()->query()->get_meta_value( '_um_profiles_per_page', null, 12 ),
31
+ 'size' => 'small'
32
+ ),
33
+ array(
34
+ 'id' => '_um_profiles_per_page_mobile',
35
+ 'type' => 'number',
36
+ 'label' => __( 'Number of profiles per page (for Mobiles & Tablets)', 'ultimate-member' ),
37
+ 'tooltip' => __( 'Number of profiles to appear on page for mobile users', 'ultimate-member' ),
38
+ 'value' => UM()->query()->get_meta_value( '_um_profiles_per_page_mobile', null, 8 ),
39
+ 'size' => 'small'
40
+ ),
41
+ array(
42
+ 'id' => '_um_directory_header',
43
+ 'type' => 'text',
44
+ 'label' => __( 'Results Text', 'ultimate-member' ),
45
+ 'tooltip' => __( 'Customize the search result text . e.g. Found 3,000 Members. Leave this blank to not show result text', 'ultimate-member' ),
46
+ 'value' => UM()->query()->get_meta_value('_um_directory_header', null, __( '{total_users} Members', 'ultimate-member' ) ),
47
+ ),
48
+ array(
49
+ 'id' => '_um_directory_header_single',
50
+ 'type' => 'text',
51
+ 'label' => __( 'Single Result Text', 'ultimate-member' ),
52
+ 'tooltip' => __( 'Same as above but in case of 1 user found only', 'ultimate-member' ),
53
+ 'value' => UM()->query()->get_meta_value('_um_directory_header_single', null, __( '{total_users} Member', 'ultimate-member' ) ),
54
+ ),
55
+ array(
56
+ 'id' => '_um_directory_no_users',
57
+ 'type' => 'text',
58
+ 'label' => __( 'Custom text if no users were found', 'ultimate-member' ),
59
+ 'tooltip' => __( 'This is the text that is displayed if no users are found during a search', 'ultimate-member' ),
60
+ 'value' => UM()->query()->get_meta_value('_um_directory_no_users', null, __( 'We are sorry. We cannot find any users who match your search criteria.', 'ultimate-member' ) ),
61
+ ),
62
  )
63
  ) )->render_form(); ?>
64
 
includes/admin/templates/directory/profile.php CHANGED
@@ -12,77 +12,103 @@
12
  $_um_tagline_fields = get_post_meta( $post_id, '_um_tagline_fields', true );
13
  $_um_reveal_fields = get_post_meta( $post_id, '_um_reveal_fields', true );
14
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
15
  UM()->admin_forms( array(
16
- 'class' => 'um-member-directory-profile um-half-column',
17
- 'prefix_id' => 'um_metadata',
18
- 'fields' => array(
19
- array(
20
- 'id' => '_um_profile_photo',
21
- 'type' => 'checkbox',
22
- 'label' => __( 'Enable Profile Photo', 'ultimate-member' ),
23
- 'value' => UM()->query()->get_meta_value( '_um_profile_photo', null, 1 ),
24
- ),
25
- array(
26
- 'id' => '_um_cover_photos',
27
- 'type' => 'checkbox',
28
- 'label' => __( 'Enable Cover Photo', 'ultimate-member' ),
29
- 'tooltip' => __( 'If turned on, the users cover photo will appear in the directory', 'ultimate-member' ),
30
- 'value' => UM()->query()->get_meta_value( '_um_cover_photos', null, 1 ),
31
- ),
32
- array(
33
- 'id' => '_um_show_name',
34
- 'type' => 'checkbox',
35
- 'label' => __( 'Show display name', 'ultimate-member' ),
36
- 'value' => UM()->query()->get_meta_value( '_um_show_name', null, 1 ),
37
- ),
38
- array(
39
- 'id' => '_um_show_tagline',
40
- 'type' => 'checkbox',
41
- 'label' => __( 'Show tagline below profile name', 'ultimate-member' ),
42
- 'value' => UM()->query()->get_meta_value( '_um_show_tagline' ),
43
- ),
44
- array(
45
- 'id' => '_um_tagline_fields',
46
- 'type' => 'multi_selects',
47
- 'label' => __( 'Choose field(s) to display in tagline', 'ultimate-member' ),
48
- 'value' => $_um_tagline_fields,
49
- 'conditional' => array( '_um_show_tagline', '=', 1 ),
50
- 'add_text' => __( 'Add New Custom Field','ultimate-member' ),
51
- 'options' => $user_fields,
52
- 'show_default_number' => 1,
53
- ),
54
- array(
55
- 'id' => '_um_show_userinfo',
56
- 'type' => 'checkbox',
57
- 'label' => __( 'Show extra user information below tagline?', 'ultimate-member' ),
58
- 'value' => UM()->query()->get_meta_value( '_um_show_userinfo' ),
59
- ),
60
- array(
61
- 'id' => '_um_userinfo_animate',
62
- 'type' => 'checkbox',
63
- 'label' => __( 'Enable reveal section transition by default', 'ultimate-member' ),
64
- 'value' => UM()->query()->get_meta_value( '_um_userinfo_animate' ),
65
- 'conditional' => array( '_um_show_userinfo', '=', 1 )
66
- ),
67
- array(
68
- 'id' => '_um_reveal_fields',
69
- 'type' => 'multi_selects',
70
- 'label' => __( 'Choose field(s) to display in reveal section', 'ultimate-member' ),
71
- 'value' => $_um_reveal_fields,
72
- 'add_text' => __( 'Add New Custom Field', 'ultimate-member' ),
73
- 'conditional' => array( '_um_show_userinfo', '=', 1 ),
74
- 'options' => $user_fields,
75
- 'show_default_number' => 1,
76
- ),
77
- array(
78
- 'id' => '_um_show_social',
79
- 'type' => 'checkbox',
80
- 'label' => __( 'Show social connect icons', 'ultimate-member' ),
81
- 'value' => UM()->query()->get_meta_value( '_um_show_social' ),
82
- 'conditional' => array( '_um_show_userinfo', '=', 1 )
83
- )
84
- )
85
  ) )->render_form(); ?>
86
-
87
  <div class="um-admin-clear"></div>
88
  </div>
12
  $_um_tagline_fields = get_post_meta( $post_id, '_um_tagline_fields', true );
13
  $_um_reveal_fields = get_post_meta( $post_id, '_um_reveal_fields', true );
14
 
15
+
16
+ $fields = array(
17
+ array(
18
+ 'id' => '_um_profile_photo',
19
+ 'type' => 'checkbox',
20
+ 'label' => __( 'Enable Profile Photo', 'ultimate-member' ),
21
+ 'value' => UM()->query()->get_meta_value( '_um_profile_photo', null, 1 ),
22
+ ),
23
+ array(
24
+ 'id' => '_um_cover_photos',
25
+ 'type' => 'checkbox',
26
+ 'label' => __( 'Enable Cover Photo', 'ultimate-member' ),
27
+ 'tooltip' => __( 'If turned on, the users cover photo will appear in the directory', 'ultimate-member' ),
28
+ 'value' => UM()->query()->get_meta_value( '_um_cover_photos', null, 1 ),
29
+ ),
30
+ array(
31
+ 'id' => '_um_show_name',
32
+ 'type' => 'checkbox',
33
+ 'label' => __( 'Show display name', 'ultimate-member' ),
34
+ 'value' => UM()->query()->get_meta_value( '_um_show_name', null, 1 ),
35
+ ),
36
+ array(
37
+ 'id' => '_um_show_tagline',
38
+ 'type' => 'checkbox',
39
+ 'label' => __( 'Show tagline below profile name', 'ultimate-member' ),
40
+ 'value' => UM()->query()->get_meta_value( '_um_show_tagline' ),
41
+ ),
42
+ array(
43
+ 'id' => '_um_tagline_fields',
44
+ 'type' => 'multi_selects',
45
+ 'label' => __( 'Choose field(s) to display in tagline', 'ultimate-member' ),
46
+ 'value' => $_um_tagline_fields,
47
+ 'conditional' => array( '_um_show_tagline', '=', 1 ),
48
+ 'add_text' => __( 'Add New Custom Field', 'ultimate-member' ),
49
+ 'options' => $user_fields,
50
+ 'show_default_number' => 1,
51
+ ),
52
+ array(
53
+ 'id' => '_um_show_userinfo',
54
+ 'type' => 'checkbox',
55
+ 'label' => __( 'Show extra user information below tagline?', 'ultimate-member' ),
56
+ 'value' => UM()->query()->get_meta_value( '_um_show_userinfo' ),
57
+ ),
58
+ array(
59
+ 'id' => '_um_reveal_fields',
60
+ 'type' => 'multi_selects',
61
+ 'label' => __( 'Choose field(s) to display in reveal section', 'ultimate-member' ),
62
+ 'value' => $_um_reveal_fields,
63
+ 'add_text' => __( 'Add New Custom Field', 'ultimate-member' ),
64
+ 'conditional' => array( '_um_show_userinfo', '=', 1 ),
65
+ 'options' => $user_fields,
66
+ 'show_default_number' => 1,
67
+ ),
68
+ array(
69
+ 'id' => '_um_show_social',
70
+ 'type' => 'checkbox',
71
+ 'label' => __( 'Show social connect icons', 'ultimate-member' ),
72
+ 'value' => UM()->query()->get_meta_value( '_um_show_social' ),
73
+ 'conditional' => array( '_um_show_userinfo', '=', 1 )
74
+ ),
75
+ array(
76
+ 'id' => '_um_userinfo_animate',
77
+ 'type' => 'checkbox',
78
+ 'label' => __( 'Enable reveal section transition by default', 'ultimate-member' ),
79
+ 'value' => UM()->query()->get_meta_value( '_um_userinfo_animate' ),
80
+ 'conditional' => array( '_um_show_userinfo', '=', 1 )
81
+ ),
82
+ );
83
+
84
+
85
+ /**
86
+ * UM hook
87
+ *
88
+ * @type filter
89
+ * @title um_admin_extend_directory_options_general
90
+ * @description Extend Directory options fields
91
+ * @input_vars
92
+ * [{"var":"$fields","type":"array","desc":"Directory options fields"}]
93
+ * @change_log
94
+ * ["Since: 2.0"]
95
+ * @usage add_filter( 'um_admin_directory_sort_users_select', 'function_name', 10, 1 );
96
+ * @example
97
+ * <?php
98
+ * add_filter( 'um_admin_directory_sort_users_select', 'my_directory_sort_users_select', 10, 1 );
99
+ * function my_directory_sort_users_select( $sort_types ) {
100
+ * // your code here
101
+ * return $sort_types;
102
+ * }
103
+ * ?>
104
+ */
105
+ $fields = apply_filters( 'um_admin_extend_directory_options_profile', $fields );
106
+
107
  UM()->admin_forms( array(
108
+ 'class' => 'um-member-directory-profile um-half-column',
109
+ 'prefix_id' => 'um_metadata',
110
+ 'fields' => $fields,
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
111
  ) )->render_form(); ?>
112
+
113
  <div class="um-admin-clear"></div>
114
  </div>
includes/admin/templates/directory/search.php CHANGED
@@ -1,14 +1,16 @@
1
- <?php if ( ! defined( 'ABSPATH' ) ) exit; ?>
 
 
2
 
3
 
4
  <div class="um-admin-metabox">
5
  <?php
6
- $can_search_array = array();
7
- foreach ( UM()->roles()->get_roles() as $key => $value ) {
8
- $_um_roles_can_search = UM()->query()->get_meta_value( '_um_roles_can_search', $key );
9
- if ( ! empty( $_um_roles_can_search ) )
10
- $can_search_array[] = $_um_roles_can_search;
11
- }
12
 
13
  /**
14
  * UM hook
@@ -32,88 +34,83 @@
32
  * ?>
33
  */
34
  $custom_search = apply_filters( 'um_admin_custom_search_filters', array() );
35
- $searchable_fields = UM()->builtin()->all_user_fields('date,time,url');
36
  $searchable_fields = $searchable_fields + $custom_search;
37
  $user_fields = array();
38
  foreach ( $searchable_fields as $key => $arr ) {
39
- $user_fields[$key] = isset( $arr['title'] ) ? $arr['title'] : '';
40
  }
41
 
42
- $post_id = get_the_ID();
43
- $_um_search_fields = get_post_meta( $post_id, '_um_search_fields', true );
 
44
 
45
  UM()->admin_forms( array(
46
- 'class' => 'um-member-directory-search um-half-column',
47
- 'prefix_id' => 'um_metadata',
48
- 'fields' => array(
49
  array(
50
- 'id' => '_um_search',
51
- 'type' => 'checkbox',
52
- 'label' => __( 'Enable Search feature', 'ultimate-member' ),
53
- 'tooltip' => __( 'If turned on, users will be able to search members in this directory', 'ultimate-member' ),
54
- 'value' => UM()->query()->get_meta_value( '_um_search' ),
55
  ),
56
  array(
57
- 'id' => '_um_must_search',
58
- 'type' => 'checkbox',
59
- 'label' => __( 'Show results only after search', 'ultimate-member' ),
60
- 'tooltip' => __( 'If turned on, member results will only appear after search is performed', 'ultimate-member' ),
61
- 'value' => UM()->query()->get_meta_value( '_um_must_search' ),
 
 
62
  'conditional' => array( '_um_search', '=', 1 )
63
  ),
64
  array(
65
- 'id' => '_um_roles_can_search',
66
- 'type' => 'select',
67
- 'multi' => true,
68
- 'label' => __( 'User Roles that can use search', 'ultimate-member' ),
69
- 'tooltip' => __( 'If you want to allow specific user roles to be able to search only', 'ultimate-member' ),
70
- 'value' => $can_search_array,
71
- 'options' => UM()->roles()->get_roles(),
72
- 'conditional' => array( '_um_search', '=', 1 )
73
  ),
74
  array(
75
- 'id' => '_um_search_fields',
76
- 'type' => 'multi_selects',
77
- 'label' => __( 'Choose field(s) to enable in search', 'ultimate-member' ),
78
- 'value' => $_um_search_fields,
79
- 'conditional' => array( '_um_search', '=', 1 ),
80
- 'options' => $user_fields,
81
- 'add_text' => __( 'Add New Custom Field','ultimate-member' ),
82
- 'show_default_number' => 1,
83
  ),
84
  array(
85
- 'id' => '_um_search_filters',
86
- 'type' => 'text',
87
- 'label' => __( 'Additional search filters', 'ultimate-member' ),
88
- 'tooltip' => __( 'Additional search filters like URL parameters' ),
89
- 'value' => UM()->query()->get_meta_value('_um_search_filters', null, '' ),
90
- 'conditional' => array( '_um_search', '=', 1 ),
91
- 'placeholder' => 'field1=val1&field2=val2'
 
92
  ),
93
  array(
94
- 'id' => '_um_directory_header',
95
- 'type' => 'text',
96
- 'label' => __( 'Results Text', 'ultimate-member' ),
97
- 'tooltip' => __( 'Customize the search result text . e.g. Found 3,000 Members. Leave this blank to not show result text', 'ultimate-member' ),
98
- 'value' => UM()->query()->get_meta_value('_um_directory_header', null, __('{total_users} Members','ultimate-member') ),
99
- 'conditional' => array( '_um_search', '=', 1 )
100
  ),
101
  array(
102
- 'id' => '_um_directory_header_single',
103
- 'type' => 'text',
104
- 'label' => __( 'Single Result Text', 'ultimate-member' ),
105
- 'tooltip' => __( 'Same as above but in case of 1 user found only', 'ultimate-member' ),
106
- 'value' => UM()->query()->get_meta_value('_um_directory_header_single', null, __('{total_users} Member','ultimate-member') ),
107
- 'conditional' => array( '_um_search', '=', 1 )
 
 
108
  ),
109
- array(
110
- 'id' => '_um_directory_no_users',
111
- 'type' => 'text',
112
- 'label' => __( 'Custom text if no users were found', 'ultimate-member' ),
113
- 'tooltip' => __( 'This is the text that is displayed if no users are found during a search', 'ultimate-member' ),
114
- 'value' => UM()->query()->get_meta_value('_um_directory_no_users', null, __('We are sorry. We cannot find any users who match your search criteria.','ultimate-member') ),
115
- 'conditional' => array( '_um_search', '=', 1 )
116
- )
117
  )
118
  ) )->render_form(); ?>
119
 
1
+ <?php if ( ! defined( 'ABSPATH' ) ) exit;
2
+
3
+ global $post_id; ?>
4
 
5
 
6
  <div class="um-admin-metabox">
7
  <?php
8
+
9
+ $_um_roles_search_value = get_post_meta( $post_id, '_um_roles_can_search', true );
10
+ $_um_roles_search_value = empty( $_um_roles_search_value ) ? array() : $_um_roles_search_value;
11
+
12
+ $_um_roles_filter_value = get_post_meta( $post_id, '_um_roles_can_filter', true );
13
+ $_um_roles_filter_value = empty( $_um_roles_filter_value ) ? array() : $_um_roles_filter_value;
14
 
15
  /**
16
  * UM hook
34
  * ?>
35
  */
36
  $custom_search = apply_filters( 'um_admin_custom_search_filters', array() );
37
+ $searchable_fields = UM()->builtin()->all_user_fields( 'date,time,url' );
38
  $searchable_fields = $searchable_fields + $custom_search;
39
  $user_fields = array();
40
  foreach ( $searchable_fields as $key => $arr ) {
41
+ $user_fields[ $key ] = isset( $arr['title'] ) ? $arr['title'] : '';
42
  }
43
 
44
+ //$post_id = get_the_ID();
45
+ $_um_search_fields = get_post_meta( $post_id, '_um_search_fields', true );
46
+ $_um_search_filters = get_post_meta( $post_id, '_um_search_filters', true );
47
 
48
  UM()->admin_forms( array(
49
+ 'class' => 'um-member-directory-search um-half-column',
50
+ 'prefix_id' => 'um_metadata',
51
+ 'fields' => array(
52
  array(
53
+ 'id' => '_um_search',
54
+ 'type' => 'checkbox',
55
+ 'label' => __( 'Enable Search feature', 'ultimate-member' ),
56
+ 'tooltip' => __( 'If turned on, users will be able to search members in this directory', 'ultimate-member' ),
57
+ 'value' => UM()->query()->get_meta_value( '_um_search' ),
58
  ),
59
  array(
60
+ 'id' => '_um_roles_can_search',
61
+ 'type' => 'multi_checkbox',
62
+ 'label' => __( 'User Roles that can use search', 'ultimate-member' ),
63
+ 'tooltip' => __( 'If you want to allow specific user roles to be able to search only', 'ultimate-member' ),
64
+ 'value' => $_um_roles_search_value,
65
+ 'options' => UM()->roles()->get_roles(),
66
+ 'columns' => 3,
67
  'conditional' => array( '_um_search', '=', 1 )
68
  ),
69
  array(
70
+ 'id' => '_um_filters',
71
+ 'type' => 'checkbox',
72
+ 'label' => __( 'Enable Filters feature', 'ultimate-member' ),
73
+ 'tooltip' => __( 'If turned on, users will be able to filter members in this directory', 'ultimate-member' ),
74
+ 'value' => UM()->query()->get_meta_value( '_um_filters' ),
 
 
 
75
  ),
76
  array(
77
+ 'id' => '_um_roles_can_filter',
78
+ 'type' => 'multi_checkbox',
79
+ 'label' => __( 'User Roles that can use filters', 'ultimate-member' ),
80
+ 'tooltip' => __( 'If you want to allow specific user roles to be able to filter only', 'ultimate-member' ),
81
+ 'value' => $_um_roles_filter_value,
82
+ 'options' => UM()->roles()->get_roles(),
83
+ 'columns' => 3,
84
+ 'conditional' => array( '_um_filters', '=', 1 )
85
  ),
86
  array(
87
+ 'id' => '_um_search_fields',
88
+ 'type' => 'multi_selects',
89
+ 'label' => __( 'Choose filter(s) meta to enable', 'ultimate-member' ),
90
+ 'value' => $_um_search_fields,
91
+ 'conditional' => array( '_um_filters', '=', 1 ),
92
+ 'options' => UM()->member_directory()->filter_fields,
93
+ 'add_text' => __( 'Add New Custom Field', 'ultimate-member' ),
94
+ 'show_default_number' => 1,
95
  ),
96
  array(
97
+ 'id' => '_um_filters_expanded',
98
+ 'type' => 'checkbox',
99
+ 'label' => __( 'Expand the filter bar by default', 'ultimate-member' ),
100
+ 'tooltip' => __( 'If turned on, filters bar will be visible after a page loading and can be collapsed', 'ultimate-member' ),
101
+ 'value' => UM()->query()->get_meta_value( '_um_filters_expanded' ),
102
+ 'conditional' => array( '_um_filters', '=', 1 )
103
  ),
104
  array(
105
+ 'id' => '_um_search_filters',
106
+ 'type' => 'md_default_filters',
107
+ 'label' => __( 'Admin filtering', 'ultimate-member' ),
108
+ 'tooltip' => __( 'Limit which users appear in the member directory e.g only display users from USA', 'ultimate-member' ),
109
+ 'value' => $_um_search_filters,
110
+ 'options' => UM()->member_directory()->filter_fields,
111
+ 'add_text' => __( 'Add New Filter', 'ultimate-member' ),
112
+ 'show_default_number' => 0,
113
  ),
 
 
 
 
 
 
 
 
114
  )
115
  ) )->render_form(); ?>
116
 
includes/admin/templates/directory/sorting.php ADDED
@@ -0,0 +1,54 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php if ( ! defined( 'ABSPATH' ) ) exit;
2
+
3
+ global $post_id;
4
+
5
+
6
+ $_um_sorting_fields = get_post_meta( $post_id, '_um_sorting_fields', true );
7
+ $_um_sorting_fields = empty( $_um_sorting_fields ) ? array() : $_um_sorting_fields; ?>
8
+
9
+ <div class="um-admin-metabox">
10
+
11
+ <?php $fields = array(
12
+ array(
13
+ 'id' => '_um_sortby',
14
+ 'type' => 'select',
15
+ 'label' => __( 'Default sort users by', 'ultimate-member' ),
16
+ 'tooltip' => __( 'Default sorting users by a specific parameter in the directory', 'ultimate-member' ),
17
+ 'options' => UM()->member_directory()->default_sorting,
18
+ 'value' => UM()->query()->get_meta_value( '_um_sortby' ),
19
+ ),
20
+ array(
21
+ 'id' => '_um_sortby_custom',
22
+ 'type' => 'text',
23
+ 'label' => __( 'Meta key', 'ultimate-member' ),
24
+ 'tooltip' => __( 'To sort by a custom field, enter the meta key of field here', 'ultimate-member' ),
25
+ 'value' => UM()->query()->get_meta_value( '_um_sortby_custom', null, 'na' ),
26
+ 'conditional' => array( '_um_sortby', '=', 'other' )
27
+ ),
28
+ array(
29
+ 'id' => '_um_enable_sorting',
30
+ 'type' => 'checkbox',
31
+ 'label' => __( 'Enable custom sorting', 'ultimate-member' ),
32
+ 'tooltip' => __( 'Whether to provide an ability to change the sorting on the directory page', 'ultimate-member' ),
33
+ 'value' => UM()->query()->get_meta_value( '_um_enable_sorting' ),
34
+ ),
35
+ array(
36
+ 'id' => '_um_sorting_fields',
37
+ 'type' => 'multi_selects',
38
+ 'label' => __( 'Choose field(s) to enable in sorting', 'ultimate-member' ),
39
+ 'value' => $_um_sorting_fields,
40
+ 'options' => UM()->member_directory()->sort_fields,
41
+ 'add_text' => __( 'Add New Field', 'ultimate-member' ),
42
+ 'show_default_number' => 1,
43
+ 'conditional' => array( '_um_enable_sorting', '=', 1 )
44
+ )
45
+ );
46
+
47
+ UM()->admin_forms( array(
48
+ 'class' => 'um-member-directory-sorting um-half-column',
49
+ 'prefix_id' => 'um_metadata',
50
+ 'fields' => $fields
51
+ ) )->render_form(); ?>
52
+
53
+ <div class="um-admin-clear"></div>
54
+ </div>
includes/admin/templates/form/profile_customize.php CHANGED
@@ -16,14 +16,14 @@
16
  'prefix_id' => 'form',
17
  'fields' => array(
18
  array(
19
- 'id' => '_um_profile_use_custom_settings',
20
- 'type' => 'select',
21
- 'label' => __( 'Apply custom settings to this form', 'ultimate-member' ),
22
- 'tooltip' => __( 'Switch to yes if you want to customize this form settings, styling &amp; appearance', 'ultimate-member' ),
23
- 'value' => UM()->query()->get_meta_value( '_um_profile_use_custom_settings', null, 0 ),
24
- 'options' => array(
25
- 0 => __( 'No', 'ultimate-member' ),
26
- 1 => __( 'Yes', 'ultimate-member' ),
27
  ),
28
  ),
29
  array(
@@ -37,93 +37,102 @@
37
  'conditional' => array( '_um_profile_use_custom_settings', '=', 1 )
38
  ),
39
  array(
40
- 'id' => '_um_profile_template',
41
- 'type' => 'select',
42
- 'label' => __( 'Template', 'ultimate-member' ),
43
- 'value' => UM()->query()->get_meta_value( '_um_profile_template', null, UM()->options()->get( 'profile_template' ) ),
44
- 'options' => UM()->shortcodes()->get_templates( 'profile' ),
45
- 'conditional' => array( '_um_profile_use_custom_settings', '=', 1 )
46
  ),
47
  array(
48
- 'id' => '_um_profile_max_width',
49
- 'type' => 'text',
50
- 'label' => __( 'Max. Width (px)', 'ultimate-member' ),
51
- 'tooltip' => __( 'The maximum width of shortcode in pixels e.g. 600px', 'ultimate-member' ),
52
- 'value' => UM()->query()->get_meta_value('_um_profile_max_width', null, UM()->options()->get( 'profile_max_width' ) ),
53
- 'conditional' => array( '_um_profile_use_custom_settings', '=', 1 )
54
  ),
55
  array(
56
- 'id' => '_um_profile_area_max_width',
57
- 'type' => 'text',
58
- 'label' => __( 'Profile Area Max. Width (px)', 'ultimate-member' ),
59
- 'tooltip' => __( 'The maximum width of the profile area inside profile (below profile header)', 'ultimate-member' ),
60
- 'value' => UM()->query()->get_meta_value('_um_profile_area_max_width', null, UM()->options()->get( 'profile_area_max_width' ) ),
61
- 'conditional' => array( '_um_profile_use_custom_settings', '=', 1 )
62
  ),
63
  array(
64
- 'id' => '_um_profile_icons',
65
- 'type' => 'select',
66
- 'label' => __( 'Field Icons', 'ultimate-member' ),
67
- 'tooltip' => __( 'Whether to show field icons and where to show them relative to the field', 'ultimate-member' ),
68
- 'value' => UM()->query()->get_meta_value( '_um_profile_icons', null, UM()->options()->get( 'profile_icons' ) ) ,
69
- 'options' => array(
70
  'field' => __( 'Show inside text field', 'ultimate-member' ),
71
  'label' => __( 'Show with label', 'ultimate-member' ),
72
- 'off' => __( 'Turn off', 'ultimate-member' )
73
  ),
74
- 'conditional' => array( '_um_profile_use_custom_settings', '=', 1 )
75
  ),
76
  array(
77
- 'id' => '_um_profile_primary_btn_word',
78
- 'type' => 'text',
79
- 'label' => __( 'Primary Button Text', 'ultimate-member' ),
80
- 'tooltip' => __( 'Customize the button text', 'ultimate-member' ),
81
- 'value' => UM()->query()->get_meta_value( '_um_profile_primary_btn_word', null, UM()->options()->get( 'profile_primary_btn_word' ) ),
82
- 'conditional' => array( '_um_profile_use_custom_settings', '=', 1 )
83
  ),
84
  array(
85
- 'id' => '_um_profile_secondary_btn',
86
- 'type' => 'select',
87
- 'label' => __( 'Show Secondary Button', 'ultimate-member' ),
88
- 'value' => UM()->query()->get_meta_value( '_um_profile_secondary_btn', null, UM()->options()->get( 'profile_secondary_btn' ) ),
89
- 'conditional' => array( '_um_profile_use_custom_settings', '=', 1 ),
90
- 'options' => array(
91
- 0 => __( 'No', 'ultimate-member' ),
92
- 1 => __( 'Yes', 'ultimate-member' ),
93
- ),
94
  ),
95
- array(
96
- 'id' => '_um_profile_secondary_btn_word',
97
- 'type' => 'text',
98
- 'label' => __( 'Secondary Button Text', 'ultimate-member' ),
99
- 'tooltip' => __( 'Customize the button text', 'ultimate-member' ),
100
- 'value' => UM()->query()->get_meta_value( '_um_profile_secondary_btn_word', null, UM()->options()->get( 'profile_secondary_btn_word' ) ),
101
- 'conditional' => array( '_um_profile_secondary_btn', '=', 1 )
102
  ),
103
  array(
104
- 'id' => '_um_profile_cover_enabled',
105
- 'type' => 'select',
106
- 'label' => __( 'Enable Cover Photos', 'ultimate-member' ),
107
- 'value' => UM()->query()->get_meta_value( '_um_profile_cover_enabled', null, 1 ),
108
- 'conditional' => array( '_um_profile_use_custom_settings', '=', 1 ),
109
- 'options' => array(
110
- 0 => __( 'No', 'ultimate-member' ),
111
- 1 => __( 'Yes', 'ultimate-member' ),
112
- ),
113
  ),
114
  array(
115
- 'id' => '_um_profile_cover_ratio',
116
- 'type' => 'select',
117
- 'label' => __( 'Cover photo ratio', 'ultimate-member' ),
118
- 'tooltip' => __( 'The shortcode is centered by default unless you specify otherwise here', 'ultimate-member' ),
119
- 'value' => UM()->query()->get_meta_value( '_um_profile_cover_ratio', null, UM()->options()->get( 'profile_cover_ratio' ) ),
120
- 'options' => array(
121
- '1.6:1' => '1.6:1',
122
- '2.7:1' => '2.7:1',
123
- '2.2:1' => '2.2:1',
124
- '3.2:1' => '3.2:1'
 
 
 
 
 
 
 
 
 
125
  ),
126
- 'conditional' => array( '_um_profile_cover_enabled', '=', 1 )
127
  ),
128
  array(
129
  'id' => '_um_profile_disable_photo_upload',
@@ -139,10 +148,11 @@
139
  ),
140
  array(
141
  'id' => '_um_profile_photosize',
142
- 'type' => 'text',
143
  'label' => __( 'Profile Photo Size', 'ultimate-member' ),
144
  'tooltip' => __( 'Set the profile photo size in pixels here', 'ultimate-member' ),
145
  'value' => UM()->query()->get_meta_value( '_um_profile_photosize', null, UM()->options()->get( 'profile_photosize' ) ),
 
146
  'conditional' => array( '_um_profile_use_custom_settings', '=', 1 )
147
  ),
148
  array(
16
  'prefix_id' => 'form',
17
  'fields' => array(
18
  array(
19
+ 'id' => '_um_profile_use_custom_settings',
20
+ 'type' => 'select',
21
+ 'label' => __( 'Apply custom settings to this form', 'ultimate-member' ),
22
+ 'tooltip' => __( 'Switch to yes if you want to customize this form settings, styling &amp; appearance', 'ultimate-member' ),
23
+ 'value' => UM()->query()->get_meta_value( '_um_profile_use_custom_settings', null, 0 ),
24
+ 'options' => array(
25
+ 0 => __( 'No', 'ultimate-member' ),
26
+ 1 => __( 'Yes', 'ultimate-member' ),
27
  ),
28
  ),
29
  array(
37
  'conditional' => array( '_um_profile_use_custom_settings', '=', 1 )
38
  ),
39
  array(
40
+ 'id' => '_um_profile_template',
41
+ 'type' => 'select',
42
+ 'label' => __( 'Template', 'ultimate-member' ),
43
+ 'value' => UM()->query()->get_meta_value( '_um_profile_template', null, UM()->options()->get( 'profile_template' ) ),
44
+ 'options' => UM()->shortcodes()->get_templates( 'profile' ),
45
+ 'conditional' => array( '_um_profile_use_custom_settings', '=', 1 )
46
  ),
47
  array(
48
+ 'id' => '_um_profile_max_width',
49
+ 'type' => 'text',
50
+ 'label' => __( 'Max. Width (px)', 'ultimate-member' ),
51
+ 'tooltip' => __( 'The maximum width of shortcode in pixels e.g. 600px', 'ultimate-member' ),
52
+ 'value' => UM()->query()->get_meta_value('_um_profile_max_width', null, UM()->options()->get( 'profile_max_width' ) ),
53
+ 'conditional' => array( '_um_profile_use_custom_settings', '=', 1 )
54
  ),
55
  array(
56
+ 'id' => '_um_profile_area_max_width',
57
+ 'type' => 'text',
58
+ 'label' => __( 'Profile Area Max. Width (px)', 'ultimate-member' ),
59
+ 'tooltip' => __( 'The maximum width of the profile area inside profile (below profile header)', 'ultimate-member' ),
60
+ 'value' => UM()->query()->get_meta_value('_um_profile_area_max_width', null, UM()->options()->get( 'profile_area_max_width' ) ),
61
+ 'conditional' => array( '_um_profile_use_custom_settings', '=', 1 )
62
  ),
63
  array(
64
+ 'id' => '_um_profile_icons',
65
+ 'type' => 'select',
66
+ 'label' => __( 'Field Icons', 'ultimate-member' ),
67
+ 'tooltip' => __( 'Whether to show field icons and where to show them relative to the field', 'ultimate-member' ),
68
+ 'value' => UM()->query()->get_meta_value( '_um_profile_icons', null, UM()->options()->get( 'profile_icons' ) ) ,
69
+ 'options' => array(
70
  'field' => __( 'Show inside text field', 'ultimate-member' ),
71
  'label' => __( 'Show with label', 'ultimate-member' ),
72
+ 'off' => __( 'Turn off', 'ultimate-member' )
73
  ),
74
+ 'conditional' => array( '_um_profile_use_custom_settings', '=', 1 )
75
  ),
76
  array(
77
+ 'id' => '_um_profile_primary_btn_word',
78
+ 'type' => 'text',
79
+ 'label' => __( 'Primary Button Text', 'ultimate-member' ),
80
+ 'tooltip' => __( 'Customize the button text', 'ultimate-member' ),
81
+ 'value' => UM()->query()->get_meta_value( '_um_profile_primary_btn_word', null, UM()->options()->get( 'profile_primary_btn_word' ) ),
82
+ 'conditional' => array( '_um_profile_use_custom_settings', '=', 1 )
83
  ),
84
  array(
85
+ 'id' => '_um_profile_secondary_btn',
86
+ 'type' => 'select',
87
+ 'label' => __( 'Show Secondary Button', 'ultimate-member' ),
88
+ 'value' => UM()->query()->get_meta_value( '_um_profile_secondary_btn', null, UM()->options()->get( 'profile_secondary_btn' ) ),
89
+ 'conditional' => array( '_um_profile_use_custom_settings', '=', 1 ),
90
+ 'options' => array(
91
+ 0 => __( 'No', 'ultimate-member' ),
92
+ 1 => __( 'Yes', 'ultimate-member' ),
93
+ ),
94
  ),
95
+ array(
96
+ 'id' => '_um_profile_secondary_btn_word',
97
+ 'type' => 'text',
98
+ 'label' => __( 'Secondary Button Text', 'ultimate-member' ),
99
+ 'tooltip' => __( 'Customize the button text', 'ultimate-member' ),
100
+ 'value' => UM()->query()->get_meta_value( '_um_profile_secondary_btn_word', null, UM()->options()->get( 'profile_secondary_btn_word' ) ),
101
+ 'conditional' => array( '_um_profile_secondary_btn', '=', 1 )
102
  ),
103
  array(
104
+ 'id' => '_um_profile_cover_enabled',
105
+ 'type' => 'select',
106
+ 'label' => __( 'Enable Cover Photos', 'ultimate-member' ),
107
+ 'value' => UM()->query()->get_meta_value( '_um_profile_cover_enabled', null, 1 ),
108
+ 'conditional' => array( '_um_profile_use_custom_settings', '=', 1 ),
109
+ 'options' => array(
110
+ 0 => __( 'No', 'ultimate-member' ),
111
+ 1 => __( 'Yes', 'ultimate-member' ),
112
+ ),
113
  ),
114
  array(
115
+ 'id' => '_um_profile_coversize',
116
+ 'type' => 'select',
117
+ 'label' => __( 'Cover Photo Size', 'ultimate-member' ),
118
+ 'tooltip' => __( 'Set the profile photo size in pixels here', 'ultimate-member' ),
119
+ 'value' => UM()->query()->get_meta_value( '_um_profile_coversize', null, UM()->options()->get( 'profile_coversize' ) ),
120
+ 'options' => UM()->files()->get_profile_photo_size( 'cover_thumb_sizes' ),
121
+ 'conditional' => array( '_um_profile_cover_enabled', '=', 1 )
122
+ ),
123
+ array(
124
+ 'id' => '_um_profile_cover_ratio',
125
+ 'type' => 'select',
126
+ 'label' => __( 'Cover photo ratio', 'ultimate-member' ),
127
+ 'tooltip' => __( 'The shortcode is centered by default unless you specify otherwise here', 'ultimate-member' ),
128
+ 'value' => UM()->query()->get_meta_value( '_um_profile_cover_ratio', null, UM()->options()->get( 'profile_cover_ratio' ) ),
129
+ 'options' => array(
130
+ '1.6:1' => '1.6:1',
131
+ '2.7:1' => '2.7:1',
132
+ '2.2:1' => '2.2:1',
133
+ '3.2:1' => '3.2:1'
134
  ),
135
+ 'conditional' => array( '_um_profile_cover_enabled', '=', 1 )
136
  ),
137
  array(
138
  'id' => '_um_profile_disable_photo_upload',
148
  ),
149
  array(
150
  'id' => '_um_profile_photosize',
151
+ 'type' => 'select',
152
  'label' => __( 'Profile Photo Size', 'ultimate-member' ),
153
  'tooltip' => __( 'Set the profile photo size in pixels here', 'ultimate-member' ),
154
  'value' => UM()->query()->get_meta_value( '_um_profile_photosize', null, UM()->options()->get( 'profile_photosize' ) ),
155
+ 'options' => UM()->files()->get_profile_photo_size( 'photo_thumb_sizes' ),
156
  'conditional' => array( '_um_profile_use_custom_settings', '=', 1 )
157
  ),
158
  array(
includes/class-config.php CHANGED
@@ -138,26 +138,46 @@ if ( ! class_exists( 'um\Config' ) ) {
138
  ) );
139
 
140
  $this->core_directory_meta['members'] = array(
141
- '_um_template' => 'members',
142
- '_um_mode' => 'directory',
143
- '_um_has_profile_photo' => 0,
144
- '_um_has_cover_photo' => 0,
145
- '_um_show_social' => 0,
146
- '_um_show_userinfo' => 0,
147
- '_um_show_tagline' => 0,
148
- '_um_search' => 0,
149
- '_um_userinfo_animate' => '1',
150
- '_um_sortby' => 'user_registered_desc',
151
- '_um_profile_photo' => '1',
152
- '_um_cover_photos' => '1',
153
- '_um_show_name' => '1',
154
- '_um_search_filters' => '',
155
- '_um_directory_header' => __('{total_users} Members','ultimate-member'),
156
- '_um_directory_header_single' => __('{total_users} Member','ultimate-member'),
157
- '_um_directory_no_users' => __('We are sorry. We cannot find any users who match your search criteria.','ultimate-member'),
158
- '_um_profiles_per_page' => 12,
159
- '_um_profiles_per_page_mobile' => 6,
160
- '_um_core' => 'members',
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
161
  );
162
 
163
  $this->core_global_meta_all = array(
@@ -205,51 +225,58 @@ if ( ! class_exists( 'um\Config' ) ) {
205
  * ?>
206
  */
207
  $this->core_form_meta_all = apply_filters( 'um_core_form_meta_all', array(
208
- '_um_profile_show_name' => 1,
209
- '_um_profile_show_social_links' => 0,
210
- '_um_profile_show_bio' => 1,
211
- 'profile_show_html_bio' => 0,
212
- '_um_profile_bio_maxchars' => 180,
213
- '_um_profile_header_menu' => 'bc',
214
- '_um_profile_empty_text' => 1,
215
- '_um_profile_empty_text_emo' => 1,
216
- '_um_profile_role' => array(),
217
- '_um_profile_template' => 'profile',
218
- '_um_profile_max_width' => '1000px',
219
- '_um_profile_area_max_width' => '600px',
220
- '_um_profile_align' => 'center',
221
- '_um_profile_icons' => 'label',
222
- '_um_profile_cover_enabled' => 1,
223
- '_um_profile_disable_photo_upload' => 0,
224
- '_um_profile_cover_ratio' => '2.7:1',
225
- '_um_profile_photosize' => '190px',
226
- '_um_profile_photocorner' => '1',
227
- '_um_profile_header_bg' => '',
228
- '_um_profile_primary_btn_word' => 'Update Profile',
229
- '_um_profile_secondary_btn' => '1',
230
- '_um_profile_secondary_btn_word' => 'Cancel',
231
- '_um_register_role' => '0',
232
- '_um_register_template' => 'register',
233
- '_um_register_max_width' => '450px',
234
- '_um_register_align' => 'center',
235
- '_um_register_icons' => 'label',
236
- '_um_register_primary_btn_word' => __('Register','ultimate-member'),
237
- '_um_register_secondary_btn' => 1,
238
- '_um_register_secondary_btn_word' => __('Login','ultimate-member'),
239
- '_um_register_secondary_btn_url' => '',
240
- '_um_login_template' => 'login',
241
- '_um_login_max_width' => '450px',
242
- '_um_login_align' => 'center',
243
- '_um_login_icons' => 'label',
244
- '_um_login_primary_btn_word' => __('Login','ultimate-member'),
245
- '_um_login_forgot_pass_link' => 1,
246
- '_um_login_show_rememberme' => 1,
247
- '_um_login_secondary_btn' => 1,
248
- '_um_login_secondary_btn_word' => __('Register','ultimate-member'),
249
- '_um_login_secondary_btn_url' => '',
250
- '_um_directory_template' => 'members',
251
- '_um_directory_header' => __('{total_users} Members','ultimate-member'),
252
- '_um_directory_header_single' => __('{total_users} Member','ultimate-member'),
 
 
 
 
 
 
 
253
  ) );
254
 
255
  $this->core_form_meta['register'] = array(
@@ -540,7 +567,8 @@ if ( ! class_exists( 'um\Config' ) ) {
540
  'cover_photo_max_size' => 999999999,
541
  'custom_roles_increment' => 1,
542
  'um_profile_object_cache_stop' => 0,
543
- 'rest_api_version' => '2.0'
 
544
  );
545
 
546
  add_filter( 'um_get_tabs_from_config', '__return_true' );
138
  ) );
139
 
140
  $this->core_directory_meta['members'] = array(
141
+ '_um_core' => 'members',
142
+ '_um_template' => 'members',
143
+ '_um_mode' => 'directory',
144
+ '_um_view_types' => array( 'grid' ),
145
+ '_um_default_view' => 'grid',
146
+ '_um_roles' => array(),
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' => '',
153
+ '_um_enable_sorting' => 0,
154
+ '_um_sorting_fields' => array(),
155
+
156
+ '_um_profile_photo' => '1',
157
+ '_um_cover_photos' => '1',
158
+ '_um_show_name' => '1',
159
+ '_um_show_tagline' => 0,
160
+ '_um_tagline_fields' => array(),
161
+ '_um_show_userinfo' => 0,
162
+ '_um_reveal_fields' => array(),
163
+ '_um_show_social' => 0,
164
+ '_um_userinfo_animate' => '1',
165
+
166
+ '_um_search' => 0,
167
+ '_um_roles_can_search' => array(),
168
+ '_um_filters' => 0,
169
+ '_um_roles_can_filter' => array(),
170
+ '_um_search_fields' => array(),
171
+ '_um_filters_expanded' => 0,
172
+ '_um_search_filters' => array(),
173
+
174
+ '_um_must_search' => 0,
175
+ '_um_max_users' => '',
176
+ '_um_profiles_per_page' => 12,
177
+ '_um_profiles_per_page_mobile' => 6,
178
+ '_um_directory_header' => __( '{total_users} Members', 'ultimate-member' ),
179
+ '_um_directory_header_single' => __( '{total_users} Member', 'ultimate-member' ),
180
+ '_um_directory_no_users' => __( 'We are sorry. We cannot find any users who match your search criteria.', 'ultimate-member' ),
181
  );
182
 
183
  $this->core_global_meta_all = array(
225
  * ?>
226
  */
227
  $this->core_form_meta_all = apply_filters( 'um_core_form_meta_all', array(
228
+ /*Profile Form*/
229
+ '_um_profile_show_name' => 1,
230
+ '_um_profile_show_social_links' => 0,
231
+ '_um_profile_show_bio' => 1,
232
+ '_um_profile_bio_maxchars' => 180,
233
+ '_um_profile_header_menu' => 'bc',
234
+ '_um_profile_empty_text' => 1,
235
+ '_um_profile_empty_text_emo' => 1,
236
+ '_um_profile_role' => array(),
237
+ '_um_profile_template' => 'profile',
238
+ '_um_profile_max_width' => '1000px',
239
+ '_um_profile_area_max_width' => '600px',
240
+ '_um_profile_align' => 'center',
241
+ '_um_profile_icons' => 'label',
242
+ '_um_profile_disable_photo_upload' => 0,
243
+ '_um_profile_photosize' => '190',
244
+ '_um_profile_cover_enabled' => 1,
245
+ '_um_profile_coversize' => 'original',
246
+ '_um_profile_cover_ratio' => '2.7:1',
247
+ '_um_profile_photocorner' => '1',
248
+ '_um_profile_header_bg' => '',
249
+ '_um_profile_primary_btn_word' => __( 'Update Profile', 'ultimate-member' ),
250
+ '_um_profile_secondary_btn' => '1',
251
+ '_um_profile_secondary_btn_word' => __( 'Cancel', 'ultimate-member' ),
252
+
253
+ /*Registration Form*/
254
+ '_um_register_role' => '0',
255
+ '_um_register_template' => 'register',
256
+ '_um_register_max_width' => '450px',
257
+ '_um_register_align' => 'center',
258
+ '_um_register_icons' => 'label',
259
+ '_um_register_primary_btn_word' => __( 'Register', 'ultimate-member' ),
260
+ '_um_register_secondary_btn' => 1,
261
+ '_um_register_secondary_btn_word' => __( 'Login', 'ultimate-member' ),
262
+ '_um_register_secondary_btn_url' => '',
263
+
264
+ /*Login Form*/
265
+ '_um_login_template' => 'login',
266
+ '_um_login_max_width' => '450px',
267
+ '_um_login_align' => 'center',
268
+ '_um_login_icons' => 'label',
269
+ '_um_login_primary_btn_word' => __( 'Login', 'ultimate-member' ),
270
+ '_um_login_forgot_pass_link' => 1,
271
+ '_um_login_show_rememberme' => 1,
272
+ '_um_login_secondary_btn' => 1,
273
+ '_um_login_secondary_btn_word' => __( 'Register', 'ultimate-member' ),
274
+ '_um_login_secondary_btn_url' => '',
275
+
276
+ /*Member Directory*/
277
+ '_um_directory_template' => 'members',
278
+ '_um_directory_header' => __( '{total_users} Members', 'ultimate-member' ),
279
+ '_um_directory_header_single' => __( '{total_users} Member', 'ultimate-member' ),
280
  ) );
281
 
282
  $this->core_form_meta['register'] = array(
567
  'cover_photo_max_size' => 999999999,
568
  'custom_roles_increment' => 1,
569
  'um_profile_object_cache_stop' => 0,
570
+ 'rest_api_version' => '2.0',
571
+ 'profile_show_html_bio' => 0,
572
  );
573
 
574
  add_filter( 'um_get_tabs_from_config', '__return_true' );
includes/class-dependencies.php CHANGED
@@ -1,9 +1,10 @@
1
  <?php
2
  namespace um;
3
 
4
- // Exit if executed directly
5
  if ( ! defined( 'ABSPATH' ) ) exit;
6
 
 
7
  /**
8
  * Ultimate Member Dependency Checker
9
  *
@@ -32,40 +33,49 @@ if ( ! class_exists( 'um\Dependencies' ) ) {
32
  * @var array
33
  */
34
  public $ext_required_version = array(
35
- 'bbpress' => '2.0.1',
36
- 'followers' => '2.0.1',
37
- 'friends' => '2.0.1',
38
- 'groups' => '2.0',
39
- 'instagram' => '2.0',
40
- 'invitations' => '2.0',
41
- 'frontend-posting' => '1.0',
42
- 'mailchimp' => '2.0.1',
43
- 'messaging' => '2.0.5',
44
- 'mycred' => '2.0',
45
- 'notices' => '2.0.1',
46
- 'notifications' => '2.0.1',
47
- 'online' => '2.0',
48
- 'private-content' => '2.0',
49
- 'profile-completeness' => '2.0.1',
50
- 'recaptcha' => '2.0.2',
51
- 'reviews' => '2.0.3',
52
- 'social-activity' => '2.0.6',
53
- 'social-login' => '2.0.1',
54
- 'terms-conditions' => '2.0',
55
- 'user-location' => '2.0',
56
- 'user-tags' => '2.0',
57
- 'verified-users' => '2.0.1',
58
- 'woocommerce' => '2.0.1',
 
 
 
59
  'restrict-content' => '2.0',
60
- 'beaver-builder' => '2.0',
61
- 'user-photos' => '2.0.1',
 
 
 
 
 
 
62
  'user-exporter' => '1.0.0',
63
- 'user-events' => '1.0.0',
 
 
64
  'filesharing' => '1.0.0',
65
- 'user-notes' => '2.0',
66
- 'user-bookmarks' => '2.0',
67
- 'unsplash' => '2.0',
68
- 'forumwp' => '2.0.1',
69
  );
70
 
71
 
1
  <?php
2
  namespace um;
3
 
4
+
5
  if ( ! defined( 'ABSPATH' ) ) exit;
6
 
7
+
8
  /**
9
  * Ultimate Member Dependency Checker
10
  *
33
  * @var array
34
  */
35
  public $ext_required_version = array(
36
+ 'bbpress' => '2.0.7',
37
+ 'followers' => '2.1.6',
38
+ 'forumwp' => '2.0.4',
39
+ 'friends' => '2.1.4',
40
+ 'groups' => '2.1.7',
41
+ 'instagram' => '2.0.5',
42
+ 'mailchimp' => '2.2.0',
43
+ 'messaging' => '2.2.5',
44
+ 'mycred' => '2.1.6',
45
+ 'notices' => '2.0.5',
46
+ 'notifications' => '2.1.3',
47
+ 'online' => '2.1.1',
48
+ 'private-content' => '2.0.5',
49
+ 'profile-completeness' => '2.1.2',
50
+ 'recaptcha' => '2.1.2',
51
+ 'reviews' => '2.1.5',
52
+ 'social-activity' => '2.2.0',
53
+ 'social-login' => '2.2.0',
54
+ 'terms-conditions' => '2.1.1',
55
+ 'unsplash' => '2.0.2',
56
+ 'user-bookmarks' => '2.0.2',
57
+ 'user-photos' => '2.0.4',
58
+ 'user-tags' => '2.1.0',
59
+ 'verified-users' => '2.0.5',
60
+ 'woocommerce' => '2.1.9',
61
+
62
+ /*????*/
63
  'restrict-content' => '2.0',
64
+
65
+ /*rc*/
66
+ 'user-notes' => '2.0',
67
+ 'profile-tabs' => '1.6',
68
+
69
+ /*beta*/
70
+ 'frontend-posting' => '1.0',
71
+ /*alpha*/
72
  'user-exporter' => '1.0.0',
73
+
74
+ /*in development*/
75
+ 'user-location' => '1.0',
76
  'filesharing' => '1.0.0',
77
+ 'beaver-builder' => '2.0',
78
+ 'user-events' => '1.0.0',
 
 
79
  );
80
 
81
 
includes/class-extensions.php CHANGED
@@ -57,13 +57,13 @@ if ( ! class_exists( 'um\Extensions' ) ) {
57
  $compare_version_result = UM()->dependencies()->compare_versions( $extension['min_core_version'], $extension['version'], $slug, $extension['title'] );
58
 
59
  if ( true !== $compare_version_result ) {
60
- UM()->notices()->add_notice( "{$slug}_dependencies", array(
61
  'class' => 'error',
62
  'message' => '<p>' . $compare_version_result . '</p>',
63
  ), 1 );
64
  }
65
  } elseif ( ! $run && ! empty( $message ) ) {
66
- UM()->notices()->add_notice( "{$slug}_dependencies", array(
67
  'class' => 'error',
68
  'message' => $message,
69
  ), 1 );
57
  $compare_version_result = UM()->dependencies()->compare_versions( $extension['min_core_version'], $extension['version'], $slug, $extension['title'] );
58
 
59
  if ( true !== $compare_version_result ) {
60
+ UM()->admin()->notices()->add_notice( "{$slug}_dependencies", array(
61
  'class' => 'error',
62
  'message' => '<p>' . $compare_version_result . '</p>',
63
  ), 1 );
64
  }
65
  } elseif ( ! $run && ! empty( $message ) ) {
66
+ UM()->admin()->notices()->add_notice( "{$slug}_dependencies", array(
67
  'class' => 'error',
68
  'message' => $message,
69
  ), 1 );
includes/class-functions.php CHANGED
@@ -32,6 +32,16 @@ if ( ! class_exists( 'UM_Functions' ) ) {
32
  }
33
 
34
 
 
 
 
 
 
 
 
 
 
 
35
  /**
36
  * Check frontend nonce
37
  *
@@ -168,7 +178,8 @@ if ( ! class_exists( 'UM_Functions' ) ) {
168
 
169
  $path = '';
170
  if ( $basename ) {
171
- $array = explode( '/', trim( $basename, '/' ) );
 
172
  $path = $array[0];
173
  }
174
 
@@ -276,7 +287,7 @@ if ( ! class_exists( 'UM_Functions' ) ) {
276
  function locate_template( $template_name, $path = '' ) {
277
  // check if there is template at theme folder
278
  $template = locate_template( array(
279
- trailingslashit( 'ultimate-member/' . $path ) . $template_name
280
  ) );
281
 
282
  if ( ! $template ) {
@@ -285,7 +296,7 @@ if ( ! class_exists( 'UM_Functions' ) ) {
285
  } else {
286
  $template = trailingslashit( um_path );
287
  }
288
- $template .= 'templates/' . $template_name;
289
  }
290
 
291
 
@@ -364,5 +375,21 @@ if ( ! class_exists( 'UM_Functions' ) ) {
364
 
365
  return $array;
366
  }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
367
  }
368
  }
32
  }
33
 
34
 
35
+ /**
36
+ * Check if AJAX now
37
+ *
38
+ * @return bool
39
+ */
40
+ function is_ajax() {
41
+ return function_exists( 'wp_doing_ajax' ) ? wp_doing_ajax() : defined( 'DOING_AJAX' );
42
+ }
43
+
44
+
45
  /**
46
  * Check frontend nonce
47
  *
178
 
179
  $path = '';
180
  if ( $basename ) {
181
+ // use '/' instead of "DIRECTORY_SEPARATOR", because wp_normalize_path makes the correct replace
182
+ $array = explode( '/', wp_normalize_path( trim( $basename ) ) );
183
  $path = $array[0];
184
  }
185
 
287
  function locate_template( $template_name, $path = '' ) {
288
  // check if there is template at theme folder
289
  $template = locate_template( array(
290
+ trailingslashit( 'ultimate-member' . DIRECTORY_SEPARATOR . $path ) . $template_name
291
  ) );
292
 
293
  if ( ! $template ) {
296
  } else {
297
  $template = trailingslashit( um_path );
298
  }
299
+ $template .= 'templates' . DIRECTORY_SEPARATOR . $template_name;
300
  }
301
 
302
 
375
 
376
  return $array;
377
  }
378
+
379
+
380
+ /**
381
+ * @since 2.1.0
382
+ *
383
+ * @param $var
384
+ * @return array|string
385
+ */
386
+ function clean_array( $var ) {
387
+ if ( is_array( $var ) ) {
388
+ return array_map( array( $this, 'clean_array' ), $var );
389
+ } else {
390
+ return is_scalar( $var ) ? sanitize_text_field( $var ) : $var;
391
+ }
392
+ }
393
+
394
  }
395
  }
includes/class-init.php CHANGED
@@ -13,23 +13,23 @@ if ( ! class_exists( 'UM' ) ) {
13
  * @method UM_Followers_API Followers_API()
14
  * @method UM_Friends_API Friends_API()
15
  * @method UM_Instagram_API Instagram_API()
16
- * @method UM_Mailchimp_API Mailchimp_API()
17
  * @method UM_Messaging_API Messaging_API()
18
- * @method UM_myCRED_API myCRED_API()
19
- * @method UM_Notices_API Notices_API()
20
  * @method UM_Notifications_API Notifications_API()
21
  * @method UM_Online Online()
22
  * @method UM_Profile_Completeness_API Profile_Completeness_API()
23
  * @method UM_reCAPTCHA reCAPTCHA()
24
- * @method UM_Reviews_API Reviews_API()
25
  * @method UM_Activity_API Activity_API()
26
  * @method UM_Social_Login_API Social_Login_API()
27
- * @method UM_User_Tags_API User_Tags_API()
28
  * @method UM_Verified_Users_API Verified_Users_API()
29
  * @method UM_WooCommerce_API WooCommerce_API()
30
  * @method UM_Terms_Conditions Terms_Conditions()
31
- * @method UM_Private_Content_API Private_Content_API()
32
- * @method UM_User_Location_API User_Location_API()
33
  * @method UM_Photos_API Photos_API()
34
  * @method UM_Groups Groups()
35
  * @method UM_Frontend_Posting Frontend_Posting()
@@ -517,9 +517,10 @@ if ( ! class_exists( 'UM' ) ) {
517
  $this->admin_upgrade()->init_packages_ajax_handlers();
518
  $this->admin_gdpr();
519
  $this->columns();
520
- $this->notices();
521
  $this->admin_navmenu();
522
  $this->theme_updater();
 
523
  } elseif ( $this->is_request( 'admin' ) ) {
524
  $this->admin();
525
  $this->admin_menu();
@@ -528,7 +529,7 @@ if ( ! class_exists( 'UM' ) ) {
528
  $this->columns();
529
  $this->admin_enqueue();
530
  $this->metabox();
531
- $this->notices();
532
  $this->users();
533
  $this->dragdrop();
534
  $this->plugin_updater();
@@ -543,7 +544,6 @@ if ( ! class_exists( 'UM' ) ) {
543
  $this->register();
544
  $this->user_posts();
545
  $this->access();
546
- $this->members();
547
  $this->logout();
548
  }
549
 
@@ -563,6 +563,7 @@ if ( ! class_exists( 'UM' ) ) {
563
  $this->mobile();
564
  $this->external_integrations();
565
  $this->gdpr();
 
566
 
567
  //if multisite networks active
568
  if ( is_multisite() ) {
@@ -572,6 +573,19 @@ if ( ! class_exists( 'UM' ) ) {
572
  }
573
 
574
 
 
 
 
 
 
 
 
 
 
 
 
 
 
575
  /**
576
  * Get extension API
577
  *
@@ -841,19 +855,6 @@ if ( ! class_exists( 'UM' ) ) {
841
  }
842
 
843
 
844
- /**
845
- * @since 2.0
846
- *
847
- * @return um\admin\core\Admin_Notices()
848
- */
849
- function notices() {
850
- if ( empty( $this->classes['admin_notices'] ) ) {
851
- $this->classes['admin_notices'] = new um\admin\core\Admin_Notices();
852
- }
853
- return $this->classes['admin_notices'];
854
- }
855
-
856
-
857
  /**
858
  * @since 2.0
859
  *
@@ -1322,11 +1323,15 @@ if ( ! class_exists( 'UM' ) ) {
1322
 
1323
 
1324
  /**
 
 
1325
  * @since 2.0
1326
  *
1327
  * @return um\core\Members
1328
  */
1329
  function members() {
 
 
1330
  if ( empty( $this->classes['members'] ) ) {
1331
  $this->classes['members'] = new um\core\Members();
1332
  }
@@ -1438,7 +1443,6 @@ if ( ! class_exists( 'UM' ) ) {
1438
  require_once 'core/um-actions-register.php';
1439
  require_once 'core/um-actions-profile.php';
1440
  require_once 'core/um-actions-account.php';
1441
- require_once 'core/um-actions-members.php';
1442
  require_once 'core/um-actions-global.php';
1443
  require_once 'core/um-actions-user.php';
1444
  require_once 'core/um-actions-save-profile.php';
@@ -1450,7 +1454,9 @@ if ( ! class_exists( 'UM' ) ) {
1450
  require_once 'core/um-filters-navmenu.php';
1451
  require_once 'core/um-filters-avatars.php';
1452
  require_once 'core/um-filters-user.php';
1453
- require_once 'core/um-filters-members.php';
 
 
1454
  require_once 'core/um-filters-profile.php';
1455
  require_once 'core/um-filters-account.php';
1456
  require_once 'core/um-filters-misc.php';
13
  * @method UM_Followers_API Followers_API()
14
  * @method UM_Friends_API Friends_API()
15
  * @method UM_Instagram_API Instagram_API()
16
+ * @method UM_Mailchimp Mailchimp()
17
  * @method UM_Messaging_API Messaging_API()
18
+ * @method UM_myCRED myCRED()
19
+ * @method UM_Notices Notices()
20
  * @method UM_Notifications_API Notifications_API()
21
  * @method UM_Online Online()
22
  * @method UM_Profile_Completeness_API Profile_Completeness_API()
23
  * @method UM_reCAPTCHA reCAPTCHA()
24
+ * @method UM_Reviews Reviews()
25
  * @method UM_Activity_API Activity_API()
26
  * @method UM_Social_Login_API Social_Login_API()
27
+ * @method UM_User_Tags User_Tags()
28
  * @method UM_Verified_Users_API Verified_Users_API()
29
  * @method UM_WooCommerce_API WooCommerce_API()
30
  * @method UM_Terms_Conditions Terms_Conditions()
31
+ * @method UM_Private_Content Private_Content()
32
+ * @method UM_User_Location User_Location()
33
  * @method UM_Photos_API Photos_API()
34
  * @method UM_Groups Groups()
35
  * @method UM_Frontend_Posting Frontend_Posting()
517
  $this->admin_upgrade()->init_packages_ajax_handlers();
518
  $this->admin_gdpr();
519
  $this->columns();
520
+ $this->admin()->notices();
521
  $this->admin_navmenu();
522
  $this->theme_updater();
523
+ $this->access();
524
  } elseif ( $this->is_request( 'admin' ) ) {
525
  $this->admin();
526
  $this->admin_menu();
529
  $this->columns();
530
  $this->admin_enqueue();
531
  $this->metabox();
532
+ $this->admin()->notices();
533
  $this->users();
534
  $this->dragdrop();
535
  $this->plugin_updater();
544
  $this->register();
545
  $this->user_posts();
546
  $this->access();
 
547
  $this->logout();
548
  }
549
 
563
  $this->mobile();
564
  $this->external_integrations();
565
  $this->gdpr();
566
+ $this->member_directory();
567
 
568
  //if multisite networks active
569
  if ( is_multisite() ) {
573
  }
574
 
575
 
576
+ /**
577
+ * @since 2.1.0
578
+ *
579
+ * @return um\core\Member_Directory()
580
+ */
581
+ function member_directory() {
582
+ if ( empty( $this->classes['member_directory'] ) ) {
583
+ $this->classes['member_directory'] = new um\core\Member_Directory();
584
+ }
585
+ return $this->classes['member_directory'];
586
+ }
587
+
588
+
589
  /**
590
  * Get extension API
591
  *
855
  }
856
 
857
 
 
 
 
 
 
 
 
 
 
 
 
 
 
858
  /**
859
  * @since 2.0
860
  *
1323
 
1324
 
1325
  /**
1326
+ * @deprecated 2.1.0
1327
+ *
1328
  * @since 2.0
1329
  *
1330
  * @return um\core\Members
1331
  */
1332
  function members() {
1333
+ um_deprecated_function( 'UM()->members()', '2.1.0', 'UM()->member_directory()' );
1334
+
1335
  if ( empty( $this->classes['members'] ) ) {
1336
  $this->classes['members'] = new um\core\Members();
1337
  }
1443
  require_once 'core/um-actions-register.php';
1444
  require_once 'core/um-actions-profile.php';
1445
  require_once 'core/um-actions-account.php';
 
1446
  require_once 'core/um-actions-global.php';
1447
  require_once 'core/um-actions-user.php';
1448
  require_once 'core/um-actions-save-profile.php';
1454
  require_once 'core/um-filters-navmenu.php';
1455
  require_once 'core/um-filters-avatars.php';
1456
  require_once 'core/um-filters-user.php';
1457
+
1458
+ //require_once 'core/um-filters-members.php';
1459
+
1460
  require_once 'core/um-filters-profile.php';
1461
  require_once 'core/um-filters-account.php';
1462
  require_once 'core/um-filters-misc.php';
includes/core/class-access.php CHANGED
@@ -180,11 +180,6 @@ if ( ! class_exists( 'um\core\Access' ) ) {
180
  add_filter( 'archive_template', array( &$this, 'taxonomy_message' ), 10, 3 );
181
  add_filter( 'category_template', array( &$this, 'taxonomy_message' ), 10, 3 );
182
  add_filter( 'taxonomy_template', array( &$this, 'taxonomy_message' ), 10, 3 );
183
-
184
- /*global $wp_query;
185
- $wp_query->set_404();
186
- status_header( 404 );
187
- nocache_headers();*/
188
  }
189
  } else {
190
  $user_can = $this->user_can( get_current_user_id(), $restriction['_um_access_roles'] );
@@ -602,15 +597,29 @@ if ( ! class_exists( 'um\core\Access' ) ) {
602
  return false;
603
  } else {
604
 
605
- //set default redirect if Profile page is restricted for not-logged in users
606
- if ( ! is_user_logged_in() && um_is_core_post( $post, 'user' ) && $restriction['_um_accessible'] == '2' ) {
 
 
607
  if ( isset( $restriction['_um_access_roles'] ) ) {
608
- $restriction = array( '_um_accessible' => '2', '_um_access_roles' => $restriction['_um_access_roles'], '_um_noaccess_action' => '1', '_um_access_redirect' => '1', '_um_access_redirect_url' => get_home_url( get_current_blog_id() ) );
 
 
 
 
 
 
609
  } else {
610
- $restriction = array( '_um_accessible' => '2', '_um_noaccess_action' => '1', '_um_access_redirect' => '1', '_um_access_redirect_url' => get_home_url( get_current_blog_id() ) );
 
 
 
 
 
611
  }
612
  }
613
 
 
614
  return $restriction;
615
  }
616
  }
180
  add_filter( 'archive_template', array( &$this, 'taxonomy_message' ), 10, 3 );
181
  add_filter( 'category_template', array( &$this, 'taxonomy_message' ), 10, 3 );
182
  add_filter( 'taxonomy_template', array( &$this, 'taxonomy_message' ), 10, 3 );
 
 
 
 
 
183
  }
184
  } else {
185
  $user_can = $this->user_can( get_current_user_id(), $restriction['_um_access_roles'] );
597
  return false;
598
  } else {
599
 
600
+ // set default redirect if Profile page is restricted for not-logged in users and showing message instead of redirect
601
+ // this snippet was added to make the same action for {site_url}/user and {site_url}/user/{user_slug} URLs
602
+ // by default {site_url}/user is redirected to Homepage in rewrite rules because hasn't found username in query when user is not logged in
603
+ if ( ! is_user_logged_in() && um_is_core_post( $post, 'user' ) && $restriction['_um_accessible'] == '2' && $restriction['_um_noaccess_action'] == '0' ) {
604
  if ( isset( $restriction['_um_access_roles'] ) ) {
605
+ $restriction = array(
606
+ '_um_accessible' => '2',
607
+ '_um_access_roles' => $restriction['_um_access_roles'],
608
+ '_um_noaccess_action' => '1',
609
+ '_um_access_redirect' => '1',
610
+ '_um_access_redirect_url' => get_home_url( get_current_blog_id() )
611
+ );
612
  } else {
613
+ $restriction = array(
614
+ '_um_accessible' => '2',
615
+ '_um_noaccess_action' => '1',
616
+ '_um_access_redirect' => '1',
617
+ '_um_access_redirect_url' => get_home_url( get_current_blog_id() )
618
+ );
619
  }
620
  }
621
 
622
+ $restriction = apply_filters( 'um_post_content_restriction_settings', $restriction, $post );
623
  return $restriction;
624
  }
625
  }
includes/core/class-account.php CHANGED
@@ -30,7 +30,7 @@ if ( ! class_exists( 'um\core\Account' ) ) {
30
  /**
31
  * @var array
32
  */
33
- var $register_fields = array();
34
 
35
 
36
  /**
@@ -54,6 +54,8 @@ if ( ! class_exists( 'um\core\Account' ) ) {
54
  * Init AllTabs for user account
55
  *
56
  * @param $args
 
 
57
  */
58
  function init_tabs( $args ) {
59
 
@@ -84,7 +86,9 @@ if ( ! class_exists( 'um\core\Account' ) ) {
84
 
85
 
86
  /**
87
- * @return mixed|void
 
 
88
  */
89
  function get_tabs() {
90
  $tabs = array();
@@ -151,7 +155,9 @@ if ( ! class_exists( 'um\core\Account' ) ) {
151
  * Account Shortcode
152
  *
153
  * @param array $args
154
- * @return string
 
 
155
  */
156
  function ultimatemember_account( $args = array() ) {
157
  um_fetch_user( get_current_user_id() );
@@ -198,32 +204,34 @@ if ( ! class_exists( 'um\core\Account' ) ) {
198
  $this->current_tab = $args['tab'];
199
 
200
  if ( ! empty( $this->tabs[ $args['tab'] ] ) ) { ?>
201
- <div class="um-form">
202
- <form method="post" action="">
203
- <?php
204
- /**
205
- * UM hook
206
- *
207
- * @type action
208
- * @title um_account_page_hidden_fields
209
- * @description Make some action before account tab loading
210
- * @input_vars
211
- * [{"var":"$args","type":"array","desc":"Account Page Arguments"}]
212
- * @change_log
213
- * ["Since: 2.0"]
214
- * @usage add_action( 'um_before_template_part', 'function_name', 10, 1 );
215
- * @example
216
- * <?php
217
- * add_action( 'um_account_page_hidden_fields', 'my_account_page_hidden_fields', 10, 1 );
218
- * function my_account_page_hidden_fields( $args ) {
219
- * // your code here
220
- * }
221
- * ?>
222
- */
223
- do_action( 'um_account_page_hidden_fields', $args );
224
-
225
- $this->render_account_tab( $args['tab'], $this->tabs[ $args['tab'] ], $args ); ?>
226
- </form>
 
 
227
  </div>
228
  <?php }
229
 
@@ -304,10 +312,20 @@ if ( ! class_exists( 'um\core\Account' ) ) {
304
 
305
  $output = ob_get_clean();
306
 
 
 
307
  return $output;
308
  }
309
 
310
 
 
 
 
 
 
 
 
 
311
  /**
312
  * Restrict access to Account page
313
  */
@@ -478,35 +496,70 @@ if ( ! class_exists( 'um\core\Account' ) ) {
478
 
479
 
480
  /**
481
- * @param array $fields
482
- * @param $id
483
  *
484
- * @return array
 
485
  */
486
- function account_secure_fields( $fields, $id ) {
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
487
  /**
488
  * UM hook
489
  *
490
  * @type filter
491
- * @title um_account_secure_fields
492
- * @description Change Account secure fields
493
  * @input_vars
494
- * [{"var":"$fields","type":"array","desc":"Account Fields"},
495
- * {"var":"$id","type":"int","desc":"User ID"}]
496
  * @change_log
497
  * ["Since: 2.0"]
498
- * @usage add_filter( 'um_account_secure_fields', 'function_name', 10, 2 );
 
499
  * @example
500
  * <?php
501
- * add_filter( 'um_account_secure_fields', 'my_account_secure_fields', 10, 2 );
502
- * function my_account_secure_fields( $fields, $id ) {
503
  * // your code here
504
- * return $fields;
505
  * }
506
  * ?>
507
  */
508
- $fields = apply_filters( 'um_account_secure_fields', $fields, $id );
509
- return $fields;
 
510
  }
511
 
512
 
@@ -525,8 +578,8 @@ if ( ! class_exists( 'um\core\Account' ) ) {
525
  UM()->fields()->set_mode = 'account';
526
  UM()->fields()->editing = true;
527
 
528
- if ( ! empty( $this->tab_output[$id]['content'] ) && ! empty( $this->tab_output[$id]['hash'] ) &&
529
- $this->tab_output[$id]['hash'] == md5( json_encode( $shortcode_args ) ) ) {
530
  return $this->tab_output[ $id ]['content'];
531
  }
532
 
@@ -559,9 +612,10 @@ if ( ! class_exists( 'um\core\Account' ) ) {
559
  $args = apply_filters( 'um_account_tab_privacy_fields', $args, $shortcode_args );
560
 
561
  $fields = UM()->builtin()->get_specific_fields( $args );
562
- $fields = $this->account_secure_fields( $fields, $id );
563
  $fields = $this->filter_fields_by_attrs( $fields, $shortcode_args );
564
 
 
 
565
  foreach ( $fields as $key => $data ) {
566
  $output .= UM()->fields()->edit_field( $key, $data );
567
  }
@@ -595,9 +649,10 @@ if ( ! class_exists( 'um\core\Account' ) ) {
595
  $args = apply_filters( 'um_account_tab_delete_fields', $args, $shortcode_args );
596
 
597
  $fields = UM()->builtin()->get_specific_fields( $args );
598
- $fields = $this->account_secure_fields( $fields, $id );
599
  $fields = $this->filter_fields_by_attrs( $fields, $shortcode_args );
600
 
 
 
601
  foreach ( $fields as $key => $data ) {
602
  $output .= UM()->fields()->edit_field( $key, $data );
603
  }
@@ -644,9 +699,10 @@ if ( ! class_exists( 'um\core\Account' ) ) {
644
  $args = apply_filters( 'um_account_tab_general_fields', $args, $shortcode_args );
645
 
646
  $fields = UM()->builtin()->get_specific_fields( $args );
647
- $fields = $this->account_secure_fields( $fields, $id );
648
  $fields = $this->filter_fields_by_attrs( $fields, $shortcode_args );
649
 
 
 
650
  foreach ( $fields as $key => $data ) {
651
  $output .= UM()->fields()->edit_field( $key, $data );
652
  }
@@ -681,9 +737,10 @@ if ( ! class_exists( 'um\core\Account' ) ) {
681
  $args = apply_filters( 'um_account_tab_password_fields', $args, $shortcode_args );
682
 
683
  $fields = UM()->builtin()->get_specific_fields( $args );
684
- $fields = $this->account_secure_fields( $fields, $id );
685
  $fields = $this->filter_fields_by_attrs( $fields, $shortcode_args );
686
 
 
 
687
  foreach ( $fields as $key => $data ) {
688
  $output .= UM()->fields()->edit_field( $key, $data );
689
  }
30
  /**
31
  * @var array
32
  */
33
+ var $displayed_fields = array();
34
 
35
 
36
  /**
54
  * Init AllTabs for user account
55
  *
56
  * @param $args
57
+ *
58
+ * @throws \Exception
59
  */
60
  function init_tabs( $args ) {
61
 
86
 
87
 
88
  /**
89
+ * Get all Account tabs
90
+ *
91
+ * @return array
92
  */
93
  function get_tabs() {
94
  $tabs = array();
155
  * Account Shortcode
156
  *
157
  * @param array $args
158
+ *
159
+ * @return false|string
160
+ * @throws \Exception
161
  */
162
  function ultimatemember_account( $args = array() ) {
163
  um_fetch_user( get_current_user_id() );
204
  $this->current_tab = $args['tab'];
205
 
206
  if ( ! empty( $this->tabs[ $args['tab'] ] ) ) { ?>
207
+ <div class="um um-custom-shortcode-tab">
208
+ <div class="um-form">
209
+ <form method="post" action="">
210
+ <?php
211
+ /**
212
+ * UM hook
213
+ *
214
+ * @type action
215
+ * @title um_account_page_hidden_fields
216
+ * @description Make some action before account tab loading
217
+ * @input_vars
218
+ * [{"var":"$args","type":"array","desc":"Account Page Arguments"}]
219
+ * @change_log
220
+ * ["Since: 2.0"]
221
+ * @usage add_action( 'um_before_template_part', 'function_name', 10, 1 );
222
+ * @example
223
+ * <?php
224
+ * add_action( 'um_account_page_hidden_fields', 'my_account_page_hidden_fields', 10, 1 );
225
+ * function my_account_page_hidden_fields( $args ) {
226
+ * // your code here
227
+ * }
228
+ * ?>
229
+ */
230
+ do_action( 'um_account_page_hidden_fields', $args );
231
+
232
+ $this->render_account_tab( $args['tab'], $this->tabs[ $args['tab'] ], $args ); ?>
233
+ </form>
234
+ </div>
235
  </div>
236
  <?php }
237
 
312
 
313
  $output = ob_get_clean();
314
 
315
+ $this->account_fields_hash();
316
+
317
  return $output;
318
  }
319
 
320
 
321
+ /**
322
+ * Update account fields to secure the account submission
323
+ */
324
+ function account_fields_hash() {
325
+ update_user_meta( um_user( 'ID' ), 'um_account_secure_fields', UM()->account()->displayed_fields );
326
+ }
327
+
328
+
329
  /**
330
  * Restrict access to Account page
331
  */
496
 
497
 
498
  /**
499
+ * Init displayed fields for security check
 
500
  *
501
+ * @param $fields
502
+ * @param $tab_key
503
  */
504
+ function init_displayed_fields( $fields, $tab_key ) {
505
+ if ( ! $this->is_secure_enabled() ) {
506
+ return;
507
+ }
508
+
509
+ if ( ! isset( $this->displayed_fields[ $tab_key ] ) ) {
510
+ $this->displayed_fields[ $tab_key ] = array_keys( $fields );
511
+ } else {
512
+ $this->displayed_fields[ $tab_key ] = array_merge( $this->displayed_fields[ $tab_key ], array_keys( $fields ) );
513
+ $this->displayed_fields[ $tab_key ] = array_unique( $this->displayed_fields[ $tab_key ] );
514
+ }
515
+ }
516
+
517
+
518
+ /**
519
+ * @param $field_key
520
+ * @param $tab_key
521
+ */
522
+ function add_displayed_field( $field_key, $tab_key ) {
523
+ if ( ! $this->is_secure_enabled() ) {
524
+ return;
525
+ }
526
+
527
+ if ( ! isset( $this->displayed_fields[ $tab_key ] ) ) {
528
+ $this->displayed_fields[ $tab_key ] = array( $field_key );
529
+ } else {
530
+ $this->displayed_fields[ $tab_key ][] = $field_key;
531
+ }
532
+ }
533
+
534
+
535
+ /**
536
+ * @return bool
537
+ */
538
+ function is_secure_enabled() {
539
  /**
540
  * UM hook
541
  *
542
  * @type filter
543
+ * @title um_account_secure_fields__enabled
544
+ * @description Active account secure fields
545
  * @input_vars
546
+ * [{"var":"$enabled","type":"string","desc":"Enable secure account fields"}]
 
547
  * @change_log
548
  * ["Since: 2.0"]
549
+ * @usage
550
+ * <?php add_filter( 'um_account_secure_fields__enabled', 'function_name', 10, 1 ); ?>
551
  * @example
552
  * <?php
553
+ * add_filter( 'um_account_secure_fields__enabled', 'my_account_secure_fields', 10, 1 );
554
+ * function my_account_secure_fields( $enabled ) {
555
  * // your code here
556
+ * return $enabled;
557
  * }
558
  * ?>
559
  */
560
+ $secure = apply_filters( 'um_account_secure_fields__enabled', true );
561
+
562
+ return $secure;
563
  }
564
 
565
 
578
  UM()->fields()->set_mode = 'account';
579
  UM()->fields()->editing = true;
580
 
581
+ if ( ! empty( $this->tab_output[ $id ]['content'] ) && ! empty( $this->tab_output[ $id ]['hash'] ) &&
582
+ $this->tab_output[ $id ]['hash'] == md5( json_encode( $shortcode_args ) ) ) {
583
  return $this->tab_output[ $id ]['content'];
584
  }
585
 
612
  $args = apply_filters( 'um_account_tab_privacy_fields', $args, $shortcode_args );
613
 
614
  $fields = UM()->builtin()->get_specific_fields( $args );
 
615
  $fields = $this->filter_fields_by_attrs( $fields, $shortcode_args );
616
 
617
+ $this->init_displayed_fields( $fields, $id );
618
+
619
  foreach ( $fields as $key => $data ) {
620
  $output .= UM()->fields()->edit_field( $key, $data );
621
  }
649
  $args = apply_filters( 'um_account_tab_delete_fields', $args, $shortcode_args );
650
 
651
  $fields = UM()->builtin()->get_specific_fields( $args );
 
652
  $fields = $this->filter_fields_by_attrs( $fields, $shortcode_args );
653
 
654
+ $this->init_displayed_fields( $fields, $id );
655
+
656
  foreach ( $fields as $key => $data ) {
657
  $output .= UM()->fields()->edit_field( $key, $data );
658
  }
699
  $args = apply_filters( 'um_account_tab_general_fields', $args, $shortcode_args );
700
 
701
  $fields = UM()->builtin()->get_specific_fields( $args );
 
702
  $fields = $this->filter_fields_by_attrs( $fields, $shortcode_args );
703
 
704
+ $this->init_displayed_fields( $fields, $id );
705
+
706
  foreach ( $fields as $key => $data ) {
707
  $output .= UM()->fields()->edit_field( $key, $data );
708
  }
737
  $args = apply_filters( 'um_account_tab_password_fields', $args, $shortcode_args );
738
 
739
  $fields = UM()->builtin()->get_specific_fields( $args );
 
740
  $fields = $this->filter_fields_by_attrs( $fields, $shortcode_args );
741
 
742
+ $this->init_displayed_fields( $fields, $id );
743
+
744
  foreach ( $fields as $key => $data ) {
745
  $output .= UM()->fields()->edit_field( $key, $data );
746
  }
includes/core/class-ajax-common.php CHANGED
@@ -26,8 +26,9 @@ if ( ! class_exists( 'um\core\AJAX_Common' ) ) {
26
 
27
  add_action( 'wp_ajax_um_' . $action, array( $this, $action ) );
28
 
29
- if ( $nopriv )
30
  add_action( 'wp_ajax_nopriv_um_' . $action, array( $this, $action ) );
 
31
 
32
  }
33
 
@@ -39,7 +40,9 @@ if ( ! class_exists( 'um\core\AJAX_Common' ) ) {
39
 
40
  add_action( 'wp_ajax_um_ajax_paginate', array( UM()->query(), 'ajax_paginate' ) );
41
  add_action( 'wp_ajax_um_ajax_paginate_posts', array( UM()->user_posts(), 'load_posts' ) );
 
42
  add_action( 'wp_ajax_nopriv_um_ajax_paginate_posts', array( UM()->user_posts(), 'load_posts' ) );
 
43
 
44
  add_action( 'wp_ajax_um_muted_action', array( UM()->form(), 'ajax_muted_action' ) );
45
 
@@ -54,6 +57,9 @@ if ( ! class_exists( 'um\core\AJAX_Common' ) ) {
54
 
55
  add_action( 'wp_ajax_nopriv_um_resize_image', array( UM()->files(), 'ajax_resize_image' ) );
56
  add_action( 'wp_ajax_um_resize_image', array( UM()->files(), 'ajax_resize_image' ) );
 
 
 
57
  }
58
  }
59
  }
26
 
27
  add_action( 'wp_ajax_um_' . $action, array( $this, $action ) );
28
 
29
+ if ( $nopriv ){
30
  add_action( 'wp_ajax_nopriv_um_' . $action, array( $this, $action ) );
31
+ }
32
 
33
  }
34
 
40
 
41
  add_action( 'wp_ajax_um_ajax_paginate', array( UM()->query(), 'ajax_paginate' ) );
42
  add_action( 'wp_ajax_um_ajax_paginate_posts', array( UM()->user_posts(), 'load_posts' ) );
43
+ add_action( 'wp_ajax_um_ajax_paginate_comments', array( UM()->user_posts(), 'load_comments' ) );
44
  add_action( 'wp_ajax_nopriv_um_ajax_paginate_posts', array( UM()->user_posts(), 'load_posts' ) );
45
+ add_action( 'wp_ajax_nopriv_um_ajax_paginate_comments', array( UM()->user_posts(), 'load_comments' ) );
46
 
47
  add_action( 'wp_ajax_um_muted_action', array( UM()->form(), 'ajax_muted_action' ) );
48
 
57
 
58
  add_action( 'wp_ajax_nopriv_um_resize_image', array( UM()->files(), 'ajax_resize_image' ) );
59
  add_action( 'wp_ajax_um_resize_image', array( UM()->files(), 'ajax_resize_image' ) );
60
+
61
+ add_action( 'wp_ajax_nopriv_um_get_members', array( UM()->member_directory(), 'ajax_get_members' ) );
62
+ add_action( 'wp_ajax_um_get_members', array( UM()->member_directory(), 'ajax_get_members' ) );
63
  }
64
  }
65
  }
includes/core/class-builtin.php CHANGED
@@ -398,27 +398,27 @@ if ( ! class_exists( 'um\core\Builtin' ) ) {
398
  ),
399
 
400
  'date' => array(
401
- 'name' => 'Date Picker',
402
- 'col1' => array('_title','_metakey','_help','_default','_range','_years','_years_x','_range_start','_range_end','_visibility'),
403
- 'col2' => array('_label','_placeholder','_public','_roles','_format','_pretty_format','_disabled_weekdays'),
404
- 'col3' => array('_required','_editable','_icon'),
405
- 'validate' => array(
406
- '_title' => array(
407
- 'mode' => 'required',
408
  'error' => __( 'You must provide a title', 'ultimate-member' )
409
  ),
410
- '_metakey' => array(
411
- 'mode' => 'unique',
412
  ),
413
- '_years' => array(
414
- 'mode' => 'numeric',
415
  'error' => __( 'Number of years is not valid', 'ultimate-member' )
416
  ),
417
- '_range_start' => array(
418
- 'mode' => 'range-start',
419
  ),
420
- '_range_end' => array(
421
- 'mode' => 'range-end',
422
  ),
423
  )
424
  ),
@@ -1218,6 +1218,8 @@ if ( ! class_exists( 'um\core\Builtin' ) ) {
1218
  /**
1219
  * Get all fields without metakeys
1220
  *
 
 
1221
  * @return array
1222
  */
1223
  function get_fields_without_metakey() {
398
  ),
399
 
400
  'date' => array(
401
+ 'name' => 'Date Picker',
402
+ 'col1' => array( '_title', '_metakey', '_help', '_default', '_range', '_years', '_years_x', '_range_start', '_range_end', '_visibility' ),
403
+ 'col2' => array( '_label', '_placeholder', '_public', '_roles', '_format', '_format_custom', '_pretty_format', '_disabled_weekdays' ),
404
+ 'col3' => array( '_required', '_editable', '_icon' ),
405
+ 'validate' => array(
406
+ '_title' => array(
407
+ 'mode' => 'required',
408
  'error' => __( 'You must provide a title', 'ultimate-member' )
409
  ),
410
+ '_metakey' => array(
411
+ 'mode' => 'unique',
412
  ),
413
+ '_years' => array(
414
+ 'mode' => 'numeric',
415
  'error' => __( 'Number of years is not valid', 'ultimate-member' )
416
  ),
417
+ '_range_start' => array(
418
+ 'mode' => 'range-start',
419
  ),
420
+ '_range_end' => array(
421
+ 'mode' => 'range-end',
422
  ),
423
  )
424
  ),
1218
  /**
1219
  * Get all fields without metakeys
1220
  *
1221
+ * @since 2.0.56
1222
+ *
1223
  * @return array
1224
  */
1225
  function get_fields_without_metakey() {
includes/core/class-common.php CHANGED
@@ -1,17 +1,21 @@
1
  <?php
2
  namespace um\core;
3
 
4
- // Exit if accessed directly.
5
  if ( ! defined( 'ABSPATH' ) ) exit;
6
 
 
7
  if ( ! class_exists( 'um\core\Common' ) ) {
8
 
9
 
10
  /**
11
  * Class Common
 
12
  * @package um\core
13
  */
14
  class Common {
 
 
15
  /**
16
  * Common constructor.
17
  */
@@ -33,7 +37,7 @@ if ( ! class_exists( 'um\core\Common' ) ) {
33
 
34
  if ( is_user_logged_in() ) {
35
  if ( um_user( 'can_not_see_adminbar' ) ) {
36
- $search = array_search( "admin-bar", $classes );
37
  if ( ! empty( $search ) ) {
38
  unset( $classes[ $search ] );
39
  }
@@ -50,17 +54,17 @@ if ( ! class_exists( 'um\core\Common' ) ) {
50
  function create_post_types() {
51
 
52
  register_post_type( 'um_form', array(
53
- 'labels' => array(
54
- 'name' => __( 'Forms' ),
55
- 'singular_name' => __( 'Form' ),
56
- 'add_new' => __( 'Add New' ),
57
- 'add_new_item' => __('Add New Form' ),
58
- 'edit_item' => __('Edit Form'),
59
- 'not_found' => __('You did not create any forms yet'),
60
- 'not_found_in_trash' => __('Nothing found in Trash'),
61
- 'search_items' => __('Search Forms')
62
  ),
63
- 'capabilities' => array(
64
  'edit_post' => 'manage_options',
65
  'read_post' => 'manage_options',
66
  'delete_post' => 'manage_options',
@@ -68,29 +72,29 @@ if ( ! class_exists( 'um\core\Common' ) ) {
68
  'edit_others_posts' => 'manage_options',
69
  'delete_posts' => 'manage_options',
70
  'publish_posts' => 'manage_options',
71
- 'read_private_posts' => 'manage_options'
72
  ),
73
- 'show_ui' => true,
74
- 'show_in_menu' => false,
75
- 'public' => false,
76
- 'show_in_rest' => true,
77
- 'supports' => array('title')
78
  ) );
79
 
80
  if ( UM()->options()->get( 'members_page' ) || ! get_option( 'um_options' ) ) {
81
 
82
  register_post_type( 'um_directory', array(
83
- 'labels' => array(
84
- 'name' => __( 'Member Directories' ),
85
- 'singular_name' => __( 'Member Directory' ),
86
- 'add_new' => __( 'Add New' ),
87
- 'add_new_item' => __('Add New Member Directory' ),
88
- 'edit_item' => __('Edit Member Directory'),
89
- 'not_found' => __('You did not create any member directories yet'),
90
- 'not_found_in_trash' => __('Nothing found in Trash'),
91
- 'search_items' => __('Search Member Directories')
92
  ),
93
- 'capabilities' => array(
94
  'edit_post' => 'manage_options',
95
  'read_post' => 'manage_options',
96
  'delete_post' => 'manage_options',
@@ -98,13 +102,13 @@ if ( ! class_exists( 'um\core\Common' ) ) {
98
  'edit_others_posts' => 'manage_options',
99
  'delete_posts' => 'manage_options',
100
  'publish_posts' => 'manage_options',
101
- 'read_private_posts' => 'manage_options'
102
  ),
103
- 'show_ui' => true,
104
- 'show_in_menu' => false,
105
- 'public' => false,
106
- 'show_in_rest' => true,
107
- 'supports' => array('title')
108
  ) );
109
 
110
  }
1
  <?php
2
  namespace um\core;
3
 
4
+
5
  if ( ! defined( 'ABSPATH' ) ) exit;
6
 
7
+
8
  if ( ! class_exists( 'um\core\Common' ) ) {
9
 
10
 
11
  /**
12
  * Class Common
13
+ *
14
  * @package um\core
15
  */
16
  class Common {
17
+
18
+
19
  /**
20
  * Common constructor.
21
  */
37
 
38
  if ( is_user_logged_in() ) {
39
  if ( um_user( 'can_not_see_adminbar' ) ) {
40
+ $search = array_search( 'admin-bar', $classes );
41
  if ( ! empty( $search ) ) {
42
  unset( $classes[ $search ] );
43
  }
54
  function create_post_types() {
55
 
56
  register_post_type( 'um_form', array(
57
+ 'labels' => array(
58
+ 'name' => __( 'Forms', 'ultimate-member' ),
59
+ 'singular_name' => __( 'Form', 'ultimate-member' ),
60
+ 'add_new' => __( 'Add New', 'ultimate-member' ),
61
+ 'add_new_item' => __( 'Add New Form', 'ultimate-member' ),
62
+ 'edit_item' => __( 'Edit Form', 'ultimate-member' ),
63
+ 'not_found' => __( 'You did not create any forms yet', 'ultimate-member' ),
64
+ 'not_found_in_trash' => __( 'Nothing found in Trash', 'ultimate-member' ),
65
+ 'search_items' => __( 'Search Forms', 'ultimate-member' ),
66
  ),
67
+ 'capabilities' => array(
68
  'edit_post' => 'manage_options',
69
  'read_post' => 'manage_options',
70
  'delete_post' => 'manage_options',
72
  'edit_others_posts' => 'manage_options',
73
  'delete_posts' => 'manage_options',
74
  'publish_posts' => 'manage_options',
75
+ 'read_private_posts' => 'manage_options',
76
  ),
77
+ 'show_ui' => true,
78
+ 'show_in_menu' => false,
79
+ 'public' => false,
80
+ 'show_in_rest' => true,
81
+ 'supports' => array( 'title' ),
82
  ) );
83
 
84
  if ( UM()->options()->get( 'members_page' ) || ! get_option( 'um_options' ) ) {
85
 
86
  register_post_type( 'um_directory', array(
87
+ 'labels' => array(
88
+ 'name' => __( 'Member Directories', 'ultimate-member' ),
89
+ 'singular_name' => __( 'Member Directory', 'ultimate-member' ),
90
+ 'add_new' => __( 'Add New', 'ultimate-member' ),
91
+ 'add_new_item' => __( 'Add New Member Directory', 'ultimate-member' ),
92
+ 'edit_item' => __( 'Edit Member Directory', 'ultimate-member' ),
93
+ 'not_found' => __( 'You did not create any member directories yet', 'ultimate-member' ),
94
+ 'not_found_in_trash' => __( 'Nothing found in Trash', 'ultimate-member' ),
95
+ 'search_items' => __( 'Search Member Directories', 'ultimate-member' ),
96
  ),
97
+ 'capabilities' => array(
98
  'edit_post' => 'manage_options',
99
  'read_post' => 'manage_options',
100
  'delete_post' => 'manage_options',
102
  'edit_others_posts' => 'manage_options',
103
  'delete_posts' => 'manage_options',
104
  'publish_posts' => 'manage_options',
105
+ 'read_private_posts' => 'manage_options',
106
  ),
107
+ 'show_ui' => true,
108
+ 'show_in_menu' => false,
109
+ 'public' => false,
110
+ 'show_in_rest' => true,
111
+ 'supports' => array( 'title' ),
112
  ) );
113
 
114
  }
includes/core/class-enqueue.php CHANGED
@@ -94,12 +94,16 @@ if ( ! class_exists( 'um\core\Enqueue' ) ) {
94
  wp_register_script( 'um_datetime_legacy', $this->js_baseurl . 'pickadate/legacy.js', array( 'jquery', 'um_datetime' ), ultimatemember_version, true );
95
  // load a localized version for date/time
96
  $locale = get_locale();
97
- if ( $locale && file_exists( um_path . 'assets/js/pickadate/translations/' . $locale . '.js' ) ) {
98
- wp_register_script('um_datetime_locale', um_url . 'assets/js/pickadate/translations/' . $locale . '.js', array( 'jquery', 'um_datetime' ), ultimatemember_version, true );
 
 
 
 
99
  }
100
 
101
  wp_register_script( 'um_tipsy', $this->js_baseurl . 'um-tipsy' . $this->suffix . '.js', array( 'jquery' ), ultimatemember_version, true );
102
- wp_register_script( 'um_raty', $this->js_baseurl . 'um-raty' . $this->suffix . '.js', array( 'jquery' ), ultimatemember_version, true );
103
  wp_register_script( 'um_crop', $this->js_baseurl . 'um-crop' . $this->suffix . '.js', array( 'jquery' ), ultimatemember_version, true );
104
 
105
  wp_register_script( 'um_modal', $this->js_baseurl . 'um-modal' . $this->suffix . '.js', array( 'jquery', 'wp-util', 'um_crop' ), ultimatemember_version, true );
@@ -135,8 +139,10 @@ if ( ! class_exists( 'um\core\Enqueue' ) ) {
135
  ) );
136
  wp_localize_script( 'um_scripts', 'um_scripts', $localize_data );
137
 
138
- wp_register_script('um_members', $this->js_baseurl . 'um-members' . $this->suffix . '.js', array( 'jquery' ), ultimatemember_version, true );
139
- wp_register_script('um_profile', $this->js_baseurl . 'um-profile' . $this->suffix . '.js', array( 'jquery', 'wp-util' ), ultimatemember_version, true );
 
 
140
  wp_register_script('um_account', $this->js_baseurl . 'um-account' . $this->suffix . '.js', array( 'jquery' ), ultimatemember_version, true );
141
 
142
  wp_register_script( 'um_gchart', 'https://www.google.com/jsapi', array(), ultimatemember_version, true );
@@ -144,9 +150,10 @@ if ( ! class_exists( 'um\core\Enqueue' ) ) {
144
 
145
 
146
  /**
147
- *
148
  */
149
  function register_styles() {
 
150
  //FontAwesome and FontIcons styles
151
  wp_register_style( 'um_fonticons_ii', $this->css_baseurl . 'um-fonticons-ii.css', array(), ultimatemember_version );
152
  wp_register_style( 'um_fonticons_fa', $this->css_baseurl . 'um-fonticons-fa.css', array(), ultimatemember_version );
@@ -166,10 +173,18 @@ if ( ! class_exists( 'um\core\Enqueue' ) ) {
166
  wp_register_style( 'um_responsive', $this->css_baseurl . 'um-responsive.css', array( 'um_profile', 'um_crop' ), ultimatemember_version );
167
 
168
  wp_register_style( 'um_styles', $this->css_baseurl . 'um-styles.css', array(), ultimatemember_version );
169
- wp_register_style( 'um_members', $this->css_baseurl . 'um-members.css', array(), ultimatemember_version );
 
 
 
 
 
 
 
170
  wp_register_style( 'um_profile', $this->css_baseurl . 'um-profile.css', array(), ultimatemember_version );
171
  wp_register_style( 'um_account', $this->css_baseurl . 'um-account.css', array(), ultimatemember_version );
172
  wp_register_style( 'um_misc', $this->css_baseurl . 'um-misc.css', array(), ultimatemember_version );
 
173
  }
174
 
175
 
@@ -265,7 +280,12 @@ if ( ! class_exists( 'um\core\Enqueue' ) ) {
265
  */
266
  function load_css() {
267
  wp_enqueue_style( 'um_styles' );
268
- wp_enqueue_style( 'um_members' );
 
 
 
 
 
269
  wp_enqueue_style( 'um_profile' );
270
  wp_enqueue_style( 'um_account' );
271
  wp_enqueue_style( 'um_misc' );
@@ -324,20 +344,20 @@ if ( ! class_exists( 'um\core\Enqueue' ) ) {
324
  * Load date & time picker
325
  */
326
  function load_datetimepicker() {
327
- wp_enqueue_script('um_datetime');
328
- wp_enqueue_script('um_datetime_date');
329
- wp_enqueue_script('um_datetime_time');
330
- wp_enqueue_script('um_datetime_legacy');
331
 
332
  // load a localized version for date/time
333
  $locale = get_locale();
334
- if ( $locale && file_exists( um_path . 'assets/js/pickadate/translations/' . $locale . '.js' ) ) {
335
  wp_enqueue_script('um_datetime_locale' );
336
  }
337
 
338
- wp_enqueue_style('um_datetime');
339
- wp_enqueue_style('um_datetime_date');
340
- wp_enqueue_style('um_datetime_time');
341
  }
342
 
343
 
94
  wp_register_script( 'um_datetime_legacy', $this->js_baseurl . 'pickadate/legacy.js', array( 'jquery', 'um_datetime' ), ultimatemember_version, true );
95
  // load a localized version for date/time
96
  $locale = get_locale();
97
+ if ( $locale ) {
98
+ if ( file_exists( WP_LANG_DIR . '/plugins/ultimate-member/assets/js/pickadate/' . $locale . '.js' ) ) {
99
+ wp_register_script('um_datetime_locale', content_url() . '/languages/plugins/ultimate-member/assets/js/pickadate/' . $locale . '.js', array( 'jquery', 'um_datetime' ), ultimatemember_version, true );
100
+ } elseif ( file_exists( um_path . 'assets/js/pickadate/translations/' . $locale . '.js' ) ) {
101
+ wp_register_script('um_datetime_locale', um_url . 'assets/js/pickadate/translations/' . $locale . '.js', array( 'jquery', 'um_datetime' ), ultimatemember_version, true );
102
+ }
103
  }
104
 
105
  wp_register_script( 'um_tipsy', $this->js_baseurl . 'um-tipsy' . $this->suffix . '.js', array( 'jquery' ), ultimatemember_version, true );
106
+ wp_register_script( 'um_raty', $this->js_baseurl . 'um-raty' . $this->suffix . '.js', array( 'jquery', 'wp-i18n' ), ultimatemember_version, true );
107
  wp_register_script( 'um_crop', $this->js_baseurl . 'um-crop' . $this->suffix . '.js', array( 'jquery' ), ultimatemember_version, true );
108
 
109
  wp_register_script( 'um_modal', $this->js_baseurl . 'um-modal' . $this->suffix . '.js', array( 'jquery', 'wp-util', 'um_crop' ), ultimatemember_version, true );
139
  ) );
140
  wp_localize_script( 'um_scripts', 'um_scripts', $localize_data );
141
 
142
+ wp_register_script('um_dropdown', $this->js_baseurl . 'dropdown' . $this->suffix . '.js', array( 'jquery' ), ultimatemember_version, true );
143
+
144
+ wp_register_script('um_members', $this->js_baseurl . 'um-members' . $this->suffix . '.js', array( 'jquery', 'wp-util', 'jquery-ui-slider', 'um_dropdown', 'wp-hooks' ), ultimatemember_version, true );
145
+ wp_register_script('um_profile', $this->js_baseurl . 'um-profile' . $this->suffix . '.js', array( 'jquery', 'wp-util', 'wp-i18n' ), ultimatemember_version, true );
146
  wp_register_script('um_account', $this->js_baseurl . 'um-account' . $this->suffix . '.js', array( 'jquery' ), ultimatemember_version, true );
147
 
148
  wp_register_script( 'um_gchart', 'https://www.google.com/jsapi', array(), ultimatemember_version, true );
150
 
151
 
152
  /**
153
+ * Register styles
154
  */
155
  function register_styles() {
156
+
157
  //FontAwesome and FontIcons styles
158
  wp_register_style( 'um_fonticons_ii', $this->css_baseurl . 'um-fonticons-ii.css', array(), ultimatemember_version );
159
  wp_register_style( 'um_fonticons_fa', $this->css_baseurl . 'um-fonticons-fa.css', array(), ultimatemember_version );
173
  wp_register_style( 'um_responsive', $this->css_baseurl . 'um-responsive.css', array( 'um_profile', 'um_crop' ), ultimatemember_version );
174
 
175
  wp_register_style( 'um_styles', $this->css_baseurl . 'um-styles.css', array(), ultimatemember_version );
176
+
177
+ wp_register_style( 'um_ui', $this->css_baseurl . 'jquery-ui.css', array(), ultimatemember_version );
178
+
179
+ wp_register_style( 'um_members', $this->css_baseurl . 'um-members.css', array( 'um_ui' ), ultimatemember_version );
180
+ if ( is_rtl() ) {
181
+ wp_register_style( 'um_members_rtl', $this->css_baseurl . 'um-members-rtl.css', array( 'um_members' ), ultimatemember_version );
182
+ }
183
+
184
  wp_register_style( 'um_profile', $this->css_baseurl . 'um-profile.css', array(), ultimatemember_version );
185
  wp_register_style( 'um_account', $this->css_baseurl . 'um-account.css', array(), ultimatemember_version );
186
  wp_register_style( 'um_misc', $this->css_baseurl . 'um-misc.css', array(), ultimatemember_version );
187
+
188
  }
189
 
190
 
280
  */
281
  function load_css() {
282
  wp_enqueue_style( 'um_styles' );
283
+ if ( is_rtl() ) {
284
+ wp_enqueue_style( 'um_members_rtl' );
285
+ } else {
286
+ wp_enqueue_style( 'um_members' );
287
+ }
288
+
289
  wp_enqueue_style( 'um_profile' );
290
  wp_enqueue_style( 'um_account' );
291
  wp_enqueue_style( 'um_misc' );
344
  * Load date & time picker
345
  */
346
  function load_datetimepicker() {
347
+ wp_enqueue_script( 'um_datetime' );
348
+ wp_enqueue_script( 'um_datetime_date' );
349
+ wp_enqueue_script( 'um_datetime_time' );
350
+ wp_enqueue_script( 'um_datetime_legacy' );
351
 
352
  // load a localized version for date/time
353
  $locale = get_locale();
354
+ if ( $locale && ( file_exists( WP_LANG_DIR . '/plugins/ultimate-member/assets/js/pickadate/' . $locale . '.js' ) || file_exists( um_path . 'assets/js/pickadate/translations/' . $locale . '.js' ) ) ) {
355
  wp_enqueue_script('um_datetime_locale' );
356
  }
357
 
358
+ wp_enqueue_style( 'um_datetime' );
359
+ wp_enqueue_style( 'um_datetime_date' );
360
+ wp_enqueue_style( 'um_datetime_time' );
361
  }
362
 
363
 
includes/core/class-fields.php CHANGED
@@ -39,7 +39,18 @@ if ( ! class_exists( 'um\core\Fields' ) ) {
39
  * @param bool $checked
40
  */
41
  function checkbox( $id, $title, $checked = true ) {
42
- $class = $checked ? 'um-icon-android-checkbox-outline' : 'um-icon-android-checkbox-outline-blank'; ?>
 
 
 
 
 
 
 
 
 
 
 
43
 
44
  <div class="um-field um-field-c">
45
  <div class="um-field-area">
@@ -409,7 +420,7 @@ if ( ! class_exists( 'um\core\Fields' ) ) {
409
  $output .= '<div class="um-field-label">';
410
 
411
  if ( isset( $data['icon'] ) && $data['icon'] != '' && isset( $this->field_icons ) && $this->field_icons != 'off' && ( $this->field_icons == 'label' || $this->viewing == true ) ) {
412
- $output .= '<div class="um-field-label-icon"><i class="' . esc_attr( $data['icon'] ) . '"></i></div>';
413
  }
414
 
415
  if ( $this->viewing == true ) {
@@ -815,6 +826,8 @@ if ( ! class_exists( 'um\core\Fields' ) ) {
815
  /**
816
  * Checks if an option is selected
817
  *
 
 
818
  * @param string $key
819
  * @param string $value
820
  * @param array $data
@@ -822,6 +835,8 @@ if ( ! class_exists( 'um\core\Fields' ) ) {
822
  * @return boolean
823
  */
824
  function is_selected( $key, $value, $data ) {
 
 
825
  /**
826
  * UM hook
827
  *
@@ -844,132 +859,149 @@ if ( ! class_exists( 'um\core\Fields' ) ) {
844
  */
845
  $key = apply_filters( 'um_is_selected_filter_key', $key );
846
 
847
- if ( isset( UM()->form()->post_form[ $key ] ) && is_array( UM()->form()->post_form[ $key ] ) ) {
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
848
 
849
- if ( in_array( $value, UM()->form()->post_form[ $key ] ) ) {
850
- return true;
851
  }
852
 
853
- $stripslashed = array_map( 'stripslashes', UM()->form()->post_form[ $key ] );
854
- if ( in_array( $value, $stripslashed ) ) {
855
- return true;
 
 
856
  }
857
 
858
- if ( in_array( html_entity_decode( $value ), UM()->form()->post_form[ $key ] ) ) {
859
- return true;
860
  }
861
 
862
- } else {
863
 
864
- if ( ! isset( UM()->form()->post_form[ $key ] ) ) {
865
 
866
- $field_value = um_user( $key );
867
- if ( ! $field_value ) {
868
- $field_value = 0;
 
869
  }
 
870
 
871
- if( $field_value == 0 && $value == '0' ){
872
- $value = (int)$value;
873
- }
874
 
875
- if ( $key == 'role' ) {
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
876
 
877
- $role_keys = get_option( 'um_roles' );
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
878
 
879
- if ( ! empty( $role_keys ) ) {
880
- if ( in_array( $field_value, $role_keys ) ) {
881
- $field_value = 'um_' . $field_value;
882
- }
 
883
  }
884
- }
885
 
 
 
 
886
 
887
- /**
888
- * UM hook
889
- *
890
- * @type filter
891
- * @title um_is_selected_filter_value
892
- * @description Change is selected filter value
893
- * @input_vars
894
- * [{"var":"$value","type":"string","desc":"Selected filter value"},
895
- * {"var":"$key","type":"string","desc":"Selected filter key"},
896
- * {"var":"$value","type":"string","desc":"Selected filter value"}]
897
- * @change_log
898
- * ["Since: 2.0"]
899
- * @usage add_filter( 'um_is_selected_filter_value', 'function_name', 10, 2 );
900
- * @example
901
- * <?php
902
- * add_filter( 'um_is_selected_filter_value', 'my_selected_filter_value', 10, 2 );
903
- * function my_selected_filter_value( $value, $key ) {
904
- * // your code here
905
- * return $field_value;
906
- * }
907
- * ?>
908
- */
909
- $field_value = apply_filters( 'um_is_selected_filter_value', $field_value, $key, $value );
910
-
911
- /**
912
- * UM hook
913
- *
914
- * @type filter
915
- * @title um_is_selected_filter_data
916
- * @description Change is selected filter data
917
- * @input_vars
918
- * [{"var":"$data","type":"array","desc":"Selected filter value"},
919
- * {"var":"$key","type":"string","desc":"Selected filter key"},
920
- * {"var":"$value","type":"string","desc":"Selected filter value"}]
921
- * @change_log
922
- * ["Since: 2.0"]
923
- * @usage add_filter( 'um_is_selected_filter_data', 'function_name', 10, 3 );
924
- * @example
925
- * <?php
926
- * add_filter( 'um_is_selected_filter_data', 'my_selected_filter_data', 10, 3 );
927
- * function my_selected_filter_data( $data, $key, $value ) {
928
- * // your code here
929
- * return $data;
930
- * }
931
- * ?>
932
- */
933
- $data = apply_filters( 'um_is_selected_filter_data', $data, $key, $field_value );
934
 
935
- if ( $field_value && $this->editing == true && is_array( $field_value ) && ( in_array( $value, $field_value ) || in_array( html_entity_decode( $value ), $field_value ) ) ) {
936
  return true;
937
  }
938
 
939
- if ( $field_value == 0 && $this->editing == true && ! is_array( $field_value ) && $field_value === $value ) {
940
  return true;
941
  }
942
 
943
- if ( $field_value && $this->editing == true && ! is_array( $field_value ) && $field_value == $value ) {
944
  return true;
945
  }
946
 
947
- if ( $field_value && $this->editing == true && ! is_array( $field_value ) && html_entity_decode( $field_value ) == html_entity_decode( $value ) ) {
948
  return true;
949
  }
950
 
951
- if ( empty( $field_value ) ) {
952
- if ( isset( $data['default'] ) ) {
953
- if ( strstr( $data['default'], ', ' ) ) {
954
- $data['default'] = explode( ', ', $data['default'] );
955
- }
956
-
957
- if ( ! is_array( $data['default'] ) && $data['default'] === $value ) {
958
- return true;
959
- }
960
-
961
- if ( is_array( $data['default'] ) && in_array( $value, $data['default'] ) ) {
962
- return true;
963
- }
964
  }
965
- }
966
 
967
- } else {
 
 
968
 
969
- if ( $value == UM()->form()->post_form[ $key ] ) {
970
- return true;
 
971
  }
972
-
973
  }
974
 
975
  }
@@ -988,6 +1020,8 @@ if ( ! class_exists( 'um\core\Fields' ) ) {
988
  * @return boolean
989
  */
990
  function is_radio_checked( $key, $value, $data ) {
 
 
991
  if ( isset( UM()->form()->post_form[ $key ] ) ) {
992
  if ( is_array( UM()->form()->post_form[ $key ] ) && in_array( $value, UM()->form()->post_form[ $key ] ) ) {
993
  return true;
@@ -995,45 +1029,56 @@ if ( ! class_exists( 'um\core\Fields' ) ) {
995
  return true;
996
  }
997
  } else {
998
- if ( um_user( $key ) && $this->editing == true ) {
999
 
1000
- if ( strstr( $key, 'role_' ) ) {
1001
- $key = 'role';
1002
- }
1003
 
1004
- $um_user_value = um_user( $key );
 
 
 
 
1005
 
1006
- if ( $key == 'role' ) {
1007
- $um_user_value = strtolower( $um_user_value );
1008
 
1009
- $role_keys = get_option( 'um_roles' );
1010
 
1011
- if ( ! empty( $role_keys ) ) {
1012
- if ( in_array( $um_user_value, $role_keys ) ) {
1013
- $um_user_value = 'um_' . $um_user_value;
 
1014
  }
1015
  }
1016
- }
1017
 
1018
- if ( $um_user_value == $value ) {
1019
- return true;
1020
- }
1021
 
1022
- if ( is_array( $um_user_value ) && in_array( $value, $um_user_value ) ) {
1023
- return true;
1024
- }
1025
 
1026
- if ( is_array( $um_user_value ) ) {
1027
- foreach ( $um_user_value as $u ) {
1028
- if ( $u == html_entity_decode( $value ) ) {
1029
- return true;
 
1030
  }
1031
  }
1032
- }
1033
 
 
 
 
 
 
1034
 
1035
- } elseif ( isset( $data['default'] ) && $data['default'] == $value ) {
1036
- return true;
 
 
 
1037
  }
1038
  }
1039
 
@@ -1131,6 +1176,7 @@ if ( ! class_exists( 'um\core\Fields' ) ) {
1131
  * @return array $arr_options
1132
  */
1133
  function get_options_from_callback( $data, $type ) {
 
1134
 
1135
  if ( in_array( $type, array( 'select', 'multiselect' ) ) && ! empty( $data['custom_dropdown_options_source'] ) ) {
1136
 
@@ -1723,6 +1769,22 @@ if ( ! class_exists( 'um\core\Fields' ) ) {
1723
  }
1724
 
1725
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1726
  /**
1727
  * Gets a field in 'input mode'
1728
  *
@@ -1853,9 +1915,7 @@ if ( ! class_exists( 'um\core\Fields' ) ) {
1853
  um_fetch_user( $_um_profile_id );
1854
 
1855
  // fields that need to be disabled in edit mode (profile)
1856
- $arr_restricted_fields = array( 'user_email', 'username', 'user_login', 'user_password' );
1857
- $arr_restricted_fields = apply_filters( 'um_user_profile_restricted_edit_fields', $arr_restricted_fields, $key, $data, $_um_profile_id );
1858
-
1859
  if ( in_array( $key, $arr_restricted_fields ) && $this->editing == true && $this->set_mode == 'profile' ) {
1860
  return;
1861
  }
@@ -2467,7 +2527,7 @@ if ( ! class_exists( 'um\core\Fields' ) ) {
2467
  $set_mode = '';
2468
  }
2469
  $nonce = wp_create_nonce( 'um_upload_nonce-' . $this->timestamp );
2470
- $output .= '<div class="um-single-image-preview ' . $crop_class . '" data-crop="' . $crop_data . '" data-ratio="' . $ratio . '" data-min_width="' . $min_width . '" data-min_height="' . $min_height . '" data-coord=""><a href="#" class="cancel"><i class="um-icon-close"></i></a><img src="" alt="" /><div class="um-clear"></div></div><div class="um-clear"></div>';
2471
  $output .= '<div class="um-single-image-upload" data-user_id="' . esc_attr( $_um_profile_id ) . '" data-nonce="' . $nonce . '" data-timestamp="' . esc_attr( $this->timestamp ) . '" data-icon="' . esc_attr( $icon ) . '" data-set_id="' . esc_attr( $set_id ) . '" data-set_mode="' . esc_attr( $set_mode ) . '" data-type="' . esc_attr( $type ) . '" data-key="' . esc_attr( $key ) . '" data-max_size="' . esc_attr( $max_size ) . '" data-max_size_error="' . esc_attr( $max_size_error ) . '" data-min_size_error="' . esc_attr( $min_size_error ) . '" data-extension_error="' . esc_attr( $extension_error ) . '" data-allowed_types="' . esc_attr( $allowed_types ) . '" data-upload_text="' . esc_attr( $upload_text ) . '" data-max_files_error="' . esc_attr( $max_files_error ) . '" data-upload_help_text="' . esc_attr( $upload_help_text ) . '">' . $button_text . '</div>';
2472
  $output .= '<div class="um-modal-footer">
2473
  <div class="um-modal-right">
@@ -2556,7 +2616,7 @@ if ( ! class_exists( 'um\core\Fields' ) ) {
2556
  $set_mode = '';
2557
  }
2558
  $output .= '<div class="um-single-file-preview">
2559
- <a href="#" class="cancel"><i class="um-icon-close"></i></a>
2560
  <div class="um-single-fileinfo">
2561
  <a href="" target="_blank">
2562
  <span class="icon"><i></i></span>
@@ -2603,11 +2663,16 @@ if ( ! class_exists( 'um\core\Fields' ) ) {
2603
  $output .= '<div class="um-field-icon"><i class="' . esc_attr( $icon ) . '"></i></div>';
2604
  }
2605
 
 
2606
  $has_parent_option = false;
2607
  $disabled_by_parent_option = '';
2608
  $atts_ajax = '';
2609
  $select_original_option_value = '';
2610
 
 
 
 
 
2611
  if ( ! empty( $data['parent_dropdown_relationship'] ) && ! UM()->user()->preview ) {
2612
 
2613
  $disabled_by_parent_option = 'disabled = disabled';
@@ -2642,12 +2707,26 @@ if ( ! class_exists( 'um\core\Fields' ) ) {
2642
  um_user( $data['parent_dropdown_relationship'] )
2643
  ) {
2644
  $options = call_user_func( $data['custom_dropdown_options_source'], $data['parent_dropdown_relationship'] );
 
2645
  $disabled_by_parent_option = '';
2646
  if ( um_user( $form_key ) ) {
2647
  $select_original_option_value = " data-um-original-value='" . um_user( $form_key ) . "' ";
2648
  }
2649
  }
 
 
 
 
 
 
 
 
 
2650
 
 
 
 
 
2651
  }
2652
 
2653
  if ( ! empty( $data['custom_dropdown_options_source'] ) ) {
@@ -2702,12 +2781,6 @@ if ( ! class_exists( 'um\core\Fields' ) ) {
2702
 
2703
  }
2704
 
2705
- if ( ! empty( $placeholder ) && is_string( $placeholder ) ) {
2706
- $placeholder = strip_tags( $placeholder );
2707
- }
2708
-
2709
- $output .= '<select data-default="' . $data['default'] . '" ' . $disabled . ' ' . $select_original_option_value . ' ' . $disabled_by_parent_option . ' name="' . esc_attr( $form_key ) . '" id="' . esc_attr( $field_id ) . '" data-validate="' . esc_attr( $validate ) . '" data-key="' . esc_attr( $key ) . '" class="' . $this->get_class( $key, $data, $class ) . '" style="width: 100%" data-placeholder="' . esc_attr( $placeholder ) . '" ' . $atts_ajax . '>';
2710
-
2711
  /**
2712
  * UM hook
2713
  *
@@ -2735,10 +2808,15 @@ if ( ! class_exists( 'um\core\Fields' ) ) {
2735
  $options = UM()->builtin()->get ( $filter );
2736
  }
2737
 
2738
- if ( ! isset( $options ) ) {
 
2739
  $options = UM()->builtin()->get( 'countries' );
 
 
2740
  }
2741
 
 
 
2742
  if ( isset( $options ) ) {
2743
  /**
2744
  * UM hook
@@ -2786,9 +2864,9 @@ if ( ! class_exists( 'um\core\Fields' ) ) {
2786
  }
2787
  }
2788
 
2789
- $output .= '<option value=""></option>';
2790
-
2791
- $field_value = '';
2792
 
2793
  /**
2794
  * UM hook
@@ -2800,14 +2878,22 @@ if ( ! class_exists( 'um\core\Fields' ) ) {
2800
  * [{"var":"$options_pair","type":"null","desc":"Enable pairs"},
2801
  * {"var":"$data","type":"array","desc":"Field Data"}]
2802
  */
2803
- $options_pair = apply_filters( "um_select_options_pair", null, $data );
2804
 
2805
  // switch options pair for custom options from a callback function
2806
  if ( ! empty( $data['custom_dropdown_options_source'] ) ) {
2807
  $options_pair = true;
2808
  }
2809
 
2810
- $options = $this->get_available_roles( $form_key, $options );
 
 
 
 
 
 
 
 
2811
 
2812
  // add options
2813
  if ( ! empty( $options ) ) {
@@ -2855,7 +2941,7 @@ if ( ! class_exists( 'um\core\Fields' ) ) {
2855
  $output .= '</div>';
2856
 
2857
 
2858
- if ($this->is_error( $form_key )) {
2859
  $output .= $this->field_error( $this->show_error( $form_key ) );
2860
  }
2861
 
@@ -3309,7 +3395,7 @@ if ( ! class_exists( 'um\core\Fields' ) ) {
3309
  * ?>
3310
  */
3311
  $um_field_checkbox_item_title = apply_filters( 'um_field_checkbox_item_title', $um_field_checkbox_item_title, $key, $v, $data );
3312
- $output .= '<span class="um-field-checkbox-option">' . esc_html__( $um_field_checkbox_item_title, 'ultimate-member' ) . '</span>';
3313
  $output .= '</label>';
3314
 
3315
  if ( $i % 2 == 0 ) {
39
  * @param bool $checked
40
  */
41
  function checkbox( $id, $title, $checked = true ) {
42
+
43
+ /**
44
+ * Set value on form submission
45
+ */
46
+ if( isset( $_REQUEST[ $id ] ) ){
47
+ $checked = $_REQUEST[ $id ];
48
+ }
49
+
50
+ $class = $checked ? 'um-icon-android-checkbox-outline' : 'um-icon-android-checkbox-outline-blank';
51
+
52
+ ?>
53
+
54
 
55
  <div class="um-field um-field-c">
56
  <div class="um-field-area">
420
  $output .= '<div class="um-field-label">';
421
 
422
  if ( isset( $data['icon'] ) && $data['icon'] != '' && isset( $this->field_icons ) && $this->field_icons != 'off' && ( $this->field_icons == 'label' || $this->viewing == true ) ) {
423
+ $output .= '<div class="um-field-label-icon"><i class="' . esc_attr( $data['icon'] ) . '" aria-label="' . esc_attr( $label ) . '"></i></div>';
424
  }
425
 
426
  if ( $this->viewing == true ) {
826
  /**
827
  * Checks if an option is selected
828
  *
829
+ * is used by Select, Multiselect and Checkbox fields
830
+ *
831
  * @param string $key
832
  * @param string $value
833
  * @param array $data
835
  * @return boolean
836
  */
837
  function is_selected( $key, $value, $data ) {
838
+ global $wpdb;
839
+
840
  /**
841
  * UM hook
842
  *
859
  */
860
  $key = apply_filters( 'um_is_selected_filter_key', $key );
861
 
862
+ if ( isset( UM()->form()->post_form[ $key ] ) ) {
863
+
864
+ if ( is_array( UM()->form()->post_form[ $key ] ) ) {
865
+
866
+ if ( in_array( $value, UM()->form()->post_form[ $key ] ) ) {
867
+ return true;
868
+ }
869
+
870
+ $stripslashed = array_map( 'stripslashes', UM()->form()->post_form[ $key ] );
871
+ if ( in_array( $value, $stripslashed ) ) {
872
+ return true;
873
+ }
874
+
875
+ if ( in_array( html_entity_decode( $value ), UM()->form()->post_form[ $key ] ) ) {
876
+ return true;
877
+ }
878
+ } else {
879
+
880
+ if ( $value == UM()->form()->post_form[ $key ] ) {
881
+ return true;
882
+ }
883
 
 
 
884
  }
885
 
886
+ } else {
887
+
888
+ $field_value = um_user( $key );
889
+ if ( ! $field_value ) {
890
+ $field_value = 0;
891
  }
892
 
893
+ if ( $field_value == 0 && $value == '0' ) {
894
+ $value = (int) $value;
895
  }
896
 
897
+ if ( $key == 'role' ) {
898
 
899
+ $role_keys = get_option( 'um_roles' );
900
 
901
+ if ( ! empty( $role_keys ) ) {
902
+ if ( in_array( $field_value, $role_keys ) ) {
903
+ $field_value = 'um_' . $field_value;
904
+ }
905
  }
906
+ }
907
 
 
 
 
908
 
909
+ /**
910
+ * UM hook
911
+ *
912
+ * @type filter
913
+ * @title um_is_selected_filter_value
914
+ * @description Change is selected filter value
915
+ * @input_vars
916
+ * [{"var":"$value","type":"string","desc":"Selected filter value"},
917
+ * {"var":"$key","type":"string","desc":"Selected filter key"},
918
+ * {"var":"$value","type":"string","desc":"Selected filter value"}]
919
+ * @change_log
920
+ * ["Since: 2.0"]
921
+ * @usage add_filter( 'um_is_selected_filter_value', 'function_name', 10, 2 );
922
+ * @example
923
+ * <?php
924
+ * add_filter( 'um_is_selected_filter_value', 'my_selected_filter_value', 10, 2 );
925
+ * function my_selected_filter_value( $value, $key ) {
926
+ * // your code here
927
+ * return $field_value;
928
+ * }
929
+ * ?>
930
+ */
931
+ $field_value = apply_filters( 'um_is_selected_filter_value', $field_value, $key, $value );
932
 
933
+ /**
934
+ * UM hook
935
+ *
936
+ * @type filter
937
+ * @title um_is_selected_filter_data
938
+ * @description Change is selected filter data
939
+ * @input_vars
940
+ * [{"var":"$data","type":"array","desc":"Selected filter value"},
941
+ * {"var":"$key","type":"string","desc":"Selected filter key"},
942
+ * {"var":"$value","type":"string","desc":"Selected filter value"}]
943
+ * @change_log
944
+ * ["Since: 2.0"]
945
+ * @usage add_filter( 'um_is_selected_filter_data', 'function_name', 10, 3 );
946
+ * @example
947
+ * <?php
948
+ * add_filter( 'um_is_selected_filter_data', 'my_selected_filter_data', 10, 3 );
949
+ * function my_selected_filter_data( $data, $key, $value ) {
950
+ * // your code here
951
+ * return $data;
952
+ * }
953
+ * ?>
954
+ */
955
+ $data = apply_filters( 'um_is_selected_filter_data', $data, $key, $field_value );
956
 
957
+ if ( ! $this->editing ) {
958
+ // show default on register screen if there is default
959
+ if ( isset( $data['default'] ) ) {
960
+ if ( strstr( $data['default'], ', ' ) ) {
961
+ $data['default'] = explode( ', ', $data['default'] );
962
  }
 
963
 
964
+ if ( ! is_array( $data['default'] ) && $data['default'] === $value ) {
965
+ return true;
966
+ }
967
 
968
+ if ( is_array( $data['default'] ) && in_array( $value, $data['default'] ) ) {
969
+ return true;
970
+ }
971
+ }
972
+ } else {
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
973
 
974
+ if ( $field_value && is_array( $field_value ) && ( in_array( $value, $field_value ) || in_array( html_entity_decode( $value ), $field_value ) ) ) {
975
  return true;
976
  }
977
 
978
+ if ( $field_value == 0 && ! is_array( $field_value ) && $field_value === $value ) {
979
  return true;
980
  }
981
 
982
+ if ( $field_value && ! is_array( $field_value ) && $field_value == $value ) {
983
  return true;
984
  }
985
 
986
+ if ( $field_value && ! is_array( $field_value ) && html_entity_decode( $field_value ) == html_entity_decode( $value ) ) {
987
  return true;
988
  }
989
 
990
+ // show default on edit screen if there isn't meta row in usermeta table
991
+ $direct_db_value = $wpdb->get_var( $wpdb->prepare( "SELECT ISNULL( meta_value ) FROM {$wpdb->usermeta} WHERE user_id = %d AND meta_key = %s", um_user( 'ID' ), $key ) );
992
+ if ( ! isset( $direct_db_value ) && isset( $data['default'] ) ) {
993
+ if ( strstr( $data['default'], ', ' ) ) {
994
+ $data['default'] = explode( ', ', $data['default'] );
 
 
 
 
 
 
 
 
995
  }
 
996
 
997
+ if ( ! is_array( $data['default'] ) && $data['default'] === $value ) {
998
+ return true;
999
+ }
1000
 
1001
+ if ( is_array( $data['default'] ) && in_array( $value, $data['default'] ) ) {
1002
+ return true;
1003
+ }
1004
  }
 
1005
  }
1006
 
1007
  }
1020
  * @return boolean
1021
  */
1022
  function is_radio_checked( $key, $value, $data ) {
1023
+ global $wpdb;
1024
+
1025
  if ( isset( UM()->form()->post_form[ $key ] ) ) {
1026
  if ( is_array( UM()->form()->post_form[ $key ] ) && in_array( $value, UM()->form()->post_form[ $key ] ) ) {
1027
  return true;
1029
  return true;
1030
  }
1031
  } else {
 
1032
 
1033
+ if ( $this->editing ) {
1034
+ if ( um_user( $key ) ) {
 
1035
 
1036
+ if ( strstr( $key, 'role_' ) ) {
1037
+ $key = 'role';
1038
+ }
1039
+
1040
+ $um_user_value = um_user( $key );
1041
 
1042
+ if ( $key == 'role' ) {
1043
+ $um_user_value = strtolower( $um_user_value );
1044
 
1045
+ $role_keys = get_option( 'um_roles' );
1046
 
1047
+ if ( ! empty( $role_keys ) ) {
1048
+ if ( in_array( $um_user_value, $role_keys ) ) {
1049
+ $um_user_value = 'um_' . $um_user_value;
1050
+ }
1051
  }
1052
  }
 
1053
 
1054
+ if ( $um_user_value == $value ) {
1055
+ return true;
1056
+ }
1057
 
1058
+ if ( is_array( $um_user_value ) && in_array( $value, $um_user_value ) ) {
1059
+ return true;
1060
+ }
1061
 
1062
+ if ( is_array( $um_user_value ) ) {
1063
+ foreach ( $um_user_value as $u ) {
1064
+ if ( $u == html_entity_decode( $value ) ) {
1065
+ return true;
1066
+ }
1067
  }
1068
  }
1069
+ } else {
1070
 
1071
+ // show default on edit screen if there isn't meta row in usermeta table
1072
+ $direct_db_value = $wpdb->get_var( $wpdb->prepare( "SELECT ISNULL( meta_value ) FROM {$wpdb->usermeta} WHERE user_id = %d AND meta_key = %s", um_user( 'ID' ), $key ) );
1073
+ if ( ! isset( $direct_db_value ) && isset( $data['default'] ) && $data['default'] == $value ) {
1074
+ return true;
1075
+ }
1076
 
1077
+ }
1078
+ } else {
1079
+ if ( isset( $data['default'] ) && $data['default'] == $value ) {
1080
+ return true;
1081
+ }
1082
  }
1083
  }
1084
 
1176
  * @return array $arr_options
1177
  */
1178
  function get_options_from_callback( $data, $type ) {
1179
+ $arr_options = array();
1180
 
1181
  if ( in_array( $type, array( 'select', 'multiselect' ) ) && ! empty( $data['custom_dropdown_options_source'] ) ) {
1182
 
1769
  }
1770
 
1771
 
1772
+ /**
1773
+ * Getting the fields that need to be disabled in edit mode (profile)
1774
+ *
1775
+ * @param bool $_um_profile_id
1776
+ *
1777
+ * @return array
1778
+ */
1779
+ function get_restricted_fields_for_edit( $_um_profile_id = false ) {
1780
+ // fields that need to be disabled in edit mode (profile)
1781
+ $arr_restricted_fields = array( 'user_email', 'username', 'user_login', 'user_password' );
1782
+ $arr_restricted_fields = apply_filters( 'um_user_profile_restricted_edit_fields', $arr_restricted_fields, $_um_profile_id );
1783
+
1784
+ return $arr_restricted_fields;
1785
+ }
1786
+
1787
+
1788
  /**
1789
  * Gets a field in 'input mode'
1790
  *
1915
  um_fetch_user( $_um_profile_id );
1916
 
1917
  // fields that need to be disabled in edit mode (profile)
1918
+ $arr_restricted_fields = $this->get_restricted_fields_for_edit( $_um_profile_id );
 
 
1919
  if ( in_array( $key, $arr_restricted_fields ) && $this->editing == true && $this->set_mode == 'profile' ) {
1920
  return;
1921
  }
2527
  $set_mode = '';
2528
  }
2529
  $nonce = wp_create_nonce( 'um_upload_nonce-' . $this->timestamp );
2530
+ $output .= '<div class="um-single-image-preview ' . $crop_class . '" data-crop="' . $crop_data . '" data-ratio="' . $ratio . '" data-min_width="' . $min_width . '" data-min_height="' . $min_height . '" data-coord=""><a href="javascript:void(0);" class="cancel"><i class="um-icon-close"></i></a><img src="" alt="" /><div class="um-clear"></div></div><div class="um-clear"></div>';
2531
  $output .= '<div class="um-single-image-upload" data-user_id="' . esc_attr( $_um_profile_id ) . '" data-nonce="' . $nonce . '" data-timestamp="' . esc_attr( $this->timestamp ) . '" data-icon="' . esc_attr( $icon ) . '" data-set_id="' . esc_attr( $set_id ) . '" data-set_mode="' . esc_attr( $set_mode ) . '" data-type="' . esc_attr( $type ) . '" data-key="' . esc_attr( $key ) . '" data-max_size="' . esc_attr( $max_size ) . '" data-max_size_error="' . esc_attr( $max_size_error ) . '" data-min_size_error="' . esc_attr( $min_size_error ) . '" data-extension_error="' . esc_attr( $extension_error ) . '" data-allowed_types="' . esc_attr( $allowed_types ) . '" data-upload_text="' . esc_attr( $upload_text ) . '" data-max_files_error="' . esc_attr( $max_files_error ) . '" data-upload_help_text="' . esc_attr( $upload_help_text ) . '">' . $button_text . '</div>';
2532
  $output .= '<div class="um-modal-footer">
2533
  <div class="um-modal-right">
2616
  $set_mode = '';
2617
  }
2618
  $output .= '<div class="um-single-file-preview">
2619
+ <a href="javascript:void(0);" class="cancel"><i class="um-icon-close"></i></a>
2620
  <div class="um-single-fileinfo">
2621
  <a href="" target="_blank">
2622
  <span class="icon"><i></i></span>
2663
  $output .= '<div class="um-field-icon"><i class="' . esc_attr( $icon ) . '"></i></div>';
2664
  }
2665
 
2666
+ $options = array();
2667
  $has_parent_option = false;
2668
  $disabled_by_parent_option = '';
2669
  $atts_ajax = '';
2670
  $select_original_option_value = '';
2671
 
2672
+ if ( isset( $data[ 'options' ] ) && is_array( $data[ 'options' ] ) ) {
2673
+ $options = $data[ 'options' ];
2674
+ }
2675
+
2676
  if ( ! empty( $data['parent_dropdown_relationship'] ) && ! UM()->user()->preview ) {
2677
 
2678
  $disabled_by_parent_option = 'disabled = disabled';
2707
  um_user( $data['parent_dropdown_relationship'] )
2708
  ) {
2709
  $options = call_user_func( $data['custom_dropdown_options_source'], $data['parent_dropdown_relationship'] );
2710
+
2711
  $disabled_by_parent_option = '';
2712
  if ( um_user( $form_key ) ) {
2713
  $select_original_option_value = " data-um-original-value='" . um_user( $form_key ) . "' ";
2714
  }
2715
  }
2716
+ }
2717
+
2718
+ // Child dropdown option selected
2719
+ if ( isset( UM()->form()->post_form[ $form_key ] ) ) {
2720
+ $select_original_option_value = " data-um-original-value='" . esc_attr( UM()->form()->post_form[ $form_key ] ) . "' ";
2721
+ }
2722
+
2723
+ // Child dropdown
2724
+ if ( $has_parent_option ) {
2725
 
2726
+ if ( ! empty( $data['custom_dropdown_options_source'] ) && $has_parent_option &&
2727
+ function_exists( $data['custom_dropdown_options_source'] ) && isset( UM()->form()->post_form[ $form_key ] ) ) {
2728
+ $options = call_user_func( $data['custom_dropdown_options_source'], $data['parent_dropdown_relationship'] );
2729
+ }
2730
  }
2731
 
2732
  if ( ! empty( $data['custom_dropdown_options_source'] ) ) {
2781
 
2782
  }
2783
 
 
 
 
 
 
 
2784
  /**
2785
  * UM hook
2786
  *
2808
  $options = UM()->builtin()->get ( $filter );
2809
  }
2810
 
2811
+ // 'country'
2812
+ if ( $key === 'country' && empty( $options ) ) {
2813
  $options = UM()->builtin()->get( 'countries' );
2814
+ } else if ( empty( $options ) && isset( $data['options'] ) ) {
2815
+ $options = $data['options'];
2816
  }
2817
 
2818
+ $options = apply_filters( 'um_selectbox_options', $options, $key );
2819
+
2820
  if ( isset( $options ) ) {
2821
  /**
2822
  * UM hook
2864
  }
2865
  }
2866
 
2867
+ if ( $form_key === 'role' ) {
2868
+ $options = $this->get_available_roles( $form_key, $options );
2869
+ }
2870
 
2871
  /**
2872
  * UM hook
2878
  * [{"var":"$options_pair","type":"null","desc":"Enable pairs"},
2879
  * {"var":"$data","type":"array","desc":"Field Data"}]
2880
  */
2881
+ $options_pair = apply_filters( 'um_select_options_pair', null, $data );
2882
 
2883
  // switch options pair for custom options from a callback function
2884
  if ( ! empty( $data['custom_dropdown_options_source'] ) ) {
2885
  $options_pair = true;
2886
  }
2887
 
2888
+ $field_value = '';
2889
+
2890
+ if ( ! empty( $placeholder ) && is_string( $placeholder ) ) {
2891
+ $placeholder = strip_tags( $placeholder );
2892
+ }
2893
+
2894
+ $output .= '<select data-default="' . $data['default'] . '" ' . $disabled . ' ' . $select_original_option_value . ' ' . $disabled_by_parent_option . ' name="' . esc_attr( $form_key ) . '" id="' . esc_attr( $field_id ) . '" data-validate="' . esc_attr( $validate ) . '" data-key="' . esc_attr( $key ) . '" class="' . $this->get_class( $key, $data, $class ) . '" style="width: 100%" data-placeholder="' . esc_attr( $placeholder ) . '" ' . $atts_ajax . '>';
2895
+
2896
+ $output .= '<option value=""></option>';
2897
 
2898
  // add options
2899
  if ( ! empty( $options ) ) {
2941
  $output .= '</div>';
2942
 
2943
 
2944
+ if ( $this->is_error( $form_key ) ) {
2945
  $output .= $this->field_error( $this->show_error( $form_key ) );
2946
  }
2947
 
3395
  * ?>
3396
  */
3397
  $um_field_checkbox_item_title = apply_filters( 'um_field_checkbox_item_title', $um_field_checkbox_item_title, $key, $v, $data );
3398
+ $output .= '<span class="um-field-checkbox-option">' . __( $um_field_checkbox_item_title, 'ultimate-member' ) . '</span>';
3399
  $output .= '</label>';
3400
 
3401
  if ( $i % 2 == 0 ) {
includes/core/class-files.php CHANGED
@@ -286,6 +286,7 @@ if ( ! class_exists( 'um\core\Files' ) ) {
286
  wp_send_json_error( esc_js( __( 'Invalid coordinates', 'ultimate-member' ) ) );
287
  }
288
 
 
289
  $image_path = um_is_file_owner( $src, $user_id, true );
290
  if ( ! $image_path ) {
291
  wp_send_json_error( esc_js( __( 'Invalid file ownership', 'ultimate-member' ) ) );
@@ -301,9 +302,10 @@ if ( ! class_exists( 'um\core\Files' ) ) {
301
  }
302
 
303
 
304
-
305
  /**
306
  * Image upload by AJAX
 
 
307
  */
308
  function ajax_image_upload() {
309
  $ret['error'] = null;
@@ -312,7 +314,7 @@ if ( ! class_exists( 'um\core\Files' ) ) {
312
  $id = $_POST['key'];
313
  $timestamp = $_POST['timestamp'];
314
  $nonce = $_POST['_wpnonce'];
315
- $user_id = $_POST['user_id'];
316
 
317
  UM()->fields()->set_id = $_POST['set_id'];
318
  UM()->fields()->set_mode = $_POST['set_mode'];
@@ -338,7 +340,7 @@ if ( ! class_exists( 'um\core\Files' ) ) {
338
  * }
339
  * ?>
340
  */
341
- $um_image_upload_nonce = apply_filters( "um_image_upload_nonce", true );
342
 
343
  if ( $um_image_upload_nonce ) {
344
  if ( ! wp_verify_nonce( $nonce, "um_upload_nonce-{$timestamp}" ) && is_user_logged_in() ) {
@@ -355,11 +357,10 @@ if ( ! class_exists( 'um\core\Files' ) ) {
355
  UM()->uploader()->replace_upload_dir = true;
356
  $uploaded = UM()->uploader()->upload_image( $_FILES[ $id ], $user_id, $id );
357
  UM()->uploader()->replace_upload_dir = false;
358
- if ( isset( $uploaded['error'] ) ){
359
  $ret['error'] = $uploaded['error'];
360
  } else {
361
- $ts = current_time( 'timestamp' );
362
- $ret[ ] = $uploaded['handle_upload'];
363
  }
364
 
365
  }
@@ -1117,250 +1118,13 @@ if ( ! class_exists( 'um\core\Files' ) ) {
1117
  * @param $source
1118
  * @param $key
1119
  *
 
 
1120
  * @return string
1121
  */
1122
  function new_user_upload( $user_id, $source, $key ) {
1123
-
1124
- if( ! is_numeric( $user_id ) ){
1125
- wp_die( __("Invalid user ID: ".json_encode( $user_id )." ",'ultimate-member') );
1126
- }
1127
-
1128
- $user_id = trim( $user_id );
1129
-
1130
- // if he does not have uploads dir yet
1131
- $this->new_user( $user_id );
1132
-
1133
- if ( is_user_logged_in() && ( get_current_user_id() != $user_id ) && ! UM()->roles()->um_user_can( 'can_edit_everyone' ) ) {
1134
- wp_die( __( 'Unauthorized to do this attempt.', 'ultimate-member' ) );
1135
- }
1136
-
1137
- /**
1138
- * UM hook
1139
- *
1140
- * @type filter
1141
- * @title um_allow_frontend_image_uploads
1142
- * @description Allow Fronend Image uploads
1143
- * @input_vars
1144
- * [{"var":"$allow","type":"bool","desc":"Allow"},
1145
- * {"var":"$user_id","type":"int","desc":"User ID"},
1146
- * {"var":"$key","type":"string","desc":"Field Key"}]
1147
- * @change_log
1148
- * ["Since: 2.0"]
1149
- * @usage add_filter( 'um_allow_frontend_image_uploads', 'function_name', 10, 3 );
1150
- * @example
1151
- * <?php
1152
- * add_filter( 'um_allow_frontend_image_uploads', 'my_allow_frontend_image_uploads', 10, 3 );
1153
- * function my_allow_frontend_image_uploads( $data ) {
1154
- * // your code here
1155
- * return $data;
1156
- * }
1157
- * ?>
1158
- */
1159
- $allow_frontend_image_uploads = apply_filters( 'um_allow_frontend_image_uploads', false, $user_id, $key );
1160
-
1161
- if ( $allow_frontend_image_uploads == false && ! is_user_logged_in() && ( $key == 'profile_photo' || $key == 'cover_photo' ) ) {
1162
- wp_die( __('Unauthorized to do this attempt.','ultimate-member') );
1163
- }
1164
-
1165
- $ext = '.' . pathinfo($source, PATHINFO_EXTENSION);
1166
-
1167
- // copy & overwrite file
1168
-
1169
- if( in_array( $key , array('profile_photo','cover_photo') ) ){
1170
- $filename = $key . $ext;
1171
- $name = $key;
1172
- }else{
1173
- $filename = basename( $source );
1174
- }
1175
-
1176
-
1177
-
1178
- if ( file_exists( $this->upload_basedir . $user_id . '/' . $filename ) ) {
1179
- unlink( $this->upload_basedir . $user_id . '/' . $filename );
1180
- }
1181
- copy( $source, $this->upload_basedir . $user_id . '/' . $filename );
1182
-
1183
- $info = @getimagesize( $source );
1184
-
1185
- // thumbs
1186
- if ( $key == 'profile_photo' ) {
1187
-
1188
- list($w, $h) = @getimagesize( $source );
1189
-
1190
-
1191
- $sizes = UM()->options()->get( 'photo_thumb_sizes' );
1192
- foreach( $sizes as $size ) {
1193
-
1194
- $ratio = round( $w / $h, 2 );
1195
- $height = round( $size / $ratio, 2 );
1196
-
1197
- if ( file_exists( $this->upload_basedir . $user_id . '/' . $name . '-' . $size . $ext ) ) {
1198
- unlink( $this->upload_basedir . $user_id . '/' . $name . '-' . $size . $ext );
1199
- }
1200
-
1201
- if ( $size < $w ) {
1202
-
1203
- if ( $info['mime'] == 'image/jpeg' ){
1204
- $thumb_s = imagecreatefromjpeg( $source );
1205
- $thumb = imagecreatetruecolor( $size, $size );
1206
- imagecopyresampled( $thumb, $thumb_s, 0, 0, 0, 0, $size, $size, $w, $h );
1207
- imagejpeg( $thumb, $this->upload_basedir . $user_id . '/' . $name . '-' . $size . $ext, 100);
1208
- imagejpeg( $thumb, $this->upload_basedir . $user_id . '/' . $name . $ext, 100);
1209
- }else if ( $info['mime'] == 'image/png' ){
1210
- $thumb_s = imagecreatefrompng( $source );
1211
- $thumb = imagecreatetruecolor( $size, $size );
1212
- imagealphablending( $thumb, false);
1213
- imagesavealpha( $thumb, true);
1214
- imagecopyresampled( $thumb, $thumb_s, 0, 0, 0, 0, $size, $size, $w, $h );
1215
- imagepng( $thumb, $this->upload_basedir . $user_id . '/' . $name . '-' . $size . $ext );
1216
- }else if ( $info['mime'] == 'image/gif' ){
1217
- $thumb_s = imagecreatefromgif( $source );
1218
- $thumb = imagecreatetruecolor( $size, $size );
1219
- imagecopyresampled( $thumb, $thumb_s, 0, 0, 0, 0, $size, $size, $w, $h );
1220
- imagegif( $thumb, $this->upload_basedir . $user_id . '/' . $name . '-' . $size . $ext);
1221
- imagegif( $thumb, $this->upload_basedir . $user_id . '/' . $name . $ext);
1222
- }
1223
- }
1224
-
1225
- }
1226
-
1227
- // removes a synced profile photo
1228
- delete_user_meta( $user_id, 'synced_profile_photo' );
1229
-
1230
- } else if ( $key == 'cover_photo' ) {
1231
-
1232
- list($w, $h) = @getimagesize( $source );
1233
-
1234
- $sizes = UM()->options()->get( 'cover_thumb_sizes' );
1235
- foreach ( $sizes as $size ) {
1236
-
1237
- $ratio = round( $w / $h, 2 );
1238
- $height = round( $size / $ratio, 2 );
1239
-
1240
- if ( file_exists( $this->upload_basedir . $user_id . '/' . $name . '-' . $size . $ext ) ) {
1241
- unlink( $this->upload_basedir . $user_id . '/' . $name . '-' . $size . $ext );
1242
- }
1243
-
1244
- if ( $size < $w ) {
1245
-
1246
- if ( $info['mime'] == 'image/jpeg' ){
1247
- $thumb = imagecreatetruecolor( $size, $height );
1248
- $thumb_s = imagecreatefromjpeg( $source );
1249
- imagecopyresampled( $thumb, $thumb_s, 0, 0, 0, 0, $size, $height, $w, $h );
1250
- imagejpeg( $thumb, $this->upload_basedir . $user_id . '/' . $name . '-' . $size . $ext, 100);
1251
- }else if ( $info['mime'] == 'image/png' ){
1252
- $thumb_s = imagecreatefrompng( $source );
1253
- $thumb = imagecreatetruecolor( $size, $height );
1254
- imagealphablending( $thumb, false);
1255
- imagesavealpha( $thumb, true);
1256
- imagecopyresampled( $thumb, $thumb_s, 0, 0, 0, 0, $size, $height, $w, $h );
1257
- imagepng( $thumb, $this->upload_basedir . $user_id . '/' . $name . '-' . $size . $ext );
1258
- }else if ( $info['mime'] == 'image/gif' ){
1259
- $thumb = imagecreatetruecolor( $size, $height );
1260
- $thumb_s = imagecreatefromgif( $source );
1261
- imagecopyresampled( $thumb, $thumb_s, 0, 0, 0, 0, $size, $height, $w, $h );
1262
- imagegif( $thumb, $this->upload_basedir . $user_id . '/' . $name . '-' . $size . $ext);
1263
- }
1264
- }
1265
-
1266
- }
1267
-
1268
- }
1269
-
1270
- // clean up temp
1271
- $dir = dirname( $source );
1272
- unlink( $source );
1273
- rmdir( $dir );
1274
-
1275
- /**
1276
- * UM hook
1277
- *
1278
- * @type action
1279
- * @title um_before_upload_db_meta
1280
- * @description Update user's meta before upload
1281
- * @input_vars
1282
- * [{"var":"$user_id","type":"int","desc":"User ID"},
1283
- * {"var":"$key","type":"string","desc":"Meta key"}]
1284
- * @change_log
1285
- * ["Since: 2.0"]
1286
- * @usage add_action( 'um_before_upload_db_meta', 'function_name', 10, 2 );
1287
- * @example
1288
- * <?php
1289
- * add_action( 'um_before_upload_db_meta', 'my_before_upload_db_meta', 10, 2 );
1290
- * function my_before_upload_db_meta( $user_id, $key ) {
1291
- * // your code here
1292
- * }
1293
- * ?>
1294
- */
1295
- do_action( 'um_before_upload_db_meta', $user_id, $key );
1296
- /**
1297
- * UM hook
1298
- *
1299
- * @type action
1300
- * @title um_before_upload_db_meta_{$key}
1301
- * @description Update user's meta before upload
1302
- * @input_vars
1303
- * [{"var":"$user_id","type":"int","desc":"User ID"}]
1304
- * @change_log
1305
- * ["Since: 2.0"]
1306
- * @usage add_action( 'um_before_upload_db_meta_{$key}', 'function_name', 10, 1 );
1307
- * @example
1308
- * <?php
1309
- * add_action( 'um_before_upload_db_meta_{$key}', 'my_before_upload_db_meta', 10, 1 );
1310
- * function my_before_upload_db_meta( $user_id ) {
1311
- * // your code here
1312
- * }
1313
- * ?>
1314
- */
1315
- do_action( "um_before_upload_db_meta_{$key}", $user_id );
1316
-
1317
- update_user_meta( $user_id, $key, $filename );
1318
-
1319
- /**
1320
- * UM hook
1321
- *
1322
- * @type action
1323
- * @title um_after_upload_db_meta
1324
- * @description Update user's meta before upload
1325
- * @input_vars
1326
- * [{"var":"$user_id","type":"int","desc":"User ID"},
1327
- * {"var":"$key","type":"string","desc":"Meta key"}]
1328
- * @change_log
1329
- * ["Since: 2.0"]
1330
- * @usage add_action( 'um_after_upload_db_meta', 'function_name', 10, 2 );
1331
- * @example
1332
- * <?php
1333
- * add_action( 'um_after_upload_db_meta', 'my_after_upload_db_meta', 10, 2 );
1334
- * function my_after_upload_db_meta( $user_id, $key ) {
1335
- * // your code here
1336
- * }
1337
- * ?>
1338
- */
1339
- do_action( 'um_after_upload_db_meta', $user_id, $key );
1340
- /**
1341
- * UM hook
1342
- *
1343
- * @type action
1344
- * @title um_after_upload_db_meta_{$key}
1345
- * @description Update user's meta after upload
1346
- * @input_vars
1347
- * [{"var":"$user_id","type":"int","desc":"User ID"}]
1348
- * @change_log
1349
- * ["Since: 2.0"]
1350
- * @usage add_action( 'um_after_upload_db_meta_{$key}', 'function_name', 10, 1 );
1351
- * @example
1352
- * <?php
1353
- * add_action( 'um_after_upload_db_meta_{$key}', 'my_after_upload_db_meta', 10, 1 );
1354
- * function my_after_upload_db_meta( $user_id ) {
1355
- * // your code here
1356
- * }
1357
- * ?>
1358
- */
1359
- do_action( "um_after_upload_db_meta_{$key}", $user_id );
1360
-
1361
- // the url of upload
1362
- return $this->upload_baseurl . $user_id . '/' . $filename;
1363
-
1364
  }
1365
 
1366
 
@@ -1427,7 +1191,7 @@ if ( ! class_exists( 'um\core\Files' ) ) {
1427
  *
1428
  * @return string
1429
  */
1430
- function format_bytes( $size , $precision = 1 ) {
1431
  if ( is_numeric( $size ) ) {
1432
  $base = log( $size, 1024 );
1433
  $suffixes = array( '', 'kb', 'MB', 'GB', 'TB' );
@@ -1441,5 +1205,32 @@ if ( ! class_exists( 'um\core\Files' ) ) {
1441
  }
1442
 
1443
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1444
  }
1445
  }
286
  wp_send_json_error( esc_js( __( 'Invalid coordinates', 'ultimate-member' ) ) );
287
  }
288
 
289
+ $user_id = empty( $_REQUEST['user_id'] ) ? get_current_user_id() : $_REQUEST['user_id'];
290
  $image_path = um_is_file_owner( $src, $user_id, true );
291
  if ( ! $image_path ) {
292
  wp_send_json_error( esc_js( __( 'Invalid file ownership', 'ultimate-member' ) ) );
302
  }
303
 
304
 
 
305
  /**
306
  * Image upload by AJAX
307
+ *
308
+ * @throws \Exception
309
  */
310
  function ajax_image_upload() {
311
  $ret['error'] = null;
314
  $id = $_POST['key'];
315
  $timestamp = $_POST['timestamp'];
316
  $nonce = $_POST['_wpnonce'];
317
+ $user_id = empty( $_POST['user_id'] ) ? get_current_user_id() : $_POST['user_id'];
318
 
319
  UM()->fields()->set_id = $_POST['set_id'];
320
  UM()->fields()->set_mode = $_POST['set_mode'];
340
  * }
341
  * ?>
342
  */
343
+ $um_image_upload_nonce = apply_filters( 'um_image_upload_nonce', true );
344
 
345
  if ( $um_image_upload_nonce ) {
346
  if ( ! wp_verify_nonce( $nonce, "um_upload_nonce-{$timestamp}" ) && is_user_logged_in() ) {
357
  UM()->uploader()->replace_upload_dir = true;
358
  $uploaded = UM()->uploader()->upload_image( $_FILES[ $id ], $user_id, $id );
359
  UM()->uploader()->replace_upload_dir = false;
360
+ if ( isset( $uploaded['error'] ) ) {
361
  $ret['error'] = $uploaded['error'];
362
  } else {
363
+ $ret[] = $uploaded['handle_upload'];
 
364
  }
365
 
366
  }
1118
  * @param $source
1119
  * @param $key
1120
  *
1121
+ * @deprecated 2.1.0
1122
+ *
1123
  * @return string
1124
  */
1125
  function new_user_upload( $user_id, $source, $key ) {
1126
+ um_deprecated_function( 'new_user_upload', '2.1.0', '' );
1127
+ return '';
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1128
  }
1129
 
1130
 
1191
  *
1192
  * @return string
1193
  */
1194
+ function format_bytes( $size, $precision = 1 ) {
1195
  if ( is_numeric( $size ) ) {
1196
  $base = log( $size, 1024 );
1197
  $suffixes = array( '', 'kb', 'MB', 'GB', 'TB' );
1205
  }
1206
 
1207
 
1208
+ /**
1209
+ * Get the list of profile/cover sizes
1210
+ *
1211
+ * @param string $type
1212
+ *
1213
+ * @return array
1214
+ */
1215
+ function get_profile_photo_size( $type ) {
1216
+ $sizes = UM()->options()->get( $type );
1217
+
1218
+ $sizes = array_combine( $sizes, $sizes );
1219
+
1220
+ if ( $type == 'cover_thumb_sizes' ) {
1221
+ foreach ( $sizes as $key => $value ) {
1222
+ $sizes[ $key ] = $value . 'px';
1223
+ }
1224
+ } elseif ( $type == 'photo_thumb_sizes' ) {
1225
+ foreach ( $sizes as $key => $value ) {
1226
+ $sizes[ $key ] = $value . 'x' . $value . 'px';
1227
+ }
1228
+ }
1229
+
1230
+ $sizes['original'] = __( 'Original size', 'ultimate-member' );
1231
+ return $sizes;
1232
+ }
1233
+
1234
+
1235
  }
1236
  }
includes/core/class-form.php CHANGED
@@ -26,22 +26,26 @@ if ( ! class_exists( 'um\core\Form' ) ) {
26
  var $form_id;
27
 
28
 
 
 
 
 
 
 
29
  /**
30
  * Form constructor.
31
  */
32
  function __construct() {
33
 
34
- $this->post_form = null;
35
-
36
  $this->form_suffix = null;
37
 
38
  $this->errors = null;
39
 
40
  $this->processing = null;
41
 
42
- add_action('template_redirect', array(&$this, 'form_init'), 2);
43
 
44
- add_action('init', array(&$this, 'field_declare'), 10);
45
 
46
  }
47
 
@@ -218,8 +222,9 @@ if ( ! class_exists( 'um\core\Form' ) ) {
218
  * @return boolean
219
  */
220
  function has_error( $key ) {
221
- if ( isset( $this->errors[$key] ) )
222
  return true;
 
223
  return false;
224
  }
225
 
@@ -227,7 +232,7 @@ if ( ! class_exists( 'um\core\Form' ) ) {
227
  /**
228
  * Declare all fields
229
  */
230
- function field_declare(){
231
  if ( isset( UM()->builtin()->custom_fields ) ) {
232
  $this->all_fields = UM()->builtin()->custom_fields;
233
  } else {
@@ -237,11 +242,11 @@ if ( ! class_exists( 'um\core\Form' ) ) {
237
 
238
 
239
  /**
240
- * Validate form
241
  */
242
  function form_init() {
243
  if ( isset( $_SERVER['REQUEST_METHOD'] ) ) {
244
- $http_post = ('POST' == $_SERVER['REQUEST_METHOD']);
245
  } else {
246
  $http_post = 'POST';
247
  }
26
  var $form_id;
27
 
28
 
29
+ /**
30
+ * @var null
31
+ */
32
+ var $post_form = null;
33
+
34
+
35
  /**
36
  * Form constructor.
37
  */
38
  function __construct() {
39
 
 
 
40
  $this->form_suffix = null;
41
 
42
  $this->errors = null;
43
 
44
  $this->processing = null;
45
 
46
+ add_action( 'template_redirect', array( &$this, 'form_init' ), 2 );
47
 
48
+ add_action( 'init', array( &$this, 'field_declare' ), 10 );
49
 
50
  }
51
 
222
  * @return boolean
223
  */
224
  function has_error( $key ) {
225
+ if ( isset( $this->errors[ $key ] ) ) {
226
  return true;
227
+ }
228
  return false;
229
  }
230
 
232
  /**
233
  * Declare all fields
234
  */
235
+ function field_declare() {
236
  if ( isset( UM()->builtin()->custom_fields ) ) {
237
  $this->all_fields = UM()->builtin()->custom_fields;
238
  } else {
242
 
243
 
244
  /**
245
+ * Validate form on submit
246
  */
247
  function form_init() {
248
  if ( isset( $_SERVER['REQUEST_METHOD'] ) ) {
249
+ $http_post = ( 'POST' == $_SERVER['REQUEST_METHOD'] );
250
  } else {
251
  $http_post = 'POST';
252
  }
includes/core/class-gdpr.php CHANGED
@@ -1,7 +1,7 @@
1
  <?php
2
  namespace um\core;
3
 
4
- // Exit if accessed directly.
5
  if ( ! defined( 'ABSPATH' ) ) exit;
6
 
7
 
1
  <?php
2
  namespace um\core;
3
 
4
+
5
  if ( ! defined( 'ABSPATH' ) ) exit;
6
 
7
 
includes/core/class-mail.php CHANGED
@@ -435,7 +435,10 @@ if ( ! class_exists( 'um\core\Mail' ) ) {
435
  add_filter( 'um_template_tags_replaces_hook', array( UM()->mail(), 'add_replace_placeholder' ), 10, 1 );
436
 
437
  $subject = apply_filters( 'um_email_send_subject', UM()->options()->get( $template . '_sub' ), $template );
438
- $this->subject = um_convert_tags( $subject , $args );
 
 
 
439
 
440
  $this->message = $this->prepare_template( $template, $args );
441
 
435
  add_filter( 'um_template_tags_replaces_hook', array( UM()->mail(), 'add_replace_placeholder' ), 10, 1 );
436
 
437
  $subject = apply_filters( 'um_email_send_subject', UM()->options()->get( $template . '_sub' ), $template );
438
+
439
+ $subject = wp_unslash( um_convert_tags( $subject , $args ) );
440
+
441
+ $this->subject = html_entity_decode( $subject, ENT_QUOTES, 'UTF-8' );
442
 
443
  $this->message = $this->prepare_template( $template, $args );
444
 
includes/core/class-member-directory.php ADDED
@@ -0,0 +1,2198 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ namespace um\core;
3
+
4
+
5
+ if ( ! defined( 'ABSPATH' ) ) exit;
6
+
7
+
8
+ if ( ! class_exists( 'um\core\Member_Directory' ) ) {
9
+
10
+
11
+ /**
12
+ * Class Member_Directory
13
+ * @package um\core
14
+ */
15
+ class Member_Directory {
16
+
17
+
18
+ /**
19
+ * Member Directory Views
20
+ *
21
+ * @var array
22
+ */
23
+ var $view_types = array();
24
+
25
+
26
+ /**
27
+ * @var array
28
+ */
29
+ var $sort_fields = array();
30
+
31
+
32
+ /**
33
+ * @var array
34
+ */
35
+ var $default_sorting = array();
36
+
37
+
38
+ /**
39
+ * @var array
40
+ */
41
+ var $filter_fields = array();
42
+
43
+
44
+ /**
45
+ * @var array
46
+ */
47
+ var $custom_filters_in_query = array();
48
+
49
+
50
+
51
+ var $filter_supported_fields = array();
52
+
53
+
54
+ var $filter_types = array(
55
+ // 'select',
56
+ // 'slider',
57
+ // 'datepicker',
58
+ // 'timepicker',
59
+ );
60
+
61
+
62
+ var $core_search_fields = array(
63
+ 'user_login',
64
+ 'user_url',
65
+ 'display_name',
66
+ 'user_email',
67
+ 'user_nicename',
68
+ );
69
+
70
+
71
+ /**
72
+ * @var
73
+ */
74
+ var $query_args;
75
+
76
+
77
+ /**
78
+ * @var User Card cover size
79
+ */
80
+ var $cover_size;
81
+
82
+
83
+ /**
84
+ * @var User Avatar size
85
+ */
86
+ var $avatar_size;
87
+
88
+
89
+ /**
90
+ * Member_Directory constructor.
91
+ */
92
+ function __construct() {
93
+ add_filter( 'plugins_loaded', array( &$this, 'init_variables' ), 99999 );
94
+ add_filter( 'init', array( &$this, 'init_filter_types' ), 2 );
95
+
96
+ add_action( 'template_redirect', array( &$this, 'access_members' ), 555 );
97
+ }
98
+
99
+
100
+ /**
101
+ * Getting member directory post ID via hash
102
+ * Hash is unique attr, which we use visible at frontend
103
+ *
104
+ * @param string $hash
105
+ *
106
+ * @return bool|int
107
+ */
108
+ function get_directory_by_hash( $hash ) {
109
+ global $wpdb;
110
+
111
+ $directory_id = $wpdb->get_var( $wpdb->prepare( "SELECT ID FROM {$wpdb->posts} WHERE SUBSTRING( MD5( ID ), 11, 5 ) = %s", $hash ) );
112
+
113
+ if ( empty( $directory_id ) ) {
114
+ return false;
115
+ }
116
+
117
+ return (int) $directory_id;
118
+ }
119
+
120
+
121
+ /**
122
+ * @param $id
123
+ *
124
+ * @return bool|string
125
+ */
126
+ function get_directory_hash( $id ) {
127
+ $hash = substr( md5( $id ), 10, 5 );
128
+ return $hash;
129
+ }
130
+
131
+
132
+ /**
133
+ * Get view Type template
134
+ * @param string $type
135
+ *
136
+ * @return string
137
+ */
138
+ function get_type_basename( $type ) {
139
+ return apply_filters( "um_member_directory_{$type}_type_template_basename", '' );
140
+ }
141
+
142
+
143
+ /**
144
+ * Tag conversion for member directory
145
+ *
146
+ * @param string $string
147
+ * @param array $array
148
+ *
149
+ * @return string
150
+ */
151
+ function convert_tags( $string, $array ) {
152
+
153
+ $search = array(
154
+ '{total_users}',
155
+ );
156
+
157
+ $replace = array(
158
+ $array['total_users'],
159
+ );
160
+
161
+ $string = str_replace( $search, $replace, $string );
162
+ return $string;
163
+ }
164
+
165
+
166
+ /**
167
+ * Members page allowed?
168
+ *
169
+ * can be disabled by "Enable Members Directory" option
170
+ *
171
+ */
172
+ function access_members() {
173
+ if ( UM()->options()->get( 'members_page' ) == 0 && um_is_core_page( 'members' ) ) {
174
+ um_redirect_home();
175
+ }
176
+ }
177
+
178
+
179
+ /**
180
+ * @param $value
181
+ * @param $key
182
+ * @param $post_id
183
+ *
184
+ * @return array
185
+ */
186
+ function before_save_data( $value, $key, $post_id ) {
187
+
188
+ $post = get_post( $post_id );
189
+
190
+ if ( $post->post_type == 'um_directory' ) {
191
+
192
+ if ( ! empty( $value ) && in_array( $key, array( '_um_view_types', '_um_roles', '_um_roles_can_search', '_um_roles_can_filter' ) ) ) {
193
+ $value = array_keys( $value );
194
+ } elseif ( $key == '_um_search_filters' ) {
195
+
196
+ $temp_value = array();
197
+
198
+ if ( ! empty( $value ) ) {
199
+ foreach ( $value as $k ) {
200
+ $filter_type = $this->filter_types[ $k ];
201
+ if ( ! empty( $filter_type ) ) {
202
+ if ( $filter_type == 'select' ) {
203
+ if ( ! empty( $_POST[ $k ] ) ) {
204
+ $temp_value[ $k ] = trim( $_POST[ $k ] );
205
+ }
206
+ } elseif ( $filter_type == 'slider' ) {
207
+ if ( ! empty( $_POST[ $k ] ) ) {
208
+ $temp_value[ $k ] = $_POST[ $k ];
209
+ }
210
+ } elseif ( $filter_type == 'timepicker' || $filter_type == 'datepicker' ) {
211
+ if ( ! empty( $_POST[ $k . '_from' ] ) && ! empty( $_POST[ $k . '_to' ] ) ) {
212
+ $temp_value[ $k ] = array( $_POST[ $k . '_from' ], $_POST[ $k . '_to' ] );
213
+ }
214
+ }
215
+ }
216
+ }
217
+ }
218
+
219
+ $value = $temp_value;
220
+ }
221
+ }
222
+
223
+ return $value;
224
+ }
225
+
226
+
227
+ /**
228
+ *
229
+ */
230
+ function init_variables() {
231
+
232
+ // Types
233
+ $this->view_types = apply_filters( 'um_member_directory_views', array(
234
+ 'grid' => array( 'title' => __( 'Grid', 'ultimate-member' ), 'icon' => 'um-faicon-th' ),
235
+ 'list' => array( 'title' => __( 'List', 'ultimate-member' ), 'icon' => 'um-faicon-list' ),
236
+ ) );
237
+
238
+ // Sort
239
+ $this->sort_fields = apply_filters( 'um_members_directory_sort_fields', array(
240
+ 'user_registered_desc' => __( 'New users first', 'ultimate-member' ),
241
+ 'user_registered_asc' => __( 'Old users first', 'ultimate-member' ),
242
+ 'username' => __( 'Username', 'ultimate-member' ),
243
+ 'first_name' => __( 'First name', 'ultimate-member' ),
244
+ 'last_name' => __( 'Last name', 'ultimate-member' ),
245
+ 'display_name' => __( 'Display name', 'ultimate-member' ),
246
+ 'last_login' => __( 'Last login', 'ultimate-member' ),
247
+ ) );
248
+
249
+ asort( $this->sort_fields );
250
+
251
+ $this->default_sorting = apply_filters( 'um_members_directory_default_sort', array_merge( $this->sort_fields, array(
252
+ 'random' => __( 'Random', 'ultimate-member' ),
253
+ 'other' => __( 'Other (Custom Field)', 'ultimate-member' ),
254
+ ) ) );
255
+
256
+ asort( $this->default_sorting );
257
+
258
+ // Filters
259
+ $this->filter_fields = array(
260
+ 'country' => __( 'Country', 'ultimate-member' ),
261
+ 'gender' => __( 'Gender', 'ultimate-member' ),
262
+ 'languages' => __( 'Languages', 'ultimate-member' ),
263
+ 'role' => __( 'Roles', 'ultimate-member' ),
264
+ 'birth_date' => __( 'Age', 'ultimate-member' ),
265
+ 'last_login' => __( 'Last Login', 'ultimate-member' ),
266
+ 'user_registered' => __( 'User Registered', 'ultimate-member' ),
267
+ );
268
+
269
+ $this->filter_supported_fields = apply_filters( 'um_members_directory_custom_field_types_supported_filter', array( 'date', 'time', 'select', 'multiselect', 'radio', 'checkbox', 'rating' ) );
270
+
271
+ if ( ! empty( UM()->builtin()->saved_fields ) ) {
272
+ foreach ( UM()->builtin()->saved_fields as $key => $data ) {
273
+ if ( isset( $data['type'] ) && in_array( $data['type'], $this->filter_supported_fields ) ) {
274
+ if ( isset( $data['title'] ) && array_search( $data['title'], $this->filter_fields ) !== false ) {
275
+ $data['title'] = $data['title'] . ' (' . $key . ')';
276
+ }
277
+
278
+ $title = isset( $data['title'] ) ? $data['title'] : ( isset( $data['label'] ) ? $data['label'] : '' );
279
+ if ( empty( $title ) ) {
280
+ continue;
281
+ }
282
+
283
+ $this->filter_fields[ $key ] = $title;
284
+ }
285
+ }
286
+ }
287
+
288
+ $this->filter_fields = apply_filters( 'um_members_directory_filter_fields', $this->filter_fields );
289
+
290
+ ksort( $this->filter_fields );
291
+ }
292
+
293
+
294
+ /**
295
+ *
296
+ */
297
+ function init_filter_types() {
298
+ $this->filter_types = apply_filters( 'um_members_directory_filter_types', array(
299
+ 'country' => 'select',
300
+ 'gender' => 'select',
301
+ 'languages' => 'select',
302
+ 'role' => 'select',
303
+ 'birth_date' => 'slider',
304
+ 'last_login' => 'datepicker',
305
+ 'user_registered' => 'datepicker',
306
+ ) );
307
+
308
+ $fields = UM()->builtin()->all_user_fields;
309
+
310
+ $custom_fields_types = array_flip( array_keys( $this->filter_fields ) );
311
+ foreach ( $custom_fields_types as $key => &$value ) {
312
+ if ( ! isset( $fields[ $key ] ) ) {
313
+ unset( $custom_fields_types[ $key ] );
314
+ } else {
315
+ switch ( $fields[ $key ]['type'] ) {
316
+ default:
317
+ $value = apply_filters( 'um_custom_field_filter_type', 'select', $fields[ $key ] );
318
+ break;
319
+ case 'date':
320
+ $value = 'datepicker';
321
+ break;
322
+ case 'time':
323
+ $value = 'timepicker';
324
+ break;
325
+ case 'select':
326
+ case 'multiselect':
327
+ case 'radio':
328
+ case 'checkbox':
329
+ $value = 'select';
330
+ break;
331
+ case 'rating':
332
+ $value = 'slider';
333
+ break;
334
+ }
335
+ }
336
+ }
337
+
338
+ $this->filter_types = array_merge( $custom_fields_types, $this->filter_types );
339
+ }
340
+
341
+
342
+ /**
343
+ * Render member's directory
344
+ * filters selectboxes
345
+ *
346
+ * @param string $filter
347
+ * @param array $directory_data
348
+ * @param mixed $default_value
349
+ *
350
+ * @return string $filter
351
+ */
352
+ function show_filter( $filter, $directory_data, $default_value = false ) {
353
+
354
+ if ( empty( $this->filter_types[ $filter ] ) ) {
355
+ return '';
356
+ }
357
+
358
+ $field_key = $filter;
359
+ if ( $filter == 'last_login' ) {
360
+ $field_key = '_um_last_login';
361
+ }
362
+ if ( $filter == 'role' ) {
363
+ $field_key = 'role_select';
364
+ }
365
+
366
+ $fields = UM()->builtin()->all_user_fields;
367
+
368
+ if ( isset( $fields[ $field_key ] ) ) {
369
+ $attrs = $fields[ $field_key ];
370
+ } else {
371
+ /**
372
+ * UM hook
373
+ *
374
+ * @type filter
375
+ * @title um_custom_search_field_{$filter}
376
+ * @description Custom search settings by $filter
377
+ * @input_vars
378
+ * [{"var":"$settings","type":"array","desc":"Search Settings"}]
379
+ * @change_log
380
+ * ["Since: 2.0"]
381
+ * @usage
382
+ * <?php add_filter( 'um_custom_search_field_{$filter}', 'function_name', 10, 1 ); ?>
383
+ * @example
384
+ * <?php
385
+ * add_filter( 'um_custom_search_field_{$filter}', 'my_custom_search_field', 10, 1 );
386
+ * function my_change_email_template_file( $settings ) {
387
+ * // your code here
388
+ * return $settings;
389
+ * }
390
+ * ?>
391
+ */
392
+ $attrs = apply_filters( "um_custom_search_field_{$filter}", array(), $field_key );
393
+ }
394
+
395
+ /**
396
+ * UM hook
397
+ *
398
+ * @type filter
399
+ * @title um_search_fields
400
+ * @description Filter all search fields
401
+ * @input_vars
402
+ * [{"var":"$settings","type":"array","desc":"Search Fields"}]
403
+ * @change_log
404
+ * ["Since: 2.0"]
405
+ * @usage
406
+ * <?php add_filter( 'um_search_fields', 'function_name', 10, 1 ); ?>
407
+ * @example
408
+ * <?php
409
+ * add_filter( 'um_search_fields', 'my_search_fields', 10, 1 );
410
+ * function my_search_fields( $settings ) {
411
+ * // your code here
412
+ * return $settings;
413
+ * }
414
+ * ?>
415
+ */
416
+ $attrs = apply_filters( 'um_search_fields', $attrs, $field_key );
417
+
418
+ $unique_hash = substr( md5( $directory_data['form_id'] ), 10, 5 );
419
+
420
+ ob_start();
421
+
422
+ switch ( $this->filter_types[ $filter ] ) {
423
+ default: {
424
+
425
+ do_action( "um_member_directory_filter_type_{$this->filter_types[ $filter ]}", $filter, $this->filter_types );
426
+
427
+ break;
428
+ }
429
+ case 'select': {
430
+
431
+ // getting value from GET line
432
+ $filter_from_url = ! empty( $_GET[ 'filter_' . $filter . '_' . $unique_hash ] ) ? explode( '||', sanitize_text_field( $_GET[ 'filter_' . $filter . '_' . $unique_hash ] ) ) : array();
433
+
434
+ if ( isset( $attrs['metakey'] ) && strstr( $attrs['metakey'], 'role_' ) ) {
435
+ $shortcode_roles = get_post_meta( $directory_data['form_id'], '_um_roles', true );
436
+ $um_roles = UM()->roles()->get_roles( false );
437
+
438
+ if ( ! empty( $shortcode_roles ) && is_array( $shortcode_roles ) ) {
439
+ $attrs['options'] = array();
440
+
441
+ foreach ( $um_roles as $key => $value ) {
442
+ if ( in_array( $key, $shortcode_roles ) ) {
443
+ $attrs['options'][ $key ] = $value;
444
+ }
445
+ }
446
+ }
447
+ }
448
+
449
+ if ( ! empty( $attrs['custom_dropdown_options_source'] ) ) {
450
+ $attrs['custom'] = true;
451
+ $attrs['options'] = UM()->fields()->get_options_from_callback( $attrs, $attrs['type'] );
452
+ }
453
+
454
+ if ( isset( $attrs['label'] ) ) {
455
+ $attrs['label'] = strip_tags( $attrs['label'] );
456
+ }
457
+
458
+ if ( isset( $attrs['options'] ) && is_array( $attrs['options'] ) ) {
459
+ asort( $attrs['options'] );
460
+ }
461
+
462
+ $custom_dropdown = ! empty( $attrs['custom_dropdown_options_source'] ) ? ' data-um-ajax-source="' . $attrs['custom_dropdown_options_source'] . '"' : '';
463
+
464
+ if ( ! empty( $attrs['options'] ) || ! empty( $custom_dropdown ) ) { ?>
465
+
466
+ <select class="um-s1" id="<?php echo $filter; ?>" name="<?php echo $filter; ?>"
467
+ data-placeholder="<?php esc_attr_e( stripslashes( $attrs['label'] ), 'ultimate-member' ); ?>"
468
+ <?php echo $custom_dropdown; ?>>
469
+
470
+ <option></option>
471
+
472
+ <?php if ( ! empty( $attrs['options'] ) ) {
473
+ foreach ( $attrs['options'] as $k => $v ) {
474
+
475
+ $v = stripslashes( $v );
476
+
477
+ $opt = $v;
478
+
479
+ if ( strstr( $filter, 'role_' ) ) {
480
+ $opt = $k;
481
+ }
482
+
483
+ if ( isset( $attrs['custom'] ) ) {
484
+ $opt = $k;
485
+ } ?>
486
+
487
+ <option value="<?php echo esc_attr( $opt ); ?>" data-value_label="<?php esc_attr_e( $v, 'ultimate-member' ); ?>"
488
+ <?php disabled( ! empty( $filter_from_url ) && in_array( $opt, $filter_from_url ) ) ?>
489
+ <?php selected( $opt == $default_value ) ?>>
490
+ <?php _e( $v, 'ultimate-member' ); ?>
491
+ </option>
492
+
493
+ <?php }
494
+ } ?>
495
+
496
+ </select>
497
+
498
+ <?php }
499
+
500
+ break;
501
+ }
502
+ case 'slider': {
503
+ $range = $this->slider_filters_range( $filter, $directory_data );
504
+ $placeholder = $this->slider_range_placeholder( $filter, $attrs );
505
+
506
+ if ( $range ) { ?>
507
+ <input type="hidden" id="<?php echo $filter; ?>_min" name="<?php echo $filter; ?>[]" class="um_range_min" value="<?php echo ! empty( $default_value ) ? esc_attr( min( $default_value ) ) : '' ?>" />
508
+ <input type="hidden" id="<?php echo $filter; ?>_max" name="<?php echo $filter; ?>[]" class="um_range_max" value="<?php echo ! empty( $default_value ) ? esc_attr( max( $default_value ) ) : '' ?>" />
509
+ <div class="um-slider" data-field_name="<?php echo $filter; ?>" data-min="<?php echo $range[0] ?>" data-max="<?php echo $range[1] ?>"></div>
510
+ <div class="um-slider-range" data-placeholder="<?php echo esc_attr( $placeholder ); ?>" data-label="<?php echo ( ! empty( $attrs['label'] ) ) ? esc_attr__( stripslashes( $attrs['label'] ), 'ultimate-member' ) : ''; ?>"></div>
511
+ <?php }
512
+
513
+ break;
514
+ }
515
+ case 'datepicker': {
516
+
517
+ $range = $this->datepicker_filters_range( $filter );
518
+
519
+ $label = ! empty( $attrs['label'] ) ? $attrs['label'] : $attrs['title'];
520
+
521
+ if ( $range ) { ?>
522
+
523
+ <input type="text" id="<?php echo $filter; ?>_from" name="<?php echo $filter; ?>_from" class="um-datepicker-filter"
524
+ placeholder="<?php esc_attr_e( sprintf( '%s From', stripslashes( $label ) ), 'ultimate-member' ); ?>"
525
+ data-filter-label="<?php echo esc_attr( stripslashes( $label ) ); ?>"
526
+ data-date_min="<?php echo $range[0] ?>" data-date_max="<?php echo $range[1] ?>"
527
+ data-filter_name="<?php echo $filter; ?>" data-range="from" data-value="<?php echo ! empty( $default_value ) ? esc_attr( strtotime( min( $default_value ) ) ) : '' ?>" />
528
+ <input type="text" id="<?php echo $filter; ?>_to" name="<?php echo $filter; ?>_to" class="um-datepicker-filter"
529
+ placeholder="<?php esc_attr_e( sprintf( '%s To', stripslashes( $label ) ), 'ultimate-member' ); ?>"
530
+ data-filter-label="<?php echo esc_attr( stripslashes( $label ) ); ?>"
531
+ data-date_min="<?php echo $range[0] ?>" data-date_max="<?php echo $range[1] ?>"
532
+ data-filter_name="<?php echo $filter; ?>" data-range="to" data-value="<?php echo ! empty( $default_value ) ? esc_attr( strtotime( max( $default_value ) ) ) : '' ?>" />
533
+
534
+ <?php }
535
+
536
+ break;
537
+ }
538
+ case 'timepicker': {
539
+
540
+ $range = $this->timepicker_filters_range( $filter );
541
+
542
+ $label = ! empty( $attrs['label'] ) ? $attrs['label'] : $attrs['title'];
543
+
544
+ switch ( $attrs['format'] ) {
545
+ case 'g:i a':
546
+ $js_format = 'h:i a';
547
+ break;
548
+ case 'g:i A':
549
+ $js_format = 'h:i A';
550
+ break;
551
+ case 'H:i':
552
+ $js_format = 'HH:i';
553
+ break;
554
+ }
555
+
556
+ if ( $range ) { ?>
557
+
558
+ <input type="text" id="<?php echo $filter; ?>_from" name="<?php echo $filter; ?>_from" class="um-timepicker-filter"
559
+ placeholder="<?php esc_attr_e( sprintf( '%s From', stripslashes( $label ) ), 'ultimate-member' ); ?>"
560
+ data-filter-label="<?php echo esc_attr( stripslashes( $label ) ); ?>"
561
+ data-min="<?php echo $range[0] ?>" data-max="<?php echo $range[1] ?>"
562
+ data-format="<?php echo esc_attr( $js_format ) ?>" data-intervals="<?php echo esc_attr( $attrs['intervals'] ) ?>"
563
+ data-filter_name="<?php echo $filter; ?>" data-range="from" />
564
+ <input type="text" id="<?php echo $filter; ?>_to" name="<?php echo $filter; ?>_to" class="um-timepicker-filter"
565
+ placeholder="<?php esc_attr_e( sprintf( '%s To', stripslashes( $label ) ), 'ultimate-member' ); ?>"
566
+ data-filter-label="<?php echo esc_attr( stripslashes( $label ) ); ?>"
567
+ data-min="<?php echo $range[0] ?>" data-max="<?php echo $range[1] ?>"
568
+ data-format="<?php echo esc_attr( $js_format ) ?>" data-intervals="<?php echo esc_attr( $attrs['intervals'] ) ?>"
569
+ data-filter_name="<?php echo $filter; ?>" data-range="to" />
570
+
571
+ <?php }
572
+
573
+ break;
574
+ }
575
+ }
576
+
577
+ $filter = ob_get_clean();
578
+ return $filter;
579
+ }
580
+
581
+
582
+ /**
583
+ * @param string $filter
584
+ * @param array $directory_data
585
+ *
586
+ * @return mixed
587
+ */
588
+ function slider_filters_range( $filter, $directory_data ) {
589
+
590
+ switch ( $filter ) {
591
+
592
+ default: {
593
+
594
+ global $wpdb;
595
+ $meta = $wpdb->get_col( $wpdb->prepare( "SELECT DISTINCT meta_value
596
+ FROM {$wpdb->usermeta}
597
+ WHERE meta_key = %s
598
+ ORDER BY meta_value DESC", $filter ) );
599
+
600
+ if ( empty( $meta ) || count( $meta ) === 1 ) {
601
+ $range = false;
602
+ } elseif ( ! empty( $meta ) ) {
603
+ $range = array( min( $meta ), max( $meta ) );
604
+ }
605
+
606
+ $range = apply_filters( "um_member_directory_filter_{$filter}_slider", $range, $directory_data );
607
+
608
+ break;
609
+ }
610
+ case 'birth_date': {
611
+ global $wpdb;
612
+ $meta = $wpdb->get_col( "SELECT DISTINCT meta_value FROM {$wpdb->usermeta} WHERE meta_key='birth_date' ORDER BY meta_value DESC" );
613
+
614
+ if ( empty( $meta ) || count( $meta ) === 1 ) {
615
+ $range = false;
616
+ } elseif ( ! empty( $meta ) ) {
617
+ $range = array( $this->borndate( strtotime( $meta[0] ) ), $this->borndate( strtotime( $meta[ count( $meta ) - 1 ] ) ) );
618
+ }
619
+
620
+ break;
621
+ }
622
+
623
+ }
624
+
625
+ return $range;
626
+ }
627
+
628
+
629
+ /**
630
+ * @param $filter
631
+ *
632
+ * @return mixed
633
+ */
634
+ function slider_range_placeholder( $filter, $attrs ) {
635
+ switch ( $filter ) {
636
+ default: {
637
+ $label = ucwords( str_replace( array( 'um_', '_' ), array( '', ' ' ), $filter ) );
638
+ $placeholder = apply_filters( 'um_member_directory_filter_slider_range_placeholder', false, $filter );
639
+
640
+ if ( ! $placeholder ) {
641
+ switch ( $attrs['type'] ) {
642
+ default:
643
+ $placeholder = "<strong>$label:</strong>&nbsp;{min_range} - {max_range}";
644
+ break;
645
+ case 'rating':
646
+ $placeholder = "<strong>$label:</strong>&nbsp;{min_range} - {max_range}" . __( ' stars', 'ultimate-member' );
647
+ break;
648
+ }
649
+ }
650
+
651
+ break;
652
+ }
653
+ case 'birth_date': {
654
+ $placeholder = __( '<strong>Age:</strong>&nbsp;{min_range} - {max_range} years old', 'ultimate-member' );
655
+ break;
656
+ }
657
+ }
658
+
659
+ return $placeholder;
660
+ }
661
+
662
+
663
+ /**
664
+ * @param $filter
665
+ *
666
+ * @return mixed
667
+ */
668
+ function datepicker_filters_range( $filter ) {
669
+ global $wpdb;
670
+
671
+ switch ( $filter ) {
672
+
673
+ default: {
674
+
675
+ global $wpdb;
676
+ $meta = $wpdb->get_col( $wpdb->prepare( "SELECT DISTINCT meta_value
677
+ FROM {$wpdb->usermeta}
678
+ WHERE meta_key = %s
679
+ ORDER BY meta_value DESC", $filter ) );
680
+
681
+ if ( empty( $meta ) || count( $meta ) === 1 ) {
682
+ $range = false;
683
+ } elseif ( ! empty( $meta ) ) {
684
+ $range = array( strtotime( min( $meta ) ), strtotime( max( $meta ) ) );
685
+ }
686
+
687
+ $range = apply_filters( "um_member_directory_filter_{$filter}_datepicker", $range );
688
+
689
+ break;
690
+ }
691
+ case 'last_login': {
692
+ $meta = $wpdb->get_col( "SELECT DISTINCT meta_value
693
+ FROM {$wpdb->usermeta}
694
+ WHERE meta_key='_um_last_login'
695
+ ORDER BY meta_value DESC" );
696
+
697
+ if ( empty( $meta ) || count( $meta ) === 1 ) {
698
+ $range = false;
699
+ } elseif ( ! empty( $meta ) ) {
700
+ $range = array( min( $meta ), max( $meta ) );
701
+ }
702
+
703
+ break;
704
+ }
705
+ case 'user_registered': {
706
+ $meta = $wpdb->get_col(
707
+ "SELECT DISTINCT user_registered
708
+ FROM {$wpdb->users}
709
+ ORDER BY user_registered DESC"
710
+ );
711
+
712
+ if ( empty( $meta ) || count( $meta ) === 1 ) {
713
+ $range = false;
714
+ } elseif ( ! empty( $meta ) ) {
715
+ $range = array( strtotime( min( $meta ) ), strtotime( max( $meta ) ) );
716
+ }
717
+
718
+ break;
719
+ }
720
+
721
+ }
722
+
723
+ return $range;
724
+ }
725
+
726
+
727
+ /**
728
+ * @param $filter
729
+ *
730
+ * @return mixed
731
+ */
732
+ function timepicker_filters_range( $filter ) {
733
+
734
+ switch ( $filter ) {
735
+
736
+ default: {
737
+
738
+ global $wpdb;
739
+ $meta = $wpdb->get_col( $wpdb->prepare( "SELECT DISTINCT meta_value
740
+ FROM {$wpdb->usermeta}
741
+ WHERE meta_key = %s
742
+ ORDER BY meta_value DESC", $filter ) );
743
+
744
+ $meta = array_filter( $meta );
745
+
746
+ if ( empty( $meta ) || count( $meta ) === 1 ) {
747
+ $range = false;
748
+ } elseif ( ! empty( $meta ) ) {
749
+ $range = array( min( $meta ), max( $meta ) );
750
+ }
751
+
752
+
753
+ $range = apply_filters( "um_member_directory_filter_{$filter}_timepicker", $range );
754
+
755
+ break;
756
+ }
757
+
758
+ }
759
+
760
+ return $range;
761
+ }
762
+
763
+
764
+ /**
765
+ * @param $borndate
766
+ *
767
+ * @return false|string
768
+ */
769
+ function borndate( $borndate ) {
770
+ if ( date('m', $borndate) > date('m') || date('m', $borndate) == date('m') && date('d', $borndate ) > date('d')) {
771
+ return (date('Y') - date('Y', $borndate ) - 1);
772
+ }
773
+ return (date('Y') - date('Y', $borndate));
774
+ }
775
+
776
+
777
+ /**
778
+ * Handle members can view restrictions
779
+ */
780
+ function restriction_options() {
781
+ $this->hide_not_approved();
782
+ $this->hide_by_role();
783
+ $this->hide_by_account_settings();
784
+
785
+ do_action( 'um_member_directory_restrictions_handle_extend' );
786
+ }
787
+
788
+
789
+ /**
790
+ *
791
+ */
792
+ function hide_not_approved() {
793
+ if ( UM()->roles()->um_user_can( 'can_edit_everyone' ) ) {
794
+ return;
795
+ }
796
+
797
+ $this->query_args['meta_query'] = array_merge( $this->query_args['meta_query'], array( array(
798
+ 'key' => 'account_status',
799
+ 'value' => 'approved',
800
+ 'compare' => '='
801
+ ) ) );
802
+ }
803
+
804
+
805
+ /**
806
+ *
807
+ */
808
+ function hide_by_role() {
809
+ $roles = um_user( 'can_view_roles' );
810
+ $roles = maybe_unserialize( $roles );
811
+
812
+ if ( empty( $roles ) || ! UM()->roles()->um_user_can( 'can_view_all' ) ) {
813
+ return;
814
+ }
815
+
816
+ if ( ! empty( $this->query_args['role__in'] ) ) {
817
+ $this->query_args['role__in'] = is_array( $this->query_args['role__in'] ) ? $this->query_args['role__in'] : array( $this->query_args['role__in'] );
818
+ $this->query_args['role__in'] = array_intersect( $this->query_args['role__in'], $roles );
819
+ } else {
820
+ $this->query_args['role__in'] = $roles;
821
+ }
822
+ }
823
+
824
+
825
+ /**
826
+ *
827
+ */
828
+ function hide_by_account_settings() {
829
+ if ( ! UM()->options()->get( 'account_hide_in_directory' ) ) {
830
+ return;
831
+ }
832
+
833
+ if ( UM()->roles()->um_user_can( 'can_edit_everyone' ) ) {
834
+ return;
835
+ }
836
+
837
+ $meta_query = array(
838
+ "relation" => "OR",
839
+ array(
840
+ 'key' => 'hide_in_members',
841
+ 'value' => '',
842
+ 'compare' => 'NOT EXISTS'
843
+ ),
844
+ array(
845
+ "relation" => "AND",
846
+ array(
847
+ 'key' => 'hide_in_members',
848
+ 'value' => __( 'Yes', 'ultimate-member' ),
849
+ 'compare' => 'NOT LIKE'
850
+ ),
851
+ array(
852
+ 'key' => 'hide_in_members',
853
+ 'value' => 'Yes',
854
+ 'compare' => 'NOT LIKE'
855
+ ),
856
+ ),
857
+ );
858
+
859
+ $this->query_args['meta_query'] = array_merge( $this->query_args['meta_query'], array( $meta_query ) );
860
+ }
861
+
862
+
863
+ /**
864
+ * Handle "General Options" metabox settings
865
+ *
866
+ * @param array $directory_data
867
+ */
868
+ function general_options( $directory_data ) {
869
+ $this->show_selected_roles( $directory_data );
870
+ $this->show_only_with_avatar( $directory_data );
871
+ $this->show_only_with_cover( $directory_data );
872
+ $this->show_only_these_users( $directory_data );
873
+
874
+ do_action( 'um_member_directory_general_options_handle_extend', $directory_data );
875
+ }
876
+
877
+
878
+ /**
879
+ * Handle "User Roles to Display" option
880
+ *
881
+ * @param array $directory_data
882
+ */
883
+ function show_selected_roles( $directory_data ) {
884
+ // add roles to appear in directory
885
+ if ( ! empty( $directory_data['roles'] ) ) {
886
+ //since WP4.4 use 'role__in' argument
887
+ $this->query_args['role__in'] = maybe_unserialize( $directory_data['roles'] );
888
+ }
889
+ }
890
+
891
+
892
+ /**
893
+ * Handle "Only show members who have uploaded a profile photo" option
894
+ *
895
+ * @param array $directory_data
896
+ */
897
+ function show_only_with_avatar( $directory_data ) {
898
+ if ( $directory_data['has_profile_photo'] == 1 ) {
899
+ $meta_query = array(
900
+ 'relation' => 'OR',
901
+ array(
902
+ 'key' => 'synced_profile_photo', // addons
903
+ 'value' => '',
904
+ 'compare' => '!='
905
+ ),
906
+ array(
907
+ 'key' => 'profile_photo', // from upload form
908
+ 'value' => '',
909
+ 'compare' => '!='
910
+ )
911
+ );
912
+
913
+ if ( UM()->options()->get( 'use_gravatars' ) ) {
914
+ $meta_query[] = array(
915
+ 'key' => 'synced_gravatar_hashed_id', // gravatar
916
+ 'value' => '',
917
+ 'compare' => '!='
918
+ );
919
+ }
920
+
921
+ $this->query_args['meta_query'] = array_merge( $this->query_args['meta_query'], array( $meta_query ) );
922
+ }
923
+ }
924
+
925
+
926
+ /**
927
+ * Handle "Only show members who have uploaded a cover photo" option
928
+ *
929
+ * @param array $directory_data
930
+ */
931
+ function show_only_with_cover( $directory_data ) {
932
+ if ( $directory_data['has_cover_photo'] == 1 ) {
933
+ $this->query_args['meta_query'] = array_merge( $this->query_args['meta_query'], array( array(
934
+ 'key' => 'cover_photo',
935
+ 'value' => '',
936
+ 'compare' => '!='
937
+ ) ) );
938
+ }
939
+ }
940
+
941
+
942
+ /**
943
+ * Handle "Only show specific users (Enter one username per line)" option
944
+ *
945
+ * @param array $directory_data
946
+ */
947
+ function show_only_these_users( $directory_data ) {
948
+ if ( ! empty( $directory_data['show_these_users'] ) ) {
949
+ $show_these_users = maybe_unserialize( $directory_data['show_these_users'] );
950
+
951
+ if ( is_array( $show_these_users ) && ! empty( $show_these_users ) ) {
952
+
953
+ $users_array = array();
954
+
955
+ foreach ( $show_these_users as $username ) {
956
+ if ( false !== ( $exists_id = username_exists( $username ) ) ) {
957
+ $users_array[] = $exists_id;
958
+ }
959
+ }
960
+
961
+ if ( ! empty( $users_array ) ) {
962
+ $this->query_args['include'] = $users_array;
963
+ }
964
+
965
+ }
966
+ }
967
+ }
968
+
969
+
970
+ /**
971
+ * Handle "Pagination Options" metabox settings
972
+ *
973
+ * @param array $directory_data
974
+ */
975
+ function pagination_options( $directory_data ) {
976
+ // number of profiles for mobile
977
+ $profiles_per_page = $directory_data['profiles_per_page'];
978
+ if ( UM()->mobile()->isMobile() && isset( $directory_data['profiles_per_page_mobile'] ) ) {
979
+ $profiles_per_page = $directory_data['profiles_per_page_mobile'];
980
+ }
981
+
982
+ $this->query_args['number'] = ( ! empty( $directory_data['max_users'] ) && $directory_data['max_users'] <= $profiles_per_page ) ? $directory_data['max_users'] : $profiles_per_page;
983
+ $this->query_args['paged'] = ! empty( $_POST['page'] ) ? $_POST['page'] : 1;
984
+ }
985
+
986
+
987
+ /**
988
+ * Add sorting attributes for \WP_Users_Query
989
+ *
990
+ * @param array $directory_data Member Directory options
991
+ */
992
+ function sorting_query( $directory_data ) {
993
+ // sort members by
994
+ $this->query_args['order'] = 'ASC';
995
+ $sortby = ! empty( $_POST['sorting'] ) ? $_POST['sorting'] : $directory_data['sortby'];
996
+
997
+ if ( $sortby == 'other' && $directory_data['sortby_custom'] ) {
998
+
999
+ $this->query_args['meta_key'] = $directory_data['sortby_custom'];
1000
+ $this->query_args['orderby'] = 'meta_value, display_name';
1001
+
1002
+ } elseif ( 'display_name' == $sortby ) {
1003
+
1004
+ $display_name = UM()->options()->get( 'display_name' );
1005
+ if ( $display_name == 'username' ) {
1006
+ $this->query_args['orderby'] = 'user_login';
1007
+ $this->query_args['order'] = 'ASC';
1008
+ } else {
1009
+ $this->query_args['meta_query'][] = array(
1010
+ 'relation' => 'OR',
1011
+ 'full_name' => array(
1012
+ 'key' => 'full_name',
1013
+ 'compare' => 'EXISTS'
1014
+ ),
1015
+ array(
1016
+ 'key' => 'full_name',
1017
+ 'compare' => 'NOT EXISTS'
1018
+ )
1019
+ );
1020
+
1021
+ $this->query_args['orderby'] = 'full_name, display_name';
1022
+ $this->query_args['order'] = 'ASC';
1023
+ }
1024
+
1025
+ } elseif ( in_array( $sortby, array( 'last_name', 'first_name' ) ) ) {
1026
+
1027
+ $this->query_args['meta_query'] = array_merge( $this->query_args['meta_query'], array( $sortby . '_c' => array(
1028
+ 'key' => $sortby,
1029
+ 'compare' => 'EXISTS',
1030
+ ), ) );
1031
+
1032
+ $this->query_args['orderby'] = array( $sortby . '_c' => 'ASC' );
1033
+ unset( $this->query_args['order'] );
1034
+
1035
+ } elseif ( $sortby == 'last_login' ) {
1036
+
1037
+ $this->query_args['orderby'] = array( 'um_last_login' => 'DESC' );
1038
+ $this->query_args['meta_query'][] = array(
1039
+ 'relation' => 'OR',
1040
+ array(
1041
+ 'key' => '_um_last_login',
1042
+ 'compare' => 'EXISTS',
1043
+ ),
1044
+ 'um_last_login' => array(
1045
+ 'key' => '_um_last_login',
1046
+ 'compare' => 'NOT EXISTS',
1047
+ ),
1048
+ );
1049
+ unset( $this->query_args['order'] );
1050
+
1051
+ } else {
1052
+
1053
+ if ( strstr( $sortby, '_desc' ) ) {
1054
+ $sortby = str_replace( '_desc', '', $sortby );
1055
+ $order = 'DESC';
1056
+ }
1057
+
1058
+ if ( strstr( $sortby, '_asc' ) ) {
1059
+ $sortby = str_replace( '_asc', '', $sortby );
1060
+ $order = 'ASC';
1061
+ }
1062
+
1063
+ $this->query_args['orderby'] = $sortby;
1064
+ if ( isset( $order ) ) {
1065
+ $this->query_args['order'] = $order;
1066
+ }
1067
+
1068
+ add_filter( 'pre_user_query', array( &$this, 'sortby_randomly' ), 10, 1 );
1069
+ }
1070
+
1071
+
1072
+ /**
1073
+ * UM hook
1074
+ *
1075
+ * @type filter
1076
+ * @title um_modify_sortby_parameter
1077
+ * @description Change query sort by attributes for search at Members Directory
1078
+ * @input_vars
1079
+ * [{"var":"$query_args","type":"array","desc":"Query Arguments"},
1080
+ * {"var":"$sortby","type":"string","desc":"Sort by"}]
1081
+ * @change_log
1082
+ * ["Since: 2.0"]
1083
+ * @usage
1084
+ * <?php add_filter( 'um_modify_sortby_parameter', 'function_name', 10, 2 ); ?>
1085
+ * @example
1086
+ * <?php
1087
+ * add_filter( 'um_modify_sortby_parameter', 'my_modify_sortby_parameter', 10, 2 );
1088
+ * function my_modify_sortby_parameter( $query_args, $sortby ) {
1089
+ * // your code here
1090
+ * return $query_args;
1091
+ * }
1092
+ * ?>
1093
+ */
1094
+ $this->query_args = apply_filters( 'um_modify_sortby_parameter', $this->query_args, $sortby );
1095
+ }
1096
+
1097
+
1098
+ /**
1099
+ * Sorting random
1100
+ *
1101
+ * @param object $query
1102
+ *
1103
+ * @return mixed
1104
+ */
1105
+ function sortby_randomly( $query ) {
1106
+ if ( 'random' == $query->query_vars['orderby'] ) {
1107
+
1108
+ if ( um_is_session_started() === false ) {
1109
+ @session_start();
1110
+ }
1111
+
1112
+ // Reset seed on load of initial
1113
+ if ( ! isset( $_REQUEST['members_page'] ) || $_REQUEST['members_page'] == 0 || $_REQUEST['members_page'] == 1 ) {
1114
+ if ( isset( $_SESSION['seed'] ) ) {
1115
+ unset( $_SESSION['seed'] );
1116
+ }
1117
+ }
1118
+
1119
+ // Get seed from session variable if it exists
1120
+ $seed = false;
1121
+ if ( isset( $_SESSION['seed'] ) ) {
1122
+ $seed = $_SESSION['seed'];
1123
+ }
1124
+
1125
+ // Set new seed if none exists
1126
+ if ( ! $seed ) {
1127
+ $seed = rand();
1128
+ $_SESSION['seed'] = $seed;
1129
+ }
1130
+
1131
+
1132
+ $query->query_orderby = 'ORDER by RAND(' . $seed . ')';
1133
+ }
1134
+
1135
+ return $query;
1136
+ }
1137
+
1138
+
1139
+
1140
+ /**
1141
+ * Handle general search line request
1142
+ */
1143
+ function general_search() {
1144
+ //general search
1145
+ if ( ! empty( $_POST['search'] ) ) {
1146
+ // complex using with change_meta_sql function
1147
+
1148
+ $meta_query = array(
1149
+ 'relation' => 'OR',
1150
+ array(
1151
+ 'value' => trim( $_POST['search'] ),
1152
+ 'compare' => '=',
1153
+ ),
1154
+ array(
1155
+ 'value' => trim( $_POST['search'] ),
1156
+ 'compare' => 'LIKE',
1157
+ ),
1158
+ array(
1159
+ 'value' => trim( serialize( strval( $_POST['search'] ) ) ),
1160
+ 'compare' => 'LIKE',
1161
+ ),
1162
+ );
1163
+
1164
+ $meta_query = apply_filters( 'um_member_directory_general_search_meta_query', $meta_query, $_POST['search'] );
1165
+
1166
+ $this->query_args['meta_query'][] = $meta_query;
1167
+ }
1168
+ }
1169
+
1170
+
1171
+ /**
1172
+ * Change mySQL meta query join attribute
1173
+ * for search only by UM user meta fields and WP core fields in WP Users table
1174
+ *
1175
+ * @param array $sql Array containing the query's JOIN and WHERE clauses.
1176
+ * @param $queries
1177
+ * @param $type
1178
+ * @param $primary_table
1179
+ * @param $primary_id_column
1180
+ * @param \WP_User_Query $context
1181
+ *
1182
+ * @return mixed
1183
+ */
1184
+ function change_meta_sql( $sql, $queries, $type, $primary_table, $primary_id_column, $context ) {
1185
+ if ( ! empty( $_POST['search'] ) ) {
1186
+ global $wpdb;
1187
+ $search = trim( $_POST['search'] );
1188
+ if ( ! empty( $search ) ) {
1189
+
1190
+ $meta_value = '%' . $wpdb->esc_like( $search ) . '%';
1191
+ $search_meta = $wpdb->prepare( '%s', $meta_value );
1192
+
1193
+ preg_match(
1194
+ '/^(.*).meta_value LIKE ' . addslashes( $search_meta ) . '[^\)]/im',
1195
+ $sql['where'],
1196
+ $join_matches
1197
+ );
1198
+
1199
+ if ( isset( $join_matches[1] ) ) {
1200
+ $meta_join_for_search = trim( $join_matches[1] );
1201
+
1202
+ $sql['join'] = preg_replace(
1203
+ '/(' . $meta_join_for_search . ' ON \( ' . $wpdb->users . '\.ID = ' . $meta_join_for_search . '\.user_id )(\))/im',
1204
+ "$1 AND " . $meta_join_for_search . ".meta_key IN( '" . implode( "','", array_keys( UM()->builtin()->all_user_fields ) ) . "' ) $2",
1205
+ $sql['join']
1206
+ );
1207
+ }
1208
+
1209
+ // Add OR instead AND to search in WP core fields user_email, user_login, user_display_name
1210
+ $search_where = $context->get_search_sql( $search, $this->core_search_fields, 'both' );
1211
+
1212
+ $search_where = preg_replace( '/ AND \((.*?)\)/im', "$1 OR", $search_where );
1213
+
1214
+ $sql['where'] = preg_replace(
1215
+ '/(' . $meta_join_for_search . '.meta_value = \'' . esc_attr( $search ) . '\')/im',
1216
+ trim( $search_where ) . " $1",
1217
+ $sql['where'],
1218
+ 1
1219
+ );
1220
+ }
1221
+ }
1222
+
1223
+ return $sql;
1224
+ }
1225
+
1226
+
1227
+ /**
1228
+ * Handle filters request
1229
+ */
1230
+ function filters( $directory_data ) {
1231
+ //filters
1232
+ $filter_query = array();
1233
+ if ( ! empty( $directory_data['search_fields'] ) ) {
1234
+ $search_filters = maybe_unserialize( $directory_data['search_fields'] );
1235
+ if ( ! empty( $search_filters ) && is_array( $search_filters ) ) {
1236
+ $filter_query = array_intersect_key( $_POST, array_flip( $search_filters ) );
1237
+ }
1238
+ }
1239
+
1240
+ // added for user tags extension integration on individual tag page
1241
+ $ignore_empty_filters = apply_filters( 'um_member_directory_ignore_empty_filters', false );
1242
+
1243
+ if ( empty( $filter_query ) && ! $ignore_empty_filters ) {
1244
+ return;
1245
+ }
1246
+
1247
+ foreach ( $filter_query as $field => $value ) {
1248
+
1249
+ switch ( $field ) {
1250
+ default:
1251
+
1252
+ $filter_type = $this->filter_types[ $field ];
1253
+
1254
+ /**
1255
+ * UM hook
1256
+ *
1257
+ * @type filter
1258
+ * @title um_query_args_{$field}__filter
1259
+ * @description Change field's query for search at Members Directory
1260
+ * @input_vars
1261
+ * [{"var":"$field_query","type":"array","desc":"Field query"}]
1262
+ * @change_log
1263
+ * ["Since: 2.0"]
1264
+ * @usage
1265
+ * <?php add_filter( 'um_query_args_{$field}__filter', 'function_name', 10, 1 ); ?>
1266
+ * @example
1267
+ * <?php
1268
+ * add_filter( 'um_query_args_{$field}__filter', 'my_query_args_filter', 10, 1 );
1269
+ * function my_query_args_filter( $field_query ) {
1270
+ * // your code here
1271
+ * return $field_query;
1272
+ * }
1273
+ * ?>
1274
+ */
1275
+ $field_query = apply_filters( "um_query_args_{$field}__filter", false, $field, $value, $filter_type );
1276
+
1277
+ if ( ! $field_query ) {
1278
+
1279
+ switch ( $filter_type ) {
1280
+ default:
1281
+
1282
+ $field_query = apply_filters( "um_query_args_{$field}_{$filter_type}__filter", false, $field, $value, $filter_type );
1283
+
1284
+ break;
1285
+ case 'select':
1286
+ if ( is_array( $value ) ) {
1287
+ $field_query = array( 'relation' => 'OR' );
1288
+
1289
+ foreach ( $value as $single_val ) {
1290
+ $arr_meta_query = array(
1291
+ array(
1292
+ 'key' => $field,
1293
+ 'value' => trim( $single_val ),
1294
+ 'compare' => '=',
1295
+ ),
1296
+ array(
1297
+ 'key' => $field,
1298
+ 'value' => serialize( strval( trim( $single_val ) ) ),
1299
+ 'compare' => 'LIKE',
1300
+ ),
1301
+ array(
1302
+ 'key' => $field,
1303
+ 'value' => '"' . trim( $single_val ) . '"',
1304
+ 'compare' => 'LIKE',
1305
+ )
1306
+ );
1307
+
1308
+ if ( is_numeric( $single_val ) ) {
1309
+
1310
+ $arr_meta_query[] = array(
1311
+ 'key' => $field,
1312
+ 'value' => serialize( intval( trim( $single_val ) ) ),
1313
+ 'compare' => 'LIKE',
1314
+ );
1315
+
1316
+ }
1317
+
1318
+ $field_query = array_merge( $field_query, $arr_meta_query );
1319
+ }
1320
+ }
1321
+
1322
+ $this->custom_filters_in_query[ $field ] = $value;
1323
+
1324
+ break;
1325
+ case 'slider':
1326
+
1327
+ $this->custom_filters_in_query[ $field ] = $value;
1328
+
1329
+ $field_query = array(
1330
+ 'key' => $field,
1331
+ 'value' => $value,
1332
+ 'compare' => 'BETWEEN',
1333
+ 'inclusive' => true,
1334
+ );
1335
+
1336
+ break;
1337
+ case 'datepicker':
1338
+
1339
+ $offset = 0;
1340
+ if ( isset( $_POST['gmt_offset'] ) && is_numeric( $_POST['gmt_offset'] ) ) {
1341
+ $offset = (int) $_POST['gmt_offset'];
1342
+ }
1343
+
1344
+ $from_date = (int) min( $value ) + ( $offset * HOUR_IN_SECONDS ); // client time zone offset
1345
+ $to_date = (int) max( $value ) + ( $offset * HOUR_IN_SECONDS ) + DAY_IN_SECONDS - 1; // time 23:59
1346
+ $field_query = array(
1347
+ 'key' => $field,
1348
+ 'value' => array( $from_date, $to_date ),
1349
+ 'compare' => 'BETWEEN',
1350
+ 'inclusive' => true,
1351
+ );
1352
+
1353
+ $this->custom_filters_in_query[ $field ] = array( $from_date, $to_date );
1354
+
1355
+ break;
1356
+ case 'timepicker':
1357
+
1358
+ if ( $value[0] == $value[1] ) {
1359
+ $field_query = array(
1360
+ 'key' => $field,
1361
+ 'value' => $value[0],
1362
+ );
1363
+ } else {
1364
+ $field_query = array(
1365
+ 'key' => $field,
1366
+ 'value' => $value,
1367
+ 'compare' => 'BETWEEN',
1368
+ 'type' => 'TIME',
1369
+ 'inclusive' => true,
1370
+ );
1371
+ }
1372
+
1373
+ $this->custom_filters_in_query[ $field ] = $value;
1374
+
1375
+ break;
1376
+ }
1377
+
1378
+ }
1379
+
1380
+ if ( ! empty( $field_query ) && $field_query !== true ) {
1381
+ $this->query_args['meta_query'] = array_merge( $this->query_args['meta_query'], array( $field_query ) );
1382
+ }
1383
+
1384
+ break;
1385
+ case 'role':
1386
+ $value = array_map( 'strtolower', $value );
1387
+
1388
+ if ( ! empty( $this->query_args['role__in'] ) ) {
1389
+ $this->query_args['role__in'] = is_array( $this->query_args['role__in'] ) ? $this->query_args['role__in'] : array( $this->query_args['role__in'] );
1390
+ $default_role = array_intersect( $this->query_args['role__in'], $value );
1391
+ $um_role = array_diff( $value, $default_role );
1392
+
1393
+ foreach ( $um_role as $key => &$val ) {
1394
+ $val = 'um_' . str_replace( ' ', '-', $val );
1395
+ }
1396
+ $this->query_args['role__in'] = array_merge( $default_role, $um_role );
1397
+ } else {
1398
+ $this->query_args['role__in'] = $value;
1399
+ };
1400
+
1401
+ $this->custom_filters_in_query[ $field ] = $this->query_args['role__in'];
1402
+
1403
+ break;
1404
+ case 'birth_date':
1405
+
1406
+ $from_date = date( 'Y/m/d', mktime( 0,0,0, date( 'm', time() ), date( 'd', time() ), date( 'Y', time() - min( $value ) * YEAR_IN_SECONDS ) ) );
1407
+ $to_date = date( 'Y/m/d', mktime( 0,0,0, date( 'm', time() ), date( 'd', time() ) + 1, date( 'Y', time() - ( max( $value ) + 1 ) * YEAR_IN_SECONDS ) ) );
1408
+
1409
+ $meta_query = array(
1410
+ array(
1411
+ 'key' => 'birth_date',
1412
+ 'value' => array( $to_date, $from_date ),
1413
+ 'compare' => 'BETWEEN',
1414
+ 'type' => 'DATE',
1415
+ 'inclusive' => true,
1416
+ )
1417
+ );
1418
+
1419
+ $this->query_args['meta_query'] = array_merge( $this->query_args['meta_query'], array( $meta_query ) );
1420
+
1421
+ $this->custom_filters_in_query[ $field ] = array( $to_date, $from_date );
1422
+
1423
+ break;
1424
+ case 'user_registered':
1425
+
1426
+ $offset = 0;
1427
+ if ( isset( $_POST['gmt_offset'] ) && is_numeric( $_POST['gmt_offset'] ) ) {
1428
+ $offset = (int) $_POST['gmt_offset'];
1429
+ }
1430
+
1431
+ $from_date = date( 'Y-m-d H:s:i', strtotime( date( 'Y-m-d H:s:i', min( $value ) ) . "+$offset hours" ) );
1432
+ $to_date = date( 'Y-m-d H:s:i', strtotime( date( 'Y-m-d H:s:i', max( $value ) ) . "+$offset hours" ) );
1433
+
1434
+ $date_query = array(
1435
+ array(
1436
+ 'column' => 'user_registered',
1437
+ 'before' => $to_date,
1438
+ 'after' => $from_date,
1439
+ 'inclusive' => true,
1440
+ ),
1441
+ );
1442
+
1443
+ if ( empty( $this->query_args['date_query'] ) ) {
1444
+ $this->query_args['date_query'] = $date_query;
1445
+ } else {
1446
+ $this->query_args['date_query'] = array_merge( $this->query_args['date_query'], array( $date_query ) );
1447
+ }
1448
+
1449
+ $this->custom_filters_in_query[ $field ] = $value;
1450
+
1451
+ break;
1452
+ case 'last_login':
1453
+
1454
+ $offset = 0;
1455
+ if ( isset( $_POST['gmt_offset'] ) && is_numeric( $_POST['gmt_offset'] ) ) {
1456
+ $offset = (int) $_POST['gmt_offset'];
1457
+ }
1458
+
1459
+ $from_date = (int) min( $value ) + ( $offset * HOUR_IN_SECONDS ); // client time zone offset
1460
+ $to_date = (int) max( $value ) + ( $offset * HOUR_IN_SECONDS ) + DAY_IN_SECONDS - 1; // time 23:59
1461
+ $meta_query = array(
1462
+ array(
1463
+ 'key' => '_um_last_login',
1464
+ 'value' => array( $from_date, $to_date ),
1465
+ 'compare' => 'BETWEEN',
1466
+ 'inclusive' => true,
1467
+ )
1468
+ );
1469
+
1470
+ $this->custom_filters_in_query[ $field ] = $value;
1471
+
1472
+ $this->query_args['meta_query'] = array_merge( $this->query_args['meta_query'], array( $meta_query ) );
1473
+ break;
1474
+ }
1475
+
1476
+ }
1477
+ }
1478
+
1479
+
1480
+ /**
1481
+ * Set default filters
1482
+ *
1483
+ * @param $directory_data
1484
+ */
1485
+ function default_filters( $directory_data ) {
1486
+ //unable default filter in case if we select other filters in frontend filters
1487
+ if ( ! empty( $this->custom_filters_in_query ) ) {
1488
+ return;
1489
+ }
1490
+
1491
+ $default_filters = array();
1492
+ if ( ! empty( $directory_data['search_filters'] ) ) {
1493
+ $default_filters = maybe_unserialize( $directory_data['search_filters'] );
1494
+ }
1495
+
1496
+ $gmt_offset = get_post_meta( $directory_data['form_id'], '_um_search_filters_gmt', true );
1497
+
1498
+ if ( empty( $default_filters ) ) {
1499
+ return;
1500
+ }
1501
+
1502
+ foreach ( $default_filters as $field => $value ) {
1503
+ //unable default filter in case if we select other value in frontend filters
1504
+ // if ( in_array( $field, array_keys( $this->custom_filters_in_query ) ) ) {
1505
+ // continue;
1506
+ // }
1507
+
1508
+ switch ( $field ) {
1509
+ default:
1510
+
1511
+ $filter_type = $this->filter_types[ $field ];
1512
+
1513
+ /**
1514
+ * UM hook
1515
+ *
1516
+ * @type filter
1517
+ * @title um_query_args_{$field}__filter
1518
+ * @description Change field's query for search at Members Directory
1519
+ * @input_vars
1520
+ * [{"var":"$field_query","type":"array","desc":"Field query"}]
1521
+ * @change_log
1522
+ * ["Since: 2.0"]
1523
+ * @usage
1524
+ * <?php add_filter( 'um_query_args_{$field}__filter', 'function_name', 10, 1 ); ?>
1525
+ * @example
1526
+ * <?php
1527
+ * add_filter( 'um_query_args_{$field}__filter', 'my_query_args_filter', 10, 1 );
1528
+ * function my_query_args_filter( $field_query ) {
1529
+ * // your code here
1530
+ * return $field_query;
1531
+ * }
1532
+ * ?>
1533
+ */
1534
+ $field_query = apply_filters( "um_query_args_{$field}__filter", false, $field, $value, $filter_type );
1535
+
1536
+ if ( ! $field_query ) {
1537
+
1538
+ switch ( $filter_type ) {
1539
+ default:
1540
+
1541
+ $field_query = apply_filters( "um_query_args_{$field}_{$filter_type}__filter", false, $field, $value, $filter_type );
1542
+
1543
+ break;
1544
+ case 'select':
1545
+ if ( ! is_array( $value ) ) {
1546
+ $value = array( $value );
1547
+ }
1548
+
1549
+ $field_query = array( 'relation' => 'OR' );
1550
+
1551
+ foreach ( $value as $single_val ) {
1552
+ $arr_meta_query = array(
1553
+ array(
1554
+ 'key' => $field,
1555
+ 'value' => trim( $single_val ),
1556
+ 'compare' => '=',
1557
+ ),
1558
+ array(
1559
+ 'key' => $field,
1560
+ 'value' => serialize( strval( trim( $single_val ) ) ),
1561
+ 'compare' => 'LIKE',
1562
+ ),
1563
+ array(
1564
+ 'key' => $field,
1565
+ 'value' => '"' . trim( $single_val ) . '"',
1566
+ 'compare' => 'LIKE',
1567
+ )
1568
+ );
1569
+
1570
+ if ( is_numeric( $single_val ) ) {
1571
+
1572
+ $arr_meta_query[] = array(
1573
+ 'key' => $field,
1574
+ 'value' => serialize( intval( trim( $single_val ) ) ),
1575
+ 'compare' => 'LIKE',
1576
+ );
1577
+
1578
+ }
1579
+
1580
+ $field_query = array_merge( $field_query, $arr_meta_query );
1581
+ }
1582
+
1583
+ break;
1584
+ case 'slider':
1585
+
1586
+ $field_query = array(
1587
+ 'key' => $field,
1588
+ 'value' => $value,
1589
+ 'compare' => 'BETWEEN',
1590
+ 'inclusive' => true,
1591
+ );
1592
+
1593
+ break;
1594
+ case 'datepicker':
1595
+
1596
+ $offset = 0;
1597
+ if ( is_numeric( $gmt_offset ) ) {
1598
+ $offset = $gmt_offset;
1599
+ }
1600
+
1601
+ $from_date = (int) min( $value ) + ( $offset * HOUR_IN_SECONDS ); // client time zone offset
1602
+ $to_date = (int) max( $value ) + ( $offset * HOUR_IN_SECONDS ) + DAY_IN_SECONDS - 1; // time 23:59
1603
+ $field_query = array(
1604
+ 'key' => $field,
1605
+ 'value' => array( $from_date, $to_date ),
1606
+ 'compare' => 'BETWEEN',
1607
+ 'inclusive' => true,
1608
+ );
1609
+
1610
+ break;
1611
+ case 'timepicker':
1612
+
1613
+ if ( $value[0] == $value[1] ) {
1614
+ $field_query = array(
1615
+ 'key' => $field,
1616
+ 'value' => $value[0],
1617
+ );
1618
+ } else {
1619
+ $field_query = array(
1620
+ 'key' => $field,
1621
+ 'value' => $value,
1622
+ 'compare' => 'BETWEEN',
1623
+ 'type' => 'TIME',
1624
+ 'inclusive' => true,
1625
+ );
1626
+ }
1627
+
1628
+ break;
1629
+ }
1630
+
1631
+ }
1632
+
1633
+ if ( ! empty( $field_query ) && $field_query !== true ) {
1634
+ $this->query_args['meta_query'] = array_merge( $this->query_args['meta_query'], array( $field_query ) );
1635
+ }
1636
+
1637
+ break;
1638
+ case 'role':
1639
+ $value = explode( '||', $value );
1640
+ $value = array_map( 'strtolower', $value );
1641
+
1642
+ if ( ! empty( $this->query_args['role__in'] ) ) {
1643
+ $this->query_args['role__in'] = is_array( $this->query_args['role__in'] ) ? $this->query_args['role__in'] : array( $this->query_args['role__in'] );
1644
+ $default_role = array_intersect( $this->query_args['role__in'], $value );
1645
+ $um_role = array_diff( $value, $default_role );
1646
+
1647
+ foreach ( $um_role as $key => &$val ) {
1648
+ $val = 'um_' . str_replace( ' ', '-', $val );
1649
+ }
1650
+ $this->query_args['role__in'] = array_merge( $default_role, $um_role );
1651
+ } else {
1652
+ $this->query_args['role__in'] = $value;
1653
+ };
1654
+
1655
+ break;
1656
+ case 'birth_date':
1657
+ $from_date = date( 'Y/m/d', mktime( 0,0,0, date( 'm', time() ), date( 'd', time() ), date( 'Y', time() - min( $value ) * YEAR_IN_SECONDS ) ) );
1658
+ $to_date = date( 'Y/m/d', mktime( 0,0,0, date( 'm', time() ), date( 'd', time() ) + 1, date( 'Y', time() - ( max( $value ) + 1 ) * YEAR_IN_SECONDS ) ) );
1659
+
1660
+ $meta_query = array(
1661
+ array(
1662
+ 'key' => 'birth_date',
1663
+ 'value' => array( $to_date, $from_date ),
1664
+ 'compare' => 'BETWEEN',
1665
+ 'type' => 'DATE',
1666
+ 'inclusive' => true,
1667
+ )
1668
+ );
1669
+
1670
+ $this->query_args['meta_query'] = array_merge( $this->query_args['meta_query'], array( $meta_query ) );
1671
+
1672
+ break;
1673
+ case 'user_registered':
1674
+ $offset = 0;
1675
+ if ( is_numeric( $gmt_offset ) ) {
1676
+ $offset = $gmt_offset;
1677
+ }
1678
+
1679
+ $from_date = date( 'Y-m-d H:s:i', strtotime( date( 'Y-m-d H:s:i', min( $value ) ) . "+$offset hours" ) );
1680
+ $to_date = date( 'Y-m-d H:s:i', strtotime( date( 'Y-m-d H:s:i', max( $value ) ) . "+$offset hours" ) );
1681
+
1682
+ $date_query = array(
1683
+ array(
1684
+ 'column' => 'user_registered',
1685
+ 'before' => $to_date,
1686
+ 'after' => $from_date,
1687
+ 'inclusive' => true,
1688
+ ),
1689
+ );
1690
+
1691
+ if ( empty( $this->query_args['date_query'] ) ) {
1692
+ $this->query_args['date_query'] = $date_query;
1693
+ } else {
1694
+ $this->query_args['date_query'] = array_merge( $this->query_args['date_query'], array( $date_query ) );
1695
+ }
1696
+
1697
+ break;
1698
+ case 'last_login':
1699
+ $offset = 0;
1700
+ if ( is_numeric( $gmt_offset ) ) {
1701
+ $offset = $gmt_offset;
1702
+ }
1703
+
1704
+ $from_date = (int) min( $value ) + ( $offset * HOUR_IN_SECONDS ); // client time zone offset
1705
+ $to_date = (int) max( $value ) + ( $offset * HOUR_IN_SECONDS ) + DAY_IN_SECONDS - 1; // time 23:59
1706
+ $meta_query = array(
1707
+ array(
1708
+ 'key' => '_um_last_login',
1709
+ 'value' => array( $from_date, $to_date ),
1710
+ 'compare' => 'BETWEEN',
1711
+ 'inclusive' => true,
1712
+ )
1713
+ );
1714
+
1715
+ $this->query_args['meta_query'] = array_merge( $this->query_args['meta_query'], array( $meta_query ) );
1716
+ break;
1717
+ }
1718
+ }
1719
+ }
1720
+
1721
+
1722
+ /**
1723
+ * Get data array for pagination
1724
+ *
1725
+ *
1726
+ * @param array $directory_data
1727
+ * @param \WP_User_Query $result
1728
+ *
1729
+ * @return array
1730
+ */
1731
+ function calculate_pagination( $directory_data, $result ) {
1732
+
1733
+ $current_page = ! empty( $_POST['page'] ) ? $_POST['page'] : 1;
1734
+
1735
+ $total_users = ( ! empty( $directory_data['max_users'] ) && $directory_data['max_users'] <= $result->total_users ) ? $directory_data['max_users'] : $result->total_users;
1736
+ $total_pages = ceil( $total_users / $directory_data['profiles_per_page'] );
1737
+
1738
+ if ( ! empty( $total_pages ) ) {
1739
+ $index1 = 0 - ( $current_page - 2 ) + 1;
1740
+ $to = $current_page + 2;
1741
+ if ( $index1 > 0 ) {
1742
+ $to += $index1;
1743
+ }
1744
+
1745
+ $index2 = $total_pages - ( $current_page + 2 );
1746
+ $from = $current_page - 2;
1747
+ if ( $index2 < 0 ) {
1748
+ $from += $index2;
1749
+ }
1750
+
1751
+ $pages_to_show = range(
1752
+ ( $from > 0 ) ? $from : 1,
1753
+ ( $to <= $total_pages ) ? $to : $total_pages
1754
+ );
1755
+ }
1756
+
1757
+
1758
+ $pagination_data = array(
1759
+ 'pages_to_show' => ( ! empty( $pages_to_show ) && count( $pages_to_show ) > 1 ) ? array_values( $pages_to_show ) : array(),
1760
+ 'current_page' => $current_page,
1761
+ 'total_pages' => $total_pages,
1762
+ 'total_users' => $total_users,
1763
+ );
1764
+
1765
+ $pagination_data['header'] = $this->convert_tags( $directory_data['header'], $pagination_data );
1766
+ $pagination_data['header_single'] = $this->convert_tags( $directory_data['header_single'], $pagination_data );
1767
+
1768
+ return $pagination_data;
1769
+ }
1770
+
1771
+
1772
+ /**
1773
+ * @param int $user_id
1774
+ *
1775
+ * @return array
1776
+ */
1777
+ function build_user_actions_list( $user_id ) {
1778
+
1779
+ $actions = array();
1780
+ if ( ! is_user_logged_in() ) {
1781
+ return $actions;
1782
+ }
1783
+
1784
+ if ( get_current_user_id() != $user_id ) {
1785
+
1786
+ if ( UM()->roles()->um_current_user_can( 'edit', $user_id ) ) {
1787
+ $actions['um-editprofile'] = array(
1788
+ 'title' => __( 'Edit Profile', 'ultimate-member' ),
1789
+ 'url' => um_edit_profile_url(),
1790
+ );
1791
+ }
1792
+
1793
+ /**
1794
+ * UM hook
1795
+ *
1796
+ * @type filter
1797
+ * @title um_admin_user_actions_hook
1798
+ * @description Extend admin actions for each user
1799
+ * @input_vars
1800
+ * [{"var":"$actions","type":"array","desc":"Actions for user"}]
1801
+ * @change_log
1802
+ * ["Since: 2.0"]
1803
+ * @usage
1804
+ * <?php add_filter( 'um_admin_user_actions_hook', 'function_name', 10, 1 ); ?>
1805
+ * @example
1806
+ * <?php
1807
+ * add_filter( 'um_admin_user_actions_hook', 'my_admin_user_actions', 10, 1 );
1808
+ * function my_admin_user_actions( $actions ) {
1809
+ * // your code here
1810
+ * return $actions;
1811
+ * }
1812
+ * ?>
1813
+ */
1814
+ $admin_actions = apply_filters( 'um_admin_user_actions_hook', null, $user_id );
1815
+ if ( ! empty( $admin_actions ) ) {
1816
+ foreach ( $admin_actions as $id => $arr ) {
1817
+ $url = add_query_arg( array( 'um_action' => $id, 'uid' => $user_id ), um_get_core_page( 'user' ) );
1818
+
1819
+ $actions[ $id ] = array(
1820
+ 'title' => $arr['label'],
1821
+ 'url' => $url,
1822
+ );
1823
+ }
1824
+ }
1825
+
1826
+ $actions = apply_filters( 'um_member_directory_users_card_actions', $actions, $user_id );
1827
+
1828
+ } else {
1829
+
1830
+ if ( empty( UM()->user()->cannot_edit ) ) {
1831
+ $actions['um-editprofile'] = array(
1832
+ 'title' => __( 'Edit Profile', 'ultimate-member' ),
1833
+ 'url' => um_edit_profile_url(),
1834
+ );
1835
+ }
1836
+
1837
+ $actions['um-myaccount'] = array(
1838
+ 'title' => __( 'My Account', 'ultimate-member' ),
1839
+ 'url' => um_get_core_page( 'account' ),
1840
+ );
1841
+
1842
+ $actions['um-logout'] = array(
1843
+ 'title' => __( 'Logout', 'ultimate-member' ),
1844
+ 'url' => um_get_core_page( 'logout' ),
1845
+ );
1846
+
1847
+ $actions = apply_filters( 'um_member_directory_my_user_card_actions', $actions, $user_id );
1848
+ }
1849
+
1850
+
1851
+ return $actions;
1852
+ }
1853
+
1854
+
1855
+ /**
1856
+ * @param int $user_id
1857
+ * @param array $directory_data
1858
+ *
1859
+ * @return array
1860
+ */
1861
+ function build_user_card_data( $user_id, $directory_data ) {
1862
+ um_fetch_user( $user_id );
1863
+
1864
+ $dropdown_actions = $this->build_user_actions_list( $user_id );
1865
+
1866
+ $actions = array();
1867
+ $can_edit = UM()->roles()->um_current_user_can( 'edit', $user_id ) || UM()->roles()->um_user_can( 'can_edit_everyone' );
1868
+
1869
+ // Replace hook 'um_members_just_after_name'
1870
+ ob_start();
1871
+ do_action( 'um_members_just_after_name', $user_id, $directory_data );
1872
+ $hook_just_after_name = ob_get_clean();
1873
+
1874
+ // Replace hook 'um_members_after_user_name'
1875
+ ob_start();
1876
+ do_action( 'um_members_after_user_name', $user_id, $directory_data );
1877
+ $hook_after_user_name = ob_get_clean();
1878
+
1879
+ $data_array = array(
1880
+ 'id' => $user_id,
1881
+ 'role' => um_user( 'role' ),
1882
+ 'account_status' => um_user( 'account_status' ),
1883
+ 'account_status_name' => um_user( 'account_status_name' ),
1884
+ 'cover_photo' => um_user( 'cover_photo', $this->cover_size ),
1885
+ 'display_name' => um_user( 'display_name' ),
1886
+ 'profile_url' => um_user_profile_url(),
1887
+ 'can_edit' => $can_edit,
1888
+ 'edit_profile_url' => um_edit_profile_url(),
1889
+ 'avatar' => get_avatar( $user_id, $this->avatar_size ),
1890
+ 'display_name_html' => um_user( 'display_name', 'html' ),
1891
+ 'dropdown_actions' => $dropdown_actions,
1892
+ 'hook_just_after_name' => preg_replace( '/^\s+/im', '', $hook_just_after_name ),
1893
+ 'hook_after_user_name' => preg_replace( '/^\s+/im', '', $hook_after_user_name ),
1894
+ );
1895
+
1896
+ $directory_data['tagline_fields'] = maybe_unserialize( $directory_data['tagline_fields'] );
1897
+
1898
+ if ( $directory_data['show_tagline'] && is_array( $directory_data['tagline_fields'] ) ) {
1899
+ foreach ( $directory_data['tagline_fields'] as $key ) {
1900
+ if ( ! $key ) {
1901
+ continue;
1902
+ }
1903
+
1904
+ $value = um_filtered_value( $key );
1905
+
1906
+ if ( ! $value ) {
1907
+ continue;
1908
+ }
1909
+
1910
+ $data_array[ $key ] = $value;
1911
+ }
1912
+ }
1913
+
1914
+ if ( $directory_data['show_userinfo'] ) {
1915
+ $directory_data['reveal_fields'] = maybe_unserialize( $directory_data['reveal_fields'] );
1916
+
1917
+ if ( is_array( $directory_data['reveal_fields'] ) ) {
1918
+ foreach ( $directory_data['reveal_fields'] as $key ) {
1919
+ if ( ! $key ) {
1920
+ continue;
1921
+ }
1922
+
1923
+ $value = um_filtered_value( $key );
1924
+ if ( ! $value ) {
1925
+ continue;
1926
+ }
1927
+
1928
+ $label = UM()->fields()->get_label( $key );
1929
+ if ( $key == 'role_select' || $key == 'role_radio' ) {
1930
+ $label = strtr( $label, array(
1931
+ ' (Dropdown)' => '',
1932
+ ' (Radio)' => ''
1933
+ ) );
1934
+ }
1935
+
1936
+ $data_array[ "label_{$key}" ] = $label;
1937
+ $data_array[ $key ] = $value;
1938
+ }
1939
+ }
1940
+
1941
+ if ( ! empty( $directory_data['show_social'] ) ) {
1942
+ ob_start();
1943
+ UM()->fields()->show_social_urls();
1944
+ $social_urls = ob_get_clean();
1945
+
1946
+ $data_array['social_urls'] = $social_urls;
1947
+ }
1948
+ }
1949
+
1950
+ $data_array = apply_filters( 'um_ajax_get_members_data', $data_array, $user_id, $directory_data );
1951
+ um_reset_user_clean();
1952
+
1953
+ return $data_array;
1954
+ }
1955
+
1956
+
1957
+ /**
1958
+ * Main Query function for getting members via AJAX
1959
+ */
1960
+ function ajax_get_members() {
1961
+ UM()->check_ajax_nonce();
1962
+
1963
+ global $wpdb;
1964
+
1965
+ $directory_id = $this->get_directory_by_hash( $_POST['directory_id'] );
1966
+ $directory_data = UM()->query()->post_data( $directory_id );
1967
+
1968
+ //predefined result for user without capabilities to see other members
1969
+ if ( is_user_logged_in() && ! UM()->roles()->um_user_can( 'can_view_all' ) ) {
1970
+ $pagination_data = array(
1971
+ 'pages_to_show' => array(),
1972
+ 'current_page' => 1,
1973
+ 'total_pages' => 0,
1974
+ 'total_users' => 0,
1975
+ );
1976
+
1977
+ $pagination_data['header'] = $this->convert_tags( $directory_data['header'], $pagination_data );
1978
+ $pagination_data['header_single'] = $this->convert_tags( $directory_data['header_single'], $pagination_data );
1979
+
1980
+ wp_send_json_success( array( 'users' => array(), 'pagination' => $pagination_data ) );
1981
+ }
1982
+
1983
+ do_action( 'um_member_directory_before_query' );
1984
+
1985
+ // Prepare for BIG SELECT query
1986
+ $wpdb->query( 'SET SQL_BIG_SELECTS=1' );
1987
+
1988
+ // Prepare default user query values
1989
+ $this->query_args = array(
1990
+ 'fields' => 'ids',
1991
+ 'number' => 0,
1992
+ 'meta_query' => array(
1993
+ 'relation' => 'AND'
1994
+ ),
1995
+ );
1996
+
1997
+
1998
+ // handle different restrictions
1999
+ $this->restriction_options();
2000
+
2001
+ // handle general options
2002
+ $this->general_options( $directory_data );
2003
+
2004
+ // handle pagination options
2005
+ $this->pagination_options( $directory_data );
2006
+
2007
+ // handle sorting options
2008
+ $this->sorting_query( $directory_data );
2009
+
2010
+ // handle general search line
2011
+ $this->general_search();
2012
+
2013
+ // handle filters
2014
+ $this->filters( $directory_data );
2015
+
2016
+ $this->default_filters( $directory_data );
2017
+
2018
+ /**
2019
+ * UM hook
2020
+ *
2021
+ * @type filter
2022
+ * @title um_prepare_user_query_args
2023
+ * @description Extend member directory query arguments
2024
+ * @input_vars
2025
+ * [{"var":"$query_args","type":"array","desc":"Members Query Arguments"},
2026
+ * {"var":"$directory_settings","type":"array","desc":"Member Directory Settings"}]
2027
+ * @change_log
2028
+ * ["Since: 2.0"]
2029
+ * @usage
2030
+ * <?php add_filter( 'um_prepare_user_query_args', 'function_name', 10, 2 ); ?>
2031
+ * @example
2032
+ * <?php
2033
+ * add_filter( 'um_prepare_user_query_args', 'my_prepare_user_query_args', 10, 2 );
2034
+ * function my_prepare_user_query_args( $query_args, $directory_settings ) {
2035
+ * // your code here
2036
+ * return $query_args;
2037
+ * }
2038
+ * ?>
2039
+ */
2040
+ $this->query_args = apply_filters( 'um_prepare_user_query_args', $this->query_args, $directory_data );
2041
+
2042
+ //unset empty meta_query attribute
2043
+ if ( isset( $this->query_args['meta_query']['relation'] ) && count( $this->query_args['meta_query'] ) == 1 ) {
2044
+ unset( $this->query_args['meta_query'] );
2045
+ }
2046
+
2047
+ /**
2048
+ * UM hook
2049
+ *
2050
+ * @type action
2051
+ * @title um_user_before_query
2052
+ * @description Action before users query on member directory
2053
+ * @input_vars
2054
+ * [{"var":"$query_args","type":"array","desc":"Query arguments"}]
2055
+ * @change_log
2056
+ * ["Since: 2.0"]
2057
+ * @usage add_action( 'um_user_before_query', 'function_name', 10, 1 );
2058
+ * @example
2059
+ * <?php
2060
+ * add_action( 'um_user_before_query', 'my_user_before_query', 10, 1 );
2061
+ * function my_user_before_query( $query_args ) {
2062
+ * // your code here
2063
+ * }
2064
+ * ?>
2065
+ */
2066
+ do_action( 'um_user_before_query', $this->query_args );
2067
+
2068
+ add_filter( 'get_meta_sql', array( &$this, 'change_meta_sql' ), 10, 6 );
2069
+
2070
+ $user_query = new \WP_User_Query( $this->query_args );
2071
+
2072
+ remove_filter( 'get_meta_sql', array( &$this, 'change_meta_sql' ), 10 );
2073
+
2074
+ /**
2075
+ * UM hook
2076
+ *
2077
+ * @type action
2078
+ * @title um_user_after_query
2079
+ * @description Action before users query on member directory
2080
+ * @input_vars
2081
+ * [{"var":"$query_args","type":"array","desc":"Query arguments"},
2082
+ * {"var":"$user_query","type":"array","desc":"User Query"}]
2083
+ * @change_log
2084
+ * ["Since: 2.0"]
2085
+ * @usage add_action( 'um_user_after_query', 'function_name', 10, 2 );
2086
+ * @example
2087
+ * <?php
2088
+ * add_action( 'um_user_after_query', 'my_user_after_query', 10, 2 );
2089
+ * function my_user_after_query( $query_args, $user_query ) {
2090
+ * // your code here
2091
+ * }
2092
+ * ?>
2093
+ */
2094
+ do_action( 'um_user_after_query', $this->query_args, $user_query );
2095
+
2096
+ $pagination_data = $this->calculate_pagination( $directory_data, $user_query );
2097
+
2098
+ $user_ids = ! empty( $user_query->results ) ? array_unique( $user_query->results ) : array();
2099
+
2100
+ /**
2101
+ * UM hook
2102
+ *
2103
+ * @type filter
2104
+ * @title um_prepare_user_results_array
2105
+ * @description Extend member directory query result
2106
+ * @input_vars
2107
+ * [{"var":"$result","type":"array","desc":"Members Query Result"}]
2108
+ * @change_log
2109
+ * ["Since: 2.0"]
2110
+ * @usage
2111
+ * <?php add_filter( 'um_prepare_user_results_array', 'function_name', 10, 1 ); ?>
2112
+ * @example
2113
+ * <?php
2114
+ * add_filter( 'um_prepare_user_results_array', 'my_prepare_user_results', 10, 1 );
2115
+ * function my_prepare_user_results( $user_ids ) {
2116
+ * // your code here
2117
+ * return $user_ids;
2118
+ * }
2119
+ * ?>
2120
+ */
2121
+ $user_ids = apply_filters( 'um_prepare_user_results_array', $user_ids );
2122
+
2123
+
2124
+ $sizes = UM()->options()->get( 'cover_thumb_sizes' );
2125
+ $this->cover_size = UM()->mobile()->isTablet() ? $sizes[1] : $sizes[0];
2126
+
2127
+ $avatar_size = UM()->options()->get( 'profile_photosize' );
2128
+ $this->avatar_size = str_replace( 'px', '', $avatar_size );
2129
+
2130
+ $users = array();
2131
+ foreach ( $user_ids as $user_id ) {
2132
+ $users[] = $this->build_user_card_data( $user_id, $directory_data );
2133
+ }
2134
+
2135
+ um_reset_user();
2136
+ // end of user card
2137
+
2138
+ wp_send_json_success( array( 'pagination' => $pagination_data, 'users' => $users ) );
2139
+ }
2140
+
2141
+
2142
+ /**
2143
+ * New menu
2144
+ *
2145
+ * @param string $element
2146
+ * @param string $trigger
2147
+ * @param array $items
2148
+ */
2149
+ function dropdown_menu( $element, $trigger, $items = array() ) {
2150
+ ?>
2151
+
2152
+ <div class="um-new-dropdown" data-element="<?php echo $element; ?>" data-trigger="<?php echo $trigger; ?>">
2153
+ <ul>
2154
+ <?php foreach ( $items as $k => $v ) { ?>
2155
+ <li><?php echo $v; ?></li>
2156
+ <?php } ?>
2157
+ </ul>
2158
+ </div>
2159
+
2160
+ <?php
2161
+ }
2162
+
2163
+
2164
+ /**
2165
+ * New menu JS
2166
+ *
2167
+ * @param string $element
2168
+ * @param string $trigger
2169
+ * @param string $item
2170
+ */
2171
+ function dropdown_menu_js( $element, $trigger, $item ) {
2172
+ ?>
2173
+
2174
+ <div class="um-new-dropdown" data-element="<?php echo $element; ?>" data-trigger="<?php echo $trigger; ?>">
2175
+ <ul>
2176
+ <# _.each( <?php echo $item; ?>.dropdown_actions, function( action, key, list ) { #>
2177
+ <li><a href="<# if ( typeof action.url != 'undefined' ) { #>{{{action.url}}}<# } else { #>javascript:void(0);<# }#>" class="{{{key}}}">{{{action.title}}}</a></li>
2178
+ <# }); #>
2179
+ </ul>
2180
+ </div>
2181
+
2182
+ <?php
2183
+ }
2184
+
2185
+
2186
+
2187
+ function default_filter_settings() {
2188
+ UM()->admin()->check_ajax_nonce();
2189
+
2190
+ $filter_key = sanitize_key( $_REQUEST['key'] );
2191
+ $directory_id = absint( $_REQUEST['directory_id'] );
2192
+
2193
+ $html = $this->show_filter( $filter_key, array( 'form_id' => $directory_id ) );
2194
+
2195
+ wp_send_json_success( array( 'field_html' => $html ) );
2196
+ }
2197
+ }
2198
+ }
includes/core/class-members.php DELETED
@@ -1,620 +0,0 @@
1
- <?php
2
- namespace um\core;
3
-
4
- // Exit if accessed directly
5
- if ( ! defined( 'ABSPATH' ) ) exit;
6
-
7
-
8
- if ( ! class_exists( 'um\core\Members' ) ) {
9
-
10
-
11
- /**
12
- * Class Members
13
- * @package um\core
14
- */
15
- class Members {
16
-
17
-
18
- /**
19
- * @var
20
- */
21
- var $results;
22
-
23
-
24
- /**
25
- * Members constructor.
26
- */
27
- function __construct() {
28
-
29
- add_filter( 'user_search_columns', array( &$this, 'user_search_columns' ), 99 );
30
- add_action( 'template_redirect', array( &$this, 'access_members' ), 555 );
31
-
32
- $this->core_search_fields = array(
33
- 'user_login',
34
- 'username',
35
- 'display_name',
36
- 'user_email',
37
- );
38
-
39
- add_filter( 'um_search_select_fields', array( &$this, 'um_search_select_fields' ), 10, 1 );
40
-
41
- }
42
-
43
-
44
- /**
45
- * User_search_columns
46
- *
47
- * @param $search_columns
48
- *
49
- * @return array
50
- */
51
- function user_search_columns( $search_columns ) {
52
- if ( is_admin() ) {
53
- $search_columns[] = 'display_name';
54
- }
55
- return $search_columns;
56
- }
57
-
58
-
59
- /**
60
- * Members page allowed?
61
- */
62
- function access_members() {
63
- if ( UM()->options()->get( 'members_page' ) == 0 && um_is_core_page( 'members' ) ) {
64
- um_redirect_home();
65
- }
66
- }
67
-
68
-
69
- /**
70
- * Tag conversion for member directory
71
- *
72
- * @param $string
73
- * @param $array
74
- *
75
- * @return mixed
76
- */
77
- function convert_tags( $string, $array ) {
78
-
79
- $search = array(
80
- '{total_users}',
81
- );
82
-
83
- $replace = array(
84
- $array['total_users'],
85
- );
86
-
87
- $string = str_replace( $search, $replace, $string );
88
- return $string;
89
- }
90
-
91
- /**
92
- * Prepare filter data
93
- *
94
- * @param $filter
95
- * @return array
96
- */
97
- function prepare_filter( $filter ) {
98
- $fields = UM()->builtin()->all_user_fields;
99
-
100
- if ( isset( $fields[ $filter ] ) ) {
101
- $attrs = $fields[ $filter ];
102
- } else {
103
- /**
104
- * UM hook
105
- *
106
- * @type filter
107
- * @title um_custom_search_field_{$filter}
108
- * @description Custom search settings by $filter
109
- * @input_vars
110
- * [{"var":"$settings","type":"array","desc":"Search Settings"}]
111
- * @change_log
112
- * ["Since: 2.0"]
113
- * @usage
114
- * <?php add_filter( 'um_custom_search_field_{$filter}', 'function_name', 10, 1 ); ?>
115
- * @example
116
- * <?php
117
- * add_filter( 'um_custom_search_field_{$filter}', 'my_custom_search_field', 10, 1 );
118
- * function my_change_email_template_file( $settings ) {
119
- * // your code here
120
- * return $settings;
121
- * }
122
- * ?>
123
- */
124
- $attrs = apply_filters( "um_custom_search_field_{$filter}", array() );
125
- }
126
-
127
- // additional filter for search field attributes
128
- /**
129
- * UM hook
130
- *
131
- * @type filter
132
- * @title um_search_field_{$filter}
133
- * @description Extend search settings by $filter
134
- * @input_vars
135
- * [{"var":"$settings","type":"array","desc":"Search Settings"}]
136
- * @change_log
137
- * ["Since: 2.0"]
138
- * @usage
139
- * <?php add_filter( 'um_search_field_{$filter}', 'function_name', 10, 1 ); ?>
140
- * @example
141
- * <?php
142
- * add_filter( 'um_search_field_{$filter}', 'my_search_field', 10, 1 );
143
- * function my_change_email_template_file( $settings ) {
144
- * // your code here
145
- * return $settings;
146
- * }
147
- * ?>
148
- */
149
- $attrs = apply_filters( "um_search_field_{$filter}", $attrs );
150
-
151
- $type = UM()->builtin()->is_dropdown_field( $filter, $attrs ) ? 'select' : 'text';
152
-
153
- /**
154
- * UM hook
155
- *
156
- * @type filter
157
- * @title um_search_field_type
158
- * @description Change search field type
159
- * @input_vars
160
- * [{"var":"$type","type":"string","desc":"Search field type"},
161
- * {"var":"$settings","type":"array","desc":"Search Settings"}]
162
- * @change_log
163
- * ["Since: 2.0"]
164
- * @usage
165
- * <?php add_filter( 'um_search_field_type', 'function_name', 10, 2 ); ?>
166
- * @example
167
- * <?php
168
- * add_filter( 'um_search_field_type', 'my_search_field_type', 10, 2 );
169
- * function my_search_field_type( $type, $settings ) {
170
- * // your code here
171
- * return $type;
172
- * }
173
- * ?>
174
- */
175
- $type = apply_filters( 'um_search_field_type', $type, $attrs );
176
-
177
- /**
178
- * UM hook
179
- *
180
- * @type filter
181
- * @title um_search_fields
182
- * @description Filter all search fields
183
- * @input_vars
184
- * [{"var":"$settings","type":"array","desc":"Search Fields"}]
185
- * @change_log
186
- * ["Since: 2.0"]
187
- * @usage
188
- * <?php add_filter( 'um_search_fields', 'function_name', 10, 1 ); ?>
189
- * @example
190
- * <?php
191
- * add_filter( 'um_search_fields', 'my_search_fields', 10, 1 );
192
- * function my_search_fields( $settings ) {
193
- * // your code here
194
- * return $settings;
195
- * }
196
- * ?>
197
- */
198
- $attrs = apply_filters( 'um_search_fields', $attrs );
199
-
200
- if ( $type == 'select' ) {
201
- if ( isset( $attrs ) && is_array( $attrs['options'] ) ) {
202
- asort( $attrs['options'] );
203
- }
204
- /**
205
- * UM hook
206
- *
207
- * @type filter
208
- * @title um_search_select_fields
209
- * @description Filter all search fields for select field type
210
- * @input_vars
211
- * [{"var":"$settings","type":"array","desc":"Search Fields"}]
212
- * @change_log
213
- * ["Since: 2.0"]
214
- * @usage
215
- * <?php add_filter( 'um_search_select_fields', 'function_name', 10, 1 ); ?>
216
- * @example
217
- * <?php
218
- * add_filter( 'um_search_select_fields', 'my_search_select_fields', 10, 1 );
219
- * function my_search_select_fields( $settings ) {
220
- * // your code here
221
- * return $settings;
222
- * }
223
- * ?>
224
- */
225
- $attrs = apply_filters( 'um_search_select_fields', $attrs );
226
- }
227
-
228
- return compact( 'type', 'attrs' );
229
- }
230
-
231
-
232
- /**
233
- * Show filter
234
- *
235
- * @param $filter
236
- */
237
- function show_filter( $filter ) {
238
- /**
239
- * @var $type
240
- * @var $attrs
241
- */
242
- extract( $this->prepare_filter( $filter ) );
243
-
244
- switch ( $type ) {
245
-
246
- case 'select':
247
- /*if( isset($attrs) && is_array( $attrs['options'] ) ){
248
- asort( $attrs['options'] );
249
- }*/
250
- if ( isset( $attrs['label'] ) ) {
251
- $label = $attrs['label'];
252
- } else {
253
- $label = isset( $attrs['title'] ) ? $attrs['title'] : '';
254
- } ?>
255
-
256
- <select name="<?php echo esc_attr( $filter ); ?>" id="<?php echo esc_attr( $filter ); ?>" class="um-s1"
257
- style="width: 100%" data-placeholder="<?php esc_attr_e( stripslashes( $label ), 'ultimate-member' ); ?>" <?php if ( ! empty( $attrs['custom_dropdown_options_source'] ) ) { ?> data-um-parent="<?php echo esc_attr( $attrs['parent_dropdown_relationship'] ); ?>" data-mebers-directory="yes" data-um-ajax-source="<?php echo esc_attr( $attrs['custom_dropdown_options_source'] ) ?>"<?php } ?>>
258
-
259
- <option></option>
260
-
261
- <?php foreach ( $attrs['options'] as $k => $v ) {
262
-
263
- $v = stripslashes( $v );
264
-
265
- $opt = $v;
266
-
267
- if ( strstr( $filter, 'role_' ) ) {
268
- $opt = $k;
269
- }
270
-
271
- if ( isset( $attrs['custom'] ) ) {
272
- $opt = $k;
273
- } ?>
274
-
275
- <option value="<?php echo esc_attr( $opt ); ?>" <?php um_select_if_in_query_params( $filter, $opt ); ?> <?php selected( isset( $_GET[ $filter ] ) && $_GET[ $filter ] == $v ) ?>><?php esc_html_e( $v, 'ultimate-member'); ?></option>
276
-
277
- <?php } ?>
278
-
279
- </select>
280
-
281
- <?php
282
-
283
- break;
284
-
285
- case 'text':
286
- ?>
287
-
288
- <input type="text" autocomplete="off" name="<?php echo esc_attr( $filter ); ?>" id="<?php echo esc_attr( $filter ); ?>"
289
- placeholder="<?php echo isset( $attrs['label'] ) ? esc_attr__( $attrs['label'], 'ultimate-member' ) : ''; ?>"
290
- value="<?php echo esc_attr( um_queried_search_value( $filter, false ) ); ?>" />
291
-
292
- <?php
293
- break;
294
-
295
- }
296
-
297
- }
298
-
299
-
300
- /**
301
- * Display assigned roles in search filter 'role' field
302
- * @param array $attrs
303
- * @return array
304
- * @uses add_filter 'um_search_select_fields'
305
- * @since 1.3.83
306
- */
307
- function um_search_select_fields( $attrs ) {
308
-
309
- if ( ! empty( $attrs['metakey'] ) && strstr( $attrs['metakey'], 'role_' ) ) {
310
-
311
- $shortcode_roles = get_post_meta( UM()->shortcodes()->form_id, '_um_roles', true );
312
- $um_roles = UM()->roles()->get_roles( false );
313
-
314
- if ( ! empty( $shortcode_roles ) && is_array( $shortcode_roles ) ) {
315
-
316
- $attrs['options'] = array();
317
-
318
- foreach ( $um_roles as $key => $value ) {
319
- if ( in_array( $key, $shortcode_roles ) ) {
320
- $attrs['options'][ $key ] = $value;
321
- }
322
- }
323
-
324
- }
325
-
326
- }
327
-
328
- return $attrs;
329
- }
330
-
331
-
332
- /**
333
- * Generate a loop of results
334
- *
335
- * @param $args
336
- *
337
- * @return mixed|void
338
- */
339
- function get_members( $args ) {
340
-
341
- global $wpdb, $post;
342
-
343
- /**
344
- * @var $profiles_per_page
345
- * @var $profiles_per_page_mobile
346
- */
347
- extract( $args );
348
-
349
- /**
350
- * UM hook
351
- *
352
- * @type filter
353
- * @title um_prepare_user_query_args
354
- * @description Extend member directory query arguments
355
- * @input_vars
356
- * [{"var":"$query_args","type":"array","desc":"Members Query Arguments"},
357
- * {"var":"$directory_settings","type":"array","desc":"Member Directory Settings"}]
358
- * @change_log
359
- * ["Since: 2.0"]
360
- * @usage
361
- * <?php add_filter( 'um_prepare_user_query_args', 'function_name', 10, 2 ); ?>
362
- * @example
363
- * <?php
364
- * add_filter( 'um_prepare_user_query_args', 'my_prepare_user_query_args', 10, 2 );
365
- * function my_prepare_user_query_args( $query_args, $directory_settings ) {
366
- * // your code here
367
- * return $query_args;
368
- * }
369
- * ?>
370
- */
371
- $query_args = apply_filters( 'um_prepare_user_query_args', array(), $args );
372
-
373
- // Prepare for BIG SELECT query
374
- $wpdb->query( 'SET SQL_BIG_SELECTS=1' );
375
-
376
- // number of profiles for mobile
377
- if ( UM()->mobile()->isMobile() && isset( $profiles_per_page_mobile ) ) {
378
- $profiles_per_page = $profiles_per_page_mobile;
379
- }
380
-
381
- $query_args['number'] = $profiles_per_page;
382
-
383
- if ( isset( $args['number'] ) ) {
384
- $query_args['number'] = $args['number'];
385
- }
386
-
387
- if ( isset( $args['page'] ) ) {
388
- $members_page = $args['page'];
389
- } else {
390
- $members_page = isset( $_REQUEST['members_page'] ) ? $_REQUEST['members_page'] : 1;
391
- }
392
-
393
- $query_args['paged'] = $members_page;
394
-
395
- if ( ! UM()->roles()->um_user_can( 'can_view_all' ) && is_user_logged_in() ) {
396
- //unset( $query_args );
397
- $query_args = array();
398
- }
399
-
400
- /**
401
- * UM hook
402
- *
403
- * @type action
404
- * @title um_user_before_query
405
- * @description Action before users query on member directory
406
- * @input_vars
407
- * [{"var":"$query_args","type":"array","desc":"Query arguments"}]
408
- * @change_log
409
- * ["Since: 2.0"]
410
- * @usage add_action( 'um_user_before_query', 'function_name', 10, 1 );
411
- * @example
412
- * <?php
413
- * add_action( 'um_user_before_query', 'my_user_before_query', 10, 1 );
414
- * function my_user_before_query( $query_args ) {
415
- * // your code here
416
- * }
417
- * ?>
418
- */
419
- do_action( 'um_user_before_query', $query_args );
420
-
421
- $users = new \WP_User_Query( $query_args );
422
- /**
423
- * UM hook
424
- *
425
- * @type action
426
- * @title um_user_after_query
427
- * @description Action before users query on member directory
428
- * @input_vars
429
- * [{"var":"$query_args","type":"array","desc":"Query arguments"},
430
- * {"var":"$users","type":"array","desc":"Users"}]
431
- * @change_log
432
- * ["Since: 2.0"]
433
- * @usage add_action( 'um_user_after_query', 'function_name', 10, 2 );
434
- * @example
435
- * <?php
436
- * add_action( 'um_user_after_query', 'my_user_after_query', 10, 2 );
437
- * function my_user_after_query( $query_args, $users ) {
438
- * // your code here
439
- * }
440
- * ?>
441
- */
442
- do_action( 'um_user_after_query', $query_args, $users );
443
-
444
-
445
- $array['users'] = ! empty( $users->results ) ? $users->results : array();
446
-
447
- $array['total_users'] = ( isset( $max_users ) && $max_users && $max_users <= $users->total_users ) ? $max_users : $users->total_users;
448
-
449
- $array['page'] = $members_page;
450
-
451
- if ( isset( $profiles_per_page ) && $profiles_per_page > 0 ) {
452
- $array['total_pages'] = ceil( $array['total_users'] / $profiles_per_page );
453
- } else {
454
- $array['total_pages'] = 1;
455
- }
456
-
457
- $array['header'] = $this->convert_tags( $header, $array );
458
- $array['header_single'] = $this->convert_tags( $header_single, $array );
459
-
460
- $array['users_per_page'] = $array['users'];
461
-
462
- for ( $i = $array['page']; $i <= $array['page'] + 2; $i++ ) {
463
- if ( $i <= $array['total_pages'] ) {
464
- $pages_to_show[] = $i;
465
- }
466
- }
467
-
468
- if ( isset( $pages_to_show ) && count( $pages_to_show ) < 5 ) {
469
- $pages_needed = 5 - count( $pages_to_show );
470
-
471
- for ( $c = $array['page']; $c >= $array['page'] - 2; $c-- ) {
472
- if ( ! in_array( $c, $pages_to_show ) && $c > 0 ) {
473
- $pages_to_add[] = $c;
474
- }
475
- }
476
- }
477
-
478
- if ( isset( $pages_to_add ) ) {
479
-
480
- asort( $pages_to_add );
481
- $pages_to_show = array_merge( (array) $pages_to_add, $pages_to_show );
482
-
483
- if ( count( $pages_to_show ) < 5 ) {
484
- if ( max( $pages_to_show ) - $array['page'] >= 2 ) {
485
- $pages_to_show[] = max( $pages_to_show ) + 1;
486
- if ( count( $pages_to_show ) < 5 ) {
487
- $pages_to_show[] = max( $pages_to_show ) + 1;
488
- }
489
- } else if ( $array['page'] - min( $pages_to_show ) >= 2 ) {
490
- $pages_to_show[] = min( $pages_to_show ) - 1;
491
- if ( count( $pages_to_show ) < 5 ) {
492
- $pages_to_show[] = min( $pages_to_show ) - 1;
493
- }
494
- }
495
- }
496
-
497
- asort( $pages_to_show );
498
-
499
- $array['pages_to_show'] = $pages_to_show;
500
-
501
- } else {
502
-
503
- if ( isset( $pages_to_show ) && count( $pages_to_show ) < 5 ) {
504
- if ( max( $pages_to_show ) - $array['page'] >= 2 ) {
505
- $pages_to_show[] = max( $pages_to_show ) + 1;
506
- if ( count( $pages_to_show ) < 5 ) {
507
- $pages_to_show[] = max( $pages_to_show ) + 1;
508
- }
509
- } elseif ( $array['page'] - min( $pages_to_show ) >= 2 ) {
510
- $pages_to_show[] = min( $pages_to_show ) - 1;
511
- if ( count( $pages_to_show ) < 5 ) {
512
- $pages_to_show[] = min( $pages_to_show ) - 1;
513
- }
514
- }
515
- }
516
-
517
- if ( isset( $pages_to_show ) && is_array( $pages_to_show ) ) {
518
-
519
- asort( $pages_to_show );
520
-
521
- $array['pages_to_show'] = $pages_to_show;
522
-
523
- }
524
-
525
- }
526
-
527
- if ( isset( $array['pages_to_show'] ) ) {
528
-
529
- if ( $array['total_pages'] < count( $array['pages_to_show'] ) ) {
530
- foreach ( $array['pages_to_show'] as $k => $v ) {
531
- if ( $v > $array['total_pages'] ) unset( $array['pages_to_show'][ $k ] );
532
- }
533
- }
534
-
535
- foreach ( $array['pages_to_show'] as $k => $v ) {
536
- if ( (int) $v <= 0 ) {
537
- unset( $array['pages_to_show'][ $k ] );
538
- }
539
- }
540
-
541
- }
542
-
543
- /**
544
- * UM hook
545
- *
546
- * @type filter
547
- * @title um_prepare_user_results_array
548
- * @description Extend member directory query result
549
- * @input_vars
550
- * [{"var":"$result","type":"array","desc":"Members Query Result"}]
551
- * @change_log
552
- * ["Since: 2.0"]
553
- * @usage
554
- * <?php add_filter( 'um_prepare_user_results_array', 'function_name', 10, 1 ); ?>
555
- * @example
556
- * <?php
557
- * add_filter( 'um_prepare_user_results_array', 'my_prepare_user_results', 10, 1 );
558
- * function my_prepare_user_results( $result ) {
559
- * // your code here
560
- * return $result;
561
- * }
562
- * ?>
563
- */
564
- return apply_filters( 'um_prepare_user_results_array', $array );
565
- }
566
-
567
-
568
- /**
569
- * Optimizes Member directory with multiple LEFT JOINs
570
- * @param object $vars
571
- * @return object $var
572
- */
573
- public function um_optimize_member_query( $vars ) {
574
-
575
- global $wpdb;
576
-
577
- $arr_where = explode("\n", $vars->query_where );
578
- $arr_left_join = explode("LEFT JOIN", $vars->query_from );
579
- $arr_user_photo_key = array( 'synced_profile_photo', 'profile_photo', 'synced_gravatar_hashed_id' );
580
-
581
- foreach ( $arr_where as $where ) {
582
-
583
- foreach ( $arr_user_photo_key as $key ) {
584
-
585
- if ( strpos( $where, "'" . $key . "'" ) > -1 ) {
586
-
587
- // find usermeta key
588
- preg_match("#mt[0-9]+.#", $where, $meta_key );
589
-
590
- // remove period from found meta_key
591
- $meta_key = str_replace(".","", current( $meta_key ) );
592
-
593
- // remove matched LEFT JOIN clause
594
- $vars->query_from = str_replace('LEFT JOIN wp_usermeta AS '.$meta_key.' ON ( wp_users.ID = '.$meta_key.'.user_id )', '', $vars->query_from );
595
-
596
- // prepare EXISTS replacement for LEFT JOIN clauses
597
- $where_exists = 'um_exist EXISTS( SELECT '.$wpdb->usermeta.'.umeta_id FROM '.$wpdb->usermeta.' WHERE '.$wpdb->usermeta.'.user_id = '.$wpdb->users.'.ID AND '.$wpdb->usermeta.'.meta_key IN("'.implode('","', $arr_user_photo_key ).'") AND '.$wpdb->usermeta.'.meta_value != "" )';
598
-
599
- // Replace LEFT JOIN clauses with EXISTS and remove duplicates
600
- if ( strpos( $vars->query_where, 'um_exist' ) === FALSE ) {
601
- $vars->query_where = str_replace( $where , $where_exists, $vars->query_where );
602
- } else {
603
- $vars->query_where = str_replace( $where , '1=0', $vars->query_where );
604
- }
605
- }
606
-
607
- }
608
-
609
- }
610
-
611
- $vars->query_where = str_replace( "\n", "", $vars->query_where );
612
- $vars->query_where = str_replace( "um_exist", "", $vars->query_where );
613
-
614
- return $vars;
615
-
616
- }
617
-
618
-
619
- }
620
- }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
includes/core/class-plugin-updater.php CHANGED
@@ -1,9 +1,10 @@
1
  <?php
2
  namespace um\core;
3
 
4
- // Exit if accessed directly.
5
  if ( ! defined( 'ABSPATH' ) ) exit;
6
 
 
7
  if ( ! class_exists( 'um\core\Plugin_Updater' ) ) {
8
 
9
 
@@ -139,6 +140,10 @@ if ( ! class_exists( 'um\core\Plugin_Updater' ) ) {
139
  'key' => 'filesharing',
140
  'title' => 'File Sharing',
141
  ),
 
 
 
 
142
  );
143
 
144
  $active_um_plugins = array();
@@ -153,6 +158,9 @@ if ( ! class_exists( 'um\core\Plugin_Updater' ) ) {
153
  switch_to_blog( $site->blog_id );
154
 
155
  $the_plugs = get_option( 'active_plugins' );
 
 
 
156
  $the_plugs = array_merge( $the_plugs, $sitewide_plugins );
157
 
158
  foreach ( $the_plugs as $key => $value ) {
1
  <?php
2
  namespace um\core;
3
 
4
+
5
  if ( ! defined( 'ABSPATH' ) ) exit;
6
 
7
+
8
  if ( ! class_exists( 'um\core\Plugin_Updater' ) ) {
9
 
10
 
140
  'key' => 'filesharing',
141
  'title' => 'File Sharing',
142
  ),
143
+ 'um-user-location/um-user-location.php' => array(
144
+ 'key' => 'user-location',
145
+ 'title' => 'User Location',
146
+ ),
147
  );
148
 
149
  $active_um_plugins = array();
158
  switch_to_blog( $site->blog_id );
159
 
160
  $the_plugs = get_option( 'active_plugins' );
161
+ if ( ! $the_plugs ) {
162
+ $the_plugs = array();
163
+ }
164
  $the_plugs = array_merge( $the_plugs, $sitewide_plugins );
165
 
166
  foreach ( $the_plugs as $key => $value ) {
includes/core/class-profile.php CHANGED
@@ -394,7 +394,7 @@ if ( ! class_exists( 'um\core\Profile' ) ) {
394
  $icon = ! empty( $data['icon'] ) ? '<i class="' . $data['icon'] . '"></i>' : '';
395
  }
396
 
397
- $items[] = '<span>' . $icon . $value . '</span>';
398
  $items[] = '<span class="b">&bull;</span>';
399
  }
400
  }
@@ -418,11 +418,16 @@ if ( ! class_exists( 'um\core\Profile' ) ) {
418
  * @param string $element
419
  * @param string $trigger
420
  * @param array $items
 
421
  */
422
- function new_ui( $position, $element, $trigger, $items ) {
423
- ?>
424
 
425
- <div class="um-dropdown" data-element="<?php echo esc_attr( $element ); ?>" data-position="<?php echo esc_attr( $position ); ?>" data-trigger="<?php echo esc_attr( $trigger ); ?>">
 
 
 
 
 
426
  <div class="um-dropdown-b">
427
  <div class="um-dropdown-arr"><i class=""></i></div>
428
  <ul>
394
  $icon = ! empty( $data['icon'] ) ? '<i class="' . $data['icon'] . '"></i>' : '';
395
  }
396
 
397
+ $items[] = apply_filters( 'um_show_meta_item_html', '<span>' . $icon . $value . '</span>', $key );
398
  $items[] = '<span class="b">&bull;</span>';
399
  }
400
  }
418
  * @param string $element
419
  * @param string $trigger
420
  * @param array $items
421
+ * @param array $args
422
  */
423
+ function new_ui( $position, $element, $trigger, $items, $args = array() ) {
 
424
 
425
+ $additional_data = '';
426
+ foreach ( $args as $key => $value ) {
427
+ $additional_data .= " data-{$key}=\"{$value}\"";
428
+ } ?>
429
+
430
+ <div class="um-dropdown" data-element="<?php echo esc_attr( $element ); ?>" data-position="<?php echo esc_attr( $position ); ?>" data-trigger="<?php echo esc_attr( $trigger ); ?>"<?php echo $additional_data ?>>
431
  <div class="um-dropdown-b">
432
  <div class="um-dropdown-arr"><i class=""></i></div>
433
  <ul>
includes/core/class-register.php CHANGED
@@ -1,9 +1,10 @@
1
  <?php
2
  namespace um\core;
3
 
4
- // Exit if accessed directly
5
  if ( ! defined( 'ABSPATH' ) ) exit;
6
 
 
7
  if ( ! class_exists( 'um\core\Register' ) ) {
8
 
9
 
@@ -18,8 +19,8 @@ if ( ! class_exists( 'um\core\Register' ) ) {
18
  * Register constructor.
19
  */
20
  function __construct() {
21
- add_action( "um_after_register_fields", array( $this, 'add_nonce' ) );
22
- add_action( "um_submit_form_register", array( $this, 'verify_nonce' ), 1, 1 );
23
  }
24
 
25
 
@@ -60,14 +61,14 @@ if ( ! class_exists( 'um\core\Register' ) ) {
60
  * }
61
  * ?>
62
  */
63
- $allow_nonce_verification = apply_filters( "um_register_allow_nonce_verification", true );
64
 
65
- if( ! $allow_nonce_verification ){
66
  return $args;
67
  }
68
 
69
  if ( ! wp_verify_nonce( $args['_wpnonce'], 'um_register_form' ) || empty( $args['_wpnonce'] ) || ! isset( $args['_wpnonce'] ) ) {
70
- wp_die('Invalid Nonce.');
71
  }
72
 
73
  return $args;
1
  <?php
2
  namespace um\core;
3
 
4
+
5
  if ( ! defined( 'ABSPATH' ) ) exit;
6
 
7
+
8
  if ( ! class_exists( 'um\core\Register' ) ) {
9
 
10
 
19
  * Register constructor.
20
  */
21
  function __construct() {
22
+ add_action( 'um_after_register_fields', array( $this, 'add_nonce' ) );
23
+ add_action( 'um_submit_form_register', array( $this, 'verify_nonce' ), 1, 1 );
24
  }
25
 
26
 
61
  * }
62
  * ?>
63
  */
64
+ $allow_nonce_verification = apply_filters( 'um_register_allow_nonce_verification', true );
65
 
66
+ if ( ! $allow_nonce_verification ) {
67
  return $args;
68
  }
69
 
70
  if ( ! wp_verify_nonce( $args['_wpnonce'], 'um_register_form' ) || empty( $args['_wpnonce'] ) || ! isset( $args['_wpnonce'] ) ) {
71
+ wp_die( __( 'Invalid Nonce.', 'ultimate-member' ) );
72
  }
73
 
74
  return $args;
includes/core/class-rewrite.php CHANGED
@@ -18,14 +18,37 @@ if ( ! class_exists( 'um\core\Rewrite' ) ) {
18
  * Rewrite constructor.
19
  */
20
  function __construct() {
 
 
 
 
21
  //add rewrite rules
22
- add_filter( 'query_vars', array(&$this, 'query_vars'), 10, 1 );
23
  add_filter( 'rewrite_rules_array', array( &$this, '_add_rewrite_rules' ), 10, 1 );
24
- add_action( 'init', array( &$this, 'rewrite_rules'), 100000000 );
 
 
 
25
 
26
 
27
- add_action( 'template_redirect', array( &$this, 'redirect_author_page'), 9999 );
28
- add_action( 'template_redirect', array( &$this, 'locate_user_profile'), 9999 );
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
29
  }
30
 
31
 
@@ -144,43 +167,6 @@ if ( ! class_exists( 'um\core\Rewrite' ) ) {
144
  }
145
 
146
 
147
- /**
148
- * Setup rewrite rules
149
- */
150
- function rewrite_rules() {
151
-
152
- if ( isset( UM()->config()->permalinks['user'] ) && isset( UM()->config()->permalinks['account'] ) ) {
153
-
154
- /**
155
- * UM hook
156
- *
157
- * @type filter
158
- * @title um_rewrite_flush_rewrite_rules
159
- * @description Enable flushing rewrite rules
160
- * @input_vars
161
- * [{"var":"$stop_flush","type":"bool","desc":"Stop flushing rewrite rules"}]
162
- * @change_log
163
- * ["Since: 2.0"]
164
- * @usage
165
- * <?php add_filter( 'um_rewrite_flush_rewrite_rules', 'function_name', 10, 1 ); ?>
166
- * @example
167
- * <?php
168
- * add_filter( 'um_rewrite_flush_rewrite_rules', 'my_rewrite_flush_rewrite_rules', 10, 1 );
169
- * function my_rewrite_flush_rewrite_rules( $stop_flush ) {
170
- * // your code here
171
- * return $stop_flush;
172
- * }
173
- * ?>
174
- */
175
- if ( ! apply_filters( 'um_rewrite_flush_rewrite_rules', UM()->options()->get( 'um_flush_stop' ) ) ) {
176
- flush_rewrite_rules( true );
177
- }
178
-
179
- }
180
-
181
- }
182
-
183
-
184
  /**
185
  * Author page to user profile redirect
186
  */
18
  * Rewrite constructor.
19
  */
20
  function __construct() {
21
+ if ( ! defined( 'DOING_AJAX' ) ) {
22
+ add_filter( 'wp_loaded', array( $this, 'maybe_flush_rewrite_rules' ) );
23
+ }
24
+
25
  //add rewrite rules
26
+ add_filter( 'query_vars', array( &$this, 'query_vars' ), 10, 1 );
27
  add_filter( 'rewrite_rules_array', array( &$this, '_add_rewrite_rules' ), 10, 1 );
28
+
29
+ add_action( 'template_redirect', array( &$this, 'redirect_author_page' ), 9999 );
30
+ add_action( 'template_redirect', array( &$this, 'locate_user_profile' ), 9999 );
31
+ }
32
 
33
 
34
+ /**
35
+ * Update "flush" option for reset rules on wp_loaded hook
36
+ */
37
+ function reset_rules() {
38
+ update_option( 'um_flush_rewrite_rules', 1 );
39
+ }
40
+
41
+
42
+ /**
43
+ * Reset Rewrite rules if need it.
44
+ *
45
+ * @return void
46
+ */
47
+ function maybe_flush_rewrite_rules() {
48
+ if ( get_option( 'um_flush_rewrite_rules' ) ) {
49
+ flush_rewrite_rules( false );
50
+ delete_option( 'um_flush_rewrite_rules' );
51
+ }
52
  }
53
 
54
 
167
  }
168
 
169
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
170
  /**
171
  * Author page to user profile redirect
172
  */
includes/core/class-setup.php CHANGED
@@ -1,14 +1,16 @@
1
  <?php
2
  namespace um\core;
3
 
4
- // Exit if accessed directly
5
  if ( ! defined( 'ABSPATH' ) ) exit;
6
 
 
7
  if ( ! class_exists( 'um\core\Setup' ) ) {
8
 
9
 
10
  /**
11
  * Class Setup
 
12
  * @package um\core
13
  */
14
  class Setup {
@@ -18,7 +20,6 @@ if ( ! class_exists( 'um\core\Setup' ) ) {
18
  * Setup constructor.
19
  */
20
  function __construct() {
21
- //add_action('init', array(&$this, 'install_basics'), 9);
22
  }
23
 
24
 
@@ -28,7 +29,6 @@ if ( ! class_exists( 'um\core\Setup' ) ) {
28
  function run_setup() {
29
  $this->install_basics();
30
  $this->install_default_forms();
31
- //$this->install_default_pages();
32
  $this->set_default_settings();
33
  $this->set_default_role_meta();
34
  }
@@ -184,6 +184,8 @@ if ( ! class_exists( 'um\core\Setup' ) ) {
184
  $content = '[ultimatemember form_id="' . $setup_shortcodes[ $slug ] . '"]';
185
  }
186
 
 
 
187
  $user_page = array(
188
  'post_title' => $array['title'],
189
  'post_content' => $content,
@@ -208,6 +210,9 @@ if ( ! class_exists( 'um\core\Setup' ) ) {
208
  }
209
 
210
  update_option( 'um_options', $options );
 
 
 
211
  }
212
 
213
 
@@ -215,13 +220,13 @@ if ( ! class_exists( 'um\core\Setup' ) ) {
215
  * Set default UM settings
216
  */
217
  function set_default_settings() {
218
- $options = get_option( 'um_options' );
219
- $options = empty( $options ) ? array() : $options;
220
 
221
  foreach ( UM()->config()->settings_defaults as $key => $value ) {
222
  //set new options to default
223
- if ( ! isset( $options[ $key ] ) )
224
  $options[ $key ] = $value;
 
225
  }
226
 
227
  update_option( 'um_options', $options );
1
  <?php
2
  namespace um\core;
3
 
4
+
5
  if ( ! defined( 'ABSPATH' ) ) exit;
6
 
7
+
8
  if ( ! class_exists( 'um\core\Setup' ) ) {
9
 
10
 
11
  /**
12
  * Class Setup
13
+ *
14
  * @package um\core
15
  */
16
  class Setup {
20
  * Setup constructor.
21
  */
22
  function __construct() {
 
23
  }
24
 
25
 
29
  function run_setup() {
30
  $this->install_basics();
31
  $this->install_default_forms();
 
32
  $this->set_default_settings();
33
  $this->set_default_role_meta();
34
  }
184
  $content = '[ultimatemember form_id="' . $setup_shortcodes[ $slug ] . '"]';
185
  }
186
 
187
+ $content = apply_filters( 'um_setup_predefined_page_content', $content, $slug );
188
+
189
  $user_page = array(
190
  'post_title' => $array['title'],
191
  'post_content' => $content,
210
  }
211
 
212
  update_option( 'um_options', $options );
213
+
214
+ // reset rewrite rules after first install of core pages
215
+ UM()->rewrite()->reset_rules();
216
  }
217
 
218
 
220
  * Set default UM settings
221
  */
222
  function set_default_settings() {
223
+ $options = get_option( 'um_options', array() );
 
224
 
225
  foreach ( UM()->config()->settings_defaults as $key => $value ) {
226
  //set new options to default
227
+ if ( ! isset( $options[ $key ] ) ) {
228
  $options[ $key ] = $value;
229
+ }
230
  }
231
 
232
  update_option( 'um_options', $options );
includes/core/class-shortcodes.php CHANGED
@@ -361,15 +361,12 @@ if ( ! class_exists( 'um\core\Shortcodes' ) ) {
361
 
362
  $args = wp_parse_args( $args, $defaults );
363
 
364
-
365
-
366
  if ( ! is_user_logged_in() ) {
367
  if ( $args['show_lock'] == 'no' ) {
368
  echo '';
369
  } else {
370
  $args['lock_text'] = $this->convert_locker_tags( $args['lock_text'] );
371
- $this->set_args = $args;
372
- $this->load_template( 'login-to-view' );
373
  }
374
  } else {
375
  echo do_shortcode( $this->convert_locker_tags( wpautop( $content ) ) );
@@ -388,7 +385,7 @@ if ( ! class_exists( 'um\core\Shortcodes' ) ) {
388
  *
389
  * @return string
390
  */
391
- function um_loggedout($args = array(), $content = "") {
392
  ob_start();
393
 
394
  // Hide for logged in users
@@ -542,21 +539,22 @@ if ( ! class_exists( 'um\core\Shortcodes' ) ) {
542
  */
543
  function load( $args ) {
544
  $defaults = array();
545
- $args = wp_parse_args($args, $defaults);
546
 
547
  // when to not continue
548
- $this->form_id = (isset($args['form_id'])) ? $args['form_id'] : null;
549
- if (!$this->form_id) {
550
  return;
551
  }
552
 
553
- $this->form_status = get_post_status($this->form_id);
554
- if ($this->form_status != 'publish') {
555
  return;
556
  }
557
 
558
  // get data into one global array
559
  $post_data = UM()->query()->post_data( $this->form_id );
 
560
 
561
  ob_start();
562
 
@@ -581,7 +579,7 @@ if ( ! class_exists( 'um\core\Shortcodes' ) ) {
581
  * }
582
  * ?>
583
  */
584
- $args = apply_filters( 'um_pre_args_setup', $post_data );
585
 
586
  if ( ! isset( $args['template'] ) ) {
587
  $args['template'] = '';
@@ -1160,14 +1158,56 @@ if ( ! class_exists( 'um\core\Shortcodes' ) ) {
1160
  * @return string
1161
  */
1162
  public function ultimatemember_searchform( $args = array(), $content = "" ) {
1163
- // turn off buffer
1164
- ob_start();
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1165
 
1166
- // load template
1167
- $this->load_template( 'searchform' );
1168
 
1169
- // get the buffer
1170
- $template = ob_get_clean();
1171
 
1172
  return $template;
1173
  }
361
 
362
  $args = wp_parse_args( $args, $defaults );
363
 
 
 
364
  if ( ! is_user_logged_in() ) {
365
  if ( $args['show_lock'] == 'no' ) {
366
  echo '';
367
  } else {
368
  $args['lock_text'] = $this->convert_locker_tags( $args['lock_text'] );
369
+ UM()->get_template( 'login-to-view.php', '', $args, true );
 
370
  }
371
  } else {
372
  echo do_shortcode( $this->convert_locker_tags( wpautop( $content ) ) );
385
  *
386
  * @return string
387
  */
388
+ function um_loggedout( $args = array(), $content = '' ) {
389
  ob_start();
390
 
391
  // Hide for logged in users
539
  */
540
  function load( $args ) {
541
  $defaults = array();
542
+ $args = wp_parse_args( $args, $defaults );
543
 
544
  // when to not continue
545
+ $this->form_id = isset( $args['form_id'] ) ? $args['form_id'] : null;
546
+ if ( ! $this->form_id ) {
547
  return;
548
  }
549
 
550
+ $this->form_status = get_post_status( $this->form_id );
551
+ if ( $this->form_status != 'publish' ) {
552
  return;
553
  }
554
 
555
  // get data into one global array
556
  $post_data = UM()->query()->post_data( $this->form_id );
557
+ $args = array_merge( $args, $post_data );
558
 
559
  ob_start();
560
 
579
  * }
580
  * ?>
581
  */
582
+ $args = apply_filters( 'um_pre_args_setup', $args );
583
 
584
  if ( ! isset( $args['template'] ) ) {
585
  $args['template'] = '';
1158
  * @return string
1159
  */
1160
  public function ultimatemember_searchform( $args = array(), $content = "" ) {
1161
+ if ( ! UM()->options()->get( 'members_page' ) ) {
1162
+ return '';
1163
+ }
1164
+
1165
+ $member_directory_ids = array();
1166
+
1167
+ $page_id = UM()->config()->permalinks['members'];
1168
+ if ( ! empty( $page_id ) ) {
1169
+ $members_page = get_post( $page_id );
1170
+ if ( ! empty( $members_page ) && ! is_wp_error( $members_page ) ) {
1171
+ if ( ! empty( $members_page->post_content ) ) {
1172
+ preg_match_all( '/\[ultimatemember[^\]]*?form_id\=[\'"]*?(\d+)[\'"]*?/i', $members_page->post_content, $matches );
1173
+ if ( ! empty( $matches[1] ) && is_array( $matches[1] ) ) {
1174
+ $member_directory_ids = array_map( 'absint', $matches[1] );
1175
+ }
1176
+ }
1177
+ }
1178
+ }
1179
+
1180
+ if ( empty( $member_directory_ids ) ) {
1181
+ return '';
1182
+ }
1183
+
1184
+ //current user priority role
1185
+ $priority_user_role = false;
1186
+ if ( is_user_logged_in() ) {
1187
+ $priority_user_role = UM()->roles()->get_priority_user_role( get_current_user_id() );
1188
+ }
1189
+
1190
+ $query = array();
1191
+ foreach ( $member_directory_ids as $directory_id ) {
1192
+ $directory_data = UM()->query()->post_data( $directory_id );
1193
+
1194
+ $show_search = empty( $directory_data['roles_can_search'] ) || ( ! empty( $priority_user_role ) && in_array( $priority_user_role, $directory_data['roles_can_search'] ) );
1195
+ if ( empty( $directory_data['search'] ) || ! $show_search ) {
1196
+ continue;
1197
+ }
1198
+
1199
+ $hash = UM()->member_directory()->get_directory_hash( $directory_id );
1200
+
1201
+ $query[ 'search_' . $hash ] = ! empty( $_GET[ 'search_' . $hash ] ) ? $_GET[ 'search_' . $hash ] : '';
1202
+ }
1203
+
1204
+ if ( empty( $query ) ) {
1205
+ return '';
1206
+ }
1207
 
1208
+ $search_value = array_values( $query );
 
1209
 
1210
+ $template = UM()->get_template( 'searchform.php', '', array( 'query' => $query, 'search_value' => $search_value[0], 'members_page' => um_get_core_page( 'members' ) ) );
 
1211
 
1212
  return $template;
1213
  }
includes/core/class-uploader.php CHANGED
@@ -98,20 +98,20 @@ if ( ! class_exists( 'um\core\Uploader' ) ) {
98
  * Uploader constructor.
99
  */
100
  function __construct() {
101
- $this->core_upload_dir = DIRECTORY_SEPARATOR . "ultimatemember" . DIRECTORY_SEPARATOR;
102
- $this->core_upload_url = "/ultimatemember/";
103
  $this->upload_image_type = 'stream_photo';
104
  $this->wp_upload_dir = wp_upload_dir();
105
- $this->temp_upload_dir = "temp";
106
 
107
- add_filter( "upload_dir", array( $this, "set_upload_directory" ), 10, 1 );
108
- add_filter( "wp_handle_upload_prefilter", array( $this, "validate_upload" ) );
109
- add_filter( "um_upload_image_process__profile_photo", array( $this, "profile_photo" ), 10, 6 );
110
- add_filter( "um_upload_image_process__cover_photo", array( $this, "cover_photo" ), 10, 6 );
111
- add_filter( "um_upload_stream_image_process", array( $this, "stream_photo" ), 10, 6 );
112
- add_filter( "um_custom_image_handle_wall_img_upload", array( $this, "stream_photo_data"), 10, 1 );
113
 
114
- add_action( "init", array( $this, "init" ) );
 
 
 
 
115
  }
116
 
117
 
@@ -286,7 +286,7 @@ if ( ! class_exists( 'um\core\Uploader' ) ) {
286
 
287
 
288
  /**
289
- * Upload Image files
290
  *
291
  * @param array $uploadedfile
292
  * @param int|null $user_id
@@ -296,6 +296,7 @@ if ( ! class_exists( 'um\core\Uploader' ) ) {
296
  * @since 2.0.22
297
  *
298
  * @return array
 
299
  */
300
  public function upload_image( $uploadedfile, $user_id = null, $field_key = '', $upload_type = 'stream_photo' ) {
301
  $response = array();
@@ -305,7 +306,7 @@ if ( ! class_exists( 'um\core\Uploader' ) ) {
305
  }
306
 
307
  if ( empty( $field_key ) ) {
308
- $field_key = "custom_field";
309
  }
310
 
311
  $this->field_key = $field_key;
@@ -318,16 +319,16 @@ if ( ! class_exists( 'um\core\Uploader' ) ) {
318
  $this->user_id = $user_id;
319
  }
320
 
321
- if ( in_array( $field_key, array( 'profile_photo','cover_photo' ) ) ) {
322
  $this->upload_image_type = $field_key;
323
  }
324
 
325
  $field_data = UM()->fields()->get_field( $field_key );
326
 
327
- if ( isset( $field_data['allowed_types'] ) && ! empty( $field_data['allowed_types'] ) ) {
328
- $field_allowed_file_types = explode(",", $field_data['allowed_types'] );
329
  } else {
330
- $field_allowed_file_types = apply_filters("um_uploader_image_default_filetypes", array('JPG','JPEG','PNG','GIF') );
331
  }
332
 
333
  $allowed_image_mimes = array();
@@ -337,12 +338,10 @@ if ( ! class_exists( 'um\core\Uploader' ) ) {
337
  $allowed_image_mimes[ $atype['ext'] ] = $atype['type'];
338
  }
339
 
340
- $image_compression = UM()->options()->get( 'image_compression' );
341
-
342
  $upload_overrides = array(
343
- 'test_form' => false,
344
- 'mimes' => apply_filters( "um_uploader_allowed_image_mimes", $allowed_image_mimes ),
345
- 'unique_filename_callback' => array( $this, "unique_filename"),
346
  );
347
 
348
  $upload_overrides = apply_filters( "um_image_upload_handler_overrides__{$field_key}", $upload_overrides );
@@ -456,10 +455,6 @@ if ( ! class_exists( 'um\core\Uploader' ) ) {
456
  */
457
  do_action( "um_after_upload_db_meta_{$field_key}", $this->user_id );
458
 
459
- if ( 'stream_photo' !== $this->upload_image_type ) {
460
- update_user_meta( $this->user_id, $field_key, wp_basename( $movefile['url'] ) );
461
- }
462
-
463
  $filename = wp_basename( $movefile['url'] );
464
 
465
  $transient = set_transient( "um_{$filename}", $movefile['file_info'], 2 * HOUR_IN_SECONDS );
@@ -515,9 +510,9 @@ if ( ! class_exists( 'um\core\Uploader' ) ) {
515
  }
516
 
517
  $upload_overrides = array(
518
- 'test_form' => false,
519
- 'mimes' => apply_filters( "um_uploader_allowed_file_mimes", $allowed_file_mimes ),
520
- 'unique_filename_callback' => array( $this, "unique_filename"),
521
  );
522
 
523
  $upload_overrides = apply_filters( "um_file_upload_handler_overrides__{$field_key}", $upload_overrides );
@@ -874,6 +869,7 @@ if ( ! class_exists( 'um\core\Uploader' ) ) {
874
 
875
  /**
876
  * Make unique filename
 
877
  * @param string $dir
878
  * @param string $filename
879
  * @param string $ext
@@ -886,8 +882,7 @@ if ( ! class_exists( 'um\core\Uploader' ) ) {
886
  if ( empty( $ext ) ) {
887
  $image_type = wp_check_filetype( $filename );
888
  $ext = strtolower( trim( $image_type['ext'], ' \/.' ) );
889
- }
890
- else {
891
  $ext = strtolower( trim( $ext, ' \/.' ) );
892
  }
893
 
@@ -896,25 +891,23 @@ if ( ! class_exists( 'um\core\Uploader' ) ) {
896
  switch ( $this->upload_image_type ) {
897
 
898
  case 'stream_photo':
899
- $hashed = hash('ripemd160', time(). mt_rand(10,1000) );
900
  $filename = "stream_photo_{$hashed}.{$ext}";
901
- break;
902
 
903
  case 'profile_photo':
904
- $filename = "profile_photo.{$ext}";
905
- break;
906
-
907
  case 'cover_photo':
908
- $filename = "cover_photo.{$ext}";
909
- break;
910
 
911
  }
 
912
  } elseif ( 'file' == $this->upload_type ) {
913
- $hashed = hash('ripemd160', time(). mt_rand(10,1000) );
914
  $filename = "file_{$hashed}.{$ext}";
915
  }
916
 
917
- $this->delete_existing_file( $filename, $ext, $dir );
918
 
919
  return $filename;
920
  }
@@ -929,28 +922,38 @@ if ( ! class_exists( 'um\core\Uploader' ) ) {
929
  * @since 2.0.22
930
  */
931
  public function delete_existing_file( $filename, $ext = '', $dir = '' ) {
932
- if( file_exists( $this->upload_user_basedir . DIRECTORY_SEPARATOR . $filename ) && ! empty( $filename ) ) {
933
- unlink( $this->upload_user_basedir . DIRECTORY_SEPARATOR . $filename );
934
  }
935
  }
936
 
937
 
938
  /**
939
  * Profile photo image process
 
 
 
940
  * @param string $src
 
941
  * @param integer $user_id
942
  * @param string $coord
943
  * @param array $crop
944
  *
945
  * @since 2.0.22
 
 
946
  */
947
- public function profile_photo( $image_path, $src, $key, $user_id, $coord, $crop ) {
948
  $sizes = UM()->options()->get( 'photo_thumb_sizes' );
949
 
950
  $quality = UM()->options()->get( 'image_compression' );
951
 
952
  $image = wp_get_image_editor( $image_path ); // Return an implementation that extends WP_Image_Editor
953
 
 
 
 
 
954
  if ( ! is_wp_error( $image ) ) {
955
  $src_x = $crop[0];
956
  $src_y = $crop[1];
@@ -959,7 +962,7 @@ if ( ! class_exists( 'um\core\Uploader' ) ) {
959
 
960
  $image->crop( $src_x, $src_y, $src_w, $src_h );
961
 
962
- $max_w = UM()->options()->get('image_max_width');
963
  if ( $src_w > $max_w ) {
964
  $image->resize( $max_w, $src_h );
965
  }
@@ -970,30 +973,46 @@ if ( ! class_exists( 'um\core\Uploader' ) ) {
970
 
971
  $sizes_array = array();
972
 
973
- foreach( $sizes as $size ){
974
- $sizes_array[ ] = array ('width' => $size );
975
  }
976
 
977
  $image->multi_resize( $sizes_array );
978
 
979
  delete_user_meta( $user_id, 'synced_profile_photo' );
980
 
 
 
 
 
 
 
 
 
 
 
981
  } else {
982
  wp_send_json_error( esc_js( __( "Unable to crop image file: {$src}", 'ultimate-member' ) ) );
983
  }
 
 
984
  }
985
 
986
 
987
  /**
988
  * Cover photo image process
 
989
  * @param string $src
990
  * @param integer $user_id
991
  * @param string $coord
992
  * @param array $crop
 
993
  *
994
  * @since 2.0.22
 
 
995
  */
996
- public function cover_photo( $image_path, $src, $key, $user_id, $coord, $crop ){
997
 
998
  $sizes = UM()->options()->get( 'cover_thumb_sizes' );
999
 
@@ -1001,6 +1020,11 @@ if ( ! class_exists( 'um\core\Uploader' ) ) {
1001
 
1002
  $image = wp_get_image_editor( $image_path ); // Return an implementation that extends WP_Image_Editor
1003
 
 
 
 
 
 
1004
  if ( ! is_wp_error( $image ) ) {
1005
 
1006
  $src_x = $crop[0];
@@ -1010,7 +1034,7 @@ if ( ! class_exists( 'um\core\Uploader' ) ) {
1010
 
1011
  $image->crop( $src_x, $src_y, $src_w, $src_h );
1012
 
1013
- $max_w = UM()->options()->get('image_max_width');
1014
  if ( $src_w > $max_w ) {
1015
  $image->resize( $max_w, $src_h );
1016
  }
@@ -1021,36 +1045,53 @@ if ( ! class_exists( 'um\core\Uploader' ) ) {
1021
 
1022
  $sizes_array = array();
1023
 
1024
- foreach( $sizes as $size ){
1025
- $sizes_array[ ] = array ('width' => $size );
1026
  }
1027
 
1028
  $resize = $image->multi_resize( $sizes_array );
1029
 
1030
  // change filenames of resized images
1031
- foreach( $resize as $row ){
1032
- $new_filename = str_replace( "x{$row['height']}" , "", $row["file"] );
1033
- $old_filename = $row["file"];
1034
 
1035
  rename( dirname( $image_path ) . DIRECTORY_SEPARATOR . $old_filename, dirname( $image_path ) . DIRECTORY_SEPARATOR . $new_filename );
1036
  }
1037
 
 
 
 
 
 
 
 
 
 
 
1038
  } else {
1039
  wp_send_json_error( esc_js( __( "Unable to crop image file: {$src}", 'ultimate-member' ) ) );
1040
  }
 
 
1041
  }
1042
 
1043
 
1044
  /**
1045
  * Stream photo image process
 
 
 
1046
  * @param string $src
1047
  * @param integer $user_id
1048
  * @param string $coord
1049
  * @param array $crop
1050
  *
1051
  * @since 2.0.22
 
 
1052
  */
1053
- public function stream_photo( $image_path, $src, $key, $user_id, $coord, $crop ){
1054
 
1055
  $image = wp_get_image_editor( $image_path ); // Return an implementation that extends WP_Image_Editor
1056
 
@@ -1059,8 +1100,8 @@ if ( ! class_exists( 'um\core\Uploader' ) ) {
1059
  if ( ! is_wp_error( $image ) ) {
1060
  if ( ! empty( $crop ) ) {
1061
 
1062
- if( ! is_array( $crop ) ) {
1063
- $crop = explode(",", $crop );
1064
  }
1065
 
1066
  $src_x = $crop[0];
@@ -1070,7 +1111,7 @@ if ( ! class_exists( 'um\core\Uploader' ) ) {
1070
 
1071
  $image->crop( $src_x, $src_y, $src_w, $src_h );
1072
 
1073
- $max_w = UM()->options()->get('image_max_width');
1074
  if ( $src_w > $max_w ) {
1075
  $image->resize( $max_w, $src_h );
1076
  }
@@ -1083,26 +1124,14 @@ if ( ! class_exists( 'um\core\Uploader' ) ) {
1083
  } else {
1084
  wp_send_json_error( esc_js( __( "Unable to crop stream image file: {$image_path}", 'ultimate-member' ) ) );
1085
  }
1086
- }
1087
 
1088
-
1089
- /**
1090
- * Set stream photo default settings
1091
- * @param array $args
1092
- * @return array
1093
- *
1094
- * @since 2.0.22
1095
- */
1096
- public function stream_photo_data( $args ) {
1097
- $args['max_file_size'] = apply_filters( "um_upload_images_stream_maximum_file_size", 9999999 );
1098
- $args['max_file_size_error'] = sprintf( __( "Maximum file size allowed: %s", 'ultimate-member' ), size_format( $args['max_file_size'] ) );
1099
-
1100
- return $args;
1101
  }
1102
 
1103
 
1104
  /**
1105
  * Resize Image
 
1106
  * @param string $image_path
1107
  * @param string $src
1108
  * @param string $key
@@ -1117,24 +1146,30 @@ if ( ! class_exists( 'um\core\Uploader' ) ) {
1117
  $crop = explode( ',', $coord );
1118
  $crop = array_map( 'intval', $crop );
1119
 
1120
- do_action("um_upload_image_process__{$key}", $image_path, $src, $key, $user_id, $coord, $crop );
 
 
 
 
 
 
1121
 
1122
- if ( ! in_array( $key, array('profile_photo','cover_photo') ) ) {
1123
- do_action( "um_upload_stream_image_process", $image_path, $src, $key, $user_id, $coord, $crop );
1124
- }
1125
 
1126
- $ret = array();
1127
- $ret['image']['source_url'] = $src;
1128
- $ret['image']['source_path'] = $image_path;
1129
- $ret['image']['filename'] = wp_basename( $image_path );
1130
 
1131
- return $ret;
1132
  }
1133
 
1134
 
1135
  /**
1136
  * Move temporary files
1137
  *
 
 
 
1138
  * @param $user_id
1139
  * @param $files
1140
  * @param bool $move_only
98
  * Uploader constructor.
99
  */
100
  function __construct() {
101
+ $this->core_upload_dir = DIRECTORY_SEPARATOR . 'ultimatemember' . DIRECTORY_SEPARATOR;
102
+ $this->core_upload_url = '/ultimatemember/';
103
  $this->upload_image_type = 'stream_photo';
104
  $this->wp_upload_dir = wp_upload_dir();
105
+ $this->temp_upload_dir = 'temp';
106
 
107
+ add_filter( 'upload_dir', array( $this, 'set_upload_directory' ), 10, 1 );
108
+ add_filter( 'wp_handle_upload_prefilter', array( $this, 'validate_upload' ) );
 
 
 
 
109
 
110
+ add_filter( 'um_upload_image_process__profile_photo', array( $this, 'profile_photo' ), 10, 7 );
111
+ add_filter( 'um_upload_image_process__cover_photo', array( $this, 'cover_photo' ), 10, 7 );
112
+ add_action( 'um_upload_stream_image_process', array( $this, 'stream_photo' ), 10, 7 );
113
+
114
+ add_action( 'init', array( $this, 'init' ) );
115
  }
116
 
117
 
286
 
287
 
288
  /**
289
+ * Upload Image files
290
  *
291
  * @param array $uploadedfile
292
  * @param int|null $user_id
296
  * @since 2.0.22
297
  *
298
  * @return array
299
+ * @throws \Exception
300
  */
301
  public function upload_image( $uploadedfile, $user_id = null, $field_key = '', $upload_type = 'stream_photo' ) {
302
  $response = array();
306
  }
307
 
308
  if ( empty( $field_key ) ) {
309
+ $field_key = 'custom_field';
310
  }
311
 
312
  $this->field_key = $field_key;
319
  $this->user_id = $user_id;
320
  }
321
 
322
+ if ( in_array( $field_key, array( 'profile_photo', 'cover_photo' ) ) ) {
323
  $this->upload_image_type = $field_key;
324
  }
325
 
326
  $field_data = UM()->fields()->get_field( $field_key );
327
 
328
+ if ( ! empty( $field_data['allowed_types'] ) ) {
329
+ $field_allowed_file_types = explode( ',', $field_data['allowed_types'] );
330
  } else {
331
+ $field_allowed_file_types = apply_filters( 'um_uploader_image_default_filetypes', array( 'JPG', 'JPEG', 'PNG', 'GIF' ) );
332
  }
333
 
334
  $allowed_image_mimes = array();
338
  $allowed_image_mimes[ $atype['ext'] ] = $atype['type'];
339
  }
340
 
 
 
341
  $upload_overrides = array(
342
+ 'test_form' => false,
343
+ 'mimes' => apply_filters( 'um_uploader_allowed_image_mimes', $allowed_image_mimes ),
344
+ 'unique_filename_callback' => array( $this, 'unique_filename' ),
345
  );
346
 
347
  $upload_overrides = apply_filters( "um_image_upload_handler_overrides__{$field_key}", $upload_overrides );
455
  */
456
  do_action( "um_after_upload_db_meta_{$field_key}", $this->user_id );
457
 
 
 
 
 
458
  $filename = wp_basename( $movefile['url'] );
459
 
460
  $transient = set_transient( "um_{$filename}", $movefile['file_info'], 2 * HOUR_IN_SECONDS );
510
  }
511
 
512
  $upload_overrides = array(
513
+ 'test_form' => false,
514
+ 'mimes' => apply_filters( 'um_uploader_allowed_file_mimes', $allowed_file_mimes ),
515
+ 'unique_filename_callback' => array( $this, 'unique_filename' ),
516
  );
517
 
518
  $upload_overrides = apply_filters( "um_file_upload_handler_overrides__{$field_key}", $upload_overrides );
869
 
870
  /**
871
  * Make unique filename
872
+ *
873
  * @param string $dir
874
  * @param string $filename
875
  * @param string $ext
882
  if ( empty( $ext ) ) {
883
  $image_type = wp_check_filetype( $filename );
884
  $ext = strtolower( trim( $image_type['ext'], ' \/.' ) );
885
+ } else {
 
886
  $ext = strtolower( trim( $ext, ' \/.' ) );
887
  }
888
 
891
  switch ( $this->upload_image_type ) {
892
 
893
  case 'stream_photo':
894
+ $hashed = hash('ripemd160', time() . mt_rand( 10, 1000 ) );
895
  $filename = "stream_photo_{$hashed}.{$ext}";
896
+ break;
897
 
898
  case 'profile_photo':
 
 
 
899
  case 'cover_photo':
900
+ $filename = "{$this->upload_image_type}_temp.{$ext}";
901
+ break;
902
 
903
  }
904
+
905
  } elseif ( 'file' == $this->upload_type ) {
906
+ $hashed = hash('ripemd160', time() . mt_rand( 10, 1000 ) );
907
  $filename = "file_{$hashed}.{$ext}";
908
  }
909
 
910
+ $this->delete_existing_file( $filename, $ext, $dir );
911
 
912
  return $filename;
913
  }
922
  * @since 2.0.22
923
  */
924
  public function delete_existing_file( $filename, $ext = '', $dir = '' ) {
925
+ if ( file_exists( $this->upload_user_basedir . DIRECTORY_SEPARATOR . $filename ) && ! empty( $filename ) ) {
926
+ unlink( $this->upload_user_basedir . DIRECTORY_SEPARATOR . $filename );
927
  }
928
  }
929
 
930
 
931
  /**
932
  * Profile photo image process
933
+ *
934
+ * @param array $response
935
+ * @param string $image_path
936
  * @param string $src
937
+ * @param string $key
938
  * @param integer $user_id
939
  * @param string $coord
940
  * @param array $crop
941
  *
942
  * @since 2.0.22
943
+ *
944
+ * @return array
945
  */
946
+ public function profile_photo( $response, $image_path, $src, $key, $user_id, $coord, $crop ) {
947
  $sizes = UM()->options()->get( 'photo_thumb_sizes' );
948
 
949
  $quality = UM()->options()->get( 'image_compression' );
950
 
951
  $image = wp_get_image_editor( $image_path ); // Return an implementation that extends WP_Image_Editor
952
 
953
+ $temp_image_path = $image_path;
954
+ //refresh image_path to make temporary image permanently after upload
955
+ $image_path = pathinfo( $image_path, PATHINFO_DIRNAME ) . DIRECTORY_SEPARATOR . $key . '.' . pathinfo( $image_path, PATHINFO_EXTENSION );
956
+
957
  if ( ! is_wp_error( $image ) ) {
958
  $src_x = $crop[0];
959
  $src_y = $crop[1];
962
 
963
  $image->crop( $src_x, $src_y, $src_w, $src_h );
964
 
965
+ $max_w = UM()->options()->get( 'image_max_width' );
966
  if ( $src_w > $max_w ) {
967
  $image->resize( $max_w, $src_h );
968
  }
973
 
974
  $sizes_array = array();
975
 
976
+ foreach ( $sizes as $size ) {
977
+ $sizes_array[] = array( 'width' => $size );
978
  }
979
 
980
  $image->multi_resize( $sizes_array );
981
 
982
  delete_user_meta( $user_id, 'synced_profile_photo' );
983
 
984
+ unlink( $temp_image_path );
985
+
986
+ $src = str_replace( '/' . $key . '_temp.', '/' . $key . '.', $src );
987
+
988
+ $response['image']['source_url'] = $src;
989
+ $response['image']['source_path'] = $image_path;
990
+ $response['image']['filename'] = wp_basename( $image_path );
991
+
992
+ update_user_meta( $this->user_id, $key, wp_basename( wp_basename( $image_path ) ) );
993
+ delete_user_meta( $this->user_id, "{$key}_metadata_temp" );
994
  } else {
995
  wp_send_json_error( esc_js( __( "Unable to crop image file: {$src}", 'ultimate-member' ) ) );
996
  }
997
+
998
+ return $response;
999
  }
1000
 
1001
 
1002
  /**
1003
  * Cover photo image process
1004
+ *
1005
  * @param string $src
1006
  * @param integer $user_id
1007
  * @param string $coord
1008
  * @param array $crop
1009
+ * @param array $response
1010
  *
1011
  * @since 2.0.22
1012
+ *
1013
+ * @return array
1014
  */
1015
+ public function cover_photo( $response, $image_path, $src, $key, $user_id, $coord, $crop ) {
1016
 
1017
  $sizes = UM()->options()->get( 'cover_thumb_sizes' );
1018
 
1020
 
1021
  $image = wp_get_image_editor( $image_path ); // Return an implementation that extends WP_Image_Editor
1022
 
1023
+ $temp_image_path = $image_path;
1024
+
1025
+ //refresh image_path to make temporary image permanently after upload
1026
+ $image_path = pathinfo( $image_path, PATHINFO_DIRNAME ) . DIRECTORY_SEPARATOR . $key . '.' . pathinfo( $image_path, PATHINFO_EXTENSION );
1027
+
1028
  if ( ! is_wp_error( $image ) ) {
1029
 
1030
  $src_x = $crop[0];
1034
 
1035
  $image->crop( $src_x, $src_y, $src_w, $src_h );
1036
 
1037
+ $max_w = UM()->options()->get( 'image_max_width' );
1038
  if ( $src_w > $max_w ) {
1039
  $image->resize( $max_w, $src_h );
1040
  }
1045
 
1046
  $sizes_array = array();
1047
 
1048
+ foreach ( $sizes as $size ) {
1049
+ $sizes_array[] = array( 'width' => $size );
1050
  }
1051
 
1052
  $resize = $image->multi_resize( $sizes_array );
1053
 
1054
  // change filenames of resized images
1055
+ foreach ( $resize as $row ) {
1056
+ $new_filename = str_replace( "x{$row['height']}" , '', $row['file'] );
1057
+ $old_filename = $row['file'];
1058
 
1059
  rename( dirname( $image_path ) . DIRECTORY_SEPARATOR . $old_filename, dirname( $image_path ) . DIRECTORY_SEPARATOR . $new_filename );
1060
  }
1061
 
1062
+ unlink( $temp_image_path );
1063
+
1064
+ $src = str_replace( '/' . $key . '_temp.', '/' . $key . '.', $src );
1065
+
1066
+ $response['image']['source_url'] = $src;
1067
+ $response['image']['source_path'] = $image_path;
1068
+ $response['image']['filename'] = wp_basename( $image_path );
1069
+
1070
+ update_user_meta( $this->user_id, $key, wp_basename( wp_basename( $image_path ) ) );
1071
+ delete_user_meta( $this->user_id, "{$key}_metadata_temp" );
1072
  } else {
1073
  wp_send_json_error( esc_js( __( "Unable to crop image file: {$src}", 'ultimate-member' ) ) );
1074
  }
1075
+
1076
+ return $response;
1077
  }
1078
 
1079
 
1080
  /**
1081
  * Stream photo image process
1082
+ *
1083
+ * @param array $response
1084
+ * @param string $image_path
1085
  * @param string $src
1086
  * @param integer $user_id
1087
  * @param string $coord
1088
  * @param array $crop
1089
  *
1090
  * @since 2.0.22
1091
+ *
1092
+ * @return array
1093
  */
1094
+ public function stream_photo( $response, $image_path, $src, $key, $user_id, $coord, $crop ) {
1095
 
1096
  $image = wp_get_image_editor( $image_path ); // Return an implementation that extends WP_Image_Editor
1097
 
1100
  if ( ! is_wp_error( $image ) ) {
1101
  if ( ! empty( $crop ) ) {
1102
 
1103
+ if ( ! is_array( $crop ) ) {
1104
+ $crop = explode( ",", $crop );
1105
  }
1106
 
1107
  $src_x = $crop[0];
1111
 
1112
  $image->crop( $src_x, $src_y, $src_w, $src_h );
1113
 
1114
+ $max_w = UM()->options()->get( 'image_max_width' );
1115
  if ( $src_w > $max_w ) {
1116
  $image->resize( $max_w, $src_h );
1117
  }
1124
  } else {
1125
  wp_send_json_error( esc_js( __( "Unable to crop stream image file: {$image_path}", 'ultimate-member' ) ) );
1126
  }
 
1127
 
1128
+ return $response;
 
 
 
 
 
 
 
 
 
 
 
 
1129
  }
1130
 
1131
 
1132
  /**
1133
  * Resize Image
1134
+ *
1135
  * @param string $image_path
1136
  * @param string $src
1137
  * @param string $key
1146
  $crop = explode( ',', $coord );
1147
  $crop = array_map( 'intval', $crop );
1148
 
1149
+ $response = array(
1150
+ 'image' => array(
1151
+ 'source_url' => $src,
1152
+ 'source_path' => $image_path,
1153
+ 'filename' => wp_basename( $image_path ),
1154
+ ),
1155
+ );
1156
 
1157
+ $response = apply_filters( "um_upload_image_process__{$key}", $response, $image_path, $src, $key, $user_id, $coord, $crop );
 
 
1158
 
1159
+ if ( ! in_array( $key, array( 'profile_photo', 'cover_photo' ) ) ) {
1160
+ $response = apply_filters( 'um_upload_stream_image_process', $response, $image_path, $src, $key, $user_id, $coord, $crop );
1161
+ }
 
1162
 
1163
+ return $response;
1164
  }
1165
 
1166
 
1167
  /**
1168
  * Move temporary files
1169
  *
1170
+ * run when uploaded files are from custom fields
1171
+ * move them to the users' folder after form submitted
1172
+ *
1173
  * @param $user_id
1174
  * @param $files
1175
  * @param bool $move_only
includes/core/class-user-posts.php CHANGED
@@ -1,9 +1,10 @@
1
  <?php
2
  namespace um\core;
3
 
4
- // Exit if accessed directly
5
  if ( ! defined( 'ABSPATH' ) ) exit;
6
 
 
7
  if ( ! class_exists( 'um\core\User_posts' ) ) {
8
 
9
 
@@ -13,14 +14,13 @@ if ( ! class_exists( 'um\core\User_posts' ) ) {
13
  */
14
  class User_posts {
15
 
 
16
  /**
17
  * User_posts constructor.
18
  */
19
  function __construct() {
20
  add_action( 'um_profile_content_posts', array( &$this, 'add_posts' ) );
21
  add_action( 'um_profile_content_comments', array( &$this, 'add_comments' ) );
22
-
23
- add_action( 'um_ajax_load_posts__um_load_comments', array( &$this, 'load_comments' ), 10, 1 );
24
  }
25
 
26
 
@@ -28,7 +28,6 @@ if ( ! class_exists( 'um\core\User_posts' ) ) {
28
  * Add posts
29
  */
30
  function add_posts() {
31
-
32
  $args = array(
33
  'post_type' => 'post',
34
  'posts_per_page' => 10,
@@ -63,8 +62,7 @@ if ( ! class_exists( 'um\core\User_posts' ) ) {
63
 
64
  $count_posts = (int) count_user_posts( um_get_requested_user(), 'post', true );
65
 
66
- UM()->shortcodes()->set_args = array( 'posts' => $posts, 'count_posts' => $count_posts );
67
- UM()->shortcodes()->load_template( 'profile/posts' );
68
  }
69
 
70
 
@@ -72,7 +70,23 @@ if ( ! class_exists( 'um\core\User_posts' ) ) {
72
  * Add comments
73
  */
74
  function add_comments() {
75
- UM()->shortcodes()->load_template( 'profile/comments' );
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
76
  }
77
 
78
 
@@ -118,31 +132,30 @@ if ( ! class_exists( 'um\core\User_posts' ) ) {
118
  $args = apply_filters( 'um_profile_query_make_posts', $args );
119
  $posts = get_posts( $args );
120
 
121
- UM()->shortcodes()->set_args = array( 'posts' => $posts );
122
- UM()->shortcodes()->load_template( 'profile/posts' );
123
  wp_die();
124
  }
125
 
126
 
127
  /**
128
  * Dynamic load of comments
129
- *
130
- * @param $args
131
  */
132
- function load_comments( $args ) {
133
- $array = explode(',', $args );
134
- $post_type = $array[0];
135
- $posts_per_page = $array[1];
136
- $offset = $array[2];
137
- $author = $array[3];
138
-
139
- $offset_n = $posts_per_page + $offset;
140
 
141
- UM()->shortcodes()->modified_args = "$post_type,$posts_per_page,$offset_n,$author";
 
142
 
143
- UM()->shortcodes()->loop = UM()->query()->make("post_type=$post_type&number=$posts_per_page&offset=$offset&user_id=$author");
 
 
 
 
 
 
144
 
145
- UM()->shortcodes()->load_template('profile/comments-single');
 
146
  }
147
 
148
 
@@ -154,12 +167,15 @@ if ( ! class_exists( 'um\core\User_posts' ) ) {
154
  *
155
  * @return int|string
156
  */
157
- function count_user_posts_by_type( $user_id= '', $post_type = 'post' ) {
158
  global $wpdb;
159
- if ( !$user_id )
160
  $user_id = um_user( 'ID' );
 
161
 
162
- if ( !$user_id ) return 0;
 
 
163
 
164
  $where = get_posts_by_author_sql( $post_type, true, $user_id );
165
  $count = $wpdb->get_var( "SELECT COUNT(*) FROM $wpdb->posts $where" );
@@ -177,10 +193,13 @@ if ( ! class_exists( 'um\core\User_posts' ) ) {
177
  */
178
  function count_user_comments( $user_id = null ) {
179
  global $wpdb;
180
- if ( !$user_id )
181
- $user_id = um_user('ID');
 
182
 
183
- if ( !$user_id ) return 0;
 
 
184
 
185
  $count = $wpdb->get_var("SELECT COUNT(comment_ID) FROM " . $wpdb->comments. " WHERE user_id = " . $user_id . " AND comment_approved = '1'");
186
 
1
  <?php
2
  namespace um\core;
3
 
4
+
5
  if ( ! defined( 'ABSPATH' ) ) exit;
6
 
7
+
8
  if ( ! class_exists( 'um\core\User_posts' ) ) {
9
 
10
 
14
  */
15
  class User_posts {
16
 
17
+
18
  /**
19
  * User_posts constructor.
20
  */
21
  function __construct() {
22
  add_action( 'um_profile_content_posts', array( &$this, 'add_posts' ) );
23
  add_action( 'um_profile_content_comments', array( &$this, 'add_comments' ) );
 
 
24
  }
25
 
26
 
28
  * Add posts
29
  */
30
  function add_posts() {
 
31
  $args = array(
32
  'post_type' => 'post',
33
  'posts_per_page' => 10,
62
 
63
  $count_posts = (int) count_user_posts( um_get_requested_user(), 'post', true );
64
 
65
+ UM()->get_template( 'profile/posts.php', '', array( 'posts' => $posts, 'count_posts' => $count_posts ), true );
 
66
  }
67
 
68
 
70
  * Add comments
71
  */
72
  function add_comments() {
73
+ $comments = get_comments( array(
74
+ 'number' => 10,
75
+ 'offset' => 0,
76
+ 'user_id' => um_user( 'ID' ),
77
+ 'post_status' => array( 'publish' ),
78
+ 'type__not_in' => apply_filters( 'um_excluded_comment_types', array('') ),
79
+ ) );
80
+
81
+
82
+ $comments_count = get_comments( array(
83
+ 'user_id' => um_user( 'ID' ),
84
+ 'post_status' => array( 'publish' ),
85
+ 'type__not_in' => apply_filters( 'um_excluded_comment_types', array('') ),
86
+ 'count' => 1,
87
+ ) );
88
+
89
+ UM()->get_template( 'profile/comments.php', '', array( 'comments' => $comments, 'count_comments' => $comments_count ), true );
90
  }
91
 
92
 
132
  $args = apply_filters( 'um_profile_query_make_posts', $args );
133
  $posts = get_posts( $args );
134
 
135
+ UM()->get_template( 'profile/posts.php', '', array( 'posts' => $posts ), true );
 
136
  wp_die();
137
  }
138
 
139
 
140
  /**
141
  * Dynamic load of comments
 
 
142
  */
143
+ function load_comments() {
144
+ UM()->check_ajax_nonce();
 
 
 
 
 
 
145
 
146
+ $user_id = ! empty( $_POST['user_id'] ) ? absint( $_POST['user_id'] ) : get_current_user_id();
147
+ $page = ! empty( $_POST['page'] ) ? absint( $_POST['page'] ) : 0;
148
 
149
+ $comments = get_comments( array(
150
+ 'number' => 10,
151
+ 'offset' => ( $page - 1 ) * 10,
152
+ 'user_id' => $user_id,
153
+ 'post_status' => array('publish'),
154
+ 'type__not_in' => apply_filters( 'um_excluded_comment_types', array('') ),
155
+ ) );
156
 
157
+ UM()->get_template( 'profile/comments.php', '', array( 'comments' => $comments ), true );
158
+ wp_die();
159
  }
160
 
161
 
167
  *
168
  * @return int|string
169
  */
170
+ function count_user_posts_by_type( $user_id = '', $post_type = 'post' ) {
171
  global $wpdb;
172
+ if ( ! $user_id ) {
173
  $user_id = um_user( 'ID' );
174
+ }
175
 
176
+ if ( ! $user_id ) {
177
+ return 0;
178
+ }
179
 
180
  $where = get_posts_by_author_sql( $post_type, true, $user_id );
181
  $count = $wpdb->get_var( "SELECT COUNT(*) FROM $wpdb->posts $where" );
193
  */
194
  function count_user_comments( $user_id = null ) {
195
  global $wpdb;
196
+ if ( ! $user_id ) {
197
+ $user_id = um_user( 'ID' );
198
+ }
199
 
200
+ if ( ! $user_id ) {
201
+ return 0;
202
+ }
203
 
204
  $count = $wpdb->get_var("SELECT COUNT(comment_ID) FROM " . $wpdb->comments. " WHERE user_id = " . $user_id . " AND comment_approved = '1'");
205
 
includes/core/class-user.php CHANGED
@@ -1494,7 +1494,6 @@ if ( ! class_exists( 'um\core\User' ) ) {
1494
  */
1495
  function get_admin_actions() {
1496
  $items = array();
1497
- $actions = array();
1498
 
1499
  /**
1500
  * UM hook
@@ -1517,7 +1516,7 @@ if ( ! class_exists( 'um\core\User' ) ) {
1517
  * }
1518
  * ?>
1519
  */
1520
- $actions = apply_filters( 'um_admin_user_actions_hook', $actions );
1521
  if ( ! isset( $actions ) || empty( $actions ) ) {
1522
  return false;
1523
  }
@@ -1641,14 +1640,11 @@ if ( ! class_exists( 'um\core\User' ) ) {
1641
  * Update files
1642
  *
1643
  * @param $changes
 
 
1644
  */
1645
  function update_files( $changes ) {
1646
-
1647
- foreach ( $changes as $key => $uri ) {
1648
- $src = um_is_temp_upload( $uri );
1649
- UM()->files()->new_user_upload( $this->id, $src, $key );
1650
- }
1651
-
1652
  }
1653
 
1654
 
1494
  */
1495
  function get_admin_actions() {
1496
  $items = array();
 
1497
 
1498
  /**
1499
  * UM hook
1516
  * }
1517
  * ?>
1518
  */
1519
+ $actions = apply_filters( 'um_admin_user_actions_hook', null, um_profile_id() );
1520
  if ( ! isset( $actions ) || empty( $actions ) ) {
1521
  return false;
1522
  }
1640
  * Update files
1641
  *
1642
  * @param $changes
1643
+ *
1644
+ * @deprecated 2.1.0
1645
  */
1646
  function update_files( $changes ) {
1647
+ um_deprecated_function( 'update_files', '2.1.0', '' );
 
 
 
 
 
1648
  }
1649
 
1650
 
includes/core/um-actions-account.php CHANGED
@@ -177,7 +177,7 @@ function um_submit_account_details( $args ) {
177
  $user->destroy_all();
178
 
179
  wp_set_password( $changes['user_pass'], um_user( 'ID' ) );
180
-
181
  wp_signon( array( 'user_login' => um_user( 'user_login' ), 'user_password' => $changes['user_pass'] ) );
182
  }
183
 
@@ -185,7 +185,8 @@ function um_submit_account_details( $args ) {
185
  // delete account
186
  $user = get_user_by( 'login', um_user( 'user_login' ) );
187
 
188
- if ( 'delete' == $current_tab && isset( $_POST['single_user_password'] ) && wp_check_password( $_POST['single_user_password'], $user->data->user_pass, $user->data->ID ) ) {
 
189
  if ( current_user_can( 'delete_users' ) || um_user( 'can_delete_profile' ) ) {
190
  UM()->user()->delete();
191
 
@@ -222,45 +223,42 @@ function um_submit_account_details( $args ) {
222
  }
223
  }
224
 
225
-
226
  $arr_fields = array();
227
- $account_fields = get_user_meta( um_user('ID'), 'um_account_secure_fields', true );
228
-
229
- /**
230
- * UM hook
231
- *
232
- * @type filter
233
- * @title um_secure_account_fields
234
- * @description Change secure account fields
235
- * @input_vars
236
- * [{"var":"$fields","type":"array","desc":"Secure account fields"},
237
- * {"var":"$user_id","type":"int","desc":"User ID"}]
238
- * @change_log
239
- * ["Since: 2.0"]
240
- * @usage
241
- * <?php add_filter( 'um_secure_account_fields', 'function_name', 10, 2 ); ?>
242
- * @example
243
- * <?php
244
- * add_filter( 'um_secure_account_fields', 'my_secure_account_fields', 10, 2 );
245
- * function my_secure_account_fields( $fields, $user_id ) {
246
- * // your code here
247
- * return $fields;
248
- * }
249
- * ?>
250
- */
251
- $secure_fields = apply_filters( 'um_secure_account_fields', $account_fields, um_user( 'ID' ) );
252
-
253
- if ( is_array( $secure_fields ) ) {
254
- foreach ( $secure_fields as $tab_key => $fields ) {
255
- foreach ( $fields as $key => $value ) {
256
- $arr_fields[ ] = $key;
257
- }
258
  }
259
  }
260
 
261
  $changes = array();
262
  foreach ( $_POST as $k => $v ) {
263
- if ( strstr( $k, 'password' ) || strstr( $k, 'um_account' ) || ! in_array( $k, $arr_fields ) ) {
264
  continue;
265
  }
266
 
@@ -319,6 +317,11 @@ function um_submit_account_details( $args ) {
319
 
320
  UM()->user()->update_profile( $changes );
321
 
 
 
 
 
 
322
  /**
323
  * UM hook
324
  *
@@ -410,6 +413,8 @@ add_action( 'um_before_account_delete', 'um_before_account_delete' );
410
  * Before notifications account tab content
411
  *
412
  * @param array $args
 
 
413
  */
414
  function um_before_account_notifications( $args = array() ) {
415
  $output = UM()->account()->get_tab_fields( 'notifications', $args );
@@ -427,16 +432,6 @@ function um_before_account_notifications( $args = array() ) {
427
  add_action( 'um_before_account_notifications', 'um_before_account_notifications' );
428
 
429
 
430
- /**
431
- * Update account fields to secure the account submission
432
- */
433
- function um_account_secure_registered_fields(){
434
- $secure_fields = UM()->account()->register_fields;
435
- update_user_meta( um_user( 'ID' ), 'um_account_secure_fields', $secure_fields );
436
- }
437
- add_action( 'wp_footer', 'um_account_secure_registered_fields' );
438
-
439
-
440
  /**
441
  * Update Profile URL
442
  *
177
  $user->destroy_all();
178
 
179
  wp_set_password( $changes['user_pass'], um_user( 'ID' ) );
180
+
181
  wp_signon( array( 'user_login' => um_user( 'user_login' ), 'user_password' => $changes['user_pass'] ) );
182
  }
183
 
185
  // delete account
186
  $user = get_user_by( 'login', um_user( 'user_login' ) );
187
 
188
+ if ( 'delete' == $current_tab && isset( $_POST['single_user_password'] ) &&
189
+ wp_check_password( $_POST['single_user_password'], $user->data->user_pass, $user->data->ID ) ) {
190
  if ( current_user_can( 'delete_users' ) || um_user( 'can_delete_profile' ) ) {
191
  UM()->user()->delete();
192
 
223
  }
224
  }
225
 
 
226
  $arr_fields = array();
227
+ if ( UM()->account()->is_secure_enabled() ) {
228
+ $account_fields = get_user_meta( um_user( 'ID' ), 'um_account_secure_fields', true );
229
+
230
+ /**
231
+ * UM hook
232
+ *
233
+ * @type filter
234
+ * @title um_secure_account_fields
235
+ * @description Change secure account fields
236
+ * @input_vars
237
+ * [{"var":"$fields","type":"array","desc":"Secure account fields"},
238
+ * {"var":"$user_id","type":"int","desc":"User ID"}]
239
+ * @change_log
240
+ * ["Since: 2.0"]
241
+ * @usage
242
+ * <?php add_filter( 'um_secure_account_fields', 'function_name', 10, 2 ); ?>
243
+ * @example
244
+ * <?php
245
+ * add_filter( 'um_secure_account_fields', 'my_secure_account_fields', 10, 2 );
246
+ * function my_secure_account_fields( $fields, $user_id ) {
247
+ * // your code here
248
+ * return $fields;
249
+ * }
250
+ * ?>
251
+ */
252
+ $secure_fields = apply_filters( 'um_secure_account_fields', $account_fields, um_user( 'ID' ) );
253
+
254
+ if ( isset( $secure_fields[ $current_tab ] ) && is_array( $secure_fields[ $current_tab ] ) ) {
255
+ $arr_fields = array_merge( $arr_fields, $secure_fields[ $current_tab ] );
 
 
256
  }
257
  }
258
 
259
  $changes = array();
260
  foreach ( $_POST as $k => $v ) {
261
+ if ( ! in_array( $k, $arr_fields ) ) {
262
  continue;
263
  }
264
 
317
 
318
  UM()->user()->update_profile( $changes );
319
 
320
+
321
+ if ( UM()->account()->is_secure_enabled() ) {
322
+ update_user_meta( um_user( 'ID' ), 'um_account_secure_fields', array() );
323
+ }
324
+
325
  /**
326
  * UM hook
327
  *
413
  * Before notifications account tab content
414
  *
415
  * @param array $args
416
+ *
417
+ * @throws Exception
418
  */
419
  function um_before_account_notifications( $args = array() ) {
420
  $output = UM()->account()->get_tab_fields( 'notifications', $args );
432
  add_action( 'um_before_account_notifications', 'um_before_account_notifications' );
433
 
434
 
 
 
 
 
 
 
 
 
 
 
435
  /**
436
  * Update Profile URL
437
  *
includes/core/um-actions-form.php CHANGED
@@ -366,12 +366,19 @@ function um_submit_form_errors_hook_( $args ) {
366
  $um_profile_photo = um_profile('profile_photo');
367
 
368
  if ( get_post_meta( $form_id, '_um_profile_photo_required', true ) && ( empty( $args['profile_photo'] ) && empty( $um_profile_photo ) ) ) {
369
- UM()->form()->add_error('profile_photo', sprintf(__('%s is required.','ultimate-member'), 'Profile Photo' ) );
370
  }
371
 
372
  if ( ! empty( $fields ) ) {
373
  foreach ( $fields as $key => $array ) {
374
 
 
 
 
 
 
 
 
375
  if ( isset( $array['public'] ) && -2 == $array['public'] && ! empty( $array['roles'] ) && is_user_logged_in() ) {
376
  $current_user_roles = um_user( 'roles' );
377
  if ( empty( $current_user_roles ) || count( array_intersect( $current_user_roles, $array['roles'] ) ) <= 0 ) {
@@ -413,7 +420,7 @@ function um_submit_form_errors_hook_( $args ) {
413
  }
414
 
415
  if ( isset( $array['type'] ) && $array['type'] == 'checkbox' && isset( $array['required'] ) && $array['required'] == 1 && !isset( $args[$key] ) ) {
416
- UM()->form()->add_error($key, sprintf(__('%s is required.','ultimate-member'), $array['title'] ) );
417
  }
418
 
419
  if ( isset( $array['type'] ) && $array['type'] == 'radio' && isset( $array['required'] ) && $array['required'] == 1 && !isset( $args[$key] ) && !in_array($key, array('role_radio','role_select') ) ) {
@@ -453,17 +460,17 @@ function um_submit_form_errors_hook_( $args ) {
453
  */
454
  do_action( 'um_add_error_on_form_submit_validation', $array, $key, $args );
455
 
456
- if ( isset( $args[ $key ] ) ) {
457
-
458
- if ( isset( $array['required'] ) && $array['required'] == 1 ) {
459
- if ( ! isset( $args[$key] ) || $args[$key] == '' || $args[$key] == 'empty_file') {
460
- if( empty( $array['label'] ) ) {
461
- UM()->form()->add_error($key, __('This field is required','ultimate-member') );
462
- } else {
463
- UM()->form()->add_error($key, sprintf( __('%s is required','ultimate-member'), $array['label'] ) );
464
- }
465
  }
466
  }
 
 
 
467
 
468
  if ( isset( $array['max_words'] ) && $array['max_words'] > 0 ) {
469
  if ( str_word_count( $args[$key], 0, "éèàôù" ) > $array['max_words'] ) {
@@ -482,10 +489,10 @@ function um_submit_form_errors_hook_( $args ) {
482
  UM()->form()->add_error($key, sprintf(__('Your %s must contain less than %s characters','ultimate-member'), $array['label'], $array['max_chars']) );
483
  }
484
  }
485
-
486
- $profile_show_html_bio = UM()->options()->get('profile_show_html_bio');
487
-
488
- if ( $profile_show_html_bio == 1 && $key !== "description" ) {
489
  if ( isset( $array['html'] ) && $array['html'] == 0 ) {
490
  if ( wp_strip_all_tags( $args[$key] ) != trim( $args[ $key ] ) ) {
491
  UM()->form()->add_error( $key, __( 'You can not use HTML tags here', 'ultimate-member' ) );
@@ -732,10 +739,12 @@ function um_submit_form_errors_hook_( $args ) {
732
 
733
  if ( $args[ $key ] != '' ) {
734
 
735
- if( ! ctype_alpha( str_replace(' ', '', $args[$key] ) ) ){
736
- UM()->form()->add_error( $key , __('You must provide alphabetic letters','ultimate-member') );
737
  }
 
738
  }
 
739
  break;
740
 
741
  case 'lowercase':
366
  $um_profile_photo = um_profile('profile_photo');
367
 
368
  if ( get_post_meta( $form_id, '_um_profile_photo_required', true ) && ( empty( $args['profile_photo'] ) && empty( $um_profile_photo ) ) ) {
369
+ UM()->form()->add_error('profile_photo', __( 'Profile Photo is required.', 'ultimate-member' ) );
370
  }
371
 
372
  if ( ! empty( $fields ) ) {
373
  foreach ( $fields as $key => $array ) {
374
 
375
+ if ( $mode == 'profile' ) {
376
+ $restricted_fields = UM()->fields()->get_restricted_fields_for_edit();
377
+ if ( is_array( $restricted_fields ) && in_array( $key, $restricted_fields ) ) {
378
+ continue;
379
+ }
380
+ }
381
+
382
  if ( isset( $array['public'] ) && -2 == $array['public'] && ! empty( $array['roles'] ) && is_user_logged_in() ) {
383
  $current_user_roles = um_user( 'roles' );
384
  if ( empty( $current_user_roles ) || count( array_intersect( $current_user_roles, $array['roles'] ) ) <= 0 ) {
420
  }
421
 
422
  if ( isset( $array['type'] ) && $array['type'] == 'checkbox' && isset( $array['required'] ) && $array['required'] == 1 && !isset( $args[$key] ) ) {
423
+ UM()->form()->add_error($key, sprintf( __( '%s is required.', 'ultimate-member' ), $array['title'] ) );
424
  }
425
 
426
  if ( isset( $array['type'] ) && $array['type'] == 'radio' && isset( $array['required'] ) && $array['required'] == 1 && !isset( $args[$key] ) && !in_array($key, array('role_radio','role_select') ) ) {
460
  */
461
  do_action( 'um_add_error_on_form_submit_validation', $array, $key, $args );
462
 
463
+ if ( ! empty( $array['required'] ) ) {
464
+ if ( ! isset( $args[ $key ] ) || $args[ $key ] == '' || $args[ $key ] == 'empty_file' ) {
465
+ if ( empty( $array['label'] ) ) {
466
+ UM()->form()->add_error( $key, __( 'This field is required', 'ultimate-member' ) );
467
+ } else {
468
+ UM()->form()->add_error( $key, sprintf( __( '%s is required', 'ultimate-member' ), $array['label'] ) );
 
 
 
469
  }
470
  }
471
+ }
472
+
473
+ if ( isset( $args[ $key ] ) ) {
474
 
475
  if ( isset( $array['max_words'] ) && $array['max_words'] > 0 ) {
476
  if ( str_word_count( $args[$key], 0, "éèàôù" ) > $array['max_words'] ) {
489
  UM()->form()->add_error($key, sprintf(__('Your %s must contain less than %s characters','ultimate-member'), $array['label'], $array['max_chars']) );
490
  }
491
  }
492
+
493
+ $profile_show_html_bio = UM()->options()->get( 'profile_show_html_bio' );
494
+
495
+ if ( $profile_show_html_bio == 1 && $key !== 'description' ) {
496
  if ( isset( $array['html'] ) && $array['html'] == 0 ) {
497
  if ( wp_strip_all_tags( $args[$key] ) != trim( $args[ $key ] ) ) {
498
  UM()->form()->add_error( $key, __( 'You can not use HTML tags here', 'ultimate-member' ) );
739
 
740
  if ( $args[ $key ] != '' ) {
741
 
742
+ if ( ! preg_match( '/^\p{L}+$/u', str_replace( ' ', '', $args[ $key ] ) ) ) {
743
+ UM()->form()->add_error( $key, __( 'You must provide alphabetic letters', 'ultimate-member' ) );
744
  }
745
+
746
  }
747
+
748
  break;
749
 
750
  case 'lowercase':
includes/core/um-actions-members.php DELETED
@@ -1,255 +0,0 @@
1
- <?php if ( ! defined( 'ABSPATH' ) ) exit; // Exit if accessed directly
2
-
3
-
4
- /**
5
- * Member Directory Search
6
- *
7
- * @param $args
8
- */
9
- function um_members_directory_search( $args ) {
10
- $search_filters = array();
11
-
12
- if ( isset( $args['search_fields'] ) ) {
13
- foreach ( $args['search_fields'] as $k => $testfilter ) {
14
- if ( $testfilter && ! in_array( $testfilter, (array) $search_filters ) ) {
15
- $search_filters[] = $testfilter;
16
- }
17
- }
18
- }
19
-
20
- /**
21
- * UM hook
22
- *
23
- * @type filter
24
- * @title um_frontend_member_search_filters
25
- * @description Extend Member Directory Search filter
26
- * @input_vars
27
- * [{"var":"$search_filters","type":"array","desc":"Search Filters"}]
28
- * @change_log
29
- * ["Since: 2.0"]
30
- * @usage
31
- * <?php add_filter( 'um_frontend_member_search_filters', 'function_name', 10, 1 ); ?>
32
- * @example
33
- * <?php
34
- * add_filter( 'um_frontend_member_search_filters', 'my_frontend_member_search_filters', 10, 1 );
35
- * function my_frontend_member_search_filters( $search_filters ) {
36
- * // your code here
37
- * return $search_filters;
38
- * }
39
- * ?>
40
- */
41
- $search_filters = apply_filters( 'um_frontend_member_search_filters', $search_filters );
42
-
43
- if ( $args['search'] == 1 && is_array( $search_filters ) ) { // search on
44
-
45
- $current_user_roles = um_user( 'roles' );
46
- if ( ! empty( $args['roles_can_search'] ) && ( empty( $current_user_roles ) || count( array_intersect( $current_user_roles, $args['roles_can_search'] ) ) <= 0 ) ) {
47
- return;
48
- }
49
-
50
- $count = count( $search_filters ); ?>
51
-
52
- <div class="um-search um-search-<?php echo esc_attr( $count ); ?>">
53
-
54
- <form method="get" action="">
55
-
56
- <?php if ( isset( $_REQUEST['page_id'] ) && get_option( 'permalink_structure' ) == 0 ) { ?>
57
-
58
- <input type="hidden" name="page_id" id="page_id" value="<?php echo esc_attr( $_REQUEST['page_id'] ); ?>" />
59
-
60
- <?php }
61
-
62
- $i = 0;
63
- foreach ( $search_filters as $filter ) {
64
- $i++;
65
-
66
- if ( $i % 2 == 0 ) {
67
- $add_class = 'um-search-filter-2';
68
- } else {
69
- $add_class = '';
70
- } ?>
71
-
72
- <div class="um-search-filter <?php echo esc_attr( $add_class ) ?>">
73
- <?php UM()->members()->show_filter( $filter ); ?>
74
- </div>
75
- <?php } ?>
76
-
77
- <div class="um-clear"></div>
78
-
79
- <div class="um-search-submit">
80
-
81
- <input type="hidden" name="um_search" id="um_search" value="1" />
82
-
83
- <a href="javascript:void(0);" class="um-button um-do-search"><?php _e('Search','ultimate-member' ); ?></a>
84
- <a href="<?php echo esc_url( UM()->permalinks()->get_current_url( true ) ); ?>" class="um-button um-alt"><?php _e( 'Reset', 'ultimate-member' ); ?></a>
85
-
86
- </div>
87
- <div class="um-clear"></div>
88
-
89
- </form>
90
-
91
- </div>
92
-
93
- <?php
94
-
95
- }
96
- }
97
- add_action( 'um_members_directory_search', 'um_members_directory_search' );
98
-
99
-
100
- /**
101
- * Pre-display Member Directory
102
- *
103
- * @param $args
104
- */
105
- function um_pre_directory_shortcode( $args ) {
106
- extract( $args );
107
- UM()->members()->results = UM()->members()->get_members( $args );
108
- }
109
- add_action( 'um_pre_directory_shortcode', 'um_pre_directory_shortcode' );
110
-
111
-
112
- /**
113
- * Member Directory Header
114
- *
115
- * @param $args
116
- */
117
- function um_members_directory_head( $args ) {
118
- extract( $args );
119
-
120
- if ( isset( $_REQUEST['um_search'] ) ) {
121
- $is_filtering = 1;
122
- } elseif ( UM()->is_filtering == 1 ) {
123
- $is_filtering = 1;
124
- } else {
125
- $is_filtering = 0;
126
- }
127
-
128
- if ( um_members( 'header' ) && $is_filtering && um_members( 'users_per_page' ) ) { ?>
129
-
130
- <div class="um-members-intro">
131
-
132
- <div class="um-members-total"><?php echo ( um_members( 'total_users' ) > 1 ) ? um_members( 'header' ) : um_members( 'header_single' ); ?></div>
133
-
134
- </div>
135
-
136
- <?php }
137
- }
138
- add_action( 'um_members_directory_head', 'um_members_directory_head' );
139
-
140
-
141
- /**
142
- * Member Directory Pagination
143
- *
144
- * @param $args
145
- */
146
- function um_members_directory_pagination( $args ) {
147
- extract( $args );
148
-
149
-
150
- if ( isset( $args['search'] ) && $args['search'] == 1 && isset( $args['must_search'] ) && $args['must_search'] == 1 && ! isset( $_REQUEST['um_search'] ) ) {
151
- return;
152
- }
153
-
154
- if ( um_members('total_pages') > 1 ) { // needs pagination
155
-
156
- ?>
157
-
158
- <div class="um-members-pagidrop uimob340-show uimob500-show">
159
-
160
- <?php _e( 'Jump to page:', 'ultimate-member' ); ?>
161
-
162
- <?php if ( um_members( 'pages_to_show' ) && is_array( um_members( 'pages_to_show' ) ) ) { ?>
163
- <select onChange="window.location.href=this.value" class="um-s2" style="width: 100px">
164
- <?php foreach( um_members( 'pages_to_show' ) as $i ) { ?>
165
- <option value="<?php echo esc_url( UM()->permalinks()->add_query( 'members_page', $i ) ); ?>" <?php selected( $i, um_members( 'page' ) ); ?>><?php printf( __( '%s of %d', 'ultimate-member' ), $i, um_members( 'total_pages' ) ); ?></option>
166
- <?php } ?>
167
- </select>
168
- <?php } ?>
169
-
170
- </div>
171
-
172
- <div class="um-members-pagi uimob340-hide uimob500-hide">
173
-
174
- <?php if ( um_members( 'page' ) != 1 ) { ?>
175
- <a href="<?php echo esc_url( UM()->permalinks()->add_query( 'members_page', 1 ) ); ?>" class="pagi pagi-arrow um-tip-n" title="<?php esc_attr_e( 'First Page', 'ultimate-member' ); ?>"><i class="um-faicon-angle-double-left"></i></a>
176
- <?php } else { ?>
177
- <span class="pagi pagi-arrow disabled"><i class="um-faicon-angle-double-left"></i></span>
178
- <?php }
179
-
180
- if ( um_members( 'page' ) > 1 ) { ?>
181
- <a href="<?php echo UM()->permalinks()->add_query( 'members_page', um_members( 'page' ) - 1 ); ?>" class="pagi pagi-arrow um-tip-n" title="<?php esc_attr_e( 'Previous', 'ultimate-member'); ?>"><i class="um-faicon-angle-left"></i></a>
182
- <?php } else { ?>
183
- <span class="pagi pagi-arrow disabled"><i class="um-faicon-angle-left"></i></span>
184
- <?php }
185
-
186
- if ( um_members('pages_to_show') && is_array( um_members( 'pages_to_show' ) ) ) {
187
- foreach ( um_members( 'pages_to_show' ) as $i ) {
188
-
189
- if ( um_members('page') == $i ) { ?>
190
-
191
- <span class="pagi current"><?php echo $i; ?></span>
192
-
193
- <?php } else { ?>
194
-
195
- <a href="<?php echo esc_url( UM()->permalinks()->add_query( 'members_page', $i ) ); ?>" class="pagi"><?php echo $i; ?></a>
196
-
197
- <?php }
198
- }
199
- }
200
-
201
- if ( um_members('page') != um_members( 'total_pages' ) ) { ?>
202
- <a href="<?php echo esc_url( UM()->permalinks()->add_query( 'members_page', um_members( 'page' ) + 1 ) ); ?>" class="pagi pagi-arrow um-tip-n" title="<?php esc_attr_e('Next','ultimate-member'); ?>"><i class="um-faicon-angle-right"></i></a>
203
- <?php } else { ?>
204
- <span class="pagi pagi-arrow disabled"><i class="um-faicon-angle-right"></i></span>
205
- <?php }
206
-
207
- if ( um_members( 'page' ) != um_members( 'total_pages' ) ) { ?>
208
- <a href="<?php echo esc_url( UM()->permalinks()->add_query( 'members_page', um_members( 'total_pages' ) ) ); ?>" class="pagi pagi-arrow um-tip-n" title="<?php esc_attr_e('Last Page','ultimate-member'); ?>"><i class="um-faicon-angle-double-right"></i></a>
209
- <?php } else { ?>
210
- <span class="pagi pagi-arrow disabled"><i class="um-faicon-angle-double-right"></i></span>
211
- <?php } ?>
212
-
213
- </div>
214
-
215
- <?php
216
-
217
- }
218
-
219
- }
220
- add_action( 'um_members_directory_footer', 'um_members_directory_pagination' );
221
-
222
-
223
- /**
224
- * Member Directory Display
225
- *
226
- * @param $args
227
- */
228
- function um_members_directory_display( $args ) {
229
- extract( $args );
230
-
231
- if ( isset( $args['search'] ) && $args['search'] == 1 && isset( $args['must_search'] ) && $args['must_search'] == 1 && ! isset( $_REQUEST['um_search'] ) ) {
232
- return;
233
- }
234
-
235
- if ( um_members( 'no_users' ) ) { ?>
236
-
237
- <div class="um-members-none">
238
- <p><?php echo esc_html( $args['no_users'] ); ?></p>
239
- </div>
240
-
241
- <?php
242
-
243
- }
244
-
245
- $file = um_path . 'templates/members-grid.php';
246
- $theme_file = get_stylesheet_directory() . '/ultimate-member/templates/members-grid.php';
247
-
248
- if ( file_exists( $theme_file ) ) {
249
- $file = $theme_file;
250
- }
251
-
252
- include $file;
253
-
254
- }
255
- add_action( 'um_members_directory_display', 'um_members_directory_display' );
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
includes/core/um-actions-profile.php CHANGED
@@ -284,22 +284,30 @@ function um_user_edit_profile( $args ) {
284
  if ( isset( $args['submitted'][ $key ] ) && is_string( $args['submitted'][ $key ] ) ) {
285
  $stripslashes = stripslashes( $args['submitted'][ $key ] );
286
  }
287
- if ( in_array( $array['type'], array( 'select' ) ) &&
288
- ! empty( $array['options'] ) && ! empty( $stripslashes ) &&
289
- ! in_array( $stripslashes, array_map( 'trim', $array['options'] ) ) && ! $has_custom_source ) {
290
- continue;
 
 
 
 
 
 
291
  }
292
 
293
  //validation of correct values from options in wp-admin
294
  //the user cannot set invalid value in the hidden input at the page
295
- if ( in_array( $array['type'], array( 'multiselect', 'checkbox', 'radio' ) ) &&
296
- ! empty( $args['submitted'][ $key ] ) && ! empty( $array['options'] ) ) {
297
- $args['submitted'][ $key ] = array_map( 'stripslashes', array_map( 'trim', $args['submitted'][ $key ] ) );
298
- $args['submitted'][ $key ] = array_intersect( $args['submitted'][ $key ], array_map( 'trim', $array['options'] ) );
299
- }
300
 
301
- if ( $array['type'] == 'multiselect' || $array['type'] == 'checkbox' && ! isset( $args['submitted'][ $key ] ) ) {
302
- delete_user_meta( um_user( 'ID' ), $key );
 
 
303
  }
304
 
305
  if ( isset( $args['submitted'][ $key ] ) ) {
@@ -458,19 +466,20 @@ function um_user_edit_profile( $args ) {
458
  * @title um_user_after_updating_profile
459
  * @description After upgrade user's profile
460
  * @input_vars
461
- * [{"var":"$submitted","type":"array","desc":"Form data"}]
 
462
  * @change_log
463
  * ["Since: 2.0"]
464
  * @usage add_action( 'um_user_after_updating_profile', 'function_name', 10, 1 );
465
  * @example
466
  * <?php
467
- * add_action( 'um_user_after_updating_profile', 'my_user_after_updating_profile'', 10, 1 );
468
- * function my_user_after_updating_profile( $submitted ) {
469
  * // your code here
470
  * }
471
  * ?>
472
  */
473
- do_action( 'um_user_after_updating_profile', $to_update );
474
 
475
  /**
476
  * UM hook
@@ -666,16 +675,47 @@ function um_profile_header_cover_area( $args ) {
666
 
667
  <?php if ( um_user( 'cover_photo' ) ) {
668
 
 
 
 
 
 
 
 
 
669
  if ( UM()->mobile()->isMobile() ) {
670
- if ( UM()->mobile()->isTablet() ) {
671
- echo um_user( 'cover_photo', 1000 );
672
- } else {
673
- echo um_user( 'cover_photo', 300 );
674
  }
675
- } else {
676
- echo um_user( 'cover_photo', 1000 );
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
677
  }
678
 
 
 
679
  } elseif ( $default_cover && $default_cover['url'] ) {
680
 
681
  $default_cover = $default_cover['url'];
@@ -781,8 +821,22 @@ function um_profile_header( $args ) {
781
 
782
  <div class="um-profile-photo" data-user_id="<?php echo esc_attr( um_profile_id() ); ?>">
783
 
784
- <a href="<?php echo esc_url( um_user_profile_url() ); ?>" class="um-profile-photo-img"
785
- title="<?php echo esc_attr( um_user( 'display_name' ) ); ?>"><?php echo $overlay . get_avatar( um_user( 'ID' ), $default_size ); ?></a>
 
 
 
 
 
 
 
 
 
 
 
 
 
 
786
 
787
  <?php if ( empty( $disable_photo_uploader ) && empty( UM()->user()->cannot_edit ) ) {
788
 
284
  if ( isset( $args['submitted'][ $key ] ) && is_string( $args['submitted'][ $key ] ) ) {
285
  $stripslashes = stripslashes( $args['submitted'][ $key ] );
286
  }
287
+
288
+ if ( in_array( $array['type'], array( 'select' ) ) ) {
289
+ if ( ! empty( $array['options'] ) && ! empty( $stripslashes ) && ! in_array( $stripslashes, array_map( 'trim', $array['options'] ) ) && ! $has_custom_source ) {
290
+ continue;
291
+ }
292
+
293
+ //update empty user meta
294
+ if ( ! isset( $args['submitted'][ $key ] ) || $args['submitted'][ $key ] == '' ) {
295
+ update_user_meta( um_user( 'ID' ), $key, '' );
296
+ }
297
  }
298
 
299
  //validation of correct values from options in wp-admin
300
  //the user cannot set invalid value in the hidden input at the page
301
+ if ( in_array( $array['type'], array( 'multiselect', 'checkbox', 'radio' ) ) ) {
302
+ if ( ! empty( $args['submitted'][ $key ] ) && ! empty( $array['options'] ) ) {
303
+ $args['submitted'][ $key ] = array_map( 'stripslashes', array_map( 'trim', $args['submitted'][ $key ] ) );
304
+ $args['submitted'][ $key ] = array_intersect( $args['submitted'][ $key ], array_map( 'trim', $array['options'] ) );
305
+ }
306
 
307
+ // update empty user meta
308
+ if ( ! isset( $args['submitted'][ $key ] ) || $args['submitted'][ $key ] == '' ) {
309
+ update_user_meta( um_user( 'ID' ), $key, array() );
310
+ }
311
  }
312
 
313
  if ( isset( $args['submitted'][ $key ] ) ) {
466
  * @title um_user_after_updating_profile
467
  * @description After upgrade user's profile
468
  * @input_vars
469
+ * [{"var":"$submitted","type":"array","desc":"Form data"},
470
+ * {"var":"$user_id","type":"int","desc":"User Id"}]
471
  * @change_log
472
  * ["Since: 2.0"]
473
  * @usage add_action( 'um_user_after_updating_profile', 'function_name', 10, 1 );
474
  * @example
475
  * <?php
476
+ * add_action( 'um_user_after_updating_profile', 'my_user_after_updating_profile'', 10, 2 );
477
+ * function my_user_after_updating_profile( $submitted, $user_id ) {
478
  * // your code here
479
  * }
480
  * ?>
481
  */
482
+ do_action( 'um_user_after_updating_profile', $to_update, $user_id );
483
 
484
  /**
485
  * UM hook
675
 
676
  <?php if ( um_user( 'cover_photo' ) ) {
677
 
678
+ $get_cover_size = $args['coversize'];
679
+
680
+ if ( ! $get_cover_size || $get_cover_size == 'original' ) {
681
+ $size = null;
682
+ } else {
683
+ $size = $get_cover_size;
684
+ }
685
+
686
  if ( UM()->mobile()->isMobile() ) {
687
+
688
+ // set for mobile width = 300 by default but can be changed via filter
689
+ if ( ! UM()->mobile()->isTablet() ) {
690
+ $size = 300;
691
  }
692
+
693
+ /**
694
+ * UM hook
695
+ *
696
+ * @type filter
697
+ * @title um_mobile_cover_photo
698
+ * @description Add size for mobile device
699
+ * @input_vars
700
+ * [{"var":"$size","type":"int","desc":"Form's agrument - Cover Photo size"}]
701
+ * @change_log
702
+ * ["Since: 2.0"]
703
+ * @usage
704
+ * <?php add_filter( 'um_mobile_cover_photo', 'change_size', 10, 1 ); ?>
705
+ * @example
706
+ * <?php
707
+ * add_filter( 'um_mobile_cover_photo', 'um_change_cover_mobile_size', 10, 1 );
708
+ * function um_change_cover_mobile_size( $size ) {
709
+ * // your code here
710
+ * return $size;
711
+ * }
712
+ * ?>
713
+ */
714
+ $size = apply_filters( 'um_mobile_cover_photo', $size );
715
  }
716
 
717
+ echo um_user( 'cover_photo', $size );
718
+
719
  } elseif ( $default_cover && $default_cover['url'] ) {
720
 
721
  $default_cover = $default_cover['url'];
821
 
822
  <div class="um-profile-photo" data-user_id="<?php echo esc_attr( um_profile_id() ); ?>">
823
 
824
+ <a href="<?php echo esc_url( um_user_profile_url() ); ?>" class="um-profile-photo-img" title="<?php echo esc_attr( um_user( 'display_name' ) ); ?>">
825
+ <?php if ( ! $default_size || $default_size == 'original' ) {
826
+ $profile_photo = UM()->uploader()->get_upload_base_url() . um_user( 'ID' ) . "/" . um_profile( 'profile_photo' );
827
+
828
+ $data = um_get_user_avatar_data( um_user( 'ID' ) );
829
+ echo $overlay . sprintf( '<img src="%s" class="%s" alt="%s" data-default="%s" onerror="%s" />',
830
+ esc_url( $profile_photo ),
831
+ esc_attr( $data['class'] ),
832
+ esc_attr( $data['alt'] ),
833
+ esc_attr( $data['default'] ),
834
+ 'if ( ! this.getAttribute(\'data-load-error\') ){ this.setAttribute(\'data-load-error\', \'1\');this.setAttribute(\'src\', this.getAttribute(\'data-default\'));}'
835
+ );
836
+ } else {
837
+ echo $overlay . get_avatar( um_user( 'ID' ), $default_size );
838
+ } ?>
839
+ </a>
840
 
841
  <?php if ( empty( $disable_photo_uploader ) && empty( UM()->user()->cannot_edit ) ) {
842
 
includes/core/um-actions-register.php CHANGED
@@ -263,8 +263,9 @@ add_action( 'um_registration_complete', 'um_check_user_status', 100, 2 );
263
  * @return bool|int|WP_Error
264
  */
265
  function um_submit_form_register( $args ) {
266
- if ( isset( UM()->form()->errors ) )
267
  return false;
 
268
 
269
  /**
270
  * UM hook
@@ -291,11 +292,11 @@ function um_submit_form_register( $args ) {
291
 
292
  extract( $args );
293
 
294
- if ( isset( $username ) && ! isset( $user_login ) ) {
295
  $user_login = $username;
296
  }
297
 
298
- if ( ! empty( $first_name ) && ! empty( $last_name ) && ! isset( $user_login ) ) {
299
 
300
  if ( UM()->options()->get( 'permalink_base' ) == 'name' ) {
301
  $user_login = rawurlencode( strtolower( str_replace( " ", ".", $first_name . " " . $last_name ) ) );
@@ -319,13 +320,13 @@ function um_submit_form_register( $args ) {
319
  }
320
  }
321
 
322
- if ( ! isset( $user_login ) && isset( $user_email ) && $user_email ) {
323
  $user_login = $user_email;
324
  }
325
 
326
  $unique_userID = UM()->query()->count_users() + 1;
327
 
328
- if ( ! isset( $user_login ) || strlen( $user_login ) > 30 && ! is_email( $user_login ) ) {
329
  $user_login = 'user' . $unique_userID;
330
  }
331
 
@@ -337,7 +338,7 @@ function um_submit_form_register( $args ) {
337
  $user_password = UM()->validation()->generate( 8 );
338
  }
339
 
340
- if ( ! isset( $user_email ) ) {
341
  $site_url = @$_SERVER['SERVER_NAME'];
342
  $user_email = 'nobody' . $unique_userID . '@' . $site_url;
343
  /**
@@ -365,9 +366,9 @@ function um_submit_form_register( $args ) {
365
  }
366
 
367
  $credentials = array(
368
- 'user_login' => $user_login,
369
- 'user_password' => $user_password,
370
- 'user_email' => trim( $user_email ),
371
  );
372
 
373
  $args['submitted'] = array_merge( $args['submitted'], $credentials );
@@ -422,11 +423,12 @@ function um_submit_form_register( $args ) {
422
  $user_role = apply_filters( 'um_registration_user_role', $user_role, $args );
423
 
424
  $userdata = array(
425
- 'user_login' => $user_login,
426
- 'user_pass' => $user_password,
427
- 'user_email' => $user_email,
428
- 'role' => $user_role,
429
  );
 
430
  $user_id = wp_insert_user( $userdata );
431
 
432
  /**
263
  * @return bool|int|WP_Error
264
  */
265
  function um_submit_form_register( $args ) {
266
+ if ( isset( UM()->form()->errors ) ) {
267
  return false;
268
+ }
269
 
270
  /**
271
  * UM hook
292
 
293
  extract( $args );
294
 
295
+ if ( ! empty( $username ) && empty( $user_login ) ) {
296
  $user_login = $username;
297
  }
298
 
299
+ if ( ! empty( $first_name ) && ! empty( $last_name ) && empty( $user_login ) ) {
300
 
301
  if ( UM()->options()->get( 'permalink_base' ) == 'name' ) {
302
  $user_login = rawurlencode( strtolower( str_replace( " ", ".", $first_name . " " . $last_name ) ) );
320
  }
321
  }
322
 
323
+ if ( empty( $user_login ) && ! empty( $user_email ) ) {
324
  $user_login = $user_email;
325
  }
326
 
327
  $unique_userID = UM()->query()->count_users() + 1;
328
 
329
+ if ( empty( $user_login ) || strlen( $user_login ) > 30 && ! is_email( $user_login ) ) {
330
  $user_login = 'user' . $unique_userID;
331
  }
332
 
338
  $user_password = UM()->validation()->generate( 8 );
339
  }
340
 
341
+ if ( empty( $user_email ) ) {
342
  $site_url = @$_SERVER['SERVER_NAME'];
343
  $user_email = 'nobody' . $unique_userID . '@' . $site_url;
344
  /**
366
  }
367
 
368
  $credentials = array(
369
+ 'user_login' => $user_login,
370
+ 'user_password' => $user_password,
371
+ 'user_email' => trim( $user_email ),
372
  );
373
 
374
  $args['submitted'] = array_merge( $args['submitted'], $credentials );
423
  $user_role = apply_filters( 'um_registration_user_role', $user_role, $args );
424
 
425
  $userdata = array(
426
+ 'user_login' => $user_login,
427
+ 'user_pass' => $user_password,
428
+ 'user_email' => $user_email,
429
+ 'role' => $user_role,
430
  );
431
+
432
  $user_id = wp_insert_user( $userdata );
433
 
434
  /**
includes/core/um-actions-wpadmin.php CHANGED
@@ -7,8 +7,18 @@ if ( ! defined( 'ABSPATH' ) ) exit;
7
  * Checks if user can access the backend
8
  */
9
  function um_block_wpadmin_by_user_role() {
10
- if ( is_admin() && ! defined( 'DOING_AJAX' ) && um_user( 'ID' ) && ! um_user( 'can_access_wpadmin' ) && ! is_super_admin( um_user( 'ID' ) ) ) {
11
- um_redirect_home();
 
 
 
 
 
 
 
 
 
 
12
  }
13
  }
14
  add_action( 'init', 'um_block_wpadmin_by_user_role', 99 );
7
  * Checks if user can access the backend
8
  */
9
  function um_block_wpadmin_by_user_role() {
10
+ if ( is_admin() && ! defined( 'DOING_AJAX' ) ) {
11
+ $action = empty( $_REQUEST['action'] ) ? '' : $_REQUEST['action'];
12
+
13
+ // filter that it's not admin_post or admin_post_nopriv request
14
+ $url_attr = parse_url( UM()->permalinks()->get_current_url() );
15
+ if ( is_user_logged_in() && ! empty( $action ) && $url_attr['path'] == '/wp-admin/admin-post.php' ) {
16
+ return;
17
+ }
18
+
19
+ if ( um_user( 'ID' ) && ! um_user( 'can_access_wpadmin' ) && ! is_super_admin( um_user( 'ID' ) ) ) {
20
+ um_redirect_home();
21
+ }
22
  }
23
  }
24
  add_action( 'init', 'um_block_wpadmin_by_user_role', 99 );
includes/core/um-filters-account.php CHANGED
@@ -1,48 +1,6 @@
1
  <?php if ( ! defined( 'ABSPATH' ) ) exit; // Exit if accessed directly
2
 
3
 
4
- /**
5
- * Account secure fields
6
- * @param array $fields
7
- * @param string $tab_key
8
- * @return array
9
- * @uses um_account_secure_fields
10
- */
11
- function um_account_secure_fields( $fields, $tab_key ) {
12
- /**
13
- * UM hook
14
- *
15
- * @type filter
16
- * @title um_account_secure_fields__enabled
17
- * @description Active account secure fields
18
- * @input_vars
19
- * [{"var":"$enabled","type":"string","desc":"Enable secure account fields"}]
20
- * @change_log
21
- * ["Since: 2.0"]
22
- * @usage
23
- * <?php add_filter( 'um_account_secure_fields__enabled', 'function_name', 10, 1 ); ?>
24
- * @example
25
- * <?php
26
- * add_filter( 'um_account_secure_fields__enabled', 'my_account_secure_fields', 10, 1 );
27
- * function my_account_secure_fields( $enabled ) {
28
- * // your code here
29
- * return $enabled;
30
- * }
31
- * ?>
32
- */
33
- $secure = apply_filters( 'um_account_secure_fields__enabled', true );
34
-
35
- if( ! $secure ) return $fields;
36
-
37
- if( isset( UM()->account()->register_fields ) && ! isset( UM()->account()->register_fields[ $tab_key ] ) ){
38
- UM()->account()->register_fields[ $tab_key ] = $fields;
39
- }
40
-
41
- return $fields;
42
- }
43
- add_filter( 'um_account_secure_fields', 'um_account_secure_fields', 10, 2 );
44
-
45
-
46
  /**
47
  * Disables first and last name fields in account page
48
  * @param array $fields
@@ -50,16 +8,18 @@ add_filter( 'um_account_secure_fields', 'um_account_secure_fields', 10, 2 );
50
  * @uses um_get_field__first_name, um_get_field__last_name
51
  */
52
  function um_account_disable_name_fields( $fields ){
53
- if( ! UM()->options()->get( "account_name_disable" ) ) return $fields;
 
 
54
 
55
- if ( um_is_core_page("account") ) {
56
  $fields['disabled'] = 'disabled="disabled"';
57
  }
58
 
59
  return $fields;
60
  }
61
- add_filter( "um_get_field__first_name","um_account_disable_name_fields", 10 ,1 );
62
- add_filter( "um_get_field__last_name","um_account_disable_name_fields", 10 ,1 );
63
 
64
 
65
  /**
1
  <?php if ( ! defined( 'ABSPATH' ) ) exit; // Exit if accessed directly
2
 
3
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
4
  /**
5
  * Disables first and last name fields in account page
6
  * @param array $fields
8
  * @uses um_get_field__first_name, um_get_field__last_name
9
  */
10
  function um_account_disable_name_fields( $fields ){
11
+ if ( ! UM()->options()->get( 'account_name_disable' ) ) {
12
+ return $fields;
13
+ }
14
 
15
+ if ( um_is_core_page( 'account' ) ) {
16
  $fields['disabled'] = 'disabled="disabled"';
17
  }
18
 
19
  return $fields;
20
  }
21
+ add_filter( 'um_get_field__first_name', 'um_account_disable_name_fields', 10 ,1 );
22
+ add_filter( 'um_get_field__last_name', 'um_account_disable_name_fields', 10 ,1 );
23
 
24
 
25
  /**
includes/core/um-filters-fields.php CHANGED
@@ -96,6 +96,9 @@ add_filter( 'um_profile_field_filter_hook__vimeo_video', 'um_profile_field_filte
96
  * @return string
97
  */
98
  function um_profile_field_filter_hook__googlemap( $value, $data ) {
 
 
 
99
  $value = '<div class="um-googlemap">
100
  <iframe width="600" height="450" frameborder="0" style="border:0" src="https://maps.google.it/maps?q=' . urlencode( $value ) . '&output=embed"></iframe>
101
  </div>';
@@ -114,6 +117,9 @@ add_filter( 'um_profile_field_filter_hook__googlemap', 'um_profile_field_filter_
114
  */
115
 
116
  function um_profile_field_filter_hook__user_registered( $value, $data ) {
 
 
 
117
  $value = strtotime($value);
118
  $value = sprintf(__('Joined %s','ultimate-member'), date_i18n('F d, Y', $value) );
119
  return $value;
@@ -130,6 +136,9 @@ add_filter( 'um_profile_field_filter_hook__user_registered', 'um_profile_field_f
130
  * @return string
131
  */
132
  function um_profile_field_filter_hook__last_login( $value, $data ) {
 
 
 
133
  //$value = sprintf( __('Last login: %s','ultimate-member'), um_user_last_login( um_user('ID') ) );
134
  $value = um_user_last_login( um_user( 'ID' ) );
135
  return $value;
@@ -147,6 +156,9 @@ add_filter( 'um_profile_field_filter_hook___um_last_login', 'um_profile_field_fi
147
  * @return mixed|string|void
148
  */
149
  function um_profile_field_filter_hook__textarea( $value, $data ) {
 
 
 
150
  if ( isset( $data['html'] ) && $data['html'] == 1 ) {
151
  return $value;
152
  }
@@ -187,10 +199,14 @@ add_filter( 'um_profile_field_filter_hook__textarea', 'um_profile_field_filter_h
187
  * @return mixed|string
188
  */
189
  function um_profile_field_filter_hook__time( $value, $data ) {
 
 
 
190
  $value = UM()->datetime()->format( $value, $data['format'] );
191
 
192
- $value = str_replace('am', 'a.m.', $value );
193
- $value = str_replace('pm', 'p.m.', $value );
 
194
  return $value;
195
  }
196
  add_filter( 'um_profile_field_filter_hook__time', 'um_profile_field_filter_hook__time', 99, 2 );
@@ -205,10 +221,14 @@ add_filter( 'um_profile_field_filter_hook__time', 'um_profile_field_filter_hook_
205
  * @return string
206
  */
207
  function um_profile_field_filter_hook__date( $value, $data ) {
 
 
 
208
  if ( isset( $data['pretty_format'] ) && $data['pretty_format'] == 1 ) {
209
  $value = UM()->datetime()->get_age( $value );
210
  } else {
211
- $value = date_i18n( $data['format'], strtotime( $value ) );
 
212
  }
213
 
214
  return $value;
@@ -224,6 +244,9 @@ add_filter( 'um_profile_field_filter_hook__date', 'um_profile_field_filter_hook_
224
  * @return string
225
  */
226
  function um_profile_field_filter_hook__file( $value, $data ) {
 
 
 
227
  $file_type = wp_check_filetype( $value );
228
  $uri = UM()->files()->get_download_link( UM()->fields()->set_id, $data['metakey'], um_user( 'ID' ) );
229
 
@@ -271,6 +294,9 @@ add_filter( 'um_profile_field_filter_hook__file', 'um_profile_field_filter_hook_
271
  * @return string
272
  */
273
  function um_profile_field_filter_hook__image( $value, $data ) {
 
 
 
274
  $uri = UM()->files()->get_download_link( UM()->fields()->set_id, $data['metakey'], um_user( 'ID' ) );
275
  $title = ( isset( $data['title'] ) ) ? $data['title'] : __( 'Untitled photo', 'ultimate-member' );
276
 
96
  * @return string
97
  */
98
  function um_profile_field_filter_hook__googlemap( $value, $data ) {
99
+ if ( ! $value ) {
100
+ return '';
101
+ }
102
  $value = '<div class="um-googlemap">
103
  <iframe width="600" height="450" frameborder="0" style="border:0" src="https://maps.google.it/maps?q=' . urlencode( $value ) . '&output=embed"></iframe>
104
  </div>';
117
  */
118
 
119
  function um_profile_field_filter_hook__user_registered( $value, $data ) {
120
+ if ( ! $value ) {
121
+ return '';
122
+ }
123
  $value = strtotime($value);
124
  $value = sprintf(__('Joined %s','ultimate-member'), date_i18n('F d, Y', $value) );
125
  return $value;
136
  * @return string
137
  */
138
  function um_profile_field_filter_hook__last_login( $value, $data ) {
139
+ if ( ! $value ) {
140
+ return '';
141
+ }
142
  //$value = sprintf( __('Last login: %s','ultimate-member'), um_user_last_login( um_user('ID') ) );
143
  $value = um_user_last_login( um_user( 'ID' ) );
144
  return $value;
156
  * @return mixed|string|void
157
  */
158
  function um_profile_field_filter_hook__textarea( $value, $data ) {
159
+ if ( ! $value ) {
160
+ return '';
161
+ }
162
  if ( isset( $data['html'] ) && $data['html'] == 1 ) {
163
  return $value;
164
  }
199
  * @return mixed|string
200
  */
201
  function um_profile_field_filter_hook__time( $value, $data ) {
202
+ if ( ! $value ) {
203
+ return '';
204
+ }
205
  $value = UM()->datetime()->format( $value, $data['format'] );
206
 
207
+ $value = str_replace( 'am', 'a.m.', $value );
208
+ $value = str_replace( 'pm', 'p.m.', $value );
209
+
210
  return $value;
211
  }
212
  add_filter( 'um_profile_field_filter_hook__time', 'um_profile_field_filter_hook__time', 99, 2 );
221
  * @return string
222
  */
223
  function um_profile_field_filter_hook__date( $value, $data ) {
224
+ if ( ! $value ) {
225
+ return '';
226
+ }
227
  if ( isset( $data['pretty_format'] ) && $data['pretty_format'] == 1 ) {
228
  $value = UM()->datetime()->get_age( $value );
229
  } else {
230
+ $format = empty( $data['format_custom'] ) ? $data['format'] : $data['format_custom'];
231
+ $value = date_i18n( $format, strtotime( $value ) );
232
  }
233
 
234
  return $value;
244
  * @return string
245
  */
246
  function um_profile_field_filter_hook__file( $value, $data ) {
247
+ if ( ! $value ) {
248
+ return '';
249
+ }
250
  $file_type = wp_check_filetype( $value );
251
  $uri = UM()->files()->get_download_link( UM()->fields()->set_id, $data['metakey'], um_user( 'ID' ) );
252
 
294
  * @return string
295
  */
296
  function um_profile_field_filter_hook__image( $value, $data ) {
297
+ if ( ! $value ) {
298
+ return '';
299
+ }
300
  $uri = UM()->files()->get_download_link( UM()->fields()->set_id, $data['metakey'], um_user( 'ID' ) );
301
  $title = ( isset( $data['title'] ) ) ? $data['title'] : __( 'Untitled photo', 'ultimate-member' );
302
 
includes/core/um-filters-members.php CHANGED
@@ -1,35 +1,6 @@
1
  <?php if ( ! defined( 'ABSPATH' ) ) exit; // Exit if accessed directly
2
 
3
 
4
- /**
5
- * WP API user search
6
- *
7
- * @param $query_args
8
- * @param $args
9
- *
10
- * @return mixed
11
- */
12
- function um_search_usernames_emails( $query_args, $args ) {
13
- extract( $args );
14
-
15
- $query = UM()->permalinks()->get_query_array();
16
- $arr_columns = array();
17
-
18
- foreach ( UM()->members()->core_search_fields as $key ) {
19
- if ( ! empty( $query[ $key ] ) ) {
20
- $arr_columns[] = $key;
21
- $query_args['search'] = '*' . $query[ $key ] .'*';
22
- }
23
- }
24
-
25
- if ( ! empty( $arr_columns ) )
26
- $query_args['search_columns'] = $arr_columns;
27
-
28
- return $query_args;
29
- }
30
- add_filter( 'um_prepare_user_query_args', 'um_search_usernames_emails', 51, 2 );
31
-
32
-
33
  /**
34
  * Remove users we do not need to show in directory
35
  *
@@ -99,469 +70,4 @@ function um_remove_special_users_from_list( $query_args, $args ) {
99
 
100
  return $query_args;
101
  }
102
- add_filter( 'um_prepare_user_query_args', 'um_remove_special_users_from_list', 99, 2 );
103
-
104
-
105
- /**
106
- * Adds search parameters
107
- *
108
- * @hooked 'um_prepare_user_query_args'
109
- *
110
- * @param $query_args
111
- * @param $args
112
- *
113
- * @return mixed|void
114
- */
115
- function um_add_search_to_query( $query_args, $args ) {
116
- extract( $args );
117
-
118
- if ( ! empty( $args['search_filters'] ) ) {
119
- $_REQUEST['um_search'] = 1;
120
- }
121
-
122
- if ( isset( $_REQUEST['um_search'] ) ) {
123
-
124
- $query = UM()->permalinks()->get_query_array();
125
-
126
- if ( ! empty( $args['search_filters'] ) ) {
127
- parse_str( $args['search_filters'], $search_filters );
128
- if ( $search_filters && is_array( $search_filters ) ) {
129
- $query = array_merge( $search_filters, $query );
130
- }
131
- }
132
-
133
- // if searching
134
- if ( isset( $query['search'] ) ) {
135
- $query_args['search'] = '*' . um_filter_search( $query['search'] ) . '*';
136
- unset( $query['search'] );
137
- }
138
-
139
- if ( $query && is_array( $query ) ) {
140
- foreach ( $query as $field => $value ) {
141
-
142
- if ( in_array( $field, array( 'members_page' ) ) ) continue;
143
-
144
- $serialize_value = serialize( strval( $value ) );
145
-
146
- if ( $value && $field != 'um_search' && $field != 'page_id' ) {
147
-
148
- if ( strstr( $field, 'role_' ) )
149
- $field = 'role';
150
-
151
- if ( ! in_array( $field, UM()->members()->core_search_fields ) ) {
152
-
153
- if ( 'role' == $field ) {
154
- $query_args['role__in'] = trim( $value );
155
- } else {
156
- $filter_data = UM()->members()->prepare_filter( $field );
157
- if ( $filter_data['type'] == 'select' ) {
158
- $field_query = array(
159
- array(
160
- 'key' => $field,
161
- 'value' => trim( $value ),
162
- 'compare' => '=',
163
- ),
164
- 'relation' => 'OR',
165
- );
166
-
167
-
168
- $types = apply_filters( 'um_search_field_types', array(
169
- 'multiselect',
170
- 'radio',
171
- 'checkbox'
172
- ) );
173
-
174
- if ( in_array( $filter_data['attrs']['type'], $types ) ) {
175
-
176
- $arr_meta_query = array(
177
- array(
178
- 'key' => $field,
179
- 'value' => serialize( strval( trim( $value ) ) ),
180
- 'compare' => 'LIKE',
181
- ),
182
- array(
183
- 'key' => $field,
184
- 'value' => '"' . trim( $value ) . '"',
185
- 'compare' => 'LIKE',
186
- )
187
- );
188
-
189
- if( is_numeric( $value ) ){
190
-
191
- $arr_meta_query[ ] = array(
192
- 'key' => $field,
193
- 'value' => serialize( intval( trim( $value ) ) ),
194
- 'compare' => 'LIKE',
195
- );
196
-
197
- }
198
-
199
- $field_query = array_merge( $field_query, $arr_meta_query );
200
- }
201
-
202
- } else {
203
- $field_query = array(
204
- array(
205
- 'key' => $field,
206
- 'value' => trim( $value ),
207
- 'compare' => '=',
208
- ),
209
- array(
210
- 'key' => $field,
211
- 'value' => trim( $value ),
212
- 'compare' => 'LIKE',
213
- ),
214
- array(
215
- 'key' => $field,
216
- 'value' => trim( $serialize_value ),
217
- 'compare' => 'LIKE',
218
- ),
219
- 'relation' => 'OR',
220
- );
221
- }
222
-
223
- /**
224
- * UM hook
225
- *
226
- * @type filter
227
- * @title um_query_args_{$field}__filter
228
- * @description Change field's query for search at Members Directory
229
- * @input_vars
230
- * [{"var":"$field_query","type":"array","desc":"Field query"}]
231
- * @change_log
232
- * ["Since: 2.0"]
233
- * @usage
234
- * <?php add_filter( 'um_query_args_{$field}__filter', 'function_name', 10, 1 ); ?>
235
- * @example
236
- * <?php
237
- * add_filter( 'um_query_args_{$field}__filter', 'my_query_args_filter', 10, 1 );
238
- * function my_query_args_filter( $field_query ) {
239
- * // your code here
240
- * return $field_query;
241
- * }
242
- * ?>
243
- */
244
- $field_query = apply_filters( "um_query_args_{$field}__filter", $field_query );
245
- $query_args['meta_query'][] = $field_query;
246
- }
247
-
248
- }
249
-
250
- }
251
-
252
- }
253
- }
254
-
255
- }
256
-
257
- /**
258
- * UM hook
259
- *
260
- * @type filter
261
- * @title um_query_args_filter
262
- * @description Change query for search at Members Directory
263
- * @input_vars
264
- * [{"var":"$query_args","type":"array","desc":"Query Arguments"}]
265
- * @change_log
266
- * ["Since: 2.0"]
267
- * @usage
268
- * <?php add_filter( 'um_query_args_filter', 'function_name', 10, 1 ); ?>
269
- * @example
270
- * <?php
271
- * add_filter( 'um_query_args_filter', 'my_query_args_filter', 10, 1 );
272
- * function my_query_args_filter( $query_args ) {
273
- * // your code here
274
- * return $query_args;
275
- * }
276
- * ?>
277
- */
278
- $query_args = apply_filters( 'um_query_args_filter', $query_args );
279
-
280
- if ( isset( $query_args['meta_query'] ) && count( $query_args['meta_query'] ) == 1 )
281
- unset( $query_args['meta_query'] );
282
-
283
- return $query_args;
284
-
285
- }
286
- add_filter( 'um_prepare_user_query_args', 'um_add_search_to_query', 50, 2 );
287
-
288
-
289
- /**
290
- * Adds main parameters
291
- *
292
- * @param $query_args
293
- * @param $args
294
- *
295
- * @return mixed
296
- */
297
- function um_prepare_user_query_args( $query_args, $args ) {
298
- extract( $args );
299
-
300
- $query_args['fields'] = 'ID';
301
-
302
- $query_args['number'] = 0;
303
-
304
- $query_args['meta_query']['relation'] = 'AND';
305
-
306
- // must have a profile photo
307
- if ( $has_profile_photo == 1 ) {
308
- if ( UM()->options()->get( 'use_gravatars' ) ) {
309
- $query_args['meta_query'][] = array(
310
- 'relation' => 'OR',
311
- array(
312
- 'key' => 'synced_profile_photo', // addons
313
- 'value' => '',
314
- 'compare' => '!='
315
- ),
316
- array(
317
- 'key' => 'profile_photo', // from upload form
318
- 'value' => '',
319
- 'compare' => '!='
320
- ),
321
- array(
322
- 'key' => 'synced_gravatar_hashed_id', // gravatar
323
- 'value' => '',
324
- 'compare' => '!='
325
- )
326
-
327
- );
328
- } else {
329
- $query_args['meta_query'][] = array(
330
- 'relation' => 'OR',
331
- array(
332
- 'key' => 'synced_profile_photo', // addons
333
- 'value' => '',
334
- 'compare' => '!='
335
- ),
336
- array(
337
- 'key' => 'profile_photo', // from upload form
338
- 'value' => '',
339
- 'compare' => '!='
340
- )
341
- );
342
- }
343
- }
344
-
345
- // must have a cover photo
346
- if ( $has_cover_photo == 1 ) {
347
- $query_args['meta_query'][] = array(
348
- 'key' => 'cover_photo',
349
- 'value' => '',
350
- 'compare' => '!='
351
- );
352
- }
353
-
354
-
355
- // show specific usernames
356
- if ( isset( $show_these_users ) && $show_these_users && is_array( $show_these_users ) ) {
357
- foreach ( $show_these_users as $username ) {
358
- $users_array[] = username_exists( $username );
359
- }
360
- $query_args['include'] = $users_array;
361
- }
362
-
363
- // add roles to appear in directory
364
- if ( ! empty( $roles ) ) {
365
- //since WP4.4 use 'role__in' argument
366
- $query_args['role__in'] = $roles;
367
- }
368
-
369
- // sort members by
370
- $query_args['order'] = 'ASC';
371
-
372
- if ( isset( $sortby ) ) {
373
-
374
- if ( $sortby == 'other' && $sortby_custom ) {
375
-
376
- $query_args['meta_key'] = $sortby_custom;
377
- $query_args['orderby'] = 'meta_value, display_name';
378
-
379
- } elseif ( 'display_name' == $sortby ) {
380
-
381
- $display_name = UM()->options()->get( 'display_name' );
382
- if ( $display_name == 'username' ) {
383
- $query_args['orderby'] = 'user_login';
384
- $order = 'ASC';
385
- } else {
386
- $query_args['meta_query'][] = array(
387
- 'relation' => 'OR',
388
- 'full_name' => array(
389
- 'key' => 'full_name',
390
- 'compare' => 'EXISTS'
391
- ),
392
- array(
393
- 'key' => 'full_name',
394
- 'compare' => 'NOT EXISTS'
395
- )
396
- );
397
-
398
- $query_args['orderby'] = 'full_name, display_name';
399
- $order = 'ASC';
400
- }
401
-
402
- } elseif ( in_array( $sortby, array( 'last_name', 'first_name' ) ) ) {
403
-
404
- $query_args['meta_key'] = $sortby;
405
- $query_args['orderby'] = 'meta_value';
406
-
407
- } else {
408
-
409
- if ( strstr( $sortby, '_desc' ) ) {
410
- $sortby = str_replace( '_desc', '', $sortby );
411
- $order = 'DESC';
412
- }
413
-
414
- if ( strstr( $sortby, '_asc' ) ) {
415
- $sortby = str_replace('_asc','',$sortby);
416
- $order = 'ASC';
417
- }
418
-
419
- $query_args['orderby'] = $sortby;
420
-
421
- }
422
-
423
- if ( isset( $order ) ) {
424
- $query_args['order'] = $order;
425
- }
426
-
427
- /**
428
- * UM hook
429
- *
430
- * @type filter
431
- * @title um_modify_sortby_parameter
432
- * @description Change query sort by attributes for search at Members Directory
433
- * @input_vars
434
- * [{"var":"$query_args","type":"array","desc":"Query Arguments"},
435
- * {"var":"$sortby","type":"string","desc":"Sort by"}]
436
- * @change_log
437
- * ["Since: 2.0"]
438
- * @usage
439
- * <?php add_filter( 'um_modify_sortby_parameter', 'function_name', 10, 2 ); ?>
440
- * @example
441
- * <?php
442
- * add_filter( 'um_modify_sortby_parameter', 'my_modify_sortby_parameter', 10, 2 );
443
- * function my_modify_sortby_parameter( $query_args, $sortby ) {
444
- * // your code here
445
- * return $query_args;
446
- * }
447
- * ?>
448
- */
449
- $query_args = apply_filters( 'um_modify_sortby_parameter', $query_args, $sortby );
450
-
451
- }
452
-
453
- return $query_args;
454
- }
455
- add_filter( 'um_prepare_user_query_args', 'um_prepare_user_query_args', 10, 2 );
456
-
457
-
458
- /**
459
- * Sorting by last login date
460
- *
461
- * @param $query_args
462
- * @param $sortby
463
- *
464
- * @return mixed
465
- */
466
- function um_sortby_last_login( $query_args, $sortby ) {
467
- if ( $sortby == 'last_login' ) {
468
- $query_args['orderby'] = array( 'um_last_login' => 'DESC' );
469
- $query_args['meta_query'][] = array(
470
- 'relation' => 'OR',
471
- array(
472
- 'key' => '_um_last_login',
473
- 'compare' => 'EXISTS',
474
- ),
475
- 'um_last_login' => array(
476
- 'key' => '_um_last_login',
477
- 'compare' => 'NOT EXISTS',
478
- ),
479
- );
480
- }
481
- return $query_args;
482
- }
483
- add_filter( 'um_modify_sortby_parameter', 'um_sortby_last_login', 100, 2 );
484
-
485
-
486
- /**
487
- * Sorting random
488
- *
489
- * @param $query
490
- *
491
- * @return mixed
492
- */
493
- function um_modify_sortby_randomly( $query ) {
494
-
495
- if( 'random' == $query->query_vars["orderby"] ) {
496
-
497
- if( um_is_session_started() === false ){
498
- @session_start();
499
- }
500
-
501
- // Reset seed on load of initial
502
- if( ! isset( $_REQUEST['members_page'] ) || $_REQUEST['members_page'] == 0 || $_REQUEST['members_page'] == 1 ) {
503
- if( isset( $_SESSION['seed'] ) ) {
504
- unset( $_SESSION['seed'] );
505
- }
506
- }
507
-
508
- // Get seed from session variable if it exists
509
- $seed = false;
510
- if( isset( $_SESSION['seed'] ) ) {
511
- $seed = $_SESSION['seed'];
512
- }
513
-
514
- // Set new seed if none exists
515
- if ( ! $seed ) {
516
- $seed = rand();
517
- $_SESSION['seed'] = $seed;
518
- }
519
-
520
-
521
- $query->query_orderby = 'ORDER by RAND('. $seed.')';
522
- }
523
-
524
- return $query;
525
- }
526
- add_filter( 'pre_user_query','um_modify_sortby_randomly' );
527
-
528
-
529
- /**
530
- * Hook in the member results array
531
- *
532
- * @param $result
533
- *
534
- * @return mixed
535
- */
536
- function um_prepare_user_results_array( $result ) {
537
- if ( empty( $result['users_per_page'] ) ) {
538
- $result['no_users'] = 1;
539
- } else {
540
- $result['no_users'] = 0;
541
- }
542
-
543
- return $result;
544
- }
545
- add_filter( 'um_prepare_user_results_array', 'um_prepare_user_results_array', 50, 2 );
546
-
547
-
548
- /**
549
- * Retrieves search filter options from a callback
550
- *
551
- * @param $atts array
552
- * @return array
553
- */
554
- function um_search_select_fields( $atts ) {
555
-
556
- if( isset( $atts['custom_dropdown_options_source'] ) && ! empty( $atts['custom_dropdown_options_source'] ) ){
557
- $atts['custom'] = true;
558
- $atts['options'] = UM()->fields()->get_options_from_callback( $atts, $atts['type'] );
559
- }
560
-
561
- if( isset( $atts['label'] ) ){
562
- $atts['label'] = strip_tags( $atts['label'] );
563
- }
564
-
565
- return $atts;
566
- }
567
- add_filter( 'um_search_select_fields', 'um_search_select_fields' );
1
  <?php if ( ! defined( 'ABSPATH' ) ) exit; // Exit if accessed directly
2
 
3
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
4
  /**
5
  * Remove users we do not need to show in directory
6
  *
70
 
71
  return $query_args;
72
  }
73
+ //add_filter( 'um_prepare_user_query_args', 'um_remove_special_users_from_list', 99, 2 );
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
includes/core/um-filters-profile.php CHANGED
@@ -28,9 +28,9 @@ function um_dynamic_user_profile_pagetitle( $title, $sep = '' ) {
28
 
29
  return $title;
30
  }
31
- add_filter('the_seo_framework_pro_add_title', 'um_dynamic_user_profile_pagetitle', 100000, 2 );
32
- add_filter('wp_title', 'um_dynamic_user_profile_pagetitle', 100000, 2 );
33
- add_filter('pre_get_document_title', 'um_dynamic_user_profile_pagetitle', 100000, 2 );
34
 
35
 
36
  /**
@@ -46,7 +46,7 @@ function um_dynamic_user_profile_title( $title, $id = '' ) {
46
  return $title;
47
  }
48
 
49
- if ( um_is_core_page('user') ) {
50
  if ( $id == UM()->config()->permalinks['user'] && in_the_loop() ) {
51
  if ( um_get_requested_user() ) {
52
  $title = um_get_display_name( um_get_requested_user() );
@@ -68,38 +68,40 @@ add_filter( 'the_title', 'um_dynamic_user_profile_title', 100000, 2 );
68
  /**
69
  * Add cover photo label of file size limit
70
  *
71
- * @param $args
72
  *
73
- * @return mixed
74
  */
75
- function um_change_profile_cover_photo_label( $args ){
76
- $max_size = UM()->files()->format_bytes( $args['cover_photo']['max_size'] );
77
- list( $file_size, $unit ) = explode(' ', $max_size );
 
78
 
79
- if( $file_size >= 999999999 ){
80
-
81
- }else{
82
- $args['cover_photo']['upload_text'] .= '<small class=\'um-max-filesize\'>( '.__('max','ultimate-member').': <span>'.$file_size.$unit.'</span> )</small>';
83
  }
84
- return $args;
85
  }
 
 
86
  add_filter( 'um_predefined_fields_hook', 'um_change_profile_cover_photo_label', 10, 1 );
87
 
88
 
89
  /**
90
  * Add profile photo label of file size limit
91
  *
92
- * @param $args
93
  *
94
- * @return mixed
95
  */
96
- function um_change_profile_photo_label( $args ) {
97
- $max_size = UM()->files()->format_bytes( $args['profile_photo']['max_size'] );
98
- list( $file_size, $unit ) = explode(' ', $max_size );
 
99
 
100
- if ( $file_size < 999999999 ) {
101
- $args['profile_photo']['upload_text'] .= '<small class=\'um-max-filesize\'>( '.__('max','ultimate-member').': <span>'.$file_size.$unit.'</span> )</small>';
 
102
  }
103
- return $args;
104
  }
105
  add_filter( 'um_predefined_fields_hook', 'um_change_profile_photo_label', 10, 1 );
28
 
29
  return $title;
30
  }
31
+ add_filter( 'the_seo_framework_pro_add_title', 'um_dynamic_user_profile_pagetitle', 100000, 2 );
32
+ add_filter( 'wp_title', 'um_dynamic_user_profile_pagetitle', 100000, 2 );
33
+ add_filter( 'pre_get_document_title', 'um_dynamic_user_profile_pagetitle', 100000, 2 );
34
 
35
 
36
  /**
46
  return $title;
47
  }
48
 
49
+ if ( um_is_core_page( 'user' ) ) {
50
  if ( $id == UM()->config()->permalinks['user'] && in_the_loop() ) {
51
  if ( um_get_requested_user() ) {
52
  $title = um_get_display_name( um_get_requested_user() );
68
  /**
69
  * Add cover photo label of file size limit
70
  *
71
+ * @param array $fields Predefined fields
72
  *
73
+ * @return array
74
  */
75
+ function um_change_profile_cover_photo_label( $fields ) {
76
+ $max_size = UM()->files()->format_bytes( $fields['cover_photo']['max_size'] );
77
+ if ( ! empty( $max_size ) ) {
78
+ list( $file_size, $unit ) = explode( ' ', $max_size );
79
 
80
+ if ( $file_size < 999999999 ) {
81
+ $fields['cover_photo']['upload_text'] .= '<small class="um-max-filesize">( ' . __( 'max', 'ultimate-member' ) . ': <span>' . $file_size . $unit . '</span> )</small>';
 
 
82
  }
 
83
  }
84
+ return $fields;
85
+ }
86
  add_filter( 'um_predefined_fields_hook', 'um_change_profile_cover_photo_label', 10, 1 );
87
 
88
 
89
  /**
90
  * Add profile photo label of file size limit
91
  *
92
+ * @param array $fields Predefined fields
93
  *
94
+ * @return array
95
  */
96
+ function um_change_profile_photo_label( $fields ) {
97
+ $max_size = UM()->files()->format_bytes( $fields['profile_photo']['max_size'] );
98
+ if ( ! empty( $max_size ) ) {
99
+ list( $file_size, $unit ) = explode( ' ', $max_size );
100
 
101
+ if ( $file_size < 999999999 ) {
102
+ $fields['profile_photo']['upload_text'] .= '<small class="um-max-filesize">( ' . __( 'max', 'ultimate-member' ) . ': <span>' . $file_size . $unit . '</span> )</small>';
103
+ }
104
  }
105
+ return $fields;
106
  }
107
  add_filter( 'um_predefined_fields_hook', 'um_change_profile_photo_label', 10, 1 );
includes/core/um-filters-user.php CHANGED
@@ -4,16 +4,17 @@
4
  /**
5
  * Main admin user actions
6
  *
7
- * @param $actions
 
8
  *
9
  * @return null
10
  */
11
- function um_admin_user_actions_hook( $actions ) {
12
  $actions = null;
13
 
14
- um_fetch_user( um_profile_id() );
15
 
16
- //if ( UM()->roles()->um_current_user_can( 'edit', um_profile_id() ) ) {
17
  if ( current_user_can( 'manage_options' ) ) {
18
 
19
  if ( um_user( 'account_status' ) == 'awaiting_admin_review' ) {
@@ -43,7 +44,7 @@ function um_admin_user_actions_hook( $actions ) {
43
 
44
  }
45
 
46
- if ( UM()->roles()->um_current_user_can( 'delete', um_profile_id() ) ) {
47
  $actions['um_delete'] = array( 'label' => __( 'Delete this user', 'ultimate-member' ) );
48
  }
49
 
@@ -53,7 +54,7 @@ function um_admin_user_actions_hook( $actions ) {
53
 
54
  return $actions;
55
  }
56
- add_filter( 'um_admin_user_actions_hook', 'um_admin_user_actions_hook', 1 );
57
 
58
 
59
  /**
4
  /**
5
  * Main admin user actions
6
  *
7
+ * @param array $actions
8
+ * @param int $user_id
9
  *
10
  * @return null
11
  */
12
+ function um_admin_user_actions_hook( $actions, $user_id ) {
13
  $actions = null;
14
 
15
+ um_fetch_user( $user_id );
16
 
17
+ //if ( UM()->roles()->um_current_user_can( 'edit', $user_id ) ) {
18
  if ( current_user_can( 'manage_options' ) ) {
19
 
20
  if ( um_user( 'account_status' ) == 'awaiting_admin_review' ) {
44
 
45
  }
46
 
47
+ if ( UM()->roles()->um_current_user_can( 'delete', $user_id ) ) {
48
  $actions['um_delete'] = array( 'label' => __( 'Delete this user', 'ultimate-member' ) );
49
  }
50
 
54
 
55
  return $actions;
56
  }
57
+ add_filter( 'um_admin_user_actions_hook', 'um_admin_user_actions_hook', 10, 2 );
58
 
59
 
60
  /**
includes/um-deprecated-functions.php CHANGED
@@ -21,7 +21,7 @@ if ( ! defined( 'ABSPATH' ) ) {
21
  * @param string $replacement
22
  */
23
  function um_deprecated_function( $function, $version, $replacement = null ) {
24
- if ( is_ajax() ) {
25
  do_action( 'deprecated_function_run', $function, $replacement, $version );
26
  $log_string = "The {$function} function is deprecated since version {$version}.";
27
  $log_string .= $replacement ? " Replace with {$replacement}." : '';
@@ -417,4 +417,159 @@ function um_time_diff( $time1, $time2 ) {
417
  //um_deprecated_function( 'um_time_diff', '2.0.30', 'UM()->datetime()->time_diff' );
418
 
419
  return UM()->datetime()->time_diff( $time1, $time2 );
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
420
  }
21
  * @param string $replacement
22
  */
23
  function um_deprecated_function( $function, $version, $replacement = null ) {
24
+ if ( UM()->is_ajax() ) {
25
  do_action( 'deprecated_function_run', $function, $replacement, $version );
26
  $log_string = "The {$function} function is deprecated since version {$version}.";
27
  $log_string .= $replacement ? " Replace with {$replacement}." : '';
417
  //um_deprecated_function( 'um_time_diff', '2.0.30', 'UM()->datetime()->time_diff' );
418
 
419
  return UM()->datetime()->time_diff( $time1, $time2 );
420
+ }
421
+
422
+
423
+ /**
424
+ * Get members to show in directory
425
+ *
426
+ * @deprecated 2.1.0
427
+ *
428
+ *
429
+ * @param $argument
430
+ *
431
+ * @return mixed
432
+ */
433
+ function um_members( $argument ) {
434
+ //um_deprecated_function( 'um_members', '2.1.0', 'UM()->member_directory()' );
435
+
436
+ $result = null;
437
+ if ( isset( UM()->members()->results[ $argument ] ) ) {
438
+ $result = UM()->members()->results[ $argument ];
439
+ }
440
+ return $result;
441
+ }
442
+
443
+
444
+ /**
445
+ * Returns the ultimate member search form
446
+ *
447
+ * @deprecated 2.1.0
448
+ *
449
+ * @return string
450
+ */
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
+
458
+ /**
459
+ * Display the search form.
460
+ *
461
+ * @deprecated 2.1.0
462
+ */
463
+ function um_search_form() {
464
+ //um_deprecated_function( 'um_search_form', '2.1.0', 'echo do_shortcode( \'[ultimatemember_searchform]\' )' );
465
+
466
+ echo um_get_search_form();
467
+ }
468
+
469
+
470
+ /**
471
+ * Filters the search query.
472
+ *
473
+ * @deprecated 2.1.0
474
+ *
475
+ * @param string $search
476
+ *
477
+ * @return string
478
+ */
479
+ function um_filter_search( $search ) {
480
+ $search = trim( strip_tags( $search ) );
481
+ $search = preg_replace( '/[^a-z \.\@\_\-]+/i', '', $search );
482
+
483
+ return $search;
484
+ }
485
+
486
+
487
+ /**
488
+ * Returns the user search query
489
+ *
490
+ * @deprecated 2.1.0
491
+ *
492
+ * @return string
493
+ */
494
+ function um_get_search_query() {
495
+ $query = UM()->permalinks()->get_query_array();
496
+ $search = isset( $query['search'] ) ? $query['search'] : '';
497
+
498
+ return um_filter_search( $search );
499
+ }
500
+
501
+
502
+ /**
503
+ * Check value of queried search in text input
504
+ *
505
+ * @deprecated 2.1.0
506
+ *
507
+ * @param $filter
508
+ * @param bool $echo
509
+ *
510
+ * @return mixed|string
511
+ */
512
+ function um_queried_search_value( $filter, $echo = true ) {
513
+ $value = '';
514
+ if (isset( $_REQUEST['um_search'] )) {
515
+ $query = UM()->permalinks()->get_query_array();
516
+ if (isset( $query[$filter] ) && $query[$filter] != '') {
517
+ $value = stripslashes_deep( $query[$filter] );
518
+ }
519
+ }
520
+
521
+ if ($echo) {
522
+ echo $value;
523
+
524
+ return '';
525
+ } else {
526
+ return $value;
527
+ }
528
+
529
+ }
530
+
531
+
532
+ /**
533
+ * Check whether item in dropdown is selected in query-url
534
+ *
535
+ * @deprecated 2.1.0
536
+ *
537
+ * @param $filter
538
+ * @param $val
539
+ */
540
+ function um_select_if_in_query_params( $filter, $val ) {
541
+ $selected = false;
542
+
543
+ if (isset( $_REQUEST['um_search'] )) {
544
+ $query = UM()->permalinks()->get_query_array();
545
+
546
+ if (isset( $query[$filter] ) && $val == $query[$filter])
547
+ $selected = true;
548
+
549
+ /**
550
+ * UM hook
551
+ *
552
+ * @type filter
553
+ * @title um_selected_if_in_query_params
554
+ * @description Make selected or unselected from query attribute
555
+ * @input_vars
556
+ * [{"var":"$selected","type":"bool","desc":"Selected or not"},
557
+ * {"var":"$filter","type":"string","desc":"Check by this filter in query"},
558
+ * {"var":"$val","type":"string","desc":"Field Value"}]
559
+ * @change_log
560
+ * ["Since: 2.0"]
561
+ * @usage add_filter( 'um_selected_if_in_query_params', 'function_name', 10, 3 );
562
+ * @example
563
+ * <?php
564
+ * add_filter( 'um_selected_if_in_query_params', 'my_selected_if_in_query_params', 10, 3 );
565
+ * function my_selected_if_in_query_params( $selected, $filter, $val ) {
566
+ * // your code here
567
+ * return $selected;
568
+ * }
569
+ * ?>
570
+ */
571
+ $selected = apply_filters( 'um_selected_if_in_query_params', $selected, $filter, $val );
572
+ }
573
+
574
+ echo $selected ? 'selected="selected"' : '';
575
  }
includes/um-short-functions.php CHANGED
@@ -1141,78 +1141,6 @@ function um_is_core_post( $post, $core_page ) {
1141
  }
1142
 
1143
 
1144
- /**
1145
- * Check value of queried search in text input
1146
- *
1147
- * @param $filter
1148
- * @param bool $echo
1149
- *
1150
- * @return mixed|string
1151
- */
1152
- function um_queried_search_value( $filter, $echo = true ) {
1153
- $value = '';
1154
- if (isset( $_REQUEST['um_search'] )) {
1155
- $query = UM()->permalinks()->get_query_array();
1156
- if (isset( $query[$filter] ) && $query[$filter] != '') {
1157
- $value = stripslashes_deep( $query[$filter] );
1158
- }
1159
- }
1160
-
1161
- if ($echo) {
1162
- echo $value;
1163
-
1164
- return '';
1165
- } else {
1166
- return $value;
1167
- }
1168
-
1169
- }
1170
-
1171
-
1172
- /**
1173
- * Check whether item in dropdown is selected in query-url
1174
- *
1175
- * @param $filter
1176
- * @param $val
1177
- */
1178
- function um_select_if_in_query_params( $filter, $val ) {
1179
- $selected = false;
1180
-
1181
- if (isset( $_REQUEST['um_search'] )) {
1182
- $query = UM()->permalinks()->get_query_array();
1183
-
1184
- if (isset( $query[$filter] ) && $val == $query[$filter])
1185
- $selected = true;
1186
-
1187
- /**
1188
- * UM hook
1189
- *
1190
- * @type filter
1191
- * @title um_selected_if_in_query_params
1192
- * @description Make selected or unselected from query attribute
1193
- * @input_vars
1194
- * [{"var":"$selected","type":"bool","desc":"Selected or not"},
1195
- * {"var":"$filter","type":"string","desc":"Check by this filter in query"},
1196
- * {"var":"$val","type":"string","desc":"Field Value"}]
1197
- * @change_log
1198
- * ["Since: 2.0"]
1199
- * @usage add_filter( 'um_selected_if_in_query_params', 'function_name', 10, 3 );
1200
- * @example
1201
- * <?php
1202
- * add_filter( 'um_selected_if_in_query_params', 'my_selected_if_in_query_params', 10, 3 );
1203
- * function my_selected_if_in_query_params( $selected, $filter, $val ) {
1204
- * // your code here
1205
- * return $selected;
1206
- * }
1207
- * ?>
1208
- */
1209
- $selected = apply_filters( 'um_selected_if_in_query_params', $selected, $filter, $val );
1210
- }
1211
-
1212
- echo $selected ? 'selected="selected"' : '';
1213
- }
1214
-
1215
-
1216
  /**
1217
  * Get styling defaults
1218
  *
@@ -1252,7 +1180,7 @@ function um_styling_defaults( $mode ) {
1252
  function um_get_metadefault( $id ) {
1253
  $core_form_meta_all = UM()->config()->core_form_meta_all;
1254
 
1255
- return isset( $core_form_meta_all['_um_' . $id] ) ? $core_form_meta_all['_um_' . $id] : '';
1256
  }
1257
 
1258
 
@@ -1285,22 +1213,6 @@ function um_get_display_name( $user_id ) {
1285
  }
1286
 
1287
 
1288
- /**
1289
- * Get members to show in directory
1290
- *
1291
- * @param $argument
1292
- *
1293
- * @return mixed
1294
- */
1295
- function um_members( $argument ) {
1296
- $result = null;
1297
- if ( isset( UM()->members()->results[ $argument ] ) ) {
1298
- $result = UM()->members()->results[ $argument ];
1299
- }
1300
- return $result;
1301
- }
1302
-
1303
-
1304
  /**
1305
  * Clears the user data. You need to fetch a user manually after using this function.
1306
  *
@@ -2014,10 +1926,10 @@ function um_get_user_avatar_data( $user_id = '', $size = '96' ) {
2014
  }
2015
 
2016
  $data = array(
2017
- 'user_id' => $user_id,
2018
- 'default' => um_get_default_avatar_uri(),
2019
- 'class' => 'gravatar avatar avatar-' . $size . ' um-avatar',
2020
- 'size' => $size
2021
  );
2022
 
2023
  if ( $profile_photo = um_profile( 'profile_photo' ) ) {
@@ -2472,15 +2384,18 @@ function um_user( $data, $attrs = null ) {
2472
 
2473
  $alt = um_profile( 'nickname' );
2474
 
2475
- return $cover_uri ? '<img src="' . esc_attr( $cover_uri ) . '" alt="' . esc_attr( $alt ) . '" />' : '';
2476
- break;
2477
 
 
 
2478
 
2479
- case 'user_url':
2480
 
2481
- $value = um_profile( $data );
2482
 
2483
- return $value;
 
 
2484
 
2485
  break;
2486
 
@@ -2560,53 +2475,6 @@ function um_force_utf8_string( $value ) {
2560
  }
2561
 
2562
 
2563
- /**
2564
- * Filters the search query.
2565
- *
2566
- * @param string $search
2567
- *
2568
- * @return string
2569
- */
2570
- function um_filter_search( $search ) {
2571
- $search = trim( strip_tags( $search ) );
2572
- $search = preg_replace( '/[^a-z \.\@\_\-]+/i', '', $search );
2573
-
2574
- return $search;
2575
- }
2576
-
2577
-
2578
- /**
2579
- * Returns the user search query
2580
- *
2581
- * @return string
2582
- */
2583
- function um_get_search_query() {
2584
- $query = UM()->permalinks()->get_query_array();
2585
- $search = isset( $query['search'] ) ? $query['search'] : '';
2586
-
2587
- return um_filter_search( $search );
2588
- }
2589
-
2590
-
2591
- /**
2592
- * Returns the ultimate member search form
2593
- *
2594
- * @return string
2595
- */
2596
- function um_get_search_form() {
2597
- return do_shortcode( '[ultimatemember_searchform]' );
2598
- }
2599
-
2600
-
2601
- /**
2602
- * Display the search form.
2603
- *
2604
- */
2605
- function um_search_form() {
2606
- echo um_get_search_form();
2607
- }
2608
-
2609
-
2610
  /**
2611
  * Get user host
2612
  *
1141
  }
1142
 
1143
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1144
  /**
1145
  * Get styling defaults
1146
  *
1180
  function um_get_metadefault( $id ) {
1181
  $core_form_meta_all = UM()->config()->core_form_meta_all;
1182
 
1183
+ return isset( $core_form_meta_all[ '_um_' . $id ] ) ? $core_form_meta_all[ '_um_' . $id ] : '';
1184
  }
1185
 
1186
 
1213
  }
1214
 
1215
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1216
  /**
1217
  * Clears the user data. You need to fetch a user manually after using this function.
1218
  *
1926
  }
1927
 
1928
  $data = array(
1929
+ 'user_id' => $user_id,
1930
+ 'default' => um_get_default_avatar_uri(),
1931
+ 'class' => 'gravatar avatar avatar-' . $size . ' um-avatar',
1932
+ 'size' => $size
1933
  );
1934
 
1935
  if ( $profile_photo = um_profile( 'profile_photo' ) ) {
2384
 
2385
  $alt = um_profile( 'nickname' );
2386
 
2387
+ $cover_html = $cover_uri ? '<img src="' . esc_attr( $cover_uri ) . '" alt="' . esc_attr( $alt ) . '" />' : '';
 
2388
 
2389
+ $cover_html = apply_filters( 'um_user_cover_photo_html__filter', $cover_html, $cover_uri, $alt, $is_default, $attrs );
2390
+ return $cover_html;
2391
 
2392
+ break;
2393
 
2394
+ case 'user_url':
2395
 
2396
+ $value = um_profile( $data );
2397
+
2398
+ return $value;
2399
 
2400
  break;
2401
 
2475
  }
2476
 
2477
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
2478
  /**
2479
  * Get user host
2480
  *
includes/widgets/class-um-search-widget.php CHANGED
@@ -50,7 +50,7 @@ class UM_Search_Widget extends \WP_Widget {
50
  }
51
 
52
  // display the search form
53
- um_search_form();
54
 
55
  echo $args['after_widget'];
56
  }
50
  }
51
 
52
  // display the search form
53
+ echo do_shortcode( '[ultimatemember_searchform /]' );
54
 
55
  echo $args['after_widget'];
56
  }
languages/ultimate-member-en_US.mo CHANGED
Binary file
languages/ultimate-member-en_US.po CHANGED
@@ -1,7693 +1,7868 @@
1
- msgid ""
2
- msgstr ""
3
- "Project-Id-Version: Ultimate Member\n"
4
- "POT-Creation-Date: 2019-08-21 16:04+0300\n"
5
- "PO-Revision-Date: 2019-08-21 16:04+0300\n"
6
- "Last-Translator: \n"
7
- "Language-Team: \n"
8
- "Language: en_US\n"
9
- "MIME-Version: 1.0\n"
10
- "Content-Type: text/plain; charset=UTF-8\n"
11
- "Content-Transfer-Encoding: 8bit\n"
12
- "X-Generator: Poedit 2.0.6\n"
13
- "X-Poedit-Basepath: ..\n"
14
- "Plural-Forms: nplurals=2; plural=(n != 1);\n"
15
- "X-Poedit-Flags-xgettext: --add-comments=translators:\n"
16
- "X-Poedit-WPHeader: ultimate-member.php\n"
17
- "X-Poedit-SourceCharset: UTF-8\n"
18
- "X-Poedit-KeywordsList: __;_e;_n:1,2;_x:1,2c;_ex:1,2c;_nx:4c,1,2;esc_attr__;"
19
- "esc_attr_e;esc_attr_x:1,2c;esc_html__;esc_html_e;esc_html_x:1,2c;_n_noop:1,2;"
20
- "_nx_noop:3c,1,2;__ngettext_noop:1,2\n"
21
- "X-Poedit-SearchPath-0: .\n"
22
- "X-Poedit-SearchPathExcluded-0: *.js\n"
23
-
24
- #: includes/admin/class-admin-functions.php:35 includes/class-functions.php:45
25
- msgid "Wrong Nonce"
26
- msgstr ""
27
-
28
- #: includes/admin/class-admin.php:193
29
- #, php-format
30
- msgid "Duplicate of %s"
31
- msgstr ""
32
-
33
- #: includes/admin/class-admin.php:307
34
- msgid "Docs"
35
- msgstr ""
36
-
37
- #: includes/admin/class-admin.php:308
38
- #: includes/admin/core/class-admin-settings.php:1227
39
- msgid "Settings"
40
- msgstr ""
41
-
42
- #: includes/admin/class-admin.php:379 includes/admin/class-admin.php:382
43
- msgid "Form updated."
44
- msgstr ""
45
-
46
- #: includes/admin/class-admin.php:380
47
- msgid "Custom field updated."
48
- msgstr ""
49
-
50
- #: includes/admin/class-admin.php:381
51
- msgid "Custom field deleted."
52
- msgstr ""
53
-
54
- #: includes/admin/class-admin.php:383
55
- msgid "Form restored to revision."
56
- msgstr ""
57
-
58
- #: includes/admin/class-admin.php:384
59
- msgid "Form created."
60
- msgstr ""
61
-
62
- #: includes/admin/class-admin.php:385
63
- msgid "Form saved."
64
- msgstr ""
65
-
66
- #: includes/admin/class-admin.php:386
67
- msgid "Form submitted."
68
- msgstr ""
69
-
70
- #: includes/admin/class-admin.php:387
71
- msgid "Form scheduled."
72
- msgstr ""
73
-
74
- #: includes/admin/class-admin.php:388
75
- msgid "Form draft updated."
76
- msgstr ""
77
-
78
- #: includes/admin/core/class-admin-builder.php:207
79
- msgid "Manage conditional fields support"
80
- msgstr ""
81
-
82
- #: includes/admin/core/class-admin-builder.php:207
83
- #: includes/admin/core/class-admin-builder.php:209
84
- msgid ""
85
- "Here you can setup conditional logic to show/hide this field based on "
86
- "specific fields value or conditions"
87
- msgstr ""
88
-
89
- #: includes/admin/core/class-admin-builder.php:209
90
- msgid "Add conditional fields support"
91
- msgstr ""
92
-
93
- #: includes/admin/core/class-admin-builder.php:224
94
- msgid "Add new rule"
95
- msgstr ""
96
-
97
- #: includes/admin/core/class-admin-builder.php:225
98
- msgid "Reset all rules"
99
- msgstr ""
100
-
101
- #: includes/admin/core/class-admin-builder.php:278
102
- #: includes/admin/core/class-admin-builder.php:600
103
- #: includes/admin/core/class-admin-builder.php:759
104
- #: includes/admin/core/class-admin-dragdrop.php:33
105
- #: includes/admin/core/class-admin-menu.php:106
106
- #: includes/core/class-fields.php:4283
107
- msgid "Please login as administrator"
108
- msgstr ""
109
-
110
- #: includes/admin/core/class-admin-builder.php:387
111
- #: includes/admin/core/class-admin-builder.php:457
112
- #: includes/admin/core/class-admin-dragdrop.php:165
113
- msgid "Add Row"
114
- msgstr ""
115
-
116
- #: includes/admin/core/class-admin-builder.php:388
117
- #: includes/admin/core/class-admin-builder.php:458
118
- #: includes/admin/core/class-admin-dragdrop.php:166
119
- msgid "Edit Row"
120
- msgstr ""
121
-
122
- #: includes/admin/core/class-admin-builder.php:461
123
- #: includes/admin/core/class-admin-dragdrop.php:168
124
- #: includes/admin/core/class-admin-dragdrop.php:183
125
- #: includes/admin/core/class-admin-dragdrop.php:208
126
- msgid "Delete Row"
127
- msgstr ""
128
-
129
- #: includes/admin/core/class-admin-builder.php:825
130
- msgid "Search Icons..."
131
- msgstr ""
132
-
133
- #: includes/admin/core/class-admin-builder.php:845
134
- msgid "Setup New Field"
135
- msgstr ""
136
-
137
- #: includes/admin/core/class-admin-builder.php:862
138
- msgid "Predefined Fields"
139
- msgstr ""
140
-
141
- #: includes/admin/core/class-admin-builder.php:875
142
- #: includes/core/class-builtin.php:1328
143
- msgid "None"
144
- msgstr ""
145
-
146
- #: includes/admin/core/class-admin-builder.php:880
147
- msgid "Custom Fields"
148
- msgstr ""
149
-
150
- #: includes/admin/core/class-admin-builder.php:891
151
- msgid "You did not create any custom fields"
152
- msgstr ""
153
-
154
- #: includes/admin/core/class-admin-builder.php:923
155
- #: includes/admin/core/class-admin-builder.php:995
156
- msgid "This field type is not setup correcty."
157
- msgstr ""
158
-
159
- #: includes/admin/core/class-admin-builder.php:1140
160
- #: includes/core/class-form.php:155 includes/core/class-form.php:328
161
- #: includes/core/class-password.php:533
162
- msgid "This is not possible for security reasons."
163
- msgstr ""
164
-
165
- #: includes/admin/core/class-admin-columns.php:50
166
- msgid "Status"
167
- msgstr ""
168
-
169
- #: includes/admin/core/class-admin-columns.php:102
170
- msgid "Duplicate"
171
- msgstr ""
172
-
173
- #: includes/admin/core/class-admin-columns.php:131
174
- #: includes/admin/core/class-admin-columns.php:151
175
- #: includes/admin/core/class-admin-metabox.php:2079
176
- #: includes/admin/templates/role/role-edit.php:190
177
- #: includes/widgets/class-um-search-widget.php:81
178
- msgid "Title"
179
- msgstr ""
180
-
181
- #: includes/admin/core/class-admin-columns.php:132
182
- #: includes/admin/core/class-admin-columns.php:152
183
- msgid "ID"
184
- msgstr ""
185
-
186
- #: includes/admin/core/class-admin-columns.php:133
187
- msgid "Type"
188
- msgstr ""
189
-
190
- #: includes/admin/core/class-admin-columns.php:134
191
- #: includes/admin/core/class-admin-columns.php:153
192
- #: includes/admin/core/class-admin-settings.php:451
193
- #: includes/admin/templates/form/login_settings.php:16
194
- #: includes/admin/templates/form/register_customize.php:6
195
- #: includes/admin/templates/form/register_customize.php:32
196
- msgid "Default"
197
- msgstr ""
198
-
199
- #: includes/admin/core/class-admin-columns.php:135
200
- #: includes/admin/core/class-admin-columns.php:154
201
- #: includes/admin/core/class-admin-metabox.php:782
202
- #: includes/admin/core/class-admin-metabox.php:943
203
- msgid "Shortcode"
204
- msgstr ""
205
-
206
- #: includes/admin/core/class-admin-columns.php:136
207
- #: includes/admin/core/class-admin-columns.php:155
208
- msgid "Date"
209
- msgstr ""
210
-
211
- #: includes/admin/core/class-admin-columns.php:186
212
- #: includes/admin/core/class-admin-columns.php:219
213
- #: includes/admin/core/list-tables/roles-list-table.php:371
214
- #: includes/admin/core/list-tables/roles-list-table.php:379
215
- #: includes/admin/templates/form/login_customize.php:16
216
- #: includes/admin/templates/form/login_customize.php:64
217
- #: includes/admin/templates/form/login_customize.php:83
218
- #: includes/admin/templates/form/login_customize.php:94
219
- #: includes/admin/templates/form/profile_customize.php:25
220
- #: includes/admin/templates/form/profile_customize.php:91
221
- #: includes/admin/templates/form/profile_customize.php:110
222
- #: includes/admin/templates/form/profile_customize.php:136
223
- #: includes/admin/templates/form/profile_customize.php:156
224
- #: includes/admin/templates/form/profile_customize.php:167
225
- #: includes/admin/templates/form/profile_customize.php:178
226
- #: includes/admin/templates/form/profile_customize.php:189
227
- #: includes/admin/templates/form/register_customize.php:23
228
- #: includes/admin/templates/form/register_customize.php:79
229
- #: includes/admin/templates/form/register_gdpr.php:26
230
- #: includes/core/class-builtin.php:1135 includes/core/class-builtin.php:1149
231
- #: includes/core/class-builtin.php:1150
232
- #: includes/core/um-actions-account.php:270
233
- msgid "No"
234
- msgstr ""
235
-
236
- #: includes/admin/core/class-admin-columns.php:186
237
- #: includes/admin/core/class-admin-columns.php:219
238
- #: includes/admin/core/list-tables/roles-list-table.php:371
239
- #: includes/admin/core/list-tables/roles-list-table.php:379
240
- #: includes/admin/templates/form/login_customize.php:17
241
- #: includes/admin/templates/form/login_customize.php:65
242
- #: includes/admin/templates/form/login_customize.php:84
243
- #: includes/admin/templates/form/login_customize.php:95
244
- #: includes/admin/templates/form/profile_customize.php:26
245
- #: includes/admin/templates/form/profile_customize.php:92
246
- #: includes/admin/templates/form/profile_customize.php:111
247
- #: includes/admin/templates/form/profile_customize.php:137
248
- #: includes/admin/templates/form/profile_customize.php:157
249
- #: includes/admin/templates/form/profile_customize.php:168
250
- #: includes/admin/templates/form/profile_customize.php:179
251
- #: includes/admin/templates/form/profile_customize.php:190
252
- #: includes/admin/templates/form/register_customize.php:24
253
- #: includes/admin/templates/form/register_customize.php:80
254
- #: includes/admin/templates/form/register_gdpr.php:27
255
- #: includes/core/class-builtin.php:1135 includes/core/class-builtin.php:1150
256
- #: includes/core/um-filters-members.php:69
257
- msgid "Yes"
258
- msgstr ""
259
-
260
- #: includes/admin/core/class-admin-enqueue.php:183
261
- msgid "e.g. Member Directory"
262
- msgstr ""
263
-
264
- #: includes/admin/core/class-admin-enqueue.php:185
265
- msgid "e.g. New Registration Form"
266
- msgstr ""
267
-
268
- #: includes/admin/core/class-admin-enqueue.php:230
269
- #: includes/admin/core/class-admin-enqueue.php:261
270
- #: includes/admin/core/class-admin-forms.php:849
271
- #: includes/admin/core/class-admin-forms.php:863
272
- #: includes/admin/core/class-admin-forms.php:970
273
- #: includes/admin/core/class-admin-forms.php:979
274
- #: includes/admin/core/class-admin-notices.php:394
275
- #: includes/core/um-actions-profile.php:639
276
- msgid "Remove"
277
- msgstr ""
278
-
279
- #: includes/admin/core/class-admin-enqueue.php:231
280
- #: includes/admin/core/class-admin-enqueue.php:262
281
- #: includes/admin/core/class-admin-forms.php:1049
282
- msgid "Select"
283
- msgstr ""
284
-
285
- #: includes/admin/core/class-admin-enqueue.php:259
286
- msgid "Are sure, maybe some settings not saved"
287
- msgstr ""
288
-
289
- #: includes/admin/core/class-admin-enqueue.php:485
290
- #: includes/core/class-builtin.php:698 includes/core/class-builtin.php:701
291
- #: includes/core/class-builtin.php:1155 includes/core/class-builtin.php:1158
292
- msgid "Password"
293
- msgstr ""
294
-
295
- #: includes/admin/core/class-admin-enqueue.php:489
296
- #: includes/admin/core/class-admin-metabox.php:2191
297
- #: includes/core/class-account.php:105
298
- msgid "Privacy"
299
- msgstr ""
300
-
301
- #: includes/admin/core/class-admin-enqueue.php:493
302
- #: includes/core/class-account.php:111
303
- msgid "Notifications"
304
- msgstr ""
305
-
306
- #: includes/admin/core/class-admin-enqueue.php:497
307
- #: includes/admin/core/list-tables/roles-list-table.php:342
308
- #: includes/admin/core/list-tables/roles-list-table.php:410
309
- msgid "Delete"
310
- msgstr ""
311
-
312
- #: includes/admin/core/class-admin-enqueue.php:547
313
- msgid "Ultimate Member Blocks"
314
- msgstr ""
315
-
316
- #: includes/admin/core/class-admin-forms.php:318
317
- #: includes/core/um-filters-fields.php:15
318
- msgid "Required"
319
- msgstr ""
320
-
321
- #: includes/admin/core/class-admin-forms.php:478
322
- #: includes/admin/core/class-admin-metabox.php:1379
323
- #: includes/admin/core/class-admin-metabox.php:1407
324
- msgid "Choose Icon"
325
- msgstr ""
326
-
327
- #: includes/admin/core/class-admin-forms.php:484
328
- #: includes/admin/core/class-admin-metabox.php:1381
329
- #: includes/admin/core/class-admin-metabox.php:1409
330
- msgid "No Icon"
331
- msgstr ""
332
-
333
- #: includes/admin/core/class-admin-forms.php:1026
334
- msgid "Select media"
335
- msgstr ""
336
-
337
- #: includes/admin/core/class-admin-forms.php:1050
338
- msgid "Clear"
339
- msgstr ""
340
-
341
- #: includes/admin/core/class-admin-gdpr.php:42
342
- msgid "Privacy Policy"
343
- msgstr ""
344
-
345
- #: includes/admin/core/class-admin-gdpr.php:57
346
- msgid "Account Status"
347
- msgstr ""
348
-
349
- #: includes/admin/core/class-admin-gdpr.php:58
350
- msgid "Submitted data on Registration"
351
- msgstr ""
352
-
353
- #: includes/admin/core/class-admin-gdpr.php:59
354
- msgid "Registration Form ID"
355
- msgstr ""
356
-
357
- #: includes/admin/core/class-admin-gdpr.php:60
358
- msgid "Registration Timestamp"
359
- msgstr ""
360
-
361
- #: includes/admin/core/class-admin-gdpr.php:61
362
- msgid "Registration Request"
363
- msgstr ""
364
-
365
- #: includes/admin/core/class-admin-gdpr.php:62
366
- msgid "Registration Nonce"
367
- msgstr ""
368
-
369
- #: includes/admin/core/class-admin-gdpr.php:63
370
- msgid "Registration HTTP referer"
371
- msgstr ""
372
-
373
- #: includes/admin/core/class-admin-gdpr.php:64
374
- msgid "Community Role"
375
- msgstr ""
376
-
377
- #: includes/admin/core/class-admin-gdpr.php:65
378
- msgid "Profile Slug \"Username\""
379
- msgstr ""
380
-
381
- #: includes/admin/core/class-admin-gdpr.php:66
382
- msgid "Profile Slug \"First and Last Name with '.'\""
383
- msgstr ""
384
-
385
- #: includes/admin/core/class-admin-gdpr.php:67
386
- msgid "Profile Slug \"First and Last Name with '-'\""
387
- msgstr ""
388
-
389
- #: includes/admin/core/class-admin-gdpr.php:68
390
- msgid "Profile Slug \"First and Last Name with '+'\""
391
- msgstr ""
392
-
393
- #: includes/admin/core/class-admin-gdpr.php:69
394
- msgid "Profile Slug \"User ID\""
395
- msgstr ""
396
-
397
- #: includes/admin/core/class-admin-gdpr.php:70
398
- msgid "Last Login Timestamp"
399
- msgstr ""
400
-
401
- #: includes/admin/core/class-admin-gdpr.php:73
402
- msgid "Private Content Post ID"
403
- msgstr ""
404
-
405
- #: includes/admin/core/class-admin-gdpr.php:76
406
- msgid "Verified Account"
407
- msgstr ""
408
-
409
- #: includes/admin/core/class-admin-gdpr.php:79
410
- msgid "Terms&Conditions Agreement"
411
- msgstr ""
412
-
413
- #: includes/admin/core/class-admin-gdpr.php:82
414
- msgid "Privacy Policy Agreement"
415
- msgstr ""
416
-
417
- #: includes/admin/core/class-admin-gdpr.php:298
418
- #, php-format
419
- msgid "Your %s was unable to be removed at this time."
420
- msgstr ""
421
-
422
- #: includes/admin/core/class-admin-menu.php:65
423
- msgid "Thanks :)"
424
- msgstr ""
425
-
426
- #: includes/admin/core/class-admin-menu.php:72
427
- #, php-format
428
- msgid ""
429
- "If you like Ultimate Member please consider leaving a %s review. It will "
430
- "help us to grow the plugin and make it more popular. Thank you."
431
- msgstr ""
432
-
433
- #: includes/admin/core/class-admin-menu.php:127
434
- msgctxt "Admin menu name"
435
- msgid "Users"
436
- msgstr ""
437
-
438
- #: includes/admin/core/class-admin-menu.php:135
439
- msgctxt "Admin menu name"
440
- msgid "All Users"
441
- msgstr ""
442
-
443
- #. Plugin Name of the plugin/theme
444
- #. Author of the plugin/theme
445
- #: includes/admin/core/class-admin-menu.php:147
446
- #: includes/core/class-user.php:562
447
- msgid "Ultimate Member"
448
- msgstr ""
449
-
450
- #: includes/admin/core/class-admin-menu.php:151
451
- msgid "Dashboard"
452
- msgstr ""
453
-
454
- #: includes/admin/core/class-admin-menu.php:159
455
- #: includes/admin/templates/gdpr.php:7 includes/core/class-common.php:54
456
- msgid "Forms"
457
- msgstr ""
458
-
459
- #: includes/admin/core/class-admin-menu.php:161
460
- #: includes/admin/core/list-tables/roles-list-table.php:483
461
- #: includes/admin/core/packages/2.0-beta1/user_roles.php:12
462
- msgid "User Roles"
463
- msgstr ""
464
-
465
- #: includes/admin/core/class-admin-menu.php:164
466
- #: includes/core/class-common.php:84
467
- msgid "Member Directories"
468
- msgstr ""
469
-
470
- #: includes/admin/core/class-admin-menu.php:206
471
- #: includes/admin/core/class-admin-settings.php:1084
472
- msgid "Extensions"
473
- msgstr ""
474
-
475
- #: includes/admin/core/class-admin-menu.php:219
476
- msgid "Users Overview"
477
- msgstr ""
478
-
479
- #: includes/admin/core/class-admin-menu.php:221
480
- msgid "Latest from our blog"
481
- msgstr ""
482
-
483
- #: includes/admin/core/class-admin-menu.php:223
484
- msgid "Purge Temp Files"
485
- msgstr ""
486
-
487
- #: includes/admin/core/class-admin-menu.php:225
488
- msgid "User Cache"
489
- msgstr ""
490
-
491
- #: includes/admin/core/class-admin-menu.php:230
492
- msgid "Upgrade's Manual Request"
493
- msgstr ""
494
-
495
- #: includes/admin/core/class-admin-metabox.php:220
496
- msgid "UM Content Restriction"
497
- msgstr ""
498
-
499
- #: includes/admin/core/class-admin-metabox.php:376
500
- #: includes/admin/core/class-admin-metabox.php:527
501
- #: includes/admin/templates/access/restrict_content.php:53
502
- msgid "Restrict access to this content?"
503
- msgstr ""
504
-
505
- #: includes/admin/core/class-admin-metabox.php:377
506
- #: includes/admin/core/class-admin-metabox.php:384
507
- #: includes/admin/core/class-admin-metabox.php:397
508
- #: includes/admin/core/class-admin-metabox.php:528
509
- #: includes/admin/core/class-admin-metabox.php:536
510
- #: includes/admin/core/class-admin-metabox.php:550
511
- #: includes/admin/templates/access/restrict_content.php:54
512
- #: includes/admin/templates/access/restrict_content.php:61
513
- #: includes/admin/templates/access/restrict_content.php:74
514
- msgid "Activate content restriction for this post"
515
- msgstr ""
516
-
517
- #: includes/admin/core/class-admin-metabox.php:383
518
- #: includes/admin/core/class-admin-metabox.php:535
519
- #: includes/admin/templates/access/restrict_content.php:60
520
- msgid "Who can access this content?"
521
- msgstr ""
522
-
523
- #: includes/admin/core/class-admin-metabox.php:387
524
- #: includes/admin/core/class-admin-metabox.php:539
525
- #: includes/admin/core/class-admin-metabox.php:2193
526
- #: includes/admin/core/class-admin-navmenu.php:141
527
- #: includes/admin/templates/access/restrict_content.php:64
528
- #: includes/core/class-builtin.php:662
529
- msgid "Everyone"
530
- msgstr ""
531
-
532
- #: includes/admin/core/class-admin-metabox.php:388
533
- #: includes/admin/core/class-admin-metabox.php:540
534
- #: includes/admin/templates/access/restrict_content.php:65
535
- msgid "Logged out users"
536
- msgstr ""
537
-
538
- #: includes/admin/core/class-admin-metabox.php:389
539
- #: includes/admin/core/class-admin-metabox.php:541
540
- #: includes/admin/templates/access/restrict_content.php:66
541
- msgid "Logged in users"
542
- msgstr ""
543
-
544
- #: includes/admin/core/class-admin-metabox.php:396
545
- #: includes/admin/core/class-admin-metabox.php:549
546
- #: includes/admin/templates/access/restrict_content.php:73
547
- msgid "Select which roles can access this content"
548
- msgstr ""
549
-
550
- #: includes/admin/core/class-admin-metabox.php:405
551
- #: includes/admin/core/class-admin-metabox.php:560
552
- #: includes/admin/templates/access/restrict_content.php:83
553
- msgid "What happens when users without access tries to view the content?"
554
- msgstr ""
555
-
556
- #: includes/admin/core/class-admin-metabox.php:406
557
- #: includes/admin/core/class-admin-metabox.php:418
558
- #: includes/admin/core/class-admin-metabox.php:561
559
- #: includes/admin/core/class-admin-metabox.php:574
560
- #: includes/admin/templates/access/restrict_content.php:84
561
- #: includes/admin/templates/access/restrict_content.php:96
562
- msgid "Action when users without access tries to view the content"
563
- msgstr ""
564
-
565
- #: includes/admin/core/class-admin-metabox.php:409
566
- #: includes/admin/core/class-admin-metabox.php:564
567
- #: includes/admin/templates/access/restrict_content.php:87
568
- msgid "Show access restricted message"
569
- msgstr ""
570
-
571
- #: includes/admin/core/class-admin-metabox.php:410
572
- #: includes/admin/core/class-admin-metabox.php:565
573
- #: includes/admin/templates/access/restrict_content.php:88
574
- msgid "Redirect user"
575
- msgstr ""
576
-
577
- #: includes/admin/core/class-admin-metabox.php:417
578
- #: includes/admin/core/class-admin-metabox.php:573
579
- #: includes/admin/templates/access/restrict_content.php:95
580
- msgid ""
581
- "Would you like to use the global default message or apply a custom message "
582
- "to this content?"
583
- msgstr ""
584
-
585
- #: includes/admin/core/class-admin-metabox.php:421
586
- #: includes/admin/core/class-admin-metabox.php:577
587
- #: includes/admin/templates/access/restrict_content.php:99
588
- msgid "Global default message (default)"
589
- msgstr ""
590
-
591
- #: includes/admin/core/class-admin-metabox.php:422
592
- #: includes/admin/core/class-admin-metabox.php:578
593
- #: includes/admin/templates/access/restrict_content.php:100
594
- msgid "Custom message"
595
- msgstr ""
596
-
597
- #: includes/admin/core/class-admin-metabox.php:429
598
- #: includes/admin/core/class-admin-metabox.php:586
599
- #: includes/admin/templates/access/restrict_content.php:107
600
- msgid "Custom Restrict Content message"
601
- msgstr ""
602
-
603
- #: includes/admin/core/class-admin-metabox.php:430
604
- #: includes/admin/core/class-admin-metabox.php:450
605
- #: includes/admin/core/class-admin-metabox.php:587
606
- #: includes/admin/core/class-admin-metabox.php:609
607
- #: includes/admin/templates/access/restrict_content.php:108
608
- #: includes/admin/templates/access/restrict_content.php:128
609
- msgid "Changed global restrict message"
610
- msgstr ""
611
-
612
- #: includes/admin/core/class-admin-metabox.php:437
613
- #: includes/admin/core/class-admin-metabox.php:595
614
- #: includes/admin/templates/access/restrict_content.php:115
615
- msgid "Where should users be redirected to?"
616
- msgstr ""
617
-
618
- #: includes/admin/core/class-admin-metabox.php:438
619
- #: includes/admin/core/class-admin-metabox.php:596
620
- #: includes/admin/templates/access/restrict_content.php:116
621
- msgid "Select redirect to page when user hasn't access to content"
622
- msgstr ""
623
-
624
- #: includes/admin/core/class-admin-metabox.php:442
625
- #: includes/admin/core/class-admin-metabox.php:600
626
- #: includes/admin/templates/access/restrict_content.php:120
627
- msgid "Login page"
628
- msgstr ""
629
-
630
- #: includes/admin/core/class-admin-metabox.php:443
631
- #: includes/admin/core/class-admin-metabox.php:601
632
- #: includes/admin/templates/access/restrict_content.php:121
633
- msgid "Custom URL"
634
- msgstr ""
635
-
636
- #: includes/admin/core/class-admin-metabox.php:449
637
- #: includes/admin/core/class-admin-metabox.php:608
638
- #: includes/admin/templates/access/restrict_content.php:127
639
- msgid "Redirect URL"
640
- msgstr ""
641
-
642
- #: includes/admin/core/class-admin-metabox.php:457
643
- #: includes/admin/core/class-admin-metabox.php:617
644
- #: includes/admin/templates/access/restrict_content.php:135
645
- msgid "Hide from queries"
646
- msgstr ""
647
-
648
- #: includes/admin/core/class-admin-metabox.php:458
649
- #: includes/admin/core/class-admin-metabox.php:618
650
- #: includes/admin/templates/access/restrict_content.php:136
651
- msgid ""
652
- "Hide this content from archives, RSS feeds etc for users who do not have "
653
- "permission to view this content"
654
- msgstr ""
655
-
656
- #: includes/admin/core/class-admin-metabox.php:778
657
- msgid "General Options"
658
- msgstr ""
659
-
660
- #: includes/admin/core/class-admin-metabox.php:779
661
- msgid "Profile Card"
662
- msgstr ""
663
-
664
- #: includes/admin/core/class-admin-metabox.php:780
665
- msgid "Search Options"
666
- msgstr ""
667
-
668
- #: includes/admin/core/class-admin-metabox.php:781
669
- msgid "Results &amp; Pagination"
670
- msgstr ""
671
-
672
- #: includes/admin/core/class-admin-metabox.php:783
673
- msgid "Styling: General"
674
- msgstr ""
675
-
676
- #: includes/admin/core/class-admin-metabox.php:796
677
- msgid "Administrative Permissions"
678
- msgstr ""
679
-
680
- #: includes/admin/core/class-admin-metabox.php:804
681
- msgid "General Permissions"
682
- msgstr ""
683
-
684
- #: includes/admin/core/class-admin-metabox.php:812
685
- msgid "Profile Access"
686
- msgstr ""
687
-
688
- #: includes/admin/core/class-admin-metabox.php:823
689
- msgid "Homepage Options"
690
- msgstr ""
691
-
692
- #: includes/admin/core/class-admin-metabox.php:834
693
- msgid "Registration Options"
694
- msgstr ""
695
-
696
- #: includes/admin/core/class-admin-metabox.php:842
697
- msgid "Login Options"
698
- msgstr ""
699
-
700
- #: includes/admin/core/class-admin-metabox.php:850
701
- msgid "Logout Options"
702
- msgstr ""
703
-
704
- #: includes/admin/core/class-admin-metabox.php:858
705
- msgid "Delete Options"
706
- msgstr ""
707
-
708
- #: includes/admin/core/class-admin-metabox.php:866
709
- msgid "Publish"
710
- msgstr ""
711
-
712
- #: includes/admin/core/class-admin-metabox.php:914
713
- msgid "WP Capabilities"
714
- msgstr ""
715
-
716
- #: includes/admin/core/class-admin-metabox.php:941
717
- msgid "Select Form Type"
718
- msgstr ""
719
-
720
- #: includes/admin/core/class-admin-metabox.php:942
721
- msgid "Form Builder"
722
- msgstr ""
723
-
724
- #: includes/admin/core/class-admin-metabox.php:945
725
- #: includes/admin/core/class-admin-metabox.php:966
726
- #: includes/admin/core/class-admin-metabox.php:988
727
- msgid "Customize this form"
728
- msgstr ""
729
-
730
- #: includes/admin/core/class-admin-metabox.php:967
731
- msgid "User Meta"
732
- msgstr ""
733
-
734
- #: includes/admin/core/class-admin-metabox.php:989
735
- msgid "Options"
736
- msgstr ""
737
-
738
- #: includes/admin/core/class-admin-metabox.php:1200
739
- msgid "Visibility"
740
- msgstr ""
741
-
742
- #: includes/admin/core/class-admin-metabox.php:1200
743
- msgid ""
744
- "Select where this field should appear. This option should only be changed on "
745
- "the profile form and allows you to show a field in one mode only (edit or "
746
- "view) or in both modes."
747
- msgstr ""
748
-
749
- #: includes/admin/core/class-admin-metabox.php:1202
750
- msgid "View everywhere"
751
- msgstr ""
752
-
753
- #: includes/admin/core/class-admin-metabox.php:1203
754
- msgid "Edit mode only"
755
- msgstr ""
756
-
757
- #: includes/admin/core/class-admin-metabox.php:1204
758
- msgid "View mode only"
759
- msgstr ""
760
-
761
- #: includes/admin/core/class-admin-metabox.php:1232
762
- msgid "If"
763
- msgstr ""
764
-
765
- #: includes/admin/core/class-admin-metabox.php:1309
766
- msgid "Value"
767
- msgstr ""
768
-
769
- #: includes/admin/core/class-admin-metabox.php:1318
770
- msgid "Validate"
771
- msgstr ""
772
-
773
- #: includes/admin/core/class-admin-metabox.php:1318
774
- msgid "Does this field require a special validation"
775
- msgstr ""
776
-
777
- #: includes/admin/core/class-admin-metabox.php:1319
778
- msgid "Select a validation type..."
779
- msgstr ""
780
-
781
- #: includes/admin/core/class-admin-metabox.php:1363
782
- msgid "Custom Action"
783
- msgstr ""
784
-
785
- #: includes/admin/core/class-admin-metabox.php:1363
786
- msgid ""
787
- "If you want to apply your custom validation, you can use action hooks to add "
788
- "custom validation. Please refer to documentation for further details."
789
- msgstr ""
790
-
791
- #: includes/admin/core/class-admin-metabox.php:1377
792
- #: includes/admin/core/class-admin-metabox.php:1405
793
- msgid "Icon"
794
- msgstr ""
795
-
796
- #: includes/admin/core/class-admin-metabox.php:1377
797
- #: includes/admin/core/class-admin-metabox.php:1405
798
- msgid ""
799
- "Select an icon to appear in the field. Leave blank if you do not want an "
800
- "icon to show in the field."
801
- msgstr ""
802
-
803
- #: includes/admin/core/class-admin-metabox.php:1432
804
- msgid "CSS Class"
805
- msgstr ""
806
-
807
- #: includes/admin/core/class-admin-metabox.php:1432
808
- msgid "Specify a custom CSS class to be applied to this element"
809
- msgstr ""
810
-
811
- #: includes/admin/core/class-admin-metabox.php:1442
812
- msgid "Thickness (in pixels)"
813
- msgstr ""
814
-
815
- #: includes/admin/core/class-admin-metabox.php:1442
816
- msgid "This is the width in pixels, e.g. 4 or 2, etc"
817
- msgstr ""
818
-
819
- #: includes/admin/core/class-admin-metabox.php:1452
820
- msgid "Optional Text"
821
- msgstr ""
822
-
823
- #: includes/admin/core/class-admin-metabox.php:1452
824
- msgid "Optional text to include with the divider"
825
- msgstr ""
826
-
827
- #: includes/admin/core/class-admin-metabox.php:1462
828
- msgid "Padding"
829
- msgstr ""
830
-
831
- #: includes/admin/core/class-admin-metabox.php:1462
832
- msgid "Set padding for this section"
833
- msgstr ""
834
-
835
- #: includes/admin/core/class-admin-metabox.php:1472
836
- msgid "Margin"
837
- msgstr ""
838
-
839
- #: includes/admin/core/class-admin-metabox.php:1472
840
- msgid "Set margin for this section"
841
- msgstr ""
842
-
843
- #: includes/admin/core/class-admin-metabox.php:1482
844
- msgid "Border"
845
- msgstr ""
846
-
847
- #: includes/admin/core/class-admin-metabox.php:1482
848
- msgid "Set border for this section"
849
- msgstr ""
850
-
851
- #: includes/admin/core/class-admin-metabox.php:1492
852
- #: includes/admin/core/class-admin-metabox.php:1663
853
- msgid "Style"
854
- msgstr ""
855
-
856
- #: includes/admin/core/class-admin-metabox.php:1492
857
- msgid "Choose the border style"
858
- msgstr ""
859
-
860
- #: includes/admin/core/class-admin-metabox.php:1494
861
- #: includes/admin/core/class-admin-metabox.php:1665
862
- msgid "Solid"
863
- msgstr ""
864
-
865
- #: includes/admin/core/class-admin-metabox.php:1495
866
- #: includes/admin/core/class-admin-metabox.php:1666
867
- msgid "Dotted"
868
- msgstr ""
869
-
870
- #: includes/admin/core/class-admin-metabox.php:1496
871
- #: includes/admin/core/class-admin-metabox.php:1667
872
- msgid "Dashed"
873
- msgstr ""
874
-
875
- #: includes/admin/core/class-admin-metabox.php:1497
876
- #: includes/admin/core/class-admin-metabox.php:1668
877
- msgid "Double"
878
- msgstr ""
879
-
880
- #: includes/admin/core/class-admin-metabox.php:1507
881
- msgid "Border Radius"
882
- msgstr ""
883
-
884
- #: includes/admin/core/class-admin-metabox.php:1507
885
- msgid "Rounded corners can be applied by setting a pixels value here. e.g. 5px"
886
- msgstr ""
887
-
888
- #: includes/admin/core/class-admin-metabox.php:1517
889
- msgid "Border Color"
890
- msgstr ""
891
-
892
- #: includes/admin/core/class-admin-metabox.php:1517
893
- msgid "Give a color to this border"
894
- msgstr ""
895
-
896
- #: includes/admin/core/class-admin-metabox.php:1527
897
- msgid "Enable Row Heading"
898
- msgstr ""
899
-
900
- #: includes/admin/core/class-admin-metabox.php:1527
901
- msgid "Whether to enable a heading for this row"
902
- msgstr ""
903
-
904
- #: includes/admin/core/class-admin-metabox.php:1537
905
- msgid "Heading Text"
906
- msgstr ""
907
-
908
- #: includes/admin/core/class-admin-metabox.php:1537
909
- msgid "Enter the row heading text here"
910
- msgstr ""
911
-
912
- #: includes/admin/core/class-admin-metabox.php:1547
913
- msgid "Background Color"
914
- msgstr ""
915
-
916
- #: includes/admin/core/class-admin-metabox.php:1547
917
- msgid "This will be the background of entire section"
918
- msgstr ""
919
-
920
- #: includes/admin/core/class-admin-metabox.php:1557
921
- msgid "Heading Background Color"
922
- msgstr ""
923
-
924
- #: includes/admin/core/class-admin-metabox.php:1557
925
- msgid "This will be the background of the heading section"
926
- msgstr ""
927
-
928
- #: includes/admin/core/class-admin-metabox.php:1567
929
- msgid "Heading Text Color"
930
- msgstr ""
931
-
932
- #: includes/admin/core/class-admin-metabox.php:1567
933
- msgid "This will be the text color of heading part only"
934
- msgstr ""
935
-
936
- #: includes/admin/core/class-admin-metabox.php:1577
937
- msgid "Text Color"
938
- msgstr ""
939
-
940
- #: includes/admin/core/class-admin-metabox.php:1577
941
- msgid "This will be the text color of entire section"
942
- msgstr ""
943
-
944
- #: includes/admin/core/class-admin-metabox.php:1587
945
- msgid "Icon Color"
946
- msgstr ""
947
-
948
- #: includes/admin/core/class-admin-metabox.php:1587
949
- msgid ""
950
- "This will be the color of selected icon. By default It will be the same "
951
- "color as heading text color"
952
- msgstr ""
953
-
954
- #: includes/admin/core/class-admin-metabox.php:1597
955
- msgid "Color"
956
- msgstr ""
957
-
958
- #: includes/admin/core/class-admin-metabox.php:1597
959
- msgid "Select a color for this divider"
960
- msgstr ""
961
-
962
- #: includes/admin/core/class-admin-metabox.php:1607
963
- msgid "URL Alt Text"
964
- msgstr ""
965
-
966
- #: includes/admin/core/class-admin-metabox.php:1607
967
- msgid "Entering custom text here will replace the url with a text link"
968
- msgstr ""
969
-
970
- #: includes/admin/core/class-admin-metabox.php:1617
971
- msgid "Link Target"
972
- msgstr ""
973
-
974
- #: includes/admin/core/class-admin-metabox.php:1617
975
- msgid "Choose whether to open this link in same window or in a new window"
976
- msgstr ""
977
-
978
- #: includes/admin/core/class-admin-metabox.php:1619
979
- msgid "Open in new window"
980
- msgstr ""
981
-
982
- #: includes/admin/core/class-admin-metabox.php:1620
983
- msgid "Same window"
984
- msgstr ""
985
-
986
- #: includes/admin/core/class-admin-metabox.php:1630
987
- msgid "SEO Follow"
988
- msgstr ""
989
-
990
- #: includes/admin/core/class-admin-metabox.php:1630
991
- msgid "Whether to follow or nofollow this link by search engines"
992
- msgstr ""
993
-
994
- #: includes/admin/core/class-admin-metabox.php:1632
995
- msgid "Follow"
996
- msgstr ""
997
-
998
- #: includes/admin/core/class-admin-metabox.php:1633
999
- msgid "No-Follow"
1000
- msgstr ""
1001
-
1002
- #: includes/admin/core/class-admin-metabox.php:1643
1003
- msgid "Force strong password?"
1004
- msgstr ""
1005
-
1006
- #: includes/admin/core/class-admin-metabox.php:1643
1007
- msgid ""
1008
- "Turn on to force users to create a strong password (A combination of one "
1009
- "lowercase letter, one uppercase letter, and one number). If turned on this "
1010
- "option is only applied to register forms and not to login forms."
1011
- msgstr ""
1012
-
1013
- #: includes/admin/core/class-admin-metabox.php:1653
1014
- msgid "Automatically add a confirm password field?"
1015
- msgstr ""
1016
-
1017
- #: includes/admin/core/class-admin-metabox.php:1653
1018
- msgid ""
1019
- "Turn on to add a confirm password field. If turned on the confirm password "
1020
- "field will only show on register forms and not on login forms."
1021
- msgstr ""
1022
-
1023
- #: includes/admin/core/class-admin-metabox.php:1663
1024
- msgid "This is the line-style of divider"
1025
- msgstr ""
1026
-
1027
- #: includes/admin/core/class-admin-metabox.php:1679
1028
- msgid "Time Intervals (in minutes)"
1029
- msgstr ""
1030
-
1031
- #: includes/admin/core/class-admin-metabox.php:1679
1032
- msgid "Choose the minutes interval between each time in the time picker."
1033
- msgstr ""
1034
-
1035
- #: includes/admin/core/class-admin-metabox.php:1680
1036
- msgid "e.g. 30, 60, 120"
1037
- msgstr ""
1038
-
1039
- #: includes/admin/core/class-admin-metabox.php:1692
1040
- msgid "Date User-Friendly Format"
1041
- msgstr ""
1042
-
1043
- #: includes/admin/core/class-admin-metabox.php:1692
1044
- msgid "The display format of the date which is visible to user."
1045
- msgstr ""
1046
-
1047
- #: includes/admin/core/class-admin-metabox.php:1703
1048
- msgid "Time Format"
1049
- msgstr ""
1050
-
1051
- #: includes/admin/core/class-admin-metabox.php:1703
1052
- msgid "Choose the displayed time-format for this field"
1053
- msgstr ""
1054
-
1055
- #: includes/admin/core/class-admin-metabox.php:1705
1056
- #: includes/admin/core/class-admin-metabox.php:1706
1057
- msgid "( 12-hr format )"
1058
- msgstr ""
1059
-
1060
- #: includes/admin/core/class-admin-metabox.php:1707
1061
- msgid "( 24-hr format )"
1062
- msgstr ""
1063
-
1064
- #: includes/admin/core/class-admin-metabox.php:1718
1065
- msgid "Displayed Date Format"
1066
- msgstr ""
1067
-
1068
- #: includes/admin/core/class-admin-metabox.php:1718
1069
- msgid ""
1070
- "Whether you wish to show the date in full or only show the years e.g. 25 "
1071
- "Years"
1072
- msgstr ""
1073
-
1074
- #: includes/admin/core/class-admin-metabox.php:1720
1075
- msgid "Show full date"
1076
- msgstr ""
1077
-
1078
- #: includes/admin/core/class-admin-metabox.php:1721
1079
- msgid "Show years only"
1080
- msgstr ""
1081
-
1082
- #: includes/admin/core/class-admin-metabox.php:1737
1083
- msgid "Disable specific weekdays"
1084
- msgstr ""
1085
-
1086
- #: includes/admin/core/class-admin-metabox.php:1737
1087
- msgid ""
1088
- "Disable specific week days from being available for selection in this date "
1089
- "picker"
1090
- msgstr ""
1091
-
1092
- #: includes/admin/core/class-admin-metabox.php:1739
1093
- msgid "Sunday"
1094
- msgstr ""
1095
-
1096
- #: includes/admin/core/class-admin-metabox.php:1740
1097
- msgid "Monday"
1098
- msgstr ""
1099
-
1100
- #: includes/admin/core/class-admin-metabox.php:1741
1101
- msgid "Tuesday"
1102
- msgstr ""
1103
-
1104
- #: includes/admin/core/class-admin-metabox.php:1742
1105
- msgid "Wednesday"
1106
- msgstr ""
1107
-
1108
- #: includes/admin/core/class-admin-metabox.php:1743
1109
- msgid "Thursday"
1110
- msgstr ""
1111
-
1112
- #: includes/admin/core/class-admin-metabox.php:1744
1113
- msgid "Friday"
1114
- msgstr ""
1115
-
1116
- #: includes/admin/core/class-admin-metabox.php:1745
1117
- msgid "Saturday"
1118
- msgstr ""
1119
-
1120
- #: includes/admin/core/class-admin-metabox.php:1755
1121
- msgid "Number of Years to pick from"
1122
- msgstr ""
1123
-
1124
- #: includes/admin/core/class-admin-metabox.php:1755
1125
- msgid ""
1126
- "Number of years available for the date selection. Default to last 50 years"
1127
- msgstr ""
1128
-
1129
- #: includes/admin/core/class-admin-metabox.php:1765
1130
- msgid "Years Selection"
1131
- msgstr ""
1132
-
1133
- #: includes/admin/core/class-admin-metabox.php:1765
1134
- msgid "This decides which years should be shown relative to today date"
1135
- msgstr ""
1136
-
1137
- #: includes/admin/core/class-admin-metabox.php:1767
1138
- msgid "Equal years before / after today"
1139
- msgstr ""
1140
-
1141
- #: includes/admin/core/class-admin-metabox.php:1768
1142
- msgid "Past years only"
1143
- msgstr ""
1144
-
1145
- #: includes/admin/core/class-admin-metabox.php:1769
1146
- msgid "Future years only"
1147
- msgstr ""
1148
-
1149
- #: includes/admin/core/class-admin-metabox.php:1779
1150
- msgid "Date Range Start"
1151
- msgstr ""
1152
-
1153
- #: includes/admin/core/class-admin-metabox.php:1779
1154
- msgid "Set the minimum date/day in range in the format YYYY/MM/DD"
1155
- msgstr ""
1156
-
1157
- #: includes/admin/core/class-admin-metabox.php:1780
1158
- #: includes/admin/core/class-admin-metabox.php:1790
1159
- msgid "YYYY/MM/DD"
1160
- msgstr ""
1161
-
1162
- #: includes/admin/core/class-admin-metabox.php:1789
1163
- msgid "Date Range End"
1164
- msgstr ""
1165
-
1166
- #: includes/admin/core/class-admin-metabox.php:1789
1167
- msgid "Set the maximum date/day in range in the format YYYY/MM/DD"
1168
- msgstr ""
1169
-
1170
- #: includes/admin/core/class-admin-metabox.php:1799
1171
- msgid "Set Date Range"
1172
- msgstr ""
1173
-
1174
- #: includes/admin/core/class-admin-metabox.php:1799
1175
- msgid ""
1176
- "Whether to show a specific number of years or specify a date range to be "
1177
- "available for the date picker."
1178
- msgstr ""
1179
-
1180
- #: includes/admin/core/class-admin-metabox.php:1801
1181
- msgid "Fixed Number of Years"
1182
- msgstr ""
1183
-
1184
- #: includes/admin/core/class-admin-metabox.php:1802
1185
- msgid "Specific Date Range"
1186
- msgstr ""
1187
-
1188
- #: includes/admin/core/class-admin-metabox.php:1815
1189
- msgid "Enter Shortcode"
1190
- msgstr ""
1191
-
1192
- #: includes/admin/core/class-admin-metabox.php:1815
1193
- msgid ""
1194
- "Enter the shortcode in the following textarea and it will be displayed on "
1195
- "the fields"
1196
- msgstr ""
1197
-
1198
- #: includes/admin/core/class-admin-metabox.php:1816
1199
- msgid "e.g. [my_custom_shortcode]"
1200
- msgstr ""
1201
-
1202
- #: includes/admin/core/class-admin-metabox.php:1825
1203
- msgid "Content Editor"
1204
- msgstr ""
1205
-
1206
- #: includes/admin/core/class-admin-metabox.php:1825
1207
- msgid "Edit the content of this field here"
1208
- msgstr ""
1209
-
1210
- #: includes/admin/core/class-admin-metabox.php:1838
1211
- msgid "Crop Feature"
1212
- msgstr ""
1213
-
1214
- #: includes/admin/core/class-admin-metabox.php:1838
1215
- msgid "Enable/disable crop feature for this image upload and define ratio"
1216
- msgstr ""
1217
-
1218
- #: includes/admin/core/class-admin-metabox.php:1840
1219
- msgid "Turn Off (Default)"
1220
- msgstr ""
1221
-
1222
- #: includes/admin/core/class-admin-metabox.php:1841
1223
- msgid "Crop and force 1:1 ratio"
1224
- msgstr ""
1225
-
1226
- #: includes/admin/core/class-admin-metabox.php:1842
1227
- msgid "Crop and force user-defined ratio"
1228
- msgstr ""
1229
-
1230
- #: includes/admin/core/class-admin-metabox.php:1859
1231
- msgid "Allowed Image Types"
1232
- msgstr ""
1233
-
1234
- #: includes/admin/core/class-admin-metabox.php:1859
1235
- #: includes/admin/core/class-admin-metabox.php:1877
1236
- msgid ""
1237
- "Select the image types that you want to allow to be uploaded via this field."
1238
- msgstr ""
1239
-
1240
- #: includes/admin/core/class-admin-metabox.php:1877
1241
- msgid "Allowed File Types"
1242
- msgstr ""
1243
-
1244
- #: includes/admin/core/class-admin-metabox.php:1894
1245
- msgid "Drag &amp; Drop Photo"
1246
- msgstr ""
1247
-
1248
- #: includes/admin/core/class-admin-metabox.php:1897
1249
- msgid "Drag &amp; Drop File"
1250
- msgstr ""
1251
-
1252
- #: includes/admin/core/class-admin-metabox.php:1902
1253
- #: includes/admin/core/class-admin-metabox.php:1922
1254
- msgid "Upload Box Text"
1255
- msgstr ""
1256
-
1257
- #: includes/admin/core/class-admin-metabox.php:1902
1258
- msgid "This is the headline that appears in the upload box for this field"
1259
- msgstr ""
1260
-
1261
- #: includes/admin/core/class-admin-metabox.php:1912
1262
- msgid "Additional Instructions Text"
1263
- msgstr ""
1264
-
1265
- #: includes/admin/core/class-admin-metabox.php:1912
1266
- msgid ""
1267
- "If you need to add information or secondary line below the headline of "
1268
- "upload box, enter it here"
1269
- msgstr ""
1270
-
1271
- #: includes/admin/core/class-admin-metabox.php:1922
1272
- msgid "The text that appears on the button. e.g. Upload"
1273
- msgstr ""
1274
-
1275
- #: includes/admin/core/class-admin-metabox.php:1923
1276
- #: includes/core/class-fields.php:1581 includes/core/class-fields.php:1622
1277
- msgid "Upload"
1278
- msgstr ""
1279
-
1280
- #: includes/admin/core/class-admin-metabox.php:1932
1281
- msgid "Maximum Size in bytes"
1282
- msgstr ""
1283
-
1284
- #: includes/admin/core/class-admin-metabox.php:1932
1285
- msgid ""
1286
- "The maximum size for image that can be uploaded through this field. Leave "
1287
- "empty for unlimited size."
1288
- msgstr ""
1289
-
1290
- #: includes/admin/core/class-admin-metabox.php:1942
1291
- msgid "Textarea Height"
1292
- msgstr ""
1293
-
1294
- #: includes/admin/core/class-admin-metabox.php:1942
1295
- msgid "The height of textarea in pixels. Default is 100 pixels"
1296
- msgstr ""
1297
-
1298
- #: includes/admin/core/class-admin-metabox.php:1952
1299
- msgid "Spacing"
1300
- msgstr ""
1301
-
1302
- #: includes/admin/core/class-admin-metabox.php:1952
1303
- msgid "This is the required spacing in pixels. e.g. 20px"
1304
- msgstr ""
1305
-
1306
- #: includes/admin/core/class-admin-metabox.php:1962
1307
- msgid "Allow multiple selections"
1308
- msgstr ""
1309
-
1310
- #: includes/admin/core/class-admin-metabox.php:1962
1311
- msgid "Enable/disable multiple selections for this field"
1312
- msgstr ""
1313
-
1314
- #: includes/admin/core/class-admin-metabox.php:1972
1315
- msgid "Maximum number of selections"
1316
- msgstr ""
1317
-
1318
- #: includes/admin/core/class-admin-metabox.php:1972
1319
- msgid ""
1320
- "Enter a number here to force a maximum number of selections by user for this "
1321
- "field"
1322
- msgstr ""
1323
-
1324
- #: includes/admin/core/class-admin-metabox.php:1982
1325
- msgid "Minimum number of selections"
1326
- msgstr ""
1327
-
1328
- #: includes/admin/core/class-admin-metabox.php:1982
1329
- msgid ""
1330
- "Enter a number here to force a minimum number of selections by user for this "
1331
- "field"
1332
- msgstr ""
1333
-
1334
- #: includes/admin/core/class-admin-metabox.php:1992
1335
- msgid "Maximum number of entries"
1336
- msgstr ""
1337
-
1338
- #: includes/admin/core/class-admin-metabox.php:1992
1339
- msgid "This is the max number of entries the user can add via field group."
1340
- msgstr ""
1341
-
1342
- #: includes/admin/core/class-admin-metabox.php:2002
1343
- msgid "Maximum allowed words"
1344
- msgstr ""
1345
-
1346
- #: includes/admin/core/class-admin-metabox.php:2002
1347
- msgid ""
1348
- "If you want to enable a maximum number of words to be input in this "
1349
- "textarea. Leave empty to disable this setting"
1350
- msgstr ""
1351
-
1352
- #: includes/admin/core/class-admin-metabox.php:2012
1353
- msgid "Minimum Number"
1354
- msgstr ""
1355
-
1356
- #: includes/admin/core/class-admin-metabox.php:2012
1357
- msgid "Minimum number that can be entered in this field"
1358
- msgstr ""
1359
-
1360
- #: includes/admin/core/class-admin-metabox.php:2022
1361
- msgid "Maximum Number"
1362
- msgstr ""
1363
-
1364
- #: includes/admin/core/class-admin-metabox.php:2022
1365
- msgid "Maximum number that can be entered in this field"
1366
- msgstr ""
1367
-
1368
- #: includes/admin/core/class-admin-metabox.php:2032
1369
- msgid "Minimum length"
1370
- msgstr ""
1371
-
1372
- #: includes/admin/core/class-admin-metabox.php:2032
1373
- msgid ""
1374
- "If you want to enable a minimum number of characters to be input in this "
1375
- "field. Leave empty to disable this setting"
1376
- msgstr ""
1377
-
1378
- #: includes/admin/core/class-admin-metabox.php:2042
1379
- msgid "Maximum length"
1380
- msgstr ""
1381
-
1382
- #: includes/admin/core/class-admin-metabox.php:2042
1383
- msgid ""
1384
- "If you want to enable a maximum number of characters to be input in this "
1385
- "field. Leave empty to disable this setting"
1386
- msgstr ""
1387
-
1388
- #: includes/admin/core/class-admin-metabox.php:2052
1389
- msgid "Does this textarea accept HTML?"
1390
- msgstr ""
1391
-
1392
- #: includes/admin/core/class-admin-metabox.php:2052
1393
- msgid "Turn on/off HTML tags for this textarea"
1394
- msgstr ""
1395
-
1396
- #: includes/admin/core/class-admin-metabox.php:2069
1397
- msgid "Edit Choices"
1398
- msgstr ""
1399
-
1400
- #: includes/admin/core/class-admin-metabox.php:2069
1401
- msgid ""
1402
- "Enter one choice per line. This will represent the available choices or "
1403
- "selections available for user."
1404
- msgstr ""
1405
-
1406
- #: includes/admin/core/class-admin-metabox.php:2079
1407
- msgid ""
1408
- "This is the title of the field for your reference in the backend. The title "
1409
- "will not appear on the front-end of your website."
1410
- msgstr ""
1411
-
1412
- #: includes/admin/core/class-admin-metabox.php:2090
1413
- msgid "Unique ID"
1414
- msgstr ""
1415
-
1416
- #: includes/admin/core/class-admin-metabox.php:2104
1417
- #: includes/admin/core/class-admin-metabox.php:2110
1418
- msgid "Meta Key"
1419
- msgstr ""
1420
-
1421
- #: includes/admin/core/class-admin-metabox.php:2104
1422
- msgid ""
1423
- "The meta key cannot be changed for duplicated fields or when editing an "
1424
- "existing field. If you require a different meta key please create a new "
1425
- "field."
1426
- msgstr ""
1427
-
1428
- #: includes/admin/core/class-admin-metabox.php:2110
1429
- msgid ""
1430
- "A meta key is required to store the entered info in this field in the "
1431
- "database. The meta key should be unique to this field and be written in "
1432
- "lowercase with an underscore ( _ ) separating words e.g country_list or "
1433
- "job_title"
1434
- msgstr ""
1435
-
1436
- #: includes/admin/core/class-admin-metabox.php:2123
1437
- msgid "Help Text"
1438
- msgstr ""
1439
-
1440
- #: includes/admin/core/class-admin-metabox.php:2123
1441
- msgid ""
1442
- "This is the text that appears in a tooltip when a user hovers over the info "
1443
- "icon. Help text is useful for providing users with more information about "
1444
- "what they should enter in the field. Leave blank if no help text is needed "
1445
- "for field."
1446
- msgstr ""
1447
-
1448
- #: includes/admin/core/class-admin-metabox.php:2135
1449
- msgid "Default Text"
1450
- msgstr ""
1451
-
1452
- #: includes/admin/core/class-admin-metabox.php:2135
1453
- msgid "Text to display by default in this field"
1454
- msgstr ""
1455
-
1456
- #: includes/admin/core/class-admin-metabox.php:2141
1457
- msgid "Default Date"
1458
- msgstr ""
1459
-
1460
- #: includes/admin/core/class-admin-metabox.php:2141
1461
- #: includes/admin/core/class-admin-metabox.php:2147
1462
- msgid ""
1463
- "You may use all PHP compatible date formats such as: 2020-02-02, 02/02/2020, "
1464
- "yesterday, today, tomorrow, next monday, first day of next month, +3 day"
1465
- msgstr ""
1466
-
1467
- #: includes/admin/core/class-admin-metabox.php:2147
1468
- msgid "Default Time"
1469
- msgstr ""
1470
-
1471
- #: includes/admin/core/class-admin-metabox.php:2153
1472
- msgid "Default Rating"
1473
- msgstr ""
1474
-
1475
- #: includes/admin/core/class-admin-metabox.php:2153
1476
- msgid ""
1477
- "If you wish the rating field to be prefilled with a number of stars, enter "
1478
- "it here."
1479
- msgstr ""
1480
-
1481
- #: includes/admin/core/class-admin-metabox.php:2159
1482
- msgid "Default Value"
1483
- msgstr ""
1484
-
1485
- #: includes/admin/core/class-admin-metabox.php:2159
1486
- msgid ""
1487
- "This option allows you to pre-fill the field with a default value prior to "
1488
- "the user entering a value in the field. Leave blank to have no default value"
1489
- msgstr ""
1490
-
1491
- #: includes/admin/core/class-admin-metabox.php:2171
1492
- msgid "Label"
1493
- msgstr ""
1494
-
1495
- #: includes/admin/core/class-admin-metabox.php:2171
1496
- msgid ""
1497
- "The field label is the text that appears above the field on your front-end "
1498
- "form. Leave blank to not show a label above field."
1499
- msgstr ""
1500
-
1501
- #: includes/admin/core/class-admin-metabox.php:2181
1502
- msgid "Placeholder"
1503
- msgstr ""
1504
-
1505
- #: includes/admin/core/class-admin-metabox.php:2181
1506
- msgid ""
1507
- "This is the text that appears within the field e.g please enter your email "
1508
- "address. Leave blank to not show any placeholder text."
1509
- msgstr ""
1510
-
1511
- #: includes/admin/core/class-admin-metabox.php:2191
1512
- msgid ""
1513
- "Field privacy allows you to select who can view this field on the front-end. "
1514
- "The site admin can view all fields regardless of the option set here."
1515
- msgstr ""
1516
-
1517
- #: includes/admin/core/class-admin-metabox.php:2194
1518
- #: includes/class-config.php:134 includes/class-config.php:759
1519
- msgid "Members"
1520
- msgstr ""
1521
-
1522
- #: includes/admin/core/class-admin-metabox.php:2195
1523
- msgid "Only visible to profile owner and admins"
1524
- msgstr ""
1525
-
1526
- #: includes/admin/core/class-admin-metabox.php:2196
1527
- msgid "Only visible to profile owner and specific roles"
1528
- msgstr ""
1529
-
1530
- #: includes/admin/core/class-admin-metabox.php:2197
1531
- msgid "Only specific member roles"
1532
- msgstr ""
1533
-
1534
- #: includes/admin/core/class-admin-metabox.php:2214
1535
- msgid "Select member roles"
1536
- msgstr ""
1537
-
1538
- #: includes/admin/core/class-admin-metabox.php:2214
1539
- msgid "Select the member roles that can view this field on the front-end."
1540
- msgstr ""
1541
-
1542
- #: includes/admin/core/class-admin-metabox.php:2240
1543
- msgid "Is this field required?"
1544
- msgstr ""
1545
-
1546
- #: includes/admin/core/class-admin-metabox.php:2240
1547
- msgid ""
1548
- "This option allows you to set whether the field must be filled in before the "
1549
- "form can be processed."
1550
- msgstr ""
1551
-
1552
- #: includes/admin/core/class-admin-metabox.php:2254
1553
- msgid "Can user edit this field?"
1554
- msgstr ""
1555
-
1556
- #: includes/admin/core/class-admin-metabox.php:2254
1557
- msgid ""
1558
- "This option allows you to set whether or not the user can edit the "
1559
- "information in this field."
1560
- msgstr ""
1561
-
1562
- #: includes/admin/core/class-admin-metabox.php:2267
1563
- msgid "Rating System"
1564
- msgstr ""
1565
-
1566
- #: includes/admin/core/class-admin-metabox.php:2267
1567
- msgid "Choose whether you want a 5-stars or 10-stars ratings based here."
1568
- msgstr ""
1569
-
1570
- #: includes/admin/core/class-admin-metabox.php:2269
1571
- msgid "5 stars rating system"
1572
- msgstr ""
1573
-
1574
- #: includes/admin/core/class-admin-metabox.php:2270
1575
- msgid "10 stars rating system"
1576
- msgstr ""
1577
-
1578
- #: includes/admin/core/class-admin-metabox.php:2280
1579
- msgid "Choices Callback"
1580
- msgstr ""
1581
-
1582
- #: includes/admin/core/class-admin-metabox.php:2280
1583
- msgid "Add a callback source to retrieve choices."
1584
- msgstr ""
1585
-
1586
- #: includes/admin/core/class-admin-metabox.php:2291
1587
- msgid "Parent Option"
1588
- msgstr ""
1589
-
1590
- #: includes/admin/core/class-admin-metabox.php:2291
1591
- msgid "Dynamically populates the option based from selected parent option."
1592
- msgstr ""
1593
-
1594
- #: includes/admin/core/class-admin-metabox.php:2293
1595
- msgid "No Selected"
1596
- msgstr ""
1597
-
1598
- #: includes/admin/core/class-admin-navmenu.php:23
1599
- msgid "Display Mode"
1600
- msgstr ""
1601
-
1602
- #: includes/admin/core/class-admin-navmenu.php:24
1603
- msgid "By Role"
1604
- msgstr ""
1605
-
1606
- #: includes/admin/core/class-admin-navmenu.php:133
1607
- msgid "Ultimate Member Menu Settings"
1608
- msgstr ""
1609
-
1610
- #: includes/admin/core/class-admin-navmenu.php:137
1611
- msgid "Who can see this menu link?"
1612
- msgstr ""
1613
-
1614
- #: includes/admin/core/class-admin-navmenu.php:144
1615
- msgid "Logged Out Users"
1616
- msgstr ""
1617
-
1618
- #: includes/admin/core/class-admin-navmenu.php:147
1619
- msgid "Logged In Users"
1620
- msgstr ""
1621
-
1622
- #: includes/admin/core/class-admin-navmenu.php:153
1623
- msgid "Select the member roles that can see this link"
1624
- msgstr ""
1625
-
1626
- #: includes/admin/core/class-admin-notices.php:283
1627
- #, php-format
1628
- msgid ""
1629
- "<strong>%s %s</strong> requires 2.0 extensions. You have pre 2.0 extensions "
1630
- "installed on your site. <br /> Please update %s extensions to latest "
1631
- "versions. For more info see this <a href=\"%s\" target=\"_blank\">doc</a>."
1632
- msgstr ""
1633
-
1634
- #: includes/admin/core/class-admin-notices.php:304
1635
- #, php-format
1636
- msgid ""
1637
- "%s needs to create several pages (User Profiles, Account, Registration, "
1638
- "Login, Password Reset, Logout, Member Directory) to function correctly."
1639
- msgstr ""
1640
-
1641
- #: includes/admin/core/class-admin-notices.php:308
1642
- msgid "Create Pages"
1643
- msgstr ""
1644
-
1645
- #: includes/admin/core/class-admin-notices.php:310
1646
- #: includes/admin/core/class-admin-notices.php:504
1647
- msgid "No thanks"
1648
- msgstr ""
1649
-
1650
- #: includes/admin/core/class-admin-notices.php:330
1651
- msgid "Ultimate Member Setup Error: User page can not be a child page."
1652
- msgstr ""
1653
-
1654
- #: includes/admin/core/class-admin-notices.php:340
1655
- msgid "Ultimate Member Setup Error: Account page can not be a child page."
1656
- msgstr ""
1657
-
1658
- #: includes/admin/core/class-admin-notices.php:358
1659
- #, php-format
1660
- msgid ""
1661
- "Exif is not enabled on your server. Mobile photo uploads will not be rotated "
1662
- "correctly until you enable the exif extension. <a href=\"%s\">Hide this "
1663
- "notice</a>"
1664
- msgstr ""
1665
-
1666
- #: includes/admin/core/class-admin-notices.php:393
1667
- #, php-format
1668
- msgid ""
1669
- "Are you sure you want to delete the selected user(s)? The following users "
1670
- "will be deleted: <p>%s</p> <strong>This cannot be undone!</strong>"
1671
- msgstr ""
1672
-
1673
- #: includes/admin/core/class-admin-notices.php:394
1674
- msgid "Undo"
1675
- msgstr ""
1676
-
1677
- #: includes/admin/core/class-admin-notices.php:399
1678
- msgid "Your translation files have been updated successfully."
1679
- msgstr ""
1680
-
1681
- #: includes/admin/core/class-admin-notices.php:403
1682
- msgid "Your temp uploads directory is now clean."
1683
- msgstr ""
1684
-
1685
- #: includes/admin/core/class-admin-notices.php:407
1686
- msgid "Your user cache is now removed."
1687
- msgstr ""
1688
-
1689
- #: includes/admin/core/class-admin-notices.php:411
1690
- msgid "You have the latest updates."
1691
- msgstr ""
1692
-
1693
- #: includes/admin/core/class-admin-notices.php:415
1694
- msgid "Try again later. You can run this action once daily."
1695
- msgstr ""
1696
-
1697
- #: includes/admin/core/class-admin-notices.php:419
1698
- msgid "The form has been duplicated successfully."
1699
- msgstr ""
1700
-
1701
- #: includes/admin/core/class-admin-notices.php:423
1702
- msgid "User has been updated."
1703
- msgstr ""
1704
-
1705
- #: includes/admin/core/class-admin-notices.php:427
1706
- msgid "Users have been updated."
1707
- msgstr ""
1708
-
1709
- #: includes/admin/core/class-admin-notices.php:431
1710
- msgid "Changed roles."
1711
- msgstr ""
1712
-
1713
- #: includes/admin/core/class-admin-notices.php:435
1714
- msgid "Super administrators cannot be modified."
1715
- msgstr ""
1716
-
1717
- #: includes/admin/core/class-admin-notices.php:436
1718
- msgid "Other users have been updated."
1719
- msgstr ""
1720
-
1721
- #: includes/admin/core/class-admin-notices.php:473
1722
- #, php-format
1723
- msgid ""
1724
- "You have installed <strong>%s</strong> with wrong folder name. Correct "
1725
- "folder name is <strong>\"ultimate-member\"</strong>."
1726
- msgstr ""
1727
-
1728
- #: includes/admin/core/class-admin-notices.php:498
1729
- #, php-format
1730
- msgid ""
1731
- "Thanks for installing <strong>%s</strong>! We hope you like the plugin. To "
1732
- "fund full-time development and support of the plugin we also sell "
1733
- "extensions. If you subscribe to our mailing list we will send you a 20%% "
1734
- "discount code for one of our <a href=\"%s\" target=\"_blank\">access passes</"
1735
- "a>."
1736
- msgstr ""
1737
-
1738
- #: includes/admin/core/class-admin-notices.php:502
1739
- #, php-format
1740
- msgid "Claim 20% discount code"
1741
- msgstr ""
1742
-
1743
- #: includes/admin/core/class-admin-notices.php:541
1744
- #, php-format
1745
- msgid ""
1746
- "There are %d inactive %s license keys for this site. This site is not "
1747
- "authorized to get plugin updates. You can active this site on <a href=\"%s"
1748
- "\">www.ultimatemember.com</a>."
1749
- msgstr ""
1750
-
1751
- #: includes/admin/core/class-admin-notices.php:548
1752
- #, php-format
1753
- msgid ""
1754
- "You have %d invalid or expired license keys for %s. Please go to the <a href="
1755
- "\"%s\">Licenses page</a> to correct this issue."
1756
- msgstr ""
1757
-
1758
- #: includes/admin/core/class-admin-notices.php:562
1759
- #, php-format
1760
- msgid ""
1761
- "<strong>%s version %s</strong> needs to be updated to work correctly.<br /"
1762
- ">It is necessary to update the structure of the database and options that "
1763
- "are associated with <strong>%s %s</strong>.<br />Please visit <a href=\"%s\">"
1764
- "\"Upgrade\"</a> page and run the upgrade process."
1765
- msgstr ""
1766
-
1767
- #: includes/admin/core/class-admin-notices.php:566
1768
- msgid "Upgrade Now"
1769
- msgstr ""
1770
-
1771
- #: includes/admin/core/class-admin-notices.php:580
1772
- #, php-format
1773
- msgid "<strong>%s %s</strong> Successfully Upgraded"
1774
- msgstr ""
1775
-
1776
- #: includes/admin/core/class-admin-notices.php:606
1777
- #, php-format
1778
- msgid ""
1779
- "Hey there! It's been one month since you installed %s. How have you found "
1780
- "the plugin so far?"
1781
- msgstr ""
1782
-
1783
- #: includes/admin/core/class-admin-notices.php:609
1784
- msgid "I love it!"
1785
- msgstr ""
1786
-
1787
- #: includes/admin/core/class-admin-notices.php:610
1788
- msgid "It's good but could be better"
1789
- msgstr ""
1790
-
1791
- #: includes/admin/core/class-admin-notices.php:611
1792
- msgid "I don't like the plugin"
1793
- msgstr ""
1794
-
1795
- #: includes/admin/core/class-admin-notices.php:616
1796
- #, php-format
1797
- msgid ""
1798
- "Great! We're happy to hear that you love the plugin. It would be amazing if "
1799
- "you could let others know why you like %s by leaving a review of the plugin. "
1800
- "This will help %s to grow and become more popular and would be massively "
1801
- "appreciated by us!"
1802
- msgstr ""
1803
-
1804
- #: includes/admin/core/class-admin-notices.php:620
1805
- msgid "Leave Review"
1806
- msgstr ""
1807
-
1808
- #: includes/admin/core/class-admin-notices.php:625
1809
- msgid ""
1810
- "We're glad to hear that you like the plugin but we would love to get your "
1811
- "feedback so we can make the plugin better."
1812
- msgstr ""
1813
-
1814
- #: includes/admin/core/class-admin-notices.php:629
1815
- #: includes/admin/core/class-admin-notices.php:638
1816
- msgid "Provide Feedback"
1817
- msgstr ""
1818
-
1819
- #: includes/admin/core/class-admin-notices.php:634
1820
- #, php-format
1821
- msgid ""
1822
- "We're sorry to hear that. If you're having the issue with the plugin you can "
1823
- "create a topic on our <a href=\"%s\" target=\"_blank\">support forum</a> and "
1824
- "we will try and help you out with the issue. Alternatively if you have an "
1825
- "idea on how we can make the plugin better or want to tell us what you don't "
1826
- "like about the plugin you can tell us know by giving us feedback."
1827
- msgstr ""
1828
-
1829
- #: includes/admin/core/class-admin-notices.php:660
1830
- #, php-format
1831
- msgid ""
1832
- "<strong>%s</strong> future plans! Detailed future list is <a href=\"%s\" "
1833
- "target=\"_blank\">here</a>"
1834
- msgstr ""
1835
-
1836
- #: includes/admin/core/class-admin-notices.php:676
1837
- msgid "Wrong Data"
1838
- msgstr ""
1839
-
1840
- #: includes/admin/core/class-admin-settings.php:108
1841
- #: includes/admin/core/class-admin-settings.php:117
1842
- #, php-format
1843
- msgid "%s page"
1844
- msgstr ""
1845
-
1846
- #: includes/admin/core/class-admin-settings.php:109
1847
- msgid "Add page ID"
1848
- msgstr ""
1849
-
1850
- #: includes/admin/core/class-admin-settings.php:119
1851
- msgid "Choose a page..."
1852
- msgstr ""
1853
-
1854
- #: includes/admin/core/class-admin-settings.php:131
1855
- msgid "Enable profile menu"
1856
- msgstr ""
1857
-
1858
- #: includes/admin/core/class-admin-settings.php:155
1859
- #: includes/admin/core/class-admin-settings.php:166
1860
- #, php-format
1861
- msgid "%s Tab"
1862
- msgstr ""
1863
-
1864
- #: includes/admin/core/class-admin-settings.php:173
1865
- #, php-format
1866
- msgid "Who can see %s Tab?"
1867
- msgstr ""
1868
-
1869
- #: includes/admin/core/class-admin-settings.php:174
1870
- msgid "Select which users can view this tab."
1871
- msgstr ""
1872
-
1873
- #: includes/admin/core/class-admin-settings.php:183
1874
- msgid "Allowed roles"
1875
- msgstr ""
1876
-
1877
- #: includes/admin/core/class-admin-settings.php:184
1878
- msgid "Select the the user roles allowed to view this tab."
1879
- msgstr ""
1880
-
1881
- #: includes/admin/core/class-admin-settings.php:186
1882
- msgid "Choose user roles..."
1883
- msgstr ""
1884
-
1885
- #: includes/admin/core/class-admin-settings.php:199
1886
- msgid "Profile menu default tab"
1887
- msgstr ""
1888
-
1889
- #: includes/admin/core/class-admin-settings.php:200
1890
- msgid "This will be the default tab on user profile page"
1891
- msgstr ""
1892
-
1893
- #: includes/admin/core/class-admin-settings.php:210
1894
- msgid "Enable menu icons in desktop view"
1895
- msgstr ""
1896
-
1897
- #: includes/admin/core/class-admin-settings.php:263
1898
- msgid "Global Site Access"
1899
- msgstr ""
1900
-
1901
- #: includes/admin/core/class-admin-settings.php:264
1902
- msgid ""
1903
- "Globally control the access of your site, you can have seperate restrict "
1904
- "options per post/page by editing the desired item."
1905
- msgstr ""
1906
-
1907
- #: includes/admin/core/class-admin-settings.php:266
1908
- msgid "Site accessible to Everyone"
1909
- msgstr ""
1910
-
1911
- #: includes/admin/core/class-admin-settings.php:267
1912
- msgid "Site accessible to Logged In Users"
1913
- msgstr ""
1914
-
1915
- #: includes/admin/core/class-admin-settings.php:274
1916
- msgid "Custom Redirect URL"
1917
- msgstr ""
1918
-
1919
- #: includes/admin/core/class-admin-settings.php:275
1920
- msgid ""
1921
- "A logged out user will be redirected to this url If he is not permitted to "
1922
- "access the site"
1923
- msgstr ""
1924
-
1925
- #: includes/admin/core/class-admin-settings.php:281
1926
- msgid "Exclude the following URLs"
1927
- msgstr ""
1928
-
1929
- #: includes/admin/core/class-admin-settings.php:282
1930
- msgid ""
1931
- "Here you can exclude URLs beside the redirect URI to be accessible to "
1932
- "everyone"
1933
- msgstr ""
1934
-
1935
- #: includes/admin/core/class-admin-settings.php:283
1936
- msgid "Add New URL"
1937
- msgstr ""
1938
-
1939
- #: includes/admin/core/class-admin-settings.php:290
1940
- msgid "Allow Homepage to be accessible"
1941
- msgstr ""
1942
-
1943
- #: includes/admin/core/class-admin-settings.php:296
1944
- msgid "Allow Category pages to be accessible"
1945
- msgstr ""
1946
-
1947
- #: includes/admin/core/class-admin-settings.php:302
1948
- msgid "Restricted Access Message"
1949
- msgstr ""
1950
-
1951
- #: includes/admin/core/class-admin-settings.php:303
1952
- msgid ""
1953
- "This is the message shown to users that do not have permission to view the "
1954
- "content"
1955
- msgstr ""
1956
-
1957
- #: includes/admin/core/class-admin-settings.php:312
1958
- msgid "Allow Gutenberg Blocks restriction options"
1959
- msgstr ""
1960
-
1961
- #: includes/admin/core/class-admin-settings.php:317
1962
- msgid "Restricted Block Message"
1963
- msgstr ""
1964
-
1965
- #: includes/admin/core/class-admin-settings.php:318
1966
- msgid ""
1967
- "This is the message shown to users that do not have permission to view the "
1968
- "block's content"
1969
- msgstr ""
1970
-
1971
- #: includes/admin/core/class-admin-settings.php:336
1972
- msgid "Restricted Access to Posts"
1973
- msgstr ""
1974
-
1975
- #: includes/admin/core/class-admin-settings.php:337
1976
- msgid "Restriction content of the current Posts"
1977
- msgstr ""
1978
-
1979
- #: includes/admin/core/class-admin-settings.php:346
1980
- msgid "Restricted Access to Taxonomies"
1981
- msgstr ""
1982
-
1983
- #: includes/admin/core/class-admin-settings.php:347
1984
- msgid "Restriction content of the current Taxonomies"
1985
- msgstr ""
1986
-
1987
- #: includes/admin/core/class-admin-settings.php:377
1988
- msgid "General"
1989
- msgstr ""
1990
-
1991
- #: includes/admin/core/class-admin-settings.php:380
1992
- msgid "Pages"
1993
- msgstr ""
1994
-
1995
- #: includes/admin/core/class-admin-settings.php:384
1996
- #: includes/admin/templates/dashboard/users.php:15
1997
- msgid "Users"
1998
- msgstr ""
1999
-
2000
- #: includes/admin/core/class-admin-settings.php:390
2001
- msgid "Profile Permalink Base"
2002
- msgstr ""
2003
-
2004
- #: includes/admin/core/class-admin-settings.php:391
2005
- msgid ""
2006
- "Here you can control the permalink structure of the user profile URL "
2007
- "globally e.g. "
2008
- msgstr ""
2009
-
2010
- #: includes/admin/core/class-admin-settings.php:393
2011
- #: includes/admin/core/class-admin-settings.php:410
2012
- #: includes/core/class-builtin.php:674 includes/core/class-builtin.php:677
2013
- msgid "Username"
2014
- msgstr ""
2015
-
2016
- #: includes/admin/core/class-admin-settings.php:394
2017
- msgid "First and Last Name with '.'"
2018
- msgstr ""
2019
-
2020
- #: includes/admin/core/class-admin-settings.php:395
2021
- msgid "First and Last Name with '-'"
2022
- msgstr ""
2023
-
2024
- #: includes/admin/core/class-admin-settings.php:396
2025
- msgid "First and Last Name with '+'"
2026
- msgstr ""
2027
-
2028
- #: includes/admin/core/class-admin-settings.php:397
2029
- msgid "User ID"
2030
- msgstr ""
2031
-
2032
- #: includes/admin/core/class-admin-settings.php:399
2033
- #: includes/admin/core/class-admin-settings.php:418
2034
- msgid "Select..."
2035
- msgstr ""
2036
-
2037
- #: includes/admin/core/class-admin-settings.php:405
2038
- msgid "User Display Name"
2039
- msgstr ""
2040
-
2041
- #: includes/admin/core/class-admin-settings.php:406
2042
- msgid ""
2043
- "This is the name that will be displayed for users on the front end of your "
2044
- "site. Default setting uses first/last name as display name if it exists"
2045
- msgstr ""
2046
-
2047
- #: includes/admin/core/class-admin-settings.php:408
2048
- msgid "Default WP Display Name"
2049
- msgstr ""
2050
-
2051
- #: includes/admin/core/class-admin-settings.php:409
2052
- #: includes/core/class-builtin.php:732 includes/core/class-builtin.php:735
2053
- msgid "Nickname"
2054
- msgstr ""
2055
-
2056
- #: includes/admin/core/class-admin-settings.php:411
2057
- msgid "First name & last name"
2058
- msgstr ""
2059
-
2060
- #: includes/admin/core/class-admin-settings.php:412
2061
- msgid "Last name & first name"
2062
- msgstr ""
2063
-
2064
- #: includes/admin/core/class-admin-settings.php:413
2065
- msgid "First name & first initial of last name"
2066
- msgstr ""
2067
-
2068
- #: includes/admin/core/class-admin-settings.php:414
2069
- msgid "First initial of first name & last name"
2070
- msgstr ""
2071
-
2072
- #: includes/admin/core/class-admin-settings.php:415
2073
- msgid "First name only"
2074
- msgstr ""
2075
-
2076
- #: includes/admin/core/class-admin-settings.php:416
2077
- msgid "Custom field(s)"
2078
- msgstr ""
2079
-
2080
- #: includes/admin/core/class-admin-settings.php:423
2081
- msgid "Display Name Custom Field(s)"
2082
- msgstr ""
2083
-
2084
- #: includes/admin/core/class-admin-settings.php:424
2085
- msgid ""
2086
- "Specify the custom field meta key or custom fields seperated by comma that "
2087
- "you want to use to display users name on the frontend of your site"
2088
- msgstr ""
2089
-
2090
- #: includes/admin/core/class-admin-settings.php:430
2091
- msgid "Automatically redirect author page to their profile?"
2092
- msgstr ""
2093
-
2094
- #: includes/admin/core/class-admin-settings.php:431
2095
- msgid ""
2096
- "If enabled, author pages will automatically redirect to the user's profile "
2097
- "page"
2098
- msgstr ""
2099
-
2100
- #: includes/admin/core/class-admin-settings.php:436
2101
- msgid "Enable Members Directory"
2102
- msgstr ""
2103
-
2104
- #: includes/admin/core/class-admin-settings.php:437
2105
- msgid "Control whether to enable or disable member directories on this site"
2106
- msgstr ""
2107
-
2108
- #: includes/admin/core/class-admin-settings.php:442
2109
- msgid "Use Gravatars?"
2110
- msgstr ""
2111
-
2112
- #: includes/admin/core/class-admin-settings.php:443
2113
- msgid ""
2114
- "Do you want to use gravatars instead of the default plugin profile photo (If "
2115
- "the user did not upload a custom profile photo / avatar)"
2116
- msgstr ""
2117
-
2118
- #: includes/admin/core/class-admin-settings.php:448
2119
- msgid "Use Gravatar builtin image"
2120
- msgstr ""
2121
-
2122
- #: includes/admin/core/class-admin-settings.php:449
2123
- msgid ""
2124
- "Gravatar has a number of built in options which you can also use as defaults"
2125
- msgstr ""
2126
-
2127
- #: includes/admin/core/class-admin-settings.php:452
2128
- msgid "404 ( File Not Found response )"
2129
- msgstr ""
2130
-
2131
- #: includes/admin/core/class-admin-settings.php:453
2132
- msgid "Mystery Man"
2133
- msgstr ""
2134
-
2135
- #: includes/admin/core/class-admin-settings.php:454
2136
- msgid "Identicon"
2137
- msgstr ""
2138
-
2139
- #: includes/admin/core/class-admin-settings.php:455
2140
- msgid "Monsterid"
2141
- msgstr ""
2142
-
2143
- #: includes/admin/core/class-admin-settings.php:456
2144
- msgid "Wavatar"
2145
- msgstr ""
2146
-
2147
- #: includes/admin/core/class-admin-settings.php:457
2148
- msgid "Retro"
2149
- msgstr ""
2150
-
2151
- #: includes/admin/core/class-admin-settings.php:458
2152
- msgid "Blank ( a transparent PNG image )"
2153
- msgstr ""
2154
-
2155
- #: includes/admin/core/class-admin-settings.php:466
2156
- msgid "Use Default plugin avatar as Gravatar's Default avatar"
2157
- msgstr ""
2158
-
2159
- #: includes/admin/core/class-admin-settings.php:467
2160
- msgid ""
2161
- "Do you want to use the plugin default avatar instead of the gravatar default "
2162
- "photo (If the user did not upload a custom profile photo / avatar)"
2163
- msgstr ""
2164
-
2165
- #: includes/admin/core/class-admin-settings.php:473
2166
- msgid "Require a strong password? (when user resets password only)"
2167
- msgstr ""
2168
-
2169
- #: includes/admin/core/class-admin-settings.php:474
2170
- msgid ""
2171
- "Enable or disable a strong password rules on password reset and change "
2172
- "procedure"
2173
- msgstr ""
2174
-
2175
- #: includes/admin/core/class-admin-settings.php:479
2176
- #: includes/class-config.php:136 includes/class-config.php:761
2177
- #: includes/core/class-account.php:93
2178
- msgid "Account"
2179
- msgstr ""
2180
-
2181
- #: includes/admin/core/class-admin-settings.php:484
2182
- msgid "Password Account Tab"
2183
- msgstr ""
2184
-
2185
- #: includes/admin/core/class-admin-settings.php:490
2186
- msgid "Privacy Account Tab"
2187
- msgstr ""
2188
-
2189
- #: includes/admin/core/class-admin-settings.php:491
2190
- msgid "Enable/disable the Privacy account tab in account page"
2191
- msgstr ""
2192
-
2193
- #: includes/admin/core/class-admin-settings.php:496
2194
- msgid "Notifications Account Tab"
2195
- msgstr ""
2196
-
2197
- #: includes/admin/core/class-admin-settings.php:497
2198
- msgid "Enable/disable the Notifications account tab in account page"
2199
- msgstr ""
2200
-
2201
- #: includes/admin/core/class-admin-settings.php:502
2202
- msgid "Delete Account Tab"
2203
- msgstr ""
2204
-
2205
- #: includes/admin/core/class-admin-settings.php:503
2206
- msgid "Enable/disable the Delete account tab in account page"
2207
- msgstr ""
2208
-
2209
- #: includes/admin/core/class-admin-settings.php:508
2210
- msgid "Account Deletion Custom Text"
2211
- msgstr ""
2212
-
2213
- #: includes/admin/core/class-admin-settings.php:509
2214
- msgid ""
2215
- "This is custom text that will be displayed to users before they delete their "
2216
- "accounts from your site"
2217
- msgstr ""
2218
-
2219
- #: includes/admin/core/class-admin-settings.php:517
2220
- msgid "Add a First & Last Name fields"
2221
- msgstr ""
2222
-
2223
- #: includes/admin/core/class-admin-settings.php:518
2224
- msgid ""
2225
- "Whether to enable these fields on the user account page by default or hide "
2226
- "them."
2227
- msgstr ""
2228
-
2229
- #: includes/admin/core/class-admin-settings.php:523
2230
- msgid "Disable First & Last Name fields"
2231
- msgstr ""
2232
-
2233
- #: includes/admin/core/class-admin-settings.php:524
2234
- msgid ""
2235
- "Whether to allow users changing their first and last name in account page."
2236
- msgstr ""
2237
-
2238
- #: includes/admin/core/class-admin-settings.php:530
2239
- msgid "Require First & Last Name"
2240
- msgstr ""
2241
-
2242
- #: includes/admin/core/class-admin-settings.php:531
2243
- msgid "Require first and last name?"
2244
- msgstr ""
2245
-
2246
- #: includes/admin/core/class-admin-settings.php:537
2247
- msgid "Allow users to change e-mail"
2248
- msgstr ""
2249
-
2250
- #: includes/admin/core/class-admin-settings.php:538
2251
- msgid "Whether to allow users changing their email in account page."
2252
- msgstr ""
2253
-
2254
- #: includes/admin/core/class-admin-settings.php:543
2255
- msgid "Password is required?"
2256
- msgstr ""
2257
-
2258
- #: includes/admin/core/class-admin-settings.php:544
2259
- msgid "Password is required to save account data."
2260
- msgstr ""
2261
-
2262
- #: includes/admin/core/class-admin-settings.php:549
2263
- msgid "Allow users to hide their profiles from directory"
2264
- msgstr ""
2265
-
2266
- #: includes/admin/core/class-admin-settings.php:550
2267
- msgid ""
2268
- "Whether to allow users changing their profile visibility from member "
2269
- "directory in account page."
2270
- msgstr ""
2271
-
2272
- #: includes/admin/core/class-admin-settings.php:555
2273
- msgid "Require a strong password?"
2274
- msgstr ""
2275
-
2276
- #: includes/admin/core/class-admin-settings.php:556
2277
- msgid ""
2278
- "Enable or disable a strong password rules on account page / change password "
2279
- "tab"
2280
- msgstr ""
2281
-
2282
- #: includes/admin/core/class-admin-settings.php:561
2283
- msgid "Uploads"
2284
- msgstr ""
2285
-
2286
- #: includes/admin/core/class-admin-settings.php:567
2287
- msgid "Profile Photo Maximum File Size (bytes)"
2288
- msgstr ""
2289
-
2290
- #: includes/admin/core/class-admin-settings.php:568
2291
- msgid "Sets a maximum size for the uploaded photo"
2292
- msgstr ""
2293
-
2294
- #: includes/admin/core/class-admin-settings.php:575
2295
- msgid "Cover Photo Maximum File Size (bytes)"
2296
- msgstr ""
2297
-
2298
- #: includes/admin/core/class-admin-settings.php:576
2299
- msgid "Sets a maximum size for the uploaded cover"
2300
- msgstr ""
2301
-
2302
- #: includes/admin/core/class-admin-settings.php:582
2303
- msgid "Profile Photo Thumbnail Sizes (px)"
2304
- msgstr ""
2305
-
2306
- #: includes/admin/core/class-admin-settings.php:583
2307
- msgid ""
2308
- "Here you can define which thumbnail sizes will be created for each profile "
2309
- "photo upload."
2310
- msgstr ""
2311
-
2312
- #: includes/admin/core/class-admin-settings.php:585
2313
- #: includes/admin/core/class-admin-settings.php:595
2314
- msgid "Add New Size"
2315
- msgstr ""
2316
-
2317
- #: includes/admin/core/class-admin-settings.php:592
2318
- msgid "Cover Photo Thumbnail Sizes (px)"
2319
- msgstr ""
2320
-
2321
- #: includes/admin/core/class-admin-settings.php:593
2322
- msgid ""
2323
- "Here you can define which thumbnail sizes will be created for each cover "
2324
- "photo upload."
2325
- msgstr ""
2326
-
2327
- #: includes/admin/core/class-admin-settings.php:603
2328
- msgid "Image Quality"
2329
- msgstr ""
2330
-
2331
- #: includes/admin/core/class-admin-settings.php:604
2332
- msgid ""
2333
- "Quality is used to determine quality of image uploads, and ranges from 0 "
2334
- "(worst quality, smaller file) to 100 (best quality, biggest file). The "
2335
- "default range is 60."
2336
- msgstr ""
2337
-
2338
- #: includes/admin/core/class-admin-settings.php:611
2339
- msgid "Image Upload Maximum Width (px)"
2340
- msgstr ""
2341
-
2342
- #: includes/admin/core/class-admin-settings.php:612
2343
- msgid ""
2344
- "Any image upload above this width will be resized to this limit "
2345
- "automatically."
2346
- msgstr ""
2347
-
2348
- #: includes/admin/core/class-admin-settings.php:619
2349
- msgid "Cover Photo Minimum Width (px)"
2350
- msgstr ""
2351
-
2352
- #: includes/admin/core/class-admin-settings.php:620
2353
- msgid "This will be the minimum width for cover photo uploads"
2354
- msgstr ""
2355
-
2356
- #: includes/admin/core/class-admin-settings.php:627
2357
- msgid "Access"
2358
- msgstr ""
2359
-
2360
- #: includes/admin/core/class-admin-settings.php:630
2361
- msgid "Restriction Content"
2362
- msgstr ""
2363
-
2364
- #: includes/admin/core/class-admin-settings.php:634
2365
- msgid "Other"
2366
- msgstr ""
2367
-
2368
- #: includes/admin/core/class-admin-settings.php:639
2369
- msgid "Enable the Reset Password Limit?"
2370
- msgstr ""
2371
-
2372
- #: includes/admin/core/class-admin-settings.php:644
2373
- msgid "Reset Password Limit"
2374
- msgstr ""
2375
-
2376
- #: includes/admin/core/class-admin-settings.php:645
2377
- msgid ""
2378
- "Set the maximum reset password limit. If reached the maximum limit, user "
2379
- "will be locked from using this."
2380
- msgstr ""
2381
-
2382
- #: includes/admin/core/class-admin-settings.php:653
2383
- msgid "Blocked Email Addresses"
2384
- msgstr ""
2385
-
2386
- #: includes/admin/core/class-admin-settings.php:654
2387
- msgid ""
2388
- "This will block the specified e-mail addresses from being able to sign up or "
2389
- "sign in to your site. To block an entire domain, use something like *@domain."
2390
- "com"
2391
- msgstr ""
2392
-
2393
- #: includes/admin/core/class-admin-settings.php:659
2394
- msgid "Blacklist Words"
2395
- msgstr ""
2396
-
2397
- #: includes/admin/core/class-admin-settings.php:660
2398
- msgid ""
2399
- "This option lets you specify blacklist of words to prevent anyone from "
2400
- "signing up with such a word as their username"
2401
- msgstr ""
2402
-
2403
- #: includes/admin/core/class-admin-settings.php:667
2404
- #: includes/admin/core/list-tables/emails-list-table.php:300
2405
- msgid "Email"
2406
- msgstr ""
2407
-
2408
- #: includes/admin/core/class-admin-settings.php:672
2409
- msgid "Admin E-mail Address"
2410
- msgstr ""
2411
-
2412
- #: includes/admin/core/class-admin-settings.php:673
2413
- #: includes/admin/core/class-admin-settings.php:685
2414
- msgid "e.g. admin@companyname.com"
2415
- msgstr ""
2416
-
2417
- #: includes/admin/core/class-admin-settings.php:678
2418
- msgid "Mail appears from"
2419
- msgstr ""
2420
-
2421
- #: includes/admin/core/class-admin-settings.php:679
2422
- msgid "e.g. Site Name"
2423
- msgstr ""
2424
-
2425
- #: includes/admin/core/class-admin-settings.php:684
2426
- msgid "Mail appears from address"
2427
- msgstr ""
2428
-
2429
- #: includes/admin/core/class-admin-settings.php:690
2430
- msgid "Use HTML for E-mails?"
2431
- msgstr ""
2432
-
2433
- #: includes/admin/core/class-admin-settings.php:691
2434
- msgid ""
2435
- "If you plan use e-mails with HTML, please make sure that this option is "
2436
- "enabled. Otherwise, HTML will be displayed as plain text."
2437
- msgstr ""
2438
-
2439
- #: includes/admin/core/class-admin-settings.php:696
2440
- msgid "Appearance"
2441
- msgstr ""
2442
-
2443
- #: includes/admin/core/class-admin-settings.php:699
2444
- msgid "Profile"
2445
- msgstr ""
2446
-
2447
- #: includes/admin/core/class-admin-settings.php:704
2448
- msgid "Profile Default Template"
2449
- msgstr ""
2450
-
2451
- #: includes/admin/core/class-admin-settings.php:705
2452
- msgid "This will be the default template to output profile"
2453
- msgstr ""
2454
-
2455
- #: includes/admin/core/class-admin-settings.php:713
2456
- msgid "Profile Maximum Width"
2457
- msgstr ""
2458
-
2459
- #: includes/admin/core/class-admin-settings.php:722
2460
- msgid "Profile Area Maximum Width"
2461
- msgstr ""
2462
-
2463
- #: includes/admin/core/class-admin-settings.php:724
2464
- #: includes/admin/templates/form/profile_customize.php:59
2465
- msgid ""
2466
- "The maximum width of the profile area inside profile (below profile header)"
2467
- msgstr ""
2468
-
2469
- #: includes/admin/core/class-admin-settings.php:730
2470
- msgid "Profile Field Icons"
2471
- msgstr ""
2472
-
2473
- #: includes/admin/core/class-admin-settings.php:731
2474
- msgid "This is applicable for edit mode only"
2475
- msgstr ""
2476
-
2477
- #: includes/admin/core/class-admin-settings.php:734
2478
- #: includes/admin/core/class-admin-settings.php:936
2479
- #: includes/admin/core/class-admin-settings.php:1026
2480
- #: includes/admin/templates/form/login_customize.php:43
2481
- #: includes/admin/templates/form/profile_customize.php:70
2482
- #: includes/admin/templates/form/register_customize.php:58
2483
- msgid "Show inside text field"
2484
- msgstr ""
2485
-
2486
- #: includes/admin/core/class-admin-settings.php:735
2487
- #: includes/admin/core/class-admin-settings.php:937
2488
- #: includes/admin/core/class-admin-settings.php:1027
2489
- #: includes/admin/templates/form/login_customize.php:44
2490
- #: includes/admin/templates/form/profile_customize.php:71
2491
- #: includes/admin/templates/form/register_customize.php:59
2492
- msgid "Show with label"
2493
- msgstr ""
2494
-
2495
- #: includes/admin/core/class-admin-settings.php:736
2496
- #: includes/admin/core/class-admin-settings.php:938
2497
- #: includes/admin/core/class-admin-settings.php:1028
2498
- #: includes/admin/templates/form/login_customize.php:45
2499
- #: includes/admin/templates/form/profile_customize.php:72
2500
- #: includes/admin/templates/form/register_customize.php:60
2501
- msgid "Turn off"
2502
- msgstr ""
2503
-
2504
- #: includes/admin/core/class-admin-settings.php:743
2505
- msgid "Profile Primary Button Text"
2506
- msgstr ""
2507
-
2508
- #: includes/admin/core/class-admin-settings.php:745
2509
- msgid "The text that is used for updating profile button"
2510
- msgstr ""
2511
-
2512
- #: includes/admin/core/class-admin-settings.php:751
2513
- msgid "Profile Secondary Button"
2514
- msgstr ""
2515
-
2516
- #: includes/admin/core/class-admin-settings.php:753
2517
- #: includes/admin/core/class-admin-settings.php:955
2518
- #: includes/admin/core/class-admin-settings.php:1045
2519
- msgid "Switch on/off the secondary button display in the form"
2520
- msgstr ""
2521
-
2522
- #: includes/admin/core/class-admin-settings.php:758
2523
- msgid "Profile Secondary Button Text"
2524
- msgstr ""
2525
-
2526
- #: includes/admin/core/class-admin-settings.php:760
2527
- msgid "The text that is used for cancelling update profile button"
2528
- msgstr ""
2529
-
2530
- #: includes/admin/core/class-admin-settings.php:767
2531
- msgid "Default Profile Photo"
2532
- msgstr ""
2533
-
2534
- #: includes/admin/core/class-admin-settings.php:768
2535
- msgid ""
2536
- "You can change the default profile picture globally here. Please make sure "
2537
- "that the photo is 300x300px."
2538
- msgstr ""
2539
-
2540
- #: includes/admin/core/class-admin-settings.php:769
2541
- msgid "Select Default Profile Photo"
2542
- msgstr ""
2543
-
2544
- #: includes/admin/core/class-admin-settings.php:779
2545
- msgid "Default Cover Photo"
2546
- msgstr ""
2547
-
2548
- #: includes/admin/core/class-admin-settings.php:780
2549
- msgid ""
2550
- "You can change the default cover photo globally here. Please make sure that "
2551
- "the default cover is large enough and respects the ratio you are using for "
2552
- "cover photos."
2553
- msgstr ""
2554
-
2555
- #: includes/admin/core/class-admin-settings.php:781
2556
- msgid "Select Default Cover Photo"
2557
- msgstr ""
2558
-
2559
- #: includes/admin/core/class-admin-settings.php:786
2560
- #: includes/admin/templates/form/profile_customize.php:131
2561
- msgid "Disable Profile Photo Upload"
2562
- msgstr ""
2563
-
2564
- #: includes/admin/core/class-admin-settings.php:787
2565
- #: includes/admin/templates/form/profile_customize.php:132
2566
- msgid "Switch on/off the profile photo uploader"
2567
- msgstr ""
2568
-
2569
- #: includes/admin/core/class-admin-settings.php:792
2570
- #: includes/admin/templates/form/profile_customize.php:143
2571
- msgid "Profile Photo Size"
2572
- msgstr ""
2573
-
2574
- #: includes/admin/core/class-admin-settings.php:794
2575
- msgid ""
2576
- "The global default of profile photo size. This can be overridden by "
2577
- "individual form settings"
2578
- msgstr ""
2579
-
2580
- #: includes/admin/core/class-admin-settings.php:800
2581
- msgid "Profile Cover Photos"
2582
- msgstr ""
2583
-
2584
- #: includes/admin/core/class-admin-settings.php:802
2585
- msgid "Switch on/off the profile cover photos"
2586
- msgstr ""
2587
-
2588
- #: includes/admin/core/class-admin-settings.php:807
2589
- msgid "Profile Cover Ratio"
2590
- msgstr ""
2591
-
2592
- #: includes/admin/core/class-admin-settings.php:808
2593
- msgid "Choose global ratio for cover photos of profiles"
2594
- msgstr ""
2595
-
2596
- #: includes/admin/core/class-admin-settings.php:822
2597
- msgid "Profile Header Meta Text Icon"
2598
- msgstr ""
2599
-
2600
- #: includes/admin/core/class-admin-settings.php:824
2601
- msgid "Display field icons for related user meta fields in header or not"
2602
- msgstr ""
2603
-
2604
- #: includes/admin/core/class-admin-settings.php:829
2605
- msgid "Show display name in profile header"
2606
- msgstr ""
2607
-
2608
- #: includes/admin/core/class-admin-settings.php:831
2609
- msgid "Switch on/off the user name on profile header"
2610
- msgstr ""
2611
-
2612
- #: includes/admin/core/class-admin-settings.php:836
2613
- msgid "Show social links in profile header"
2614
- msgstr ""
2615
-
2616
- #: includes/admin/core/class-admin-settings.php:838
2617
- msgid "Switch on/off the social links on profile header"
2618
- msgstr ""
2619
-
2620
- #: includes/admin/core/class-admin-settings.php:843
2621
- msgid "Show user description in header"
2622
- msgstr ""
2623
-
2624
- #: includes/admin/core/class-admin-settings.php:845
2625
- msgid "Switch on/off the user description on profile header"
2626
- msgstr ""
2627
-
2628
- #: includes/admin/core/class-admin-settings.php:850
2629
- msgid "Enable html support for user description"
2630
- msgstr ""
2631
-
2632
- #: includes/admin/core/class-admin-settings.php:852
2633
- msgid ""
2634
- "Switch on/off to enable/disable support for html tags on user description."
2635
- msgstr ""
2636
-
2637
- #: includes/admin/core/class-admin-settings.php:857
2638
- msgid "User description maximum chars"
2639
- msgstr ""
2640
-
2641
- #: includes/admin/core/class-admin-settings.php:859
2642
- msgid ""
2643
- "Maximum number of characters to allow in user description field in header."
2644
- msgstr ""
2645
-
2646
- #: includes/admin/core/class-admin-settings.php:866
2647
- msgid "Profile Header Menu Position"
2648
- msgstr ""
2649
-
2650
- #: includes/admin/core/class-admin-settings.php:868
2651
- msgid ""
2652
- "For incompatible themes, please make the menu open from left instead of "
2653
- "bottom by default."
2654
- msgstr ""
2655
-
2656
- #: includes/admin/core/class-admin-settings.php:870
2657
- msgid "Bottom of Icon"
2658
- msgstr ""
2659
-
2660
- #: includes/admin/core/class-admin-settings.php:871
2661
- msgid "Left of Icon (right for RTL)"
2662
- msgstr ""
2663
-
2664
- #: includes/admin/core/class-admin-settings.php:878
2665
- msgid "Show a custom message if profile is empty"
2666
- msgstr ""
2667
-
2668
- #: includes/admin/core/class-admin-settings.php:880
2669
- msgid "Switch on/off the custom message that appears when the profile is empty"
2670
- msgstr ""
2671
-
2672
- #: includes/admin/core/class-admin-settings.php:885
2673
- msgid "Show the emoticon"
2674
- msgstr ""
2675
-
2676
- #: includes/admin/core/class-admin-settings.php:887
2677
- msgid "Switch on/off the emoticon (sad face) that appears above the message"
2678
- msgstr ""
2679
-
2680
- #: includes/admin/core/class-admin-settings.php:893
2681
- msgid "Profile Menu"
2682
- msgstr ""
2683
-
2684
- #: includes/admin/core/class-admin-settings.php:897
2685
- #: includes/admin/templates/form/mode.php:12
2686
- msgid "Registration Form"
2687
- msgstr ""
2688
-
2689
- #: includes/admin/core/class-admin-settings.php:902
2690
- msgid "Registration Default Template"
2691
- msgstr ""
2692
-
2693
- #: includes/admin/core/class-admin-settings.php:903
2694
- msgid "This will be the default template to output registration"
2695
- msgstr ""
2696
-
2697
- #: includes/admin/core/class-admin-settings.php:911
2698
- msgid "Registration Maximum Width"
2699
- msgstr ""
2700
-
2701
- #: includes/admin/core/class-admin-settings.php:913
2702
- #: includes/admin/core/class-admin-settings.php:1003
2703
- msgid "The maximum width this shortcode can take from the page width"
2704
- msgstr ""
2705
-
2706
- #: includes/admin/core/class-admin-settings.php:919
2707
- msgid "Registration Shortcode Alignment"
2708
- msgstr ""
2709
-
2710
- #: includes/admin/core/class-admin-settings.php:920
2711
- #: includes/admin/core/class-admin-settings.php:1010
2712
- #: includes/admin/templates/form/profile_customize.php:118
2713
- msgid "The shortcode is centered by default unless you specify otherwise here"
2714
- msgstr ""
2715
-
2716
- #: includes/admin/core/class-admin-settings.php:923
2717
- #: includes/admin/core/class-admin-settings.php:1013
2718
- msgid "Centered"
2719
- msgstr ""
2720
-
2721
- #: includes/admin/core/class-admin-settings.php:924
2722
- #: includes/admin/core/class-admin-settings.php:1014
2723
- msgid "Left aligned"
2724
- msgstr ""
2725
-
2726
- #: includes/admin/core/class-admin-settings.php:925
2727
- #: includes/admin/core/class-admin-settings.php:1015
2728
- msgid "Right aligned"
2729
- msgstr ""
2730
-
2731
- #: includes/admin/core/class-admin-settings.php:932
2732
- msgid "Registration Field Icons"
2733
- msgstr ""
2734
-
2735
- #: includes/admin/core/class-admin-settings.php:933
2736
- msgid "This controls the display of field icons in the registration form"
2737
- msgstr ""
2738
-
2739
- #: includes/admin/core/class-admin-settings.php:945
2740
- msgid "Registration Primary Button Text"
2741
- msgstr ""
2742
-
2743
- #: includes/admin/core/class-admin-settings.php:947
2744
- #: includes/admin/core/class-admin-settings.php:1037
2745
- msgid "The text that is used for primary button text"
2746
- msgstr ""
2747
-
2748
- #: includes/admin/core/class-admin-settings.php:953
2749
- msgid "Registration Secondary Button"
2750
- msgstr ""
2751
-
2752
- #: includes/admin/core/class-admin-settings.php:960
2753
- msgid "Registration Secondary Button Text"
2754
- msgstr ""
2755
-
2756
- #: includes/admin/core/class-admin-settings.php:962
2757
- #: includes/admin/core/class-admin-settings.php:1052
2758
- msgid "The text that is used for the secondary button text"
2759
- msgstr ""
2760
-
2761
- #: includes/admin/core/class-admin-settings.php:969
2762
- msgid "Registration Secondary Button URL"
2763
- msgstr ""
2764
-
2765
- #: includes/admin/core/class-admin-settings.php:971
2766
- #: includes/admin/core/class-admin-settings.php:1061
2767
- msgid "You can replace default link for this button by entering custom URL"
2768
- msgstr ""
2769
-
2770
- #: includes/admin/core/class-admin-settings.php:978
2771
- msgid "Registration Default Role"
2772
- msgstr ""
2773
-
2774
- #: includes/admin/core/class-admin-settings.php:979
2775
- msgid ""
2776
- "This will be the default role assigned to users registering thru "
2777
- "registration form"
2778
- msgstr ""
2779
-
2780
- #: includes/admin/core/class-admin-settings.php:987
2781
- #: includes/admin/templates/form/mode.php:16
2782
- msgid "Login Form"
2783
- msgstr ""
2784
-
2785
- #: includes/admin/core/class-admin-settings.php:992
2786
- msgid "Login Default Template"
2787
- msgstr ""
2788
-
2789
- #: includes/admin/core/class-admin-settings.php:993
2790
- msgid "This will be the default template to output login"
2791
- msgstr ""
2792
-
2793
- #: includes/admin/core/class-admin-settings.php:1001
2794
- msgid "Login Maximum Width"
2795
- msgstr ""
2796
-
2797
- #: includes/admin/core/class-admin-settings.php:1009
2798
- msgid "Login Shortcode Alignment"
2799
- msgstr ""
2800
-
2801
- #: includes/admin/core/class-admin-settings.php:1022
2802
- msgid "Login Field Icons"
2803
- msgstr ""
2804
-
2805
- #: includes/admin/core/class-admin-settings.php:1023
2806
- msgid "This controls the display of field icons in the login form"
2807
- msgstr ""
2808
-
2809
- #: includes/admin/core/class-admin-settings.php:1035
2810
- msgid "Login Primary Button Text"
2811
- msgstr ""
2812
-
2813
- #: includes/admin/core/class-admin-settings.php:1043
2814
- msgid "Login Secondary Button"
2815
- msgstr ""
2816
-
2817
- #: includes/admin/core/class-admin-settings.php:1050
2818
- msgid "Login Secondary Button Text"
2819
- msgstr ""
2820
-
2821
- #: includes/admin/core/class-admin-settings.php:1059
2822
- msgid "Login Secondary Button URL"
2823
- msgstr ""
2824
-
2825
- #: includes/admin/core/class-admin-settings.php:1068
2826
- msgid "Login Forgot Password Link"
2827
- msgstr ""
2828
-
2829
- #: includes/admin/core/class-admin-settings.php:1070
2830
- msgid "Switch on/off the forgot password link in login form"
2831
- msgstr ""
2832
-
2833
- #: includes/admin/core/class-admin-settings.php:1075
2834
- msgid "Show \"Remember Me\""
2835
- msgstr ""
2836
-
2837
- #: includes/admin/core/class-admin-settings.php:1077
2838
- msgid ""
2839
- "Allow users to choose If they want to stay signed in even after closing the "
2840
- "browser. If you do not show this option, the default will be to not remember "
2841
- "login session."
2842
- msgstr ""
2843
-
2844
- #: includes/admin/core/class-admin-settings.php:1087
2845
- msgid "Licenses"
2846
- msgstr ""
2847
-
2848
- #: includes/admin/core/class-admin-settings.php:1090
2849
- msgid "Misc"
2850
- msgstr ""
2851
-
2852
- #: includes/admin/core/class-admin-settings.php:1095
2853
- msgid "Show an asterisk for required fields"
2854
- msgstr ""
2855
-
2856
- #: includes/admin/core/class-admin-settings.php:1100
2857
- msgid "User Profile Title"
2858
- msgstr ""
2859
-
2860
- #: includes/admin/core/class-admin-settings.php:1101
2861
- msgid "This is the title that is displayed on a specific user profile"
2862
- msgstr ""
2863
-
2864
- #: includes/admin/core/class-admin-settings.php:1107
2865
- msgid "User Profile Dynamic Meta Description"
2866
- msgstr ""
2867
-
2868
- #: includes/admin/core/class-admin-settings.php:1108
2869
- msgid ""
2870
- "This will be used in the meta description that is available for search-"
2871
- "engines."
2872
- msgstr ""
2873
-
2874
- #: includes/admin/core/class-admin-settings.php:1116
2875
- msgid "Disable Cache User Profile"
2876
- msgstr ""
2877
-
2878
- #: includes/admin/core/class-admin-settings.php:1117
2879
- msgid ""
2880
- "Check this box if you would like to disable Ultimate Member user's cache."
2881
- msgstr ""
2882
-
2883
- #: includes/admin/core/class-admin-settings.php:1122
2884
- msgid "Enable Gutenberg Blocks"
2885
- msgstr ""
2886
-
2887
- #: includes/admin/core/class-admin-settings.php:1123
2888
- msgid ""
2889
- "Check this box if you would like to use Ultimate Member blocks in Gutenberg "
2890
- "editor. Important some themes have the conflicts with Gutenberg editor."
2891
- msgstr ""
2892
-
2893
- #: includes/admin/core/class-admin-settings.php:1128
2894
- msgid "REST API version"
2895
- msgstr ""
2896
-
2897
- #: includes/admin/core/class-admin-settings.php:1129
2898
- msgid ""
2899
- "This controls the REST API version, we recommend to use the last version"
2900
- msgstr ""
2901
-
2902
- #: includes/admin/core/class-admin-settings.php:1131
2903
- msgid "1.0 version"
2904
- msgstr ""
2905
-
2906
- #: includes/admin/core/class-admin-settings.php:1132
2907
- msgid "2.0 version"
2908
- msgstr ""
2909
-
2910
- #: includes/admin/core/class-admin-settings.php:1138
2911
- msgid "Remove Data on Uninstall?"
2912
- msgstr ""
2913
-
2914
- #: includes/admin/core/class-admin-settings.php:1139
2915
- msgid ""
2916
- "Check this box if you would like Ultimate Member to completely remove all of "
2917
- "its data when the plugin/extensions are deleted."
2918
- msgstr ""
2919
-
2920
- #: includes/admin/core/class-admin-settings.php:1144
2921
- msgid "Install Info"
2922
- msgstr ""
2923
-
2924
- #: includes/admin/core/class-admin-settings.php:1261
2925
- msgid "Ultimate Member - Settings"
2926
- msgstr ""
2927
-
2928
- #: includes/admin/core/class-admin-settings.php:1391
2929
- msgid "Save Changes"
2930
- msgstr ""
2931
-
2932
- #: includes/admin/core/class-admin-settings.php:1845
2933
- msgid "Subject Line"
2934
- msgstr ""
2935
-
2936
- #: includes/admin/core/class-admin-settings.php:1847
2937
- msgid "This is the subject line of the e-mail"
2938
- msgstr ""
2939
-
2940
- #: includes/admin/core/class-admin-settings.php:1852
2941
- msgid "Message Body"
2942
- msgstr ""
2943
-
2944
- #: includes/admin/core/class-admin-settings.php:1854
2945
- msgid "This is the content of the e-mail"
2946
- msgstr ""
2947
-
2948
- #: includes/admin/core/class-admin-settings.php:1904
2949
- #: includes/admin/core/class-admin-settings.php:2014
2950
- #, php-format
2951
- msgid ""
2952
- "Your license key expired on %s. Please <a href=\"%s\" target=\"_blank"
2953
- "\">renew your license key</a>."
2954
- msgstr ""
2955
-
2956
- #: includes/admin/core/class-admin-settings.php:1917
2957
- #: includes/admin/core/class-admin-settings.php:2027
2958
- #, php-format
2959
- msgid ""
2960
- "Your license key has been disabled. Please <a href=\"%s\" target=\"_blank"
2961
- "\">contact support</a> for more information."
2962
- msgstr ""
2963
-
2964
- #: includes/admin/core/class-admin-settings.php:1929
2965
- #: includes/admin/core/class-admin-settings.php:2039
2966
- #, php-format
2967
- msgid ""
2968
- "Invalid license. Please <a href=\"%s\" target=\"_blank\">visit your account "
2969
- "page</a> and verify it."
2970
- msgstr ""
2971
-
2972
- #: includes/admin/core/class-admin-settings.php:1942
2973
- #: includes/admin/core/class-admin-settings.php:2052
2974
- #, php-format
2975
- msgid ""
2976
- "Your %s is not active for this URL. Please <a href=\"%s\" target=\"_blank"
2977
- "\">visit your account page</a> to manage your license key URLs."
2978
- msgstr ""
2979
-
2980
- #: includes/admin/core/class-admin-settings.php:1954
2981
- #: includes/admin/core/class-admin-settings.php:2064
2982
- #, php-format
2983
- msgid "This appears to be an invalid license key for %s."
2984
- msgstr ""
2985
-
2986
- #: includes/admin/core/class-admin-settings.php:1963
2987
- #: includes/admin/core/class-admin-settings.php:2073
2988
- #, php-format
2989
- msgid ""
2990
- "Your license key has reached its activation limit. <a href=\"%s\">View "
2991
- "possible upgrades</a> now."
2992
- msgstr ""
2993
-
2994
- #: includes/admin/core/class-admin-settings.php:1972
2995
- #: includes/admin/core/class-admin-settings.php:2082
2996
- msgid ""
2997
- "The key you entered belongs to a bundle, please use the product specific "
2998
- "license key."
2999
- msgstr ""
3000
-
3001
- #: includes/admin/core/class-admin-settings.php:1980
3002
- #: includes/admin/core/class-admin-settings.php:1988
3003
- #: includes/admin/core/class-admin-settings.php:2000
3004
- msgid "unknown_error"
3005
- msgstr ""
3006
-
3007
- #: includes/admin/core/class-admin-settings.php:1981
3008
- #: includes/admin/core/class-admin-settings.php:1989
3009
- #, php-format
3010
- msgid ""
3011
- "There was an error with this license key: %s. Please <a href=\"%s\">contact "
3012
- "our support team</a>."
3013
- msgstr ""
3014
-
3015
- #: includes/admin/core/class-admin-settings.php:2002
3016
- #, php-format
3017
- msgid ""
3018
- "There was an error with this license key: %s%s. Please <a href=\"%s"
3019
- "\">contact our support team</a>."
3020
- msgstr ""
3021
-
3022
- #: includes/admin/core/class-admin-settings.php:2097
3023
- msgid "License key never expires."
3024
- msgstr ""
3025
-
3026
- #: includes/admin/core/class-admin-settings.php:2104
3027
- #, php-format
3028
- msgid ""
3029
- "Your license key expires soon! It expires on %s. <a href=\"%s\" target="
3030
- "\"_blank\">Renew your license key</a>."
3031
- msgstr ""
3032
-
3033
- #: includes/admin/core/class-admin-settings.php:2114
3034
- #, php-format
3035
- msgid "Your license key expires on %s."
3036
- msgstr ""
3037
-
3038
- #: includes/admin/core/class-admin-settings.php:2132
3039
- #, php-format
3040
- msgid "To receive updates, please enter your valid %s license key."
3041
- msgstr ""
3042
-
3043
- #: includes/admin/core/class-admin-settings.php:2154
3044
- msgid "Clear License"
3045
- msgstr ""
3046
-
3047
- #: includes/admin/core/class-admin-settings.php:2156
3048
- msgid "Activate"
3049
- msgstr ""
3050
-
3051
- #: includes/admin/core/class-admin-settings.php:2158
3052
- msgid "Re-Activate"
3053
- msgstr ""
3054
-
3055
- #: includes/admin/core/class-admin-settings.php:2210
3056
- msgid ""
3057
- "To copy the Install info, click below then press Ctrl + C (PC) or Cmd + C "
3058
- "(Mac)."
3059
- msgstr ""
3060
-
3061
- #: includes/admin/core/class-admin-upgrade.php:131
3062
- #, php-format
3063
- msgid ""
3064
- "%s is a major update, and we highly recommend creating a full backup of your "
3065
- "site before updating."
3066
- msgstr ""
3067
-
3068
- #: includes/admin/core/class-admin-upgrade.php:237
3069
- msgid "Upgrade"
3070
- msgstr ""
3071
-
3072
- #: includes/admin/core/class-admin-upgrade.php:245
3073
- msgid "empty"
3074
- msgstr ""
3075
-
3076
- #: includes/admin/core/class-admin-upgrade.php:248
3077
- #, php-format
3078
- msgid "%s - Upgrade Process"
3079
- msgstr ""
3080
-
3081
- #: includes/admin/core/class-admin-upgrade.php:249
3082
- #, php-format
3083
- msgid ""
3084
- "You have installed %s version. Your latest DB version is %s. Before the "
3085
- "click to \"Run\" button make sure that did the following:"
3086
- msgstr ""
3087
-
3088
- #: includes/admin/core/class-admin-upgrade.php:251
3089
- msgid "Create full site's backup."
3090
- msgstr ""
3091
-
3092
- #: includes/admin/core/class-admin-upgrade.php:252
3093
- msgid "Set maintenance mode (if you need)"
3094
- msgstr ""
3095
-
3096
- #: includes/admin/core/class-admin-upgrade.php:253
3097
- msgid "You have nice Internet connection"
3098
- msgstr ""
3099
-
3100
- #: includes/admin/core/class-admin-upgrade.php:255
3101
- msgid ""
3102
- "After the click to \"Run\" button, the update process will be started. All "
3103
- "information will be displayed in \"Upgrade Log\" field."
3104
- msgstr ""
3105
-
3106
- #: includes/admin/core/class-admin-upgrade.php:256
3107
- msgid ""
3108
- "If the update was successful, you will see a corresponding message. "
3109
- "Otherwise, contact technical support if the update failed."
3110
- msgstr ""
3111
-
3112
- #: includes/admin/core/class-admin-upgrade.php:257
3113
- msgid "Upgrade Log"
3114
- msgstr ""
3115
-
3116
- #: includes/admin/core/class-admin-upgrade.php:260
3117
- msgid "Run"
3118
- msgstr ""
3119
-
3120
- #: includes/admin/core/class-admin-users.php:117
3121
- #: includes/admin/core/class-admin-users.php:120
3122
- msgid "UM Action"
3123
- msgstr ""
3124
-
3125
- #: includes/admin/core/class-admin-users.php:124
3126
- #: includes/core/class-fields.php:2474
3127
- msgid "Apply"
3128
- msgstr ""
3129
-
3130
- #: includes/admin/core/class-admin-users.php:166
3131
- #: includes/core/um-filters-user.php:20 includes/core/um-filters-user.php:25
3132
- msgid "Approve Membership"
3133
- msgstr ""
3134
-
3135
- #: includes/admin/core/class-admin-users.php:169
3136
- #: includes/core/um-filters-user.php:21
3137
- msgid "Reject Membership"
3138
- msgstr ""
3139
-
3140
- #: includes/admin/core/class-admin-users.php:172
3141
- #: includes/core/um-filters-user.php:29
3142
- msgid "Put as Pending Review"
3143
- msgstr ""
3144
-
3145
- #: includes/admin/core/class-admin-users.php:175
3146
- #: includes/core/um-filters-user.php:33
3147
- msgid "Resend Activation E-mail"
3148
- msgstr ""
3149
-
3150
- #: includes/admin/core/class-admin-users.php:178
3151
- msgid "Deactivate"
3152
- msgstr ""
3153
-
3154
- #: includes/admin/core/class-admin-users.php:181
3155
- msgid "Reactivate"
3156
- msgstr ""
3157
-
3158
- #: includes/admin/core/class-admin-users.php:204 templates/account.php:43
3159
- #: templates/account.php:84
3160
- msgid "View profile"
3161
- msgstr ""
3162
-
3163
- #: includes/admin/core/class-admin-users.php:209
3164
- msgid "Info"
3165
- msgstr ""
3166
-
3167
- #: includes/admin/core/class-admin-users.php:314
3168
- #: includes/admin/templates/dashboard/users.php:28
3169
- #: includes/core/class-user.php:831
3170
- msgid "Approved"
3171
- msgstr ""
3172
-
3173
- #: includes/admin/core/class-admin-users.php:315
3174
- msgid "Pending review"
3175
- msgstr ""
3176
-
3177
- #: includes/admin/core/class-admin-users.php:316
3178
- msgid "Waiting e-mail confirmation"
3179
- msgstr ""
3180
-
3181
- #: includes/admin/core/class-admin-users.php:317
3182
- #: includes/admin/templates/dashboard/users.php:86
3183
- msgid "Inactive"
3184
- msgstr ""
3185
-
3186
- #: includes/admin/core/class-admin-users.php:318
3187
- #: includes/admin/templates/dashboard/users.php:41
3188
- msgid "Rejected"
3189
- msgstr ""
3190
-
3191
- #: includes/admin/core/class-admin-users.php:381
3192
- msgid "You do not have enough permissions to do that."
3193
- msgstr ""
3194
-
3195
- #: includes/admin/core/list-tables/emails-list-table.php:70
3196
- #: includes/admin/core/list-tables/roles-list-table.php:176
3197
- msgid "item"
3198
- msgstr ""
3199
-
3200
- #: includes/admin/core/list-tables/emails-list-table.php:71
3201
- #: includes/admin/core/list-tables/roles-list-table.php:177
3202
- msgid "items"
3203
- msgstr ""
3204
-
3205
- #: includes/admin/core/list-tables/emails-list-table.php:75
3206
- #: includes/admin/core/list-tables/roles-list-table.php:181
3207
- msgid "not found."
3208
- msgstr ""
3209
-
3210
- #: includes/admin/core/list-tables/emails-list-table.php:237
3211
- msgid "Member"
3212
- msgstr ""
3213
-
3214
- #: includes/admin/core/list-tables/emails-list-table.php:270
3215
- msgid "Email Notification"
3216
- msgstr ""
3217
-
3218
- #: includes/admin/core/list-tables/emails-list-table.php:271
3219
- msgid "Email Notifications"
3220
- msgstr ""
3221
-
3222
- #: includes/admin/core/list-tables/emails-list-table.php:301
3223
- msgid "Recipient(s)"
3224
- msgstr ""
3225
-
3226
- #: includes/admin/core/list-tables/emails-list-table.php:314
3227
- #, php-format
3228
- msgid ""
3229
- "You may get more details about email notifications customization <a href=\"%s"
3230
- "\">here</a>"
3231
- msgstr ""
3232
-
3233
- #: includes/admin/core/list-tables/roles-list-table.php:22
3234
- #: includes/admin/core/list-tables/roles-list-table.php:89
3235
- #: includes/admin/core/list-tables/roles-list-table.php:402
3236
- msgid "Roles"
3237
- msgstr ""
3238
-
3239
- #: includes/admin/core/list-tables/roles-list-table.php:339
3240
- msgid "Edit"
3241
- msgstr ""
3242
-
3243
- #: includes/admin/core/list-tables/roles-list-table.php:342
3244
- msgid "Are you sure you want to delete this role?"
3245
- msgstr ""
3246
-
3247
- #: includes/admin/core/list-tables/roles-list-table.php:347
3248
- msgid "Are you sure you want to reset UM role meta?"
3249
- msgstr ""
3250
-
3251
- #: includes/admin/core/list-tables/roles-list-table.php:347
3252
- msgid "Reset UM Role meta"
3253
- msgstr ""
3254
-
3255
- #: includes/admin/core/list-tables/roles-list-table.php:401
3256
- msgid "Role"
3257
- msgstr ""
3258
-
3259
- #: includes/admin/core/list-tables/roles-list-table.php:414
3260
- msgid "Role Title"
3261
- msgstr ""
3262
-
3263
- #: includes/admin/core/list-tables/roles-list-table.php:415
3264
- msgid "Role ID"
3265
- msgstr ""
3266
-
3267
- #: includes/admin/core/list-tables/roles-list-table.php:416
3268
- msgid "No.of Members"
3269
- msgstr ""
3270
-
3271
- #: includes/admin/core/list-tables/roles-list-table.php:417
3272
- msgid "UM Custom Role"
3273
- msgstr ""
3274
-
3275
- #: includes/admin/core/list-tables/roles-list-table.php:418
3276
- msgid "WP-Admin Access"
3277
- msgstr ""
3278
-
3279
- #: includes/admin/core/list-tables/roles-list-table.php:419
3280
- msgid "Priority"
3281
- msgstr ""
3282
-
3283
- #: includes/admin/core/list-tables/roles-list-table.php:485
3284
- #: includes/admin/core/packages/2.0-beta1/user_roles.php:14
3285
- #: includes/admin/templates/role/role-edit.php:153
3286
- #: includes/core/class-common.php:56 includes/core/class-common.php:86
3287
- msgid "Add New"
3288
- msgstr ""
3289
-
3290
- #: includes/admin/core/list-tables/roles-list-table.php:492
3291
- msgid "User Role <strong>Deleted</strong> Successfully."
3292
- msgstr ""
3293
-
3294
- #: includes/admin/core/packages/2.0-beta1/functions.php:8
3295
- #: includes/admin/core/packages/2.0.10/functions.php:8
3296
- msgid "Styles was upgraded successfully"
3297
- msgstr ""
3298
-
3299
- #: includes/admin/core/packages/2.0-beta1/functions.php:21
3300
- msgid "User Roles was upgraded successfully"
3301
- msgstr ""
3302
-
3303
- #: includes/admin/core/packages/2.0-beta1/functions.php:89
3304
- #, php-format
3305
- msgid "Users from %s to %s was upgraded successfully..."
3306
- msgstr ""
3307
-
3308
- #: includes/admin/core/packages/2.0-beta1/functions.php:113
3309
- msgid "Settings was upgraded successfully"
3310
- msgstr ""
3311
-
3312
- #: includes/admin/core/packages/2.0-beta1/functions.php:123
3313
- msgid "Menus settings was upgraded successfully"
3314
- msgstr ""
3315
-
3316
- #: includes/admin/core/packages/2.0-beta1/functions.php:133
3317
- msgid "Mailchimp Lists was upgraded successfully"
3318
- msgstr ""
3319
-
3320
- #: includes/admin/core/packages/2.0-beta1/functions.php:143
3321
- msgid "Social login forms was upgraded successfully"
3322
- msgstr ""
3323
-
3324
- #: includes/admin/core/packages/2.0-beta1/functions.php:153
3325
- msgid "UM Custom Posts was upgraded successfully"
3326
- msgstr ""
3327
-
3328
- #: includes/admin/core/packages/2.0-beta1/functions.php:170
3329
- msgid "Forums are ready for upgrade"
3330
- msgstr ""
3331
-
3332
- #: includes/admin/core/packages/2.0-beta1/functions.php:225
3333
- #, php-format
3334
- msgid "Forums from %s to %s was upgraded successfully..."
3335
- msgstr ""
3336
-
3337
- #: includes/admin/core/packages/2.0-beta1/functions.php:243
3338
- msgid "Woocommerce Products are ready for upgrade"
3339
- msgstr ""
3340
-
3341
- #: includes/admin/core/packages/2.0-beta1/functions.php:319
3342
- #, php-format
3343
- msgid "Woocommerce Products from %s to %s was upgraded successfully..."
3344
- msgstr ""
3345
-
3346
- #: includes/admin/core/packages/2.0-beta1/functions.php:337
3347
- msgid "Email Templates was upgraded successfully"
3348
- msgstr ""
3349
-
3350
- #: includes/admin/core/packages/2.0-beta1/init.php:13
3351
- #: includes/admin/core/packages/2.0.10/init.php:6
3352
- msgid "Upgrade Styles..."
3353
- msgstr ""
3354
-
3355
- #: includes/admin/core/packages/2.0-beta1/init.php:38
3356
- msgid "Upgrade Roles..."
3357
- msgstr ""
3358
-
3359
- #: includes/admin/core/packages/2.0-beta1/init.php:52
3360
- msgid "Upgrade Users..."
3361
- msgstr ""
3362
-
3363
- #: includes/admin/core/packages/2.0-beta1/init.php:73
3364
- msgid "Getting "
3365
- msgstr ""
3366
-
3367
- #: includes/admin/core/packages/2.0-beta1/init.php:73
3368
- #: includes/admin/core/packages/2.0-beta1/init.php:85
3369
- msgid " users..."
3370
- msgstr ""
3371
-
3372
- #: includes/admin/core/packages/2.0-beta1/init.php:85
3373
- msgid "There are "
3374
- msgstr ""
3375
-
3376
- #: includes/admin/core/packages/2.0-beta1/init.php:86
3377
- msgid "Start users upgrading..."
3378
- msgstr ""
3379
-
3380
- #: includes/admin/core/packages/2.0-beta1/init.php:139
3381
- msgid "Upgrade Content Restriction Settings..."
3382
- msgstr ""
3383
-
3384
- #: includes/admin/core/packages/2.0-beta1/init.php:165
3385
- msgid "Upgrade Settings..."
3386
- msgstr ""
3387
-
3388
- #: includes/admin/core/packages/2.0-beta1/init.php:191
3389
- msgid "Upgrade Menu Items..."
3390
- msgstr ""
3391
-
3392
- #: includes/admin/core/packages/2.0-beta1/init.php:217
3393
- msgid "Upgrade Mailchimp Lists..."
3394
- msgstr ""
3395
-
3396
- #: includes/admin/core/packages/2.0-beta1/init.php:243
3397
- msgid "Upgrade Social Login Forms..."
3398
- msgstr ""
3399
-
3400
- #: includes/admin/core/packages/2.0-beta1/init.php:269
3401
- msgid "Upgrade UM Custom Post Types..."
3402
- msgstr ""
3403
-
3404
- #: includes/admin/core/packages/2.0-beta1/init.php:295
3405
- msgid "Upgrade bbPress Forums..."
3406
- msgstr ""
3407
-
3408
- #: includes/admin/core/packages/2.0-beta1/init.php:296
3409
- msgid "Get bbPress Forums count..."
3410
- msgstr ""
3411
-
3412
- #: includes/admin/core/packages/2.0-beta1/init.php:355
3413
- msgid "Upgrade Woocommerce Products..."
3414
- msgstr ""
3415
-
3416
- #: includes/admin/core/packages/2.0-beta1/init.php:356
3417
- msgid "Get all Products..."
3418
- msgstr ""
3419
-
3420
- #: includes/admin/core/packages/2.0-beta1/init.php:417
3421
- msgid "Upgrade Email Templates..."
3422
- msgstr ""
3423
-
3424
- #: includes/admin/core/packages/2.0-beta1/user_roles.php:13
3425
- msgid "User Role"
3426
- msgstr ""
3427
-
3428
- #: includes/admin/core/packages/2.0-beta1/user_roles.php:15
3429
- msgid "Add New User Role"
3430
- msgstr ""
3431
-
3432
- #: includes/admin/core/packages/2.0-beta1/user_roles.php:16
3433
- msgid "Edit User Role"
3434
- msgstr ""
3435
-
3436
- #: includes/admin/core/packages/2.0-beta1/user_roles.php:17
3437
- msgid "You did not create any user roles yet"
3438
- msgstr ""
3439
-
3440
- #: includes/admin/core/packages/2.0-beta1/user_roles.php:18
3441
- #: includes/core/class-common.php:60 includes/core/class-common.php:90
3442
- msgid "Nothing found in Trash"
3443
- msgstr ""
3444
-
3445
- #: includes/admin/core/packages/2.0-beta1/user_roles.php:19
3446
- msgid "Search User Roles"
3447
- msgstr ""
3448
-
3449
- #: includes/admin/core/packages/2.0.10/functions.php:21
3450
- msgid "Users cache was cleared successfully"
3451
- msgstr ""
3452
-
3453
- #: includes/admin/core/packages/2.0.10/init.php:32
3454
- msgid "Clear Users Cache..."
3455
- msgstr ""
3456
-
3457
- #: includes/admin/core/packages/2.0.24/functions.php:11
3458
- msgid "Temporary dir was purged successfully"
3459
- msgstr ""
3460
-
3461
- #: includes/admin/core/packages/2.0.24/init.php:6
3462
- msgid "Purge temp files dir..."
3463
- msgstr ""
3464
-
3465
- #: includes/admin/core/packages/2.0.44/functions.php:13
3466
- msgid "Field was upgraded successfully"
3467
- msgstr ""
3468
-
3469
- #: includes/admin/core/packages/2.0.44/init.php:7
3470
- msgid "Upgrade predefined metafields..."
3471
- msgstr ""
3472
-
3473
- #: includes/admin/core/packages/2.0.54/functions.php:13
3474
- msgid "Roles was upgraded successfully"
3475
- msgstr ""
3476
-
3477
- #: includes/admin/core/packages/2.0.54/init.php:7
3478
- msgid "Upgrade user roles..."
3479
- msgstr ""
3480
-
3481
- #: includes/admin/templates/dashboard/cache.php:12
3482
- msgid "Run this task from time to time to keep your DB clean."
3483
- msgstr ""
3484
-
3485
- #: includes/admin/templates/dashboard/cache.php:15
3486
- #, php-format
3487
- msgid "Clear cache of %s users"
3488
- msgstr ""
3489
-
3490
- #: includes/admin/templates/dashboard/feed.php:7
3491
- msgid "Latest From Ultimate Member"
3492
- msgstr ""
3493
-
3494
- #: includes/admin/templates/dashboard/purge.php:7
3495
- #, php-format
3496
- msgid ""
3497
- "You can free up <span class=\"red\">%s MB</span> by purging your temp upload "
3498
- "directory."
3499
- msgstr ""
3500
-
3501
- #: includes/admin/templates/dashboard/purge.php:12
3502
- msgid "Purge Temp"
3503
- msgstr ""
3504
-
3505
- #: includes/admin/templates/dashboard/purge.php:19
3506
- msgid ""
3507
- "Your temp uploads directory is <span class=\"ok\">clean</span>. There is "
3508
- "nothing to purge."
3509
- msgstr ""
3510
-
3511
- #: includes/admin/templates/dashboard/upgrade-request.php:4
3512
- msgid ""
3513
- "Run this task from time to time if you have issues with WP Cron and need to "
3514
- "get UM extension updates."
3515
- msgstr ""
3516
-
3517
- #: includes/admin/templates/dashboard/upgrade-request.php:7
3518
- msgid "Get latest versions"
3519
- msgstr ""
3520
-
3521
- #: includes/admin/templates/dashboard/users.php:60
3522
- #: includes/core/class-user.php:839
3523
- msgid "Pending Review"
3524
- msgstr ""
3525
-
3526
- #: includes/admin/templates/dashboard/users.php:73
3527
- #: includes/core/class-user.php:835
3528
- msgid "Awaiting E-mail Confirmation"
3529
- msgstr ""
3530
-
3531
- #: includes/admin/templates/directory/appearance.php:12
3532
- #: includes/admin/templates/form/login_customize.php:23
3533
- #: includes/admin/templates/form/profile_customize.php:42
3534
- #: includes/admin/templates/form/register_customize.php:38
3535
- msgid "Template"
3536
- msgstr ""
3537
-
3538
- #: includes/admin/templates/directory/general.php:48
3539
- msgid "New users first"
3540
- msgstr ""
3541
-
3542
- #: includes/admin/templates/directory/general.php:49
3543
- msgid "Old users first"
3544
- msgstr ""
3545
-
3546
- #: includes/admin/templates/directory/general.php:50
3547
- msgid "Last login"
3548
- msgstr ""
3549
-
3550
- #: includes/admin/templates/directory/general.php:51
3551
- msgid "Display Name"
3552
- msgstr ""
3553
-
3554
- #: includes/admin/templates/directory/general.php:52
3555
- #: includes/core/class-builtin.php:712 includes/core/class-builtin.php:715
3556
- msgid "First Name"
3557
- msgstr ""
3558
-
3559
- #: includes/admin/templates/directory/general.php:53
3560
- #: includes/core/class-builtin.php:722 includes/core/class-builtin.php:725
3561
- msgid "Last Name"
3562
- msgstr ""
3563
-
3564
- #: includes/admin/templates/directory/general.php:54
3565
- msgid "Random"
3566
- msgstr ""
3567
-
3568
- #: includes/admin/templates/directory/general.php:55
3569
- msgid "Other (custom field)"
3570
- msgstr ""
3571
-
3572
- #: includes/admin/templates/directory/general.php:67
3573
- msgid "User Roles to Display"
3574
- msgstr ""
3575
-
3576
- #: includes/admin/templates/directory/general.php:68
3577
- msgid ""
3578
- "If you do not want to show all members, select only user roles to appear in "
3579
- "this directory"
3580
- msgstr ""
3581
-
3582
- #: includes/admin/templates/directory/general.php:76
3583
- msgid "Only show members who have uploaded a profile photo"
3584
- msgstr ""
3585
-
3586
- #: includes/admin/templates/directory/general.php:77
3587
- msgid "If 'Use Gravatars' as profile photo is enabled, this option is ignored"
3588
- msgstr ""
3589
-
3590
- #: includes/admin/templates/directory/general.php:83
3591
- msgid "Only show members who have uploaded a cover photo"
3592
- msgstr ""
3593
-
3594
- #: includes/admin/templates/directory/general.php:89
3595
- msgid "Sort users by"
3596
- msgstr ""
3597
-
3598
- #: includes/admin/templates/directory/general.php:90
3599
- msgid "Sort users by a specific parameter in the directory"
3600
- msgstr ""
3601
-
3602
- #: includes/admin/templates/directory/general.php:97
3603
- msgid "Meta key"
3604
- msgstr ""
3605
-
3606
- #: includes/admin/templates/directory/general.php:98
3607
- msgid "To sort by a custom field, enter the meta key of field here"
3608
- msgstr ""
3609
-
3610
- #: includes/admin/templates/directory/general.php:105
3611
- msgid "Only show specific users (Enter one username per line)"
3612
- msgstr ""
3613
-
3614
- #: includes/admin/templates/directory/pagination.php:12
3615
- msgid "Number of profiles per page"
3616
- msgstr ""
3617
-
3618
- #: includes/admin/templates/directory/pagination.php:13
3619
- msgid "Number of profiles to appear on page for standard users"
3620
- msgstr ""
3621
-
3622
- #: includes/admin/templates/directory/pagination.php:20
3623
- msgid "Number of profiles per page (for Mobiles & Tablets)"
3624
- msgstr ""
3625
-
3626
- #: includes/admin/templates/directory/pagination.php:21
3627
- msgid "Number of profiles to appear on page for mobile users"
3628
- msgstr ""
3629
-
3630
- #: includes/admin/templates/directory/pagination.php:28
3631
- msgid "Maximum number of profiles"
3632
- msgstr ""
3633
-
3634
- #: includes/admin/templates/directory/pagination.php:29
3635
- msgid ""
3636
- "Use this setting to control the maximum number of profiles to appear in this "
3637
- "directory. Leave blank to disable this limit"
3638
- msgstr ""
3639
-
3640
- #: includes/admin/templates/directory/profile.php:22
3641
- msgid "Enable Profile Photo"
3642
- msgstr ""
3643
-
3644
- #: includes/admin/templates/directory/profile.php:28
3645
- msgid "Enable Cover Photo"
3646
- msgstr ""
3647
-
3648
- #: includes/admin/templates/directory/profile.php:29
3649
- msgid "If turned on, the users cover photo will appear in the directory"
3650
- msgstr ""
3651
-
3652
- #: includes/admin/templates/directory/profile.php:35
3653
- msgid "Show display name"
3654
- msgstr ""
3655
-
3656
- #: includes/admin/templates/directory/profile.php:41
3657
- msgid "Show tagline below profile name"
3658
- msgstr ""
3659
-
3660
- #: includes/admin/templates/directory/profile.php:47
3661
- msgid "Choose field(s) to display in tagline"
3662
- msgstr ""
3663
-
3664
- #: includes/admin/templates/directory/profile.php:50
3665
- #: includes/admin/templates/directory/profile.php:72
3666
- #: includes/admin/templates/directory/search.php:81
3667
- msgid "Add New Custom Field"
3668
- msgstr ""
3669
-
3670
- #: includes/admin/templates/directory/profile.php:57
3671
- msgid "Show extra user information below tagline?"
3672
- msgstr ""
3673
-
3674
- #: includes/admin/templates/directory/profile.php:63
3675
- msgid "Enable reveal section transition by default"
3676
- msgstr ""
3677
-
3678
- #: includes/admin/templates/directory/profile.php:70
3679
- msgid "Choose field(s) to display in reveal section"
3680
- msgstr ""
3681
-
3682
- #: includes/admin/templates/directory/profile.php:80
3683
- msgid "Show social connect icons"
3684
- msgstr ""
3685
-
3686
- #: includes/admin/templates/directory/search.php:52
3687
- msgid "Enable Search feature"
3688
- msgstr ""
3689
-
3690
- #: includes/admin/templates/directory/search.php:53
3691
- msgid "If turned on, users will be able to search members in this directory"
3692
- msgstr ""
3693
-
3694
- #: includes/admin/templates/directory/search.php:59
3695
- msgid "Show results only after search"
3696
- msgstr ""
3697
-
3698
- #: includes/admin/templates/directory/search.php:60
3699
- msgid "If turned on, member results will only appear after search is performed"
3700
- msgstr ""
3701
-
3702
- #: includes/admin/templates/directory/search.php:68
3703
- msgid "User Roles that can use search"
3704
- msgstr ""
3705
-
3706
- #: includes/admin/templates/directory/search.php:69
3707
- msgid "If you want to allow specific user roles to be able to search only"
3708
- msgstr ""
3709
-
3710
- #: includes/admin/templates/directory/search.php:77
3711
- msgid "Choose field(s) to enable in search"
3712
- msgstr ""
3713
-
3714
- #: includes/admin/templates/directory/search.php:87
3715
- msgid "Additional search filters"
3716
- msgstr ""
3717
-
3718
- #: includes/admin/templates/directory/search.php:88
3719
- msgid "Additional search filters like URL parameters"
3720
- msgstr ""
3721
-
3722
- #: includes/admin/templates/directory/search.php:96
3723
- msgid "Results Text"
3724
- msgstr ""
3725
-
3726
- #: includes/admin/templates/directory/search.php:97
3727
- msgid ""
3728
- "Customize the search result text . e.g. Found 3,000 Members. Leave this "
3729
- "blank to not show result text"
3730
- msgstr ""
3731
-
3732
- #: includes/admin/templates/directory/search.php:98
3733
- #: includes/class-config.php:155 includes/class-config.php:251
3734
- msgid "{total_users} Members"
3735
- msgstr ""
3736
-
3737
- #: includes/admin/templates/directory/search.php:104
3738
- msgid "Single Result Text"
3739
- msgstr ""
3740
-
3741
- #: includes/admin/templates/directory/search.php:105
3742
- msgid "Same as above but in case of 1 user found only"
3743
- msgstr ""
3744
-
3745
- #: includes/admin/templates/directory/search.php:106
3746
- #: includes/class-config.php:156 includes/class-config.php:252
3747
- msgid "{total_users} Member"
3748
- msgstr ""
3749
-
3750
- #: includes/admin/templates/directory/search.php:112
3751
- msgid "Custom text if no users were found"
3752
- msgstr ""
3753
-
3754
- #: includes/admin/templates/directory/search.php:113
3755
- msgid ""
3756
- "This is the text that is displayed if no users are found during a search"
3757
- msgstr ""
3758
-
3759
- #: includes/admin/templates/directory/search.php:114
3760
- #: includes/class-config.php:157
3761
- msgid "We are sorry. We cannot find any users who match your search criteria."
3762
- msgstr ""
3763
-
3764
- #: includes/admin/templates/extensions.php:161
3765
- msgid ""
3766
- "<strong>All Access Pass</strong> Get access to all Ultimate Member "
3767
- "extensions at a significant discount with our All Access Pass."
3768
- msgstr ""
3769
-
3770
- #: includes/admin/templates/extensions.php:165
3771
- msgid "View Pricing"
3772
- msgstr ""
3773
-
3774
- #: includes/admin/templates/extensions.php:174
3775
- msgid "Premium"
3776
- msgstr ""
3777
-
3778
- #: includes/admin/templates/extensions.php:179
3779
- msgid "Free"
3780
- msgstr ""
3781
-
3782
- #: includes/admin/templates/extensions.php:205
3783
- #: includes/admin/templates/extensions.php:239
3784
- msgid "Get this Add on"
3785
- msgstr ""
3786
-
3787
- #: includes/admin/templates/extensions.php:210
3788
- #: includes/admin/templates/extensions.php:244
3789
- msgid "More Details"
3790
- msgstr ""
3791
-
3792
- #: includes/admin/templates/form/builder.php:13
3793
- msgid "Live Preview"
3794
- msgstr ""
3795
-
3796
- #: includes/admin/templates/form/builder.php:27
3797
- msgid "Add Master Row"
3798
- msgstr ""
3799
-
3800
- #: includes/admin/templates/form/login_customize.php:12
3801
- #: includes/admin/templates/form/profile_customize.php:21
3802
- #: includes/admin/templates/form/register_customize.php:19
3803
- msgid "Apply custom settings to this form"
3804
- msgstr ""
3805
-
3806
- #: includes/admin/templates/form/login_customize.php:13
3807
- #: includes/admin/templates/form/profile_customize.php:22
3808
- #: includes/admin/templates/form/register_customize.php:20
3809
- msgid ""
3810
- "Switch to yes if you want to customize this form settings, styling &amp; "
3811
- "appearance"
3812
- msgstr ""
3813
-
3814
- #: includes/admin/templates/form/login_customize.php:31
3815
- #: includes/admin/templates/form/profile_customize.php:50
3816
- #: includes/admin/templates/form/register_customize.php:46
3817
- msgid "Max. Width (px)"
3818
- msgstr ""
3819
-
3820
- #: includes/admin/templates/form/login_customize.php:32
3821
- #: includes/admin/templates/form/profile_customize.php:51
3822
- #: includes/admin/templates/form/register_customize.php:47
3823
- msgid "The maximum width of shortcode in pixels e.g. 600px"
3824
- msgstr ""
3825
-
3826
- #: includes/admin/templates/form/login_customize.php:39
3827
- #: includes/admin/templates/form/profile_customize.php:66
3828
- #: includes/admin/templates/form/register_customize.php:54
3829
- msgid "Field Icons"
3830
- msgstr ""
3831
-
3832
- #: includes/admin/templates/form/login_customize.php:40
3833
- #: includes/admin/templates/form/profile_customize.php:67
3834
- #: includes/admin/templates/form/register_customize.php:55
3835
- msgid ""
3836
- "Whether to show field icons and where to show them relative to the field"
3837
- msgstr ""
3838
-
3839
- #: includes/admin/templates/form/login_customize.php:52
3840
- #: includes/admin/templates/form/profile_customize.php:79
3841
- #: includes/admin/templates/form/register_customize.php:67
3842
- msgid "Primary Button Text"
3843
- msgstr ""
3844
-
3845
- #: includes/admin/templates/form/login_customize.php:53
3846
- #: includes/admin/templates/form/login_customize.php:72
3847
- #: includes/admin/templates/form/profile_customize.php:80
3848
- #: includes/admin/templates/form/profile_customize.php:99
3849
- #: includes/admin/templates/form/register_customize.php:68
3850
- #: includes/admin/templates/form/register_customize.php:87
3851
- msgid "Customize the button text"
3852
- msgstr ""
3853
-
3854
- #: includes/admin/templates/form/login_customize.php:60
3855
- #: includes/admin/templates/form/profile_customize.php:87
3856
- #: includes/admin/templates/form/register_customize.php:75
3857
- msgid "Show Secondary Button"
3858
- msgstr ""
3859
-
3860
- #: includes/admin/templates/form/login_customize.php:71
3861
- #: includes/admin/templates/form/profile_customize.php:98
3862
- #: includes/admin/templates/form/register_customize.php:86
3863
- msgid "Secondary Button Text"
3864
- msgstr ""
3865
-
3866
- #: includes/admin/templates/form/login_customize.php:79
3867
- msgid "Show Forgot Password Link?"
3868
- msgstr ""
3869
-
3870
- #: includes/admin/templates/form/login_customize.php:90
3871
- msgid "Show \"Remember Me\"?"
3872
- msgstr ""
3873
-
3874
- #: includes/admin/templates/form/login_settings.php:12
3875
- msgid "Redirection after Login"
3876
- msgstr ""
3877
-
3878
- #: includes/admin/templates/form/login_settings.php:13
3879
- msgid ""
3880
- "Change this If you want to override role redirection settings after login "
3881
- "only."
3882
- msgstr ""
3883
-
3884
- #: includes/admin/templates/form/login_settings.php:17
3885
- #: includes/admin/templates/role/login.php:19
3886
- #: includes/admin/templates/role/register.php:30
3887
- msgid "Redirect to profile"
3888
- msgstr ""
3889
-
3890
- #: includes/admin/templates/form/login_settings.php:18
3891
- #: includes/admin/templates/role/login.php:20
3892
- #: includes/admin/templates/role/register.php:31
3893
- #: includes/admin/templates/role/register.php:58
3894
- #: includes/admin/templates/role/register.php:92
3895
- msgid "Redirect to URL"
3896
- msgstr ""
3897
-
3898
- #: includes/admin/templates/form/login_settings.php:19
3899
- #: includes/admin/templates/role/login.php:21
3900
- msgid "Refresh active page"
3901
- msgstr ""
3902
-
3903
- #: includes/admin/templates/form/login_settings.php:20
3904
- #: includes/admin/templates/role/login.php:22
3905
- msgid "Redirect to WordPress Admin"
3906
- msgstr ""
3907
-
3908
- #: includes/admin/templates/form/login_settings.php:26
3909
- #: includes/admin/templates/role/delete.php:26
3910
- #: includes/admin/templates/role/login.php:28
3911
- #: includes/admin/templates/role/logout.php:26
3912
- #: includes/admin/templates/role/register.php:38
3913
- #: includes/admin/templates/role/register.php:72
3914
- #: includes/admin/templates/role/register.php:106
3915
- msgid "Set Custom Redirect URL"
3916
- msgstr ""
3917
-
3918
- #: includes/admin/templates/form/mode.php:9
3919
- msgid ""
3920
- "<strong>Note:</strong> Form type cannot be changed for the default forms."
3921
- msgstr ""
3922
-
3923
- #: includes/admin/templates/form/mode.php:14
3924
- msgid "Profile Form"
3925
- msgstr ""
3926
-
3927
- #: includes/admin/templates/form/profile_customize.php:33
3928
- msgid "Make this profile form role-specific"
3929
- msgstr ""
3930
-
3931
- #: includes/admin/templates/form/profile_customize.php:34
3932
- msgid ""
3933
- "Please note if you make a profile form specific to a role then you must make "
3934
- "sure that every other role is assigned a profile form"
3935
- msgstr ""
3936
-
3937
- #: includes/admin/templates/form/profile_customize.php:58
3938
- msgid "Profile Area Max. Width (px)"
3939
- msgstr ""
3940
-
3941
- #: includes/admin/templates/form/profile_customize.php:106
3942
- msgid "Enable Cover Photos"
3943
- msgstr ""
3944
-
3945
- #: includes/admin/templates/form/profile_customize.php:117
3946
- msgid "Cover photo ratio"
3947
- msgstr ""
3948
-
3949
- #: includes/admin/templates/form/profile_customize.php:144
3950
- msgid "Set the profile photo size in pixels here"
3951
- msgstr ""
3952
-
3953
- #: includes/admin/templates/form/profile_customize.php:151
3954
- msgid "Make Profile Photo Required"
3955
- msgstr ""
3956
-
3957
- #: includes/admin/templates/form/profile_customize.php:152
3958
- msgid "Require user to update a profile photo when updating their profile"
3959
- msgstr ""
3960
-
3961
- #: includes/admin/templates/form/profile_customize.php:163
3962
- msgid "Show display name in profile header?"
3963
- msgstr ""
3964
-
3965
- #: includes/admin/templates/form/profile_customize.php:174
3966
- msgid "Show social links in profile header?"
3967
- msgstr ""
3968
-
3969
- #: includes/admin/templates/form/profile_customize.php:185
3970
- msgid "Show user description in profile header?"
3971
- msgstr ""
3972
-
3973
- #: includes/admin/templates/form/profile_settings.php:21
3974
- msgid "Field(s) to show in user meta"
3975
- msgstr ""
3976
-
3977
- #: includes/admin/templates/form/profile_settings.php:22
3978
- msgid ""
3979
- "Fields selected here will appear in the profile header area below the user's "
3980
- "display name"
3981
- msgstr ""
3982
-
3983
- #: includes/admin/templates/form/profile_settings.php:25
3984
- msgid "Add New Field"
3985
- msgstr ""
3986
-
3987
- #: includes/admin/templates/form/register_customize.php:30
3988
- msgid "Assign role to form"
3989
- msgstr ""
3990
-
3991
- #: includes/admin/templates/form/register_gdpr.php:8
3992
- msgid "Select page"
3993
- msgstr ""
3994
-
3995
- #: includes/admin/templates/form/register_gdpr.php:23
3996
- msgid "Enable on this form"
3997
- msgstr ""
3998
-
3999
- #: includes/admin/templates/form/register_gdpr.php:33
4000
- msgid "Content"
4001
- msgstr ""
4002
-
4003
- #: includes/admin/templates/form/register_gdpr.php:41
4004
- msgid "Toggle Show text"
4005
- msgstr ""
4006
-
4007
- #: includes/admin/templates/form/register_gdpr.php:42
4008
- #: includes/admin/templates/form/register_gdpr.php:43
4009
- #: templates/gdpr-register.php:15 templates/gdpr-register.php:17
4010
- msgid "Show privacy policy"
4011
- msgstr ""
4012
-
4013
- #: includes/admin/templates/form/register_gdpr.php:49
4014
- msgid "Toggle Hide text"
4015
- msgstr ""
4016
-
4017
- #: includes/admin/templates/form/register_gdpr.php:50
4018
- #: includes/admin/templates/form/register_gdpr.php:51
4019
- #: templates/gdpr-register.php:16
4020
- msgid "Hide privacy policy"
4021
- msgstr ""
4022
-
4023
- #: includes/admin/templates/form/register_gdpr.php:57
4024
- msgid "Checkbox agreement description"
4025
- msgstr ""
4026
-
4027
- #: includes/admin/templates/form/register_gdpr.php:58
4028
- #: includes/admin/templates/form/register_gdpr.php:59
4029
- #: templates/gdpr-register.php:27
4030
- msgid "Please confirm that you agree to our privacy policy"
4031
- msgstr ""
4032
-
4033
- #: includes/admin/templates/form/register_gdpr.php:65
4034
- msgid "Error Text"
4035
- msgstr ""
4036
-
4037
- #: includes/admin/templates/form/register_gdpr.php:66
4038
- #: includes/admin/templates/form/register_gdpr.php:67
4039
- #: templates/gdpr-register.php:40
4040
- msgid "Please confirm your acceptance of our privacy policy"
4041
- msgstr ""
4042
-
4043
- #: includes/admin/templates/gdpr.php:4
4044
- msgid "What personal data we collect and why we collect it"
4045
- msgstr ""
4046
-
4047
- #: includes/admin/templates/gdpr.php:10
4048
- #, php-format
4049
- msgid "%s provides you with forms for user registration, login and profiles."
4050
- msgstr ""
4051
-
4052
- #: includes/admin/templates/gdpr.php:13
4053
- msgid "Via these forms you are collecting personal data from your users."
4054
- msgstr ""
4055
-
4056
- #: includes/admin/templates/gdpr.php:16
4057
- msgid ""
4058
- "You should include in your privacy policy what personal data is captured "
4059
- "when someone submits/fills in one of the forms, why you collect it and what "
4060
- "you do with this data and how long you keep it."
4061
- msgstr ""
4062
-
4063
- #: includes/admin/templates/gdpr.php:20
4064
- msgid "How long we retain your data"
4065
- msgstr ""
4066
-
4067
- #: includes/admin/templates/gdpr.php:23
4068
- msgid ""
4069
- "Registered user information is retained in your website’s database "
4070
- "indefinitely."
4071
- msgstr ""
4072
-
4073
- #: includes/admin/templates/gdpr.php:26
4074
- msgid ""
4075
- "Data can be exported or removed upon users request via the existing "
4076
- "WordPress data exporter or eraser."
4077
- msgstr ""
4078
-
4079
- #: includes/admin/templates/gdpr.php:29
4080
- msgid ""
4081
- "If syncing data to a 3rd party service (e.g Mailchimp via our MailChimp "
4082
- "extension), data is retained there until unsubscribed or deleted."
4083
- msgstr ""
4084
-
4085
- #: includes/admin/templates/gdpr.php:33
4086
- msgid "Where we send your data"
4087
- msgstr ""
4088
-
4089
- #: includes/admin/templates/gdpr.php:36
4090
- #, php-format
4091
- msgid "%s does not send any user data outside of your site by default."
4092
- msgstr ""
4093
-
4094
- #: includes/admin/templates/gdpr.php:39
4095
- msgid ""
4096
- "If you have extended the functionality of the plugin (e.g sending registered "
4097
- "user data to MailChimp via our MailChimp extension, this user info may be "
4098
- "passed to these external services. These services may be located abroad and "
4099
- "outwith the EU."
4100
- msgstr ""
4101
-
4102
- #: includes/admin/templates/modal/dynamic_edit_field.php:9
4103
- msgid "Edit Field"
4104
- msgstr ""
4105
-
4106
- #: includes/admin/templates/modal/dynamic_edit_field.php:15
4107
- #: includes/admin/templates/modal/dynamic_edit_row.php:15
4108
- msgid "Update"
4109
- msgstr ""
4110
-
4111
- #: includes/admin/templates/modal/dynamic_edit_field.php:18
4112
- #: includes/admin/templates/modal/dynamic_edit_row.php:18
4113
- #: includes/admin/templates/modal/dynamic_new_divider.php:18
4114
- #: includes/admin/templates/modal/dynamic_new_field.php:18
4115
- #: includes/admin/templates/modal/dynamic_new_group.php:18
4116
- #: includes/admin/templates/modal/fonticons.php:14
4117
- #: includes/admin/templates/role/publish.php:24
4118
- #: includes/core/class-fields.php:2475 includes/core/class-fields.php:2572
4119
- #: includes/core/um-actions-profile.php:640
4120
- #: includes/core/um-actions-profile.php:652
4121
- #: includes/core/um-actions-profile.php:795
4122
- #: includes/core/um-actions-profile.php:828
4123
- #: includes/core/um-actions-profile.php:1173
4124
- #: includes/core/um-actions-profile.php:1180
4125
- msgid "Cancel"
4126
- msgstr ""
4127
-
4128
- #: includes/admin/templates/modal/dynamic_edit_row.php:9
4129
- msgid "Edit Row Settings"
4130
- msgstr ""
4131
-
4132
- #: includes/admin/templates/modal/dynamic_form_preview.php:7
4133
- msgid "Live Form Preview"
4134
- msgstr ""
4135
-
4136
- #: includes/admin/templates/modal/dynamic_form_preview.php:13
4137
- msgid "Continue editing"
4138
- msgstr ""
4139
-
4140
- #: includes/admin/templates/modal/dynamic_new_divider.php:9
4141
- msgid "Add a New Divider"
4142
- msgstr ""
4143
-
4144
- #: includes/admin/templates/modal/dynamic_new_divider.php:15
4145
- #: includes/admin/templates/modal/dynamic_new_field.php:15
4146
- #: includes/admin/templates/modal/dynamic_new_group.php:15
4147
- msgid "Add"
4148
- msgstr ""
4149
-
4150
- #: includes/admin/templates/modal/dynamic_new_field.php:9
4151
- msgid "Add a New Field"
4152
- msgstr ""
4153
-
4154
- #: includes/admin/templates/modal/dynamic_new_group.php:9
4155
- msgid "Add a New Field Group"
4156
- msgstr ""
4157
-
4158
- #: includes/admin/templates/modal/dynamic_registration_preview.php:7
4159
- msgid "Review Registration Details"
4160
- msgstr ""
4161
-
4162
- #: includes/admin/templates/modal/fields.php:7
4163
- msgid "Fields Manager"
4164
- msgstr ""
4165
-
4166
- #: includes/admin/templates/modal/fonticons.php:7
4167
- #, php-format
4168
- msgid "Choose from %s available icons"
4169
- msgstr ""
4170
-
4171
- #: includes/admin/templates/modal/fonticons.php:13
4172
- msgid "Finish"
4173
- msgstr ""
4174
-
4175
- #: includes/admin/templates/role/admin-permissions.php:14
4176
- msgid "Can access wp-admin?"
4177
- msgstr ""
4178
-
4179
- #: includes/admin/templates/role/admin-permissions.php:15
4180
- msgid ""
4181
- "The core admin role must always have access to wp-admin / WordPress backend"
4182
- msgstr ""
4183
-
4184
- #: includes/admin/templates/role/admin-permissions.php:21
4185
- msgid "Force hiding adminbar in frontend?"
4186
- msgstr ""
4187
-
4188
- #: includes/admin/templates/role/admin-permissions.php:22
4189
- msgid "Show/hide the adminbar on frontend"
4190
- msgstr ""
4191
-
4192
- #: includes/admin/templates/role/admin-permissions.php:28
4193
- msgid "Can edit other member accounts?"
4194
- msgstr ""
4195
-
4196
- #: includes/admin/templates/role/admin-permissions.php:29
4197
- #: includes/admin/templates/role/admin-permissions.php:46
4198
- msgid "Allow this role to edit accounts of other members"
4199
- msgstr ""
4200
-
4201
- #: includes/admin/templates/role/admin-permissions.php:35
4202
- msgid "Can edit these user roles only"
4203
- msgstr ""
4204
-
4205
- #: includes/admin/templates/role/admin-permissions.php:36
4206
- #: includes/admin/templates/role/admin-permissions.php:53
4207
- msgid ""
4208
- "Which roles that role can edit, choose none to allow role to edit all member "
4209
- "roles"
4210
- msgstr ""
4211
-
4212
- #: includes/admin/templates/role/admin-permissions.php:45
4213
- msgid "Can delete other member accounts?"
4214
- msgstr ""
4215
-
4216
- #: includes/admin/templates/role/admin-permissions.php:52
4217
- msgid "Can delete these user roles only"
4218
- msgstr ""
4219
-
4220
- #: includes/admin/templates/role/delete.php:15
4221
- msgid "Action to be taken after account is deleted"
4222
- msgstr ""
4223
-
4224
- #: includes/admin/templates/role/delete.php:16
4225
- msgid ""
4226
- "Select what happens when a user with this role deletes their own account"
4227
- msgstr ""
4228
-
4229
- #: includes/admin/templates/role/delete.php:19
4230
- #: includes/admin/templates/role/logout.php:19
4231
- msgid "Go to Homepage"
4232
- msgstr ""
4233
-
4234
- #: includes/admin/templates/role/delete.php:20
4235
- #: includes/admin/templates/role/logout.php:20
4236
- msgid "Go to Custom URL"
4237
- msgstr ""
4238
-
4239
- #: includes/admin/templates/role/delete.php:27
4240
- msgid "Set a url to redirect this user role to after they delete account"
4241
- msgstr ""
4242
-
4243
- #: includes/admin/templates/role/general.php:14
4244
- msgid "Can edit their profile?"
4245
- msgstr ""
4246
-
4247
- #: includes/admin/templates/role/general.php:15
4248
- msgid "Can this role edit his own profile?"
4249
- msgstr ""
4250
-
4251
- #: includes/admin/templates/role/general.php:21
4252
- msgid "Can delete their account?"
4253
- msgstr ""
4254
-
4255
- #: includes/admin/templates/role/general.php:22
4256
- msgid ""
4257
- "Allow this role to delete their account and end their membership on your site"
4258
- msgstr ""
4259
-
4260
- #: includes/admin/templates/role/home.php:15
4261
- msgid "Can view default homepage?"
4262
- msgstr ""
4263
-
4264
- #: includes/admin/templates/role/home.php:16
4265
- msgid "Allow this user role to view your site's homepage"
4266
- msgstr ""
4267
-
4268
- #: includes/admin/templates/role/home.php:22
4269
- msgid "Custom Homepage Redirect"
4270
- msgstr ""
4271
-
4272
- #: includes/admin/templates/role/home.php:23
4273
- msgid ""
4274
- "Set a url to redirect this user role to if they try to view your site's "
4275
- "homepage"
4276
- msgstr ""
4277
-
4278
- #: includes/admin/templates/role/login.php:15
4279
- msgid "Action to be taken after login"
4280
- msgstr ""
4281
-
4282
- #: includes/admin/templates/role/login.php:16
4283
- msgid "Select what happens when a user with this role logins to your site"
4284
- msgstr ""
4285
-
4286
- #: includes/admin/templates/role/login.php:29
4287
- msgid ""
4288
- "Set a url to redirect this user role to after they login with their account"
4289
- msgstr ""
4290
-
4291
- #: includes/admin/templates/role/logout.php:15
4292
- msgid "Action to be taken after logout"
4293
- msgstr ""
4294
-
4295
- #: includes/admin/templates/role/logout.php:16
4296
- msgid "Select what happens when a user with this role logouts of your site"
4297
- msgstr ""
4298
-
4299
- #: includes/admin/templates/role/logout.php:27
4300
- msgid "Set a url to redirect this user role to after they logout from site"
4301
- msgstr ""
4302
-
4303
- #: includes/admin/templates/role/profile.php:14
4304
- msgid "Can view other member profiles?"
4305
- msgstr ""
4306
-
4307
- #: includes/admin/templates/role/profile.php:15
4308
- msgid "Can this role view all member profiles?"
4309
- msgstr ""
4310
-
4311
- #: includes/admin/templates/role/profile.php:21
4312
- msgid "Can view these user roles only"
4313
- msgstr ""
4314
-
4315
- #: includes/admin/templates/role/profile.php:22
4316
- msgid ""
4317
- "Which roles that role can view, choose none to allow role to view all member "
4318
- "roles"
4319
- msgstr ""
4320
-
4321
- #: includes/admin/templates/role/profile.php:32
4322
- msgid "Can make their profile private?"
4323
- msgstr ""
4324
-
4325
- #: includes/admin/templates/role/profile.php:33
4326
- msgid "Can this role make their profile private?"
4327
- msgstr ""
4328
-
4329
- #: includes/admin/templates/role/profile.php:40
4330
- msgid "Can view/access private profiles?"
4331
- msgstr ""
4332
-
4333
- #: includes/admin/templates/role/profile.php:41
4334
- msgid "Can this role view private profiles?"
4335
- msgstr ""
4336
-
4337
- #: includes/admin/templates/role/publish.php:13
4338
- msgid "Role Priority"
4339
- msgstr ""
4340
-
4341
- #: includes/admin/templates/role/publish.php:14
4342
- msgid "The higher the number, the higher the priority"
4343
- msgstr ""
4344
-
4345
- #: includes/admin/templates/role/publish.php:23
4346
- msgid "Update Role"
4347
- msgstr ""
4348
-
4349
- #: includes/admin/templates/role/publish.php:23
4350
- msgid "Create Role"
4351
- msgstr ""
4352
-
4353
- #: includes/admin/templates/role/register.php:14
4354
- msgid "Registration Status"
4355
- msgstr ""
4356
-
4357
- #: includes/admin/templates/role/register.php:15
4358
- msgid ""
4359
- "Select the status you would like this user role to have after they register "
4360
- "on your site"
4361
- msgstr ""
4362
-
4363
- #: includes/admin/templates/role/register.php:18
4364
- msgid "Auto Approve"
4365
- msgstr ""
4366
-
4367
- #: includes/admin/templates/role/register.php:19
4368
- msgid "Require Email Activation"
4369
- msgstr ""
4370
-
4371
- #: includes/admin/templates/role/register.php:20
4372
- msgid "Require Admin Review"
4373
- msgstr ""
4374
-
4375
- #: includes/admin/templates/role/register.php:26
4376
- #: includes/admin/templates/role/register.php:53
4377
- #: includes/admin/templates/role/register.php:87
4378
- msgid "Action to be taken after registration"
4379
- msgstr ""
4380
-
4381
- #: includes/admin/templates/role/register.php:27
4382
- #: includes/admin/templates/role/register.php:54
4383
- #: includes/admin/templates/role/register.php:88
4384
- msgid ""
4385
- "Select what action is taken after a person registers on your site. Depending "
4386
- "on the status you can redirect them to their profile, a custom url or show a "
4387
- "custom message"
4388
- msgstr ""
4389
-
4390
- #: includes/admin/templates/role/register.php:45
4391
- msgid "Login user after validating the activation link?"
4392
- msgstr ""
4393
-
4394
- #: includes/admin/templates/role/register.php:46
4395
- msgid "Login the user after validating the activation link"
4396
- msgstr ""
4397
-
4398
- #: includes/admin/templates/role/register.php:57
4399
- #: includes/admin/templates/role/register.php:91
4400
- msgid "Show custom message"
4401
- msgstr ""
4402
-
4403
- #: includes/admin/templates/role/register.php:65
4404
- #: includes/admin/templates/role/register.php:99
4405
- msgid "Personalize the custom message"
4406
- msgstr ""
4407
-
4408
- #: includes/admin/templates/role/register.php:66
4409
- msgid ""
4410
- "Thank you for registering. Before you can login we need you to activate your "
4411
- "account by clicking the activation link in the email we just sent you."
4412
- msgstr ""
4413
-
4414
- #: includes/admin/templates/role/register.php:79
4415
- msgid "URL redirect after e-mail activation"
4416
- msgstr ""
4417
-
4418
- #: includes/admin/templates/role/register.php:80
4419
- msgid ""
4420
- "If you want users to go to a specific page other than login page after e-"
4421
- "mail activation, enter the URL here."
4422
- msgstr ""
4423
-
4424
- #: includes/admin/templates/role/register.php:100
4425
- msgid ""
4426
- "Thank you for applying for membership to our site. We will review your "
4427
- "details and send you an email letting you know whether your application has "
4428
- "been successful or not."
4429
- msgstr ""
4430
-
4431
- #: includes/admin/templates/role/role-edit.php:66
4432
- #: includes/admin/templates/role/role-edit.php:70
4433
- msgid "Security Issue"
4434
- msgstr ""
4435
-
4436
- #: includes/admin/templates/role/role-edit.php:83
4437
- msgid "Title is empty!"
4438
- msgstr ""
4439
-
4440
- #: includes/admin/templates/role/role-edit.php:110
4441
- msgid "Role already exists!"
4442
- msgstr ""
4443
-
4444
- #: includes/admin/templates/role/role-edit.php:151
4445
- msgid "Add New Role"
4446
- msgstr ""
4447
-
4448
- #: includes/admin/templates/role/role-edit.php:151
4449
- msgid "Edit Role"
4450
- msgstr ""
4451
-
4452
- #: includes/admin/templates/role/role-edit.php:160
4453
- msgid "User Role <strong>Added</strong> Successfully."
4454
- msgstr ""
4455
-
4456
- #: includes/admin/templates/role/role-edit.php:163
4457
- msgid "User Role <strong>Updated</strong> Successfully."
4458
- msgstr ""
4459
-
4460
- #: includes/admin/templates/role/role-edit.php:191
4461
- msgid "Enter Title Here"
4462
- msgstr ""
4463
-
4464
- #: includes/admin/templates/role/wp-capabilities.php:39
4465
- msgid "Uncheck All"
4466
- msgstr ""
4467
-
4468
- #: includes/admin/templates/role/wp-capabilities.php:41
4469
- #: includes/admin/templates/role/wp-capabilities.php:49
4470
- msgid "Check All"
4471
- msgstr ""
4472
-
4473
- #: includes/class-config.php:131 includes/class-config.php:756
4474
- msgid "User"
4475
- msgstr ""
4476
-
4477
- #: includes/class-config.php:132 includes/class-config.php:238
4478
- #: includes/class-config.php:244 includes/class-config.php:757
4479
- msgid "Login"
4480
- msgstr ""
4481
-
4482
- #: includes/class-config.php:133 includes/class-config.php:236
4483
- #: includes/class-config.php:248 includes/class-config.php:758
4484
- msgid "Register"
4485
- msgstr ""
4486
-
4487
- #: includes/class-config.php:135 includes/class-config.php:760
4488
- #: includes/core/um-actions-profile.php:1179
4489
- #: includes/core/um-actions-user.php:19
4490
- msgid "Logout"
4491
- msgstr ""
4492
-
4493
- #: includes/class-config.php:137 includes/class-config.php:762
4494
- msgid "Password Reset"
4495
- msgstr ""
4496
-
4497
- #: includes/class-config.php:311
4498
- msgid "Account Welcome Email"
4499
- msgstr ""
4500
-
4501
- #: includes/class-config.php:322
4502
- msgid ""
4503
- "Whether to send the user an email when his account is automatically approved"
4504
- msgstr ""
4505
-
4506
- #: includes/class-config.php:328
4507
- msgid "Account Activation Email"
4508
- msgstr ""
4509
-
4510
- #: includes/class-config.php:336
4511
- msgid ""
4512
- "Whether to send the user an email when his account needs e-mail activation"
4513
- msgstr ""
4514
-
4515
- #: includes/class-config.php:341
4516
- msgid "Your account is pending review"
4517
- msgstr ""
4518
-
4519
- #: includes/class-config.php:349
4520
- msgid "Whether to send the user an email when his account needs admin review"
4521
- msgstr ""
4522
-
4523
- #: includes/class-config.php:354
4524
- msgid "Account Approved Email"
4525
- msgstr ""
4526
-
4527
- #: includes/class-config.php:366
4528
- msgid "Whether to send the user an email when his account is approved"
4529
- msgstr ""
4530
-
4531
- #: includes/class-config.php:371
4532
- msgid "Account Rejected Email"
4533
- msgstr ""
4534
-
4535
- #: includes/class-config.php:378
4536
- msgid "Whether to send the user an email when his account is rejected"
4537
- msgstr ""
4538
-
4539
- #: includes/class-config.php:383
4540
- msgid "Account Deactivated Email"
4541
- msgstr ""
4542
-
4543
- #: includes/class-config.php:390
4544
- msgid "Whether to send the user an email when his account is deactivated"
4545
- msgstr ""
4546
-
4547
- #: includes/class-config.php:396
4548
- msgid "Account Deleted Email"
4549
- msgstr ""
4550
-
4551
- #: includes/class-config.php:403
4552
- msgid "Whether to send the user an email when his account is deleted"
4553
- msgstr ""
4554
-
4555
- #: includes/class-config.php:409
4556
- msgid "Password Reset Email"
4557
- msgstr ""
4558
-
4559
- #: includes/class-config.php:417
4560
- msgid ""
4561
- "Whether to send an email when users changed their password (Recommended, "
4562
- "please keep on)"
4563
- msgstr ""
4564
-
4565
- #: includes/class-config.php:423
4566
- msgid "Password Changed Email"
4567
- msgstr ""
4568
-
4569
- #: includes/class-config.php:430
4570
- msgid ""
4571
- "Whether to send the user an email when he request to reset password "
4572
- "(Recommended, please keep on)"
4573
- msgstr ""
4574
-
4575
- #: includes/class-config.php:436
4576
- msgid "Account Updated Email"
4577
- msgstr ""
4578
-
4579
- #: includes/class-config.php:443
4580
- msgid "Whether to send the user an email when he updated their account"
4581
- msgstr ""
4582
-
4583
- #: includes/class-config.php:449
4584
- msgid "New User Notification"
4585
- msgstr ""
4586
-
4587
- #: includes/class-config.php:455
4588
- msgid "Whether to receive notification when a new user account is approved"
4589
- msgstr ""
4590
-
4591
- #: includes/class-config.php:461
4592
- msgid "Account Needs Review Notification"
4593
- msgstr ""
4594
-
4595
- #: includes/class-config.php:468
4596
- msgid "Whether to receive notification when an account needs admin review"
4597
- msgstr ""
4598
-
4599
- #: includes/class-config.php:473
4600
- msgid "Account Deletion Notification"
4601
- msgstr ""
4602
-
4603
- #: includes/class-config.php:476
4604
- msgid "Whether to receive notification when an account is deleted"
4605
- msgstr ""
4606
-
4607
- #: includes/class-config.php:499
4608
- msgid ""
4609
- "Are you sure you want to delete your account? This will erase all of your "
4610
- "account data from the site. To delete your account enter your password below"
4611
- msgstr ""
4612
-
4613
- #: includes/class-dependencies.php:181
4614
- #, php-format
4615
- msgid ""
4616
- "This version of <strong>\"%s\"</strong> requires the core <strong>%s</"
4617
- "strong> plugin to be <strong>%s</strong> or higher."
4618
- msgstr ""
4619
-
4620
- #: includes/class-dependencies.php:183
4621
- #, php-format
4622
- msgid "Please update <strong>%s</strong> to the latest version."
4623
- msgstr ""
4624
-
4625
- #: includes/class-dependencies.php:185
4626
- #, php-format
4627
- msgid ""
4628
- "Sorry, but this version of <strong>%s</strong> does not work with extension "
4629
- "<strong>\"%s\" %s</strong> version."
4630
- msgstr ""
4631
-
4632
- #: includes/class-dependencies.php:187
4633
- #, php-format
4634
- msgid "Please update extension <strong>\"%s\"</strong> to the latest version."
4635
- msgstr ""
4636
-
4637
- #: includes/class-dependencies.php:196
4638
- #, php-format
4639
- msgid "Please check <strong>\"%s\" %s</strong> extension's folder name."
4640
- msgstr ""
4641
-
4642
- #: includes/class-dependencies.php:198
4643
- #, php-format
4644
- msgid "Correct folder name is <strong>\"%s\"</strong>"
4645
- msgstr ""
4646
-
4647
- #: includes/class-extensions.php:101
4648
- #, php-format
4649
- msgid "%s License Key"
4650
- msgstr ""
4651
-
4652
- #: includes/class-init.php:156 includes/class-init.php:165
4653
- msgid "Cheatin&#8217; huh?"
4654
- msgstr ""
4655
-
4656
- #: includes/core/class-account.php:94
4657
- msgid "Update Account"
4658
- msgstr ""
4659
-
4660
- #: includes/core/class-account.php:99
4661
- msgid "Change Password"
4662
- msgstr ""
4663
-
4664
- #: includes/core/class-account.php:100
4665
- msgid "Update Password"
4666
- msgstr ""
4667
-
4668
- #: includes/core/class-account.php:106
4669
- msgid "Update Privacy"
4670
- msgstr ""
4671
-
4672
- #: includes/core/class-account.php:112
4673
- msgid "Update Notifications"
4674
- msgstr ""
4675
-
4676
- #: includes/core/class-account.php:120 includes/core/class-account.php:121
4677
- #: includes/core/class-builtin.php:1141 includes/core/class-builtin.php:1144
4678
- msgid "Delete Account"
4679
- msgstr ""
4680
-
4681
- #: includes/core/class-builtin.php:132
4682
- msgid "Please provide a meta key"
4683
- msgstr ""
4684
-
4685
- #: includes/core/class-builtin.php:133
4686
- msgid "Your meta key is a reserved core field and cannot be used"
4687
- msgstr ""
4688
-
4689
- #: includes/core/class-builtin.php:134
4690
- msgid "Your meta key is a predefined reserved key and cannot be used"
4691
- msgstr ""
4692
-
4693
- #: includes/core/class-builtin.php:135
4694
- msgid "Your meta key already exists in your fields list"
4695
- msgstr ""
4696
-
4697
- #: includes/core/class-builtin.php:136
4698
- msgid "Your meta key contains illegal characters. Please correct it."
4699
- msgstr ""
4700
-
4701
- #: includes/core/class-builtin.php:149
4702
- msgid "Please provide a date range beginning"
4703
- msgstr ""
4704
-
4705
- #: includes/core/class-builtin.php:150
4706
- msgid "Please enter a valid start date in the date range"
4707
- msgstr ""
4708
-
4709
- #: includes/core/class-builtin.php:164
4710
- msgid "Please provide a date range end"
4711
- msgstr ""
4712
-
4713
- #: includes/core/class-builtin.php:165
4714
- msgid "Please enter a valid end date in the date range"
4715
- msgstr ""
4716
-
4717
- #: includes/core/class-builtin.php:166
4718
- msgid "The end of date range must be greater than the start of date range"
4719
- msgstr ""
4720
-
4721
- #: includes/core/class-builtin.php:208 includes/core/class-builtin.php:224
4722
- #: includes/core/class-builtin.php:240 includes/core/class-builtin.php:256
4723
- #: includes/core/class-builtin.php:276 includes/core/class-builtin.php:296
4724
- #: includes/core/class-builtin.php:316 includes/core/class-builtin.php:336
4725
- #: includes/core/class-builtin.php:352 includes/core/class-builtin.php:368
4726
- #: includes/core/class-builtin.php:388 includes/core/class-builtin.php:408
4727
- #: includes/core/class-builtin.php:434 includes/core/class-builtin.php:450
4728
- #: includes/core/class-builtin.php:467 includes/core/class-builtin.php:480
4729
- #: includes/core/class-builtin.php:497 includes/core/class-builtin.php:510
4730
- #: includes/core/class-builtin.php:523 includes/core/class-builtin.php:539
4731
- #: includes/core/class-builtin.php:555 includes/core/class-builtin.php:571
4732
- msgid "You must provide a title"
4733
- msgstr ""
4734
-
4735
- #: includes/core/class-builtin.php:217
4736
- msgid "Number"
4737
- msgstr ""
4738
-
4739
- #: includes/core/class-builtin.php:263 includes/core/class-builtin.php:283
4740
- #: includes/core/class-builtin.php:303 includes/core/class-builtin.php:323
4741
- msgid "You have not added any choices yet."
4742
- msgstr ""
4743
-
4744
- #: includes/core/class-builtin.php:375 includes/core/class-builtin.php:395
4745
- msgid "Please enter a valid size"
4746
- msgstr ""
4747
-
4748
- #: includes/core/class-builtin.php:415
4749
- msgid "Number of years is not valid"
4750
- msgstr ""
4751
-
4752
- #: includes/core/class-builtin.php:484
4753
- msgid "You must add a shortcode to the content area"
4754
- msgstr ""
4755
-
4756
- #: includes/core/class-builtin.php:663 includes/core/class-user.php:1559
4757
- msgid "Only me"
4758
- msgstr ""
4759
-
4760
- #: includes/core/class-builtin.php:687 includes/core/class-builtin.php:690
4761
- #: includes/core/class-builtin.php:1097
4762
- msgid "Username or E-mail"
4763
- msgstr ""
4764
-
4765
- #: includes/core/class-builtin.php:742 includes/core/class-builtin.php:745
4766
- #: includes/core/class-builtin.php:1347
4767
- msgid "Website URL"
4768
- msgstr ""
4769
-
4770
- #: includes/core/class-builtin.php:753 includes/core/class-builtin.php:756
4771
- msgid "Registration Date"
4772
- msgstr ""
4773
-
4774
- #: includes/core/class-builtin.php:764 includes/core/class-builtin.php:767
4775
- msgid "Last Login"
4776
- msgstr ""
4777
-
4778
- #: includes/core/class-builtin.php:775 includes/core/class-builtin.php:778
4779
- msgid "E-mail Address"
4780
- msgstr ""
4781
-
4782
- #: includes/core/class-builtin.php:786 includes/core/class-builtin.php:789
4783
- msgid "Secondary E-mail Address"
4784
- msgstr ""
4785
-
4786
- #: includes/core/class-builtin.php:798 includes/core/class-builtin.php:801
4787
- msgid "Biography"
4788
- msgstr ""
4789
-
4790
- #: includes/core/class-builtin.php:807
4791
- msgid "Enter a bit about yourself..."
4792
- msgstr ""
4793
-
4794
- #: includes/core/class-builtin.php:811 includes/core/class-builtin.php:814
4795
- msgid "Birth Date"
4796
- msgstr ""
4797
-
4798
- #: includes/core/class-builtin.php:825 includes/core/class-builtin.php:828
4799
- msgid "Gender"
4800
- msgstr ""
4801
-
4802
- #: includes/core/class-builtin.php:832
4803
- msgid "Male"
4804
- msgstr ""
4805
-
4806
- #: includes/core/class-builtin.php:832
4807
- msgid "Female"
4808
- msgstr ""
4809
-
4810
- #: includes/core/class-builtin.php:836 includes/core/class-builtin.php:839
4811
- msgid "Country"
4812
- msgstr ""
4813
-
4814
- #: includes/core/class-builtin.php:840
4815
- msgid "Choose a Country"
4816
- msgstr ""
4817
-
4818
- #: includes/core/class-builtin.php:848 includes/core/class-builtin.php:851
4819
- msgid "Facebook"
4820
- msgstr ""
4821
-
4822
- #: includes/core/class-builtin.php:866 includes/core/class-builtin.php:869
4823
- msgid "Twitter"
4824
- msgstr ""
4825
-
4826
- #: includes/core/class-builtin.php:884 includes/core/class-builtin.php:887
4827
- msgid "LinkedIn"
4828
- msgstr ""
4829
-
4830
- #: includes/core/class-builtin.php:902 includes/core/class-builtin.php:905
4831
- msgid "Google+"
4832
- msgstr ""
4833
-
4834
- #: includes/core/class-builtin.php:920 includes/core/class-builtin.php:923
4835
- msgid "Instagram"
4836
- msgstr ""
4837
-
4838
- #: includes/core/class-builtin.php:938 includes/core/class-builtin.php:941
4839
- #: includes/core/class-builtin.php:1340
4840
- msgid "Skype ID"
4841
- msgstr ""
4842
-
4843
- #: includes/core/class-builtin.php:953 includes/core/class-builtin.php:956
4844
- msgid "YouTube"
4845
- msgstr ""
4846
-
4847
- #: includes/core/class-builtin.php:971 includes/core/class-builtin.php:974
4848
- msgid "SoundCloud"
4849
- msgstr ""
4850
-
4851
- #: includes/core/class-builtin.php:989 includes/core/class-builtin.php:992
4852
- msgid "VKontakte"
4853
- msgstr ""
4854
-
4855
- #: includes/core/class-builtin.php:1007
4856
- msgid "Roles (Dropdown)"
4857
- msgstr ""
4858
-
4859
- #: includes/core/class-builtin.php:1010 includes/core/class-builtin.php:1022
4860
- msgid "Account Type"
4861
- msgstr ""
4862
-
4863
- #: includes/core/class-builtin.php:1019
4864
- msgid "Roles (Radio)"
4865
- msgstr ""
4866
-
4867
- #: includes/core/class-builtin.php:1030
4868
- msgid "Languages"
4869
- msgstr ""
4870
-
4871
- #: includes/core/class-builtin.php:1033
4872
- msgid "Languages Spoken"
4873
- msgstr ""
4874
-
4875
- #: includes/core/class-builtin.php:1034
4876
- msgid "Select languages"
4877
- msgstr ""
4878
-
4879
- #: includes/core/class-builtin.php:1042 includes/core/class-builtin.php:1045
4880
- #: includes/core/class-builtin.php:1339
4881
- msgid "Phone Number"
4882
- msgstr ""
4883
-
4884
- #: includes/core/class-builtin.php:1054 includes/core/class-builtin.php:1057
4885
- msgid "Mobile Number"
4886
- msgstr ""
4887
-
4888
- #: includes/core/class-builtin.php:1068
4889
- msgid "Profile Photo"
4890
- msgstr ""
4891
-
4892
- #: includes/core/class-builtin.php:1071
4893
- msgid "Change your profile photo"
4894
- msgstr ""
4895
-
4896
- #: includes/core/class-builtin.php:1072
4897
- msgid "Upload your photo here"
4898
- msgstr ""
4899
-
4900
- #: includes/core/class-builtin.php:1082
4901
- msgid "Cover Photo"
4902
- msgstr ""
4903
-
4904
- #: includes/core/class-builtin.php:1085
4905
- #: includes/core/um-actions-profile.php:600
4906
- msgid "Change your cover photo"
4907
- msgstr ""
4908
-
4909
- #: includes/core/class-builtin.php:1086
4910
- msgid "Upload profile cover here"
4911
- msgstr ""
4912
-
4913
- #: includes/core/class-builtin.php:1100
4914
- msgid "Enter your username or email"
4915
- msgstr ""
4916
-
4917
- #: includes/core/class-builtin.php:1110 includes/core/class-builtin.php:1113
4918
- msgid "Profile Privacy"
4919
- msgstr ""
4920
-
4921
- #: includes/core/class-builtin.php:1114
4922
- msgid "Who can see your public profile?"
4923
- msgstr ""
4924
-
4925
- #: includes/core/class-builtin.php:1126 includes/core/class-builtin.php:1129
4926
- msgid "Hide my profile from directory"
4927
- msgstr ""
4928
-
4929
- #: includes/core/class-builtin.php:1130
4930
- msgid "Here you can hide yourself from appearing in public directory"
4931
- msgstr ""
4932
-
4933
- #: includes/core/class-builtin.php:1145
4934
- msgid ""
4935
- "If you confirm, everything related to your profile will be deleted "
4936
- "permanently from the site"
4937
- msgstr ""
4938
-
4939
- #: includes/core/class-builtin.php:1329
4940
- msgid "Alphabetic value only"
4941
- msgstr ""
4942
-
4943
- #: includes/core/class-builtin.php:1330
4944
- msgid "Alpha-numeric value"
4945
- msgstr ""
4946
-
4947
- #: includes/core/class-builtin.php:1331
4948
- msgid "English letters only"
4949
- msgstr ""
4950
-
4951
- #: includes/core/class-builtin.php:1332
4952
- msgid "Facebook URL"
4953
- msgstr ""
4954
-
4955
- #: includes/core/class-builtin.php:1333
4956
- msgid "Google+ URL"
4957
- msgstr ""
4958
-
4959
- #: includes/core/class-builtin.php:1334
4960
- msgid "Instagram URL"
4961
- msgstr ""
4962
-
4963
- #: includes/core/class-builtin.php:1335
4964
- msgid "LinkedIn URL"
4965
- msgstr ""
4966
-
4967
- #: includes/core/class-builtin.php:1336
4968
- msgid "VKontakte URL"
4969
- msgstr ""
4970
-
4971
- #: includes/core/class-builtin.php:1337
4972
- msgid "Lowercase only"
4973
- msgstr ""
4974
-
4975
- #: includes/core/class-builtin.php:1338
4976
- msgid "Numeric value only"
4977
- msgstr ""
4978
-
4979
- #: includes/core/class-builtin.php:1341
4980
- msgid "SoundCloud Profile"
4981
- msgstr ""
4982
-
4983
- #: includes/core/class-builtin.php:1342
4984
- msgid "Twitter URL"
4985
- msgstr ""
4986
-
4987
- #: includes/core/class-builtin.php:1343
4988
- msgid "Unique E-mail"
4989
- msgstr ""
4990
-
4991
- #: includes/core/class-builtin.php:1344
4992
- msgid "Unique Metakey value"
4993
- msgstr ""
4994
-
4995
- #: includes/core/class-builtin.php:1345
4996
- msgid "Unique Username"
4997
- msgstr ""
4998
-
4999
- #: includes/core/class-builtin.php:1346
5000
- msgid "Unique Username/E-mail"
5001
- msgstr ""
5002
-
5003
- #: includes/core/class-builtin.php:1348
5004
- msgid "YouTube Profile"
5005
- msgstr ""
5006
-
5007
- #: includes/core/class-builtin.php:1349
5008
- msgid "Custom Validation"
5009
- msgstr ""
5010
-
5011
- #: includes/core/class-builtin.php:1388
5012
- msgid "Afar"
5013
- msgstr ""
5014
-
5015
- #: includes/core/class-builtin.php:1389
5016
- msgid "Abkhazian"
5017
- msgstr ""
5018
-
5019
- #: includes/core/class-builtin.php:1390
5020
- msgid "Avestan"
5021
- msgstr ""
5022
-
5023
- #: includes/core/class-builtin.php:1391
5024
- msgid "Afrikaans"
5025
- msgstr ""
5026
-
5027
- #: includes/core/class-builtin.php:1392
5028
- msgid "Akan"
5029
- msgstr ""
5030
-
5031
- #: includes/core/class-builtin.php:1393
5032
- msgid "Amharic"
5033
- msgstr ""
5034
-
5035
- #: includes/core/class-builtin.php:1394
5036
- msgid "Aragonese"
5037
- msgstr ""
5038
-
5039
- #: includes/core/class-builtin.php:1395
5040
- msgid "Arabic"
5041
- msgstr ""
5042
-
5043
- #: includes/core/class-builtin.php:1396
5044
- msgid "Assamese"
5045
- msgstr ""
5046
-
5047
- #: includes/core/class-builtin.php:1397
5048
- msgid "Avaric"
5049
- msgstr ""
5050
-
5051
- #: includes/core/class-builtin.php:1398
5052
- msgid "Aymara"
5053
- msgstr ""
5054
-
5055
- #: includes/core/class-builtin.php:1399
5056
- msgid "Azerbaijani"
5057
- msgstr ""
5058
-
5059
- #: includes/core/class-builtin.php:1400
5060
- msgid "Bashkir"
5061
- msgstr ""
5062
-
5063
- #: includes/core/class-builtin.php:1401
5064
- msgid "Belarusian"
5065
- msgstr ""
5066
-
5067
- #: includes/core/class-builtin.php:1402
5068
- msgid "Bulgarian"
5069
- msgstr ""
5070
-
5071
- #: includes/core/class-builtin.php:1403
5072
- msgid "Bihari"
5073
- msgstr ""
5074
-
5075
- #: includes/core/class-builtin.php:1404
5076
- msgid "Bislama"
5077
- msgstr ""
5078
-
5079
- #: includes/core/class-builtin.php:1405
5080
- msgid "Bambara"
5081
- msgstr ""
5082
-
5083
- #: includes/core/class-builtin.php:1406
5084
- msgid "Bengali"
5085
- msgstr ""
5086
-
5087
- #: includes/core/class-builtin.php:1407
5088
- msgid "Tibetan"
5089
- msgstr ""
5090
-
5091
- #: includes/core/class-builtin.php:1408
5092
- msgid "Breton"
5093
- msgstr ""
5094
-
5095
- #: includes/core/class-builtin.php:1409
5096
- msgid "Bosnian"
5097
- msgstr ""
5098
-
5099
- #: includes/core/class-builtin.php:1410
5100
- msgid "Catalan"
5101
- msgstr ""
5102
-
5103
- #: includes/core/class-builtin.php:1411
5104
- msgid "Chechen"
5105
- msgstr ""
5106
-
5107
- #: includes/core/class-builtin.php:1412
5108
- msgid "Chamorro"
5109
- msgstr ""
5110
-
5111
- #: includes/core/class-builtin.php:1413
5112
- msgid "Corsican"
5113
- msgstr ""
5114
-
5115
- #: includes/core/class-builtin.php:1414
5116
- msgid "Cree"
5117
- msgstr ""
5118
-
5119
- #: includes/core/class-builtin.php:1415
5120
- msgid "Czech"
5121
- msgstr ""
5122
-
5123
- #: includes/core/class-builtin.php:1416
5124
- msgid "Church Slavic"
5125
- msgstr ""
5126
-
5127
- #: includes/core/class-builtin.php:1417
5128
- msgid "Chuvash"
5129
- msgstr ""
5130
-
5131
- #: includes/core/class-builtin.php:1418
5132
- msgid "Welsh"
5133
- msgstr ""
5134
-
5135
- #: includes/core/class-builtin.php:1419
5136
- msgid "Danish"
5137
- msgstr ""
5138
-
5139
- #: includes/core/class-builtin.php:1420
5140
- msgid "German"
5141
- msgstr ""
5142
-
5143
- #: includes/core/class-builtin.php:1421
5144
- msgid "Divehi"
5145
- msgstr ""
5146
-
5147
- #: includes/core/class-builtin.php:1422
5148
- msgid "Dzongkha"
5149
- msgstr ""
5150
-
5151
- #: includes/core/class-builtin.php:1423
5152
- msgid "Ewe"
5153
- msgstr ""
5154
-
5155
- #: includes/core/class-builtin.php:1424
5156
- msgid "Greek"
5157
- msgstr ""
5158
-
5159
- #: includes/core/class-builtin.php:1425
5160
- msgid "English"
5161
- msgstr ""
5162
-
5163
- #: includes/core/class-builtin.php:1426
5164
- msgid "Esperanto"
5165
- msgstr ""
5166
-
5167
- #: includes/core/class-builtin.php:1427
5168
- msgid "Spanish"
5169
- msgstr ""
5170
-
5171
- #: includes/core/class-builtin.php:1428
5172
- msgid "Estonian"
5173
- msgstr ""
5174
-
5175
- #: includes/core/class-builtin.php:1429
5176
- msgid "Basque"
5177
- msgstr ""
5178
-
5179
- #: includes/core/class-builtin.php:1430
5180
- msgid "Persian"
5181
- msgstr ""
5182
-
5183
- #: includes/core/class-builtin.php:1431
5184
- msgid "Fulah"
5185
- msgstr ""
5186
-
5187
- #: includes/core/class-builtin.php:1432
5188
- msgid "Finnish"
5189
- msgstr ""
5190
-
5191
- #: includes/core/class-builtin.php:1433
5192
- msgid "Fijian"
5193
- msgstr ""
5194
-
5195
- #: includes/core/class-builtin.php:1434
5196
- msgid "Faroese"
5197
- msgstr ""
5198
-
5199
- #: includes/core/class-builtin.php:1435
5200
- msgid "French"
5201
- msgstr ""
5202
-
5203
- #: includes/core/class-builtin.php:1436
5204
- msgid "Western Frisian"
5205
- msgstr ""
5206
-
5207
- #: includes/core/class-builtin.php:1437
5208
- msgid "Irish"
5209
- msgstr ""
5210
-
5211
- #: includes/core/class-builtin.php:1438
5212
- msgid "Scottish Gaelic"
5213
- msgstr ""
5214
-
5215
- #: includes/core/class-builtin.php:1439
5216
- msgid "Galician"
5217
- msgstr ""
5218
-
5219
- #: includes/core/class-builtin.php:1440
5220
- msgid "Guarani"
5221
- msgstr ""
5222
-
5223
- #: includes/core/class-builtin.php:1441
5224
- msgid "Gujarati"
5225
- msgstr ""
5226
-
5227
- #: includes/core/class-builtin.php:1442
5228
- msgid "Manx"
5229
- msgstr ""
5230
-
5231
- #: includes/core/class-builtin.php:1443
5232
- msgid "Hausa"
5233
- msgstr ""
5234
-
5235
- #: includes/core/class-builtin.php:1444
5236
- msgid "Hebrew"
5237
- msgstr ""
5238
-
5239
- #: includes/core/class-builtin.php:1445
5240
- msgid "Hindi"
5241
- msgstr ""
5242
-
5243
- #: includes/core/class-builtin.php:1446
5244
- msgid "Hiri Motu"
5245
- msgstr ""
5246
-
5247
- #: includes/core/class-builtin.php:1447
5248
- msgid "Croatian"
5249
- msgstr ""
5250
-
5251
- #: includes/core/class-builtin.php:1448
5252
- msgid "Haitian"
5253
- msgstr ""
5254
-
5255
- #: includes/core/class-builtin.php:1449
5256
- msgid "Hungarian"
5257
- msgstr ""
5258
-
5259
- #: includes/core/class-builtin.php:1450
5260
- msgid "Armenian"
5261
- msgstr ""
5262
-
5263
- #: includes/core/class-builtin.php:1451
5264
- msgid "Herero"
5265
- msgstr ""
5266
-
5267
- #: includes/core/class-builtin.php:1452
5268
- msgid "Interlingua (International Auxiliary Language Association)"
5269
- msgstr ""
5270
-
5271
- #: includes/core/class-builtin.php:1453
5272
- msgid "Indonesian"
5273
- msgstr ""
5274
-
5275
- #: includes/core/class-builtin.php:1454
5276
- msgid "Interlingue"
5277
- msgstr ""
5278
-
5279
- #: includes/core/class-builtin.php:1455
5280
- msgid "Igbo"
5281
- msgstr ""
5282
-
5283
- #: includes/core/class-builtin.php:1456
5284
- msgid "Sichuan Yi"
5285
- msgstr ""
5286
-
5287
- #: includes/core/class-builtin.php:1457
5288
- msgid "Inupiaq"
5289
- msgstr ""
5290
-
5291
- #: includes/core/class-builtin.php:1458
5292
- msgid "Ido"
5293
- msgstr ""
5294
-
5295
- #: includes/core/class-builtin.php:1459
5296
- msgid "Icelandic"
5297
- msgstr ""
5298
-
5299
- #: includes/core/class-builtin.php:1460
5300
- msgid "Italian"
5301
- msgstr ""
5302
-
5303
- #: includes/core/class-builtin.php:1461
5304
- msgid "Inuktitut"
5305
- msgstr ""
5306
-
5307
- #: includes/core/class-builtin.php:1462
5308
- msgid "Japanese"
5309
- msgstr ""
5310
-
5311
- #: includes/core/class-builtin.php:1463
5312
- msgid "Javanese"
5313
- msgstr ""
5314
-
5315
- #: includes/core/class-builtin.php:1464
5316
- msgid "Georgian"
5317
- msgstr ""
5318
-
5319
- #: includes/core/class-builtin.php:1465
5320
- msgid "Kongo"
5321
- msgstr ""
5322
-
5323
- #: includes/core/class-builtin.php:1466
5324
- msgid "Kikuyu"
5325
- msgstr ""
5326
-
5327
- #: includes/core/class-builtin.php:1467
5328
- msgid "Kwanyama"
5329
- msgstr ""
5330
-
5331
- #: includes/core/class-builtin.php:1468
5332
- msgid "Kazakh"
5333
- msgstr ""
5334
-
5335
- #: includes/core/class-builtin.php:1469
5336
- msgid "Kalaallisut"
5337
- msgstr ""
5338
-
5339
- #: includes/core/class-builtin.php:1470
5340
- msgid "Khmer"
5341
- msgstr ""
5342
-
5343
- #: includes/core/class-builtin.php:1471
5344
- msgid "Kannada"
5345
- msgstr ""
5346
-
5347
- #: includes/core/class-builtin.php:1472
5348
- msgid "Korean"
5349
- msgstr ""
5350
-
5351
- #: includes/core/class-builtin.php:1473
5352
- msgid "Kanuri"
5353
- msgstr ""
5354
-
5355
- #: includes/core/class-builtin.php:1474
5356
- msgid "Kashmiri"
5357
- msgstr ""
5358
-
5359
- #: includes/core/class-builtin.php:1475
5360
- msgid "Kurdish"
5361
- msgstr ""
5362
-
5363
- #: includes/core/class-builtin.php:1476
5364
- msgid "Komi"
5365
- msgstr ""
5366
-
5367
- #: includes/core/class-builtin.php:1477
5368
- msgid "Cornish"
5369
- msgstr ""
5370
-
5371
- #: includes/core/class-builtin.php:1478
5372
- msgid "Kirghiz"
5373
- msgstr ""
5374
-
5375
- #: includes/core/class-builtin.php:1479
5376
- msgid "Latin"
5377
- msgstr ""
5378
-
5379
- #: includes/core/class-builtin.php:1480
5380
- msgid "Luxembourgish"
5381
- msgstr ""
5382
-
5383
- #: includes/core/class-builtin.php:1481
5384
- msgid "Ganda"
5385
- msgstr ""
5386
-
5387
- #: includes/core/class-builtin.php:1482
5388
- msgid "Limburgish"
5389
- msgstr ""
5390
-
5391
- #: includes/core/class-builtin.php:1483
5392
- msgid "Lingala"
5393
- msgstr ""
5394
-
5395
- #: includes/core/class-builtin.php:1484
5396
- msgid "Lao"
5397
- msgstr ""
5398
-
5399
- #: includes/core/class-builtin.php:1485
5400
- msgid "Lithuanian"
5401
- msgstr ""
5402
-
5403
- #: includes/core/class-builtin.php:1486
5404
- msgid "Luba-Katanga"
5405
- msgstr ""
5406
-
5407
- #: includes/core/class-builtin.php:1487
5408
- msgid "Latvian"
5409
- msgstr ""
5410
-
5411
- #: includes/core/class-builtin.php:1488
5412
- msgid "Malagasy"
5413
- msgstr ""
5414
-
5415
- #: includes/core/class-builtin.php:1489
5416
- msgid "Marshallese"
5417
- msgstr ""
5418
-
5419
- #: includes/core/class-builtin.php:1490
5420
- msgid "Maori"
5421
- msgstr ""
5422
-
5423
- #: includes/core/class-builtin.php:1491
5424
- msgid "Macedonian"
5425
- msgstr ""
5426
-
5427
- #: includes/core/class-builtin.php:1492
5428
- msgid "Malayalam"
5429
- msgstr ""
5430
-
5431
- #: includes/core/class-builtin.php:1493
5432
- msgid "Mongolian"
5433
- msgstr ""
5434
-
5435
- #: includes/core/class-builtin.php:1494
5436
- msgid "Marathi"
5437
- msgstr ""
5438
-
5439
- #: includes/core/class-builtin.php:1495
5440
- msgid "Malay"
5441
- msgstr ""
5442
-
5443
- #: includes/core/class-builtin.php:1496
5444
- msgid "Maltese"
5445
- msgstr ""
5446
-
5447
- #: includes/core/class-builtin.php:1497
5448
- msgid "Burmese"
5449
- msgstr ""
5450
-
5451
- #: includes/core/class-builtin.php:1498 includes/core/class-builtin.php:1729
5452
- msgid "Nauru"
5453
- msgstr ""
5454
-
5455
- #: includes/core/class-builtin.php:1499
5456
- msgid "Norwegian Bokmal"
5457
- msgstr ""
5458
-
5459
- #: includes/core/class-builtin.php:1500
5460
- msgid "North Ndebele"
5461
- msgstr ""
5462
-
5463
- #: includes/core/class-builtin.php:1501
5464
- msgid "Nepali"
5465
- msgstr ""
5466
-
5467
- #: includes/core/class-builtin.php:1502
5468
- msgid "Ndonga"
5469
- msgstr ""
5470
-
5471
- #: includes/core/class-builtin.php:1503
5472
- msgid "Dutch"
5473
- msgstr ""
5474
-
5475
- #: includes/core/class-builtin.php:1504
5476
- msgid "Norwegian Nynorsk"
5477
- msgstr ""
5478
-
5479
- #: includes/core/class-builtin.php:1505
5480
- msgid "Norwegian"
5481
- msgstr ""
5482
-
5483
- #: includes/core/class-builtin.php:1506
5484
- msgid "South Ndebele"
5485
- msgstr ""
5486
-
5487
- #: includes/core/class-builtin.php:1507
5488
- msgid "Navajo"
5489
- msgstr ""
5490
-
5491
- #: includes/core/class-builtin.php:1508
5492
- msgid "Chichewa"
5493
- msgstr ""
5494
-
5495
- #: includes/core/class-builtin.php:1509
5496
- msgid "Occitan"
5497
- msgstr ""
5498
-
5499
- #: includes/core/class-builtin.php:1510
5500
- msgid "Ojibwa"
5501
- msgstr ""
5502
-
5503
- #: includes/core/class-builtin.php:1511
5504
- msgid "Oromo"
5505
- msgstr ""
5506
-
5507
- #: includes/core/class-builtin.php:1512
5508
- msgid "Oriya"
5509
- msgstr ""
5510
-
5511
- #: includes/core/class-builtin.php:1513
5512
- msgid "Ossetian"
5513
- msgstr ""
5514
-
5515
- #: includes/core/class-builtin.php:1514
5516
- msgid "Panjabi"
5517
- msgstr ""
5518
-
5519
- #: includes/core/class-builtin.php:1515
5520
- msgid "Pali"
5521
- msgstr ""
5522
-
5523
- #: includes/core/class-builtin.php:1516
5524
- msgid "Polish"
5525
- msgstr ""
5526
-
5527
- #: includes/core/class-builtin.php:1517
5528
- msgid "Pashto"
5529
- msgstr ""
5530
-
5531
- #: includes/core/class-builtin.php:1518
5532
- msgid "Portuguese"
5533
- msgstr ""
5534
-
5535
- #: includes/core/class-builtin.php:1519
5536
- msgid "Quechua"
5537
- msgstr ""
5538
-
5539
- #: includes/core/class-builtin.php:1520
5540
- msgid "Raeto-Romance"
5541
- msgstr ""
5542
-
5543
- #: includes/core/class-builtin.php:1521
5544
- msgid "Kirundi"
5545
- msgstr ""
5546
-
5547
- #: includes/core/class-builtin.php:1522
5548
- msgid "Romanian"
5549
- msgstr ""
5550
-
5551
- #: includes/core/class-builtin.php:1523
5552
- msgid "Russian"
5553
- msgstr ""
5554
-
5555
- #: includes/core/class-builtin.php:1524
5556
- msgid "Kinyarwanda"
5557
- msgstr ""
5558
-
5559
- #: includes/core/class-builtin.php:1525
5560
- msgid "Sanskrit"
5561
- msgstr ""
5562
-
5563
- #: includes/core/class-builtin.php:1526
5564
- msgid "Sardinian"
5565
- msgstr ""
5566
-
5567
- #: includes/core/class-builtin.php:1527
5568
- msgid "Sindhi"
5569
- msgstr ""
5570
-
5571
- #: includes/core/class-builtin.php:1528
5572
- msgid "Northern Sami"
5573
- msgstr ""
5574
-
5575
- #: includes/core/class-builtin.php:1529
5576
- msgid "Sango"
5577
- msgstr ""
5578
-
5579
- #: includes/core/class-builtin.php:1530
5580
- msgid "Sinhala"
5581
- msgstr ""
5582
-
5583
- #: includes/core/class-builtin.php:1531
5584
- msgid "Slovak"
5585
- msgstr ""
5586
-
5587
- #: includes/core/class-builtin.php:1532
5588
- msgid "Slovenian"
5589
- msgstr ""
5590
-
5591
- #: includes/core/class-builtin.php:1533
5592
- msgid "Samoan"
5593
- msgstr ""
5594
-
5595
- #: includes/core/class-builtin.php:1534
5596
- msgid "Shona"
5597
- msgstr ""
5598
-
5599
- #: includes/core/class-builtin.php:1535
5600
- msgid "Somali"
5601
- msgstr ""
5602
-
5603
- #: includes/core/class-builtin.php:1536
5604
- msgid "Albanian"
5605
- msgstr ""
5606
-
5607
- #: includes/core/class-builtin.php:1537
5608
- msgid "Serbian"
5609
- msgstr ""
5610
-
5611
- #: includes/core/class-builtin.php:1538
5612
- msgid "Swati"
5613
- msgstr ""
5614
-
5615
- #: includes/core/class-builtin.php:1539
5616
- msgid "Southern Sotho"
5617
- msgstr ""
5618
-
5619
- #: includes/core/class-builtin.php:1540
5620
- msgid "Sundanese"
5621
- msgstr ""
5622
-
5623
- #: includes/core/class-builtin.php:1541
5624
- msgid "Swedish"
5625
- msgstr ""
5626
-
5627
- #: includes/core/class-builtin.php:1542
5628
- msgid "Swahili"
5629
- msgstr ""
5630
-
5631
- #: includes/core/class-builtin.php:1543
5632
- msgid "Tamil"
5633
- msgstr ""
5634
-
5635
- #: includes/core/class-builtin.php:1544
5636
- msgid "Telugu"
5637
- msgstr ""
5638
-
5639
- #: includes/core/class-builtin.php:1545
5640
- msgid "Tajik"
5641
- msgstr ""
5642
-
5643
- #: includes/core/class-builtin.php:1546
5644
- msgid "Thai"
5645
- msgstr ""
5646
-
5647
- #: includes/core/class-builtin.php:1547
5648
- msgid "Tigrinya"
5649
- msgstr ""
5650
-
5651
- #: includes/core/class-builtin.php:1548
5652
- msgid "Turkmen"
5653
- msgstr ""
5654
-
5655
- #: includes/core/class-builtin.php:1549
5656
- msgid "Tagalog"
5657
- msgstr ""
5658
-
5659
- #: includes/core/class-builtin.php:1550
5660
- msgid "Tswana"
5661
- msgstr ""
5662
-
5663
- #: includes/core/class-builtin.php:1551 includes/core/class-builtin.php:1799
5664
- msgid "Tonga"
5665
- msgstr ""
5666
-
5667
- #: includes/core/class-builtin.php:1552
5668
- msgid "Turkish"
5669
- msgstr ""
5670
-
5671
- #: includes/core/class-builtin.php:1553
5672
- msgid "Tsonga"
5673
- msgstr ""
5674
-
5675
- #: includes/core/class-builtin.php:1554
5676
- msgid "Tatar"
5677
- msgstr ""
5678
-
5679
- #: includes/core/class-builtin.php:1555
5680
- msgid "Twi"
5681
- msgstr ""
5682
-
5683
- #: includes/core/class-builtin.php:1556
5684
- msgid "Tahitian"
5685
- msgstr ""
5686
-
5687
- #: includes/core/class-builtin.php:1557
5688
- msgid "Uighur"
5689
- msgstr ""
5690
-
5691
- #: includes/core/class-builtin.php:1558
5692
- msgid "Ukrainian"
5693
- msgstr ""
5694
-
5695
- #: includes/core/class-builtin.php:1559
5696
- msgid "Urdu"
5697
- msgstr ""
5698
-
5699
- #: includes/core/class-builtin.php:1560
5700
- msgid "Uzbek"
5701
- msgstr ""
5702
-
5703
- #: includes/core/class-builtin.php:1561
5704
- msgid "Venda"
5705
- msgstr ""
5706
-
5707
- #: includes/core/class-builtin.php:1562
5708
- msgid "Vietnamese"
5709
- msgstr ""
5710
-
5711
- #: includes/core/class-builtin.php:1563
5712
- msgid "Volapuk"
5713
- msgstr ""
5714
-
5715
- #: includes/core/class-builtin.php:1564
5716
- msgid "Walloon"
5717
- msgstr ""
5718
-
5719
- #: includes/core/class-builtin.php:1565
5720
- msgid "Wolof"
5721
- msgstr ""
5722
-
5723
- #: includes/core/class-builtin.php:1566
5724
- msgid "Xhosa"
5725
- msgstr ""
5726
-
5727
- #: includes/core/class-builtin.php:1567
5728
- msgid "Yiddish"
5729
- msgstr ""
5730
-
5731
- #: includes/core/class-builtin.php:1568
5732
- msgid "Yoruba"
5733
- msgstr ""
5734
-
5735
- #: includes/core/class-builtin.php:1569
5736
- msgid "Zhuang"
5737
- msgstr ""
5738
-
5739
- #: includes/core/class-builtin.php:1570
5740
- msgid "Chinese"
5741
- msgstr ""
5742
-
5743
- #: includes/core/class-builtin.php:1571
5744
- msgid "Zulu"
5745
- msgstr ""
5746
-
5747
- #: includes/core/class-builtin.php:1577
5748
- msgid "Afghanistan"
5749
- msgstr ""
5750
-
5751
- #: includes/core/class-builtin.php:1578
5752
- msgid "Åland Islands"
5753
- msgstr ""
5754
-
5755
- #: includes/core/class-builtin.php:1579
5756
- msgid "Albania"
5757
- msgstr ""
5758
-
5759
- #: includes/core/class-builtin.php:1580
5760
- msgid "Algeria"
5761
- msgstr ""
5762
-
5763
- #: includes/core/class-builtin.php:1581
5764
- msgid "American Samoa"
5765
- msgstr ""
5766
-
5767
- #: includes/core/class-builtin.php:1582
5768
- msgid "Andorra"
5769
- msgstr ""
5770
-
5771
- #: includes/core/class-builtin.php:1583
5772
- msgid "Angola"
5773
- msgstr ""
5774
-
5775
- #: includes/core/class-builtin.php:1584
5776
- msgid "Anguilla"
5777
- msgstr ""
5778
-
5779
- #: includes/core/class-builtin.php:1585
5780
- msgid "Antarctica"
5781
- msgstr ""
5782
-
5783
- #: includes/core/class-builtin.php:1586
5784
- msgid "Antigua and Barbuda"
5785
- msgstr ""
5786
-
5787
- #: includes/core/class-builtin.php:1587
5788
- msgid "Argentina"
5789
- msgstr ""
5790
-
5791
- #: includes/core/class-builtin.php:1588
5792
- msgid "Armenia"
5793
- msgstr ""
5794
-
5795
- #: includes/core/class-builtin.php:1589
5796
- msgid "Aruba"
5797
- msgstr ""
5798
-
5799
- #: includes/core/class-builtin.php:1590
5800
- msgid "Australia"
5801
- msgstr ""
5802
-
5803
- #: includes/core/class-builtin.php:1591
5804
- msgid "Austria"
5805
- msgstr ""
5806
-
5807
- #: includes/core/class-builtin.php:1592
5808
- msgid "Azerbaijan"
5809
- msgstr ""
5810
-
5811
- #: includes/core/class-builtin.php:1593
5812
- msgid "Bahamas"
5813
- msgstr ""
5814
-
5815
- #: includes/core/class-builtin.php:1594
5816
- msgid "Bahrain"
5817
- msgstr ""
5818
-
5819
- #: includes/core/class-builtin.php:1595
5820
- msgid "Bangladesh"
5821
- msgstr ""
5822
-
5823
- #: includes/core/class-builtin.php:1596
5824
- msgid "Barbados"
5825
- msgstr ""
5826
-
5827
- #: includes/core/class-builtin.php:1597
5828
- msgid "Belarus"
5829
- msgstr ""
5830
-
5831
- #: includes/core/class-builtin.php:1598
5832
- msgid "Belgium"
5833
- msgstr ""
5834
-
5835
- #: includes/core/class-builtin.php:1599
5836
- msgid "Belize"
5837
- msgstr ""
5838
-
5839
- #: includes/core/class-builtin.php:1600
5840
- msgid "Benin"
5841
- msgstr ""
5842
-
5843
- #: includes/core/class-builtin.php:1601
5844
- msgid "Bermuda"
5845
- msgstr ""
5846
-
5847
- #: includes/core/class-builtin.php:1602
5848
- msgid "Bhutan"
5849
- msgstr ""
5850
-
5851
- #: includes/core/class-builtin.php:1603
5852
- msgid "Bolivia, Plurinational State of"
5853
- msgstr ""
5854
-
5855
- #: includes/core/class-builtin.php:1604
5856
- msgid "Bosnia and Herzegovina"
5857
- msgstr ""
5858
-
5859
- #: includes/core/class-builtin.php:1605
5860
- msgid "Botswana"
5861
- msgstr ""
5862
-
5863
- #: includes/core/class-builtin.php:1606
5864
- msgid "Bouvet Island"
5865
- msgstr ""
5866
-
5867
- #: includes/core/class-builtin.php:1607
5868
- msgid "Brazil"
5869
- msgstr ""
5870
-
5871
- #: includes/core/class-builtin.php:1608
5872
- msgid "British Indian Ocean Territory"
5873
- msgstr ""
5874
-
5875
- #: includes/core/class-builtin.php:1609
5876
- msgid "Brunei Darussalam"
5877
- msgstr ""
5878
-
5879
- #: includes/core/class-builtin.php:1610
5880
- msgid "Bulgaria"
5881
- msgstr ""
5882
-
5883
- #: includes/core/class-builtin.php:1611
5884
- msgid "Burkina Faso"
5885
- msgstr ""
5886
-
5887
- #: includes/core/class-builtin.php:1612
5888
- msgid "Burundi"
5889
- msgstr ""
5890
-
5891
- #: includes/core/class-builtin.php:1613
5892
- msgid "Cambodia"
5893
- msgstr ""
5894
-
5895
- #: includes/core/class-builtin.php:1614
5896
- msgid "Cameroon"
5897
- msgstr ""
5898
-
5899
- #: includes/core/class-builtin.php:1615
5900
- msgid "Canada"
5901
- msgstr ""
5902
-
5903
- #: includes/core/class-builtin.php:1616
5904
- msgid "Cape Verde"
5905
- msgstr ""
5906
-
5907
- #: includes/core/class-builtin.php:1617
5908
- msgid "Cayman Islands"
5909
- msgstr ""
5910
-
5911
- #: includes/core/class-builtin.php:1618
5912
- msgid "Central African Republic"
5913
- msgstr ""
5914
-
5915
- #: includes/core/class-builtin.php:1619
5916
- msgid "Chad"
5917
- msgstr ""
5918
-
5919
- #: includes/core/class-builtin.php:1620
5920
- msgid "Chile"
5921
- msgstr ""
5922
-
5923
- #: includes/core/class-builtin.php:1621
5924
- msgid "China"
5925
- msgstr ""
5926
-
5927
- #: includes/core/class-builtin.php:1622
5928
- msgid "Christmas Island"
5929
- msgstr ""
5930
-
5931
- #: includes/core/class-builtin.php:1623
5932
- msgid "Cocos (Keeling) Islands"
5933
- msgstr ""
5934
-
5935
- #: includes/core/class-builtin.php:1624
5936
- msgid "Colombia"
5937
- msgstr ""
5938
-
5939
- #: includes/core/class-builtin.php:1625
5940
- msgid "Comoros"
5941
- msgstr ""
5942
-
5943
- #: includes/core/class-builtin.php:1626
5944
- msgid "Congo"
5945
- msgstr ""
5946
-
5947
- #: includes/core/class-builtin.php:1627
5948
- msgid "Congo, the Democratic Republic of the"
5949
- msgstr ""
5950
-
5951
- #: includes/core/class-builtin.php:1628
5952
- msgid "Cook Islands"
5953
- msgstr ""
5954
-
5955
- #: includes/core/class-builtin.php:1629
5956
- msgid "Costa Rica"
5957
- msgstr ""
5958
-
5959
- #: includes/core/class-builtin.php:1630
5960
- msgid "Côte d'Ivoire"
5961
- msgstr ""
5962
-
5963
- #: includes/core/class-builtin.php:1631
5964
- msgid "Croatia"
5965
- msgstr ""
5966
-
5967
- #: includes/core/class-builtin.php:1632
5968
- msgid "Cuba"
5969
- msgstr ""
5970
-
5971
- #: includes/core/class-builtin.php:1633
5972
- msgid "Cyprus"
5973
- msgstr ""
5974
-
5975
- #: includes/core/class-builtin.php:1634
5976
- msgid "Czech Republic"
5977
- msgstr ""
5978
-
5979
- #: includes/core/class-builtin.php:1635
5980
- msgid "Denmark"
5981
- msgstr ""
5982
-
5983
- #: includes/core/class-builtin.php:1636
5984
- msgid "Djibouti"
5985
- msgstr ""
5986
-
5987
- #: includes/core/class-builtin.php:1637
5988
- msgid "Dominica"
5989
- msgstr ""
5990
-
5991
- #: includes/core/class-builtin.php:1638
5992
- msgid "Dominican Republic"
5993
- msgstr ""
5994
-
5995
- #: includes/core/class-builtin.php:1639
5996
- msgid "Ecuador"
5997
- msgstr ""
5998
-
5999
- #: includes/core/class-builtin.php:1640
6000
- msgid "Egypt"
6001
- msgstr ""
6002
-
6003
- #: includes/core/class-builtin.php:1641
6004
- msgid "El Salvador"
6005
- msgstr ""
6006
-
6007
- #: includes/core/class-builtin.php:1642
6008
- msgid "Equatorial Guinea"
6009
- msgstr ""
6010
-
6011
- #: includes/core/class-builtin.php:1643
6012
- msgid "Eritrea"
6013
- msgstr ""
6014
-
6015
- #: includes/core/class-builtin.php:1644
6016
- msgid "Estonia"
6017
- msgstr ""
6018
-
6019
- #: includes/core/class-builtin.php:1645
6020
- msgid "Ethiopia"
6021
- msgstr ""
6022
-
6023
- #: includes/core/class-builtin.php:1646
6024
- msgid "Falkland Islands (Malvinas)"
6025
- msgstr ""
6026
-
6027
- #: includes/core/class-builtin.php:1647
6028
- msgid "Faroe Islands"
6029
- msgstr ""
6030
-
6031
- #: includes/core/class-builtin.php:1648
6032
- msgid "Fiji"
6033
- msgstr ""
6034
-
6035
- #: includes/core/class-builtin.php:1649
6036
- msgid "Finland"
6037
- msgstr ""
6038
-
6039
- #: includes/core/class-builtin.php:1650
6040
- msgid "France"
6041
- msgstr ""
6042
-
6043
- #: includes/core/class-builtin.php:1651
6044
- msgid "French Guiana"
6045
- msgstr ""
6046
-
6047
- #: includes/core/class-builtin.php:1652
6048
- msgid "French Polynesia"
6049
- msgstr ""
6050
-
6051
- #: includes/core/class-builtin.php:1653
6052
- msgid "French Southern Territories"
6053
- msgstr ""
6054
-
6055
- #: includes/core/class-builtin.php:1654
6056
- msgid "Gabon"
6057
- msgstr ""
6058
-
6059
- #: includes/core/class-builtin.php:1655
6060
- msgid "Gambia"
6061
- msgstr ""
6062
-
6063
- #: includes/core/class-builtin.php:1656
6064
- msgid "Georgia"
6065
- msgstr ""
6066
-
6067
- #: includes/core/class-builtin.php:1657
6068
- msgid "Germany"
6069
- msgstr ""
6070
-
6071
- #: includes/core/class-builtin.php:1658
6072
- msgid "Ghana"
6073
- msgstr ""
6074
-
6075
- #: includes/core/class-builtin.php:1659
6076
- msgid "Gibraltar"
6077
- msgstr ""
6078
-
6079
- #: includes/core/class-builtin.php:1660
6080
- msgid "Greece"
6081
- msgstr ""
6082
-
6083
- #: includes/core/class-builtin.php:1661
6084
- msgid "Greenland"
6085
- msgstr ""
6086
-
6087
- #: includes/core/class-builtin.php:1662
6088
- msgid "Grenada"
6089
- msgstr ""
6090
-
6091
- #: includes/core/class-builtin.php:1663
6092
- msgid "Guadeloupe"
6093
- msgstr ""
6094
-
6095
- #: includes/core/class-builtin.php:1664
6096
- msgid "Guam"
6097
- msgstr ""
6098
-
6099
- #: includes/core/class-builtin.php:1665
6100
- msgid "Guatemala"
6101
- msgstr ""
6102
-
6103
- #: includes/core/class-builtin.php:1666
6104
- msgid "Guernsey"
6105
- msgstr ""
6106
-
6107
- #: includes/core/class-builtin.php:1667
6108
- msgid "Guinea"
6109
- msgstr ""
6110
-
6111
- #: includes/core/class-builtin.php:1668
6112
- msgid "Guinea-Bissau"
6113
- msgstr ""
6114
-
6115
- #: includes/core/class-builtin.php:1669
6116
- msgid "Guyana"
6117
- msgstr ""
6118
-
6119
- #: includes/core/class-builtin.php:1670
6120
- msgid "Haiti"
6121
- msgstr ""
6122
-
6123
- #: includes/core/class-builtin.php:1671
6124
- msgid "Heard Island and McDonald Islands"
6125
- msgstr ""
6126
-
6127
- #: includes/core/class-builtin.php:1672
6128
- msgid "Holy See (Vatican City State)"
6129
- msgstr ""
6130
-
6131
- #: includes/core/class-builtin.php:1673
6132
- msgid "Honduras"
6133
- msgstr ""
6134
-
6135
- #: includes/core/class-builtin.php:1674
6136
- msgid "Hong Kong"
6137
- msgstr ""
6138
-
6139
- #: includes/core/class-builtin.php:1675
6140
- msgid "Hungary"
6141
- msgstr ""
6142
-
6143
- #: includes/core/class-builtin.php:1676
6144
- msgid "Iceland"
6145
- msgstr ""
6146
-
6147
- #: includes/core/class-builtin.php:1677
6148
- msgid "India"
6149
- msgstr ""
6150
-
6151
- #: includes/core/class-builtin.php:1678
6152
- msgid "Indonesia"
6153
- msgstr ""
6154
-
6155
- #: includes/core/class-builtin.php:1679
6156
- msgid "Iran, Islamic Republic of"
6157
- msgstr ""
6158
-
6159
- #: includes/core/class-builtin.php:1680
6160
- msgid "Iraq"
6161
- msgstr ""
6162
-
6163
- #: includes/core/class-builtin.php:1681
6164
- msgid "Ireland"
6165
- msgstr ""
6166
-
6167
- #: includes/core/class-builtin.php:1682
6168
- msgid "Isle of Man"
6169
- msgstr ""
6170
-
6171
- #: includes/core/class-builtin.php:1683
6172
- msgid "Israel"
6173
- msgstr ""
6174
-
6175
- #: includes/core/class-builtin.php:1684
6176
- msgid "Italy"
6177
- msgstr ""
6178
-
6179
- #: includes/core/class-builtin.php:1685
6180
- msgid "Jamaica"
6181
- msgstr ""
6182
-
6183
- #: includes/core/class-builtin.php:1686
6184
- msgid "Japan"
6185
- msgstr ""
6186
-
6187
- #: includes/core/class-builtin.php:1687
6188
- msgid "Jersey"
6189
- msgstr ""
6190
-
6191
- #: includes/core/class-builtin.php:1688
6192
- msgid "Jordan"
6193
- msgstr ""
6194
-
6195
- #: includes/core/class-builtin.php:1689
6196
- msgid "Kazakhstan"
6197
- msgstr ""
6198
-
6199
- #: includes/core/class-builtin.php:1690
6200
- msgid "Kenya"
6201
- msgstr ""
6202
-
6203
- #: includes/core/class-builtin.php:1691
6204
- msgid "Kiribati"
6205
- msgstr ""
6206
-
6207
- #: includes/core/class-builtin.php:1692
6208
- msgid "Korea, Democratic People's Republic of"
6209
- msgstr ""
6210
-
6211
- #: includes/core/class-builtin.php:1693
6212
- msgid "Korea, Republic of"
6213
- msgstr ""
6214
-
6215
- #: includes/core/class-builtin.php:1694
6216
- msgid "Kuwait"
6217
- msgstr ""
6218
-
6219
- #: includes/core/class-builtin.php:1695
6220
- msgid "Kyrgyzstan"
6221
- msgstr ""
6222
-
6223
- #: includes/core/class-builtin.php:1696
6224
- msgid "Lao People's Democratic Republic"
6225
- msgstr ""
6226
-
6227
- #: includes/core/class-builtin.php:1697
6228
- msgid "Latvia"
6229
- msgstr ""
6230
-
6231
- #: includes/core/class-builtin.php:1698
6232
- msgid "Lebanon"
6233
- msgstr ""
6234
-
6235
- #: includes/core/class-builtin.php:1699
6236
- msgid "Lesotho"
6237
- msgstr ""
6238
-
6239
- #: includes/core/class-builtin.php:1700
6240
- msgid "Liberia"
6241
- msgstr ""
6242
-
6243
- #: includes/core/class-builtin.php:1701
6244
- msgid "Libyan Arab Jamahiriya"
6245
- msgstr ""
6246
-
6247
- #: includes/core/class-builtin.php:1702
6248
- msgid "Liechtenstein"
6249
- msgstr ""
6250
-
6251
- #: includes/core/class-builtin.php:1703
6252
- msgid "Lithuania"
6253
- msgstr ""
6254
-
6255
- #: includes/core/class-builtin.php:1704
6256
- msgid "Luxembourg"
6257
- msgstr ""
6258
-
6259
- #: includes/core/class-builtin.php:1705
6260
- msgid "Macao"
6261
- msgstr ""
6262
-
6263
- #: includes/core/class-builtin.php:1706
6264
- msgid "Macedonia, the former Yugoslav Republic of"
6265
- msgstr ""
6266
-
6267
- #: includes/core/class-builtin.php:1707
6268
- msgid "Madagascar"
6269
- msgstr ""
6270
-
6271
- #: includes/core/class-builtin.php:1708
6272
- msgid "Malawi"
6273
- msgstr ""
6274
-
6275
- #: includes/core/class-builtin.php:1709
6276
- msgid "Malaysia"
6277
- msgstr ""
6278
-
6279
- #: includes/core/class-builtin.php:1710
6280
- msgid "Maldives"
6281
- msgstr ""
6282
-
6283
- #: includes/core/class-builtin.php:1711
6284
- msgid "Mali"
6285
- msgstr ""
6286
-
6287
- #: includes/core/class-builtin.php:1712
6288
- msgid "Malta"
6289
- msgstr ""
6290
-
6291
- #: includes/core/class-builtin.php:1713
6292
- msgid "Marshall Islands"
6293
- msgstr ""
6294
-
6295
- #: includes/core/class-builtin.php:1714
6296
- msgid "Martinique"
6297
- msgstr ""
6298
-
6299
- #: includes/core/class-builtin.php:1715
6300
- msgid "Mauritania"
6301
- msgstr ""
6302
-
6303
- #: includes/core/class-builtin.php:1716
6304
- msgid "Mauritius"
6305
- msgstr ""
6306
-
6307
- #: includes/core/class-builtin.php:1717
6308
- msgid "Mayotte"
6309
- msgstr ""
6310
-
6311
- #: includes/core/class-builtin.php:1718
6312
- msgid "Mexico"
6313
- msgstr ""
6314
-
6315
- #: includes/core/class-builtin.php:1719
6316
- msgid "Micronesia, Federated States of"
6317
- msgstr ""
6318
-
6319
- #: includes/core/class-builtin.php:1720
6320
- msgid "Moldova, Republic of"
6321
- msgstr ""
6322
-
6323
- #: includes/core/class-builtin.php:1721
6324
- msgid "Monaco"
6325
- msgstr ""
6326
-
6327
- #: includes/core/class-builtin.php:1722
6328
- msgid "Mongolia"
6329
- msgstr ""
6330
-
6331
- #: includes/core/class-builtin.php:1723
6332
- msgid "Montenegro"
6333
- msgstr ""
6334
-
6335
- #: includes/core/class-builtin.php:1724
6336
- msgid "Montserrat"
6337
- msgstr ""
6338
-
6339
- #: includes/core/class-builtin.php:1725
6340
- msgid "Morocco"
6341
- msgstr ""
6342
-
6343
- #: includes/core/class-builtin.php:1726
6344
- msgid "Mozambique"
6345
- msgstr ""
6346
-
6347
- #: includes/core/class-builtin.php:1727
6348
- msgid "Myanmar"
6349
- msgstr ""
6350
-
6351
- #: includes/core/class-builtin.php:1728
6352
- msgid "Namibia"
6353
- msgstr ""
6354
-
6355
- #: includes/core/class-builtin.php:1730
6356
- msgid "Nepal"
6357
- msgstr ""
6358
-
6359
- #: includes/core/class-builtin.php:1731
6360
- msgid "Netherlands"
6361
- msgstr ""
6362
-
6363
- #: includes/core/class-builtin.php:1732
6364
- msgid "Netherlands Antilles"
6365
- msgstr ""
6366
-
6367
- #: includes/core/class-builtin.php:1733
6368
- msgid "New Caledonia"
6369
- msgstr ""
6370
-
6371
- #: includes/core/class-builtin.php:1734
6372
- msgid "New Zealand"
6373
- msgstr ""
6374
-
6375
- #: includes/core/class-builtin.php:1735
6376
- msgid "Nicaragua"
6377
- msgstr ""
6378
-
6379
- #: includes/core/class-builtin.php:1736
6380
- msgid "Niger"
6381
- msgstr ""
6382
-
6383
- #: includes/core/class-builtin.php:1737
6384
- msgid "Nigeria"
6385
- msgstr ""
6386
-
6387
- #: includes/core/class-builtin.php:1738
6388
- msgid "Niue"
6389
- msgstr ""
6390
-
6391
- #: includes/core/class-builtin.php:1739
6392
- msgid "Norfolk Island"
6393
- msgstr ""
6394
-
6395
- #: includes/core/class-builtin.php:1740
6396
- msgid "Northern Mariana Islands"
6397
- msgstr ""
6398
-
6399
- #: includes/core/class-builtin.php:1741
6400
- msgid "Norway"
6401
- msgstr ""
6402
-
6403
- #: includes/core/class-builtin.php:1742
6404
- msgid "Oman"
6405
- msgstr ""
6406
-
6407
- #: includes/core/class-builtin.php:1743
6408
- msgid "Pakistan"
6409
- msgstr ""
6410
-
6411
- #: includes/core/class-builtin.php:1744
6412
- msgid "Palau"
6413
- msgstr ""
6414
-
6415
- #: includes/core/class-builtin.php:1745
6416
- msgid "Palestine"
6417
- msgstr ""
6418
-
6419
- #: includes/core/class-builtin.php:1746
6420
- msgid "Panama"
6421
- msgstr ""
6422
-
6423
- #: includes/core/class-builtin.php:1747
6424
- msgid "Papua New Guinea"
6425
- msgstr ""
6426
-
6427
- #: includes/core/class-builtin.php:1748
6428
- msgid "Paraguay"
6429
- msgstr ""
6430
-
6431
- #: includes/core/class-builtin.php:1749
6432
- msgid "Peru"
6433
- msgstr ""
6434
-
6435
- #: includes/core/class-builtin.php:1750
6436
- msgid "Philippines"
6437
- msgstr ""
6438
-
6439
- #: includes/core/class-builtin.php:1751
6440
- msgid "Pitcairn"
6441
- msgstr ""
6442
-
6443
- #: includes/core/class-builtin.php:1752
6444
- msgid "Poland"
6445
- msgstr ""
6446
-
6447
- #: includes/core/class-builtin.php:1753
6448
- msgid "Portugal"
6449
- msgstr ""
6450
-
6451
- #: includes/core/class-builtin.php:1754
6452
- msgid "Puerto Rico"
6453
- msgstr ""
6454
-
6455
- #: includes/core/class-builtin.php:1755
6456
- msgid "Qatar"
6457
- msgstr ""
6458
-
6459
- #: includes/core/class-builtin.php:1756
6460
- msgid "Réunion"
6461
- msgstr ""
6462
-
6463
- #: includes/core/class-builtin.php:1757
6464
- msgid "Romania"
6465
- msgstr ""
6466
-
6467
- #: includes/core/class-builtin.php:1758
6468
- msgid "Russian Federation"
6469
- msgstr ""
6470
-
6471
- #: includes/core/class-builtin.php:1759
6472
- msgid "Rwanda"
6473
- msgstr ""
6474
-
6475
- #: includes/core/class-builtin.php:1760
6476
- msgid "Saint Barthélemy"
6477
- msgstr ""
6478
-
6479
- #: includes/core/class-builtin.php:1761
6480
- msgid "Saint Helena"
6481
- msgstr ""
6482
-
6483
- #: includes/core/class-builtin.php:1762
6484
- msgid "Saint Kitts and Nevis"
6485
- msgstr ""
6486
-
6487
- #: includes/core/class-builtin.php:1763
6488
- msgid "Saint Lucia"
6489
- msgstr ""
6490
-
6491
- #: includes/core/class-builtin.php:1764
6492
- msgid "Saint Martin (French part)"
6493
- msgstr ""
6494
-
6495
- #: includes/core/class-builtin.php:1765
6496
- msgid "Saint Pierre and Miquelon"
6497
- msgstr ""
6498
-
6499
- #: includes/core/class-builtin.php:1766
6500
- msgid "Saint Vincent and the Grenadines"
6501
- msgstr ""
6502
-
6503
- #: includes/core/class-builtin.php:1767
6504
- msgid "Samoa"
6505
- msgstr ""
6506
-
6507
- #: includes/core/class-builtin.php:1768
6508
- msgid "San Marino"
6509
- msgstr ""
6510
-
6511
- #: includes/core/class-builtin.php:1769
6512
- msgid "Sao Tome and Principe"
6513
- msgstr ""
6514
-
6515
- #: includes/core/class-builtin.php:1770
6516
- msgid "Saudi Arabia"
6517
- msgstr ""
6518
-
6519
- #: includes/core/class-builtin.php:1771
6520
- msgid "Senegal"
6521
- msgstr ""
6522
-
6523
- #: includes/core/class-builtin.php:1772
6524
- msgid "Serbia"
6525
- msgstr ""
6526
-
6527
- #: includes/core/class-builtin.php:1773
6528
- msgid "Seychelles"
6529
- msgstr ""
6530
-
6531
- #: includes/core/class-builtin.php:1774
6532
- msgid "Sierra Leone"
6533
- msgstr ""
6534
-
6535
- #: includes/core/class-builtin.php:1775
6536
- msgid "Singapore"
6537
- msgstr ""
6538
-
6539
- #: includes/core/class-builtin.php:1776
6540
- msgid "Slovakia"
6541
- msgstr ""
6542
-
6543
- #: includes/core/class-builtin.php:1777
6544
- msgid "Slovenia"
6545
- msgstr ""
6546
-
6547
- #: includes/core/class-builtin.php:1778
6548
- msgid "Solomon Islands"
6549
- msgstr ""
6550
-
6551
- #: includes/core/class-builtin.php:1779
6552
- msgid "Somalia"
6553
- msgstr ""
6554
-
6555
- #: includes/core/class-builtin.php:1780
6556
- msgid "South Africa"
6557
- msgstr ""
6558
-
6559
- #: includes/core/class-builtin.php:1781
6560
- msgid "South Georgia and the South Sandwich Islands"
6561
- msgstr ""
6562
-
6563
- #: includes/core/class-builtin.php:1782
6564
- msgid "South Sudan"
6565
- msgstr ""
6566
-
6567
- #: includes/core/class-builtin.php:1783
6568
- msgid "Spain"
6569
- msgstr ""
6570
-
6571
- #: includes/core/class-builtin.php:1784
6572
- msgid "Sri Lanka"
6573
- msgstr ""
6574
-
6575
- #: includes/core/class-builtin.php:1785
6576
- msgid "Sudan"
6577
- msgstr ""
6578
-
6579
- #: includes/core/class-builtin.php:1786
6580
- msgid "Suriname"
6581
- msgstr ""
6582
-
6583
- #: includes/core/class-builtin.php:1787
6584
- msgid "Svalbard and Jan Mayen"
6585
- msgstr ""
6586
-
6587
- #: includes/core/class-builtin.php:1788
6588
- msgid "Swaziland"
6589
- msgstr ""
6590
-
6591
- #: includes/core/class-builtin.php:1789
6592
- msgid "Sweden"
6593
- msgstr ""
6594
-
6595
- #: includes/core/class-builtin.php:1790
6596
- msgid "Switzerland"
6597
- msgstr ""
6598
-
6599
- #: includes/core/class-builtin.php:1791
6600
- msgid "Syrian Arab Republic"
6601
- msgstr ""
6602
-
6603
- #: includes/core/class-builtin.php:1792
6604
- msgid "Taiwan, Province of China"
6605
- msgstr ""
6606
-
6607
- #: includes/core/class-builtin.php:1793
6608
- msgid "Tajikistan"
6609
- msgstr ""
6610
-
6611
- #: includes/core/class-builtin.php:1794
6612
- msgid "Tanzania, United Republic of"
6613
- msgstr ""
6614
-
6615
- #: includes/core/class-builtin.php:1795
6616
- msgid "Thailand"
6617
- msgstr ""
6618
-
6619
- #: includes/core/class-builtin.php:1796
6620
- msgid "Timor-Leste"
6621
- msgstr ""
6622
-
6623
- #: includes/core/class-builtin.php:1797
6624
- msgid "Togo"
6625
- msgstr ""
6626
-
6627
- #: includes/core/class-builtin.php:1798
6628
- msgid "Tokelau"
6629
- msgstr ""
6630
-
6631
- #: includes/core/class-builtin.php:1800
6632
- msgid "Trinidad and Tobago"
6633
- msgstr ""
6634
-
6635
- #: includes/core/class-builtin.php:1801
6636
- msgid "Tunisia"
6637
- msgstr ""
6638
-
6639
- #: includes/core/class-builtin.php:1802
6640
- msgid "Turkey"
6641
- msgstr ""
6642
-
6643
- #: includes/core/class-builtin.php:1803
6644
- msgid "Turkmenistan"
6645
- msgstr ""
6646
-
6647
- #: includes/core/class-builtin.php:1804
6648
- msgid "Turks and Caicos Islands"
6649
- msgstr ""
6650
-
6651
- #: includes/core/class-builtin.php:1805
6652
- msgid "Tuvalu"
6653
- msgstr ""
6654
-
6655
- #: includes/core/class-builtin.php:1806
6656
- msgid "Uganda"
6657
- msgstr ""
6658
-
6659
- #: includes/core/class-builtin.php:1807
6660
- msgid "Ukraine"
6661
- msgstr ""
6662
-
6663
- #: includes/core/class-builtin.php:1808
6664
- msgid "United Arab Emirates"
6665
- msgstr ""
6666
-
6667
- #: includes/core/class-builtin.php:1809
6668
- msgid "United Kingdom"
6669
- msgstr ""
6670
-
6671
- #: includes/core/class-builtin.php:1810
6672
- msgid "United States"
6673
- msgstr ""
6674
-
6675
- #: includes/core/class-builtin.php:1811
6676
- msgid "United States Minor Outlying Islands"
6677
- msgstr ""
6678
-
6679
- #: includes/core/class-builtin.php:1812
6680
- msgid "Uruguay"
6681
- msgstr ""
6682
-
6683
- #: includes/core/class-builtin.php:1813
6684
- msgid "Uzbekistan"
6685
- msgstr ""
6686
-
6687
- #: includes/core/class-builtin.php:1814
6688
- msgid "Vanuatu"
6689
- msgstr ""
6690
-
6691
- #: includes/core/class-builtin.php:1815
6692
- msgid "Venezuela, Bolivarian Republic of"
6693
- msgstr ""
6694
-
6695
- #: includes/core/class-builtin.php:1816
6696
- msgid "Viet Nam"
6697
- msgstr ""
6698
-
6699
- #: includes/core/class-builtin.php:1817
6700
- msgid "Virgin Islands, British"
6701
- msgstr ""
6702
-
6703
- #: includes/core/class-builtin.php:1818
6704
- msgid "Virgin Islands, U.S."
6705
- msgstr ""
6706
-
6707
- #: includes/core/class-builtin.php:1819
6708
- msgid "Wallis and Futuna"
6709
- msgstr ""
6710
-
6711
- #: includes/core/class-builtin.php:1820
6712
- msgid "Western Sahara"
6713
- msgstr ""
6714
-
6715
- #: includes/core/class-builtin.php:1821
6716
- msgid "Yemen"
6717
- msgstr ""
6718
-
6719
- #: includes/core/class-builtin.php:1822
6720
- msgid "Zambia"
6721
- msgstr ""
6722
-
6723
- #: includes/core/class-builtin.php:1823
6724
- msgid "Zimbabwe"
6725
- msgstr ""
6726
-
6727
- #: includes/core/class-common.php:55
6728
- msgid "Form"
6729
- msgstr ""
6730
-
6731
- #: includes/core/class-common.php:57
6732
- msgid "Add New Form"
6733
- msgstr ""
6734
-
6735
- #: includes/core/class-common.php:58
6736
- msgid "Edit Form"
6737
- msgstr ""
6738
-
6739
- #: includes/core/class-common.php:59
6740
- msgid "You did not create any forms yet"
6741
- msgstr ""
6742
-
6743
- #: includes/core/class-common.php:61
6744
- msgid "Search Forms"
6745
- msgstr ""
6746
-
6747
- #: includes/core/class-common.php:85
6748
- msgid "Member Directory"
6749
- msgstr ""
6750
-
6751
- #: includes/core/class-common.php:87
6752
- msgid "Add New Member Directory"
6753
- msgstr ""
6754
-
6755
- #: includes/core/class-common.php:88
6756
- msgid "Edit Member Directory"
6757
- msgstr ""
6758
-
6759
- #: includes/core/class-common.php:89
6760
- msgid "You did not create any member directories yet"
6761
- msgstr ""
6762
-
6763
- #: includes/core/class-common.php:91
6764
- msgid "Search Member Directories"
6765
- msgstr ""
6766
-
6767
- #: includes/core/class-cron.php:62
6768
- msgid "Once Weekly"
6769
- msgstr ""
6770
-
6771
- #: includes/core/class-date-time.php:54
6772
- msgid "just now"
6773
- msgstr ""
6774
-
6775
- #: includes/core/class-date-time.php:63
6776
- #, php-format
6777
- msgid "%s min"
6778
- msgid_plural "%s mins"
6779
- msgstr[0] ""
6780
- msgstr[1] ""
6781
-
6782
- #: includes/core/class-date-time.php:72
6783
- #, php-format
6784
- msgid "%s hr"
6785
- msgid_plural "%s hrs"
6786
- msgstr[0] ""
6787
- msgstr[1] ""
6788
-
6789
- #: includes/core/class-date-time.php:82
6790
- #, php-format
6791
- msgid "Yesterday at %s"
6792
- msgstr ""
6793
-
6794
- #: includes/core/class-date-time.php:84 includes/core/class-date-time.php:89
6795
- #: includes/core/class-date-time.php:93 includes/core/class-date-time.php:97
6796
- #, php-format
6797
- msgid "%s at %s"
6798
- msgstr ""
6799
-
6800
- #: includes/core/class-date-time.php:146
6801
- #, php-format
6802
- msgid "%s year old"
6803
- msgstr ""
6804
-
6805
- #: includes/core/class-date-time.php:149
6806
- #, php-format
6807
- msgid "%s years old"
6808
- msgstr ""
6809
-
6810
- #: includes/core/class-date-time.php:152
6811
- msgid "Less than 1 year old"
6812
- msgstr ""
6813
-
6814
- #: includes/core/class-external-integrations.php:498
6815
- #, php-format
6816
- msgid "Edit the %s translation"
6817
- msgstr ""
6818
-
6819
- #: includes/core/class-external-integrations.php:505
6820
- #, php-format
6821
- msgid "Add translation to %s"
6822
- msgstr ""
6823
-
6824
- #: includes/core/class-fields.php:595
6825
- msgid "Undefined"
6826
- msgstr ""
6827
-
6828
- #: includes/core/class-fields.php:1206 templates/message.php:6
6829
- #, php-format
6830
- msgid "%s"
6831
- msgstr ""
6832
-
6833
- #: includes/core/class-fields.php:1227
6834
- msgid "Custom Field"
6835
- msgstr ""
6836
-
6837
- #: includes/core/class-fields.php:1570
6838
- msgid "Please upload a valid image!"
6839
- msgstr ""
6840
-
6841
- #: includes/core/class-fields.php:1584
6842
- msgid "Sorry this is not a valid image."
6843
- msgstr ""
6844
-
6845
- #: includes/core/class-fields.php:1587
6846
- msgid "This image is too large!"
6847
- msgstr ""
6848
-
6849
- #: includes/core/class-fields.php:1590
6850
- msgid "This image is too small!"
6851
- msgstr ""
6852
-
6853
- #: includes/core/class-fields.php:1593
6854
- msgid "You can only upload one image"
6855
- msgstr ""
6856
-
6857
- #: includes/core/class-fields.php:1625
6858
- msgid "Sorry this is not a valid file."
6859
- msgstr ""
6860
-
6861
- #: includes/core/class-fields.php:1628
6862
- msgid "This file is too large!"
6863
- msgstr ""
6864
-
6865
- #: includes/core/class-fields.php:1631
6866
- msgid "This file is too small!"
6867
- msgstr ""
6868
-
6869
- #: includes/core/class-fields.php:1634
6870
- msgid "You can only upload one file"
6871
- msgstr ""
6872
-
6873
- #: includes/core/class-fields.php:2134
6874
- msgid "Current Password"
6875
- msgstr ""
6876
-
6877
- #: includes/core/class-fields.php:2163
6878
- msgid "New Password"
6879
- msgstr ""
6880
-
6881
- #: includes/core/class-fields.php:2195
6882
- #, php-format
6883
- msgid "Confirm %s"
6884
- msgstr ""
6885
-
6886
- #: includes/core/class-fields.php:2429
6887
- msgid "Upload Photo"
6888
- msgstr ""
6889
-
6890
- #: includes/core/class-fields.php:2450 includes/core/class-fields.php:2474
6891
- #: includes/core/um-actions-profile.php:826
6892
- msgid "Change photo"
6893
- msgstr ""
6894
-
6895
- #: includes/core/class-fields.php:2474 includes/core/class-fields.php:2571
6896
- msgid "Processing..."
6897
- msgstr ""
6898
-
6899
- #: includes/core/class-fields.php:2496
6900
- msgid "Upload File"
6901
- msgstr ""
6902
-
6903
- #: includes/core/class-fields.php:2538 includes/core/um-filters-fields.php:244
6904
- msgid "This file has been removed."
6905
- msgstr ""
6906
-
6907
- #: includes/core/class-fields.php:2541 includes/core/class-fields.php:2571
6908
- msgid "Change file"
6909
- msgstr ""
6910
-
6911
- #: includes/core/class-fields.php:2571
6912
- msgid "Save"
6913
- msgstr ""
6914
-
6915
- #: includes/core/class-fields.php:4016
6916
- #, php-format
6917
- msgid ""
6918
- "Your profile is looking a little empty. Why not <a href=\"%s\">add</a> some "
6919
- "information!"
6920
- msgstr ""
6921
-
6922
- #: includes/core/class-fields.php:4018
6923
- msgid "This user has not added any information to their profile yet."
6924
- msgstr ""
6925
-
6926
- #: includes/core/class-files.php:281
6927
- msgid "Invalid parameters"
6928
- msgstr ""
6929
-
6930
- #: includes/core/class-files.php:286
6931
- msgid "Invalid coordinates"
6932
- msgstr ""
6933
-
6934
- #: includes/core/class-files.php:291
6935
- msgid "Invalid file ownership"
6936
- msgstr ""
6937
-
6938
- #: includes/core/class-files.php:346
6939
- msgid "Invalid nonce"
6940
- msgstr ""
6941
-
6942
- #: includes/core/class-files.php:368 includes/core/class-files.php:454
6943
- msgid "A theme or plugin compatibility issue"
6944
- msgstr ""
6945
-
6946
- #: includes/core/class-files.php:997
6947
- msgid "Ultimate Member: Not a valid temp file"
6948
- msgstr ""
6949
-
6950
- #: includes/core/class-files.php:1125
6951
- msgid "Invalid user ID: "
6952
- msgstr ""
6953
-
6954
- #: includes/core/class-files.php:1134 includes/core/class-files.php:1162
6955
- msgid "Unauthorized to do this attempt."
6956
- msgstr ""
6957
-
6958
- #: includes/core/class-form.php:58 includes/core/class-profile.php:56
6959
- #: includes/core/class-profile.php:75
6960
- msgid "You can not edit this user"
6961
- msgstr ""
6962
-
6963
- #: includes/core/class-mail.php:612 includes/core/class-password.php:701
6964
- #: includes/core/class-profile.php:465
6965
- msgid "Your set password"
6966
- msgstr ""
6967
-
6968
- #: includes/core/class-password.php:458
6969
- msgid "Please provide your username or email"
6970
- msgstr ""
6971
-
6972
- #: includes/core/class-password.php:462
6973
- msgid "We can't find an account registered with that address or username"
6974
- msgstr ""
6975
-
6976
- #: includes/core/class-password.php:481
6977
- msgid ""
6978
- "You have reached the limit for requesting password change for this user "
6979
- "already. Contact support if you cannot open the email"
6980
- msgstr ""
6981
-
6982
- #: includes/core/class-password.php:537
6983
- msgid "You must enter a new password"
6984
- msgstr ""
6985
-
6986
- #: includes/core/class-password.php:543 includes/core/um-actions-account.php:58
6987
- msgid "Your password must contain at least 8 characters"
6988
- msgstr ""
6989
-
6990
- #: includes/core/class-password.php:547 includes/core/um-actions-account.php:62
6991
- msgid "Your password must contain less than 30 characters"
6992
- msgstr ""
6993
-
6994
- #: includes/core/class-password.php:551 includes/core/um-actions-account.php:66
6995
- #: includes/core/um-actions-form.php:498
6996
- msgid ""
6997
- "Your password must contain at least one lowercase letter, one capital letter "
6998
- "and one number"
6999
- msgstr ""
7000
-
7001
- #: includes/core/class-password.php:557
7002
- msgid "You must confirm your new password"
7003
- msgstr ""
7004
-
7005
- #: includes/core/class-password.php:561 includes/core/um-actions-form.php:507
7006
- msgid "Your passwords do not match"
7007
- msgstr ""
7008
-
7009
- #: includes/core/class-permalinks.php:186
7010
- msgid "This activation link is expired or have already been used."
7011
- msgstr ""
7012
-
7013
- #. translators: %s: support forums URL
7014
- #: includes/core/class-plugin-updater.php:275
7015
- #, php-format
7016
- msgid ""
7017
- "An unexpected error occurred. Something may be wrong with %s or this "
7018
- "server&#8217;s configuration. If you continue to have problems, please try "
7019
- "the <a href=\"%s\">support forums</a>."
7020
- msgstr ""
7021
-
7022
- #: includes/core/class-plugin-updater.php:277
7023
- msgid "https://wordpress.org/support/"
7024
- msgstr ""
7025
-
7026
- #: includes/core/class-profile.php:89
7027
- msgid "Anyone"
7028
- msgstr ""
7029
-
7030
- #: includes/core/class-profile.php:90
7031
- msgid "Guests only"
7032
- msgstr ""
7033
-
7034
- #: includes/core/class-profile.php:91
7035
- msgid "Members only"
7036
- msgstr ""
7037
-
7038
- #: includes/core/class-profile.php:92
7039
- msgid "Only the owner"
7040
- msgstr ""
7041
-
7042
- #: includes/core/class-profile.php:93
7043
- msgid "Specific roles"
7044
- msgstr ""
7045
-
7046
- #: includes/core/class-profile.php:130
7047
- msgid "About"
7048
- msgstr ""
7049
-
7050
- #: includes/core/class-profile.php:134
7051
- msgid "Posts"
7052
- msgstr ""
7053
-
7054
- #: includes/core/class-profile.php:138
7055
- msgid "Comments"
7056
- msgstr ""
7057
-
7058
- #: includes/core/class-shortcodes.php:358
7059
- msgid ""
7060
- "This content has been restricted to logged in users only. Please <a href="
7061
- "\"{login_referrer}\">login</a> to view this content."
7062
- msgstr ""
7063
-
7064
- #: includes/core/class-shortcodes.php:645
7065
- msgid "You are already registered"
7066
- msgstr ""
7067
-
7068
- #: includes/core/class-shortcodes.php:892
7069
- msgid "Default Template"
7070
- msgstr ""
7071
-
7072
- #: includes/core/class-uploader.php:668
7073
- msgid "Your image is invalid!"
7074
- msgstr ""
7075
-
7076
- #: includes/core/class-uploader.php:710
7077
- msgid "This media type is not recognized."
7078
- msgstr ""
7079
-
7080
- #: includes/core/class-uploader.php:758
7081
- msgid "Your image is invalid or too large!"
7082
- msgstr ""
7083
-
7084
- #: includes/core/class-uploader.php:764 includes/core/class-uploader.php:766
7085
- #, php-format
7086
- msgid "Your photo is too small. It must be at least %spx wide."
7087
- msgstr ""
7088
-
7089
- #: includes/core/class-uploader.php:819
7090
- msgid "This file type is not recognized."
7091
- msgstr ""
7092
-
7093
- #: includes/core/class-uploader.php:1098
7094
- #, php-format
7095
- msgid "Maximum file size allowed: %s"
7096
- msgstr ""
7097
-
7098
- #: includes/core/class-user.php:623
7099
- msgid "Ultimate Member Role"
7100
- msgstr ""
7101
-
7102
- #: includes/core/class-user.php:626
7103
- msgid "&mdash; No role for Ultimate Member &mdash;"
7104
- msgstr ""
7105
-
7106
- #: includes/core/class-user.php:843
7107
- msgid "Membership Rejected"
7108
- msgstr ""
7109
-
7110
- #: includes/core/class-user.php:847
7111
- msgid "Membership Inactive"
7112
- msgstr ""
7113
-
7114
- #: includes/core/rest/class-api-v1.php:256
7115
- #: includes/core/rest/class-api-v1.php:328
7116
- #: includes/core/rest/class-api-v1.php:365
7117
- #: includes/core/rest/class-api-v2.php:256
7118
- #: includes/core/rest/class-api-v2.php:328
7119
- #: includes/core/rest/class-api-v2.php:365
7120
- msgid "You must provide a user ID"
7121
- msgstr ""
7122
-
7123
- #: includes/core/rest/class-api-v1.php:261
7124
- #: includes/core/rest/class-api-v2.php:261
7125
- msgid "You need to provide data to update"
7126
- msgstr ""
7127
-
7128
- #: includes/core/rest/class-api-v1.php:270
7129
- #: includes/core/rest/class-api-v2.php:270
7130
- msgid "User status has been changed."
7131
- msgstr ""
7132
-
7133
- #: includes/core/rest/class-api-v1.php:299
7134
- #: includes/core/rest/class-api-v2.php:299
7135
- msgid "User role has been changed."
7136
- msgstr ""
7137
-
7138
- #: includes/core/rest/class-api-v1.php:303
7139
- #: includes/core/rest/class-api-v2.php:303
7140
- msgid "User meta has been changed."
7141
- msgstr ""
7142
-
7143
- #: includes/core/rest/class-api-v1.php:334
7144
- #: includes/core/rest/class-api-v1.php:371
7145
- #: includes/core/rest/class-api-v2.php:334
7146
- #: includes/core/rest/class-api-v2.php:371
7147
- msgid "Invalid user specified"
7148
- msgstr ""
7149
-
7150
- #: includes/core/rest/class-api-v1.php:341
7151
- #: includes/core/rest/class-api-v2.php:341
7152
- msgid "User has been successfully deleted."
7153
- msgstr ""
7154
-
7155
- #: includes/core/rest/class-api.php:253
7156
- msgid "You must specify both a token and API key!"
7157
- msgstr ""
7158
-
7159
- #: includes/core/rest/class-api.php:265
7160
- msgid "Your request could not be authenticated"
7161
- msgstr ""
7162
-
7163
- #: includes/core/rest/class-api.php:277
7164
- msgid "Invalid API key"
7165
- msgstr ""
7166
-
7167
- #: includes/core/rest/class-api.php:434
7168
- msgid "Invalid query!"
7169
- msgstr ""
7170
-
7171
- #: includes/core/um-actions-account.php:16
7172
- msgid "Are you hacking? Please try again!"
7173
- msgstr ""
7174
-
7175
- #: includes/core/um-actions-account.php:26
7176
- #: includes/core/um-actions-account.php:114
7177
- msgid "You must enter your password"
7178
- msgstr ""
7179
-
7180
- #: includes/core/um-actions-account.php:29
7181
- #: includes/core/um-actions-account.php:46
7182
- #: includes/core/um-actions-account.php:117
7183
- msgid "This is not your password"
7184
- msgstr ""
7185
-
7186
- #: includes/core/um-actions-account.php:51
7187
- msgid "Your new password does not match"
7188
- msgstr ""
7189
-
7190
- #: includes/core/um-actions-account.php:84
7191
- msgid "Your username is invalid"
7192
- msgstr ""
7193
-
7194
- #: includes/core/um-actions-account.php:89
7195
- msgid "You must provide your first name"
7196
- msgstr ""
7197
-
7198
- #: includes/core/um-actions-account.php:93
7199
- msgid "You must provide your last name"
7200
- msgstr ""
7201
-
7202
- #: includes/core/um-actions-account.php:99
7203
- msgid "You must provide your e-mail"
7204
- msgstr ""
7205
-
7206
- #: includes/core/um-actions-account.php:103
7207
- msgid "Please provide a valid e-mail"
7208
- msgstr ""
7209
-
7210
- #: includes/core/um-actions-account.php:107
7211
- msgid "Email already linked to another account"
7212
- msgstr ""
7213
-
7214
- #: includes/core/um-actions-account.php:420
7215
- msgid "Email me when"
7216
- msgstr ""
7217
-
7218
- #: includes/core/um-actions-core.php:27
7219
- msgid "Super administrators can not be modified."
7220
- msgstr ""
7221
-
7222
- #: includes/core/um-actions-core.php:89 includes/core/um-actions-core.php:100
7223
- #: includes/core/um-actions-core.php:113 includes/core/um-actions-core.php:123
7224
- #: includes/core/um-actions-core.php:136
7225
- msgid "You do not have permission to make this action."
7226
- msgstr ""
7227
-
7228
- #: includes/core/um-actions-core.php:146
7229
- msgid "You do not have permission to delete this user."
7230
- msgstr ""
7231
-
7232
- #: includes/core/um-actions-form.php:86
7233
- msgid "You are not allowed to use this word as your username."
7234
- msgstr ""
7235
-
7236
- #: includes/core/um-actions-form.php:369 includes/core/um-actions-form.php:416
7237
- #: includes/core/um-actions-form.php:420 includes/core/um-actions-form.php:424
7238
- #, php-format
7239
- msgid "%s is required."
7240
- msgstr ""
7241
-
7242
- #: includes/core/um-actions-form.php:429
7243
- msgid "Please specify account type."
7244
- msgstr ""
7245
-
7246
- #: includes/core/um-actions-form.php:461
7247
- msgid "This field is required"
7248
- msgstr ""
7249
-
7250
- #: includes/core/um-actions-form.php:463
7251
- #, php-format
7252
- msgid "%s is required"
7253
- msgstr ""
7254
-
7255
- #: includes/core/um-actions-form.php:470
7256
- #, php-format
7257
- msgid "You are only allowed to enter a maximum of %s words"
7258
- msgstr ""
7259
-
7260
- #: includes/core/um-actions-form.php:476
7261
- #, php-format
7262
- msgid "Your %s must contain at least %s characters"
7263
- msgstr ""
7264
-
7265
- #: includes/core/um-actions-form.php:482
7266
- #, php-format
7267
- msgid "Your %s must contain less than %s characters"
7268
- msgstr ""
7269
-
7270
- #: includes/core/um-actions-form.php:491
7271
- msgid "You can not use HTML tags here"
7272
- msgstr ""
7273
-
7274
- #: includes/core/um-actions-form.php:504
7275
- msgid "Please confirm your password"
7276
- msgstr ""
7277
-
7278
- #: includes/core/um-actions-form.php:513
7279
- #, php-format
7280
- msgid "Please select at least %s choices"
7281
- msgstr ""
7282
-
7283
- #: includes/core/um-actions-form.php:519
7284
- #, php-format
7285
- msgid "You can only select up to %s choices"
7286
- msgstr ""
7287
-
7288
- #: includes/core/um-actions-form.php:525
7289
- #, php-format
7290
- msgid "Minimum number limit is %s"
7291
- msgstr ""
7292
-
7293
- #: includes/core/um-actions-form.php:531
7294
- #, php-format
7295
- msgid "Maximum number limit is %s"
7296
- msgstr ""
7297
-
7298
- #: includes/core/um-actions-form.php:567
7299
- msgid "Please enter numbers only in this field"
7300
- msgstr ""
7301
-
7302
- #: includes/core/um-actions-form.php:573
7303
- msgid "Please enter a valid phone number"
7304
- msgstr ""
7305
-
7306
- #: includes/core/um-actions-form.php:579 includes/core/um-actions-form.php:585
7307
- #: includes/core/um-actions-form.php:591 includes/core/um-actions-form.php:597
7308
- #: includes/core/um-actions-form.php:603 includes/core/um-actions-form.php:609
7309
- #: includes/core/um-actions-form.php:615 includes/core/um-actions-form.php:621
7310
- #: includes/core/um-actions-form.php:633
7311
- #, php-format
7312
- msgid "Please enter a valid %s username or profile URL"
7313
- msgstr ""
7314
-
7315
- #: includes/core/um-actions-form.php:627
7316
- msgid "Please enter a valid URL"
7317
- msgstr ""
7318
-
7319
- #: includes/core/um-actions-form.php:640 includes/core/um-actions-form.php:654
7320
- msgid "You must provide a username"
7321
- msgstr ""
7322
-
7323
- #: includes/core/um-actions-form.php:642 includes/core/um-actions-form.php:656
7324
- msgid "Your username is already taken"
7325
- msgstr ""
7326
-
7327
- #: includes/core/um-actions-form.php:644
7328
- msgid "Username cannot be an email"
7329
- msgstr ""
7330
-
7331
- #: includes/core/um-actions-form.php:646 includes/core/um-actions-form.php:660
7332
- msgid "Your username contains invalid characters"
7333
- msgstr ""
7334
-
7335
- #: includes/core/um-actions-form.php:658 includes/core/um-actions-form.php:680
7336
- #: includes/core/um-actions-form.php:682 includes/core/um-actions-form.php:694
7337
- #: includes/core/um-actions-form.php:701
7338
- msgid "This email is already linked to an existing account"
7339
- msgstr ""
7340
-
7341
- #: includes/core/um-actions-form.php:678
7342
- msgid "You must provide your email"
7343
- msgstr ""
7344
-
7345
- #: includes/core/um-actions-form.php:684 includes/core/um-actions-form.php:692
7346
- msgid "This is not a valid email"
7347
- msgstr ""
7348
-
7349
- #: includes/core/um-actions-form.php:686
7350
- msgid "Your email contains invalid characters"
7351
- msgstr ""
7352
-
7353
- #: includes/core/um-actions-form.php:726
7354
- msgid "You must provide a unique value"
7355
- msgstr ""
7356
-
7357
- #: includes/core/um-actions-form.php:736
7358
- msgid "You must provide alphabetic letters"
7359
- msgstr ""
7360
-
7361
- #: includes/core/um-actions-form.php:746
7362
- msgid "You must provide lowercase letters."
7363
- msgstr ""
7364
-
7365
- #: includes/core/um-actions-form.php:764
7366
- #, php-format
7367
- msgid "Your user description must contain less than %s characters"
7368
- msgstr ""
7369
-
7370
- #: includes/core/um-actions-global.php:30
7371
- msgid "Only fill in if you are not human"
7372
- msgstr ""
7373
-
7374
- #: includes/core/um-actions-login.php:18
7375
- msgid "Please enter your username or email"
7376
- msgstr ""
7377
-
7378
- #: includes/core/um-actions-login.php:22
7379
- msgid "Please enter your username"
7380
- msgstr ""
7381
-
7382
- #: includes/core/um-actions-login.php:26
7383
- msgid "Please enter your email"
7384
- msgstr ""
7385
-
7386
- #: includes/core/um-actions-login.php:49
7387
- msgid "Please enter your password"
7388
- msgstr ""
7389
-
7390
- #: includes/core/um-actions-login.php:56
7391
- msgid "Password is incorrect. Please try again."
7392
- msgstr ""
7393
-
7394
- #: includes/core/um-actions-login.php:183
7395
- msgid "This action has been prevented for security measures."
7396
- msgstr ""
7397
-
7398
- #: includes/core/um-actions-login.php:416
7399
- msgid "Keep me signed in"
7400
- msgstr ""
7401
-
7402
- #: includes/core/um-actions-login.php:460
7403
- msgid "Forgot your password?"
7404
- msgstr ""
7405
-
7406
- #: includes/core/um-actions-members.php:83
7407
- msgid "Search"
7408
- msgstr ""
7409
-
7410
- #: includes/core/um-actions-members.php:84
7411
- msgid "Reset"
7412
- msgstr ""
7413
-
7414
- #: includes/core/um-actions-members.php:160
7415
- msgid "Jump to page:"
7416
- msgstr ""
7417
-
7418
- #: includes/core/um-actions-members.php:165
7419
- #, php-format
7420
- msgid "%s of %d"
7421
- msgstr ""
7422
-
7423
- #: includes/core/um-actions-members.php:175
7424
- msgid "First Page"
7425
- msgstr ""
7426
-
7427
- #: includes/core/um-actions-members.php:181
7428
- msgid "Previous"
7429
- msgstr ""
7430
-
7431
- #: includes/core/um-actions-members.php:202
7432
- msgid "Next"
7433
- msgstr ""
7434
-
7435
- #: includes/core/um-actions-members.php:208
7436
- msgid "Last Page"
7437
- msgstr ""
7438
-
7439
- #: includes/core/um-actions-misc.php:111
7440
- msgid "Your account was updated successfully."
7441
- msgstr ""
7442
-
7443
- #: includes/core/um-actions-misc.php:115
7444
- msgid "You have successfully changed your password."
7445
- msgstr ""
7446
-
7447
- #: includes/core/um-actions-misc.php:119
7448
- msgid "Your account is now active! You can login."
7449
- msgstr ""
7450
-
7451
- #: includes/core/um-actions-misc.php:153
7452
- msgid "An error has been encountered"
7453
- msgstr ""
7454
-
7455
- #: includes/core/um-actions-misc.php:157
7456
- msgid "Registration is currently disabled"
7457
- msgstr ""
7458
-
7459
- #: includes/core/um-actions-misc.php:161 includes/core/um-filters-login.php:40
7460
- msgid "This email address has been blocked."
7461
- msgstr ""
7462
-
7463
- #: includes/core/um-actions-misc.php:165
7464
- msgid "We do not accept registrations from that domain."
7465
- msgstr ""
7466
-
7467
- #: includes/core/um-actions-misc.php:169 includes/core/um-filters-login.php:43
7468
- msgid "Your IP address has been blocked."
7469
- msgstr ""
7470
-
7471
- #: includes/core/um-actions-misc.php:173 includes/core/um-filters-login.php:136
7472
- msgid "Your account has been disabled."
7473
- msgstr ""
7474
-
7475
- #: includes/core/um-actions-misc.php:177 includes/core/um-filters-login.php:139
7476
- msgid "Your account has not been approved yet."
7477
- msgstr ""
7478
-
7479
- #: includes/core/um-actions-misc.php:181 includes/core/um-filters-login.php:142
7480
- msgid "Your account is awaiting e-mail verification."
7481
- msgstr ""
7482
-
7483
- #: includes/core/um-actions-misc.php:185 includes/core/um-filters-login.php:145
7484
- msgid "Your membership request has been rejected."
7485
- msgstr ""
7486
-
7487
- #: includes/core/um-actions-profile.php:204
7488
- msgid "You are not allowed to edit this user."
7489
- msgstr ""
7490
-
7491
- #: includes/core/um-actions-profile.php:320
7492
- #, php-format
7493
- msgid "Your choosed %s"
7494
- msgstr ""
7495
-
7496
- #: includes/core/um-actions-profile.php:635
7497
- #: includes/core/um-actions-profile.php:651
7498
- #: includes/core/um-actions-profile.php:691
7499
- msgid "Upload a cover photo"
7500
- msgstr ""
7501
-
7502
- #: includes/core/um-actions-profile.php:635
7503
- msgid "Change cover photo"
7504
- msgstr ""
7505
-
7506
- #: includes/core/um-actions-profile.php:794
7507
- msgid "Upload photo"
7508
- msgstr ""
7509
-
7510
- #: includes/core/um-actions-profile.php:827
7511
- msgid "Remove photo"
7512
- msgstr ""
7513
-
7514
- #: includes/core/um-actions-profile.php:988
7515
- msgid "Tell us a bit about yourself..."
7516
- msgstr ""
7517
-
7518
- #: includes/core/um-actions-profile.php:1003
7519
- #, php-format
7520
- msgid "This user account status is %s"
7521
- msgstr ""
7522
-
7523
- #: includes/core/um-actions-profile.php:1146
7524
- #: includes/core/um-actions-profile.php:1177
7525
- msgid "Edit Profile"
7526
- msgstr ""
7527
-
7528
- #: includes/core/um-actions-profile.php:1178
7529
- msgid "My Account"
7530
- msgstr ""
7531
-
7532
- #: includes/core/um-actions-user.php:14
7533
- msgid "Your account"
7534
- msgstr ""
7535
-
7536
- #: includes/core/um-filters-fields.php:34
7537
- msgid "Invalid soundcloud track ID"
7538
- msgstr ""
7539
-
7540
- #: includes/core/um-filters-fields.php:118
7541
- #, php-format
7542
- msgid "Joined %s"
7543
- msgstr ""
7544
-
7545
- #: includes/core/um-filters-fields.php:275
7546
- msgid "Untitled photo"
7547
- msgstr ""
7548
-
7549
- #: includes/core/um-filters-profile.php:82
7550
- #: includes/core/um-filters-profile.php:101
7551
- msgid "max"
7552
- msgstr ""
7553
-
7554
- #: includes/core/um-filters-user.php:37
7555
- msgid "Deactivate this account"
7556
- msgstr ""
7557
-
7558
- #: includes/core/um-filters-user.php:41
7559
- msgid "Reactivate this account"
7560
- msgstr ""
7561
-
7562
- #: includes/core/um-filters-user.php:47
7563
- msgid "Delete this user"
7564
- msgstr ""
7565
-
7566
- #: includes/core/um-filters-user.php:51
7567
- msgid "Login as this user"
7568
- msgstr ""
7569
-
7570
- #: includes/um-short-functions.php:746
7571
- msgid "date submitted"
7572
- msgstr ""
7573
-
7574
- #: includes/um-short-functions.php:752
7575
- msgid "(empty)"
7576
- msgstr ""
7577
-
7578
- #: includes/widgets/class-um-search-widget.php:27
7579
- msgid "Ultimate Member - Search"
7580
- msgstr ""
7581
-
7582
- #: includes/widgets/class-um-search-widget.php:30
7583
- msgid "Shows the search member form."
7584
- msgstr ""
7585
-
7586
- #: includes/widgets/class-um-search-widget.php:68
7587
- msgid "Search Users"
7588
- msgstr ""
7589
-
7590
- #: templates/members-grid.php:83
7591
- msgid "Edit profile"
7592
- msgstr ""
7593
-
7594
- #: templates/password-change.php:45
7595
- msgid "Change my password"
7596
- msgstr ""
7597
-
7598
- #: templates/password-reset.php:10
7599
- msgid ""
7600
- "We have sent you a password reset link to your e-mail. Please check your "
7601
- "inbox."
7602
- msgstr ""
7603
-
7604
- #: templates/password-reset.php:45
7605
- msgid "Your password reset link has expired. Please request a new link below."
7606
- msgstr ""
7607
-
7608
- #: templates/password-reset.php:47
7609
- msgid ""
7610
- "Your password reset link appears to be invalid. Please request a new link "
7611
- "below."
7612
- msgstr ""
7613
-
7614
- #: templates/password-reset.php:56
7615
- msgid ""
7616
- "To reset your password, please enter your email address or username below"
7617
- msgstr ""
7618
-
7619
- #: templates/password-reset.php:94
7620
- msgid "Reset my password"
7621
- msgstr ""
7622
-
7623
- #: templates/profile/comments-single.php:24
7624
- #, php-format
7625
- msgid "On <a href=\"%1$s\">%2$s</a>"
7626
- msgstr ""
7627
-
7628
- #: templates/profile/comments-single.php:35 templates/profile/comments.php:18
7629
- msgid "load more comments"
7630
- msgstr ""
7631
-
7632
- #: templates/profile/comments.php:31
7633
- msgid "You have not made any comments."
7634
- msgstr ""
7635
-
7636
- #: templates/profile/comments.php:33
7637
- msgid "This user has not made any comments."
7638
- msgstr ""
7639
-
7640
- #: templates/profile/posts-single.php:23
7641
- #, php-format
7642
- msgid "%s ago"
7643
- msgstr ""
7644
-
7645
- #: templates/profile/posts-single.php:26
7646
- msgid "in"
7647
- msgstr ""
7648
-
7649
- #: templates/profile/posts-single.php:32
7650
- msgid "no comments"
7651
- msgstr ""
7652
-
7653
- #: templates/profile/posts-single.php:34
7654
- #, php-format
7655
- msgid "%s comments"
7656
- msgstr ""
7657
-
7658
- #: templates/profile/posts-single.php:36
7659
- msgid "1 comment"
7660
- msgstr ""
7661
-
7662
- #: templates/profile/posts.php:25
7663
- msgid "load more posts"
7664
- msgstr ""
7665
-
7666
- #: templates/profile/posts.php:37
7667
- msgid "You have not created any posts."
7668
- msgstr ""
7669
-
7670
- #: templates/profile/posts.php:39
7671
- msgid "This user has not created any posts."
7672
- msgstr ""
7673
-
7674
- #: templates/searchform.php:6 templates/searchform.php:7
7675
- msgctxt "label"
7676
- msgid "Search for:"
7677
- msgstr ""
7678
-
7679
- #: templates/searchform.php:7
7680
- msgctxt "placeholder"
7681
- msgid "Search &hellip;"
7682
- msgstr ""
7683
-
7684
- #. Plugin URI of the plugin/theme
7685
- #. Author URI of the plugin/theme
7686
- msgid "http://ultimatemember.com/"
7687
- msgstr ""
7688
-
7689
- #. Description of the plugin/theme
7690
- msgid ""
7691
- "The easiest way to create powerful online communities and beautiful user "
7692
- "profiles with WordPress"
7693
- msgstr ""
1
+ msgid ""
2
+ msgstr ""
3
+ "Project-Id-Version: Ultimate Member\n"
4
+ "POT-Creation-Date: 2019-11-10 20:59+0200\n"
5
+ "PO-Revision-Date: 2019-11-10 20:59+0200\n"
6
+ "Last-Translator: \n"
7
+ "Language-Team: \n"
8
+ "Language: en_US\n"
9
+ "MIME-Version: 1.0\n"
10
+ "Content-Type: text/plain; charset=UTF-8\n"
11
+ "Content-Transfer-Encoding: 8bit\n"
12
+ "X-Generator: Poedit 2.0.6\n"
13
+ "X-Poedit-Basepath: ..\n"
14
+ "Plural-Forms: nplurals=2; plural=(n != 1);\n"
15
+ "X-Poedit-Flags-xgettext: --add-comments=translators:\n"
16
+ "X-Poedit-WPHeader: ultimate-member.php\n"
17
+ "X-Poedit-SourceCharset: UTF-8\n"
18
+ "X-Poedit-KeywordsList: __;_e;_n:1,2;_x:1,2c;_ex:1,2c;_nx:4c,1,2;esc_attr__;"
19
+ "esc_attr_e;esc_attr_x:1,2c;esc_html__;esc_html_e;esc_html_x:1,2c;_n_noop:1,2;"
20
+ "_nx_noop:3c,1,2;__ngettext_noop:1,2\n"
21
+ "X-Poedit-SearchPath-0: .\n"
22
+ "X-Poedit-SearchPathExcluded-0: *.js\n"
23
+
24
+ #: includes/admin/class-admin-functions.php:35 includes/class-functions.php:55
25
+ msgid "Wrong Nonce"
26
+ msgstr ""
27
+
28
+ #: includes/admin/class-admin.php:193
29
+ #, php-format
30
+ msgid "Duplicate of %s"
31
+ msgstr ""
32
+
33
+ #: includes/admin/class-admin.php:307
34
+ msgid "Docs"
35
+ msgstr ""
36
+
37
+ #: includes/admin/class-admin.php:308
38
+ #: includes/admin/core/class-admin-settings.php:1238
39
+ msgid "Settings"
40
+ msgstr ""
41
+
42
+ #: includes/admin/class-admin.php:379 includes/admin/class-admin.php:382
43
+ msgid "Form updated."
44
+ msgstr ""
45
+
46
+ #: includes/admin/class-admin.php:380
47
+ msgid "Custom field updated."
48
+ msgstr ""
49
+
50
+ #: includes/admin/class-admin.php:381
51
+ msgid "Custom field deleted."
52
+ msgstr ""
53
+
54
+ #: includes/admin/class-admin.php:383
55
+ msgid "Form restored to revision."
56
+ msgstr ""
57
+
58
+ #: includes/admin/class-admin.php:384
59
+ msgid "Form created."
60
+ msgstr ""
61
+
62
+ #: includes/admin/class-admin.php:385
63
+ msgid "Form saved."
64
+ msgstr ""
65
+
66
+ #: includes/admin/class-admin.php:386
67
+ msgid "Form submitted."
68
+ msgstr ""
69
+
70
+ #: includes/admin/class-admin.php:387
71
+ msgid "Form scheduled."
72
+ msgstr ""
73
+
74
+ #: includes/admin/class-admin.php:388
75
+ msgid "Form draft updated."
76
+ msgstr ""
77
+
78
+ #: includes/admin/core/class-admin-builder.php:212
79
+ msgid "Manage conditional fields support"
80
+ msgstr ""
81
+
82
+ #: includes/admin/core/class-admin-builder.php:212
83
+ #: includes/admin/core/class-admin-builder.php:214
84
+ msgid ""
85
+ "Here you can setup conditional logic to show/hide this field based on "
86
+ "specific fields value or conditions"
87
+ msgstr ""
88
+
89
+ #: includes/admin/core/class-admin-builder.php:214
90
+ msgid "Add conditional fields support"
91
+ msgstr ""
92
+
93
+ #: includes/admin/core/class-admin-builder.php:229
94
+ msgid "Add new rule"
95
+ msgstr ""
96
+
97
+ #: includes/admin/core/class-admin-builder.php:230
98
+ msgid "Reset all rules"
99
+ msgstr ""
100
+
101
+ #: includes/admin/core/class-admin-builder.php:283
102
+ #: includes/admin/core/class-admin-builder.php:605
103
+ #: includes/admin/core/class-admin-builder.php:764
104
+ #: includes/admin/core/class-admin-dragdrop.php:33
105
+ #: includes/admin/core/class-admin-menu.php:106
106
+ #: includes/core/class-fields.php:4369
107
+ msgid "Please login as administrator"
108
+ msgstr ""
109
+
110
+ #: includes/admin/core/class-admin-builder.php:392
111
+ #: includes/admin/core/class-admin-builder.php:462
112
+ #: includes/admin/core/class-admin-dragdrop.php:165
113
+ msgid "Add Row"
114
+ msgstr ""
115
+
116
+ #: includes/admin/core/class-admin-builder.php:393
117
+ #: includes/admin/core/class-admin-builder.php:463
118
+ #: includes/admin/core/class-admin-dragdrop.php:166
119
+ msgid "Edit Row"
120
+ msgstr ""
121
+
122
+ #: includes/admin/core/class-admin-builder.php:466
123
+ #: includes/admin/core/class-admin-dragdrop.php:168
124
+ #: includes/admin/core/class-admin-dragdrop.php:183
125
+ #: includes/admin/core/class-admin-dragdrop.php:208
126
+ msgid "Delete Row"
127
+ msgstr ""
128
+
129
+ #: includes/admin/core/class-admin-builder.php:539
130
+ msgid "(no title)"
131
+ msgstr ""
132
+
133
+ #: includes/admin/core/class-admin-builder.php:544
134
+ #: includes/admin/core/list-tables/roles-list-table.php:339
135
+ msgid "Edit"
136
+ msgstr ""
137
+
138
+ #: includes/admin/core/class-admin-builder.php:546
139
+ #: includes/admin/core/class-admin-columns.php:102
140
+ msgid "Duplicate"
141
+ msgstr ""
142
+
143
+ #: includes/admin/core/class-admin-builder.php:550
144
+ msgid "Delete Group"
145
+ msgstr ""
146
+
147
+ #: includes/admin/core/class-admin-builder.php:553
148
+ #: includes/admin/core/class-admin-enqueue.php:506
149
+ #: includes/admin/core/list-tables/roles-list-table.php:342
150
+ #: includes/admin/core/list-tables/roles-list-table.php:410
151
+ msgid "Delete"
152
+ msgstr ""
153
+
154
+ #: includes/admin/core/class-admin-builder.php:830
155
+ msgid "Search Icons..."
156
+ msgstr ""
157
+
158
+ #: includes/admin/core/class-admin-builder.php:850
159
+ msgid "Setup New Field"
160
+ msgstr ""
161
+
162
+ #: includes/admin/core/class-admin-builder.php:867
163
+ msgid "Predefined Fields"
164
+ msgstr ""
165
+
166
+ #: includes/admin/core/class-admin-builder.php:887
167
+ #: includes/core/class-builtin.php:1330
168
+ msgid "None"
169
+ msgstr ""
170
+
171
+ #: includes/admin/core/class-admin-builder.php:892
172
+ msgid "Custom Fields"
173
+ msgstr ""
174
+
175
+ #: includes/admin/core/class-admin-builder.php:906
176
+ msgid "You did not create any custom fields"
177
+ msgstr ""
178
+
179
+ #: includes/admin/core/class-admin-builder.php:938
180
+ #: includes/admin/core/class-admin-builder.php:1010
181
+ msgid "This field type is not setup correcty."
182
+ msgstr ""
183
+
184
+ #: includes/admin/core/class-admin-builder.php:1157
185
+ #: includes/core/class-form.php:159 includes/core/class-form.php:333
186
+ #: includes/core/class-password.php:533
187
+ msgid "This is not possible for security reasons."
188
+ msgstr ""
189
+
190
+ #: includes/admin/core/class-admin-columns.php:50
191
+ msgid "Status"
192
+ 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:2115
197
+ #: includes/admin/templates/role/role-edit.php:190
198
+ #: includes/widgets/class-um-search-widget.php:81
199
+ msgid "Title"
200
+ msgstr ""
201
+
202
+ #: includes/admin/core/class-admin-columns.php:132
203
+ #: includes/admin/core/class-admin-columns.php:152
204
+ msgid "ID"
205
+ msgstr ""
206
+
207
+ #: includes/admin/core/class-admin-columns.php:133
208
+ msgid "Type"
209
+ msgstr ""
210
+
211
+ #: includes/admin/core/class-admin-columns.php:134
212
+ #: includes/admin/core/class-admin-columns.php:153
213
+ #: includes/admin/core/class-admin-settings.php:451
214
+ #: includes/admin/templates/form/login_settings.php:16
215
+ #: includes/admin/templates/form/register_customize.php:6
216
+ #: includes/admin/templates/form/register_customize.php:32
217
+ msgid "Default"
218
+ 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:785
223
+ #: includes/admin/core/class-admin-metabox.php:946
224
+ msgid "Shortcode"
225
+ msgstr ""
226
+
227
+ #: includes/admin/core/class-admin-columns.php:136
228
+ #: includes/admin/core/class-admin-columns.php:155
229
+ msgid "Date"
230
+ msgstr ""
231
+
232
+ #: includes/admin/core/class-admin-columns.php:186
233
+ #: includes/admin/core/class-admin-columns.php:219
234
+ #: includes/admin/core/list-tables/roles-list-table.php:371
235
+ #: includes/admin/core/list-tables/roles-list-table.php:379
236
+ #: includes/admin/templates/form/login_customize.php:16
237
+ #: includes/admin/templates/form/login_customize.php:64
238
+ #: includes/admin/templates/form/login_customize.php:83
239
+ #: includes/admin/templates/form/login_customize.php:94
240
+ #: includes/admin/templates/form/profile_customize.php:25
241
+ #: includes/admin/templates/form/profile_customize.php:91
242
+ #: includes/admin/templates/form/profile_customize.php:110
243
+ #: includes/admin/templates/form/profile_customize.php:145
244
+ #: includes/admin/templates/form/profile_customize.php:166
245
+ #: includes/admin/templates/form/profile_customize.php:177
246
+ #: includes/admin/templates/form/profile_customize.php:188
247
+ #: includes/admin/templates/form/profile_customize.php:199
248
+ #: includes/admin/templates/form/register_customize.php:23
249
+ #: includes/admin/templates/form/register_customize.php:79
250
+ #: includes/admin/templates/form/register_gdpr.php:26
251
+ #: includes/core/class-builtin.php:1135 includes/core/class-builtin.php:1149
252
+ #: includes/core/class-builtin.php:1150
253
+ #: includes/core/um-actions-account.php:268
254
+ msgid "No"
255
+ msgstr ""
256
+
257
+ #: includes/admin/core/class-admin-columns.php:186
258
+ #: includes/admin/core/class-admin-columns.php:219
259
+ #: includes/admin/core/list-tables/roles-list-table.php:371
260
+ #: includes/admin/core/list-tables/roles-list-table.php:379
261
+ #: includes/admin/templates/form/login_customize.php:17
262
+ #: includes/admin/templates/form/login_customize.php:65
263
+ #: includes/admin/templates/form/login_customize.php:84
264
+ #: includes/admin/templates/form/login_customize.php:95
265
+ #: includes/admin/templates/form/profile_customize.php:26
266
+ #: includes/admin/templates/form/profile_customize.php:92
267
+ #: includes/admin/templates/form/profile_customize.php:111
268
+ #: includes/admin/templates/form/profile_customize.php:146
269
+ #: includes/admin/templates/form/profile_customize.php:167
270
+ #: includes/admin/templates/form/profile_customize.php:178
271
+ #: includes/admin/templates/form/profile_customize.php:189
272
+ #: includes/admin/templates/form/profile_customize.php:200
273
+ #: includes/admin/templates/form/register_customize.php:24
274
+ #: includes/admin/templates/form/register_customize.php:80
275
+ #: includes/admin/templates/form/register_gdpr.php:27
276
+ #: includes/core/class-builtin.php:1135 includes/core/class-builtin.php:1150
277
+ #: includes/core/class-member-directory.php:848
278
+ #: includes/core/um-filters-members.php:40
279
+ msgid "Yes"
280
+ msgstr ""
281
+
282
+ #: includes/admin/core/class-admin-enqueue.php:187
283
+ msgid "e.g. Member Directory"
284
+ msgstr ""
285
+
286
+ #: includes/admin/core/class-admin-enqueue.php:189
287
+ msgid "e.g. New Registration Form"
288
+ msgstr ""
289
+
290
+ #: includes/admin/core/class-admin-enqueue.php:235
291
+ #: includes/admin/core/class-admin-enqueue.php:266
292
+ #: includes/admin/core/class-admin-forms.php:897
293
+ #: includes/admin/core/class-admin-forms.php:911
294
+ #: includes/admin/core/class-admin-forms.php:1034
295
+ #: includes/admin/core/class-admin-forms.php:1043
296
+ #: includes/admin/core/class-admin-forms.php:1278
297
+ #: includes/admin/core/class-admin-forms.php:1292
298
+ #: includes/admin/core/class-admin-notices.php:394
299
+ #: includes/core/um-actions-profile.php:648
300
+ msgid "Remove"
301
+ msgstr ""
302
+
303
+ #: includes/admin/core/class-admin-enqueue.php:236
304
+ #: includes/admin/core/class-admin-enqueue.php:267
305
+ #: includes/admin/core/class-admin-forms.php:1113
306
+ msgid "Select"
307
+ msgstr ""
308
+
309
+ #: includes/admin/core/class-admin-enqueue.php:264
310
+ msgid "Are sure, maybe some settings not saved"
311
+ msgstr ""
312
+
313
+ #: includes/admin/core/class-admin-enqueue.php:494
314
+ #: includes/core/class-builtin.php:698 includes/core/class-builtin.php:701
315
+ #: includes/core/class-builtin.php:1155 includes/core/class-builtin.php:1158
316
+ msgid "Password"
317
+ msgstr ""
318
+
319
+ #: includes/admin/core/class-admin-enqueue.php:498
320
+ #: includes/admin/core/class-admin-metabox.php:2227
321
+ #: includes/core/class-account.php:109
322
+ msgid "Privacy"
323
+ msgstr ""
324
+
325
+ #: includes/admin/core/class-admin-enqueue.php:502
326
+ #: includes/core/class-account.php:115
327
+ msgid "Notifications"
328
+ msgstr ""
329
+
330
+ #: includes/admin/core/class-admin-enqueue.php:556
331
+ msgid "Ultimate Member Blocks"
332
+ msgstr ""
333
+
334
+ #: includes/admin/core/class-admin-forms.php:318
335
+ #: includes/core/um-filters-fields.php:15
336
+ msgid "Required"
337
+ msgstr ""
338
+
339
+ #: includes/admin/core/class-admin-forms.php:526
340
+ #: includes/admin/core/class-admin-metabox.php:1405
341
+ #: includes/admin/core/class-admin-metabox.php:1433
342
+ msgid "Choose Icon"
343
+ msgstr ""
344
+
345
+ #: includes/admin/core/class-admin-forms.php:532
346
+ #: includes/admin/core/class-admin-metabox.php:1407
347
+ #: includes/admin/core/class-admin-metabox.php:1435
348
+ msgid "No Icon"
349
+ msgstr ""
350
+
351
+ #: includes/admin/core/class-admin-forms.php:1090
352
+ msgid "Select media"
353
+ msgstr ""
354
+
355
+ #: includes/admin/core/class-admin-forms.php:1114
356
+ msgid "Clear"
357
+ msgstr ""
358
+
359
+ #: includes/admin/core/class-admin-gdpr.php:42
360
+ msgid "Privacy Policy"
361
+ msgstr ""
362
+
363
+ #: includes/admin/core/class-admin-gdpr.php:57
364
+ msgid "Account Status"
365
+ msgstr ""
366
+
367
+ #: includes/admin/core/class-admin-gdpr.php:58
368
+ msgid "Submitted data on Registration"
369
+ msgstr ""
370
+
371
+ #: includes/admin/core/class-admin-gdpr.php:59
372
+ msgid "Registration Form ID"
373
+ msgstr ""
374
+
375
+ #: includes/admin/core/class-admin-gdpr.php:60
376
+ msgid "Registration Timestamp"
377
+ msgstr ""
378
+
379
+ #: includes/admin/core/class-admin-gdpr.php:61
380
+ msgid "Registration Request"
381
+ msgstr ""
382
+
383
+ #: includes/admin/core/class-admin-gdpr.php:62
384
+ msgid "Registration Nonce"
385
+ msgstr ""
386
+
387
+ #: includes/admin/core/class-admin-gdpr.php:63
388
+ msgid "Registration HTTP referer"
389
+ msgstr ""
390
+
391
+ #: includes/admin/core/class-admin-gdpr.php:64
392
+ msgid "Community Role"
393
+ msgstr ""
394
+
395
+ #: includes/admin/core/class-admin-gdpr.php:65
396
+ msgid "Profile Slug \"Username\""
397
+ msgstr ""
398
+
399
+ #: includes/admin/core/class-admin-gdpr.php:66
400
+ msgid "Profile Slug \"First and Last Name with '.'\""
401
+ msgstr ""
402
+
403
+ #: includes/admin/core/class-admin-gdpr.php:67
404
+ msgid "Profile Slug \"First and Last Name with '-'\""
405
+ msgstr ""
406
+
407
+ #: includes/admin/core/class-admin-gdpr.php:68
408
+ msgid "Profile Slug \"First and Last Name with '+'\""
409
+ msgstr ""
410
+
411
+ #: includes/admin/core/class-admin-gdpr.php:69
412
+ msgid "Profile Slug \"User ID\""
413
+ msgstr ""
414
+
415
+ #: includes/admin/core/class-admin-gdpr.php:70
416
+ msgid "Last Login Timestamp"
417
+ msgstr ""
418
+
419
+ #: includes/admin/core/class-admin-gdpr.php:73
420
+ msgid "Private Content Post ID"
421
+ msgstr ""
422
+
423
+ #: includes/admin/core/class-admin-gdpr.php:76
424
+ msgid "Verified Account"
425
+ msgstr ""
426
+
427
+ #: includes/admin/core/class-admin-gdpr.php:79
428
+ msgid "Terms&Conditions Agreement"
429
+ msgstr ""
430
+
431
+ #: includes/admin/core/class-admin-gdpr.php:82
432
+ msgid "Privacy Policy Agreement"
433
+ msgstr ""
434
+
435
+ #: includes/admin/core/class-admin-gdpr.php:298
436
+ #, php-format
437
+ msgid "Your %s was unable to be removed at this time."
438
+ msgstr ""
439
+
440
+ #: includes/admin/core/class-admin-menu.php:65
441
+ msgid "Thanks :)"
442
+ msgstr ""
443
+
444
+ #: includes/admin/core/class-admin-menu.php:72
445
+ #, php-format
446
+ msgid ""
447
+ "If you like Ultimate Member please consider leaving a %s review. It will "
448
+ "help us to grow the plugin and make it more popular. Thank you."
449
+ msgstr ""
450
+
451
+ #: includes/admin/core/class-admin-menu.php:127
452
+ msgctxt "Admin menu name"
453
+ msgid "Users"
454
+ msgstr ""
455
+
456
+ #: includes/admin/core/class-admin-menu.php:135
457
+ msgctxt "Admin menu name"
458
+ msgid "All Users"
459
+ msgstr ""
460
+
461
+ #. Plugin Name of the plugin/theme
462
+ #. Author of the plugin/theme
463
+ #: includes/admin/core/class-admin-menu.php:147
464
+ #: includes/core/class-user.php:562
465
+ msgid "Ultimate Member"
466
+ msgstr ""
467
+
468
+ #: includes/admin/core/class-admin-menu.php:151
469
+ msgid "Dashboard"
470
+ msgstr ""
471
+
472
+ #: includes/admin/core/class-admin-menu.php:159
473
+ #: includes/admin/templates/gdpr.php:7 includes/core/class-common.php:58
474
+ msgid "Forms"
475
+ msgstr ""
476
+
477
+ #: includes/admin/core/class-admin-menu.php:161
478
+ #: includes/admin/core/list-tables/roles-list-table.php:483
479
+ #: includes/admin/core/packages/2.0-beta1/user_roles.php:12
480
+ msgid "User Roles"
481
+ msgstr ""
482
+
483
+ #: includes/admin/core/class-admin-menu.php:164
484
+ #: includes/core/class-common.php:88
485
+ msgid "Member Directories"
486
+ msgstr ""
487
+
488
+ #: includes/admin/core/class-admin-menu.php:206
489
+ #: includes/admin/core/class-admin-settings.php:1095
490
+ msgid "Extensions"
491
+ msgstr ""
492
+
493
+ #: includes/admin/core/class-admin-menu.php:219
494
+ msgid "Users Overview"
495
+ msgstr ""
496
+
497
+ #: includes/admin/core/class-admin-menu.php:221
498
+ msgid "Latest from our blog"
499
+ msgstr ""
500
+
501
+ #: includes/admin/core/class-admin-menu.php:223
502
+ msgid "Purge Temp Files"
503
+ msgstr ""
504
+
505
+ #: includes/admin/core/class-admin-menu.php:225
506
+ msgid "User Cache"
507
+ msgstr ""
508
+
509
+ #: includes/admin/core/class-admin-menu.php:230
510
+ msgid "Upgrade's Manual Request"
511
+ msgstr ""
512
+
513
+ #: includes/admin/core/class-admin-metabox.php:222
514
+ msgid "UM Content Restriction"
515
+ msgstr ""
516
+
517
+ #: includes/admin/core/class-admin-metabox.php:378
518
+ #: includes/admin/core/class-admin-metabox.php:529
519
+ #: includes/admin/templates/access/restrict_content.php:53
520
+ msgid "Restrict access to this content?"
521
+ msgstr ""
522
+
523
+ #: includes/admin/core/class-admin-metabox.php:379
524
+ #: includes/admin/core/class-admin-metabox.php:386
525
+ #: includes/admin/core/class-admin-metabox.php:399
526
+ #: includes/admin/core/class-admin-metabox.php:530
527
+ #: includes/admin/core/class-admin-metabox.php:538
528
+ #: includes/admin/core/class-admin-metabox.php:552
529
+ #: includes/admin/templates/access/restrict_content.php:54
530
+ #: includes/admin/templates/access/restrict_content.php:61
531
+ #: includes/admin/templates/access/restrict_content.php:74
532
+ msgid "Activate content restriction for this post"
533
+ msgstr ""
534
+
535
+ #: includes/admin/core/class-admin-metabox.php:385
536
+ #: includes/admin/core/class-admin-metabox.php:537
537
+ #: includes/admin/templates/access/restrict_content.php:60
538
+ msgid "Who can access this content?"
539
+ msgstr ""
540
+
541
+ #: includes/admin/core/class-admin-metabox.php:389
542
+ #: includes/admin/core/class-admin-metabox.php:541
543
+ #: includes/admin/core/class-admin-metabox.php:2229
544
+ #: includes/admin/core/class-admin-navmenu.php:141
545
+ #: includes/admin/templates/access/restrict_content.php:64
546
+ #: includes/core/class-builtin.php:662
547
+ msgid "Everyone"
548
+ msgstr ""
549
+
550
+ #: includes/admin/core/class-admin-metabox.php:390
551
+ #: includes/admin/core/class-admin-metabox.php:542
552
+ #: includes/admin/templates/access/restrict_content.php:65
553
+ msgid "Logged out users"
554
+ msgstr ""
555
+
556
+ #: includes/admin/core/class-admin-metabox.php:391
557
+ #: includes/admin/core/class-admin-metabox.php:543
558
+ #: includes/admin/templates/access/restrict_content.php:66
559
+ msgid "Logged in users"
560
+ msgstr ""
561
+
562
+ #: includes/admin/core/class-admin-metabox.php:398
563
+ #: includes/admin/core/class-admin-metabox.php:551
564
+ #: includes/admin/templates/access/restrict_content.php:73
565
+ msgid "Select which roles can access this content"
566
+ msgstr ""
567
+
568
+ #: includes/admin/core/class-admin-metabox.php:407
569
+ #: includes/admin/core/class-admin-metabox.php:562
570
+ #: includes/admin/templates/access/restrict_content.php:83
571
+ msgid "What happens when users without access tries to view the content?"
572
+ msgstr ""
573
+
574
+ #: includes/admin/core/class-admin-metabox.php:408
575
+ #: includes/admin/core/class-admin-metabox.php:420
576
+ #: includes/admin/core/class-admin-metabox.php:563
577
+ #: includes/admin/core/class-admin-metabox.php:576
578
+ #: includes/admin/templates/access/restrict_content.php:84
579
+ #: includes/admin/templates/access/restrict_content.php:96
580
+ msgid "Action when users without access tries to view the content"
581
+ msgstr ""
582
+
583
+ #: includes/admin/core/class-admin-metabox.php:411
584
+ #: includes/admin/core/class-admin-metabox.php:566
585
+ #: includes/admin/templates/access/restrict_content.php:87
586
+ msgid "Show access restricted message"
587
+ msgstr ""
588
+
589
+ #: includes/admin/core/class-admin-metabox.php:412
590
+ #: includes/admin/core/class-admin-metabox.php:567
591
+ #: includes/admin/templates/access/restrict_content.php:88
592
+ msgid "Redirect user"
593
+ msgstr ""
594
+
595
+ #: includes/admin/core/class-admin-metabox.php:419
596
+ #: includes/admin/core/class-admin-metabox.php:575
597
+ #: includes/admin/templates/access/restrict_content.php:95
598
+ msgid ""
599
+ "Would you like to use the global default message or apply a custom message "
600
+ "to this content?"
601
+ msgstr ""
602
+
603
+ #: includes/admin/core/class-admin-metabox.php:423
604
+ #: includes/admin/core/class-admin-metabox.php:579
605
+ #: includes/admin/templates/access/restrict_content.php:99
606
+ msgid "Global default message (default)"
607
+ msgstr ""
608
+
609
+ #: includes/admin/core/class-admin-metabox.php:424
610
+ #: includes/admin/core/class-admin-metabox.php:580
611
+ #: includes/admin/templates/access/restrict_content.php:100
612
+ msgid "Custom message"
613
+ msgstr ""
614
+
615
+ #: includes/admin/core/class-admin-metabox.php:431
616
+ #: includes/admin/core/class-admin-metabox.php:588
617
+ #: includes/admin/templates/access/restrict_content.php:107
618
+ msgid "Custom Restrict Content message"
619
+ msgstr ""
620
+
621
+ #: includes/admin/core/class-admin-metabox.php:432
622
+ #: includes/admin/core/class-admin-metabox.php:452
623
+ #: includes/admin/core/class-admin-metabox.php:589
624
+ #: includes/admin/core/class-admin-metabox.php:611
625
+ #: includes/admin/templates/access/restrict_content.php:108
626
+ #: includes/admin/templates/access/restrict_content.php:128
627
+ msgid "Changed global restrict message"
628
+ msgstr ""
629
+
630
+ #: includes/admin/core/class-admin-metabox.php:439
631
+ #: includes/admin/core/class-admin-metabox.php:597
632
+ #: includes/admin/templates/access/restrict_content.php:115
633
+ msgid "Where should users be redirected to?"
634
+ msgstr ""
635
+
636
+ #: includes/admin/core/class-admin-metabox.php:440
637
+ #: includes/admin/core/class-admin-metabox.php:598
638
+ #: includes/admin/templates/access/restrict_content.php:116
639
+ msgid "Select redirect to page when user hasn't access to content"
640
+ msgstr ""
641
+
642
+ #: includes/admin/core/class-admin-metabox.php:444
643
+ #: includes/admin/core/class-admin-metabox.php:602
644
+ #: includes/admin/templates/access/restrict_content.php:120
645
+ msgid "Login page"
646
+ msgstr ""
647
+
648
+ #: includes/admin/core/class-admin-metabox.php:445
649
+ #: includes/admin/core/class-admin-metabox.php:603
650
+ #: includes/admin/templates/access/restrict_content.php:121
651
+ msgid "Custom URL"
652
+ msgstr ""
653
+
654
+ #: includes/admin/core/class-admin-metabox.php:451
655
+ #: includes/admin/core/class-admin-metabox.php:610
656
+ #: includes/admin/templates/access/restrict_content.php:127
657
+ msgid "Redirect URL"
658
+ msgstr ""
659
+
660
+ #: includes/admin/core/class-admin-metabox.php:459
661
+ #: includes/admin/core/class-admin-metabox.php:619
662
+ #: includes/admin/templates/access/restrict_content.php:135
663
+ msgid "Hide from queries"
664
+ msgstr ""
665
+
666
+ #: includes/admin/core/class-admin-metabox.php:460
667
+ #: includes/admin/core/class-admin-metabox.php:620
668
+ #: includes/admin/templates/access/restrict_content.php:136
669
+ msgid ""
670
+ "Hide this content from archives, RSS feeds etc for users who do not have "
671
+ "permission to view this content"
672
+ msgstr ""
673
+
674
+ #: includes/admin/core/class-admin-metabox.php:780
675
+ msgid "General Options"
676
+ msgstr ""
677
+
678
+ #: includes/admin/core/class-admin-metabox.php:781
679
+ msgid "Sorting"
680
+ msgstr ""
681
+
682
+ #: includes/admin/core/class-admin-metabox.php:782
683
+ msgid "Profile Card"
684
+ msgstr ""
685
+
686
+ #: includes/admin/core/class-admin-metabox.php:783
687
+ msgid "Search Options"
688
+ msgstr ""
689
+
690
+ #: includes/admin/core/class-admin-metabox.php:784
691
+ msgid "Results &amp; Pagination"
692
+ msgstr ""
693
+
694
+ #: includes/admin/core/class-admin-metabox.php:786
695
+ msgid "Styling: General"
696
+ msgstr ""
697
+
698
+ #: includes/admin/core/class-admin-metabox.php:799
699
+ msgid "Administrative Permissions"
700
+ msgstr ""
701
+
702
+ #: includes/admin/core/class-admin-metabox.php:807
703
+ msgid "General Permissions"
704
+ msgstr ""
705
+
706
+ #: includes/admin/core/class-admin-metabox.php:815
707
+ msgid "Profile Access"
708
+ msgstr ""
709
+
710
+ #: includes/admin/core/class-admin-metabox.php:826
711
+ msgid "Homepage Options"
712
+ msgstr ""
713
+
714
+ #: includes/admin/core/class-admin-metabox.php:837
715
+ msgid "Registration Options"
716
+ msgstr ""
717
+
718
+ #: includes/admin/core/class-admin-metabox.php:845
719
+ msgid "Login Options"
720
+ msgstr ""
721
+
722
+ #: includes/admin/core/class-admin-metabox.php:853
723
+ msgid "Logout Options"
724
+ msgstr ""
725
+
726
+ #: includes/admin/core/class-admin-metabox.php:861
727
+ msgid "Delete Options"
728
+ msgstr ""
729
+
730
+ #: includes/admin/core/class-admin-metabox.php:869
731
+ msgid "Publish"
732
+ msgstr ""
733
+
734
+ #: includes/admin/core/class-admin-metabox.php:917
735
+ msgid "WP Capabilities"
736
+ msgstr ""
737
+
738
+ #: includes/admin/core/class-admin-metabox.php:944
739
+ msgid "Select Form Type"
740
+ msgstr ""
741
+
742
+ #: includes/admin/core/class-admin-metabox.php:945
743
+ msgid "Form Builder"
744
+ msgstr ""
745
+
746
+ #: includes/admin/core/class-admin-metabox.php:948
747
+ #: includes/admin/core/class-admin-metabox.php:969
748
+ #: includes/admin/core/class-admin-metabox.php:991
749
+ msgid "Customize this form"
750
+ msgstr ""
751
+
752
+ #: includes/admin/core/class-admin-metabox.php:970
753
+ msgid "User Meta"
754
+ msgstr ""
755
+
756
+ #: includes/admin/core/class-admin-metabox.php:992
757
+ msgid "Options"
758
+ msgstr ""
759
+
760
+ #: includes/admin/core/class-admin-metabox.php:1226
761
+ msgid "Visibility"
762
+ msgstr ""
763
+
764
+ #: includes/admin/core/class-admin-metabox.php:1226
765
+ msgid ""
766
+ "Select where this field should appear. This option should only be changed on "
767
+ "the profile form and allows you to show a field in one mode only (edit or "
768
+ "view) or in both modes."
769
+ msgstr ""
770
+
771
+ #: includes/admin/core/class-admin-metabox.php:1228
772
+ msgid "View everywhere"
773
+ msgstr ""
774
+
775
+ #: includes/admin/core/class-admin-metabox.php:1229
776
+ msgid "Edit mode only"
777
+ msgstr ""
778
+
779
+ #: includes/admin/core/class-admin-metabox.php:1230
780
+ msgid "View mode only"
781
+ msgstr ""
782
+
783
+ #: includes/admin/core/class-admin-metabox.php:1258
784
+ msgid "If"
785
+ msgstr ""
786
+
787
+ #: includes/admin/core/class-admin-metabox.php:1335
788
+ msgid "Value"
789
+ msgstr ""
790
+
791
+ #: includes/admin/core/class-admin-metabox.php:1344
792
+ msgid "Validate"
793
+ msgstr ""
794
+
795
+ #: includes/admin/core/class-admin-metabox.php:1344
796
+ msgid "Does this field require a special validation"
797
+ msgstr ""
798
+
799
+ #: includes/admin/core/class-admin-metabox.php:1345
800
+ msgid "Select a validation type..."
801
+ msgstr ""
802
+
803
+ #: includes/admin/core/class-admin-metabox.php:1389
804
+ msgid "Custom Action"
805
+ msgstr ""
806
+
807
+ #: includes/admin/core/class-admin-metabox.php:1389
808
+ msgid ""
809
+ "If you want to apply your custom validation, you can use action hooks to add "
810
+ "custom validation. Please refer to documentation for further details."
811
+ msgstr ""
812
+
813
+ #: includes/admin/core/class-admin-metabox.php:1403
814
+ #: includes/admin/core/class-admin-metabox.php:1431
815
+ msgid "Icon"
816
+ msgstr ""
817
+
818
+ #: includes/admin/core/class-admin-metabox.php:1403
819
+ #: includes/admin/core/class-admin-metabox.php:1431
820
+ msgid ""
821
+ "Select an icon to appear in the field. Leave blank if you do not want an "
822
+ "icon to show in the field."
823
+ msgstr ""
824
+
825
+ #: includes/admin/core/class-admin-metabox.php:1458
826
+ msgid "CSS Class"
827
+ msgstr ""
828
+
829
+ #: includes/admin/core/class-admin-metabox.php:1458
830
+ msgid "Specify a custom CSS class to be applied to this element"
831
+ msgstr ""
832
+
833
+ #: includes/admin/core/class-admin-metabox.php:1468
834
+ msgid "Thickness (in pixels)"
835
+ msgstr ""
836
+
837
+ #: includes/admin/core/class-admin-metabox.php:1468
838
+ msgid "This is the width in pixels, e.g. 4 or 2, etc"
839
+ msgstr ""
840
+
841
+ #: includes/admin/core/class-admin-metabox.php:1478
842
+ msgid "Optional Text"
843
+ msgstr ""
844
+
845
+ #: includes/admin/core/class-admin-metabox.php:1478
846
+ msgid "Optional text to include with the divider"
847
+ msgstr ""
848
+
849
+ #: includes/admin/core/class-admin-metabox.php:1488
850
+ msgid "Padding"
851
+ msgstr ""
852
+
853
+ #: includes/admin/core/class-admin-metabox.php:1488
854
+ msgid "Set padding for this section"
855
+ msgstr ""
856
+
857
+ #: includes/admin/core/class-admin-metabox.php:1498
858
+ msgid "Margin"
859
+ msgstr ""
860
+
861
+ #: includes/admin/core/class-admin-metabox.php:1498
862
+ msgid "Set margin for this section"
863
+ msgstr ""
864
+
865
+ #: includes/admin/core/class-admin-metabox.php:1508
866
+ msgid "Border"
867
+ msgstr ""
868
+
869
+ #: includes/admin/core/class-admin-metabox.php:1508
870
+ msgid "Set border for this section"
871
+ msgstr ""
872
+
873
+ #: includes/admin/core/class-admin-metabox.php:1518
874
+ #: includes/admin/core/class-admin-metabox.php:1689
875
+ msgid "Style"
876
+ msgstr ""
877
+
878
+ #: includes/admin/core/class-admin-metabox.php:1518
879
+ msgid "Choose the border style"
880
+ msgstr ""
881
+
882
+ #: includes/admin/core/class-admin-metabox.php:1520
883
+ #: includes/admin/core/class-admin-metabox.php:1691
884
+ msgid "Solid"
885
+ msgstr ""
886
+
887
+ #: includes/admin/core/class-admin-metabox.php:1521
888
+ #: includes/admin/core/class-admin-metabox.php:1692
889
+ msgid "Dotted"
890
+ msgstr ""
891
+
892
+ #: includes/admin/core/class-admin-metabox.php:1522
893
+ #: includes/admin/core/class-admin-metabox.php:1693
894
+ msgid "Dashed"
895
+ msgstr ""
896
+
897
+ #: includes/admin/core/class-admin-metabox.php:1523
898
+ #: includes/admin/core/class-admin-metabox.php:1694
899
+ msgid "Double"
900
+ msgstr ""
901
+
902
+ #: includes/admin/core/class-admin-metabox.php:1533
903
+ msgid "Border Radius"
904
+ msgstr ""
905
+
906
+ #: includes/admin/core/class-admin-metabox.php:1533
907
+ msgid "Rounded corners can be applied by setting a pixels value here. e.g. 5px"
908
+ msgstr ""
909
+
910
+ #: includes/admin/core/class-admin-metabox.php:1543
911
+ msgid "Border Color"
912
+ msgstr ""
913
+
914
+ #: includes/admin/core/class-admin-metabox.php:1543
915
+ msgid "Give a color to this border"
916
+ msgstr ""
917
+
918
+ #: includes/admin/core/class-admin-metabox.php:1553
919
+ msgid "Enable Row Heading"
920
+ msgstr ""
921
+
922
+ #: includes/admin/core/class-admin-metabox.php:1553
923
+ msgid "Whether to enable a heading for this row"
924
+ msgstr ""
925
+
926
+ #: includes/admin/core/class-admin-metabox.php:1563
927
+ msgid "Heading Text"
928
+ msgstr ""
929
+
930
+ #: includes/admin/core/class-admin-metabox.php:1563
931
+ msgid "Enter the row heading text here"
932
+ msgstr ""
933
+
934
+ #: includes/admin/core/class-admin-metabox.php:1573
935
+ msgid "Background Color"
936
+ msgstr ""
937
+
938
+ #: includes/admin/core/class-admin-metabox.php:1573
939
+ msgid "This will be the background of entire section"
940
+ msgstr ""
941
+
942
+ #: includes/admin/core/class-admin-metabox.php:1583
943
+ msgid "Heading Background Color"
944
+ msgstr ""
945
+
946
+ #: includes/admin/core/class-admin-metabox.php:1583
947
+ msgid "This will be the background of the heading section"
948
+ msgstr ""
949
+
950
+ #: includes/admin/core/class-admin-metabox.php:1593
951
+ msgid "Heading Text Color"
952
+ msgstr ""
953
+
954
+ #: includes/admin/core/class-admin-metabox.php:1593
955
+ msgid "This will be the text color of heading part only"
956
+ msgstr ""
957
+
958
+ #: includes/admin/core/class-admin-metabox.php:1603
959
+ msgid "Text Color"
960
+ msgstr ""
961
+
962
+ #: includes/admin/core/class-admin-metabox.php:1603
963
+ msgid "This will be the text color of entire section"
964
+ msgstr ""
965
+
966
+ #: includes/admin/core/class-admin-metabox.php:1613
967
+ msgid "Icon Color"
968
+ msgstr ""
969
+
970
+ #: includes/admin/core/class-admin-metabox.php:1613
971
+ msgid ""
972
+ "This will be the color of selected icon. By default It will be the same "
973
+ "color as heading text color"
974
+ msgstr ""
975
+
976
+ #: includes/admin/core/class-admin-metabox.php:1623
977
+ msgid "Color"
978
+ msgstr ""
979
+
980
+ #: includes/admin/core/class-admin-metabox.php:1623
981
+ msgid "Select a color for this divider"
982
+ msgstr ""
983
+
984
+ #: includes/admin/core/class-admin-metabox.php:1633
985
+ msgid "URL Alt Text"
986
+ msgstr ""
987
+
988
+ #: includes/admin/core/class-admin-metabox.php:1633
989
+ msgid "Entering custom text here will replace the url with a text link"
990
+ msgstr ""
991
+
992
+ #: includes/admin/core/class-admin-metabox.php:1643
993
+ msgid "Link Target"
994
+ msgstr ""
995
+
996
+ #: includes/admin/core/class-admin-metabox.php:1643
997
+ msgid "Choose whether to open this link in same window or in a new window"
998
+ msgstr ""
999
+
1000
+ #: includes/admin/core/class-admin-metabox.php:1645
1001
+ msgid "Open in new window"
1002
+ msgstr ""
1003
+
1004
+ #: includes/admin/core/class-admin-metabox.php:1646
1005
+ msgid "Same window"
1006
+ msgstr ""
1007
+
1008
+ #: includes/admin/core/class-admin-metabox.php:1656
1009
+ msgid "SEO Follow"
1010
+ msgstr ""
1011
+
1012
+ #: includes/admin/core/class-admin-metabox.php:1656
1013
+ msgid "Whether to follow or nofollow this link by search engines"
1014
+ msgstr ""
1015
+
1016
+ #: includes/admin/core/class-admin-metabox.php:1658
1017
+ msgid "Follow"
1018
+ msgstr ""
1019
+
1020
+ #: includes/admin/core/class-admin-metabox.php:1659
1021
+ msgid "No-Follow"
1022
+ msgstr ""
1023
+
1024
+ #: includes/admin/core/class-admin-metabox.php:1669
1025
+ msgid "Force strong password?"
1026
+ msgstr ""
1027
+
1028
+ #: includes/admin/core/class-admin-metabox.php:1669
1029
+ msgid ""
1030
+ "Turn on to force users to create a strong password (A combination of one "
1031
+ "lowercase letter, one uppercase letter, and one number). If turned on this "
1032
+ "option is only applied to register forms and not to login forms."
1033
+ msgstr ""
1034
+
1035
+ #: includes/admin/core/class-admin-metabox.php:1679
1036
+ msgid "Automatically add a confirm password field?"
1037
+ msgstr ""
1038
+
1039
+ #: includes/admin/core/class-admin-metabox.php:1679
1040
+ msgid ""
1041
+ "Turn on to add a confirm password field. If turned on the confirm password "
1042
+ "field will only show on register forms and not on login forms."
1043
+ msgstr ""
1044
+
1045
+ #: includes/admin/core/class-admin-metabox.php:1689
1046
+ msgid "This is the line-style of divider"
1047
+ msgstr ""
1048
+
1049
+ #: includes/admin/core/class-admin-metabox.php:1705
1050
+ msgid "Time Intervals (in minutes)"
1051
+ msgstr ""
1052
+
1053
+ #: includes/admin/core/class-admin-metabox.php:1705
1054
+ msgid "Choose the minutes interval between each time in the time picker."
1055
+ msgstr ""
1056
+
1057
+ #: includes/admin/core/class-admin-metabox.php:1706
1058
+ msgid "e.g. 30, 60, 120"
1059
+ msgstr ""
1060
+
1061
+ #: includes/admin/core/class-admin-metabox.php:1718
1062
+ msgid "Date User-Friendly Format"
1063
+ msgstr ""
1064
+
1065
+ #: includes/admin/core/class-admin-metabox.php:1718
1066
+ msgid "The display format of the date which is visible to user."
1067
+ msgstr ""
1068
+
1069
+ #: includes/admin/core/class-admin-metabox.php:1729
1070
+ msgid "Time Format"
1071
+ msgstr ""
1072
+
1073
+ #: includes/admin/core/class-admin-metabox.php:1729
1074
+ msgid "Choose the displayed time-format for this field"
1075
+ msgstr ""
1076
+
1077
+ #: includes/admin/core/class-admin-metabox.php:1731
1078
+ #: includes/admin/core/class-admin-metabox.php:1732
1079
+ msgid "( 12-hr format )"
1080
+ msgstr ""
1081
+
1082
+ #: includes/admin/core/class-admin-metabox.php:1733
1083
+ msgid "( 24-hr format )"
1084
+ msgstr ""
1085
+
1086
+ #: includes/admin/core/class-admin-metabox.php:1744
1087
+ msgid "Use custom Date format"
1088
+ msgstr ""
1089
+
1090
+ #: includes/admin/core/class-admin-metabox.php:1744
1091
+ msgid ""
1092
+ "This option overrides \"Date User-Friendly Format\" option. See https://www."
1093
+ "php.net/manual/en/function.date.php"
1094
+ msgstr ""
1095
+
1096
+ #: includes/admin/core/class-admin-metabox.php:1754
1097
+ msgid "Displayed Date Format"
1098
+ msgstr ""
1099
+
1100
+ #: includes/admin/core/class-admin-metabox.php:1754
1101
+ msgid ""
1102
+ "Whether you wish to show the date in full or only show the years e.g. 25 "
1103
+ "Years"
1104
+ msgstr ""
1105
+
1106
+ #: includes/admin/core/class-admin-metabox.php:1756
1107
+ msgid "Show full date"
1108
+ msgstr ""
1109
+
1110
+ #: includes/admin/core/class-admin-metabox.php:1757
1111
+ msgid "Show years only"
1112
+ msgstr ""
1113
+
1114
+ #: includes/admin/core/class-admin-metabox.php:1773
1115
+ msgid "Disable specific weekdays"
1116
+ msgstr ""
1117
+
1118
+ #: includes/admin/core/class-admin-metabox.php:1773
1119
+ msgid ""
1120
+ "Disable specific week days from being available for selection in this date "
1121
+ "picker"
1122
+ msgstr ""
1123
+
1124
+ #: includes/admin/core/class-admin-metabox.php:1775
1125
+ msgid "Sunday"
1126
+ msgstr ""
1127
+
1128
+ #: includes/admin/core/class-admin-metabox.php:1776
1129
+ msgid "Monday"
1130
+ msgstr ""
1131
+
1132
+ #: includes/admin/core/class-admin-metabox.php:1777
1133
+ msgid "Tuesday"
1134
+ msgstr ""
1135
+
1136
+ #: includes/admin/core/class-admin-metabox.php:1778
1137
+ msgid "Wednesday"
1138
+ msgstr ""
1139
+
1140
+ #: includes/admin/core/class-admin-metabox.php:1779
1141
+ msgid "Thursday"
1142
+ msgstr ""
1143
+
1144
+ #: includes/admin/core/class-admin-metabox.php:1780
1145
+ msgid "Friday"
1146
+ msgstr ""
1147
+
1148
+ #: includes/admin/core/class-admin-metabox.php:1781
1149
+ msgid "Saturday"
1150
+ msgstr ""
1151
+
1152
+ #: includes/admin/core/class-admin-metabox.php:1791
1153
+ msgid "Number of Years to pick from"
1154
+ msgstr ""
1155
+
1156
+ #: includes/admin/core/class-admin-metabox.php:1791
1157
+ msgid ""
1158
+ "Number of years available for the date selection. Default to last 50 years"
1159
+ msgstr ""
1160
+
1161
+ #: includes/admin/core/class-admin-metabox.php:1801
1162
+ msgid "Years Selection"
1163
+ msgstr ""
1164
+
1165
+ #: includes/admin/core/class-admin-metabox.php:1801
1166
+ msgid "This decides which years should be shown relative to today date"
1167
+ msgstr ""
1168
+
1169
+ #: includes/admin/core/class-admin-metabox.php:1803
1170
+ msgid "Equal years before / after today"
1171
+ msgstr ""
1172
+
1173
+ #: includes/admin/core/class-admin-metabox.php:1804
1174
+ msgid "Past years only"
1175
+ msgstr ""
1176
+
1177
+ #: includes/admin/core/class-admin-metabox.php:1805
1178
+ msgid "Future years only"
1179
+ msgstr ""
1180
+
1181
+ #: includes/admin/core/class-admin-metabox.php:1815
1182
+ msgid "Date Range Start"
1183
+ msgstr ""
1184
+
1185
+ #: includes/admin/core/class-admin-metabox.php:1815
1186
+ msgid "Set the minimum date/day in range in the format YYYY/MM/DD"
1187
+ msgstr ""
1188
+
1189
+ #: includes/admin/core/class-admin-metabox.php:1816
1190
+ #: includes/admin/core/class-admin-metabox.php:1826
1191
+ msgid "YYYY/MM/DD"
1192
+ msgstr ""
1193
+
1194
+ #: includes/admin/core/class-admin-metabox.php:1825
1195
+ msgid "Date Range End"
1196
+ msgstr ""
1197
+
1198
+ #: includes/admin/core/class-admin-metabox.php:1825
1199
+ msgid "Set the maximum date/day in range in the format YYYY/MM/DD"
1200
+ msgstr ""
1201
+
1202
+ #: includes/admin/core/class-admin-metabox.php:1835
1203
+ msgid "Set Date Range"
1204
+ msgstr ""
1205
+
1206
+ #: includes/admin/core/class-admin-metabox.php:1835
1207
+ msgid ""
1208
+ "Whether to show a specific number of years or specify a date range to be "
1209
+ "available for the date picker."
1210
+ msgstr ""
1211
+
1212
+ #: includes/admin/core/class-admin-metabox.php:1837
1213
+ msgid "Fixed Number of Years"
1214
+ msgstr ""
1215
+
1216
+ #: includes/admin/core/class-admin-metabox.php:1838
1217
+ msgid "Specific Date Range"
1218
+ msgstr ""
1219
+
1220
+ #: includes/admin/core/class-admin-metabox.php:1851
1221
+ msgid "Enter Shortcode"
1222
+ msgstr ""
1223
+
1224
+ #: includes/admin/core/class-admin-metabox.php:1851
1225
+ msgid ""
1226
+ "Enter the shortcode in the following textarea and it will be displayed on "
1227
+ "the fields"
1228
+ msgstr ""
1229
+
1230
+ #: includes/admin/core/class-admin-metabox.php:1852
1231
+ msgid "e.g. [my_custom_shortcode]"
1232
+ msgstr ""
1233
+
1234
+ #: includes/admin/core/class-admin-metabox.php:1861
1235
+ msgid "Content Editor"
1236
+ msgstr ""
1237
+
1238
+ #: includes/admin/core/class-admin-metabox.php:1861
1239
+ msgid "Edit the content of this field here"
1240
+ msgstr ""
1241
+
1242
+ #: includes/admin/core/class-admin-metabox.php:1874
1243
+ msgid "Crop Feature"
1244
+ msgstr ""
1245
+
1246
+ #: includes/admin/core/class-admin-metabox.php:1874
1247
+ msgid "Enable/disable crop feature for this image upload and define ratio"
1248
+ msgstr ""
1249
+
1250
+ #: includes/admin/core/class-admin-metabox.php:1876
1251
+ msgid "Turn Off (Default)"
1252
+ msgstr ""
1253
+
1254
+ #: includes/admin/core/class-admin-metabox.php:1877
1255
+ msgid "Crop and force 1:1 ratio"
1256
+ msgstr ""
1257
+
1258
+ #: includes/admin/core/class-admin-metabox.php:1878
1259
+ msgid "Crop and force user-defined ratio"
1260
+ msgstr ""
1261
+
1262
+ #: includes/admin/core/class-admin-metabox.php:1895
1263
+ msgid "Allowed Image Types"
1264
+ msgstr ""
1265
+
1266
+ #: includes/admin/core/class-admin-metabox.php:1895
1267
+ #: includes/admin/core/class-admin-metabox.php:1913
1268
+ msgid ""
1269
+ "Select the image types that you want to allow to be uploaded via this field."
1270
+ msgstr ""
1271
+
1272
+ #: includes/admin/core/class-admin-metabox.php:1913
1273
+ msgid "Allowed File Types"
1274
+ msgstr ""
1275
+
1276
+ #: includes/admin/core/class-admin-metabox.php:1930
1277
+ msgid "Drag &amp; Drop Photo"
1278
+ msgstr ""
1279
+
1280
+ #: includes/admin/core/class-admin-metabox.php:1933
1281
+ msgid "Drag &amp; Drop File"
1282
+ msgstr ""
1283
+
1284
+ #: includes/admin/core/class-admin-metabox.php:1938
1285
+ #: includes/admin/core/class-admin-metabox.php:1958
1286
+ msgid "Upload Box Text"
1287
+ msgstr ""
1288
+
1289
+ #: includes/admin/core/class-admin-metabox.php:1938
1290
+ msgid "This is the headline that appears in the upload box for this field"
1291
+ msgstr ""
1292
+
1293
+ #: includes/admin/core/class-admin-metabox.php:1948
1294
+ msgid "Additional Instructions Text"
1295
+ msgstr ""
1296
+
1297
+ #: includes/admin/core/class-admin-metabox.php:1948
1298
+ msgid ""
1299
+ "If you need to add information or secondary line below the headline of "
1300
+ "upload box, enter it here"
1301
+ msgstr ""
1302
+
1303
+ #: includes/admin/core/class-admin-metabox.php:1958
1304
+ msgid "The text that appears on the button. e.g. Upload"
1305
+ msgstr ""
1306
+
1307
+ #: includes/admin/core/class-admin-metabox.php:1959
1308
+ #: includes/core/class-fields.php:1627 includes/core/class-fields.php:1668
1309
+ msgid "Upload"
1310
+ msgstr ""
1311
+
1312
+ #: includes/admin/core/class-admin-metabox.php:1968
1313
+ msgid "Maximum Size in bytes"
1314
+ msgstr ""
1315
+
1316
+ #: includes/admin/core/class-admin-metabox.php:1968
1317
+ msgid ""
1318
+ "The maximum size for image that can be uploaded through this field. Leave "
1319
+ "empty for unlimited size."
1320
+ msgstr ""
1321
+
1322
+ #: includes/admin/core/class-admin-metabox.php:1978
1323
+ msgid "Textarea Height"
1324
+ msgstr ""
1325
+
1326
+ #: includes/admin/core/class-admin-metabox.php:1978
1327
+ msgid "The height of textarea in pixels. Default is 100 pixels"
1328
+ msgstr ""
1329
+
1330
+ #: includes/admin/core/class-admin-metabox.php:1988
1331
+ msgid "Spacing"
1332
+ msgstr ""
1333
+
1334
+ #: includes/admin/core/class-admin-metabox.php:1988
1335
+ msgid "This is the required spacing in pixels. e.g. 20px"
1336
+ msgstr ""
1337
+
1338
+ #: includes/admin/core/class-admin-metabox.php:1998
1339
+ msgid "Allow multiple selections"
1340
+ msgstr ""
1341
+
1342
+ #: includes/admin/core/class-admin-metabox.php:1998
1343
+ msgid "Enable/disable multiple selections for this field"
1344
+ msgstr ""
1345
+
1346
+ #: includes/admin/core/class-admin-metabox.php:2008
1347
+ msgid "Maximum number of selections"
1348
+ msgstr ""
1349
+
1350
+ #: includes/admin/core/class-admin-metabox.php:2008
1351
+ msgid ""
1352
+ "Enter a number here to force a maximum number of selections by user for this "
1353
+ "field"
1354
+ msgstr ""
1355
+
1356
+ #: includes/admin/core/class-admin-metabox.php:2018
1357
+ msgid "Minimum number of selections"
1358
+ msgstr ""
1359
+
1360
+ #: includes/admin/core/class-admin-metabox.php:2018
1361
+ msgid ""
1362
+ "Enter a number here to force a minimum number of selections by user for this "
1363
+ "field"
1364
+ msgstr ""
1365
+
1366
+ #: includes/admin/core/class-admin-metabox.php:2028
1367
+ msgid "Maximum number of entries"
1368
+ msgstr ""
1369
+
1370
+ #: includes/admin/core/class-admin-metabox.php:2028
1371
+ msgid "This is the max number of entries the user can add via field group."
1372
+ msgstr ""
1373
+
1374
+ #: includes/admin/core/class-admin-metabox.php:2038
1375
+ msgid "Maximum allowed words"
1376
+ msgstr ""
1377
+
1378
+ #: includes/admin/core/class-admin-metabox.php:2038
1379
+ msgid ""
1380
+ "If you want to enable a maximum number of words to be input in this "
1381
+ "textarea. Leave empty to disable this setting"
1382
+ msgstr ""
1383
+
1384
+ #: includes/admin/core/class-admin-metabox.php:2048
1385
+ msgid "Minimum Number"
1386
+ msgstr ""
1387
+
1388
+ #: includes/admin/core/class-admin-metabox.php:2048
1389
+ msgid "Minimum number that can be entered in this field"
1390
+ msgstr ""
1391
+
1392
+ #: includes/admin/core/class-admin-metabox.php:2058
1393
+ msgid "Maximum Number"
1394
+ msgstr ""
1395
+
1396
+ #: includes/admin/core/class-admin-metabox.php:2058
1397
+ msgid "Maximum number that can be entered in this field"
1398
+ msgstr ""
1399
+
1400
+ #: includes/admin/core/class-admin-metabox.php:2068
1401
+ msgid "Minimum length"
1402
+ msgstr ""
1403
+
1404
+ #: includes/admin/core/class-admin-metabox.php:2068
1405
+ msgid ""
1406
+ "If you want to enable a minimum number of characters to be input in this "
1407
+ "field. Leave empty to disable this setting"
1408
+ msgstr ""
1409
+
1410
+ #: includes/admin/core/class-admin-metabox.php:2078
1411
+ msgid "Maximum length"
1412
+ msgstr ""
1413
+
1414
+ #: includes/admin/core/class-admin-metabox.php:2078
1415
+ msgid ""
1416
+ "If you want to enable a maximum number of characters to be input in this "
1417
+ "field. Leave empty to disable this setting"
1418
+ msgstr ""
1419
+
1420
+ #: includes/admin/core/class-admin-metabox.php:2088
1421
+ msgid "Does this textarea accept HTML?"
1422
+ msgstr ""
1423
+
1424
+ #: includes/admin/core/class-admin-metabox.php:2088
1425
+ msgid "Turn on/off HTML tags for this textarea"
1426
+ msgstr ""
1427
+
1428
+ #: includes/admin/core/class-admin-metabox.php:2105
1429
+ msgid "Edit Choices"
1430
+ msgstr ""
1431
+
1432
+ #: includes/admin/core/class-admin-metabox.php:2105
1433
+ msgid ""
1434
+ "Enter one choice per line. This will represent the available choices or "
1435
+ "selections available for user."
1436
+ msgstr ""
1437
+
1438
+ #: includes/admin/core/class-admin-metabox.php:2115
1439
+ msgid ""
1440
+ "This is the title of the field for your reference in the backend. The title "
1441
+ "will not appear on the front-end of your website."
1442
+ msgstr ""
1443
+
1444
+ #: includes/admin/core/class-admin-metabox.php:2126
1445
+ msgid "Unique ID"
1446
+ msgstr ""
1447
+
1448
+ #: includes/admin/core/class-admin-metabox.php:2140
1449
+ #: includes/admin/core/class-admin-metabox.php:2146
1450
+ msgid "Meta Key"
1451
+ msgstr ""
1452
+
1453
+ #: includes/admin/core/class-admin-metabox.php:2140
1454
+ msgid ""
1455
+ "The meta key cannot be changed for duplicated fields or when editing an "
1456
+ "existing field. If you require a different meta key please create a new "
1457
+ "field."
1458
+ msgstr ""
1459
+
1460
+ #: includes/admin/core/class-admin-metabox.php:2146
1461
+ msgid ""
1462
+ "A meta key is required to store the entered info in this field in the "
1463
+ "database. The meta key should be unique to this field and be written in "
1464
+ "lowercase with an underscore ( _ ) separating words e.g country_list or "
1465
+ "job_title"
1466
+ msgstr ""
1467
+
1468
+ #: includes/admin/core/class-admin-metabox.php:2159
1469
+ msgid "Help Text"
1470
+ msgstr ""
1471
+
1472
+ #: includes/admin/core/class-admin-metabox.php:2159
1473
+ msgid ""
1474
+ "This is the text that appears in a tooltip when a user hovers over the info "
1475
+ "icon. Help text is useful for providing users with more information about "
1476
+ "what they should enter in the field. Leave blank if no help text is needed "
1477
+ "for field."
1478
+ msgstr ""
1479
+
1480
+ #: includes/admin/core/class-admin-metabox.php:2171
1481
+ msgid "Default Text"
1482
+ msgstr ""
1483
+
1484
+ #: includes/admin/core/class-admin-metabox.php:2171
1485
+ msgid "Text to display by default in this field"
1486
+ msgstr ""
1487
+
1488
+ #: includes/admin/core/class-admin-metabox.php:2177
1489
+ msgid "Default Date"
1490
+ msgstr ""
1491
+
1492
+ #: includes/admin/core/class-admin-metabox.php:2177
1493
+ #: includes/admin/core/class-admin-metabox.php:2183
1494
+ msgid ""
1495
+ "You may use all PHP compatible date formats such as: 2020-02-02, 02/02/2020, "
1496
+ "yesterday, today, tomorrow, next monday, first day of next month, +3 day"
1497
+ msgstr ""
1498
+
1499
+ #: includes/admin/core/class-admin-metabox.php:2183
1500
+ msgid "Default Time"
1501
+ msgstr ""
1502
+
1503
+ #: includes/admin/core/class-admin-metabox.php:2189
1504
+ msgid "Default Rating"
1505
+ msgstr ""
1506
+
1507
+ #: includes/admin/core/class-admin-metabox.php:2189
1508
+ msgid ""
1509
+ "If you wish the rating field to be prefilled with a number of stars, enter "
1510
+ "it here."
1511
+ msgstr ""
1512
+
1513
+ #: includes/admin/core/class-admin-metabox.php:2195
1514
+ msgid "Default Value"
1515
+ msgstr ""
1516
+
1517
+ #: includes/admin/core/class-admin-metabox.php:2195
1518
+ msgid ""
1519
+ "This option allows you to pre-fill the field with a default value prior to "
1520
+ "the user entering a value in the field. Leave blank to have no default value"
1521
+ msgstr ""
1522
+
1523
+ #: includes/admin/core/class-admin-metabox.php:2207
1524
+ msgid "Label"
1525
+ msgstr ""
1526
+
1527
+ #: includes/admin/core/class-admin-metabox.php:2207
1528
+ msgid ""
1529
+ "The field label is the text that appears above the field on your front-end "
1530
+ "form. Leave blank to not show a label above field."
1531
+ msgstr ""
1532
+
1533
+ #: includes/admin/core/class-admin-metabox.php:2217
1534
+ msgid "Placeholder"
1535
+ msgstr ""
1536
+
1537
+ #: includes/admin/core/class-admin-metabox.php:2217
1538
+ msgid ""
1539
+ "This is the text that appears within the field e.g please enter your email "
1540
+ "address. Leave blank to not show any placeholder text."
1541
+ msgstr ""
1542
+
1543
+ #: includes/admin/core/class-admin-metabox.php:2227
1544
+ msgid ""
1545
+ "Field privacy allows you to select who can view this field on the front-end. "
1546
+ "The site admin can view all fields regardless of the option set here."
1547
+ msgstr ""
1548
+
1549
+ #: includes/admin/core/class-admin-metabox.php:2230
1550
+ #: includes/class-config.php:134 includes/class-config.php:787
1551
+ msgid "Members"
1552
+ msgstr ""
1553
+
1554
+ #: includes/admin/core/class-admin-metabox.php:2231
1555
+ msgid "Only visible to profile owner and admins"
1556
+ msgstr ""
1557
+
1558
+ #: includes/admin/core/class-admin-metabox.php:2232
1559
+ msgid "Only visible to profile owner and specific roles"
1560
+ msgstr ""
1561
+
1562
+ #: includes/admin/core/class-admin-metabox.php:2233
1563
+ msgid "Only specific member roles"
1564
+ msgstr ""
1565
+
1566
+ #: includes/admin/core/class-admin-metabox.php:2250
1567
+ msgid "Select member roles"
1568
+ msgstr ""
1569
+
1570
+ #: includes/admin/core/class-admin-metabox.php:2250
1571
+ msgid "Select the member roles that can view this field on the front-end."
1572
+ msgstr ""
1573
+
1574
+ #: includes/admin/core/class-admin-metabox.php:2276
1575
+ msgid "Is this field required?"
1576
+ msgstr ""
1577
+
1578
+ #: includes/admin/core/class-admin-metabox.php:2276
1579
+ msgid ""
1580
+ "This option allows you to set whether the field must be filled in before the "
1581
+ "form can be processed."
1582
+ msgstr ""
1583
+
1584
+ #: includes/admin/core/class-admin-metabox.php:2290
1585
+ msgid "Can user edit this field?"
1586
+ msgstr ""
1587
+
1588
+ #: includes/admin/core/class-admin-metabox.php:2290
1589
+ msgid ""
1590
+ "This option allows you to set whether or not the user can edit the "
1591
+ "information in this field."
1592
+ msgstr ""
1593
+
1594
+ #: includes/admin/core/class-admin-metabox.php:2303
1595
+ msgid "Rating System"
1596
+ msgstr ""
1597
+
1598
+ #: includes/admin/core/class-admin-metabox.php:2303
1599
+ msgid "Choose whether you want a 5-stars or 10-stars ratings based here."
1600
+ msgstr ""
1601
+
1602
+ #: includes/admin/core/class-admin-metabox.php:2305
1603
+ msgid "5 stars rating system"
1604
+ msgstr ""
1605
+
1606
+ #: includes/admin/core/class-admin-metabox.php:2306
1607
+ msgid "10 stars rating system"
1608
+ msgstr ""
1609
+
1610
+ #: includes/admin/core/class-admin-metabox.php:2316
1611
+ msgid "Choices Callback"
1612
+ msgstr ""
1613
+
1614
+ #: includes/admin/core/class-admin-metabox.php:2316
1615
+ msgid "Add a callback source to retrieve choices."
1616
+ msgstr ""
1617
+
1618
+ #: includes/admin/core/class-admin-metabox.php:2327
1619
+ msgid "Parent Option"
1620
+ msgstr ""
1621
+
1622
+ #: includes/admin/core/class-admin-metabox.php:2327
1623
+ msgid "Dynamically populates the option based from selected parent option."
1624
+ msgstr ""
1625
+
1626
+ #: includes/admin/core/class-admin-metabox.php:2329
1627
+ msgid "No Selected"
1628
+ msgstr ""
1629
+
1630
+ #: includes/admin/core/class-admin-navmenu.php:23
1631
+ msgid "Display Mode"
1632
+ msgstr ""
1633
+
1634
+ #: includes/admin/core/class-admin-navmenu.php:24
1635
+ msgid "By Role"
1636
+ msgstr ""
1637
+
1638
+ #: includes/admin/core/class-admin-navmenu.php:133
1639
+ msgid "Ultimate Member Menu Settings"
1640
+ msgstr ""
1641
+
1642
+ #: includes/admin/core/class-admin-navmenu.php:137
1643
+ msgid "Who can see this menu link?"
1644
+ msgstr ""
1645
+
1646
+ #: includes/admin/core/class-admin-navmenu.php:144
1647
+ msgid "Logged Out Users"
1648
+ msgstr ""
1649
+
1650
+ #: includes/admin/core/class-admin-navmenu.php:147
1651
+ msgid "Logged In Users"
1652
+ msgstr ""
1653
+
1654
+ #: includes/admin/core/class-admin-navmenu.php:153
1655
+ msgid "Select the member roles that can see this link"
1656
+ msgstr ""
1657
+
1658
+ #: includes/admin/core/class-admin-notices.php:283
1659
+ #, php-format
1660
+ msgid ""
1661
+ "<strong>%s %s</strong> requires 2.0 extensions. You have pre 2.0 extensions "
1662
+ "installed on your site. <br /> Please update %s extensions to latest "
1663
+ "versions. For more info see this <a href=\"%s\" target=\"_blank\">doc</a>."
1664
+ msgstr ""
1665
+
1666
+ #: includes/admin/core/class-admin-notices.php:304
1667
+ #, php-format
1668
+ msgid ""
1669
+ "%s needs to create several pages (User Profiles, Account, Registration, "
1670
+ "Login, Password Reset, Logout, Member Directory) to function correctly."
1671
+ msgstr ""
1672
+
1673
+ #: includes/admin/core/class-admin-notices.php:308
1674
+ msgid "Create Pages"
1675
+ msgstr ""
1676
+
1677
+ #: includes/admin/core/class-admin-notices.php:310
1678
+ #: includes/admin/core/class-admin-notices.php:504
1679
+ msgid "No thanks"
1680
+ msgstr ""
1681
+
1682
+ #: includes/admin/core/class-admin-notices.php:330
1683
+ msgid "Ultimate Member Setup Error: User page can not be a child page."
1684
+ msgstr ""
1685
+
1686
+ #: includes/admin/core/class-admin-notices.php:340
1687
+ msgid "Ultimate Member Setup Error: Account page can not be a child page."
1688
+ msgstr ""
1689
+
1690
+ #: includes/admin/core/class-admin-notices.php:358
1691
+ #, php-format
1692
+ msgid ""
1693
+ "Exif is not enabled on your server. Mobile photo uploads will not be rotated "
1694
+ "correctly until you enable the exif extension. <a href=\"%s\">Hide this "
1695
+ "notice</a>"
1696
+ msgstr ""
1697
+
1698
+ #: includes/admin/core/class-admin-notices.php:393
1699
+ #, php-format
1700
+ msgid ""
1701
+ "Are you sure you want to delete the selected user(s)? The following users "
1702
+ "will be deleted: <p>%s</p> <strong>This cannot be undone!</strong>"
1703
+ msgstr ""
1704
+
1705
+ #: includes/admin/core/class-admin-notices.php:394
1706
+ msgid "Undo"
1707
+ msgstr ""
1708
+
1709
+ #: includes/admin/core/class-admin-notices.php:399
1710
+ msgid "Your translation files have been updated successfully."
1711
+ msgstr ""
1712
+
1713
+ #: includes/admin/core/class-admin-notices.php:403
1714
+ msgid "Your temp uploads directory is now clean."
1715
+ msgstr ""
1716
+
1717
+ #: includes/admin/core/class-admin-notices.php:407
1718
+ msgid "Your user cache is now removed."
1719
+ msgstr ""
1720
+
1721
+ #: includes/admin/core/class-admin-notices.php:411
1722
+ msgid "You have the latest updates."
1723
+ msgstr ""
1724
+
1725
+ #: includes/admin/core/class-admin-notices.php:415
1726
+ msgid "Try again later. You can run this action once daily."
1727
+ msgstr ""
1728
+
1729
+ #: includes/admin/core/class-admin-notices.php:419
1730
+ msgid "The form has been duplicated successfully."
1731
+ msgstr ""
1732
+
1733
+ #: includes/admin/core/class-admin-notices.php:423
1734
+ msgid "User has been updated."
1735
+ msgstr ""
1736
+
1737
+ #: includes/admin/core/class-admin-notices.php:427
1738
+ msgid "Users have been updated."
1739
+ msgstr ""
1740
+
1741
+ #: includes/admin/core/class-admin-notices.php:431
1742
+ msgid "Changed roles."
1743
+ msgstr ""
1744
+
1745
+ #: includes/admin/core/class-admin-notices.php:435
1746
+ msgid "Super administrators cannot be modified."
1747
+ msgstr ""
1748
+
1749
+ #: includes/admin/core/class-admin-notices.php:436
1750
+ msgid "Other users have been updated."
1751
+ msgstr ""
1752
+
1753
+ #: includes/admin/core/class-admin-notices.php:473
1754
+ #, php-format
1755
+ msgid ""
1756
+ "You have installed <strong>%s</strong> with wrong folder name. Correct "
1757
+ "folder name is <strong>\"ultimate-member\"</strong>."
1758
+ msgstr ""
1759
+
1760
+ #: includes/admin/core/class-admin-notices.php:498
1761
+ #, php-format
1762
+ msgid ""
1763
+ "Thanks for installing <strong>%s</strong>! We hope you like the plugin. To "
1764
+ "fund full-time development and support of the plugin we also sell "
1765
+ "extensions. If you subscribe to our mailing list we will send you a 20%% "
1766
+ "discount code for one of our <a href=\"%s\" target=\"_blank\">access passes</"
1767
+ "a>."
1768
+ msgstr ""
1769
+
1770
+ #: includes/admin/core/class-admin-notices.php:502
1771
+ #, php-format
1772
+ msgid "Claim 20% discount code"
1773
+ msgstr ""
1774
+
1775
+ #: includes/admin/core/class-admin-notices.php:541
1776
+ #, php-format
1777
+ msgid ""
1778
+ "There are %d inactive %s license keys for this site. This site is not "
1779
+ "authorized to get plugin updates. You can active this site on <a href=\"%s"
1780
+ "\">www.ultimatemember.com</a>."
1781
+ msgstr ""
1782
+
1783
+ #: includes/admin/core/class-admin-notices.php:548
1784
+ #, php-format
1785
+ msgid ""
1786
+ "You have %d invalid or expired license keys for %s. Please go to the <a href="
1787
+ "\"%s\">Licenses page</a> to correct this issue."
1788
+ msgstr ""
1789
+
1790
+ #: includes/admin/core/class-admin-notices.php:562
1791
+ #, php-format
1792
+ msgid ""
1793
+ "<strong>%s version %s</strong> needs to be updated to work correctly.<br /"
1794
+ ">It is necessary to update the structure of the database and options that "
1795
+ "are associated with <strong>%s %s</strong>.<br />Please visit <a href=\"%s\">"
1796
+ "\"Upgrade\"</a> page and run the upgrade process."
1797
+ msgstr ""
1798
+
1799
+ #: includes/admin/core/class-admin-notices.php:566
1800
+ msgid "Upgrade Now"
1801
+ msgstr ""
1802
+
1803
+ #: includes/admin/core/class-admin-notices.php:580
1804
+ #, php-format
1805
+ msgid "<strong>%s %s</strong> Successfully Upgraded"
1806
+ msgstr ""
1807
+
1808
+ #: includes/admin/core/class-admin-notices.php:606
1809
+ #, php-format
1810
+ msgid ""
1811
+ "Hey there! It's been one month since you installed %s. How have you found "
1812
+ "the plugin so far?"
1813
+ msgstr ""
1814
+
1815
+ #: includes/admin/core/class-admin-notices.php:609
1816
+ msgid "I love it!"
1817
+ msgstr ""
1818
+
1819
+ #: includes/admin/core/class-admin-notices.php:610
1820
+ msgid "It's good but could be better"
1821
+ msgstr ""
1822
+
1823
+ #: includes/admin/core/class-admin-notices.php:611
1824
+ msgid "I don't like the plugin"
1825
+ msgstr ""
1826
+
1827
+ #: includes/admin/core/class-admin-notices.php:616
1828
+ #, php-format
1829
+ msgid ""
1830
+ "Great! We're happy to hear that you love the plugin. It would be amazing if "
1831
+ "you could let others know why you like %s by leaving a review of the plugin. "
1832
+ "This will help %s to grow and become more popular and would be massively "
1833
+ "appreciated by us!"
1834
+ msgstr ""
1835
+
1836
+ #: includes/admin/core/class-admin-notices.php:620
1837
+ msgid "Leave Review"
1838
+ msgstr ""
1839
+
1840
+ #: includes/admin/core/class-admin-notices.php:625
1841
+ msgid ""
1842
+ "We're glad to hear that you like the plugin but we would love to get your "
1843
+ "feedback so we can make the plugin better."
1844
+ msgstr ""
1845
+
1846
+ #: includes/admin/core/class-admin-notices.php:629
1847
+ #: includes/admin/core/class-admin-notices.php:638
1848
+ msgid "Provide Feedback"
1849
+ msgstr ""
1850
+
1851
+ #: includes/admin/core/class-admin-notices.php:634
1852
+ #, php-format
1853
+ msgid ""
1854
+ "We're sorry to hear that. If you're having the issue with the plugin you can "
1855
+ "create a topic on our <a href=\"%s\" target=\"_blank\">support forum</a> and "
1856
+ "we will try and help you out with the issue. Alternatively if you have an "
1857
+ "idea on how we can make the plugin better or want to tell us what you don't "
1858
+ "like about the plugin you can tell us know by giving us feedback."
1859
+ msgstr ""
1860
+
1861
+ #: includes/admin/core/class-admin-notices.php:660
1862
+ #, php-format
1863
+ msgid ""
1864
+ "<strong>%s</strong> future plans! Detailed future list is <a href=\"%s\" "
1865
+ "target=\"_blank\">here</a>"
1866
+ msgstr ""
1867
+
1868
+ #: includes/admin/core/class-admin-notices.php:676
1869
+ msgid "Wrong Data"
1870
+ msgstr ""
1871
+
1872
+ #: includes/admin/core/class-admin-settings.php:108
1873
+ #: includes/admin/core/class-admin-settings.php:117
1874
+ #, php-format
1875
+ msgid "%s page"
1876
+ msgstr ""
1877
+
1878
+ #: includes/admin/core/class-admin-settings.php:109
1879
+ msgid "Add page ID"
1880
+ msgstr ""
1881
+
1882
+ #: includes/admin/core/class-admin-settings.php:119
1883
+ msgid "Choose a page..."
1884
+ msgstr ""
1885
+
1886
+ #: includes/admin/core/class-admin-settings.php:131
1887
+ msgid "Enable profile menu"
1888
+ msgstr ""
1889
+
1890
+ #: includes/admin/core/class-admin-settings.php:155
1891
+ #: includes/admin/core/class-admin-settings.php:166
1892
+ #, php-format
1893
+ msgid "%s Tab"
1894
+ msgstr ""
1895
+
1896
+ #: includes/admin/core/class-admin-settings.php:173
1897
+ #, php-format
1898
+ msgid "Who can see %s Tab?"
1899
+ msgstr ""
1900
+
1901
+ #: includes/admin/core/class-admin-settings.php:174
1902
+ msgid "Select which users can view this tab."
1903
+ msgstr ""
1904
+
1905
+ #: includes/admin/core/class-admin-settings.php:183
1906
+ msgid "Allowed roles"
1907
+ msgstr ""
1908
+
1909
+ #: includes/admin/core/class-admin-settings.php:184
1910
+ msgid "Select the the user roles allowed to view this tab."
1911
+ msgstr ""
1912
+
1913
+ #: includes/admin/core/class-admin-settings.php:186
1914
+ msgid "Choose user roles..."
1915
+ msgstr ""
1916
+
1917
+ #: includes/admin/core/class-admin-settings.php:199
1918
+ msgid "Profile menu default tab"
1919
+ msgstr ""
1920
+
1921
+ #: includes/admin/core/class-admin-settings.php:200
1922
+ msgid "This will be the default tab on user profile page"
1923
+ msgstr ""
1924
+
1925
+ #: includes/admin/core/class-admin-settings.php:210
1926
+ msgid "Enable menu icons in desktop view"
1927
+ msgstr ""
1928
+
1929
+ #: includes/admin/core/class-admin-settings.php:263
1930
+ msgid "Global Site Access"
1931
+ msgstr ""
1932
+
1933
+ #: includes/admin/core/class-admin-settings.php:264
1934
+ msgid ""
1935
+ "Globally control the access of your site, you can have seperate restrict "
1936
+ "options per post/page by editing the desired item."
1937
+ msgstr ""
1938
+
1939
+ #: includes/admin/core/class-admin-settings.php:266
1940
+ msgid "Site accessible to Everyone"
1941
+ msgstr ""
1942
+
1943
+ #: includes/admin/core/class-admin-settings.php:267
1944
+ msgid "Site accessible to Logged In Users"
1945
+ msgstr ""
1946
+
1947
+ #: includes/admin/core/class-admin-settings.php:274
1948
+ msgid "Custom Redirect URL"
1949
+ msgstr ""
1950
+
1951
+ #: includes/admin/core/class-admin-settings.php:275
1952
+ msgid ""
1953
+ "A logged out user will be redirected to this url If he is not permitted to "
1954
+ "access the site"
1955
+ msgstr ""
1956
+
1957
+ #: includes/admin/core/class-admin-settings.php:281
1958
+ msgid "Exclude the following URLs"
1959
+ msgstr ""
1960
+
1961
+ #: includes/admin/core/class-admin-settings.php:282
1962
+ msgid ""
1963
+ "Here you can exclude URLs beside the redirect URI to be accessible to "
1964
+ "everyone"
1965
+ msgstr ""
1966
+
1967
+ #: includes/admin/core/class-admin-settings.php:283
1968
+ msgid "Add New URL"
1969
+ msgstr ""
1970
+
1971
+ #: includes/admin/core/class-admin-settings.php:290
1972
+ msgid "Allow Homepage to be accessible"
1973
+ msgstr ""
1974
+
1975
+ #: includes/admin/core/class-admin-settings.php:296
1976
+ msgid "Allow Category pages to be accessible"
1977
+ msgstr ""
1978
+
1979
+ #: includes/admin/core/class-admin-settings.php:302
1980
+ msgid "Restricted Access Message"
1981
+ msgstr ""
1982
+
1983
+ #: includes/admin/core/class-admin-settings.php:303
1984
+ msgid ""
1985
+ "This is the message shown to users that do not have permission to view the "
1986
+ "content"
1987
+ msgstr ""
1988
+
1989
+ #: includes/admin/core/class-admin-settings.php:312
1990
+ msgid "Allow Gutenberg Blocks restriction options"
1991
+ msgstr ""
1992
+
1993
+ #: includes/admin/core/class-admin-settings.php:317
1994
+ msgid "Restricted Block Message"
1995
+ msgstr ""
1996
+
1997
+ #: includes/admin/core/class-admin-settings.php:318
1998
+ msgid ""
1999
+ "This is the message shown to users that do not have permission to view the "
2000
+ "block's content"
2001
+ msgstr ""
2002
+
2003
+ #: includes/admin/core/class-admin-settings.php:336
2004
+ msgid "Restricted Access to Posts"
2005
+ msgstr ""
2006
+
2007
+ #: includes/admin/core/class-admin-settings.php:337
2008
+ msgid "Restriction content of the current Posts"
2009
+ msgstr ""
2010
+
2011
+ #: includes/admin/core/class-admin-settings.php:346
2012
+ msgid "Restricted Access to Taxonomies"
2013
+ msgstr ""
2014
+
2015
+ #: includes/admin/core/class-admin-settings.php:347
2016
+ msgid "Restriction content of the current Taxonomies"
2017
+ msgstr ""
2018
+
2019
+ #: includes/admin/core/class-admin-settings.php:377
2020
+ msgid "General"
2021
+ msgstr ""
2022
+
2023
+ #: includes/admin/core/class-admin-settings.php:380
2024
+ msgid "Pages"
2025
+ msgstr ""
2026
+
2027
+ #: includes/admin/core/class-admin-settings.php:384
2028
+ #: includes/admin/templates/dashboard/users.php:15
2029
+ msgid "Users"
2030
+ msgstr ""
2031
+
2032
+ #: includes/admin/core/class-admin-settings.php:390
2033
+ msgid "Profile Permalink Base"
2034
+ msgstr ""
2035
+
2036
+ #: includes/admin/core/class-admin-settings.php:391
2037
+ msgid ""
2038
+ "Here you can control the permalink structure of the user profile URL "
2039
+ "globally e.g. "
2040
+ msgstr ""
2041
+
2042
+ #: includes/admin/core/class-admin-settings.php:393
2043
+ #: includes/admin/core/class-admin-settings.php:410
2044
+ #: includes/core/class-builtin.php:674 includes/core/class-builtin.php:677
2045
+ #: includes/core/class-member-directory.php:242
2046
+ msgid "Username"
2047
+ msgstr ""
2048
+
2049
+ #: includes/admin/core/class-admin-settings.php:394
2050
+ msgid "First and Last Name with '.'"
2051
+ msgstr ""
2052
+
2053
+ #: includes/admin/core/class-admin-settings.php:395
2054
+ msgid "First and Last Name with '-'"
2055
+ msgstr ""
2056
+
2057
+ #: includes/admin/core/class-admin-settings.php:396
2058
+ msgid "First and Last Name with '+'"
2059
+ msgstr ""
2060
+
2061
+ #: includes/admin/core/class-admin-settings.php:397
2062
+ msgid "User ID"
2063
+ msgstr ""
2064
+
2065
+ #: includes/admin/core/class-admin-settings.php:399
2066
+ #: includes/admin/core/class-admin-settings.php:418
2067
+ msgid "Select..."
2068
+ msgstr ""
2069
+
2070
+ #: includes/admin/core/class-admin-settings.php:405
2071
+ msgid "User Display Name"
2072
+ msgstr ""
2073
+
2074
+ #: includes/admin/core/class-admin-settings.php:406
2075
+ msgid ""
2076
+ "This is the name that will be displayed for users on the front end of your "
2077
+ "site. Default setting uses first/last name as display name if it exists"
2078
+ msgstr ""
2079
+
2080
+ #: includes/admin/core/class-admin-settings.php:408
2081
+ msgid "Default WP Display Name"
2082
+ msgstr ""
2083
+
2084
+ #: includes/admin/core/class-admin-settings.php:409
2085
+ #: includes/core/class-builtin.php:732 includes/core/class-builtin.php:735
2086
+ msgid "Nickname"
2087
+ msgstr ""
2088
+
2089
+ #: includes/admin/core/class-admin-settings.php:411
2090
+ msgid "First name & last name"
2091
+ msgstr ""
2092
+
2093
+ #: includes/admin/core/class-admin-settings.php:412
2094
+ msgid "Last name & first name"
2095
+ msgstr ""
2096
+
2097
+ #: includes/admin/core/class-admin-settings.php:413
2098
+ msgid "First name & first initial of last name"
2099
+ msgstr ""
2100
+
2101
+ #: includes/admin/core/class-admin-settings.php:414
2102
+ msgid "First initial of first name & last name"
2103
+ msgstr ""
2104
+
2105
+ #: includes/admin/core/class-admin-settings.php:415
2106
+ msgid "First name only"
2107
+ msgstr ""
2108
+
2109
+ #: includes/admin/core/class-admin-settings.php:416
2110
+ msgid "Custom field(s)"
2111
+ msgstr ""
2112
+
2113
+ #: includes/admin/core/class-admin-settings.php:423
2114
+ msgid "Display Name Custom Field(s)"
2115
+ msgstr ""
2116
+
2117
+ #: includes/admin/core/class-admin-settings.php:424
2118
+ msgid ""
2119
+ "Specify the custom field meta key or custom fields seperated by comma that "
2120
+ "you want to use to display users name on the frontend of your site"
2121
+ msgstr ""
2122
+
2123
+ #: includes/admin/core/class-admin-settings.php:430
2124
+ msgid "Automatically redirect author page to their profile?"
2125
+ msgstr ""
2126
+
2127
+ #: includes/admin/core/class-admin-settings.php:431
2128
+ msgid ""
2129
+ "If enabled, author pages will automatically redirect to the user's profile "
2130
+ "page"
2131
+ msgstr ""
2132
+
2133
+ #: includes/admin/core/class-admin-settings.php:436
2134
+ msgid "Enable Members Directory"
2135
+ msgstr ""
2136
+
2137
+ #: includes/admin/core/class-admin-settings.php:437
2138
+ msgid "Control whether to enable or disable member directories on this site"
2139
+ msgstr ""
2140
+
2141
+ #: includes/admin/core/class-admin-settings.php:442
2142
+ msgid "Use Gravatars?"
2143
+ msgstr ""
2144
+
2145
+ #: includes/admin/core/class-admin-settings.php:443
2146
+ msgid ""
2147
+ "Do you want to use gravatars instead of the default plugin profile photo (If "
2148
+ "the user did not upload a custom profile photo / avatar)"
2149
+ msgstr ""
2150
+
2151
+ #: includes/admin/core/class-admin-settings.php:448
2152
+ msgid "Use Gravatar builtin image"
2153
+ msgstr ""
2154
+
2155
+ #: includes/admin/core/class-admin-settings.php:449
2156
+ msgid ""
2157
+ "Gravatar has a number of built in options which you can also use as defaults"
2158
+ msgstr ""
2159
+
2160
+ #: includes/admin/core/class-admin-settings.php:452
2161
+ msgid "404 ( File Not Found response )"
2162
+ msgstr ""
2163
+
2164
+ #: includes/admin/core/class-admin-settings.php:453
2165
+ msgid "Mystery Man"
2166
+ msgstr ""
2167
+
2168
+ #: includes/admin/core/class-admin-settings.php:454
2169
+ msgid "Identicon"
2170
+ msgstr ""
2171
+
2172
+ #: includes/admin/core/class-admin-settings.php:455
2173
+ msgid "Monsterid"
2174
+ msgstr ""
2175
+
2176
+ #: includes/admin/core/class-admin-settings.php:456
2177
+ msgid "Wavatar"
2178
+ msgstr ""
2179
+
2180
+ #: includes/admin/core/class-admin-settings.php:457
2181
+ msgid "Retro"
2182
+ msgstr ""
2183
+
2184
+ #: includes/admin/core/class-admin-settings.php:458
2185
+ msgid "Blank ( a transparent PNG image )"
2186
+ msgstr ""
2187
+
2188
+ #: includes/admin/core/class-admin-settings.php:466
2189
+ msgid "Use Default plugin avatar as Gravatar's Default avatar"
2190
+ msgstr ""
2191
+
2192
+ #: includes/admin/core/class-admin-settings.php:467
2193
+ msgid ""
2194
+ "Do you want to use the plugin default avatar instead of the gravatar default "
2195
+ "photo (If the user did not upload a custom profile photo / avatar)"
2196
+ msgstr ""
2197
+
2198
+ #: includes/admin/core/class-admin-settings.php:473
2199
+ msgid "Require a strong password? (when user resets password only)"
2200
+ msgstr ""
2201
+
2202
+ #: includes/admin/core/class-admin-settings.php:474
2203
+ msgid ""
2204
+ "Enable or disable a strong password rules on password reset and change "
2205
+ "procedure"
2206
+ msgstr ""
2207
+
2208
+ #: includes/admin/core/class-admin-settings.php:479
2209
+ #: includes/class-config.php:136 includes/class-config.php:789
2210
+ #: includes/core/class-account.php:97
2211
+ msgid "Account"
2212
+ msgstr ""
2213
+
2214
+ #: includes/admin/core/class-admin-settings.php:484
2215
+ msgid "Password Account Tab"
2216
+ msgstr ""
2217
+
2218
+ #: includes/admin/core/class-admin-settings.php:490
2219
+ msgid "Privacy Account Tab"
2220
+ msgstr ""
2221
+
2222
+ #: includes/admin/core/class-admin-settings.php:491
2223
+ msgid "Enable/disable the Privacy account tab in account page"
2224
+ msgstr ""
2225
+
2226
+ #: includes/admin/core/class-admin-settings.php:496
2227
+ msgid "Notifications Account Tab"
2228
+ msgstr ""
2229
+
2230
+ #: includes/admin/core/class-admin-settings.php:497
2231
+ msgid "Enable/disable the Notifications account tab in account page"
2232
+ msgstr ""
2233
+
2234
+ #: includes/admin/core/class-admin-settings.php:502
2235
+ msgid "Delete Account Tab"
2236
+ msgstr ""
2237
+
2238
+ #: includes/admin/core/class-admin-settings.php:503
2239
+ msgid "Enable/disable the Delete account tab in account page"
2240
+ msgstr ""
2241
+
2242
+ #: includes/admin/core/class-admin-settings.php:508
2243
+ msgid "Account Deletion Custom Text"
2244
+ msgstr ""
2245
+
2246
+ #: includes/admin/core/class-admin-settings.php:509
2247
+ msgid ""
2248
+ "This is custom text that will be displayed to users before they delete their "
2249
+ "accounts from your site"
2250
+ msgstr ""
2251
+
2252
+ #: includes/admin/core/class-admin-settings.php:517
2253
+ msgid "Add a First & Last Name fields"
2254
+ msgstr ""
2255
+
2256
+ #: includes/admin/core/class-admin-settings.php:518
2257
+ msgid ""
2258
+ "Whether to enable these fields on the user account page by default or hide "
2259
+ "them."
2260
+ msgstr ""
2261
+
2262
+ #: includes/admin/core/class-admin-settings.php:523
2263
+ msgid "Disable First & Last Name fields"
2264
+ msgstr ""
2265
+
2266
+ #: includes/admin/core/class-admin-settings.php:524
2267
+ msgid ""
2268
+ "Whether to allow users changing their first and last name in account page."
2269
+ msgstr ""
2270
+
2271
+ #: includes/admin/core/class-admin-settings.php:530
2272
+ msgid "Require First & Last Name"
2273
+ msgstr ""
2274
+
2275
+ #: includes/admin/core/class-admin-settings.php:531
2276
+ msgid "Require first and last name?"
2277
+ msgstr ""
2278
+
2279
+ #: includes/admin/core/class-admin-settings.php:537
2280
+ msgid "Allow users to change e-mail"
2281
+ msgstr ""
2282
+
2283
+ #: includes/admin/core/class-admin-settings.php:538
2284
+ msgid "Whether to allow users changing their email in account page."
2285
+ msgstr ""
2286
+
2287
+ #: includes/admin/core/class-admin-settings.php:543
2288
+ msgid "Password is required?"
2289
+ msgstr ""
2290
+
2291
+ #: includes/admin/core/class-admin-settings.php:544
2292
+ msgid "Password is required to save account data."
2293
+ msgstr ""
2294
+
2295
+ #: includes/admin/core/class-admin-settings.php:549
2296
+ msgid "Allow users to hide their profiles from directory"
2297
+ msgstr ""
2298
+
2299
+ #: includes/admin/core/class-admin-settings.php:550
2300
+ msgid ""
2301
+ "Whether to allow users changing their profile visibility from member "
2302
+ "directory in account page."
2303
+ msgstr ""
2304
+
2305
+ #: includes/admin/core/class-admin-settings.php:555
2306
+ msgid "Require a strong password?"
2307
+ msgstr ""
2308
+
2309
+ #: includes/admin/core/class-admin-settings.php:556
2310
+ msgid ""
2311
+ "Enable or disable a strong password rules on account page / change password "
2312
+ "tab"
2313
+ msgstr ""
2314
+
2315
+ #: includes/admin/core/class-admin-settings.php:561
2316
+ msgid "Uploads"
2317
+ msgstr ""
2318
+
2319
+ #: includes/admin/core/class-admin-settings.php:567
2320
+ msgid "Profile Photo Maximum File Size (bytes)"
2321
+ msgstr ""
2322
+
2323
+ #: includes/admin/core/class-admin-settings.php:568
2324
+ msgid "Sets a maximum size for the uploaded photo"
2325
+ msgstr ""
2326
+
2327
+ #: includes/admin/core/class-admin-settings.php:575
2328
+ msgid "Cover Photo Maximum File Size (bytes)"
2329
+ msgstr ""
2330
+
2331
+ #: includes/admin/core/class-admin-settings.php:576
2332
+ msgid "Sets a maximum size for the uploaded cover"
2333
+ msgstr ""
2334
+
2335
+ #: includes/admin/core/class-admin-settings.php:582
2336
+ msgid "Profile Photo Thumbnail Sizes (px)"
2337
+ msgstr ""
2338
+
2339
+ #: includes/admin/core/class-admin-settings.php:583
2340
+ msgid ""
2341
+ "Here you can define which thumbnail sizes will be created for each profile "
2342
+ "photo upload."
2343
+ msgstr ""
2344
+
2345
+ #: includes/admin/core/class-admin-settings.php:585
2346
+ #: includes/admin/core/class-admin-settings.php:595
2347
+ msgid "Add New Size"
2348
+ msgstr ""
2349
+
2350
+ #: includes/admin/core/class-admin-settings.php:592
2351
+ msgid "Cover Photo Thumbnail Sizes (px)"
2352
+ msgstr ""
2353
+
2354
+ #: includes/admin/core/class-admin-settings.php:593
2355
+ msgid ""
2356
+ "Here you can define which thumbnail sizes will be created for each cover "
2357
+ "photo upload."
2358
+ msgstr ""
2359
+
2360
+ #: includes/admin/core/class-admin-settings.php:603
2361
+ msgid "Image Quality"
2362
+ msgstr ""
2363
+
2364
+ #: includes/admin/core/class-admin-settings.php:604
2365
+ msgid ""
2366
+ "Quality is used to determine quality of image uploads, and ranges from 0 "
2367
+ "(worst quality, smaller file) to 100 (best quality, biggest file). The "
2368
+ "default range is 60."
2369
+ msgstr ""
2370
+
2371
+ #: includes/admin/core/class-admin-settings.php:611
2372
+ msgid "Image Upload Maximum Width (px)"
2373
+ msgstr ""
2374
+
2375
+ #: includes/admin/core/class-admin-settings.php:612
2376
+ msgid ""
2377
+ "Any image upload above this width will be resized to this limit "
2378
+ "automatically."
2379
+ msgstr ""
2380
+
2381
+ #: includes/admin/core/class-admin-settings.php:619
2382
+ msgid "Cover Photo Minimum Width (px)"
2383
+ msgstr ""
2384
+
2385
+ #: includes/admin/core/class-admin-settings.php:620
2386
+ msgid "This will be the minimum width for cover photo uploads"
2387
+ msgstr ""
2388
+
2389
+ #: includes/admin/core/class-admin-settings.php:627
2390
+ msgid "Access"
2391
+ msgstr ""
2392
+
2393
+ #: includes/admin/core/class-admin-settings.php:630
2394
+ msgid "Restriction Content"
2395
+ msgstr ""
2396
+
2397
+ #: includes/admin/core/class-admin-settings.php:634
2398
+ msgid "Other"
2399
+ msgstr ""
2400
+
2401
+ #: includes/admin/core/class-admin-settings.php:639
2402
+ msgid "Enable the Reset Password Limit?"
2403
+ msgstr ""
2404
+
2405
+ #: includes/admin/core/class-admin-settings.php:644
2406
+ msgid "Reset Password Limit"
2407
+ msgstr ""
2408
+
2409
+ #: includes/admin/core/class-admin-settings.php:645
2410
+ msgid ""
2411
+ "Set the maximum reset password limit. If reached the maximum limit, user "
2412
+ "will be locked from using this."
2413
+ msgstr ""
2414
+
2415
+ #: includes/admin/core/class-admin-settings.php:653
2416
+ msgid "Blocked Email Addresses"
2417
+ msgstr ""
2418
+
2419
+ #: includes/admin/core/class-admin-settings.php:654
2420
+ msgid ""
2421
+ "This will block the specified e-mail addresses from being able to sign up or "
2422
+ "sign in to your site. To block an entire domain, use something like *@domain."
2423
+ "com"
2424
+ msgstr ""
2425
+
2426
+ #: includes/admin/core/class-admin-settings.php:659
2427
+ msgid "Blacklist Words"
2428
+ msgstr ""
2429
+
2430
+ #: includes/admin/core/class-admin-settings.php:660
2431
+ msgid ""
2432
+ "This option lets you specify blacklist of words to prevent anyone from "
2433
+ "signing up with such a word as their username"
2434
+ msgstr ""
2435
+
2436
+ #: includes/admin/core/class-admin-settings.php:667
2437
+ #: includes/admin/core/list-tables/emails-list-table.php:300
2438
+ msgid "Email"
2439
+ msgstr ""
2440
+
2441
+ #: includes/admin/core/class-admin-settings.php:672
2442
+ msgid "Admin E-mail Address"
2443
+ msgstr ""
2444
+
2445
+ #: includes/admin/core/class-admin-settings.php:673
2446
+ #: includes/admin/core/class-admin-settings.php:685
2447
+ msgid "e.g. admin@companyname.com"
2448
+ msgstr ""
2449
+
2450
+ #: includes/admin/core/class-admin-settings.php:678
2451
+ msgid "Mail appears from"
2452
+ msgstr ""
2453
+
2454
+ #: includes/admin/core/class-admin-settings.php:679
2455
+ msgid "e.g. Site Name"
2456
+ msgstr ""
2457
+
2458
+ #: includes/admin/core/class-admin-settings.php:684
2459
+ msgid "Mail appears from address"
2460
+ msgstr ""
2461
+
2462
+ #: includes/admin/core/class-admin-settings.php:690
2463
+ msgid "Use HTML for E-mails?"
2464
+ msgstr ""
2465
+
2466
+ #: includes/admin/core/class-admin-settings.php:691
2467
+ msgid ""
2468
+ "If you plan use e-mails with HTML, please make sure that this option is "
2469
+ "enabled. Otherwise, HTML will be displayed as plain text."
2470
+ msgstr ""
2471
+
2472
+ #: includes/admin/core/class-admin-settings.php:696
2473
+ msgid "Appearance"
2474
+ msgstr ""
2475
+
2476
+ #: includes/admin/core/class-admin-settings.php:699
2477
+ msgid "Profile"
2478
+ msgstr ""
2479
+
2480
+ #: includes/admin/core/class-admin-settings.php:704
2481
+ msgid "Profile Default Template"
2482
+ msgstr ""
2483
+
2484
+ #: includes/admin/core/class-admin-settings.php:705
2485
+ msgid "This will be the default template to output profile"
2486
+ msgstr ""
2487
+
2488
+ #: includes/admin/core/class-admin-settings.php:713
2489
+ msgid "Profile Maximum Width"
2490
+ msgstr ""
2491
+
2492
+ #: includes/admin/core/class-admin-settings.php:715
2493
+ #: includes/admin/core/class-admin-settings.php:924
2494
+ #: includes/admin/core/class-admin-settings.php:1014
2495
+ msgid "The maximum width this shortcode can take from the page width"
2496
+ msgstr ""
2497
+
2498
+ #: includes/admin/core/class-admin-settings.php:722
2499
+ msgid "Profile Area Maximum Width"
2500
+ msgstr ""
2501
+
2502
+ #: includes/admin/core/class-admin-settings.php:724
2503
+ #: includes/admin/templates/form/profile_customize.php:59
2504
+ msgid ""
2505
+ "The maximum width of the profile area inside profile (below profile header)"
2506
+ msgstr ""
2507
+
2508
+ #: includes/admin/core/class-admin-settings.php:730
2509
+ msgid "Profile Field Icons"
2510
+ msgstr ""
2511
+
2512
+ #: includes/admin/core/class-admin-settings.php:731
2513
+ msgid "This is applicable for edit mode only"
2514
+ msgstr ""
2515
+
2516
+ #: includes/admin/core/class-admin-settings.php:734
2517
+ #: includes/admin/core/class-admin-settings.php:947
2518
+ #: includes/admin/core/class-admin-settings.php:1037
2519
+ #: includes/admin/templates/form/login_customize.php:43
2520
+ #: includes/admin/templates/form/profile_customize.php:70
2521
+ #: includes/admin/templates/form/register_customize.php:58
2522
+ msgid "Show inside text field"
2523
+ msgstr ""
2524
+
2525
+ #: includes/admin/core/class-admin-settings.php:735
2526
+ #: includes/admin/core/class-admin-settings.php:948
2527
+ #: includes/admin/core/class-admin-settings.php:1038
2528
+ #: includes/admin/templates/form/login_customize.php:44
2529
+ #: includes/admin/templates/form/profile_customize.php:71
2530
+ #: includes/admin/templates/form/register_customize.php:59
2531
+ msgid "Show with label"
2532
+ msgstr ""
2533
+
2534
+ #: includes/admin/core/class-admin-settings.php:736
2535
+ #: includes/admin/core/class-admin-settings.php:949
2536
+ #: includes/admin/core/class-admin-settings.php:1039
2537
+ #: includes/admin/templates/form/login_customize.php:45
2538
+ #: includes/admin/templates/form/profile_customize.php:72
2539
+ #: includes/admin/templates/form/register_customize.php:60
2540
+ msgid "Turn off"
2541
+ msgstr ""
2542
+
2543
+ #: includes/admin/core/class-admin-settings.php:743
2544
+ msgid "Profile Primary Button Text"
2545
+ msgstr ""
2546
+
2547
+ #: includes/admin/core/class-admin-settings.php:745
2548
+ msgid "The text that is used for updating profile button"
2549
+ msgstr ""
2550
+
2551
+ #: includes/admin/core/class-admin-settings.php:751
2552
+ msgid "Profile Secondary Button"
2553
+ msgstr ""
2554
+
2555
+ #: includes/admin/core/class-admin-settings.php:753
2556
+ #: includes/admin/core/class-admin-settings.php:966
2557
+ #: includes/admin/core/class-admin-settings.php:1056
2558
+ msgid "Switch on/off the secondary button display in the form"
2559
+ msgstr ""
2560
+
2561
+ #: includes/admin/core/class-admin-settings.php:758
2562
+ msgid "Profile Secondary Button Text"
2563
+ msgstr ""
2564
+
2565
+ #: includes/admin/core/class-admin-settings.php:760
2566
+ msgid "The text that is used for cancelling update profile button"
2567
+ msgstr ""
2568
+
2569
+ #: includes/admin/core/class-admin-settings.php:767
2570
+ msgid "Default Profile Photo"
2571
+ msgstr ""
2572
+
2573
+ #: includes/admin/core/class-admin-settings.php:768
2574
+ msgid ""
2575
+ "You can change the default profile picture globally here. Please make sure "
2576
+ "that the photo is 300x300px."
2577
+ msgstr ""
2578
+
2579
+ #: includes/admin/core/class-admin-settings.php:769
2580
+ msgid "Select Default Profile Photo"
2581
+ msgstr ""
2582
+
2583
+ #: includes/admin/core/class-admin-settings.php:779
2584
+ msgid "Default Cover Photo"
2585
+ msgstr ""
2586
+
2587
+ #: includes/admin/core/class-admin-settings.php:780
2588
+ msgid ""
2589
+ "You can change the default cover photo globally here. Please make sure that "
2590
+ "the default cover is large enough and respects the ratio you are using for "
2591
+ "cover photos."
2592
+ msgstr ""
2593
+
2594
+ #: includes/admin/core/class-admin-settings.php:781
2595
+ msgid "Select Default Cover Photo"
2596
+ msgstr ""
2597
+
2598
+ #: includes/admin/core/class-admin-settings.php:786
2599
+ #: includes/admin/templates/form/profile_customize.php:140
2600
+ msgid "Disable Profile Photo Upload"
2601
+ msgstr ""
2602
+
2603
+ #: includes/admin/core/class-admin-settings.php:787
2604
+ #: includes/admin/templates/form/profile_customize.php:141
2605
+ msgid "Switch on/off the profile photo uploader"
2606
+ msgstr ""
2607
+
2608
+ #: includes/admin/core/class-admin-settings.php:793
2609
+ #: includes/admin/templates/form/profile_customize.php:152
2610
+ msgid "Profile Photo Size"
2611
+ msgstr ""
2612
+
2613
+ #: includes/admin/core/class-admin-settings.php:796
2614
+ msgid ""
2615
+ "The global default of profile photo size. This can be overridden by "
2616
+ "individual form settings"
2617
+ msgstr ""
2618
+
2619
+ #: includes/admin/core/class-admin-settings.php:802
2620
+ msgid "Profile Cover Photos"
2621
+ msgstr ""
2622
+
2623
+ #: includes/admin/core/class-admin-settings.php:804
2624
+ msgid "Switch on/off the profile cover photos"
2625
+ msgstr ""
2626
+
2627
+ #: includes/admin/core/class-admin-settings.php:809
2628
+ msgid "Profile Cover Size"
2629
+ msgstr ""
2630
+
2631
+ #: includes/admin/core/class-admin-settings.php:812
2632
+ msgid ""
2633
+ "The global default width of cover photo size. This can be overridden by "
2634
+ "individual form settings"
2635
+ msgstr ""
2636
+
2637
+ #: includes/admin/core/class-admin-settings.php:819
2638
+ msgid "Profile Cover Ratio"
2639
+ msgstr ""
2640
+
2641
+ #: includes/admin/core/class-admin-settings.php:820
2642
+ msgid "Choose global ratio for cover photos of profiles"
2643
+ msgstr ""
2644
+
2645
+ #: includes/admin/core/class-admin-settings.php:834
2646
+ msgid "Profile Header Meta Text Icon"
2647
+ msgstr ""
2648
+
2649
+ #: includes/admin/core/class-admin-settings.php:836
2650
+ msgid "Display field icons for related user meta fields in header or not"
2651
+ msgstr ""
2652
+
2653
+ #: includes/admin/core/class-admin-settings.php:841
2654
+ msgid "Show display name in profile header"
2655
+ msgstr ""
2656
+
2657
+ #: includes/admin/core/class-admin-settings.php:843
2658
+ msgid "Switch on/off the user name on profile header"
2659
+ msgstr ""
2660
+
2661
+ #: includes/admin/core/class-admin-settings.php:848
2662
+ msgid "Show social links in profile header"
2663
+ msgstr ""
2664
+
2665
+ #: includes/admin/core/class-admin-settings.php:850
2666
+ msgid "Switch on/off the social links on profile header"
2667
+ msgstr ""
2668
+
2669
+ #: includes/admin/core/class-admin-settings.php:855
2670
+ msgid "Show user description in header"
2671
+ msgstr ""
2672
+
2673
+ #: includes/admin/core/class-admin-settings.php:857
2674
+ msgid "Switch on/off the user description on profile header"
2675
+ msgstr ""
2676
+
2677
+ #: includes/admin/core/class-admin-settings.php:862
2678
+ msgid "Enable HTML support for user description"
2679
+ msgstr ""
2680
+
2681
+ #: includes/admin/core/class-admin-settings.php:863
2682
+ msgid ""
2683
+ "Switch on/off to enable/disable support for html tags on user description."
2684
+ msgstr ""
2685
+
2686
+ #: includes/admin/core/class-admin-settings.php:868
2687
+ msgid "User description maximum chars"
2688
+ msgstr ""
2689
+
2690
+ #: includes/admin/core/class-admin-settings.php:870
2691
+ msgid ""
2692
+ "Maximum number of characters to allow in user description field in header."
2693
+ msgstr ""
2694
+
2695
+ #: includes/admin/core/class-admin-settings.php:877
2696
+ msgid "Profile Header Menu Position"
2697
+ msgstr ""
2698
+
2699
+ #: includes/admin/core/class-admin-settings.php:879
2700
+ msgid ""
2701
+ "For incompatible themes, please make the menu open from left instead of "
2702
+ "bottom by default."
2703
+ msgstr ""
2704
+
2705
+ #: includes/admin/core/class-admin-settings.php:881
2706
+ msgid "Bottom of Icon"
2707
+ msgstr ""
2708
+
2709
+ #: includes/admin/core/class-admin-settings.php:882
2710
+ msgid "Left of Icon (right for RTL)"
2711
+ msgstr ""
2712
+
2713
+ #: includes/admin/core/class-admin-settings.php:889
2714
+ msgid "Show a custom message if profile is empty"
2715
+ msgstr ""
2716
+
2717
+ #: includes/admin/core/class-admin-settings.php:891
2718
+ msgid "Switch on/off the custom message that appears when the profile is empty"
2719
+ msgstr ""
2720
+
2721
+ #: includes/admin/core/class-admin-settings.php:896
2722
+ msgid "Show the emoticon"
2723
+ msgstr ""
2724
+
2725
+ #: includes/admin/core/class-admin-settings.php:898
2726
+ msgid "Switch on/off the emoticon (sad face) that appears above the message"
2727
+ msgstr ""
2728
+
2729
+ #: includes/admin/core/class-admin-settings.php:904
2730
+ msgid "Profile Menu"
2731
+ msgstr ""
2732
+
2733
+ #: includes/admin/core/class-admin-settings.php:908
2734
+ #: includes/admin/templates/form/mode.php:12
2735
+ msgid "Registration Form"
2736
+ msgstr ""
2737
+
2738
+ #: includes/admin/core/class-admin-settings.php:913
2739
+ msgid "Registration Default Template"
2740
+ msgstr ""
2741
+
2742
+ #: includes/admin/core/class-admin-settings.php:914
2743
+ msgid "This will be the default template to output registration"
2744
+ msgstr ""
2745
+
2746
+ #: includes/admin/core/class-admin-settings.php:922
2747
+ msgid "Registration Maximum Width"
2748
+ msgstr ""
2749
+
2750
+ #: includes/admin/core/class-admin-settings.php:930
2751
+ msgid "Registration Shortcode Alignment"
2752
+ msgstr ""
2753
+
2754
+ #: includes/admin/core/class-admin-settings.php:931
2755
+ #: includes/admin/core/class-admin-settings.php:1021
2756
+ #: includes/admin/templates/form/profile_customize.php:127
2757
+ msgid "The shortcode is centered by default unless you specify otherwise here"
2758
+ msgstr ""
2759
+
2760
+ #: includes/admin/core/class-admin-settings.php:934
2761
+ #: includes/admin/core/class-admin-settings.php:1024
2762
+ msgid "Centered"
2763
+ msgstr ""
2764
+
2765
+ #: includes/admin/core/class-admin-settings.php:935
2766
+ #: includes/admin/core/class-admin-settings.php:1025
2767
+ msgid "Left aligned"
2768
+ msgstr ""
2769
+
2770
+ #: includes/admin/core/class-admin-settings.php:936
2771
+ #: includes/admin/core/class-admin-settings.php:1026
2772
+ msgid "Right aligned"
2773
+ msgstr ""
2774
+
2775
+ #: includes/admin/core/class-admin-settings.php:943
2776
+ msgid "Registration Field Icons"
2777
+ msgstr ""
2778
+
2779
+ #: includes/admin/core/class-admin-settings.php:944
2780
+ msgid "This controls the display of field icons in the registration form"
2781
+ msgstr ""
2782
+
2783
+ #: includes/admin/core/class-admin-settings.php:956
2784
+ msgid "Registration Primary Button Text"
2785
+ msgstr ""
2786
+
2787
+ #: includes/admin/core/class-admin-settings.php:958
2788
+ #: includes/admin/core/class-admin-settings.php:1048
2789
+ msgid "The text that is used for primary button text"
2790
+ msgstr ""
2791
+
2792
+ #: includes/admin/core/class-admin-settings.php:964
2793
+ msgid "Registration Secondary Button"
2794
+ msgstr ""
2795
+
2796
+ #: includes/admin/core/class-admin-settings.php:971
2797
+ msgid "Registration Secondary Button Text"
2798
+ msgstr ""
2799
+
2800
+ #: includes/admin/core/class-admin-settings.php:973
2801
+ #: includes/admin/core/class-admin-settings.php:1063
2802
+ msgid "The text that is used for the secondary button text"
2803
+ msgstr ""
2804
+
2805
+ #: includes/admin/core/class-admin-settings.php:980
2806
+ msgid "Registration Secondary Button URL"
2807
+ msgstr ""
2808
+
2809
+ #: includes/admin/core/class-admin-settings.php:982
2810
+ #: includes/admin/core/class-admin-settings.php:1072
2811
+ msgid "You can replace default link for this button by entering custom URL"
2812
+ msgstr ""
2813
+
2814
+ #: includes/admin/core/class-admin-settings.php:989
2815
+ msgid "Registration Default Role"
2816
+ msgstr ""
2817
+
2818
+ #: includes/admin/core/class-admin-settings.php:990
2819
+ msgid ""
2820
+ "This will be the default role assigned to users registering thru "
2821
+ "registration form"
2822
+ msgstr ""
2823
+
2824
+ #: includes/admin/core/class-admin-settings.php:998
2825
+ #: includes/admin/templates/form/mode.php:16
2826
+ msgid "Login Form"
2827
+ msgstr ""
2828
+
2829
+ #: includes/admin/core/class-admin-settings.php:1003
2830
+ msgid "Login Default Template"
2831
+ msgstr ""
2832
+
2833
+ #: includes/admin/core/class-admin-settings.php:1004
2834
+ msgid "This will be the default template to output login"
2835
+ msgstr ""
2836
+
2837
+ #: includes/admin/core/class-admin-settings.php:1012
2838
+ msgid "Login Maximum Width"
2839
+ msgstr ""
2840
+
2841
+ #: includes/admin/core/class-admin-settings.php:1020
2842
+ msgid "Login Shortcode Alignment"
2843
+ msgstr ""
2844
+
2845
+ #: includes/admin/core/class-admin-settings.php:1033
2846
+ msgid "Login Field Icons"
2847
+ msgstr ""
2848
+
2849
+ #: includes/admin/core/class-admin-settings.php:1034
2850
+ msgid "This controls the display of field icons in the login form"
2851
+ msgstr ""
2852
+
2853
+ #: includes/admin/core/class-admin-settings.php:1046
2854
+ msgid "Login Primary Button Text"
2855
+ msgstr ""
2856
+
2857
+ #: includes/admin/core/class-admin-settings.php:1054
2858
+ msgid "Login Secondary Button"
2859
+ msgstr ""
2860
+
2861
+ #: includes/admin/core/class-admin-settings.php:1061
2862
+ msgid "Login Secondary Button Text"
2863
+ msgstr ""
2864
+
2865
+ #: includes/admin/core/class-admin-settings.php:1070
2866
+ msgid "Login Secondary Button URL"
2867
+ msgstr ""
2868
+
2869
+ #: includes/admin/core/class-admin-settings.php:1079
2870
+ msgid "Login Forgot Password Link"
2871
+ msgstr ""
2872
+
2873
+ #: includes/admin/core/class-admin-settings.php:1081
2874
+ msgid "Switch on/off the forgot password link in login form"
2875
+ msgstr ""
2876
+
2877
+ #: includes/admin/core/class-admin-settings.php:1086
2878
+ msgid "Show \"Remember Me\""
2879
+ msgstr ""
2880
+
2881
+ #: includes/admin/core/class-admin-settings.php:1088
2882
+ msgid ""
2883
+ "Allow users to choose If they want to stay signed in even after closing the "
2884
+ "browser. If you do not show this option, the default will be to not remember "
2885
+ "login session."
2886
+ msgstr ""
2887
+
2888
+ #: includes/admin/core/class-admin-settings.php:1098
2889
+ msgid "Licenses"
2890
+ msgstr ""
2891
+
2892
+ #: includes/admin/core/class-admin-settings.php:1101
2893
+ msgid "Misc"
2894
+ msgstr ""
2895
+
2896
+ #: includes/admin/core/class-admin-settings.php:1106
2897
+ msgid "Show an asterisk for required fields"
2898
+ msgstr ""
2899
+
2900
+ #: includes/admin/core/class-admin-settings.php:1111
2901
+ msgid "User Profile Title"
2902
+ msgstr ""
2903
+
2904
+ #: includes/admin/core/class-admin-settings.php:1112
2905
+ msgid "This is the title that is displayed on a specific user profile"
2906
+ msgstr ""
2907
+
2908
+ #: includes/admin/core/class-admin-settings.php:1118
2909
+ msgid "User Profile Dynamic Meta Description"
2910
+ msgstr ""
2911
+
2912
+ #: includes/admin/core/class-admin-settings.php:1119
2913
+ msgid ""
2914
+ "This will be used in the meta description that is available for search-"
2915
+ "engines."
2916
+ msgstr ""
2917
+
2918
+ #: includes/admin/core/class-admin-settings.php:1127
2919
+ msgid "Disable Cache User Profile"
2920
+ msgstr ""
2921
+
2922
+ #: includes/admin/core/class-admin-settings.php:1128
2923
+ msgid ""
2924
+ "Check this box if you would like to disable Ultimate Member user's cache."
2925
+ msgstr ""
2926
+
2927
+ #: includes/admin/core/class-admin-settings.php:1133
2928
+ msgid "Enable Gutenberg Blocks"
2929
+ msgstr ""
2930
+
2931
+ #: includes/admin/core/class-admin-settings.php:1134
2932
+ msgid ""
2933
+ "Check this box if you would like to use Ultimate Member blocks in Gutenberg "
2934
+ "editor. Important some themes have the conflicts with Gutenberg editor."
2935
+ msgstr ""
2936
+
2937
+ #: includes/admin/core/class-admin-settings.php:1139
2938
+ msgid "REST API version"
2939
+ msgstr ""
2940
+
2941
+ #: includes/admin/core/class-admin-settings.php:1140
2942
+ msgid ""
2943
+ "This controls the REST API version, we recommend to use the last version"
2944
+ msgstr ""
2945
+
2946
+ #: includes/admin/core/class-admin-settings.php:1142
2947
+ msgid "1.0 version"
2948
+ msgstr ""
2949
+
2950
+ #: includes/admin/core/class-admin-settings.php:1143
2951
+ msgid "2.0 version"
2952
+ msgstr ""
2953
+
2954
+ #: includes/admin/core/class-admin-settings.php:1149
2955
+ msgid "Remove Data on Uninstall?"
2956
+ msgstr ""
2957
+
2958
+ #: includes/admin/core/class-admin-settings.php:1150
2959
+ msgid ""
2960
+ "Check this box if you would like Ultimate Member to completely remove all of "
2961
+ "its data when the plugin/extensions are deleted."
2962
+ msgstr ""
2963
+
2964
+ #: includes/admin/core/class-admin-settings.php:1155
2965
+ msgid "Install Info"
2966
+ msgstr ""
2967
+
2968
+ #: includes/admin/core/class-admin-settings.php:1272
2969
+ msgid "Ultimate Member - Settings"
2970
+ msgstr ""
2971
+
2972
+ #: includes/admin/core/class-admin-settings.php:1402
2973
+ msgid "Save Changes"
2974
+ msgstr ""
2975
+
2976
+ #: includes/admin/core/class-admin-settings.php:1860
2977
+ msgid "Subject Line"
2978
+ msgstr ""
2979
+
2980
+ #: includes/admin/core/class-admin-settings.php:1862
2981
+ msgid "This is the subject line of the e-mail"
2982
+ msgstr ""
2983
+
2984
+ #: includes/admin/core/class-admin-settings.php:1867
2985
+ msgid "Message Body"
2986
+ msgstr ""
2987
+
2988
+ #: includes/admin/core/class-admin-settings.php:1869
2989
+ msgid "This is the content of the e-mail"
2990
+ msgstr ""
2991
+
2992
+ #: includes/admin/core/class-admin-settings.php:1919
2993
+ #: includes/admin/core/class-admin-settings.php:2029
2994
+ #, php-format
2995
+ msgid ""
2996
+ "Your license key expired on %s. Please <a href=\"%s\" target=\"_blank"
2997
+ "\">renew your license key</a>."
2998
+ msgstr ""
2999
+
3000
+ #: includes/admin/core/class-admin-settings.php:1932
3001
+ #: includes/admin/core/class-admin-settings.php:2042
3002
+ #, php-format
3003
+ msgid ""
3004
+ "Your license key has been disabled. Please <a href=\"%s\" target=\"_blank"
3005
+ "\">contact support</a> for more information."
3006
+ msgstr ""
3007
+
3008
+ #: includes/admin/core/class-admin-settings.php:1944
3009
+ #: includes/admin/core/class-admin-settings.php:2054
3010
+ #, php-format
3011
+ msgid ""
3012
+ "Invalid license. Please <a href=\"%s\" target=\"_blank\">visit your account "
3013
+ "page</a> and verify it."
3014
+ msgstr ""
3015
+
3016
+ #: includes/admin/core/class-admin-settings.php:1957
3017
+ #: includes/admin/core/class-admin-settings.php:2067
3018
+ #, php-format
3019
+ msgid ""
3020
+ "Your %s is not active for this URL. Please <a href=\"%s\" target=\"_blank"
3021
+ "\">visit your account page</a> to manage your license key URLs."
3022
+ msgstr ""
3023
+
3024
+ #: includes/admin/core/class-admin-settings.php:1969
3025
+ #: includes/admin/core/class-admin-settings.php:2079
3026
+ #, php-format
3027
+ msgid "This appears to be an invalid license key for %s."
3028
+ msgstr ""
3029
+
3030
+ #: includes/admin/core/class-admin-settings.php:1978
3031
+ #: includes/admin/core/class-admin-settings.php:2088
3032
+ #, php-format
3033
+ msgid ""
3034
+ "Your license key has reached its activation limit. <a href=\"%s\">View "
3035
+ "possible upgrades</a> now."
3036
+ msgstr ""
3037
+
3038
+ #: includes/admin/core/class-admin-settings.php:1987
3039
+ #: includes/admin/core/class-admin-settings.php:2097
3040
+ msgid ""
3041
+ "The key you entered belongs to a bundle, please use the product specific "
3042
+ "license key."
3043
+ msgstr ""
3044
+
3045
+ #: includes/admin/core/class-admin-settings.php:1995
3046
+ #: includes/admin/core/class-admin-settings.php:2003
3047
+ #: includes/admin/core/class-admin-settings.php:2015
3048
+ msgid "unknown_error"
3049
+ msgstr ""
3050
+
3051
+ #: includes/admin/core/class-admin-settings.php:1996
3052
+ #: includes/admin/core/class-admin-settings.php:2004
3053
+ #, php-format
3054
+ msgid ""
3055
+ "There was an error with this license key: %s. Please <a href=\"%s\">contact "
3056
+ "our support team</a>."
3057
+ msgstr ""
3058
+
3059
+ #: includes/admin/core/class-admin-settings.php:2017
3060
+ #, php-format
3061
+ msgid ""
3062
+ "There was an error with this license key: %s%s. Please <a href=\"%s"
3063
+ "\">contact our support team</a>."
3064
+ msgstr ""
3065
+
3066
+ #: includes/admin/core/class-admin-settings.php:2112
3067
+ msgid "License key never expires."
3068
+ msgstr ""
3069
+
3070
+ #: includes/admin/core/class-admin-settings.php:2119
3071
+ #, php-format
3072
+ msgid ""
3073
+ "Your license key expires soon! It expires on %s. <a href=\"%s\" target="
3074
+ "\"_blank\">Renew your license key</a>."
3075
+ msgstr ""
3076
+
3077
+ #: includes/admin/core/class-admin-settings.php:2129
3078
+ #, php-format
3079
+ msgid "Your license key expires on %s."
3080
+ msgstr ""
3081
+
3082
+ #: includes/admin/core/class-admin-settings.php:2147
3083
+ #, php-format
3084
+ msgid "To receive updates, please enter your valid %s license key."
3085
+ msgstr ""
3086
+
3087
+ #: includes/admin/core/class-admin-settings.php:2169
3088
+ msgid "Clear License"
3089
+ msgstr ""
3090
+
3091
+ #: includes/admin/core/class-admin-settings.php:2171
3092
+ msgid "Activate"
3093
+ msgstr ""
3094
+
3095
+ #: includes/admin/core/class-admin-settings.php:2173
3096
+ msgid "Re-Activate"
3097
+ msgstr ""
3098
+
3099
+ #: includes/admin/core/class-admin-settings.php:2225
3100
+ msgid ""
3101
+ "To copy the Install info, click below then press Ctrl + C (PC) or Cmd + C "
3102
+ "(Mac)."
3103
+ msgstr ""
3104
+
3105
+ #: includes/admin/core/class-admin-upgrade.php:131
3106
+ #, php-format
3107
+ msgid ""
3108
+ "%s is a major update, and we highly recommend creating a full backup of your "
3109
+ "site before updating."
3110
+ msgstr ""
3111
+
3112
+ #: includes/admin/core/class-admin-upgrade.php:237
3113
+ msgid "Upgrade"
3114
+ msgstr ""
3115
+
3116
+ #: includes/admin/core/class-admin-upgrade.php:245
3117
+ msgid "empty"
3118
+ msgstr ""
3119
+
3120
+ #: includes/admin/core/class-admin-upgrade.php:248
3121
+ #, php-format
3122
+ msgid "%s - Upgrade Process"
3123
+ msgstr ""
3124
+
3125
+ #: includes/admin/core/class-admin-upgrade.php:249
3126
+ #, php-format
3127
+ msgid ""
3128
+ "You have installed %s version. Your latest DB version is %s. Before the "
3129
+ "click to \"Run\" button make sure that did the following:"
3130
+ msgstr ""
3131
+
3132
+ #: includes/admin/core/class-admin-upgrade.php:251
3133
+ msgid "Create full site's backup."
3134
+ msgstr ""
3135
+
3136
+ #: includes/admin/core/class-admin-upgrade.php:252
3137
+ msgid "Set maintenance mode (if you need)"
3138
+ msgstr ""
3139
+
3140
+ #: includes/admin/core/class-admin-upgrade.php:253
3141
+ msgid "You have nice Internet connection"
3142
+ msgstr ""
3143
+
3144
+ #: includes/admin/core/class-admin-upgrade.php:255
3145
+ msgid ""
3146
+ "After the click to \"Run\" button, the update process will be started. All "
3147
+ "information will be displayed in \"Upgrade Log\" field."
3148
+ msgstr ""
3149
+
3150
+ #: includes/admin/core/class-admin-upgrade.php:256
3151
+ msgid ""
3152
+ "If the update was successful, you will see a corresponding message. "
3153
+ "Otherwise, contact technical support if the update failed."
3154
+ msgstr ""
3155
+
3156
+ #: includes/admin/core/class-admin-upgrade.php:257
3157
+ msgid "Upgrade Log"
3158
+ msgstr ""
3159
+
3160
+ #: includes/admin/core/class-admin-upgrade.php:260
3161
+ msgid "Run"
3162
+ msgstr ""
3163
+
3164
+ #: includes/admin/core/class-admin-users.php:117
3165
+ #: includes/admin/core/class-admin-users.php:120
3166
+ msgid "UM Action"
3167
+ msgstr ""
3168
+
3169
+ #: includes/admin/core/class-admin-users.php:124
3170
+ #: includes/core/class-fields.php:2534
3171
+ msgid "Apply"
3172
+ msgstr ""
3173
+
3174
+ #: includes/admin/core/class-admin-users.php:166
3175
+ #: includes/core/um-filters-user.php:21 includes/core/um-filters-user.php:26
3176
+ msgid "Approve Membership"
3177
+ msgstr ""
3178
+
3179
+ #: includes/admin/core/class-admin-users.php:169
3180
+ #: includes/core/um-filters-user.php:22
3181
+ msgid "Reject Membership"
3182
+ msgstr ""
3183
+
3184
+ #: includes/admin/core/class-admin-users.php:172
3185
+ #: includes/core/um-filters-user.php:30
3186
+ msgid "Put as Pending Review"
3187
+ msgstr ""
3188
+
3189
+ #: includes/admin/core/class-admin-users.php:175
3190
+ #: includes/core/um-filters-user.php:34
3191
+ msgid "Resend Activation E-mail"
3192
+ msgstr ""
3193
+
3194
+ #: includes/admin/core/class-admin-users.php:178
3195
+ msgid "Deactivate"
3196
+ msgstr ""
3197
+
3198
+ #: includes/admin/core/class-admin-users.php:181
3199
+ msgid "Reactivate"
3200
+ msgstr ""
3201
+
3202
+ #: includes/admin/core/class-admin-users.php:204 templates/account.php:43
3203
+ #: templates/account.php:84
3204
+ msgid "View profile"
3205
+ msgstr ""
3206
+
3207
+ #: includes/admin/core/class-admin-users.php:209
3208
+ msgid "Info"
3209
+ msgstr ""
3210
+
3211
+ #: includes/admin/core/class-admin-users.php:314
3212
+ #: includes/admin/templates/dashboard/users.php:28
3213
+ #: includes/core/class-user.php:831
3214
+ msgid "Approved"
3215
+ msgstr ""
3216
+
3217
+ #: includes/admin/core/class-admin-users.php:315
3218
+ msgid "Pending review"
3219
+ msgstr ""
3220
+
3221
+ #: includes/admin/core/class-admin-users.php:316
3222
+ msgid "Waiting e-mail confirmation"
3223
+ msgstr ""
3224
+
3225
+ #: includes/admin/core/class-admin-users.php:317
3226
+ #: includes/admin/templates/dashboard/users.php:86
3227
+ msgid "Inactive"
3228
+ msgstr ""
3229
+
3230
+ #: includes/admin/core/class-admin-users.php:318
3231
+ #: includes/admin/templates/dashboard/users.php:41
3232
+ msgid "Rejected"
3233
+ msgstr ""
3234
+
3235
+ #: includes/admin/core/class-admin-users.php:381
3236
+ msgid "You do not have enough permissions to do that."
3237
+ msgstr ""
3238
+
3239
+ #: includes/admin/core/list-tables/emails-list-table.php:70
3240
+ #: includes/admin/core/list-tables/roles-list-table.php:176
3241
+ msgid "item"
3242
+ msgstr ""
3243
+
3244
+ #: includes/admin/core/list-tables/emails-list-table.php:71
3245
+ #: includes/admin/core/list-tables/roles-list-table.php:177
3246
+ msgid "items"
3247
+ msgstr ""
3248
+
3249
+ #: includes/admin/core/list-tables/emails-list-table.php:75
3250
+ #: includes/admin/core/list-tables/roles-list-table.php:181
3251
+ msgid "not found."
3252
+ msgstr ""
3253
+
3254
+ #: includes/admin/core/list-tables/emails-list-table.php:237
3255
+ msgid "Member"
3256
+ msgstr ""
3257
+
3258
+ #: includes/admin/core/list-tables/emails-list-table.php:270
3259
+ msgid "Email Notification"
3260
+ msgstr ""
3261
+
3262
+ #: includes/admin/core/list-tables/emails-list-table.php:271
3263
+ msgid "Email Notifications"
3264
+ msgstr ""
3265
+
3266
+ #: includes/admin/core/list-tables/emails-list-table.php:301
3267
+ msgid "Recipient(s)"
3268
+ msgstr ""
3269
+
3270
+ #: includes/admin/core/list-tables/emails-list-table.php:314
3271
+ #, php-format
3272
+ msgid ""
3273
+ "You may get more details about email notifications customization <a href=\"%s"
3274
+ "\">here</a>"
3275
+ msgstr ""
3276
+
3277
+ #: includes/admin/core/list-tables/roles-list-table.php:22
3278
+ #: includes/admin/core/list-tables/roles-list-table.php:89
3279
+ #: includes/admin/core/list-tables/roles-list-table.php:402
3280
+ #: includes/core/class-member-directory.php:263
3281
+ msgid "Roles"
3282
+ msgstr ""
3283
+
3284
+ #: includes/admin/core/list-tables/roles-list-table.php:342
3285
+ msgid "Are you sure you want to delete this role?"
3286
+ msgstr ""
3287
+
3288
+ #: includes/admin/core/list-tables/roles-list-table.php:347
3289
+ msgid "Are you sure you want to reset UM role meta?"
3290
+ msgstr ""
3291
+
3292
+ #: includes/admin/core/list-tables/roles-list-table.php:347
3293
+ msgid "Reset UM Role meta"
3294
+ msgstr ""
3295
+
3296
+ #: includes/admin/core/list-tables/roles-list-table.php:401
3297
+ msgid "Role"
3298
+ msgstr ""
3299
+
3300
+ #: includes/admin/core/list-tables/roles-list-table.php:414
3301
+ msgid "Role Title"
3302
+ msgstr ""
3303
+
3304
+ #: includes/admin/core/list-tables/roles-list-table.php:415
3305
+ msgid "Role ID"
3306
+ msgstr ""
3307
+
3308
+ #: includes/admin/core/list-tables/roles-list-table.php:416
3309
+ msgid "No.of Members"
3310
+ msgstr ""
3311
+
3312
+ #: includes/admin/core/list-tables/roles-list-table.php:417
3313
+ msgid "UM Custom Role"
3314
+ msgstr ""
3315
+
3316
+ #: includes/admin/core/list-tables/roles-list-table.php:418
3317
+ msgid "WP-Admin Access"
3318
+ msgstr ""
3319
+
3320
+ #: includes/admin/core/list-tables/roles-list-table.php:419
3321
+ msgid "Priority"
3322
+ msgstr ""
3323
+
3324
+ #: includes/admin/core/list-tables/roles-list-table.php:485
3325
+ #: includes/admin/core/packages/2.0-beta1/user_roles.php:14
3326
+ #: includes/admin/templates/role/role-edit.php:153
3327
+ #: includes/core/class-common.php:60 includes/core/class-common.php:90
3328
+ msgid "Add New"
3329
+ msgstr ""
3330
+
3331
+ #: includes/admin/core/list-tables/roles-list-table.php:492
3332
+ msgid "User Role <strong>Deleted</strong> Successfully."
3333
+ msgstr ""
3334
+
3335
+ #: includes/admin/core/packages/2.0-beta1/functions.php:8
3336
+ #: includes/admin/core/packages/2.0.10/functions.php:8
3337
+ msgid "Styles was upgraded successfully"
3338
+ msgstr ""
3339
+
3340
+ #: includes/admin/core/packages/2.0-beta1/functions.php:21
3341
+ msgid "User Roles was upgraded successfully"
3342
+ msgstr ""
3343
+
3344
+ #: includes/admin/core/packages/2.0-beta1/functions.php:89
3345
+ #, php-format
3346
+ msgid "Users from %s to %s was upgraded successfully..."
3347
+ msgstr ""
3348
+
3349
+ #: includes/admin/core/packages/2.0-beta1/functions.php:113
3350
+ msgid "Settings was upgraded successfully"
3351
+ msgstr ""
3352
+
3353
+ #: includes/admin/core/packages/2.0-beta1/functions.php:123
3354
+ msgid "Menus settings was upgraded successfully"
3355
+ msgstr ""
3356
+
3357
+ #: includes/admin/core/packages/2.0-beta1/functions.php:133
3358
+ msgid "Mailchimp Lists was upgraded successfully"
3359
+ msgstr ""
3360
+
3361
+ #: includes/admin/core/packages/2.0-beta1/functions.php:143
3362
+ msgid "Social login forms was upgraded successfully"
3363
+ msgstr ""
3364
+
3365
+ #: includes/admin/core/packages/2.0-beta1/functions.php:153
3366
+ msgid "UM Custom Posts was upgraded successfully"
3367
+ msgstr ""
3368
+
3369
+ #: includes/admin/core/packages/2.0-beta1/functions.php:170
3370
+ msgid "Forums are ready for upgrade"
3371
+ msgstr ""
3372
+
3373
+ #: includes/admin/core/packages/2.0-beta1/functions.php:225
3374
+ #, php-format
3375
+ msgid "Forums from %s to %s was upgraded successfully..."
3376
+ msgstr ""
3377
+
3378
+ #: includes/admin/core/packages/2.0-beta1/functions.php:243
3379
+ msgid "Woocommerce Products are ready for upgrade"
3380
+ msgstr ""
3381
+
3382
+ #: includes/admin/core/packages/2.0-beta1/functions.php:319
3383
+ #, php-format
3384
+ msgid "Woocommerce Products from %s to %s was upgraded successfully..."
3385
+ msgstr ""
3386
+
3387
+ #: includes/admin/core/packages/2.0-beta1/functions.php:337
3388
+ msgid "Email Templates was upgraded successfully"
3389
+ msgstr ""
3390
+
3391
+ #: includes/admin/core/packages/2.0-beta1/init.php:13
3392
+ #: includes/admin/core/packages/2.0.10/init.php:6
3393
+ msgid "Upgrade Styles..."
3394
+ msgstr ""
3395
+
3396
+ #: includes/admin/core/packages/2.0-beta1/init.php:38
3397
+ msgid "Upgrade Roles..."
3398
+ msgstr ""
3399
+
3400
+ #: includes/admin/core/packages/2.0-beta1/init.php:52
3401
+ msgid "Upgrade Users..."
3402
+ msgstr ""
3403
+
3404
+ #: includes/admin/core/packages/2.0-beta1/init.php:73
3405
+ msgid "Getting "
3406
+ msgstr ""
3407
+
3408
+ #: includes/admin/core/packages/2.0-beta1/init.php:73
3409
+ #: includes/admin/core/packages/2.0-beta1/init.php:85
3410
+ msgid " users..."
3411
+ msgstr ""
3412
+
3413
+ #: includes/admin/core/packages/2.0-beta1/init.php:85
3414
+ msgid "There are "
3415
+ msgstr ""
3416
+
3417
+ #: includes/admin/core/packages/2.0-beta1/init.php:86
3418
+ msgid "Start users upgrading..."
3419
+ msgstr ""
3420
+
3421
+ #: includes/admin/core/packages/2.0-beta1/init.php:139
3422
+ msgid "Upgrade Content Restriction Settings..."
3423
+ msgstr ""
3424
+
3425
+ #: includes/admin/core/packages/2.0-beta1/init.php:165
3426
+ msgid "Upgrade Settings..."
3427
+ msgstr ""
3428
+
3429
+ #: includes/admin/core/packages/2.0-beta1/init.php:191
3430
+ msgid "Upgrade Menu Items..."
3431
+ msgstr ""
3432
+
3433
+ #: includes/admin/core/packages/2.0-beta1/init.php:217
3434
+ msgid "Upgrade Mailchimp Lists..."
3435
+ msgstr ""
3436
+
3437
+ #: includes/admin/core/packages/2.0-beta1/init.php:243
3438
+ msgid "Upgrade Social Login Forms..."
3439
+ msgstr ""
3440
+
3441
+ #: includes/admin/core/packages/2.0-beta1/init.php:269
3442
+ msgid "Upgrade UM Custom Post Types..."
3443
+ msgstr ""
3444
+
3445
+ #: includes/admin/core/packages/2.0-beta1/init.php:295
3446
+ msgid "Upgrade bbPress Forums..."
3447
+ msgstr ""
3448
+
3449
+ #: includes/admin/core/packages/2.0-beta1/init.php:296
3450
+ msgid "Get bbPress Forums count..."
3451
+ msgstr ""
3452
+
3453
+ #: includes/admin/core/packages/2.0-beta1/init.php:355
3454
+ msgid "Upgrade Woocommerce Products..."
3455
+ msgstr ""
3456
+
3457
+ #: includes/admin/core/packages/2.0-beta1/init.php:356
3458
+ msgid "Get all Products..."
3459
+ msgstr ""
3460
+
3461
+ #: includes/admin/core/packages/2.0-beta1/init.php:417
3462
+ msgid "Upgrade Email Templates..."
3463
+ msgstr ""
3464
+
3465
+ #: includes/admin/core/packages/2.0-beta1/user_roles.php:13
3466
+ msgid "User Role"
3467
+ msgstr ""
3468
+
3469
+ #: includes/admin/core/packages/2.0-beta1/user_roles.php:15
3470
+ msgid "Add New User Role"
3471
+ msgstr ""
3472
+
3473
+ #: includes/admin/core/packages/2.0-beta1/user_roles.php:16
3474
+ msgid "Edit User Role"
3475
+ msgstr ""
3476
+
3477
+ #: includes/admin/core/packages/2.0-beta1/user_roles.php:17
3478
+ msgid "You did not create any user roles yet"
3479
+ msgstr ""
3480
+
3481
+ #: includes/admin/core/packages/2.0-beta1/user_roles.php:18
3482
+ #: includes/core/class-common.php:64 includes/core/class-common.php:94
3483
+ msgid "Nothing found in Trash"
3484
+ msgstr ""
3485
+
3486
+ #: includes/admin/core/packages/2.0-beta1/user_roles.php:19
3487
+ msgid "Search User Roles"
3488
+ msgstr ""
3489
+
3490
+ #: includes/admin/core/packages/2.0.10/functions.php:21
3491
+ msgid "Users cache was cleared successfully"
3492
+ msgstr ""
3493
+
3494
+ #: includes/admin/core/packages/2.0.10/init.php:32
3495
+ msgid "Clear Users Cache..."
3496
+ msgstr ""
3497
+
3498
+ #: includes/admin/core/packages/2.0.24/functions.php:11
3499
+ msgid "Temporary dir was purged successfully"
3500
+ msgstr ""
3501
+
3502
+ #: includes/admin/core/packages/2.0.24/init.php:6
3503
+ msgid "Purge temp files dir..."
3504
+ msgstr ""
3505
+
3506
+ #: includes/admin/core/packages/2.0.44/functions.php:13
3507
+ msgid "Field was upgraded successfully"
3508
+ msgstr ""
3509
+
3510
+ #: includes/admin/core/packages/2.0.44/init.php:7
3511
+ msgid "Upgrade predefined metafields..."
3512
+ msgstr ""
3513
+
3514
+ #: includes/admin/core/packages/2.0.54/functions.php:13
3515
+ msgid "Roles was upgraded successfully"
3516
+ msgstr ""
3517
+
3518
+ #: includes/admin/core/packages/2.0.54/init.php:7
3519
+ msgid "Upgrade user roles..."
3520
+ msgstr ""
3521
+
3522
+ #: includes/admin/core/packages/2.1.0-beta1/functions.php:11
3523
+ msgid "Usermeta was upgraded successfully"
3524
+ msgstr ""
3525
+
3526
+ #: includes/admin/core/packages/2.1.0-beta1/functions.php:24
3527
+ msgid "Member directories were upgraded successfully"
3528
+ msgstr ""
3529
+
3530
+ #: includes/admin/core/packages/2.1.0-beta1/init.php:7
3531
+ msgid "Upgrade user metadata..."
3532
+ msgstr ""
3533
+
3534
+ #: includes/admin/core/packages/2.1.0-beta1/init.php:33
3535
+ msgid "Upgrade Member Directories..."
3536
+ msgstr ""
3537
+
3538
+ #: includes/admin/templates/dashboard/cache.php:12
3539
+ msgid "Run this task from time to time to keep your DB clean."
3540
+ msgstr ""
3541
+
3542
+ #: includes/admin/templates/dashboard/cache.php:15
3543
+ #, php-format
3544
+ msgid "Clear cache of %s users"
3545
+ msgstr ""
3546
+
3547
+ #: includes/admin/templates/dashboard/feed.php:7
3548
+ msgid "Latest From Ultimate Member"
3549
+ msgstr ""
3550
+
3551
+ #: includes/admin/templates/dashboard/purge.php:7
3552
+ #, php-format
3553
+ msgid ""
3554
+ "You can free up <span class=\"red\">%s MB</span> by purging your temp upload "
3555
+ "directory."
3556
+ msgstr ""
3557
+
3558
+ #: includes/admin/templates/dashboard/purge.php:12
3559
+ msgid "Purge Temp"
3560
+ msgstr ""
3561
+
3562
+ #: includes/admin/templates/dashboard/purge.php:19
3563
+ msgid ""
3564
+ "Your temp uploads directory is <span class=\"ok\">clean</span>. There is "
3565
+ "nothing to purge."
3566
+ msgstr ""
3567
+
3568
+ #: includes/admin/templates/dashboard/upgrade-request.php:4
3569
+ msgid ""
3570
+ "Run this task from time to time if you have issues with WP Cron and need to "
3571
+ "get UM extension updates."
3572
+ msgstr ""
3573
+
3574
+ #: includes/admin/templates/dashboard/upgrade-request.php:7
3575
+ msgid "Get latest versions"
3576
+ msgstr ""
3577
+
3578
+ #: includes/admin/templates/dashboard/users.php:60
3579
+ #: includes/core/class-user.php:839
3580
+ msgid "Pending Review"
3581
+ msgstr ""
3582
+
3583
+ #: includes/admin/templates/dashboard/users.php:73
3584
+ #: includes/core/class-user.php:835
3585
+ msgid "Awaiting E-mail Confirmation"
3586
+ msgstr ""
3587
+
3588
+ #: includes/admin/templates/directory/appearance.php:12
3589
+ #: includes/admin/templates/form/login_customize.php:23
3590
+ #: includes/admin/templates/form/profile_customize.php:42
3591
+ #: includes/admin/templates/form/register_customize.php:38
3592
+ msgid "Template"
3593
+ msgstr ""
3594
+
3595
+ #: includes/admin/templates/directory/general.php:36
3596
+ msgid "View type(s)"
3597
+ msgstr ""
3598
+
3599
+ #: includes/admin/templates/directory/general.php:37
3600
+ msgid "View type a specific parameter in the directory"
3601
+ msgstr ""
3602
+
3603
+ #: includes/admin/templates/directory/general.php:46
3604
+ msgid "Default view type"
3605
+ msgstr ""
3606
+
3607
+ #: includes/admin/templates/directory/general.php:47
3608
+ msgid "Default directory view type"
3609
+ msgstr ""
3610
+
3611
+ #: includes/admin/templates/directory/general.php:55
3612
+ msgid "User Roles to Display"
3613
+ msgstr ""
3614
+
3615
+ #: includes/admin/templates/directory/general.php:56
3616
+ msgid ""
3617
+ "If you do not want to show all members, select only user roles to appear in "
3618
+ "this directory"
3619
+ msgstr ""
3620
+
3621
+ #: includes/admin/templates/directory/general.php:64
3622
+ msgid "Only show members who have uploaded a profile photo"
3623
+ msgstr ""
3624
+
3625
+ #: includes/admin/templates/directory/general.php:65
3626
+ msgid "If 'Use Gravatars' as profile photo is enabled, this option is ignored"
3627
+ msgstr ""
3628
+
3629
+ #: includes/admin/templates/directory/general.php:71
3630
+ msgid "Only show members who have uploaded a cover photo"
3631
+ msgstr ""
3632
+
3633
+ #: includes/admin/templates/directory/general.php:77
3634
+ msgid "Only show specific users (Enter one username per line)"
3635
+ msgstr ""
3636
+
3637
+ #: includes/admin/templates/directory/pagination.php:12
3638
+ msgid "Show results only after search/filtration"
3639
+ msgstr ""
3640
+
3641
+ #: includes/admin/templates/directory/pagination.php:13
3642
+ msgid ""
3643
+ "If turned on, member results will only appear after search/filter is "
3644
+ "performed"
3645
+ msgstr ""
3646
+
3647
+ #: includes/admin/templates/directory/pagination.php:20
3648
+ msgid "Maximum number of profiles"
3649
+ msgstr ""
3650
+
3651
+ #: includes/admin/templates/directory/pagination.php:21
3652
+ msgid ""
3653
+ "Use this setting to control the maximum number of profiles to appear in this "
3654
+ "directory. Leave blank to disable this limit"
3655
+ msgstr ""
3656
+
3657
+ #: includes/admin/templates/directory/pagination.php:28
3658
+ msgid "Number of profiles per page"
3659
+ msgstr ""
3660
+
3661
+ #: includes/admin/templates/directory/pagination.php:29
3662
+ msgid "Number of profiles to appear on page for standard users"
3663
+ msgstr ""
3664
+
3665
+ #: includes/admin/templates/directory/pagination.php:36
3666
+ msgid "Number of profiles per page (for Mobiles & Tablets)"
3667
+ msgstr ""
3668
+
3669
+ #: includes/admin/templates/directory/pagination.php:37
3670
+ msgid "Number of profiles to appear on page for mobile users"
3671
+ msgstr ""
3672
+
3673
+ #: includes/admin/templates/directory/pagination.php:44
3674
+ msgid "Results Text"
3675
+ msgstr ""
3676
+
3677
+ #: includes/admin/templates/directory/pagination.php:45
3678
+ msgid ""
3679
+ "Customize the search result text . e.g. Found 3,000 Members. Leave this "
3680
+ "blank to not show result text"
3681
+ msgstr ""
3682
+
3683
+ #: includes/admin/templates/directory/pagination.php:46
3684
+ #: includes/class-config.php:178 includes/class-config.php:278
3685
+ msgid "{total_users} Members"
3686
+ msgstr ""
3687
+
3688
+ #: includes/admin/templates/directory/pagination.php:51
3689
+ msgid "Single Result Text"
3690
+ msgstr ""
3691
+
3692
+ #: includes/admin/templates/directory/pagination.php:52
3693
+ msgid "Same as above but in case of 1 user found only"
3694
+ msgstr ""
3695
+
3696
+ #: includes/admin/templates/directory/pagination.php:53
3697
+ #: includes/class-config.php:179 includes/class-config.php:279
3698
+ msgid "{total_users} Member"
3699
+ msgstr ""
3700
+
3701
+ #: includes/admin/templates/directory/pagination.php:58
3702
+ msgid "Custom text if no users were found"
3703
+ msgstr ""
3704
+
3705
+ #: includes/admin/templates/directory/pagination.php:59
3706
+ msgid ""
3707
+ "This is the text that is displayed if no users are found during a search"
3708
+ msgstr ""
3709
+
3710
+ #: includes/admin/templates/directory/pagination.php:60
3711
+ #: includes/class-config.php:180
3712
+ msgid "We are sorry. We cannot find any users who match your search criteria."
3713
+ msgstr ""
3714
+
3715
+ #: includes/admin/templates/directory/profile.php:20
3716
+ msgid "Enable Profile Photo"
3717
+ msgstr ""
3718
+
3719
+ #: includes/admin/templates/directory/profile.php:26
3720
+ msgid "Enable Cover Photo"
3721
+ msgstr ""
3722
+
3723
+ #: includes/admin/templates/directory/profile.php:27
3724
+ msgid "If turned on, the users cover photo will appear in the directory"
3725
+ msgstr ""
3726
+
3727
+ #: includes/admin/templates/directory/profile.php:33
3728
+ msgid "Show display name"
3729
+ msgstr ""
3730
+
3731
+ #: includes/admin/templates/directory/profile.php:39
3732
+ msgid "Show tagline below profile name"
3733
+ msgstr ""
3734
+
3735
+ #: includes/admin/templates/directory/profile.php:45
3736
+ msgid "Choose field(s) to display in tagline"
3737
+ msgstr ""
3738
+
3739
+ #: includes/admin/templates/directory/profile.php:48
3740
+ #: includes/admin/templates/directory/profile.php:63
3741
+ #: includes/admin/templates/directory/search.php:93
3742
+ msgid "Add New Custom Field"
3743
+ msgstr ""
3744
+
3745
+ #: includes/admin/templates/directory/profile.php:55
3746
+ msgid "Show extra user information below tagline?"
3747
+ msgstr ""
3748
+
3749
+ #: includes/admin/templates/directory/profile.php:61
3750
+ msgid "Choose field(s) to display in reveal section"
3751
+ msgstr ""
3752
+
3753
+ #: includes/admin/templates/directory/profile.php:71
3754
+ msgid "Show social connect icons"
3755
+ msgstr ""
3756
+
3757
+ #: includes/admin/templates/directory/profile.php:78
3758
+ msgid "Enable reveal section transition by default"
3759
+ msgstr ""
3760
+
3761
+ #: includes/admin/templates/directory/search.php:55
3762
+ msgid "Enable Search feature"
3763
+ msgstr ""
3764
+
3765
+ #: includes/admin/templates/directory/search.php:56
3766
+ msgid "If turned on, users will be able to search members in this directory"
3767
+ msgstr ""
3768
+
3769
+ #: includes/admin/templates/directory/search.php:62
3770
+ msgid "User Roles that can use search"
3771
+ msgstr ""
3772
+
3773
+ #: includes/admin/templates/directory/search.php:63
3774
+ msgid "If you want to allow specific user roles to be able to search only"
3775
+ msgstr ""
3776
+
3777
+ #: includes/admin/templates/directory/search.php:72
3778
+ msgid "Enable Filters feature"
3779
+ msgstr ""
3780
+
3781
+ #: includes/admin/templates/directory/search.php:73
3782
+ msgid "If turned on, users will be able to filter members in this directory"
3783
+ msgstr ""
3784
+
3785
+ #: includes/admin/templates/directory/search.php:79
3786
+ msgid "User Roles that can use filters"
3787
+ msgstr ""
3788
+
3789
+ #: includes/admin/templates/directory/search.php:80
3790
+ msgid "If you want to allow specific user roles to be able to filter only"
3791
+ msgstr ""
3792
+
3793
+ #: includes/admin/templates/directory/search.php:89
3794
+ msgid "Choose filter(s) meta to enable"
3795
+ msgstr ""
3796
+
3797
+ #: includes/admin/templates/directory/search.php:99
3798
+ msgid "Expand the filter bar by default"
3799
+ msgstr ""
3800
+
3801
+ #: includes/admin/templates/directory/search.php:100
3802
+ msgid ""
3803
+ "If turned on, filters bar will be visible after a page loading and can be "
3804
+ "collapsed"
3805
+ msgstr ""
3806
+
3807
+ #: includes/admin/templates/directory/search.php:107
3808
+ msgid "Admin filtering"
3809
+ msgstr ""
3810
+
3811
+ #: includes/admin/templates/directory/search.php:108
3812
+ msgid ""
3813
+ "Limit which users appear in the member directory e.g only display users from "
3814
+ "USA"
3815
+ msgstr ""
3816
+
3817
+ #: includes/admin/templates/directory/search.php:111
3818
+ msgid "Add New Filter"
3819
+ msgstr ""
3820
+
3821
+ #: includes/admin/templates/directory/sorting.php:15
3822
+ msgid "Default sort users by"
3823
+ msgstr ""
3824
+
3825
+ #: includes/admin/templates/directory/sorting.php:16
3826
+ msgid "Default sorting users by a specific parameter in the directory"
3827
+ msgstr ""
3828
+
3829
+ #: includes/admin/templates/directory/sorting.php:23
3830
+ msgid "Meta key"
3831
+ msgstr ""
3832
+
3833
+ #: includes/admin/templates/directory/sorting.php:24
3834
+ msgid "To sort by a custom field, enter the meta key of field here"
3835
+ msgstr ""
3836
+
3837
+ #: includes/admin/templates/directory/sorting.php:31
3838
+ msgid "Enable custom sorting"
3839
+ msgstr ""
3840
+
3841
+ #: includes/admin/templates/directory/sorting.php:32
3842
+ msgid ""
3843
+ "Whether to provide an ability to change the sorting on the directory page"
3844
+ msgstr ""
3845
+
3846
+ #: includes/admin/templates/directory/sorting.php:38
3847
+ msgid "Choose field(s) to enable in sorting"
3848
+ msgstr ""
3849
+
3850
+ #: includes/admin/templates/directory/sorting.php:41
3851
+ #: includes/admin/templates/form/profile_settings.php:25
3852
+ msgid "Add New Field"
3853
+ msgstr ""
3854
+
3855
+ #: includes/admin/templates/extensions.php:161
3856
+ msgid ""
3857
+ "<strong>All Access Pass</strong> – Get access to all Ultimate Member "
3858
+ "extensions at a significant discount with our All Access Pass."
3859
+ msgstr ""
3860
+
3861
+ #: includes/admin/templates/extensions.php:165
3862
+ msgid "View Pricing"
3863
+ msgstr ""
3864
+
3865
+ #: includes/admin/templates/extensions.php:174
3866
+ msgid "Premium"
3867
+ msgstr ""
3868
+
3869
+ #: includes/admin/templates/extensions.php:179
3870
+ msgid "Free"
3871
+ msgstr ""
3872
+
3873
+ #: includes/admin/templates/extensions.php:205
3874
+ #: includes/admin/templates/extensions.php:239
3875
+ msgid "Get this Add on"
3876
+ msgstr ""
3877
+
3878
+ #: includes/admin/templates/extensions.php:210
3879
+ #: includes/admin/templates/extensions.php:244
3880
+ msgid "More Details"
3881
+ msgstr ""
3882
+
3883
+ #: includes/admin/templates/form/builder.php:13
3884
+ msgid "Live Preview"
3885
+ msgstr ""
3886
+
3887
+ #: includes/admin/templates/form/builder.php:27
3888
+ msgid "Add Master Row"
3889
+ msgstr ""
3890
+
3891
+ #: includes/admin/templates/form/login_customize.php:12
3892
+ #: includes/admin/templates/form/profile_customize.php:21
3893
+ #: includes/admin/templates/form/register_customize.php:19
3894
+ msgid "Apply custom settings to this form"
3895
+ msgstr ""
3896
+
3897
+ #: includes/admin/templates/form/login_customize.php:13
3898
+ #: includes/admin/templates/form/profile_customize.php:22
3899
+ #: includes/admin/templates/form/register_customize.php:20
3900
+ msgid ""
3901
+ "Switch to yes if you want to customize this form settings, styling &amp; "
3902
+ "appearance"
3903
+ msgstr ""
3904
+
3905
+ #: includes/admin/templates/form/login_customize.php:31
3906
+ #: includes/admin/templates/form/profile_customize.php:50
3907
+ #: includes/admin/templates/form/register_customize.php:46
3908
+ msgid "Max. Width (px)"
3909
+ msgstr ""
3910
+
3911
+ #: includes/admin/templates/form/login_customize.php:32
3912
+ #: includes/admin/templates/form/profile_customize.php:51
3913
+ #: includes/admin/templates/form/register_customize.php:47
3914
+ msgid "The maximum width of shortcode in pixels e.g. 600px"
3915
+ msgstr ""
3916
+
3917
+ #: includes/admin/templates/form/login_customize.php:39
3918
+ #: includes/admin/templates/form/profile_customize.php:66
3919
+ #: includes/admin/templates/form/register_customize.php:54
3920
+ msgid "Field Icons"
3921
+ msgstr ""
3922
+
3923
+ #: includes/admin/templates/form/login_customize.php:40
3924
+ #: includes/admin/templates/form/profile_customize.php:67
3925
+ #: includes/admin/templates/form/register_customize.php:55
3926
+ msgid ""
3927
+ "Whether to show field icons and where to show them relative to the field"
3928
+ msgstr ""
3929
+
3930
+ #: includes/admin/templates/form/login_customize.php:52
3931
+ #: includes/admin/templates/form/profile_customize.php:79
3932
+ #: includes/admin/templates/form/register_customize.php:67
3933
+ msgid "Primary Button Text"
3934
+ msgstr ""
3935
+
3936
+ #: includes/admin/templates/form/login_customize.php:53
3937
+ #: includes/admin/templates/form/login_customize.php:72
3938
+ #: includes/admin/templates/form/profile_customize.php:80
3939
+ #: includes/admin/templates/form/profile_customize.php:99
3940
+ #: includes/admin/templates/form/register_customize.php:68
3941
+ #: includes/admin/templates/form/register_customize.php:87
3942
+ msgid "Customize the button text"
3943
+ msgstr ""
3944
+
3945
+ #: includes/admin/templates/form/login_customize.php:60
3946
+ #: includes/admin/templates/form/profile_customize.php:87
3947
+ #: includes/admin/templates/form/register_customize.php:75
3948
+ msgid "Show Secondary Button"
3949
+ msgstr ""
3950
+
3951
+ #: includes/admin/templates/form/login_customize.php:71
3952
+ #: includes/admin/templates/form/profile_customize.php:98
3953
+ #: includes/admin/templates/form/register_customize.php:86
3954
+ msgid "Secondary Button Text"
3955
+ msgstr ""
3956
+
3957
+ #: includes/admin/templates/form/login_customize.php:79
3958
+ msgid "Show Forgot Password Link?"
3959
+ msgstr ""
3960
+
3961
+ #: includes/admin/templates/form/login_customize.php:90
3962
+ msgid "Show \"Remember Me\"?"
3963
+ msgstr ""
3964
+
3965
+ #: includes/admin/templates/form/login_settings.php:12
3966
+ msgid "Redirection after Login"
3967
+ msgstr ""
3968
+
3969
+ #: includes/admin/templates/form/login_settings.php:13
3970
+ msgid ""
3971
+ "Change this If you want to override role redirection settings after login "
3972
+ "only."
3973
+ msgstr ""
3974
+
3975
+ #: includes/admin/templates/form/login_settings.php:17
3976
+ #: includes/admin/templates/role/login.php:19
3977
+ #: includes/admin/templates/role/register.php:30
3978
+ msgid "Redirect to profile"
3979
+ msgstr ""
3980
+
3981
+ #: includes/admin/templates/form/login_settings.php:18
3982
+ #: includes/admin/templates/role/login.php:20
3983
+ #: includes/admin/templates/role/register.php:31
3984
+ #: includes/admin/templates/role/register.php:58
3985
+ #: includes/admin/templates/role/register.php:92
3986
+ msgid "Redirect to URL"
3987
+ msgstr ""
3988
+
3989
+ #: includes/admin/templates/form/login_settings.php:19
3990
+ #: includes/admin/templates/role/login.php:21
3991
+ msgid "Refresh active page"
3992
+ msgstr ""
3993
+
3994
+ #: includes/admin/templates/form/login_settings.php:20
3995
+ #: includes/admin/templates/role/login.php:22
3996
+ msgid "Redirect to WordPress Admin"
3997
+ msgstr ""
3998
+
3999
+ #: includes/admin/templates/form/login_settings.php:26
4000
+ #: includes/admin/templates/role/delete.php:26
4001
+ #: includes/admin/templates/role/login.php:28
4002
+ #: includes/admin/templates/role/logout.php:26
4003
+ #: includes/admin/templates/role/register.php:38
4004
+ #: includes/admin/templates/role/register.php:72
4005
+ #: includes/admin/templates/role/register.php:106
4006
+ msgid "Set Custom Redirect URL"
4007
+ msgstr ""
4008
+
4009
+ #: includes/admin/templates/form/mode.php:9
4010
+ msgid ""
4011
+ "<strong>Note:</strong> Form type cannot be changed for the default forms."
4012
+ msgstr ""
4013
+
4014
+ #: includes/admin/templates/form/mode.php:14
4015
+ msgid "Profile Form"
4016
+ msgstr ""
4017
+
4018
+ #: includes/admin/templates/form/profile_customize.php:33
4019
+ msgid "Make this profile form role-specific"
4020
+ msgstr ""
4021
+
4022
+ #: includes/admin/templates/form/profile_customize.php:34
4023
+ msgid ""
4024
+ "Please note if you make a profile form specific to a role then you must make "
4025
+ "sure that every other role is assigned a profile form"
4026
+ msgstr ""
4027
+
4028
+ #: includes/admin/templates/form/profile_customize.php:58
4029
+ msgid "Profile Area Max. Width (px)"
4030
+ msgstr ""
4031
+
4032
+ #: includes/admin/templates/form/profile_customize.php:106
4033
+ msgid "Enable Cover Photos"
4034
+ msgstr ""
4035
+
4036
+ #: includes/admin/templates/form/profile_customize.php:117
4037
+ msgid "Cover Photo Size"
4038
+ msgstr ""
4039
+
4040
+ #: includes/admin/templates/form/profile_customize.php:118
4041
+ #: includes/admin/templates/form/profile_customize.php:153
4042
+ msgid "Set the profile photo size in pixels here"
4043
+ msgstr ""
4044
+
4045
+ #: includes/admin/templates/form/profile_customize.php:126
4046
+ msgid "Cover photo ratio"
4047
+ msgstr ""
4048
+
4049
+ #: includes/admin/templates/form/profile_customize.php:161
4050
+ msgid "Make Profile Photo Required"
4051
+ msgstr ""
4052
+
4053
+ #: includes/admin/templates/form/profile_customize.php:162
4054
+ msgid "Require user to update a profile photo when updating their profile"
4055
+ msgstr ""
4056
+
4057
+ #: includes/admin/templates/form/profile_customize.php:173
4058
+ msgid "Show display name in profile header?"
4059
+ msgstr ""
4060
+
4061
+ #: includes/admin/templates/form/profile_customize.php:184
4062
+ msgid "Show social links in profile header?"
4063
+ msgstr ""
4064
+
4065
+ #: includes/admin/templates/form/profile_customize.php:195
4066
+ msgid "Show user description in profile header?"
4067
+ msgstr ""
4068
+
4069
+ #: includes/admin/templates/form/profile_settings.php:21
4070
+ msgid "Field(s) to show in user meta"
4071
+ msgstr ""
4072
+
4073
+ #: includes/admin/templates/form/profile_settings.php:22
4074
+ msgid ""
4075
+ "Fields selected here will appear in the profile header area below the user's "
4076
+ "display name"
4077
+ msgstr ""
4078
+
4079
+ #: includes/admin/templates/form/register_customize.php:30
4080
+ msgid "Assign role to form"
4081
+ msgstr ""
4082
+
4083
+ #: includes/admin/templates/form/register_gdpr.php:8
4084
+ msgid "Select page"
4085
+ msgstr ""
4086
+
4087
+ #: includes/admin/templates/form/register_gdpr.php:23
4088
+ msgid "Enable on this form"
4089
+ msgstr ""
4090
+
4091
+ #: includes/admin/templates/form/register_gdpr.php:33
4092
+ msgid "Content"
4093
+ msgstr ""
4094
+
4095
+ #: includes/admin/templates/form/register_gdpr.php:41
4096
+ msgid "Toggle Show text"
4097
+ msgstr ""
4098
+
4099
+ #: includes/admin/templates/form/register_gdpr.php:42
4100
+ #: includes/admin/templates/form/register_gdpr.php:43
4101
+ #: templates/gdpr-register.php:15 templates/gdpr-register.php:17
4102
+ msgid "Show privacy policy"
4103
+ msgstr ""
4104
+
4105
+ #: includes/admin/templates/form/register_gdpr.php:49
4106
+ msgid "Toggle Hide text"
4107
+ msgstr ""
4108
+
4109
+ #: includes/admin/templates/form/register_gdpr.php:50
4110
+ #: includes/admin/templates/form/register_gdpr.php:51
4111
+ #: templates/gdpr-register.php:16
4112
+ msgid "Hide privacy policy"
4113
+ msgstr ""
4114
+
4115
+ #: includes/admin/templates/form/register_gdpr.php:57
4116
+ msgid "Checkbox agreement description"
4117
+ msgstr ""
4118
+
4119
+ #: includes/admin/templates/form/register_gdpr.php:58
4120
+ #: includes/admin/templates/form/register_gdpr.php:59
4121
+ #: templates/gdpr-register.php:27
4122
+ msgid "Please confirm that you agree to our privacy policy"
4123
+ msgstr ""
4124
+
4125
+ #: includes/admin/templates/form/register_gdpr.php:65
4126
+ msgid "Error Text"
4127
+ msgstr ""
4128
+
4129
+ #: includes/admin/templates/form/register_gdpr.php:66
4130
+ #: includes/admin/templates/form/register_gdpr.php:67
4131
+ #: templates/gdpr-register.php:40
4132
+ msgid "Please confirm your acceptance of our privacy policy"
4133
+ msgstr ""
4134
+
4135
+ #: includes/admin/templates/gdpr.php:4
4136
+ msgid "What personal data we collect and why we collect it"
4137
+ msgstr ""
4138
+
4139
+ #: includes/admin/templates/gdpr.php:10
4140
+ #, php-format
4141
+ msgid "%s provides you with forms for user registration, login and profiles."
4142
+ msgstr ""
4143
+
4144
+ #: includes/admin/templates/gdpr.php:13
4145
+ msgid "Via these forms you are collecting personal data from your users."
4146
+ msgstr ""
4147
+
4148
+ #: includes/admin/templates/gdpr.php:16
4149
+ msgid ""
4150
+ "You should include in your privacy policy what personal data is captured "
4151
+ "when someone submits/fills in one of the forms, why you collect it and what "
4152
+ "you do with this data and how long you keep it."
4153
+ msgstr ""
4154
+
4155
+ #: includes/admin/templates/gdpr.php:20
4156
+ msgid "How long we retain your data"
4157
+ msgstr ""
4158
+
4159
+ #: includes/admin/templates/gdpr.php:23
4160
+ msgid ""
4161
+ "Registered user information is retained in your website’s database "
4162
+ "indefinitely."
4163
+ msgstr ""
4164
+
4165
+ #: includes/admin/templates/gdpr.php:26
4166
+ msgid ""
4167
+ "Data can be exported or removed upon users request via the existing "
4168
+ "WordPress data exporter or eraser."
4169
+ msgstr ""
4170
+
4171
+ #: includes/admin/templates/gdpr.php:29
4172
+ msgid ""
4173
+ "If syncing data to a 3rd party service (e.g Mailchimp via our MailChimp "
4174
+ "extension), data is retained there until unsubscribed or deleted."
4175
+ msgstr ""
4176
+
4177
+ #: includes/admin/templates/gdpr.php:33
4178
+ msgid "Where we send your data"
4179
+ msgstr ""
4180
+
4181
+ #: includes/admin/templates/gdpr.php:36
4182
+ #, php-format
4183
+ msgid "%s does not send any user data outside of your site by default."
4184
+ msgstr ""
4185
+
4186
+ #: includes/admin/templates/gdpr.php:39
4187
+ msgid ""
4188
+ "If you have extended the functionality of the plugin (e.g sending registered "
4189
+ "user data to MailChimp via our MailChimp extension, this user info may be "
4190
+ "passed to these external services. These services may be located abroad and "
4191
+ "outwith the EU."
4192
+ msgstr ""
4193
+
4194
+ #: includes/admin/templates/modal/dynamic_edit_field.php:9
4195
+ msgid "Edit Field"
4196
+ msgstr ""
4197
+
4198
+ #: includes/admin/templates/modal/dynamic_edit_field.php:15
4199
+ #: includes/admin/templates/modal/dynamic_edit_row.php:15
4200
+ msgid "Update"
4201
+ msgstr ""
4202
+
4203
+ #: includes/admin/templates/modal/dynamic_edit_field.php:18
4204
+ #: includes/admin/templates/modal/dynamic_edit_row.php:18
4205
+ #: includes/admin/templates/modal/dynamic_new_divider.php:18
4206
+ #: includes/admin/templates/modal/dynamic_new_field.php:18
4207
+ #: includes/admin/templates/modal/dynamic_new_group.php:18
4208
+ #: includes/admin/templates/modal/fonticons.php:14
4209
+ #: includes/admin/templates/role/publish.php:24 includes/class-config.php:251
4210
+ #: includes/core/class-fields.php:2535 includes/core/class-fields.php:2632
4211
+ #: includes/core/um-actions-profile.php:649
4212
+ #: includes/core/um-actions-profile.php:661
4213
+ #: includes/core/um-actions-profile.php:849
4214
+ #: includes/core/um-actions-profile.php:882
4215
+ #: includes/core/um-actions-profile.php:1227
4216
+ #: includes/core/um-actions-profile.php:1234
4217
+ msgid "Cancel"
4218
+ msgstr ""
4219
+
4220
+ #: includes/admin/templates/modal/dynamic_edit_row.php:9
4221
+ msgid "Edit Row Settings"
4222
+ msgstr ""
4223
+
4224
+ #: includes/admin/templates/modal/dynamic_form_preview.php:7
4225
+ msgid "Live Form Preview"
4226
+ msgstr ""
4227
+
4228
+ #: includes/admin/templates/modal/dynamic_form_preview.php:13
4229
+ msgid "Continue editing"
4230
+ msgstr ""
4231
+
4232
+ #: includes/admin/templates/modal/dynamic_new_divider.php:9
4233
+ msgid "Add a New Divider"
4234
+ msgstr ""
4235
+
4236
+ #: includes/admin/templates/modal/dynamic_new_divider.php:15
4237
+ #: includes/admin/templates/modal/dynamic_new_field.php:15
4238
+ #: includes/admin/templates/modal/dynamic_new_group.php:15
4239
+ msgid "Add"
4240
+ msgstr ""
4241
+
4242
+ #: includes/admin/templates/modal/dynamic_new_field.php:9
4243
+ msgid "Add a New Field"
4244
+ msgstr ""
4245
+
4246
+ #: includes/admin/templates/modal/dynamic_new_group