Version Description
Download this release
Release Info
Developer | nsinelnikov |
Plugin | ![]() |
Version | 2.0.29 |
Comparing to | |
See all releases |
Code changes from version 2.0.27 to 2.0.29
- assets/js/um-scripts.js +56 -25
- assets/js/um-scripts.min.js +1 -1
- includes/admin/templates/extensions.php +15 -1
- includes/core/class-ajax-common.php +3 -0
- includes/core/class-fields.php +7 -0
- includes/core/class-files.php +20 -4
- includes/core/class-shortcodes.php +0 -3
- includes/core/class-user-posts.php +92 -31
- includes/core/class-user.php +6 -4
- includes/core/um-actions-login.php +23 -18
- includes/core/um-actions-profile.php +4 -4
- includes/core/um-actions-register.php +3 -3
- includes/core/um-filters-fields.php +47 -1
- includes/um-short-functions.php +92 -23
- languages/ultimate-member-en_US.mo +0 -0
- languages/ultimate-member-en_US.po +41 -49
- readme.txt +20 -1
- templates/profile/posts-single.php +37 -27
- templates/profile/posts.php +32 -40
- ultimate-member.php +1 -1
assets/js/um-scripts.js
CHANGED
@@ -241,31 +241,62 @@ jQuery(document).ready(function() {
|
|
241 |
return false;
|
242 |
});
|
243 |
|
244 |
-
|
245 |
-
|
246 |
-
|
247 |
-
|
248 |
-
|
249 |
-
|
250 |
-
|
251 |
-
|
252 |
-
|
253 |
-
|
254 |
-
|
255 |
-
|
256 |
-
|
257 |
-
|
258 |
-
|
259 |
-
|
260 |
-
|
261 |
-
|
262 |
-
|
263 |
-
|
264 |
-
|
265 |
-
|
266 |
-
|
267 |
-
|
268 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
269 |
|
270 |
jQuery(document).on('click', '.um-ajax-action', function(e){
|
271 |
e.preventDefault();
|
241 |
return false;
|
242 |
});
|
243 |
|
244 |
+
|
245 |
+
jQuery( document.body ).on( 'click', '.um-ajax-paginate', function(e) {
|
246 |
+
e.preventDefault();
|
247 |
+
|
248 |
+
var obj = jQuery(this);
|
249 |
+
var parent = jQuery(this).parent();
|
250 |
+
parent.addClass( 'loading' );
|
251 |
+
|
252 |
+
var hook = jQuery(this).data('hook');
|
253 |
+
if ( 'um_load_posts' === hook ) {
|
254 |
+
var pages = jQuery(this).data('pages')*1;
|
255 |
+
var next_page = jQuery(this).data('page')*1 + 1;
|
256 |
+
|
257 |
+
jQuery.ajax({
|
258 |
+
url: wp.ajax.settings.url,
|
259 |
+
type: 'post',
|
260 |
+
data: {
|
261 |
+
action: 'um_ajax_paginate_posts',
|
262 |
+
author: jQuery(this).data('author'),
|
263 |
+
page: next_page
|
264 |
+
},
|
265 |
+
complete: function() {
|
266 |
+
parent.removeClass( 'loading' );
|
267 |
+
},
|
268 |
+
success: function( data ) {
|
269 |
+
parent.before( data );
|
270 |
+
if ( next_page === pages ) {
|
271 |
+
parent.remove();
|
272 |
+
} else {
|
273 |
+
obj.data( 'page', next_page );
|
274 |
+
}
|
275 |
+
}
|
276 |
+
});
|
277 |
+
} else {
|
278 |
+
var args = jQuery(this).data('args');
|
279 |
+
var container = jQuery(this).parents('.um').find('.um-ajax-items');
|
280 |
+
|
281 |
+
jQuery.ajax({
|
282 |
+
url: wp.ajax.settings.url,
|
283 |
+
type: 'post',
|
284 |
+
data: {
|
285 |
+
action: 'um_ajax_paginate',
|
286 |
+
hook: hook,
|
287 |
+
args: args
|
288 |
+
},
|
289 |
+
complete: function() {
|
290 |
+
parent.removeClass( 'loading' );
|
291 |
+
},
|
292 |
+
success: function(data){
|
293 |
+
parent.remove();
|
294 |
+
container.append( data );
|
295 |
+
}
|
296 |
+
});
|
297 |
+
}
|
298 |
+
});
|
299 |
+
|
300 |
|
301 |
jQuery(document).on('click', '.um-ajax-action', function(e){
|
302 |
e.preventDefault();
|
assets/js/um-scripts.min.js
CHANGED
@@ -1 +1 @@
|
|
1 |
-
jQuery(document).ready(function(){jQuery(document).on("click",".um-dropdown a",function(e){return!1}),jQuery(document).on("click",".um-dropdown a.real_url",function(e){window.location=jQuery(this).attr("href")}),jQuery(document).on("click",".um-trigger-menu-on-click",function(e){return jQuery(".um-dropdown").hide(),menu=jQuery(this).find(".um-dropdown"),menu.show(),!1}),jQuery(document).on("click",".um-dropdown-hide",function(e){UM_hide_menus()}),jQuery(document).on("click","a.um-manual-trigger",function(){var e=jQuery(this).attr("data-child"),t=jQuery(this).attr("data-parent");jQuery(this).parents(t).find(e).trigger("click")}),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).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"))}),jQuery(".um-datepicker").each(function(){if(elem=jQuery(this),""!=elem.attr("data-disabled_weekdays"))var e=JSON.parse(elem.attr("data-disabled_weekdays"));else e=!1;var t=elem.attr("data-years"),a=elem.attr("data-date_min"),i=elem.attr("data-date_max"),r=a.split(","),n=i.split(","),u=r.length?new Date(r):null,o=r.length?new Date(n):null;if(u&&"Invalid Date"==u.toString()&&3==r.length){var d=r[1]+"/"+r[2]+"/"+r[0];u=new Date(Date.parse(d))}if(o&&"Invalid Date"==o.toString()&&3==n.length){var s=n[1]+"/"+n[2]+"/"+n[0];o=new Date(Date.parse(s))}elem.pickadate({selectYears:t,min:u,max:o,disable:e,format:elem.attr("data-format"),formatSubmit:"yyyy/mm/dd",hiddenName:!0,onOpen:function(){elem.blur()},onClose:function(){elem.blur()}})}),jQuery(".um-timepicker").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(".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_conditional()}}),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("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}}),!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}}),!1}),jQuery(".um-s1,.um-s2").css({display:"block"}),jQuery(".um-s1").select2({allowClear:!0}),jQuery(".um-s2").select2({allowClear:!1,minimumResultsForSearch:10}),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).on("click",".um-ajax-paginate",function(e){e.preventDefault();var t=jQuery(this).parent();
|
1 |
+
jQuery(document).ready(function(){jQuery(document).on("click",".um-dropdown a",function(e){return!1}),jQuery(document).on("click",".um-dropdown a.real_url",function(e){window.location=jQuery(this).attr("href")}),jQuery(document).on("click",".um-trigger-menu-on-click",function(e){return jQuery(".um-dropdown").hide(),menu=jQuery(this).find(".um-dropdown"),menu.show(),!1}),jQuery(document).on("click",".um-dropdown-hide",function(e){UM_hide_menus()}),jQuery(document).on("click","a.um-manual-trigger",function(){var e=jQuery(this).attr("data-child"),t=jQuery(this).attr("data-parent");jQuery(this).parents(t).find(e).trigger("click")}),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).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"))}),jQuery(".um-datepicker").each(function(){if(elem=jQuery(this),""!=elem.attr("data-disabled_weekdays"))var e=JSON.parse(elem.attr("data-disabled_weekdays"));else e=!1;var t=elem.attr("data-years"),a=elem.attr("data-date_min"),i=elem.attr("data-date_max"),r=a.split(","),n=i.split(","),u=r.length?new Date(r):null,o=r.length?new Date(n):null;if(u&&"Invalid Date"==u.toString()&&3==r.length){var d=r[1]+"/"+r[2]+"/"+r[0];u=new Date(Date.parse(d))}if(o&&"Invalid Date"==o.toString()&&3==n.length){var s=n[1]+"/"+n[2]+"/"+n[0];o=new Date(Date.parse(s))}elem.pickadate({selectYears:t,min:u,max:o,disable:e,format:elem.attr("data-format"),formatSubmit:"yyyy/mm/dd",hiddenName:!0,onOpen:function(){elem.blur()},onClose:function(){elem.blur()}})}),jQuery(".um-timepicker").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(".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_conditional()}}),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("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}}),!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}}),!1}),jQuery(".um-s1,.um-s2").css({display:"block"}),jQuery(".um-s1").select2({allowClear:!0}),jQuery(".um-s2").select2({allowClear:!1,minimumResultsForSearch:10}),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},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},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},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 d(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},success:function(e){"success"==e.status&&""!=t.val()&&d(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];d(r,i,a)}""==t.val()&&(r.find('option[value!=""]').remove(),r.val("").trigger("change"))}),jQuery('select[name="'+n+'"]').trigger("change")})});
|
includes/admin/templates/extensions.php
CHANGED
@@ -117,7 +117,21 @@ $premium['private-content'] = array(
|
|
117 |
'url' => 'https://ultimatemember.com/extensions/private-content/',
|
118 |
'image' => 'https://ultimatemember.com/wp-content/uploads/bb-plugin/cache/private-content-page-circle.png',
|
119 |
'name' => 'Private Content',
|
120 |
-
'desc' => '
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
121 |
);
|
122 |
|
123 |
|
117 |
'url' => 'https://ultimatemember.com/extensions/private-content/',
|
118 |
'image' => 'https://ultimatemember.com/wp-content/uploads/bb-plugin/cache/private-content-page-circle.png',
|
119 |
'name' => 'Private Content',
|
120 |
+
'desc' => 'Display private content to logged in users that only they can access',
|
121 |
+
);
|
122 |
+
|
123 |
+
$premium['groups'] = array(
|
124 |
+
'url' => 'https://ultimatemember.com/extensions/groups/',
|
125 |
+
'image' => 'https://ultimatemember.com/wp-content/uploads/edd/2018/10/groupimage.png',
|
126 |
+
'name' => 'Groups',
|
127 |
+
'desc' => 'Allow users to create and join groups around shared topics, interests etc.',
|
128 |
+
);
|
129 |
+
|
130 |
+
$premium['user-photos'] = array(
|
131 |
+
'url' => 'https://ultimatemember.com/extensions/user-photos/',
|
132 |
+
'image' => 'https://ultimatemember.com/wp-content/uploads/edd/2018/06/User-Photos.png',
|
133 |
+
'name' => 'User Photos',
|
134 |
+
'desc' => 'Allow users to upload photos to their profile',
|
135 |
);
|
136 |
|
137 |
|
includes/core/class-ajax-common.php
CHANGED
@@ -36,7 +36,10 @@ if ( ! class_exists( 'um\core\AJAX_Common' ) ) {
|
|
36 |
|
37 |
add_action( 'wp_ajax_um_delete_profile_photo', array( UM()->profile(), 'ajax_delete_profile_photo' ) );
|
38 |
add_action( 'wp_ajax_um_delete_cover_photo', array( UM()->profile(), 'ajax_delete_cover_photo' ) );
|
|
|
39 |
add_action( 'wp_ajax_um_ajax_paginate', array( UM()->query(), 'ajax_paginate' ) );
|
|
|
|
|
40 |
add_action( 'wp_ajax_um_muted_action', array( UM()->form(), 'ajax_muted_action' ) );
|
41 |
|
42 |
add_action( 'wp_ajax_um_remove_file', array( UM()->files(), 'ajax_remove_file' ) );
|
36 |
|
37 |
add_action( 'wp_ajax_um_delete_profile_photo', array( UM()->profile(), 'ajax_delete_profile_photo' ) );
|
38 |
add_action( 'wp_ajax_um_delete_cover_photo', array( UM()->profile(), 'ajax_delete_cover_photo' ) );
|
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 |
+
|
43 |
add_action( 'wp_ajax_um_muted_action', array( UM()->form(), 'ajax_muted_action' ) );
|
44 |
|
45 |
add_action( 'wp_ajax_um_remove_file', array( UM()->files(), 'ajax_remove_file' ) );
|
includes/core/class-fields.php
CHANGED
@@ -2313,6 +2313,13 @@ if ( ! class_exists( 'um\core\Fields' ) ) {
|
|
2313 |
} else {
|
2314 |
$file_url = UM()->files()->get_download_link( $this->set_id, $key, um_user( 'ID' ) );
|
2315 |
$file_dir = UM()->uploader()->get_upload_base_dir() . um_user( 'ID' ) . DIRECTORY_SEPARATOR . $this->field_value( $key, $default, $data );
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2316 |
}
|
2317 |
|
2318 |
if ( file_exists( $file_dir ) ) {
|
2313 |
} else {
|
2314 |
$file_url = UM()->files()->get_download_link( $this->set_id, $key, um_user( 'ID' ) );
|
2315 |
$file_dir = UM()->uploader()->get_upload_base_dir() . um_user( 'ID' ) . DIRECTORY_SEPARATOR . $this->field_value( $key, $default, $data );
|
2316 |
+
|
2317 |
+
if ( ! file_exists( $file_dir ) ) {
|
2318 |
+
if ( is_multisite() ) {
|
2319 |
+
//multisite fix for old customers
|
2320 |
+
$file_dir = str_replace( DIRECTORY_SEPARATOR . 'sites' . DIRECTORY_SEPARATOR . get_current_blog_id() . DIRECTORY_SEPARATOR, DIRECTORY_SEPARATOR, $file_dir );
|
2321 |
+
}
|
2322 |
+
}
|
2323 |
}
|
2324 |
|
2325 |
if ( file_exists( $file_dir ) ) {
|
includes/core/class-files.php
CHANGED
@@ -161,11 +161,19 @@ if ( ! class_exists( 'um\core\Files' ) ) {
|
|
161 |
*/
|
162 |
function image_download( $user_id, $field_key, $field_value ) {
|
163 |
$file_path = UM()->uploader()->get_upload_base_dir() . $user_id . DIRECTORY_SEPARATOR . $field_value;
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
164 |
$file_info = get_user_meta( $user_id, $field_key . "_metadata", true );
|
165 |
|
|
|
166 |
$size = filesize( $file_path );
|
167 |
-
$originalname = $file_info['original_name'];
|
168 |
-
$type = $file_info['type'];
|
169 |
|
170 |
header('Content-Description: File Transfer');
|
171 |
header('Content-Type: ' . $type );
|
@@ -187,11 +195,19 @@ if ( ! class_exists( 'um\core\Files' ) ) {
|
|
187 |
*/
|
188 |
function file_download( $user_id, $field_key, $field_value ) {
|
189 |
$file_path = UM()->uploader()->get_upload_base_dir() . $user_id . DIRECTORY_SEPARATOR . $field_value;
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
190 |
$file_info = get_user_meta( $user_id, $field_key . "_metadata", true );
|
191 |
|
|
|
192 |
$size = filesize( $file_path );
|
193 |
-
$originalname = $file_info['original_name'];
|
194 |
-
$type = $file_info['type'];
|
195 |
|
196 |
header('Content-Description: File Transfer');
|
197 |
header('Content-Type: ' . $type );
|
161 |
*/
|
162 |
function image_download( $user_id, $field_key, $field_value ) {
|
163 |
$file_path = UM()->uploader()->get_upload_base_dir() . $user_id . DIRECTORY_SEPARATOR . $field_value;
|
164 |
+
if ( ! file_exists( $file_path ) ) {
|
165 |
+
if ( is_multisite() ) {
|
166 |
+
//multisite fix for old customers
|
167 |
+
$file_path = str_replace( DIRECTORY_SEPARATOR . 'sites' . DIRECTORY_SEPARATOR . get_current_blog_id() . DIRECTORY_SEPARATOR, DIRECTORY_SEPARATOR, $file_path );
|
168 |
+
}
|
169 |
+
}
|
170 |
+
|
171 |
$file_info = get_user_meta( $user_id, $field_key . "_metadata", true );
|
172 |
|
173 |
+
$pathinfo = pathinfo( $file_path );
|
174 |
$size = filesize( $file_path );
|
175 |
+
$originalname = ! empty( $file_info['original_name'] ) ? $file_info['original_name'] : $pathinfo['basename'];
|
176 |
+
$type = ! empty( $file_info['type'] ) ? $file_info['type'] : $pathinfo['extension'];
|
177 |
|
178 |
header('Content-Description: File Transfer');
|
179 |
header('Content-Type: ' . $type );
|
195 |
*/
|
196 |
function file_download( $user_id, $field_key, $field_value ) {
|
197 |
$file_path = UM()->uploader()->get_upload_base_dir() . $user_id . DIRECTORY_SEPARATOR . $field_value;
|
198 |
+
if ( ! file_exists( $file_path ) ) {
|
199 |
+
if ( is_multisite() ) {
|
200 |
+
//multisite fix for old customers
|
201 |
+
$file_path = str_replace( DIRECTORY_SEPARATOR . 'sites' . DIRECTORY_SEPARATOR . get_current_blog_id() . DIRECTORY_SEPARATOR, DIRECTORY_SEPARATOR, $file_path );
|
202 |
+
}
|
203 |
+
}
|
204 |
+
|
205 |
$file_info = get_user_meta( $user_id, $field_key . "_metadata", true );
|
206 |
|
207 |
+
$pathinfo = pathinfo( $file_path );
|
208 |
$size = filesize( $file_path );
|
209 |
+
$originalname = ! empty( $file_info['original_name'] ) ? $file_info['original_name'] : $pathinfo['basename'];
|
210 |
+
$type = ! empty( $file_info['type'] ) ? $file_info['type'] : $pathinfo['extension'];
|
211 |
|
212 |
header('Content-Description: File Transfer');
|
213 |
header('Content-Type: ' . $type );
|
includes/core/class-shortcodes.php
CHANGED
@@ -272,14 +272,11 @@ if ( ! class_exists( 'um\core\Shortcodes' ) ) {
|
|
272 |
|
273 |
$file = um_path . "templates/{$tpl}.php";
|
274 |
$theme_file = get_stylesheet_directory() . "/ultimate-member/templates/{$tpl}.php";
|
275 |
-
|
276 |
-
|
277 |
if ( file_exists( $theme_file ) ) {
|
278 |
$file = $theme_file;
|
279 |
}
|
280 |
|
281 |
if ( file_exists( $file ) ) {
|
282 |
-
|
283 |
include $file;
|
284 |
}
|
285 |
}
|
272 |
|
273 |
$file = um_path . "templates/{$tpl}.php";
|
274 |
$theme_file = get_stylesheet_directory() . "/ultimate-member/templates/{$tpl}.php";
|
|
|
|
|
275 |
if ( file_exists( $theme_file ) ) {
|
276 |
$file = $theme_file;
|
277 |
}
|
278 |
|
279 |
if ( file_exists( $file ) ) {
|
|
|
280 |
include $file;
|
281 |
}
|
282 |
}
|
includes/core/class-user-posts.php
CHANGED
@@ -20,32 +20,109 @@ if ( ! class_exists( 'um\core\User_posts' ) ) {
|
|
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( '
|
24 |
-
add_action( 'um_ajax_load_posts__um_load_comments', array( &$this, 'load_comments' ) );
|
25 |
}
|
26 |
|
27 |
|
28 |
/**
|
29 |
-
*
|
30 |
-
*
|
31 |
-
* @param array $args
|
32 |
*/
|
33 |
-
function
|
34 |
-
$array = explode(',', $args );
|
35 |
-
$post_type = $array[0];
|
36 |
-
$posts_per_page = $array[1];
|
37 |
-
$offset = $array[2];
|
38 |
-
$author = $array[3];
|
39 |
|
40 |
-
$
|
|
|
|
|
|
|
|
|
|
|
|
|
41 |
|
42 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
43 |
|
44 |
-
|
|
|
45 |
|
46 |
-
UM()->shortcodes()->
|
|
|
47 |
}
|
48 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
49 |
/**
|
50 |
* Dynamic load of comments
|
51 |
*
|
@@ -68,22 +145,6 @@ if ( ! class_exists( 'um\core\User_posts' ) ) {
|
|
68 |
}
|
69 |
|
70 |
|
71 |
-
/**
|
72 |
-
* Add posts
|
73 |
-
*/
|
74 |
-
function add_posts() {
|
75 |
-
UM()->shortcodes()->load_template( 'profile/posts' );
|
76 |
-
}
|
77 |
-
|
78 |
-
|
79 |
-
/**
|
80 |
-
* Add comments
|
81 |
-
*/
|
82 |
-
function add_comments() {
|
83 |
-
UM()->shortcodes()->load_template( 'profile/comments' );
|
84 |
-
}
|
85 |
-
|
86 |
-
|
87 |
/**
|
88 |
* Count posts by type
|
89 |
*
|
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 |
|
27 |
/**
|
28 |
+
* Add posts
|
|
|
|
|
29 |
*/
|
30 |
+
function add_posts() {
|
|
|
|
|
|
|
|
|
|
|
31 |
|
32 |
+
$args = array(
|
33 |
+
'post_type' => 'post',
|
34 |
+
'posts_per_page' => 10,
|
35 |
+
'offset' => 0,
|
36 |
+
'author' => um_get_requested_user(),
|
37 |
+
'post_status' => array( 'publish' )
|
38 |
+
);
|
39 |
|
40 |
+
/**
|
41 |
+
* UM hook
|
42 |
+
*
|
43 |
+
* @type filter
|
44 |
+
* @title um_profile_query_make_posts
|
45 |
+
* @description Some changes of WP_Query Posts Tab
|
46 |
+
* @input_vars
|
47 |
+
* [{"var":"$query_posts","type":"WP_Query","desc":"UM Posts Tab query"}]
|
48 |
+
* @change_log
|
49 |
+
* ["Since: 2.0"]
|
50 |
+
* @usage
|
51 |
+
* <?php add_filter( 'um_profile_query_make_posts', 'function_name', 10, 1 ); ?>
|
52 |
+
* @example
|
53 |
+
* <?php
|
54 |
+
* add_filter( 'um_profile_query_make_posts', 'my_profile_query_make_posts', 10, 1 );
|
55 |
+
* function my_profile_query_make_posts( $query_posts ) {
|
56 |
+
* // your code here
|
57 |
+
* return $query_posts;
|
58 |
+
* }
|
59 |
+
* ?>
|
60 |
+
*/
|
61 |
+
$args = apply_filters( 'um_profile_query_make_posts', $args );
|
62 |
+
$posts = get_posts( $args );
|
63 |
|
64 |
+
$count_posts = wp_count_posts();
|
65 |
+
$count_posts = ! empty( $count_posts->publish ) ? $count_posts->publish : 0;
|
66 |
|
67 |
+
UM()->shortcodes()->set_args = array( 'posts' => $posts, 'count_posts' => $count_posts );
|
68 |
+
UM()->shortcodes()->load_template( 'profile/posts' );
|
69 |
}
|
70 |
|
71 |
+
|
72 |
+
/**
|
73 |
+
* Add comments
|
74 |
+
*/
|
75 |
+
function add_comments() {
|
76 |
+
UM()->shortcodes()->load_template( 'profile/comments' );
|
77 |
+
}
|
78 |
+
|
79 |
+
|
80 |
+
/**
|
81 |
+
* Dynamic load of posts
|
82 |
+
*
|
83 |
+
*/
|
84 |
+
function load_posts() {
|
85 |
+
$author = ! empty( $_POST['author'] ) ? $_POST['author'] : get_current_user_id();
|
86 |
+
$page = ! empty( $_POST['page'] ) ? $_POST['page'] : 0;
|
87 |
+
|
88 |
+
$args = array(
|
89 |
+
'post_type' => 'post',
|
90 |
+
'posts_per_page' => 10,
|
91 |
+
'offset' => ( $page - 1 ) * 10,
|
92 |
+
'author' => $author,
|
93 |
+
'post_status' => array( 'publish' )
|
94 |
+
);
|
95 |
+
|
96 |
+
/**
|
97 |
+
* UM hook
|
98 |
+
*
|
99 |
+
* @type filter
|
100 |
+
* @title um_profile_query_make_posts
|
101 |
+
* @description Some changes of WP_Query Posts Tab
|
102 |
+
* @input_vars
|
103 |
+
* [{"var":"$query_posts","type":"WP_Query","desc":"UM Posts Tab query"}]
|
104 |
+
* @change_log
|
105 |
+
* ["Since: 2.0"]
|
106 |
+
* @usage
|
107 |
+
* <?php add_filter( 'um_profile_query_make_posts', 'function_name', 10, 1 ); ?>
|
108 |
+
* @example
|
109 |
+
* <?php
|
110 |
+
* add_filter( 'um_profile_query_make_posts', 'my_profile_query_make_posts', 10, 1 );
|
111 |
+
* function my_profile_query_make_posts( $query_posts ) {
|
112 |
+
* // your code here
|
113 |
+
* return $query_posts;
|
114 |
+
* }
|
115 |
+
* ?>
|
116 |
+
*/
|
117 |
+
$args = apply_filters( 'um_profile_query_make_posts', $args );
|
118 |
+
$posts = get_posts( $args );
|
119 |
+
|
120 |
+
UM()->shortcodes()->set_args = array( 'posts' => $posts );
|
121 |
+
UM()->shortcodes()->load_template( 'profile/posts' );
|
122 |
+
wp_die();
|
123 |
+
}
|
124 |
+
|
125 |
+
|
126 |
/**
|
127 |
* Dynamic load of comments
|
128 |
*
|
145 |
}
|
146 |
|
147 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
148 |
/**
|
149 |
* Count posts by type
|
150 |
*
|
includes/core/class-user.php
CHANGED
@@ -1214,12 +1214,14 @@ if ( ! class_exists( 'um\core\User' ) ) {
|
|
1214 |
?>
|
1215 |
*
|
1216 |
*/
|
1217 |
-
function approve() {
|
1218 |
$user_id = um_user('ID');
|
1219 |
|
1220 |
-
|
1221 |
-
|
1222 |
-
|
|
|
|
|
1223 |
}
|
1224 |
|
1225 |
delete_option( "um_cache_userdata_{$user_id}" );
|
1214 |
?>
|
1215 |
*
|
1216 |
*/
|
1217 |
+
function approve( $repeat = true ) {
|
1218 |
$user_id = um_user('ID');
|
1219 |
|
1220 |
+
if ( ! $repeat ) {
|
1221 |
+
$status = get_user_meta( $user_id, 'account_status', true );
|
1222 |
+
if ( 'approved' === $status ) {
|
1223 |
+
return;
|
1224 |
+
}
|
1225 |
}
|
1226 |
|
1227 |
delete_option( "um_cache_userdata_{$user_id}" );
|
includes/core/um-actions-login.php
CHANGED
@@ -47,16 +47,18 @@ function um_submit_form_errors_hook_login( $args ) {
|
|
47 |
$user_name = $args['user_login'];
|
48 |
}
|
49 |
|
50 |
-
if ( !username_exists( $user_name ) ) {
|
51 |
if ( $is_email ) {
|
52 |
UM()->form()->add_error( $field, __(' Sorry, we can\'t find an account with that email address','ultimate-member') );
|
53 |
} else {
|
54 |
UM()->form()->add_error( $field, __(' Sorry, we can\'t find an account with that username','ultimate-member') );
|
55 |
}
|
56 |
} else {
|
57 |
-
|
58 |
-
|
59 |
-
|
|
|
|
|
60 |
}
|
61 |
|
62 |
$user = get_user_by( 'login', $user_name );
|
@@ -100,26 +102,29 @@ add_action( 'um_submit_form_errors_hook_login', 'um_submit_form_errors_hook_logi
|
|
100 |
*/
|
101 |
function um_display_login_errors( $args ) {
|
102 |
$error = '';
|
103 |
-
|
104 |
-
if( UM()->form()->count_errors() > 0 ) {
|
105 |
$errors = UM()->form()->errors;
|
106 |
// hook for other plugins to display error
|
107 |
$error_keys = array_keys( $errors );
|
108 |
-
|
109 |
|
110 |
-
|
111 |
-
|
112 |
-
|
113 |
|
114 |
-
|
115 |
-
|
116 |
-
|
117 |
-
|
118 |
-
|
|
|
119 |
}
|
|
|
120 |
}
|
121 |
}
|
122 |
}
|
|
|
123 |
add_action( 'um_before_login_fields', 'um_display_login_errors' );
|
124 |
|
125 |
|
@@ -421,12 +426,12 @@ function um_add_submit_button_to_login( $args ) {
|
|
421 |
|
422 |
<?php if ( isset($args['secondary_btn']) && $args['secondary_btn'] != 0 ) { ?>
|
423 |
|
424 |
-
<div class="um-left um-half"><input type="submit" value="<?php
|
425 |
-
<div class="um-right um-half"><a href="<?php echo $secondary_btn_url; ?>" class="um-button um-alt"><?php
|
426 |
|
427 |
<?php } else { ?>
|
428 |
|
429 |
-
<div class="um-center"><input type="submit" value="<?php
|
430 |
|
431 |
<?php } ?>
|
432 |
|
47 |
$user_name = $args['user_login'];
|
48 |
}
|
49 |
|
50 |
+
/*if ( !username_exists( $user_name ) ) {
|
51 |
if ( $is_email ) {
|
52 |
UM()->form()->add_error( $field, __(' Sorry, we can\'t find an account with that email address','ultimate-member') );
|
53 |
} else {
|
54 |
UM()->form()->add_error( $field, __(' Sorry, we can\'t find an account with that username','ultimate-member') );
|
55 |
}
|
56 |
} else {
|
57 |
+
|
58 |
+
}*/
|
59 |
+
|
60 |
+
if ( $args['user_password'] == '' ) {
|
61 |
+
UM()->form()->add_error( 'user_password', __('Please enter your password','ultimate-member') );
|
62 |
}
|
63 |
|
64 |
$user = get_user_by( 'login', $user_name );
|
102 |
*/
|
103 |
function um_display_login_errors( $args ) {
|
104 |
$error = '';
|
105 |
+
|
106 |
+
if ( UM()->form()->count_errors() > 0 ) {
|
107 |
$errors = UM()->form()->errors;
|
108 |
// hook for other plugins to display error
|
109 |
$error_keys = array_keys( $errors );
|
110 |
+
}
|
111 |
|
112 |
+
if ( isset( $args['custom_fields'] ) ) {
|
113 |
+
$custom_fields = $args['custom_fields'];
|
114 |
+
}
|
115 |
|
116 |
+
if ( ! empty( $error_keys ) && ! empty( $custom_fields ) ) {
|
117 |
+
foreach ( $error_keys as $error ) {
|
118 |
+
if ( trim( $error ) && ! isset( $custom_fields[ $error ] ) && ! empty( $errors[ $error ] ) ) {
|
119 |
+
$error_message = apply_filters( 'login_errors', $errors[ $error ], $error );
|
120 |
+
if ( empty( $error_message ) ) {
|
121 |
+
return;
|
122 |
}
|
123 |
+
echo '<p class="um-notice err um-error-code-' . esc_attr( $error ) . '"><i class="um-icon-ios-close-empty" onclick="jQuery(this).parent().fadeOut();"></i>' . $error_message . '</p>';
|
124 |
}
|
125 |
}
|
126 |
}
|
127 |
+
}
|
128 |
add_action( 'um_before_login_fields', 'um_display_login_errors' );
|
129 |
|
130 |
|
426 |
|
427 |
<?php if ( isset($args['secondary_btn']) && $args['secondary_btn'] != 0 ) { ?>
|
428 |
|
429 |
+
<div class="um-left um-half"><input type="submit" value="<?php esc_attr_e( $primary_btn_word, 'ultimate-member' ); ?>" class="um-button" id="um-submit-btn" /></div>
|
430 |
+
<div class="um-right um-half"><a href="<?php echo esc_attr( $secondary_btn_url ); ?>" class="um-button um-alt"><?php esc_attr_e( $secondary_btn_word,'ultimate-member'); ?></a></div>
|
431 |
|
432 |
<?php } else { ?>
|
433 |
|
434 |
+
<div class="um-center"><input type="submit" value="<?php esc_attr_e( $args['primary_btn_word'],'ultimate-member' ); ?>" class="um-button" id="um-submit-btn" /></div>
|
435 |
|
436 |
<?php } ?>
|
437 |
|
includes/core/um-actions-profile.php
CHANGED
@@ -1195,15 +1195,15 @@ function um_add_submit_button_to_profile( $args ) {
|
|
1195 |
|
1196 |
<?php if (isset( $args['secondary_btn'] ) && $args['secondary_btn'] != 0) { ?>
|
1197 |
|
1198 |
-
<div class="um-left um-half"><input type="submit" value="<?php
|
1199 |
class="um-button"/></div>
|
1200 |
-
<div class="um-right um-half"><a href="<?php echo um_edit_my_profile_cancel_uri(); ?>"
|
1201 |
-
class="um-button um-alt"><?php
|
1202 |
</div>
|
1203 |
|
1204 |
<?php } else { ?>
|
1205 |
|
1206 |
-
<div class="um-center"><input type="submit" value="<?php
|
1207 |
class="um-button"/></div>
|
1208 |
|
1209 |
<?php } ?>
|
1195 |
|
1196 |
<?php if (isset( $args['secondary_btn'] ) && $args['secondary_btn'] != 0) { ?>
|
1197 |
|
1198 |
+
<div class="um-left um-half"><input type="submit" value="<?php esc_attr_e( $args['primary_btn_word'], 'ultimate-member' ); ?>"
|
1199 |
class="um-button"/></div>
|
1200 |
+
<div class="um-right um-half"><a href="<?php echo esc_attr( um_edit_my_profile_cancel_uri() ); ?>"
|
1201 |
+
class="um-button um-alt"><?php esc_attr_e( $args['secondary_btn_word'], 'ultimate-member' ); ?></a>
|
1202 |
</div>
|
1203 |
|
1204 |
<?php } else { ?>
|
1205 |
|
1206 |
+
<div class="um-center"><input type="submit" value="<?php esc_attr_e( $args['primary_btn_word'], 'ultimate-member' ); ?>"
|
1207 |
class="um-button"/></div>
|
1208 |
|
1209 |
<?php } ?>
|
includes/core/um-actions-register.php
CHANGED
@@ -585,12 +585,12 @@ function um_add_submit_button_to_register( $args ) {
|
|
585 |
|
586 |
<?php if ( isset($args['secondary_btn']) && $args['secondary_btn'] != 0 ) { ?>
|
587 |
|
588 |
-
<div class="um-left um-half"><input type="submit" value="<?php
|
589 |
-
<div class="um-right um-half"><a href="<?php echo $secondary_btn_url; ?>" class="um-button um-alt"><?php
|
590 |
|
591 |
<?php } else { ?>
|
592 |
|
593 |
-
<div class="um-center"><input type="submit" value="<?php
|
594 |
|
595 |
<?php } ?>
|
596 |
|
585 |
|
586 |
<?php if ( isset($args['secondary_btn']) && $args['secondary_btn'] != 0 ) { ?>
|
587 |
|
588 |
+
<div class="um-left um-half"><input type="submit" value="<?php esc_attr_e( $primary_btn_word,'ultimate-member' ) ?>" class="um-button" id="um-submit-btn" /></div>
|
589 |
+
<div class="um-right um-half"><a href="<?php echo esc_attr( $secondary_btn_url ); ?>" class="um-button um-alt"><?php esc_attr_e( $secondary_btn_word,'ultimate-member'); ?></a></div>
|
590 |
|
591 |
<?php } else { ?>
|
592 |
|
593 |
+
<div class="um-center"><input type="submit" value="<?php esc_attr_e( $primary_btn_word,'ultimate-member' ) ?>" class="um-button" id="um-submit-btn" /></div>
|
594 |
|
595 |
<?php } ?>
|
596 |
|
includes/core/um-filters-fields.php
CHANGED
@@ -226,7 +226,20 @@ function um_profile_field_filter_hook__file( $value, $data ) {
|
|
226 |
$file_type = wp_check_filetype( $value );
|
227 |
$uri = UM()->files()->get_download_link( UM()->fields()->set_id, $data['metakey'], um_user( 'ID' ) );
|
228 |
|
|
|
229 |
if ( ! file_exists( UM()->uploader()->get_upload_base_dir() . um_user( 'ID' ) . DIRECTORY_SEPARATOR . $value ) ) {
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
230 |
$value = __( 'This file has been removed.', 'ultimate-member' );
|
231 |
} else {
|
232 |
$file_info = um_user( $data['metakey'] . "_metadata" );
|
@@ -260,11 +273,24 @@ function um_profile_field_filter_hook__image( $value, $data ) {
|
|
260 |
$uri = UM()->files()->get_download_link( UM()->fields()->set_id, $data['metakey'], um_user( 'ID' ) );
|
261 |
$title = ( isset( $data['title'] ) ) ? $data['title'] : __( 'Untitled photo', 'ultimate-member' );
|
262 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
263 |
// if value is an image tag
|
264 |
if( preg_match( '/\<img.*src=\"([^"]+).*/', $value, $matches ) ) {
|
265 |
$uri = $matches[1];
|
266 |
$value = '<div class="um-photo"><a href="#" class="um-photo-modal" data-src="' . esc_attr( $uri ) . '"><img src="' . esc_attr( $uri ) . '" alt="' . esc_attr( $title ) . '" title="' . esc_attr( $title ) . '" class="" /></a></div>';
|
267 |
-
} else if (
|
268 |
$value = '<div class="um-photo"><a href="#" class="um-photo-modal" data-src="' . esc_attr( $uri ) . '"><img src="' . esc_attr( $uri ) . '" alt="' . esc_attr( $title ) . '" title="' . esc_attr( $title ) . '" class="" /></a></div>';
|
269 |
} else {
|
270 |
$value = '';
|
@@ -637,6 +663,26 @@ function um_profile_field_filter_xss_validation( $value, $data, $type = '' ) {
|
|
637 |
add_filter( 'um_profile_field_filter_hook__','um_profile_field_filter_xss_validation', 10, 3 );
|
638 |
|
639 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
640 |
/**
|
641 |
* add role_select and role_radio to the $post_form
|
642 |
* It is necessary for that if on these fields the conditional logic
|
226 |
$file_type = wp_check_filetype( $value );
|
227 |
$uri = UM()->files()->get_download_link( UM()->fields()->set_id, $data['metakey'], um_user( 'ID' ) );
|
228 |
|
229 |
+
$removed = false;
|
230 |
if ( ! file_exists( UM()->uploader()->get_upload_base_dir() . um_user( 'ID' ) . DIRECTORY_SEPARATOR . $value ) ) {
|
231 |
+
if ( is_multisite() ) {
|
232 |
+
//multisite fix for old customers
|
233 |
+
$file_path = str_replace( DIRECTORY_SEPARATOR . 'sites' . DIRECTORY_SEPARATOR . get_current_blog_id() . DIRECTORY_SEPARATOR, DIRECTORY_SEPARATOR, UM()->uploader()->get_upload_base_dir() . um_user( 'ID' ) . DIRECTORY_SEPARATOR . $value );
|
234 |
+
if ( ! file_exists( $file_path ) ) {
|
235 |
+
$removed = true;
|
236 |
+
}
|
237 |
+
} else {
|
238 |
+
$removed = true;
|
239 |
+
}
|
240 |
+
}
|
241 |
+
|
242 |
+
if ( $removed ) {
|
243 |
$value = __( 'This file has been removed.', 'ultimate-member' );
|
244 |
} else {
|
245 |
$file_info = um_user( $data['metakey'] . "_metadata" );
|
273 |
$uri = UM()->files()->get_download_link( UM()->fields()->set_id, $data['metakey'], um_user( 'ID' ) );
|
274 |
$title = ( isset( $data['title'] ) ) ? $data['title'] : __( 'Untitled photo', 'ultimate-member' );
|
275 |
|
276 |
+
$removed = false;
|
277 |
+
if ( ! file_exists( UM()->uploader()->get_upload_base_dir() . um_user( 'ID' ) . DIRECTORY_SEPARATOR . $value ) ) {
|
278 |
+
if ( is_multisite() ) {
|
279 |
+
//multisite fix for old customers
|
280 |
+
$file_path = str_replace( DIRECTORY_SEPARATOR . 'sites' . DIRECTORY_SEPARATOR . get_current_blog_id() . DIRECTORY_SEPARATOR, DIRECTORY_SEPARATOR, UM()->uploader()->get_upload_base_dir() . um_user( 'ID' ) . DIRECTORY_SEPARATOR . $value );
|
281 |
+
if ( ! file_exists( $file_path ) ) {
|
282 |
+
$removed = true;
|
283 |
+
}
|
284 |
+
} else {
|
285 |
+
$removed = true;
|
286 |
+
}
|
287 |
+
}
|
288 |
+
|
289 |
// if value is an image tag
|
290 |
if( preg_match( '/\<img.*src=\"([^"]+).*/', $value, $matches ) ) {
|
291 |
$uri = $matches[1];
|
292 |
$value = '<div class="um-photo"><a href="#" class="um-photo-modal" data-src="' . esc_attr( $uri ) . '"><img src="' . esc_attr( $uri ) . '" alt="' . esc_attr( $title ) . '" title="' . esc_attr( $title ) . '" class="" /></a></div>';
|
293 |
+
} else if ( ! $removed ) {
|
294 |
$value = '<div class="um-photo"><a href="#" class="um-photo-modal" data-src="' . esc_attr( $uri ) . '"><img src="' . esc_attr( $uri ) . '" alt="' . esc_attr( $title ) . '" title="' . esc_attr( $title ) . '" class="" /></a></div>';
|
295 |
} else {
|
296 |
$value = '';
|
663 |
add_filter( 'um_profile_field_filter_hook__','um_profile_field_filter_xss_validation', 10, 3 );
|
664 |
|
665 |
|
666 |
+
/**
|
667 |
+
* Trim All form POST submitted data
|
668 |
+
*
|
669 |
+
* @param $post_form
|
670 |
+
* @param $mode
|
671 |
+
*
|
672 |
+
* @return mixed
|
673 |
+
*/
|
674 |
+
function um_submit_form_data_trim_fields( $post_form, $mode ) {
|
675 |
+
foreach ( $post_form as $key => $field ) {
|
676 |
+
if ( is_string( $field ) ) {
|
677 |
+
$post_form[ $key ] = trim( $field );
|
678 |
+
}
|
679 |
+
}
|
680 |
+
|
681 |
+
return $post_form;
|
682 |
+
}
|
683 |
+
add_filter( 'um_submit_form_data', 'um_submit_form_data_trim_fields', 9, 2 );
|
684 |
+
|
685 |
+
|
686 |
/**
|
687 |
* add role_select and role_radio to the $post_form
|
688 |
* It is necessary for that if on these fields the conditional logic
|
includes/um-short-functions.php
CHANGED
@@ -556,10 +556,19 @@ function um_user_submitted_registration( $style = false ) {
|
|
556 |
if ( UM()->fields()->get_field_type( $k ) == 'image' || UM()->fields()->get_field_type( $k ) == 'file' ) {
|
557 |
$file = basename( $v );
|
558 |
$filedata = get_user_meta( um_user( 'ID' ), $k . "_metadata", true );
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
559 |
if ( ! empty( $filedata['original_name'] ) ) {
|
560 |
-
$v = '<a href="' . esc_attr(
|
561 |
} else {
|
562 |
-
$v =
|
563 |
}
|
564 |
}
|
565 |
|
@@ -1659,8 +1668,27 @@ function um_closest_num( $array, $number ) {
|
|
1659 |
*/
|
1660 |
function um_get_cover_uri( $image, $attrs ) {
|
1661 |
$uri = false;
|
|
|
1662 |
$ext = '.' . pathinfo( $image, PATHINFO_EXTENSION );
|
1663 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1664 |
if ( file_exists( UM()->uploader()->get_upload_base_dir() . um_user( 'ID' ) . DIRECTORY_SEPARATOR . "cover_photo{$ext}" ) ) {
|
1665 |
$uri = UM()->uploader()->get_upload_base_url() . um_user( 'ID' ) . "/cover_photo{$ext}?" . current_time( 'timestamp' );
|
1666 |
}
|
@@ -1670,6 +1698,11 @@ function um_get_cover_uri( $image, $attrs ) {
|
|
1670 |
} elseif ( file_exists( UM()->uploader()->get_upload_base_dir() . um_user( 'ID' ) . DIRECTORY_SEPARATOR . "cover_photo-{$attrs}{$ext}" ) ) {
|
1671 |
$uri = UM()->uploader()->get_upload_base_url() . um_user( 'ID' ) . "/cover_photo-{$attrs}{$ext}?" . current_time( 'timestamp' );
|
1672 |
}
|
|
|
|
|
|
|
|
|
|
|
1673 |
return $uri;
|
1674 |
}
|
1675 |
|
@@ -1699,8 +1732,64 @@ function um_get_avatar_url( $get_avatar ) {
|
|
1699 |
*/
|
1700 |
function um_get_avatar_uri( $image, $attrs ) {
|
1701 |
$uri = false;
|
|
|
1702 |
$find = false;
|
1703 |
$ext = '.' . pathinfo( $image, PATHINFO_EXTENSION );
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1704 |
/**
|
1705 |
* UM hook
|
1706 |
*
|
@@ -1723,30 +1812,10 @@ function um_get_avatar_uri( $image, $attrs ) {
|
|
1723 |
* ?>
|
1724 |
*/
|
1725 |
$cache_time = apply_filters( 'um_filter_avatar_cache_time', current_time( 'timestamp' ), um_user( 'ID' ) );
|
1726 |
-
if ( $attrs == 'original' && file_exists( UM()->uploader()->get_upload_base_dir() . um_user( 'ID' ) . DIRECTORY_SEPARATOR . "profile_photo{$ext}" ) ) {
|
1727 |
-
$uri = UM()->uploader()->get_upload_base_url() . um_user( 'ID' ) . "/profile_photo{$ext}";
|
1728 |
-
} elseif ( file_exists( UM()->uploader()->get_upload_base_dir() . um_user( 'ID' ) . DIRECTORY_SEPARATOR . "profile_photo-{$attrs}x{$attrs}{$ext}" ) ) {
|
1729 |
-
$uri = UM()->uploader()->get_upload_base_url() . um_user( 'ID' ) . "/profile_photo-{$attrs}x{$attrs}{$ext}";
|
1730 |
-
} elseif ( file_exists( UM()->uploader()->get_upload_base_dir() . um_user( 'ID' ) . DIRECTORY_SEPARATOR . "profile_photo-{$attrs}{$ext}" ) ) {
|
1731 |
-
$uri = UM()->uploader()->get_upload_base_url() . um_user( 'ID' ) . "/profile_photo-{$attrs}{$ext}";
|
1732 |
-
} else {
|
1733 |
-
$sizes = UM()->options()->get( 'photo_thumb_sizes' );
|
1734 |
-
if ( is_array( $sizes ) ) {
|
1735 |
-
$find = um_closest_num( $sizes, $attrs );
|
1736 |
-
}
|
1737 |
-
|
1738 |
-
if ( file_exists( UM()->uploader()->get_upload_base_dir() . um_user( 'ID' ) . DIRECTORY_SEPARATOR . "profile_photo-{$find}x{$find}{$ext}" ) ) {
|
1739 |
-
$uri = UM()->uploader()->get_upload_base_url() . um_user( 'ID' ) . "/profile_photo-{$find}x{$find}{$ext}";
|
1740 |
-
} elseif ( file_exists( UM()->uploader()->get_upload_base_dir() . um_user( 'ID' ) . DIRECTORY_SEPARATOR . "profile_photo-{$find}{$ext}" ) ) {
|
1741 |
-
$uri = UM()->uploader()->get_upload_base_url() . um_user( 'ID' ) . "/profile_photo-{$find}{$ext}";
|
1742 |
-
} elseif ( file_exists( UM()->uploader()->get_upload_base_dir() . um_user( 'ID' ) . DIRECTORY_SEPARATOR . "profile_photo{$ext}" ) ) {
|
1743 |
-
$uri = UM()->uploader()->get_upload_base_url() . um_user( 'ID' ) . "/profile_photo{$ext}";
|
1744 |
-
}
|
1745 |
-
}
|
1746 |
-
|
1747 |
if ( ! empty( $cache_time ) ) {
|
1748 |
$uri .= "?{$cache_time}";
|
1749 |
}
|
|
|
1750 |
return $uri;
|
1751 |
}
|
1752 |
|
556 |
if ( UM()->fields()->get_field_type( $k ) == 'image' || UM()->fields()->get_field_type( $k ) == 'file' ) {
|
557 |
$file = basename( $v );
|
558 |
$filedata = get_user_meta( um_user( 'ID' ), $k . "_metadata", true );
|
559 |
+
|
560 |
+
$baseurl = UM()->uploader()->get_upload_base_url();
|
561 |
+
if ( ! file_exists( UM()->uploader()->get_upload_base_dir() . um_user( 'ID' ) . DIRECTORY_SEPARATOR . $file ) ) {
|
562 |
+
if ( is_multisite() ) {
|
563 |
+
//multisite fix for old customers
|
564 |
+
$baseurl = str_replace( '/sites/' . get_current_blog_id() . '/', '/', $baseurl );
|
565 |
+
}
|
566 |
+
}
|
567 |
+
|
568 |
if ( ! empty( $filedata['original_name'] ) ) {
|
569 |
+
$v = '<a href="' . esc_attr( $baseurl . um_user( 'ID' ) . '/' . $file ) . '">' . $filedata['original_name'] . '</a>';
|
570 |
} else {
|
571 |
+
$v = $baseurl . um_user( 'ID' ) . '/' . $file;
|
572 |
}
|
573 |
}
|
574 |
|
1668 |
*/
|
1669 |
function um_get_cover_uri( $image, $attrs ) {
|
1670 |
$uri = false;
|
1671 |
+
$uri_common = false;
|
1672 |
$ext = '.' . pathinfo( $image, PATHINFO_EXTENSION );
|
1673 |
|
1674 |
+
if ( is_multisite() ) {
|
1675 |
+
//multisite fix for old customers
|
1676 |
+
$multisite_fix_dir = UM()->uploader()->get_upload_base_dir();
|
1677 |
+
$multisite_fix_url = UM()->uploader()->get_upload_base_url();
|
1678 |
+
$multisite_fix_dir = str_replace( DIRECTORY_SEPARATOR . 'sites' . DIRECTORY_SEPARATOR . get_current_blog_id() . DIRECTORY_SEPARATOR, DIRECTORY_SEPARATOR, $multisite_fix_dir );
|
1679 |
+
$multisite_fix_url = str_replace( '/sites/' . get_current_blog_id() . '/', '/', $multisite_fix_url );
|
1680 |
+
|
1681 |
+
if ( file_exists( $multisite_fix_dir . um_user( 'ID' ) . DIRECTORY_SEPARATOR . "cover_photo{$ext}" ) ) {
|
1682 |
+
$uri_common = $multisite_fix_url . um_user( 'ID' ) . "/cover_photo{$ext}?" . current_time( 'timestamp' );
|
1683 |
+
}
|
1684 |
+
|
1685 |
+
if ( file_exists( $multisite_fix_dir . um_user( 'ID' ) . DIRECTORY_SEPARATOR . "cover_photo-{$attrs}x{$attrs}{$ext}" ) ) {
|
1686 |
+
$uri_common = $multisite_fix_url . um_user( 'ID' ) . "/cover_photo-{$attrs}x{$attrs}{$ext}?". current_time( 'timestamp' );
|
1687 |
+
} elseif ( file_exists( $multisite_fix_dir . um_user( 'ID' ) . DIRECTORY_SEPARATOR . "cover_photo-{$attrs}{$ext}" ) ) {
|
1688 |
+
$uri_common = $multisite_fix_url . um_user( 'ID' ) . "/cover_photo-{$attrs}{$ext}?" . current_time( 'timestamp' );
|
1689 |
+
}
|
1690 |
+
}
|
1691 |
+
|
1692 |
if ( file_exists( UM()->uploader()->get_upload_base_dir() . um_user( 'ID' ) . DIRECTORY_SEPARATOR . "cover_photo{$ext}" ) ) {
|
1693 |
$uri = UM()->uploader()->get_upload_base_url() . um_user( 'ID' ) . "/cover_photo{$ext}?" . current_time( 'timestamp' );
|
1694 |
}
|
1698 |
} elseif ( file_exists( UM()->uploader()->get_upload_base_dir() . um_user( 'ID' ) . DIRECTORY_SEPARATOR . "cover_photo-{$attrs}{$ext}" ) ) {
|
1699 |
$uri = UM()->uploader()->get_upload_base_url() . um_user( 'ID' ) . "/cover_photo-{$attrs}{$ext}?" . current_time( 'timestamp' );
|
1700 |
}
|
1701 |
+
|
1702 |
+
if ( ! empty( $uri_common ) && empty( $uri ) ) {
|
1703 |
+
$uri = $uri_common;
|
1704 |
+
}
|
1705 |
+
|
1706 |
return $uri;
|
1707 |
}
|
1708 |
|
1732 |
*/
|
1733 |
function um_get_avatar_uri( $image, $attrs ) {
|
1734 |
$uri = false;
|
1735 |
+
$uri_common = false;
|
1736 |
$find = false;
|
1737 |
$ext = '.' . pathinfo( $image, PATHINFO_EXTENSION );
|
1738 |
+
|
1739 |
+
if ( is_multisite() ) {
|
1740 |
+
//multisite fix for old customers
|
1741 |
+
$multisite_fix_dir = UM()->uploader()->get_upload_base_dir();
|
1742 |
+
$multisite_fix_url = UM()->uploader()->get_upload_base_url();
|
1743 |
+
$multisite_fix_dir = str_replace( DIRECTORY_SEPARATOR . 'sites' . DIRECTORY_SEPARATOR . get_current_blog_id() . DIRECTORY_SEPARATOR, DIRECTORY_SEPARATOR, $multisite_fix_dir );
|
1744 |
+
$multisite_fix_url = str_replace( '/sites/' . get_current_blog_id() . '/', '/', $multisite_fix_url );
|
1745 |
+
|
1746 |
+
if ( $attrs == 'original' && file_exists( $multisite_fix_dir . um_user( 'ID' ) . DIRECTORY_SEPARATOR . "profile_photo{$ext}" ) ) {
|
1747 |
+
$uri_common = $multisite_fix_url . um_user( 'ID' ) . "/profile_photo{$ext}";
|
1748 |
+
} elseif ( file_exists( $multisite_fix_dir . um_user( 'ID' ) . DIRECTORY_SEPARATOR . "profile_photo-{$attrs}x{$attrs}{$ext}" ) ) {
|
1749 |
+
$uri_common = $multisite_fix_url . um_user( 'ID' ) . "/profile_photo-{$attrs}x{$attrs}{$ext}";
|
1750 |
+
} elseif ( file_exists( $multisite_fix_dir . um_user( 'ID' ) . DIRECTORY_SEPARATOR . "profile_photo-{$attrs}{$ext}" ) ) {
|
1751 |
+
$uri_common = $multisite_fix_url . um_user( 'ID' ) . "/profile_photo-{$attrs}{$ext}";
|
1752 |
+
} else {
|
1753 |
+
$sizes = UM()->options()->get( 'photo_thumb_sizes' );
|
1754 |
+
if ( is_array( $sizes ) ) {
|
1755 |
+
$find = um_closest_num( $sizes, $attrs );
|
1756 |
+
}
|
1757 |
+
|
1758 |
+
if ( file_exists( $multisite_fix_dir . um_user( 'ID' ) . DIRECTORY_SEPARATOR . "profile_photo-{$find}x{$find}{$ext}" ) ) {
|
1759 |
+
$uri_common = $multisite_fix_url . um_user( 'ID' ) . "/profile_photo-{$find}x{$find}{$ext}";
|
1760 |
+
} elseif ( file_exists( $multisite_fix_dir . um_user( 'ID' ) . DIRECTORY_SEPARATOR . "profile_photo-{$find}{$ext}" ) ) {
|
1761 |
+
$uri_common = $multisite_fix_url . um_user( 'ID' ) . "/profile_photo-{$find}{$ext}";
|
1762 |
+
} elseif ( file_exists( $multisite_fix_dir . um_user( 'ID' ) . DIRECTORY_SEPARATOR . "profile_photo{$ext}" ) ) {
|
1763 |
+
$uri_common = $multisite_fix_url . um_user( 'ID' ) . "/profile_photo{$ext}";
|
1764 |
+
}
|
1765 |
+
}
|
1766 |
+
}
|
1767 |
+
|
1768 |
+
if ( $attrs == 'original' && file_exists( UM()->uploader()->get_upload_base_dir() . um_user( 'ID' ) . DIRECTORY_SEPARATOR . "profile_photo{$ext}" ) ) {
|
1769 |
+
$uri = UM()->uploader()->get_upload_base_url() . um_user( 'ID' ) . "/profile_photo{$ext}";
|
1770 |
+
} elseif ( file_exists( UM()->uploader()->get_upload_base_dir() . um_user( 'ID' ) . DIRECTORY_SEPARATOR . "profile_photo-{$attrs}x{$attrs}{$ext}" ) ) {
|
1771 |
+
$uri = UM()->uploader()->get_upload_base_url() . um_user( 'ID' ) . "/profile_photo-{$attrs}x{$attrs}{$ext}";
|
1772 |
+
} elseif ( file_exists( UM()->uploader()->get_upload_base_dir() . um_user( 'ID' ) . DIRECTORY_SEPARATOR . "profile_photo-{$attrs}{$ext}" ) ) {
|
1773 |
+
$uri = UM()->uploader()->get_upload_base_url() . um_user( 'ID' ) . "/profile_photo-{$attrs}{$ext}";
|
1774 |
+
} else {
|
1775 |
+
$sizes = UM()->options()->get( 'photo_thumb_sizes' );
|
1776 |
+
if ( is_array( $sizes ) ) {
|
1777 |
+
$find = um_closest_num( $sizes, $attrs );
|
1778 |
+
}
|
1779 |
+
|
1780 |
+
if ( file_exists( UM()->uploader()->get_upload_base_dir() . um_user( 'ID' ) . DIRECTORY_SEPARATOR . "profile_photo-{$find}x{$find}{$ext}" ) ) {
|
1781 |
+
$uri = UM()->uploader()->get_upload_base_url() . um_user( 'ID' ) . "/profile_photo-{$find}x{$find}{$ext}";
|
1782 |
+
} elseif ( file_exists( UM()->uploader()->get_upload_base_dir() . um_user( 'ID' ) . DIRECTORY_SEPARATOR . "profile_photo-{$find}{$ext}" ) ) {
|
1783 |
+
$uri = UM()->uploader()->get_upload_base_url() . um_user( 'ID' ) . "/profile_photo-{$find}{$ext}";
|
1784 |
+
} elseif ( file_exists( UM()->uploader()->get_upload_base_dir() . um_user( 'ID' ) . DIRECTORY_SEPARATOR . "profile_photo{$ext}" ) ) {
|
1785 |
+
$uri = UM()->uploader()->get_upload_base_url() . um_user( 'ID' ) . "/profile_photo{$ext}";
|
1786 |
+
}
|
1787 |
+
}
|
1788 |
+
|
1789 |
+
if ( ! empty( $uri_common ) && empty( $uri ) ) {
|
1790 |
+
$uri = $uri_common;
|
1791 |
+
}
|
1792 |
+
|
1793 |
/**
|
1794 |
* UM hook
|
1795 |
*
|
1812 |
* ?>
|
1813 |
*/
|
1814 |
$cache_time = apply_filters( 'um_filter_avatar_cache_time', current_time( 'timestamp' ), um_user( 'ID' ) );
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1815 |
if ( ! empty( $cache_time ) ) {
|
1816 |
$uri .= "?{$cache_time}";
|
1817 |
}
|
1818 |
+
|
1819 |
return $uri;
|
1820 |
}
|
1821 |
|
languages/ultimate-member-en_US.mo
CHANGED
Binary file
|
languages/ultimate-member-en_US.po
CHANGED
@@ -1,8 +1,8 @@
|
|
1 |
msgid ""
|
2 |
msgstr ""
|
3 |
"Project-Id-Version: Ultimate Member\n"
|
4 |
-
"POT-Creation-Date: 2018-10-
|
5 |
-
"PO-Revision-Date: 2018-10-
|
6 |
"Last-Translator: \n"
|
7 |
"Language-Team: \n"
|
8 |
"Language: en_US\n"
|
@@ -115,7 +115,7 @@ msgstr ""
|
|
115 |
|
116 |
#: includes/admin/core/class-admin-builder.php:609
|
117 |
#: includes/admin/core/class-admin-builder.php:763
|
118 |
-
#: includes/core/class-fields.php:
|
119 |
msgid "Please login as administrator"
|
120 |
msgstr ""
|
121 |
|
@@ -3526,7 +3526,7 @@ msgstr ""
|
|
3526 |
#: includes/admin/templates/modal/dynamic_new_group.php:14
|
3527 |
#: includes/admin/templates/modal/fonticons.php:11
|
3528 |
#: includes/admin/templates/role/publish.php:24
|
3529 |
-
#: includes/core/class-fields.php:2272 includes/core/class-fields.php:
|
3530 |
#: includes/core/um-actions-profile.php:554
|
3531 |
#: includes/core/um-actions-profile.php:693
|
3532 |
#: includes/core/um-actions-profile.php:726
|
@@ -4165,7 +4165,7 @@ msgstr ""
|
|
4165 |
msgid "You must add a shortcode to the content area"
|
4166 |
msgstr ""
|
4167 |
|
4168 |
-
#: includes/core/class-builtin.php:663 includes/core/class-user.php:
|
4169 |
msgid "Only me"
|
4170 |
msgstr ""
|
4171 |
|
@@ -6294,7 +6294,7 @@ msgstr ""
|
|
6294 |
msgid "Change photo"
|
6295 |
msgstr ""
|
6296 |
|
6297 |
-
#: includes/core/class-fields.php:2271 includes/core/class-fields.php:
|
6298 |
msgid "Processing..."
|
6299 |
msgstr ""
|
6300 |
|
@@ -6302,58 +6302,58 @@ msgstr ""
|
|
6302 |
msgid "Upload File"
|
6303 |
msgstr ""
|
6304 |
|
6305 |
-
#: includes/core/class-fields.php:
|
6306 |
msgid "This file has been removed."
|
6307 |
msgstr ""
|
6308 |
|
6309 |
-
#: includes/core/class-fields.php:
|
6310 |
msgid "Change file"
|
6311 |
msgstr ""
|
6312 |
|
6313 |
-
#: includes/core/class-fields.php:
|
6314 |
msgid "Save"
|
6315 |
msgstr ""
|
6316 |
|
6317 |
-
#: includes/core/class-fields.php:
|
6318 |
#, php-format
|
6319 |
msgid ""
|
6320 |
"Your profile is looking a little empty. Why not <a href=\"%s\">add</a> some "
|
6321 |
"information!"
|
6322 |
msgstr ""
|
6323 |
|
6324 |
-
#: includes/core/class-fields.php:
|
6325 |
msgid "This user has not added any information to their profile yet."
|
6326 |
msgstr ""
|
6327 |
|
6328 |
-
#: includes/core/class-files.php:
|
6329 |
msgid "Invalid parameters"
|
6330 |
msgstr ""
|
6331 |
|
6332 |
-
#: includes/core/class-files.php:
|
6333 |
msgid "Invalid coordinates"
|
6334 |
msgstr ""
|
6335 |
|
6336 |
-
#: includes/core/class-files.php:
|
6337 |
msgid "Invalid file ownership"
|
6338 |
msgstr ""
|
6339 |
|
6340 |
-
#: includes/core/class-files.php:
|
6341 |
msgid "Invalid nonce"
|
6342 |
msgstr ""
|
6343 |
|
6344 |
-
#: includes/core/class-files.php:
|
6345 |
msgid "A theme or plugin compatibility issue"
|
6346 |
msgstr ""
|
6347 |
|
6348 |
-
#: includes/core/class-files.php:
|
6349 |
msgid "Ultimate Member: Not a valid temp file"
|
6350 |
msgstr ""
|
6351 |
|
6352 |
-
#: includes/core/class-files.php:
|
6353 |
msgid "Invalid user ID: "
|
6354 |
msgstr ""
|
6355 |
|
6356 |
-
#: includes/core/class-files.php:
|
6357 |
msgid "Unauthorized to do this attempt."
|
6358 |
msgstr ""
|
6359 |
|
@@ -6513,17 +6513,17 @@ msgstr ""
|
|
6513 |
msgid "Wrong nonce"
|
6514 |
msgstr ""
|
6515 |
|
6516 |
-
#: includes/core/class-shortcodes.php:
|
6517 |
msgid ""
|
6518 |
"This content has been restricted to logged in users only. Please <a href="
|
6519 |
"\"{login_referrer}\">login</a> to view this content."
|
6520 |
msgstr ""
|
6521 |
|
6522 |
-
#: includes/core/class-shortcodes.php:
|
6523 |
msgid "You are already registered"
|
6524 |
msgstr ""
|
6525 |
|
6526 |
-
#: includes/core/class-shortcodes.php:
|
6527 |
msgid "Default Template"
|
6528 |
msgstr ""
|
6529 |
|
@@ -6778,31 +6778,23 @@ msgstr ""
|
|
6778 |
msgid "Please enter your email"
|
6779 |
msgstr ""
|
6780 |
|
6781 |
-
#: includes/core/um-actions-login.php:
|
6782 |
-
msgid " Sorry, we can't find an account with that email address"
|
6783 |
-
msgstr ""
|
6784 |
-
|
6785 |
-
#: includes/core/um-actions-login.php:54
|
6786 |
-
msgid " Sorry, we can't find an account with that username"
|
6787 |
-
msgstr ""
|
6788 |
-
|
6789 |
-
#: includes/core/um-actions-login.php:58
|
6790 |
msgid "Please enter your password"
|
6791 |
msgstr ""
|
6792 |
|
6793 |
-
#: includes/core/um-actions-login.php:
|
6794 |
msgid "Password is incorrect. Please try again."
|
6795 |
msgstr ""
|
6796 |
|
6797 |
-
#: includes/core/um-actions-login.php:
|
6798 |
msgid "This action has been prevented for security measures."
|
6799 |
msgstr ""
|
6800 |
|
6801 |
-
#: includes/core/um-actions-login.php:
|
6802 |
msgid "Keep me signed in"
|
6803 |
msgstr ""
|
6804 |
|
6805 |
-
#: includes/core/um-actions-login.php:
|
6806 |
msgid "Forgot your password?"
|
6807 |
msgstr ""
|
6808 |
|
@@ -6952,7 +6944,7 @@ msgstr ""
|
|
6952 |
msgid "Last login: %s"
|
6953 |
msgstr ""
|
6954 |
|
6955 |
-
#: includes/core/um-filters-fields.php:
|
6956 |
msgid "Untitled photo"
|
6957 |
msgstr ""
|
6958 |
|
@@ -6977,11 +6969,11 @@ msgstr ""
|
|
6977 |
msgid "Login as this user"
|
6978 |
msgstr ""
|
6979 |
|
6980 |
-
#: includes/um-short-functions.php:
|
6981 |
msgid "date submitted"
|
6982 |
msgstr ""
|
6983 |
|
6984 |
-
#: includes/um-short-functions.php:
|
6985 |
msgid "(empty)"
|
6986 |
msgstr ""
|
6987 |
|
@@ -7051,37 +7043,37 @@ msgstr ""
|
|
7051 |
msgid "This user has not made any comments."
|
7052 |
msgstr ""
|
7053 |
|
7054 |
-
#: templates/profile/posts-single.php:
|
7055 |
#, php-format
|
7056 |
msgid "%s ago"
|
7057 |
msgstr ""
|
7058 |
|
7059 |
-
#: templates/profile/posts-single.php:
|
7060 |
msgid "in"
|
7061 |
msgstr ""
|
7062 |
|
7063 |
-
#: templates/profile/posts-single.php:
|
7064 |
msgid "no comments"
|
7065 |
msgstr ""
|
7066 |
|
7067 |
-
#: templates/profile/posts-single.php:
|
7068 |
-
|
|
|
7069 |
msgstr ""
|
7070 |
|
7071 |
-
#: templates/profile/posts-single.php:
|
7072 |
-
|
7073 |
-
msgid "% comments"
|
7074 |
msgstr ""
|
7075 |
|
7076 |
-
#: templates/profile/posts
|
7077 |
msgid "load more posts"
|
7078 |
msgstr ""
|
7079 |
|
7080 |
-
#: templates/profile/posts.php:
|
7081 |
msgid "You have not created any posts."
|
7082 |
msgstr ""
|
7083 |
|
7084 |
-
#: templates/profile/posts.php:
|
7085 |
msgid "This user has not created any posts."
|
7086 |
msgstr ""
|
7087 |
|
1 |
msgid ""
|
2 |
msgstr ""
|
3 |
"Project-Id-Version: Ultimate Member\n"
|
4 |
+
"POT-Creation-Date: 2018-10-08 23:32+0300\n"
|
5 |
+
"PO-Revision-Date: 2018-10-08 23:32+0300\n"
|
6 |
"Last-Translator: \n"
|
7 |
"Language-Team: \n"
|
8 |
"Language: en_US\n"
|
115 |
|
116 |
#: includes/admin/core/class-admin-builder.php:609
|
117 |
#: includes/admin/core/class-admin-builder.php:763
|
118 |
+
#: includes/core/class-fields.php:4033
|
119 |
msgid "Please login as administrator"
|
120 |
msgstr ""
|
121 |
|
3526 |
#: includes/admin/templates/modal/dynamic_new_group.php:14
|
3527 |
#: includes/admin/templates/modal/fonticons.php:11
|
3528 |
#: includes/admin/templates/role/publish.php:24
|
3529 |
+
#: includes/core/class-fields.php:2272 includes/core/class-fields.php:2369
|
3530 |
#: includes/core/um-actions-profile.php:554
|
3531 |
#: includes/core/um-actions-profile.php:693
|
3532 |
#: includes/core/um-actions-profile.php:726
|
4165 |
msgid "You must add a shortcode to the content area"
|
4166 |
msgstr ""
|
4167 |
|
4168 |
+
#: includes/core/class-builtin.php:663 includes/core/class-user.php:1538
|
4169 |
msgid "Only me"
|
4170 |
msgstr ""
|
4171 |
|
6294 |
msgid "Change photo"
|
6295 |
msgstr ""
|
6296 |
|
6297 |
+
#: includes/core/class-fields.php:2271 includes/core/class-fields.php:2368
|
6298 |
msgid "Processing..."
|
6299 |
msgstr ""
|
6300 |
|
6302 |
msgid "Upload File"
|
6303 |
msgstr ""
|
6304 |
|
6305 |
+
#: includes/core/class-fields.php:2335 includes/core/um-filters-fields.php:243
|
6306 |
msgid "This file has been removed."
|
6307 |
msgstr ""
|
6308 |
|
6309 |
+
#: includes/core/class-fields.php:2338 includes/core/class-fields.php:2368
|
6310 |
msgid "Change file"
|
6311 |
msgstr ""
|
6312 |
|
6313 |
+
#: includes/core/class-fields.php:2368
|
6314 |
msgid "Save"
|
6315 |
msgstr ""
|
6316 |
|
6317 |
+
#: includes/core/class-fields.php:3791
|
6318 |
#, php-format
|
6319 |
msgid ""
|
6320 |
"Your profile is looking a little empty. Why not <a href=\"%s\">add</a> some "
|
6321 |
"information!"
|
6322 |
msgstr ""
|
6323 |
|
6324 |
+
#: includes/core/class-fields.php:3793
|
6325 |
msgid "This user has not added any information to their profile yet."
|
6326 |
msgstr ""
|
6327 |
|
6328 |
+
#: includes/core/class-files.php:256
|
6329 |
msgid "Invalid parameters"
|
6330 |
msgstr ""
|
6331 |
|
6332 |
+
#: includes/core/class-files.php:261
|
6333 |
msgid "Invalid coordinates"
|
6334 |
msgstr ""
|
6335 |
|
6336 |
+
#: includes/core/class-files.php:266
|
6337 |
msgid "Invalid file ownership"
|
6338 |
msgstr ""
|
6339 |
|
6340 |
+
#: includes/core/class-files.php:319
|
6341 |
msgid "Invalid nonce"
|
6342 |
msgstr ""
|
6343 |
|
6344 |
+
#: includes/core/class-files.php:339 includes/core/class-files.php:424
|
6345 |
msgid "A theme or plugin compatibility issue"
|
6346 |
msgstr ""
|
6347 |
|
6348 |
+
#: includes/core/class-files.php:967
|
6349 |
msgid "Ultimate Member: Not a valid temp file"
|
6350 |
msgstr ""
|
6351 |
|
6352 |
+
#: includes/core/class-files.php:1095
|
6353 |
msgid "Invalid user ID: "
|
6354 |
msgstr ""
|
6355 |
|
6356 |
+
#: includes/core/class-files.php:1104 includes/core/class-files.php:1132
|
6357 |
msgid "Unauthorized to do this attempt."
|
6358 |
msgstr ""
|
6359 |
|
6513 |
msgid "Wrong nonce"
|
6514 |
msgstr ""
|
6515 |
|
6516 |
+
#: includes/core/class-shortcodes.php:355
|
6517 |
msgid ""
|
6518 |
"This content has been restricted to logged in users only. Please <a href="
|
6519 |
"\"{login_referrer}\">login</a> to view this content."
|
6520 |
msgstr ""
|
6521 |
|
6522 |
+
#: includes/core/class-shortcodes.php:515
|
6523 |
msgid "You are already registered"
|
6524 |
msgstr ""
|
6525 |
|
6526 |
+
#: includes/core/class-shortcodes.php:757
|
6527 |
msgid "Default Template"
|
6528 |
msgstr ""
|
6529 |
|
6778 |
msgid "Please enter your email"
|
6779 |
msgstr ""
|
6780 |
|
6781 |
+
#: includes/core/um-actions-login.php:61
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
6782 |
msgid "Please enter your password"
|
6783 |
msgstr ""
|
6784 |
|
6785 |
+
#: includes/core/um-actions-login.php:68
|
6786 |
msgid "Password is incorrect. Please try again."
|
6787 |
msgstr ""
|
6788 |
|
6789 |
+
#: includes/core/um-actions-login.php:199
|
6790 |
msgid "This action has been prevented for security measures."
|
6791 |
msgstr ""
|
6792 |
|
6793 |
+
#: includes/core/um-actions-login.php:423
|
6794 |
msgid "Keep me signed in"
|
6795 |
msgstr ""
|
6796 |
|
6797 |
+
#: includes/core/um-actions-login.php:458
|
6798 |
msgid "Forgot your password?"
|
6799 |
msgstr ""
|
6800 |
|
6944 |
msgid "Last login: %s"
|
6945 |
msgstr ""
|
6946 |
|
6947 |
+
#: includes/core/um-filters-fields.php:274
|
6948 |
msgid "Untitled photo"
|
6949 |
msgstr ""
|
6950 |
|
6969 |
msgid "Login as this user"
|
6970 |
msgstr ""
|
6971 |
|
6972 |
+
#: includes/um-short-functions.php:580
|
6973 |
msgid "date submitted"
|
6974 |
msgstr ""
|
6975 |
|
6976 |
+
#: includes/um-short-functions.php:586
|
6977 |
msgid "(empty)"
|
6978 |
msgstr ""
|
6979 |
|
7043 |
msgid "This user has not made any comments."
|
7044 |
msgstr ""
|
7045 |
|
7046 |
+
#: templates/profile/posts-single.php:21
|
7047 |
#, php-format
|
7048 |
msgid "%s ago"
|
7049 |
msgstr ""
|
7050 |
|
7051 |
+
#: templates/profile/posts-single.php:24
|
7052 |
msgid "in"
|
7053 |
msgstr ""
|
7054 |
|
7055 |
+
#: templates/profile/posts-single.php:30
|
7056 |
msgid "no comments"
|
7057 |
msgstr ""
|
7058 |
|
7059 |
+
#: templates/profile/posts-single.php:32
|
7060 |
+
#, php-format
|
7061 |
+
msgid "%s comments"
|
7062 |
msgstr ""
|
7063 |
|
7064 |
+
#: templates/profile/posts-single.php:34
|
7065 |
+
msgid "1 comment"
|
|
|
7066 |
msgstr ""
|
7067 |
|
7068 |
+
#: templates/profile/posts.php:21
|
7069 |
msgid "load more posts"
|
7070 |
msgstr ""
|
7071 |
|
7072 |
+
#: templates/profile/posts.php:32
|
7073 |
msgid "You have not created any posts."
|
7074 |
msgstr ""
|
7075 |
|
7076 |
+
#: templates/profile/posts.php:32
|
7077 |
msgid "This user has not created any posts."
|
7078 |
msgstr ""
|
7079 |
|
readme.txt
CHANGED
@@ -6,7 +6,7 @@ Donate link:
|
|
6 |
Tags: community, member, membership, user-profile, user-registration
|
7 |
Requires at least: 4.7
|
8 |
Tested up to: 4.9
|
9 |
-
Stable tag: 2.0.
|
10 |
License: GNU Version 2 or Any Later Version
|
11 |
License URI: http://www.gnu.org/licenses/gpl-3.0.txt
|
12 |
|
@@ -67,6 +67,10 @@ Ultimate Member has a range of extensions that allow you to extend the power of
|
|
67 |
* [Google reCAPTCHA](https://ultimatemember.com/extensions/google-recaptcha/) - Stop bots on your registration & login forms with Google reCAPTCHA
|
68 |
* [Online Users](https://ultimatemember.com/extensions/online-users/) - Display what users are online with this extension
|
69 |
|
|
|
|
|
|
|
|
|
70 |
= Development * Translations =
|
71 |
|
72 |
If you're a developer and would like to contribute to the source code of the plugin you can do so via our [GitHub Repository](https://github.com/ultimatemember/ultimatemember).
|
@@ -133,6 +137,21 @@ The plugin works with popular caching plugins by automatically excluding Ultimat
|
|
133 |
|
134 |
= Important: UM2.0+ is a significant update to the code base from 1.3.88. Please make sure you take a full-site backup with restore point before updating the plugin =
|
135 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
136 |
= 2.0.27: October 2, 2018 =
|
137 |
|
138 |
* Bugfixes:
|
6 |
Tags: community, member, membership, user-profile, user-registration
|
7 |
Requires at least: 4.7
|
8 |
Tested up to: 4.9
|
9 |
+
Stable tag: 2.0.29
|
10 |
License: GNU Version 2 or Any Later Version
|
11 |
License URI: http://www.gnu.org/licenses/gpl-3.0.txt
|
12 |
|
67 |
* [Google reCAPTCHA](https://ultimatemember.com/extensions/google-recaptcha/) - Stop bots on your registration & login forms with Google reCAPTCHA
|
68 |
* [Online Users](https://ultimatemember.com/extensions/online-users/) - Display what users are online with this extension
|
69 |
|
70 |
+
= Theme =
|
71 |
+
|
72 |
+
Our official [theme](https://ultimatemember.com/theme/) is purpose built for websites that have logged in and out users. The [theme](https://ultimatemember.com/theme/) has deep integration with Ultimate Member plugin and the extensions, different header designs for logged-in/out users and works alongside the Beaver Builder and Elementor page builders.
|
73 |
+
|
74 |
= Development * Translations =
|
75 |
|
76 |
If you're a developer and would like to contribute to the source code of the plugin you can do so via our [GitHub Repository](https://github.com/ultimatemember/ultimatemember).
|
137 |
|
138 |
= Important: UM2.0+ is a significant update to the code base from 1.3.88. Please make sure you take a full-site backup with restore point before updating the plugin =
|
139 |
|
140 |
+
= 2.0.29: October 8, 2018 =
|
141 |
+
|
142 |
+
* Bugfixes:
|
143 |
+
- Fixed User Profile Posts pagination
|
144 |
+
|
145 |
+
= 2.0.28: October 5, 2018 =
|
146 |
+
|
147 |
+
* Bugfixes:
|
148 |
+
- Fixed Email notifications
|
149 |
+
- Fixed Download files/images for multisites
|
150 |
+
- Fixed Profile/Cover image for multisites
|
151 |
+
- Fixed XSS vulnerabilities (detected by @Serhack)
|
152 |
+
- Fixed trim fields on submit forms
|
153 |
+
- Fixed submitted info
|
154 |
+
|
155 |
= 2.0.27: October 2, 2018 =
|
156 |
|
157 |
* Bugfixes:
|
templates/profile/posts-single.php
CHANGED
@@ -1,30 +1,40 @@
|
|
1 |
-
|
|
|
|
|
|
|
|
|
2 |
|
3 |
-
|
4 |
-
|
5 |
-
|
6 |
-
|
7 |
-
|
8 |
-
|
9 |
-
|
10 |
-
|
11 |
-
<div class="um-item-img"><a href="<?php the_permalink(); ?>"><?php echo get_the_post_thumbnail( $post_id, 'medium' ); ?></a></div>
|
12 |
-
|
13 |
-
<?php } ?>
|
14 |
-
|
15 |
-
<div class="um-item-meta">
|
16 |
-
<span><?php echo sprintf(__('%s ago','ultimate-member'), human_time_diff( get_the_time('U'), current_time('timestamp') ) ); ?></span>
|
17 |
-
<span><?php echo __('in','ultimate-member');?>: <?php the_category( ', ' ); ?></span>
|
18 |
-
<span><?php comments_number( __('no comments','ultimate-member'), __('1 comment','ultimate-member'), __('% comments','ultimate-member') ); ?></span>
|
19 |
-
</div>
|
20 |
</div>
|
21 |
-
|
22 |
<?php } ?>
|
23 |
-
|
24 |
-
|
25 |
-
|
26 |
-
|
27 |
-
|
28 |
-
|
29 |
-
|
30 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<div class="um-item">
|
2 |
+
<div class="um-item-link">
|
3 |
+
<i class="um-icon-ios-paper"></i>
|
4 |
+
<a href="<?php echo get_permalink( $post ) ?>"><?php echo $post->post_title; ?></a>
|
5 |
+
</div>
|
6 |
|
7 |
+
<?php if ( has_post_thumbnail( $post->ID ) ) {
|
8 |
+
$image_id = get_post_thumbnail_id( $post->ID );
|
9 |
+
$image_url = wp_get_attachment_image_src( $image_id, 'full', true ); ?>
|
10 |
+
|
11 |
+
<div class="um-item-img">
|
12 |
+
<a href="<?php echo get_permalink( $post ) ?>">
|
13 |
+
<?php echo get_the_post_thumbnail( $post->ID, 'medium' ); ?>
|
14 |
+
</a>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
15 |
</div>
|
16 |
+
|
17 |
<?php } ?>
|
18 |
+
|
19 |
+
<div class="um-item-meta">
|
20 |
+
<span>
|
21 |
+
<?php printf( __( '%s ago', 'ultimate-member' ), human_time_diff( get_the_time( 'U', $post->ID ), current_time( 'timestamp' ) ) ); ?>
|
22 |
+
</span>
|
23 |
+
<span>
|
24 |
+
<?php echo __( 'in', 'ultimate-member' ); ?>: <?php the_category( ', ', '', $post->ID ); ?>
|
25 |
+
</span>
|
26 |
+
<span>
|
27 |
+
<?php $num_comments = get_comments_number( $post->ID );
|
28 |
+
|
29 |
+
if ( $num_comments == 0 ) {
|
30 |
+
$comments = __( 'no comments', 'ultimate-member' );
|
31 |
+
} elseif ( $num_comments > 1 ) {
|
32 |
+
$comments = sprintf( __( '%s comments', 'ultimate-member' ), $num_comments );
|
33 |
+
} else {
|
34 |
+
$comments = __( '1 comment', 'ultimate-member' );
|
35 |
+
} ?>
|
36 |
+
|
37 |
+
<a href="<?php echo get_comments_link( $post->ID ) ?>"><?php echo $comments ?></a>
|
38 |
+
</span>
|
39 |
+
</div>
|
40 |
+
</div>
|
templates/profile/posts.php
CHANGED
@@ -1,45 +1,37 @@
|
|
1 |
-
<?php
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2 |
|
3 |
-
|
4 |
-
|
5 |
-
|
6 |
-
|
7 |
-
* @title um_profile_query_make_posts
|
8 |
-
* @description Some changes of WP_Query Posts Tab
|
9 |
-
* @input_vars
|
10 |
-
* [{"var":"$query_posts","type":"WP_Query","desc":"UM Posts Tab query"}]
|
11 |
-
* @change_log
|
12 |
-
* ["Since: 2.0"]
|
13 |
-
* @usage
|
14 |
-
* <?php add_filter( 'um_profile_query_make_posts', 'function_name', 10, 1 ); ?>
|
15 |
-
* @example
|
16 |
-
* <?php
|
17 |
-
* add_filter( 'um_profile_query_make_posts', 'my_profile_query_make_posts', 10, 1 );
|
18 |
-
* function my_profile_query_make_posts( $query_posts ) {
|
19 |
-
* // your code here
|
20 |
-
* return $query_posts;
|
21 |
-
* }
|
22 |
-
* ?>
|
23 |
-
*/
|
24 |
-
UM()->shortcodes()->loop = apply_filters( 'um_profile_query_make_posts', $query_posts );
|
25 |
|
26 |
-
if (
|
|
|
|
|
|
|
|
|
|
|
|
|
27 |
|
28 |
-
|
29 |
-
|
30 |
-
<div class="um-ajax-items">
|
31 |
-
<!--Ajax output-->
|
32 |
-
<?php if ( UM()->shortcodes()->loop->found_posts >= 10 ) { ?>
|
33 |
-
|
34 |
-
<div class="um-load-items">
|
35 |
-
<a href="#" class="um-ajax-paginate um-button" data-hook="um_load_posts" data-args="post,10,10,<?php echo um_get_requested_user(); ?>"><?php _e('load more posts','ultimate-member'); ?></a>
|
36 |
-
</div>
|
37 |
|
38 |
-
|
39 |
-
</div>
|
40 |
-
|
41 |
-
<?php } else { ?>
|
42 |
|
43 |
-
|
44 |
-
|
45 |
-
<?php
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php if ( defined( 'DOING_AJAX' ) && DOING_AJAX ) {
|
2 |
+
//Only for AJAX loading posts
|
3 |
+
if ( ! empty( $posts ) ) {
|
4 |
+
foreach ( $posts as $post ) {
|
5 |
+
UM()->shortcodes()->set_args = array( 'post' => $post );
|
6 |
+
UM()->shortcodes()->load_template( 'profile/posts-single' );
|
7 |
+
}
|
8 |
+
}
|
9 |
+
} else {
|
10 |
+
if ( ! empty( $posts ) ) { ?>
|
11 |
+
<div class="um-ajax-items">
|
12 |
|
13 |
+
<?php foreach ( $posts as $post ) {
|
14 |
+
UM()->shortcodes()->set_args = array( 'post' => $post );
|
15 |
+
UM()->shortcodes()->load_template( 'profile/posts-single' );
|
16 |
+
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
17 |
|
18 |
+
if ( $count_posts > 10 ) { ?>
|
19 |
+
<div class="um-load-items">
|
20 |
+
<a href="javascript:void(0);" class="um-ajax-paginate um-button" data-hook="um_load_posts" data-author="<?php echo um_get_requested_user(); ?>" data-page="1" data-pages="<?php echo ceil( $count_posts / 10 ) ?>">
|
21 |
+
<?php _e( 'load more posts', 'ultimate-member' ); ?>
|
22 |
+
</a>
|
23 |
+
</div>
|
24 |
+
<?php } ?>
|
25 |
|
26 |
+
</div>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
27 |
|
28 |
+
<?php } else { ?>
|
|
|
|
|
|
|
29 |
|
30 |
+
<div class="um-profile-note">
|
31 |
+
<span>
|
32 |
+
<?php echo ( um_profile_id() == get_current_user_id() ) ? __( 'You have not created any posts.', 'ultimate-member' ) : __( 'This user has not created any posts.', 'ultimate-member' ); ?>
|
33 |
+
</span>
|
34 |
+
</div>
|
35 |
+
|
36 |
+
<?php }
|
37 |
+
}
|
ultimate-member.php
CHANGED
@@ -3,7 +3,7 @@
|
|
3 |
Plugin Name: Ultimate Member
|
4 |
Plugin URI: http://ultimatemember.com/
|
5 |
Description: The easiest way to create powerful online communities and beautiful user profiles with WordPress
|
6 |
-
Version: 2.0.
|
7 |
Author: Ultimate Member
|
8 |
Author URI: http://ultimatemember.com/
|
9 |
Text Domain: ultimate-member
|
3 |
Plugin Name: Ultimate Member
|
4 |
Plugin URI: http://ultimatemember.com/
|
5 |
Description: The easiest way to create powerful online communities and beautiful user profiles with WordPress
|
6 |
+
Version: 2.0.29
|
7 |
Author: Ultimate Member
|
8 |
Author URI: http://ultimatemember.com/
|
9 |
Text Domain: ultimate-member
|