mirror of
https://github.com/10h30/ultimatemember.git
synced 2026-07-16 13:13:33 +09:00
Merge pull request #1641 from ultimatemember/fix/cover_profile_photo_on_view
Cover and Profile photo uploaders (CU-86cxtae21) alternativity
This commit is contained in:
+33
-3
@@ -107,9 +107,12 @@ jQuery(document).ready(function() {
|
||||
var form_id = 0;
|
||||
var mode = '';
|
||||
if ( jQuery('div.um-field-image[data-key="' + key + '"]').length === 1 ) {
|
||||
var $formWrapper = jQuery('div.um-field-image[data-key="' + key + '"]').closest('.um-form');
|
||||
form_id = $formWrapper.find('input[name="form_id"]').val();
|
||||
mode = $formWrapper.attr('data-mode');
|
||||
let $formWrapper = jQuery('div.um-field-image[data-key="' + key + '"]').closest('.um-form');
|
||||
form_id = $formWrapper.data('form_id') || $formWrapper.find('input[name="form_id"]').val(); // 'input[name="form_id"]' is a backward compatibility.
|
||||
mode = $formWrapper.data('mode');
|
||||
} else {
|
||||
console.warn( wp.i18n.__( 'UM Warning: No field associated with image uploader.', 'ultimate-member' ) );
|
||||
return;
|
||||
}
|
||||
|
||||
if ( jQuery('.cropper-hidden').length > 0 && UM.frontend.cropper.obj ) {
|
||||
@@ -140,11 +143,38 @@ jQuery(document).ready(function() {
|
||||
|
||||
if ( key === 'profile_photo' ) {
|
||||
jQuery('.um-profile-photo-img img').attr('src', response.data.image.source_url + "?"+d.getTime());
|
||||
|
||||
let $dropdown = jQuery('.um-profile-photo .um-dropdown');
|
||||
if ( ! $dropdown.find('.um-reset-profile-photo').hasClass('um-is-visible') ) {
|
||||
let $dropdownItem = $dropdown.find('.um-manual-trigger[data-parent=".um-profile-photo"]');
|
||||
let altText = $dropdownItem.data('alt_text');
|
||||
$dropdownItem.data( 'alt_text', $dropdownItem.text() ).text( altText );
|
||||
|
||||
$dropdown.find('.um-reset-profile-photo').addClass('um-is-visible').show();
|
||||
}
|
||||
|
||||
if ( ! jQuery('.um').hasClass('um-editing') ) {
|
||||
$dropdown.remove();
|
||||
}
|
||||
} else if ( key === 'cover_photo' ) {
|
||||
jQuery('.um-cover-e').empty().html('<img src="' + response.data.image.source_url + "?"+d.getTime() + '" alt="" />');
|
||||
|
||||
let $dropdown = jQuery('.um-cover .um-dropdown');
|
||||
if ( ! $dropdown.find('.um-reset-cover-photo').hasClass('um-is-visible') ) {
|
||||
let $dropdownItem = $dropdown.find('.um-manual-trigger[data-parent=".um-cover"]');
|
||||
let altText = $dropdownItem.data('alt_text');
|
||||
$dropdownItem.data( 'alt_text', $dropdownItem.text() ).text( altText );
|
||||
|
||||
$dropdown.find('.um-reset-cover-photo').addClass('um-is-visible').show();
|
||||
}
|
||||
|
||||
if ( jQuery('.um').hasClass('um-editing') ) {
|
||||
jQuery('.um-cover-overlay').show();
|
||||
} else {
|
||||
$dropdown.remove();
|
||||
}
|
||||
|
||||
um_responsive();
|
||||
}
|
||||
|
||||
jQuery('.um-single-image-preview[data-key='+key+']').fadeIn().find('img').attr('src', response.data.image.source_url + "?"+d.getTime());
|
||||
|
||||
Vendored
+1
-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:not(:has(.um-form)) a',function(e){return e.preventDefault(),!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(),a=(um_remove_modal(),jQuery(".um-single-file-preview[data-key="+e+"]").fadeIn().html(a),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(a)}),jQuery(document).on("click",".um-finish-upload.image:not(.disabled)",function(){var a,e,t=jQuery(this),i=jQuery(this).attr("data-key"),r=jQuery(this).parents(".um-modal-body").find(".um-single-image-preview"),u=r.find("img").attr("src"),r=r.find("img").data("file"),d=0,m=(jQuery(this).parents("#um_upload_single").data("user_id")&&(d=jQuery(this).parents("#um_upload_single").data("user_id")),0),n="";1===jQuery('div.um-field-image[data-key="'+i+'"]').length&&(m=(e=jQuery('div.um-field-image[data-key="'+i+'"]').closest(".um-form")).find('input[name="form_id"]').val(),n=e.attr("data-mode")),0<jQuery(".cropper-hidden").length&&UM.frontend.cropper.obj?(e=UM.frontend.cropper.obj.getData(),e=Math.round(e.x)+","+Math.round(e.y)+","+Math.round(e.width)+","+Math.round(e.height),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:u,coord:e,user_id:d,key:i,set_id:m,set_mode:n,nonce:um_scripts.nonce},success:function(e){e.success&&(a=new Date,"profile_photo"===i?jQuery(".um-profile-photo-img img").attr("src",e.data.image.source_url+"?"+a.getTime()):"cover_photo"===i&&(jQuery(".um-cover-e").empty().html('<img src="'+e.data.image.source_url+"?"+a.getTime()+'" alt="" />'),jQuery(".um").hasClass("um-editing"))&&jQuery(".um-cover-overlay").show(),jQuery(".um-single-image-preview[data-key="+i+"]").fadeIn().find("img").attr("src",e.data.image.source_url+"?"+a.getTime()),um_remove_modal(),jQuery("img.cropper-invisible").remove(),jQuery(".um-single-image-preview[data-key="+i+"]").parents(".um-field").find(".um-btn-auto-width").html(t.attr("data-change")),jQuery(".um-single-image-preview[data-key="+i+"]").parents(".um-field").find('input[type="hidden"]').val(e.data.image.filename))}})):(a=new Date,jQuery(".um-single-image-preview[data-key="+i+"]").fadeIn().find("img").attr("src",u+"?"+a.getTime()),um_remove_modal(),jQuery(".um-single-image-preview[data-key="+i+"]").parents(".um-field").find(".um-btn-auto-width").html(t.attr("data-change")),jQuery(".um-single-image-preview[data-key="+i+"]").parents(".um-field").find("input[type=hidden]").val(r))}),jQuery(document.body).on("click",'a[data-modal^="um_"], span[data-modal^="um_"]',function(e){var a=jQuery(this).attr("data-modal"),t="normal";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)})});
|
||||
jQuery(document).ready(function(){jQuery(document).on("click",".um-popup-overlay",function(){remove_Modal()}),jQuery(document).on("click",'.um-modal-overlay, a[data-action="um_remove_modal"]',function(){um_remove_modal()}),jQuery(document).on("click",'a[data-modal^="um_"], span[data-modal^="um_"], .um-modal:not(:has(.um-form)) a',function(e){return e.preventDefault(),!1}),jQuery(document).on("click",".um-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(),a=(um_remove_modal(),jQuery(".um-single-file-preview[data-key="+e+"]").fadeIn().html(a),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(a)}),jQuery(document).on("click",".um-finish-upload.image:not(.disabled)",function(){var r,e,u=jQuery(this),d=jQuery(this).attr("data-key"),a=jQuery(this).parents(".um-modal-body").find(".um-single-image-preview"),t=a.find("img").attr("src"),a=a.find("img").data("file"),i=0,m=(jQuery(this).parents("#um_upload_single").data("user_id")&&(i=jQuery(this).parents("#um_upload_single").data("user_id")),0),n="";1!==jQuery('div.um-field-image[data-key="'+d+'"]').length?console.warn(wp.i18n.__("UM Warning: No field associated with image uploader.","ultimate-member")):(m=(e=jQuery('div.um-field-image[data-key="'+d+'"]').closest(".um-form")).data("form_id")||e.find('input[name="form_id"]').val(),n=e.data("mode"),0<jQuery(".cropper-hidden").length&&UM.frontend.cropper.obj?(e=UM.frontend.cropper.obj.getData(),e=Math.round(e.x)+","+Math.round(e.y)+","+Math.round(e.width)+","+Math.round(e.height),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:t,coord:e,user_id:i,key:d,set_id:m,set_mode:n,nonce:um_scripts.nonce},success:function(e){var a,t,i;e.success&&(r=new Date,"profile_photo"===d?(jQuery(".um-profile-photo-img img").attr("src",e.data.image.source_url+"?"+r.getTime()),(i=jQuery(".um-profile-photo .um-dropdown")).find(".um-reset-profile-photo").hasClass("um-is-visible")||(t=(a=i.find('.um-manual-trigger[data-parent=".um-profile-photo"]')).data("alt_text"),a.data("alt_text",a.text()).text(t),i.find(".um-reset-profile-photo").addClass("um-is-visible").show()),jQuery(".um").hasClass("um-editing")||i.remove()):"cover_photo"===d&&(jQuery(".um-cover-e").empty().html('<img src="'+e.data.image.source_url+"?"+r.getTime()+'" alt="" />'),um_responsive(),(a=jQuery(".um-cover .um-dropdown")).find(".um-reset-cover-photo").hasClass("um-is-visible")||(i=(t=a.find('.um-manual-trigger[data-parent=".um-cover"]')).data("alt_text"),t.data("alt_text",t.text()).text(i),a.find(".um-reset-cover-photo").addClass("um-is-visible").show()),jQuery(".um").hasClass("um-editing")?jQuery(".um-cover-overlay").show():a.remove()),jQuery(".um-single-image-preview[data-key="+d+"]").fadeIn().find("img").attr("src",e.data.image.source_url+"?"+r.getTime()),um_remove_modal(),jQuery("img.cropper-invisible").remove(),jQuery(".um-single-image-preview[data-key="+d+"]").parents(".um-field").find(".um-btn-auto-width").html(u.attr("data-change")),jQuery(".um-single-image-preview[data-key="+d+"]").parents(".um-field").find('input[type="hidden"]').val(e.data.image.filename))}})):(r=new Date,jQuery(".um-single-image-preview[data-key="+d+"]").fadeIn().find("img").attr("src",t+"?"+r.getTime()),um_remove_modal(),jQuery(".um-single-image-preview[data-key="+d+"]").parents(".um-field").find(".um-btn-auto-width").html(u.attr("data-change")),jQuery(".um-single-image-preview[data-key="+d+"]").parents(".um-field").find("input[type=hidden]").val(a)))}),jQuery(document.body).on("click",'a[data-modal^="um_"], span[data-modal^="um_"]',function(e){var a=jQuery(this).attr("data-modal"),t="normal";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)})});
|
||||
+19
-16
@@ -35,52 +35,55 @@ jQuery(document).ready(function() {
|
||||
});
|
||||
|
||||
jQuery(document.body).on('click', '.um-reset-profile-photo', function(e) {
|
||||
let $obj = jQuery(this);
|
||||
let user_id = $obj.data('user_id');
|
||||
|
||||
jQuery('.um-profile-photo-img img').attr( 'src', jQuery(this).attr( 'data-default_src' ) );
|
||||
let $dropdownItem = $obj.parents('ul').find('.um-manual-trigger[data-parent=".um-profile-photo"]');
|
||||
let altText = $dropdownItem.data('alt_text');
|
||||
$dropdownItem.data( 'alt_text', $dropdownItem.text() ).text( altText );
|
||||
|
||||
user_id = jQuery(this).attr('data-user_id');
|
||||
metakey = 'profile_photo';
|
||||
|
||||
UM.dropdown.hideAll();
|
||||
jQuery('.um-profile-photo-img img').attr( 'src', $obj.data( 'default_src' ) );
|
||||
|
||||
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
|
||||
},
|
||||
success: function() {
|
||||
$obj.removeClass('um-is-visible').hide();
|
||||
}
|
||||
});
|
||||
|
||||
jQuery(this).parents('li').hide();
|
||||
UM.dropdown.hideAll();
|
||||
return false;
|
||||
});
|
||||
|
||||
jQuery(document.body).on('click', '.um-reset-cover-photo', function(e){
|
||||
var obj = jQuery(this);
|
||||
let $obj = jQuery(this);
|
||||
let user_id = $obj.data('user_id');
|
||||
|
||||
let $dropdownItem = $obj.parents('ul').find('.um-manual-trigger[data-parent=".um-cover"]');
|
||||
let altText = $dropdownItem.data('alt_text');
|
||||
$dropdownItem.data( 'alt_text', $dropdownItem.text() ).text( altText );
|
||||
|
||||
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" title="Upload a cover photo"></i></span></a>');
|
||||
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" title="' + wp.i18n.__( 'Upload a cover photo', 'ultimate-member' ) + '"></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( response ) {
|
||||
obj.hide();
|
||||
success: function() {
|
||||
$obj.removeClass('um-is-visible').hide();
|
||||
}
|
||||
});
|
||||
|
||||
|
||||
Vendored
+1
-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-profile.um-viewing .um-profile-body").find(".um-row-heading,.um-row").remove(),jQuery(".um-profile-note").show()),jQuery(document.body).on("click",".um-profile-save",function(e){return e.preventDefault(),jQuery(this).parents(".um.um-profile.um-editing").find("form").trigger("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();e=jQuery(this).attr("data-src");return um_new_modal("um_view_photo","fit",!0,e),!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.dropdown.hideAll(),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" 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.dropdown.hideAll(),!1}),jQuery(document.body).on("change keyup","#um-meta-bio",function(){if(void 0!==jQuery(this).val()){var t=jQuery(this).data("character-limit"),r=jQuery(this).data("html");let e=t-jQuery(this).val().length;e=(e=1===parseInt(r)?t-jQuery(this).val().replace(/(<([^>]+)>)/gi,"").length:e)<0?0:e,jQuery("span.um-meta-bio-character span.um-bio-limit").text(e);r=e<5?"red":"";jQuery("span.um-meta-bio-character").css("color",r)}}),jQuery("#um-meta-bio").trigger("change"),jQuery(".um-profile form").each(function(){let t=jQuery(this).data("description_key");jQuery(this).find('textarea[name="'+t+'"]').length&&jQuery(document.body).on("change input",'textarea[name="'+t+'"]',function(e){jQuery(this).parents("form").find('textarea[name="'+t+'"]').each(function(){jQuery(this).val(e.currentTarget.value),jQuery("#um-meta-bio")[0]!==e.currentTarget&&jQuery("#um-meta-bio")[0]===jQuery(this)[0]&&jQuery(this).trigger("change")})})}),jQuery(".um-profile-edit a.um_delete-item").on("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){jQuery(e.currentTarget).trigger("click")})});
|
||||
jQuery(document).ready(function(){jQuery(".um-profile.um-viewing .um-profile-body .um-row").each(function(){var e=jQuery(this);0==e.find(".um-field").length&&(e.prev(".um-row-heading").remove(),e.remove())}),jQuery(".um-profile.um-viewing .um-profile-body").length&&0==jQuery(".um-profile.um-viewing .um-profile-body").find(".um-field").length&&(jQuery(".um-profile.um-viewing .um-profile-body").find(".um-row-heading,.um-row").remove(),jQuery(".um-profile-note").show()),jQuery(document.body).on("click",".um-profile-save",function(e){return e.preventDefault(),jQuery(this).parents(".um.um-profile.um-editing").find("form").trigger("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();e=jQuery(this).attr("data-src");return um_new_modal("um_view_photo","fit",!0,e),!1}),jQuery(document.body).on("click",".um-reset-profile-photo",function(e){let t=jQuery(this);var r=t.data("user_id"),u=t.parents("ul").find('.um-manual-trigger[data-parent=".um-profile-photo"]'),i=u.data("alt_text");return u.data("alt_text",u.text()).text(i),jQuery(".um-profile-photo-img img").attr("src",t.data("default_src")),jQuery.ajax({url:wp.ajax.settings.url,type:"post",data:{action:"um_delete_profile_photo",user_id:r,nonce:um_scripts.nonce},success:function(){t.removeClass("um-is-visible").hide()}}),UM.dropdown.hideAll(),!1}),jQuery(document.body).on("click",".um-reset-cover-photo",function(e){let t=jQuery(this);var r=t.data("user_id"),u=t.parents("ul").find('.um-manual-trigger[data-parent=".um-cover"]'),i=u.data("alt_text");return u.data("alt_text",u.text()).text(i),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" title="'+wp.i18n.__("Upload a cover photo","ultimate-member")+'"></i></span></a>'),um_responsive(),jQuery.ajax({url:wp.ajax.settings.url,type:"post",data:{action:"um_delete_cover_photo",user_id:r,nonce:um_scripts.nonce},success:function(){t.removeClass("um-is-visible").hide()}}),UM.dropdown.hideAll(),!1}),jQuery(document.body).on("change keyup","#um-meta-bio",function(){if(void 0!==jQuery(this).val()){var t=jQuery(this).data("character-limit"),r=jQuery(this).data("html");let e=t-jQuery(this).val().length;e=(e=1===parseInt(r)?t-jQuery(this).val().replace(/(<([^>]+)>)/gi,"").length:e)<0?0:e,jQuery("span.um-meta-bio-character span.um-bio-limit").text(e);r=e<5?"red":"";jQuery("span.um-meta-bio-character").css("color",r)}}),jQuery("#um-meta-bio").trigger("change"),jQuery(".um-profile form").each(function(){let t=jQuery(this).data("description_key");jQuery(this).find('textarea[name="'+t+'"]').length&&jQuery(document.body).on("change input",'textarea[name="'+t+'"]',function(e){jQuery(this).parents("form").find('textarea[name="'+t+'"]').each(function(){jQuery(this).val(e.currentTarget.value),jQuery("#um-meta-bio")[0]!==e.currentTarget&&jQuery("#um-meta-bio")[0]===jQuery(this)[0]&&jQuery(this).trigger("change")})})}),jQuery(".um-profile-edit a.um_delete-item").on("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){jQuery(e.currentTarget).trigger("click")})});
|
||||
@@ -1,5 +1,7 @@
|
||||
<?php if ( ! defined( 'ABSPATH' ) ) exit; // Exit if accessed directly
|
||||
|
||||
<?php
|
||||
if ( ! defined( 'ABSPATH' ) ) {
|
||||
exit;
|
||||
}
|
||||
|
||||
/**
|
||||
* Adds a form identifier to form
|
||||
@@ -7,13 +9,18 @@
|
||||
* @param $args
|
||||
*/
|
||||
function um_add_form_identifier( $args ) {
|
||||
?>
|
||||
if ( is_admin() ) {
|
||||
return;
|
||||
}
|
||||
|
||||
if ( true === UM()->fields()->editing ) {
|
||||
?>
|
||||
<input type="hidden" name="form_id" id="form_id_<?php echo esc_attr( $args['form_id'] ); ?>" value="<?php echo esc_attr( $args['form_id'] ); ?>" />
|
||||
<?php
|
||||
<?php
|
||||
}
|
||||
}
|
||||
add_action( 'um_after_form_fields', 'um_add_form_identifier' );
|
||||
|
||||
|
||||
/**
|
||||
* Adds a spam timestamp
|
||||
*
|
||||
@@ -22,30 +29,35 @@ add_action( 'um_after_form_fields', 'um_add_form_identifier' );
|
||||
function um_add_security_checks( $args ) {
|
||||
if ( is_admin() ) {
|
||||
return;
|
||||
} ?>
|
||||
|
||||
<p class="<?php echo esc_attr( UM()->honeypot ); ?>_name">
|
||||
<label for="<?php echo esc_attr( UM()->honeypot ) . '_' . $args['form_id']; ?>"><?php _e( 'Only fill in if you are not human' ); ?></label>
|
||||
<input type="hidden" name="<?php echo esc_attr( UM()->honeypot ); ?>" id="<?php echo esc_attr( UM()->honeypot ) . '_' . $args['form_id']; ?>" class="input" value="" size="25" autocomplete="off" />
|
||||
</p>
|
||||
|
||||
<?php
|
||||
}
|
||||
if ( true === UM()->fields()->editing ) {
|
||||
?>
|
||||
<p class="<?php echo esc_attr( UM()->honeypot ); ?>_name">
|
||||
<label for="<?php echo esc_attr( UM()->honeypot . '_' . $args['form_id'] ); ?>"><?php esc_html_e( 'Only fill in if you are not human' ); ?></label>
|
||||
<input type="hidden" name="<?php echo esc_attr( UM()->honeypot ); ?>" id="<?php echo esc_attr( UM()->honeypot . '_' . $args['form_id'] ); ?>" class="input" value="" size="25" autocomplete="off" />
|
||||
</p>
|
||||
<?php
|
||||
}
|
||||
}
|
||||
add_action( 'um_after_form_fields', 'um_add_security_checks' );
|
||||
add_action( 'um_account_page_hidden_fields', 'um_add_security_checks' );
|
||||
|
||||
|
||||
/**
|
||||
* Makes the honeypot invisible
|
||||
*/
|
||||
function um_add_form_honeypot_css() {
|
||||
?>
|
||||
if ( is_admin() ) {
|
||||
return;
|
||||
}
|
||||
if ( true === UM()->fields()->editing ) {
|
||||
?>
|
||||
<style type="text/css">
|
||||
.<?php echo esc_attr( UM()->honeypot ); ?>_name {
|
||||
display: none !important;
|
||||
}
|
||||
</style>
|
||||
<?php
|
||||
<?php
|
||||
}
|
||||
}
|
||||
add_action( 'wp_head', 'um_add_form_honeypot_css' );
|
||||
|
||||
@@ -54,11 +66,11 @@ add_action( 'wp_head', 'um_add_form_honeypot_css' );
|
||||
*/
|
||||
function um_add_form_honeypot_js() {
|
||||
?>
|
||||
<script type="text/javascript">
|
||||
jQuery( window ).on( 'load', function() {
|
||||
jQuery('input[name="<?php echo esc_js( UM()->honeypot ); ?>"]').val('');
|
||||
});
|
||||
</script>
|
||||
<script type="text/javascript">
|
||||
jQuery( window ).on( 'load', function() {
|
||||
jQuery('input[name="<?php echo esc_js( UM()->honeypot ); ?>"]').val('');
|
||||
});
|
||||
</script>
|
||||
<?php
|
||||
}
|
||||
add_action( 'wp_footer', 'um_add_form_honeypot_js', 99999999999999999 );
|
||||
add_action( 'wp_footer', 'um_add_form_honeypot_js', 99999999999999999 );
|
||||
|
||||
@@ -842,149 +842,141 @@ add_action( 'wp_head', 'um_profile_dynamic_meta_desc', 20 );
|
||||
* @param $args
|
||||
*/
|
||||
function um_profile_header_cover_area( $args ) {
|
||||
if ( isset( $args['cover_enabled'] ) && $args['cover_enabled'] == 1 ) {
|
||||
if ( empty( $args['cover_enabled'] ) ) {
|
||||
return;
|
||||
}
|
||||
|
||||
$default_cover = UM()->options()->get( 'default_cover' );
|
||||
$default_cover = UM()->options()->get( 'default_cover' );
|
||||
$user_cover = um_user( 'cover_photo' );
|
||||
|
||||
$overlay = '<span class="um-cover-overlay">
|
||||
$cover_wrapper_classes = array( 'um-cover' );
|
||||
if ( $user_cover || ! empty( $default_cover['url'] ) ) {
|
||||
$cover_wrapper_classes[] = 'has-cover';
|
||||
}
|
||||
?>
|
||||
<div class="<?php echo esc_attr( implode( ' ', $cover_wrapper_classes ) ); ?>"
|
||||
data-user_id="<?php echo esc_attr( um_profile_id() ); ?>" data-ratio="<?php echo esc_attr( $args['cover_ratio'] ); ?>">
|
||||
<?php
|
||||
/**
|
||||
* UM hook
|
||||
*
|
||||
* @type action
|
||||
* @title um_cover_area_content
|
||||
* @description Cover area content change
|
||||
* @input_vars
|
||||
* [{"var":"$user_id","type":"int","desc":"User ID"}]
|
||||
* @change_log
|
||||
* ["Since: 2.0"]
|
||||
* @usage add_action( 'um_cover_area_content', 'function_name', 10, 1 );
|
||||
* @example
|
||||
* <?php
|
||||
* add_action( 'um_cover_area_content', 'my_cover_area_content', 10, 1 );
|
||||
* function my_cover_area_content( $user_id ) {
|
||||
* // your code here
|
||||
* }
|
||||
* ?>
|
||||
*/
|
||||
do_action( 'um_cover_area_content', um_profile_id() );
|
||||
if ( true === UM()->fields()->editing ) {
|
||||
|
||||
$hide_remove = ' style="display:none;"';
|
||||
$remove_classes = array( 'um-reset-cover-photo' );
|
||||
if ( $user_cover ) {
|
||||
$hide_remove = '';
|
||||
$remove_classes[] = 'um-is-visible';
|
||||
}
|
||||
|
||||
$text = ! $user_cover ? __( 'Upload a cover photo', 'ultimate-member' ) : __( 'Change cover photo', 'ultimate-member' );
|
||||
$alt_text = $user_cover ? __( 'Upload a cover photo', 'ultimate-member' ) : __( 'Change cover photo', 'ultimate-member' );
|
||||
|
||||
$items = array(
|
||||
'<a href="javascript:void(0);" class="um-manual-trigger" data-parent=".um-cover" data-child=".um-btn-auto-width" data-alt_text="' . esc_attr( $alt_text ) . '">' . esc_html( $text ) . '</a>',
|
||||
'<a href="javascript:void(0);" class="' . esc_attr( implode( ' ', $remove_classes ) ) . '" data-user_id="' . esc_attr( um_profile_id() ) . '" ' . $hide_remove . '>' . esc_html__( 'Remove cover photo', 'ultimate-member' ) . '</a>',
|
||||
'<a href="javascript:void(0);" class="um-dropdown-hide">' . esc_html__( 'Cancel', 'ultimate-member' ) . '</a>',
|
||||
);
|
||||
|
||||
$items = apply_filters( 'um_cover_area_content_dropdown_items', $items, um_profile_id() );
|
||||
|
||||
UM()->profile()->new_ui( 'bc', 'div.um-cover', 'click', $items );
|
||||
} elseif ( ! $user_cover && ! isset( UM()->user()->cannot_edit ) ) {
|
||||
$items = array(
|
||||
'<a href="javascript:void(0);" class="um-manual-trigger" data-parent=".um-cover" data-child=".um-btn-auto-width">' . esc_html__( 'Upload a cover photo', 'ultimate-member' ) . '</a>',
|
||||
'<a href="javascript:void(0);" class="um-dropdown-hide">' . esc_html__( 'Cancel', 'ultimate-member' ) . '</a>',
|
||||
);
|
||||
|
||||
$items = apply_filters( 'um_cover_area_content_dropdown_items', $items, um_profile_id() );
|
||||
|
||||
UM()->profile()->new_ui( 'bc', 'div.um-cover', 'click', $items );
|
||||
}
|
||||
|
||||
UM()->fields()->add_hidden_field( 'cover_photo' );
|
||||
?>
|
||||
<div class="um-cover-e" data-ratio="<?php echo esc_attr( $args['cover_ratio'] ); ?>">
|
||||
<?php
|
||||
if ( $user_cover ) {
|
||||
|
||||
$get_cover_size = $args['coversize'];
|
||||
if ( ! $get_cover_size || 'original' === $get_cover_size ) {
|
||||
$size = null;
|
||||
} else {
|
||||
$size = $get_cover_size;
|
||||
}
|
||||
|
||||
if ( wp_is_mobile() ) {
|
||||
// Set for mobile width = 300 by default but can be changed via filter
|
||||
$size = 300;
|
||||
|
||||
/**
|
||||
* UM hook
|
||||
*
|
||||
* @type filter
|
||||
* @title um_mobile_cover_photo
|
||||
* @description Add size for mobile device
|
||||
* @input_vars
|
||||
* [{"var":"$size","type":"int","desc":"Form's agrument - Cover Photo size"}]
|
||||
* @change_log
|
||||
* ["Since: 2.0"]
|
||||
* @usage
|
||||
* <?php add_filter( 'um_mobile_cover_photo', 'change_size', 10, 1 ); ?>
|
||||
* @example
|
||||
* <?php
|
||||
* add_filter( 'um_mobile_cover_photo', 'um_change_cover_mobile_size', 10, 1 );
|
||||
* function um_change_cover_mobile_size( $size ) {
|
||||
* // your code here
|
||||
* return $size;
|
||||
* }
|
||||
* ?>
|
||||
*/
|
||||
$size = apply_filters( 'um_mobile_cover_photo', $size );
|
||||
}
|
||||
|
||||
echo um_user( 'cover_photo', $size );
|
||||
|
||||
} elseif ( ! empty( $default_cover['url'] ) ) {
|
||||
|
||||
echo '<img src="' . esc_url( $default_cover['url'] ) . '" alt="" />';
|
||||
|
||||
} elseif ( ! isset( UM()->user()->cannot_edit ) ) {
|
||||
?>
|
||||
<a href="javascript:void(0);" class="um-cover-add"><span class="um-cover-add-i"><i
|
||||
class="um-icon-plus um-tip-n"
|
||||
title="<?php esc_attr_e( 'Upload a cover photo', 'ultimate-member' ); ?>"></i></span></a>
|
||||
<?php
|
||||
}
|
||||
?>
|
||||
</div>
|
||||
<?php if ( true === UM()->fields()->editing ) { ?>
|
||||
<span class="um-cover-overlay">
|
||||
<span class="um-cover-overlay-s">
|
||||
<ins>
|
||||
<i class="um-faicon-picture-o"></i>
|
||||
<span class="um-cover-overlay-t">' . __( 'Change your cover photo', 'ultimate-member' ) . '</span>
|
||||
<span class="um-cover-overlay-t"><?php esc_html_e( 'Change your cover photo', 'ultimate-member' ); ?></span>
|
||||
</ins>
|
||||
</span>
|
||||
</span>';
|
||||
|
||||
?>
|
||||
|
||||
<div class="um-cover <?php if ( um_user( 'cover_photo' ) || ( $default_cover && $default_cover['url'] ) ) echo 'has-cover'; ?>"
|
||||
data-user_id="<?php echo esc_attr( um_profile_id() ); ?>" data-ratio="<?php echo esc_attr( $args['cover_ratio'] ); ?>">
|
||||
|
||||
<?php
|
||||
/**
|
||||
* UM hook
|
||||
*
|
||||
* @type action
|
||||
* @title um_cover_area_content
|
||||
* @description Cover area content change
|
||||
* @input_vars
|
||||
* [{"var":"$user_id","type":"int","desc":"User ID"}]
|
||||
* @change_log
|
||||
* ["Since: 2.0"]
|
||||
* @usage add_action( 'um_cover_area_content', 'function_name', 10, 1 );
|
||||
* @example
|
||||
* <?php
|
||||
* add_action( 'um_cover_area_content', 'my_cover_area_content', 10, 1 );
|
||||
* function my_cover_area_content( $user_id ) {
|
||||
* // your code here
|
||||
* }
|
||||
* ?>
|
||||
*/
|
||||
do_action( 'um_cover_area_content', um_profile_id() );
|
||||
if ( true === UM()->fields()->editing ) {
|
||||
|
||||
$hide_remove = um_user( 'cover_photo' ) ? false : ' style="display:none;"';
|
||||
|
||||
$text = ! um_user( 'cover_photo' ) ? __( 'Upload a cover photo', 'ultimate-member' ) : __( 'Change cover photo', 'ultimate-member' ) ;
|
||||
|
||||
$items = array(
|
||||
'<a href="javascript:void(0);" class="um-manual-trigger" data-parent=".um-cover" data-child=".um-btn-auto-width">' . $text . '</a>',
|
||||
'<a href="javascript:void(0);" class="um-reset-cover-photo" data-user_id="' . um_profile_id() . '" ' . $hide_remove . '>' . __( 'Remove', 'ultimate-member' ) . '</a>',
|
||||
'<a href="javascript:void(0);" class="um-dropdown-hide">' . __( 'Cancel', 'ultimate-member' ) . '</a>',
|
||||
);
|
||||
|
||||
$items = apply_filters( 'um_cover_area_content_dropdown_items', $items, um_profile_id() );
|
||||
|
||||
UM()->profile()->new_ui( 'bc', 'div.um-cover', 'click', $items );
|
||||
} else {
|
||||
|
||||
if ( ! isset( UM()->user()->cannot_edit ) && ! um_user( 'cover_photo' ) ) {
|
||||
|
||||
$items = array(
|
||||
'<a href="javascript:void(0);" class="um-manual-trigger" data-parent=".um-cover" data-child=".um-btn-auto-width">' . __( 'Upload a cover photo', 'ultimate-member' ) . '</a>',
|
||||
'<a href="javascript:void(0);" class="um-dropdown-hide">' . __( 'Cancel', 'ultimate-member' ) . '</a>',
|
||||
);
|
||||
|
||||
$items = apply_filters( 'um_cover_area_content_dropdown_items', $items, um_profile_id() );
|
||||
|
||||
UM()->profile()->new_ui( 'bc', 'div.um-cover', 'click', $items );
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
UM()->fields()->add_hidden_field( 'cover_photo' ); ?>
|
||||
|
||||
<div class="um-cover-e" data-ratio="<?php echo esc_attr( $args['cover_ratio'] ); ?>">
|
||||
|
||||
<?php if ( um_user( 'cover_photo' ) ) {
|
||||
|
||||
$get_cover_size = $args['coversize'];
|
||||
|
||||
if ( ! $get_cover_size || $get_cover_size == 'original' ) {
|
||||
$size = null;
|
||||
} else {
|
||||
$size = $get_cover_size;
|
||||
}
|
||||
|
||||
if ( wp_is_mobile() ) {
|
||||
// Set for mobile width = 300 by default but can be changed via filter
|
||||
$size = 300;
|
||||
|
||||
/**
|
||||
* UM hook
|
||||
*
|
||||
* @type filter
|
||||
* @title um_mobile_cover_photo
|
||||
* @description Add size for mobile device
|
||||
* @input_vars
|
||||
* [{"var":"$size","type":"int","desc":"Form's agrument - Cover Photo size"}]
|
||||
* @change_log
|
||||
* ["Since: 2.0"]
|
||||
* @usage
|
||||
* <?php add_filter( 'um_mobile_cover_photo', 'change_size', 10, 1 ); ?>
|
||||
* @example
|
||||
* <?php
|
||||
* add_filter( 'um_mobile_cover_photo', 'um_change_cover_mobile_size', 10, 1 );
|
||||
* function um_change_cover_mobile_size( $size ) {
|
||||
* // your code here
|
||||
* return $size;
|
||||
* }
|
||||
* ?>
|
||||
*/
|
||||
$size = apply_filters( 'um_mobile_cover_photo', $size );
|
||||
}
|
||||
|
||||
echo um_user( 'cover_photo', $size );
|
||||
|
||||
} elseif ( $default_cover && $default_cover['url'] ) {
|
||||
|
||||
$default_cover = $default_cover['url'];
|
||||
|
||||
echo '<img src="' . esc_url( $default_cover ) . '" alt="" />';
|
||||
|
||||
} else {
|
||||
|
||||
if ( ! isset( UM()->user()->cannot_edit ) ) { ?>
|
||||
|
||||
<a href="javascript:void(0);" class="um-cover-add"><span class="um-cover-add-i"><i
|
||||
class="um-icon-plus um-tip-n"
|
||||
title="<?php esc_attr_e( 'Upload a cover photo', 'ultimate-member' ); ?>"></i></span></a>
|
||||
|
||||
<?php }
|
||||
|
||||
} ?>
|
||||
|
||||
</div>
|
||||
|
||||
<?php echo $overlay; ?>
|
||||
|
||||
</div>
|
||||
|
||||
<?php
|
||||
|
||||
}
|
||||
|
||||
</span>
|
||||
<?php } ?>
|
||||
</div>
|
||||
<?php
|
||||
}
|
||||
add_action( 'um_profile_header_cover_area', 'um_profile_header_cover_area', 9 );
|
||||
|
||||
@@ -1086,8 +1078,9 @@ function um_profile_header( $args ) {
|
||||
if ( ! um_profile( 'profile_photo' ) ) { // has profile photo
|
||||
|
||||
$items = array(
|
||||
'<a href="javascript:void(0);" class="um-manual-trigger" data-parent=".um-profile-photo" data-child=".um-btn-auto-width">' . __( 'Upload photo', 'ultimate-member' ) . '</a>',
|
||||
'<a href="javascript:void(0);" class="um-dropdown-hide">' . __( 'Cancel', 'ultimate-member' ) . '</a>',
|
||||
'<a href="javascript:void(0);" class="um-manual-trigger" data-parent=".um-profile-photo" data-child=".um-btn-auto-width" data-alt_text="' . esc_attr__( 'Change photo', 'ultimate-member' ) . '">' . esc_html__( 'Upload photo', 'ultimate-member' ) . '</a>',
|
||||
'<a href="javascript:void(0);" class="um-reset-profile-photo" data-user_id="' . esc_attr( um_profile_id() ) . '" data-default_src="' . esc_url( um_get_default_avatar_uri() ) . '" style="display:none;">' . esc_html__( 'Remove photo', 'ultimate-member' ) . '</a>',
|
||||
'<a href="javascript:void(0);" class="um-dropdown-hide">' . esc_html__( 'Cancel', 'ultimate-member' ) . '</a>',
|
||||
);
|
||||
|
||||
/**
|
||||
@@ -1118,9 +1111,9 @@ function um_profile_header( $args ) {
|
||||
} elseif ( true === UM()->fields()->editing ) {
|
||||
|
||||
$items = array(
|
||||
'<a href="javascript:void(0);" class="um-manual-trigger" data-parent=".um-profile-photo" data-child=".um-btn-auto-width">' . __( 'Change photo', 'ultimate-member' ) . '</a>',
|
||||
'<a href="javascript:void(0);" class="um-reset-profile-photo" data-user_id="' . esc_attr( um_profile_id() ) . '" data-default_src="' . esc_url( um_get_default_avatar_uri() ) . '">' . __( 'Remove photo', 'ultimate-member' ) . '</a>',
|
||||
'<a href="javascript:void(0);" class="um-dropdown-hide">' . __( 'Cancel', 'ultimate-member' ) . '</a>',
|
||||
'<a href="javascript:void(0);" class="um-manual-trigger" data-parent=".um-profile-photo" data-child=".um-btn-auto-width" data-alt_text="' . esc_attr__( 'Upload photo', 'ultimate-member' ) . '">' . esc_html__( 'Change photo', 'ultimate-member' ) . '</a>',
|
||||
'<a href="javascript:void(0);" class="um-reset-profile-photo um-is-visible" data-user_id="' . esc_attr( um_profile_id() ) . '" data-default_src="' . esc_url( um_get_default_avatar_uri() ) . '">' . esc_html__( 'Remove photo', 'ultimate-member' ) . '</a>',
|
||||
'<a href="javascript:void(0);" class="um-dropdown-hide">' . esc_html__( 'Cancel', 'ultimate-member' ) . '</a>',
|
||||
);
|
||||
|
||||
/**
|
||||
|
||||
+196
-187
@@ -6,7 +6,7 @@
|
||||
*
|
||||
* Page: "Profile"
|
||||
*
|
||||
* @version 2.6.9
|
||||
* @version 2.9.3
|
||||
*
|
||||
* @var string $mode
|
||||
* @var int $form_id
|
||||
@@ -17,200 +17,227 @@ if ( ! defined( 'ABSPATH' ) ) {
|
||||
}
|
||||
$description_key = UM()->profile()->get_show_bio_key( $args );
|
||||
?>
|
||||
|
||||
<div class="um <?php echo esc_attr( $this->get_class( $mode ) ); ?> um-<?php echo esc_attr( $form_id ); ?> um-role-<?php echo esc_attr( um_user( 'role' ) ); ?> ">
|
||||
|
||||
<div class="um-form" data-mode="<?php echo esc_attr( $mode ) ?>">
|
||||
|
||||
<div class="um <?php echo esc_attr( $this->get_class( $mode ) ); ?> um-<?php echo esc_attr( $form_id ); ?> um-role-<?php echo esc_attr( um_user( 'role' ) ); ?>">
|
||||
<div class="um-form" data-mode="<?php echo esc_attr( $mode ); ?>" data-form_id="<?php echo esc_attr( $form_id ); ?>">
|
||||
<?php
|
||||
/**
|
||||
* UM hook
|
||||
* Fires before User Profile header.
|
||||
* It's the first hook at User Profile wrapper.
|
||||
*
|
||||
* @type action
|
||||
* @title um_profile_before_header
|
||||
* @description Some actions before profile form header
|
||||
* @input_vars
|
||||
* [{"var":"$args","type":"array","desc":"Profile form shortcode arguments"}]
|
||||
* @change_log
|
||||
* ["Since: 2.0"]
|
||||
* @usage add_action( 'um_profile_before_header', 'function_name', 10, 1 );
|
||||
* @example
|
||||
* <?php
|
||||
* add_action( 'um_profile_before_header', 'my_profile_before_header', 10, 1 );
|
||||
* function my_profile_before_header( $args ) {
|
||||
* Internal Ultimate Member callbacks (Priority -> Callback name -> Excerpt):
|
||||
* 10 - `um_profile_completeness_show_notice()` displays Profile Completeness notices.
|
||||
*
|
||||
* @param {array} $args User Profile data.
|
||||
*
|
||||
* @since 1.3.x
|
||||
* @hook um_profile_before_header
|
||||
*
|
||||
* @example <caption>Display some content before User Profile.</caption>
|
||||
* function my_um_profile_before_header( $args ) {
|
||||
* // your code here
|
||||
* echo $notice;
|
||||
* }
|
||||
* ?>
|
||||
* add_action( 'um_profile_before_header', 'my_um_profile_before_header' );
|
||||
*/
|
||||
do_action( 'um_profile_before_header', $args );
|
||||
|
||||
if ( um_is_on_edit_profile() ) { ?>
|
||||
if ( um_is_on_edit_profile() ) {
|
||||
?>
|
||||
<form method="post" action="" data-description_key="<?php echo esc_attr( $description_key ); ?>">
|
||||
<?php }
|
||||
|
||||
<?php
|
||||
}
|
||||
/**
|
||||
* UM hook
|
||||
* Fires for displaying User Profile cover area.
|
||||
*
|
||||
* @type action
|
||||
* @title um_profile_header_cover_area
|
||||
* @description Profile header cover area
|
||||
* @input_vars
|
||||
* [{"var":"$args","type":"array","desc":"Profile form shortcode arguments"}]
|
||||
* @change_log
|
||||
* ["Since: 2.0"]
|
||||
* @usage add_action( 'um_profile_header_cover_area', 'function_name', 10, 1 );
|
||||
* @example
|
||||
* <?php
|
||||
* add_action( 'um_profile_header_cover_area', 'my_profile_header_cover_area', 10, 1 );
|
||||
* function my_profile_header_cover_area( $args ) {
|
||||
* Internal Ultimate Member callbacks (Priority -> Callback name -> Excerpt):
|
||||
* 9 - `um_profile_header_cover_area()` displays User Profile cover photo.
|
||||
*
|
||||
* @param {array} $args User Profile data.
|
||||
*
|
||||
* @since 1.3.x
|
||||
* @hook um_profile_header_cover_area
|
||||
*
|
||||
* @example <caption>Display some content before or after User Profile cover.</caption>
|
||||
* function my_um_profile_header_cover_area( $args ) {
|
||||
* // your code here
|
||||
* echo $content;
|
||||
* }
|
||||
* ?>
|
||||
* add_action( 'um_profile_header_cover_area', 'my_um_profile_header_cover_area' );
|
||||
*/
|
||||
do_action( 'um_profile_header_cover_area', $args );
|
||||
|
||||
/**
|
||||
* UM hook
|
||||
* Fires for displaying User Profile header.
|
||||
*
|
||||
* @type action
|
||||
* @title um_profile_header
|
||||
* @description Profile header area
|
||||
* @input_vars
|
||||
* [{"var":"$args","type":"array","desc":"Profile form shortcode arguments"}]
|
||||
* @change_log
|
||||
* ["Since: 2.0"]
|
||||
* @usage add_action( 'um_profile_header', 'function_name', 10, 1 );
|
||||
* @example
|
||||
* <?php
|
||||
* add_action( 'um_profile_header', 'my_profile_header', 10, 1 );
|
||||
* function my_profile_header( $args ) {
|
||||
* Internal Ultimate Member callbacks (Priority -> Callback name -> Excerpt):
|
||||
* 9 - `um_profile_header()` displays User Profile header.
|
||||
*
|
||||
* @param {array} $args User Profile data.
|
||||
*
|
||||
* @since 1.3.x
|
||||
* @hook um_profile_header
|
||||
*
|
||||
* @example <caption>Display some content before or after User Profile header.</caption>
|
||||
* function my_um_profile_header( $args ) {
|
||||
* // your code here
|
||||
* echo $content;
|
||||
* }
|
||||
* ?>
|
||||
* add_action( 'um_profile_header', 'my_um_profile_header' );
|
||||
*/
|
||||
do_action( 'um_profile_header', $args );
|
||||
|
||||
/**
|
||||
* UM hook
|
||||
* Filters classes of the User Profile navigation bar.
|
||||
*
|
||||
* @type filter
|
||||
* @title um_profile_navbar_classes
|
||||
* @description Additional classes for profile navbar
|
||||
* @input_vars
|
||||
* [{"var":"$classes","type":"string","desc":"UM Posts Tab query"}]
|
||||
* @change_log
|
||||
* ["Since: 2.0"]
|
||||
* @usage
|
||||
* <?php add_filter( 'um_profile_navbar_classes', 'function_name', 10, 1 ); ?>
|
||||
* @example
|
||||
* <?php
|
||||
* add_filter( 'um_profile_navbar_classes', 'my_profile_navbar_classes', 10, 1 );
|
||||
* function my_profile_navbar_classes( $classes ) {
|
||||
* Internal Ultimate Member callbacks (Priority -> Callback name -> Excerpt):
|
||||
* 10 - `um_followers_profile_navbar_classes()` from Followers extension class.
|
||||
* 10 - `profile_navbar_classes()` from Messaging extension class.
|
||||
*
|
||||
* @param {string} $classes User Profile navigation bar classes.
|
||||
*
|
||||
* @since 2.0
|
||||
* @hook um_profile_navbar_classes
|
||||
*
|
||||
* @return {string} User Profile navigation bar classes.
|
||||
*
|
||||
* @example <caption>Adds `my_custom_class` class to the navigation bar on the User Profile page.</caption>
|
||||
* function my_um_profile_navbar_classes( $classes ) {
|
||||
* // your code here
|
||||
* return $classes;
|
||||
* $classes .= ' my_custom_class';
|
||||
* echo $classes;
|
||||
* }
|
||||
* ?>
|
||||
* add_filter( 'um_profile_navbar_classes', 'my_um_profile_navbar_classes' );
|
||||
*/
|
||||
$classes = apply_filters( 'um_profile_navbar_classes', '' ); ?>
|
||||
$classes = apply_filters( 'um_profile_navbar_classes', '' );
|
||||
?>
|
||||
|
||||
<div class="um-profile-navbar <?php echo esc_attr( $classes ); ?>">
|
||||
<?php
|
||||
/**
|
||||
* UM hook
|
||||
* Fires for displaying User Profile navigation bar.
|
||||
*
|
||||
* @type action
|
||||
* @title um_profile_navbar
|
||||
* @description Profile navigation bar
|
||||
* @input_vars
|
||||
* [{"var":"$args","type":"array","desc":"Profile form shortcode arguments"}]
|
||||
* @change_log
|
||||
* ["Since: 2.0"]
|
||||
* @usage add_action( 'um_profile_navbar', 'function_name', 10, 1 );
|
||||
* @example
|
||||
* <?php
|
||||
* add_action( 'um_profile_navbar', 'my_profile_navbar', 10, 1 );
|
||||
* function my_profile_navbar( $args ) {
|
||||
* Internal Ultimate Member callbacks (Priority -> Callback name -> Excerpt):
|
||||
* 4 - `um_followers_add_profile_bar()` displays Followers button.
|
||||
* 5 - `add_profile_bar()` displays Messaging button.
|
||||
*
|
||||
* @param {array} $args User Profile data.
|
||||
*
|
||||
* @since 1.3.x
|
||||
* @hook um_profile_navbar
|
||||
*
|
||||
* @example <caption>Display some content before or after User Profile navigation bar.</caption>
|
||||
* function my_um_profile_navbar( $args ) {
|
||||
* // your code here
|
||||
* echo $content;
|
||||
* }
|
||||
* ?>
|
||||
* add_action( 'um_profile_navbar', 'my_um_profile_navbar' );
|
||||
*/
|
||||
do_action( 'um_profile_navbar', $args ); ?>
|
||||
do_action( 'um_profile_navbar', $args );
|
||||
?>
|
||||
<div class="um-clear"></div>
|
||||
</div>
|
||||
|
||||
<?php
|
||||
/**
|
||||
* UM hook
|
||||
* Fires for displaying User Profile menu.
|
||||
*
|
||||
* @type action
|
||||
* @title um_profile_menu
|
||||
* @description Profile menu
|
||||
* @input_vars
|
||||
* [{"var":"$args","type":"array","desc":"Profile form shortcode arguments"}]
|
||||
* @change_log
|
||||
* ["Since: 2.0"]
|
||||
* @usage add_action( 'um_profile_menu', 'function_name', 10, 1 );
|
||||
* @example
|
||||
* <?php
|
||||
* add_action( 'um_profile_menu', 'my_profile_navbar', 10, 1 );
|
||||
* function my_profile_navbar( $args ) {
|
||||
* Internal Ultimate Member callbacks (Priority -> Callback name -> Excerpt):
|
||||
* 9 - `um_profile_menu()` displays User Profile menu.
|
||||
*
|
||||
* @param {array} $args User Profile data.
|
||||
*
|
||||
* @since 2.0
|
||||
* @hook um_profile_menu
|
||||
*
|
||||
* @example <caption>Display some content before or after User Profile menu.</caption>
|
||||
* function my_um_profile_menu( $args ) {
|
||||
* // your code here
|
||||
* echo $content;
|
||||
* }
|
||||
* ?>
|
||||
* add_action( 'um_profile_menu', 'my_um_profile_menu' );
|
||||
*/
|
||||
do_action( 'um_profile_menu', $args );
|
||||
|
||||
if ( um_is_on_edit_profile() || UM()->user()->preview ) {
|
||||
|
||||
$nav = 'main';
|
||||
$nav = 'main';
|
||||
$subnav = UM()->profile()->active_subnav();
|
||||
$subnav = ! empty( $subnav ) ? $subnav : 'default'; ?>
|
||||
|
||||
$subnav = ! empty( $subnav ) ? $subnav : 'default';
|
||||
?>
|
||||
<div class="um-profile-body <?php echo esc_attr( $nav . ' ' . $nav . '-' . $subnav ); ?>">
|
||||
|
||||
<?php
|
||||
/**
|
||||
* UM hook
|
||||
* Fires for adding content in User Profile nav menu content tab.
|
||||
* $nav profile menu tab key.
|
||||
*
|
||||
* @type action
|
||||
* @title um_profile_content_{$nav}
|
||||
* @description Custom hook to display tabbed content
|
||||
* @input_vars
|
||||
* [{"var":"$args","type":"array","desc":"Profile form shortcode arguments"}]
|
||||
* @change_log
|
||||
* ["Since: 2.0"]
|
||||
* @usage add_action( 'um_profile_content_{$nav}', 'function_name', 10, 1 );
|
||||
* @example
|
||||
* <?php
|
||||
* add_action( 'um_profile_content_{$nav}', 'my_profile_content', 10, 1 );
|
||||
* function my_profile_content( $args ) {
|
||||
* Internal Ultimate Member callbacks (Priority -> Callback name -> Excerpt):
|
||||
* 10 - `um_profile_content_main()` displays `About` menu tab's content (v2).
|
||||
* 10 - `UM()->frontend()->profile()->about()` displays `About` menu tab's content (v3).
|
||||
* 10 - `um_profile_content_followers()` displays `Followers` menu tab's content.
|
||||
* 10 - `um_profile_content_following()` displays `Following` menu tab's content.
|
||||
* 10 - `um_profile_content_groups_list()` displays `User Groups List` menu tab's content.
|
||||
* 10 - `profile_tab_content()` displays `My Jobs` menu tab's content.
|
||||
* 10 - `profile_tab_dashboard_content()` displays `My Jobs Dashboard` menu tab's content.
|
||||
* 10 - `content_messages()` displays `Messages` menu tab's content.
|
||||
* 10 - `um_profile_content_private_content()` displays `Private Content` menu tab's content.
|
||||
* 10 - `um_profile_content_{$tab['tabid']}` displays custom Profile Tabs content.
|
||||
* 10 - `um_profile_content_reviews()` displays `Reviews` menu tab's content.
|
||||
* 10 - `show_wall()` displays `Activity` menu tab's content.
|
||||
*
|
||||
* @param {array} $args User Profile data.
|
||||
*
|
||||
* @since 1.3.x
|
||||
* @hook um_profile_content_{$nav}
|
||||
*
|
||||
* @example <caption>Display some content in User Profile `main` nav content tab.</caption>
|
||||
* function my_profile_content_main( $args ) {
|
||||
* // your code here
|
||||
* echo $content;
|
||||
* }
|
||||
* ?>
|
||||
* add_action( 'um_profile_content_main', 'my_profile_content_main' );
|
||||
*/
|
||||
do_action("um_profile_content_{$nav}", $args);
|
||||
|
||||
do_action( "um_profile_content_$nav", $args );
|
||||
/**
|
||||
* UM hook
|
||||
* Fires for adding content in User Profile nav > subnav menu content tab.
|
||||
* $nav profile menu tab key.
|
||||
* $subnav profile sub-menu tab key.
|
||||
*
|
||||
* @type action
|
||||
* @title um_profile_content_{$nav}_{$subnav}
|
||||
* @description Custom hook to display tabbed content
|
||||
* @input_vars
|
||||
* [{"var":"$args","type":"array","desc":"Profile form shortcode arguments"}]
|
||||
* @change_log
|
||||
* ["Since: 2.0"]
|
||||
* @usage add_action( 'um_profile_content_{$nav}_{$subnav}', 'function_name', 10, 1 );
|
||||
* @example
|
||||
* <?php
|
||||
* add_action( 'um_profile_content_{$nav}_{$subnav}', 'my_profile_content', 10, 1 );
|
||||
* function my_profile_content( $args ) {
|
||||
* Internal Ultimate Member callbacks (Priority -> Callback name -> Excerpt):
|
||||
* 10 - `um_bbpress_user_topics()` displays `Topics` submenu of bbPress tab's content.
|
||||
* 10 - `um_bbpress_user_replies()` displays `Replies` submenu of bbPress tab's content.
|
||||
* 10 - `um_bbpress_user_favorites()` displays `Favorites` submenu of bbPress tab's content.
|
||||
* 10 - `um_bbpress_user_subscriptions()` displays `Subscriptions` submenu of bbPress tab's content.
|
||||
* 10 - `profile_content_forums_topics()` displays `Topics` submenu of ForumWP tab's content.
|
||||
* 10 - `profile_content_forums_replies()` displays `Replies` submenu of ForumWP tab's content.
|
||||
* 10 - `profile_content_subscriptions()` displays `Subscriptions` submenu of ForumWP tab's content.
|
||||
* 10 - `profile_content_bookmarks()` displays `Bookmarks` submenu of ForumWP tab's content.
|
||||
* 10 - `profile_content_likes()` displays `Likes` submenu of ForumWP tab's content.
|
||||
* 10 - `um_profile_content_friends_myfriends()` displays `My Friends` submenu of Friends tab's content.
|
||||
* 10 - `um_profile_content_friends_friendreqs()` displays `Friends Requests` submenu of Friends tab's content.
|
||||
* 10 - `um_profile_content_friends_sentreqs()` displays `Send Friends Requests` submenu of Friends tab's content.
|
||||
* 10 - `um_profile_content_badges_my_badges()` displays `My badges` submenu of myCRED tab's content.
|
||||
* 10 - `um_profile_content_badges_all_badges()` displays `All badges` submenu of myCRED tab's content.
|
||||
* 10 - `get_bookmarks_content()` displays `All bookmarks with folders` submenu of User Bookmarks tab's content.
|
||||
* 10 - `get_bookmarks_content_all()` displays `All bookmarks` submenu of User Bookmarks tab's content.
|
||||
* 10 - `get_bookmarks_content_users()` displays `All bookmarked users` submenu of User Bookmarks tab's content.
|
||||
* 10 - `user_notes_profile_tab()` displays `View Notes` submenu of User Notes tab's content.
|
||||
* 10 - `get_add_note_form()` displays `Add Note` submenu of User Notes tab's content.
|
||||
* 10 - `get_gallery_content()` displays `Albums` submenu of User Photos tab's content.
|
||||
* 10 - `get_gallery_photos_content()` displays `Photos` submenu of User Photos tab's content.
|
||||
* 10 - `um_profile_content_purchases()` displays `Purchases` submenu of Woocommerce tab's content.
|
||||
* 10 - `um_profile_content_product_reviews()` displays `Product Reviews` submenu of Woocommerce tab's content.
|
||||
*
|
||||
* @param {array} $args User Profile data.
|
||||
*
|
||||
* @since 1.3.x
|
||||
* @hook um_profile_content_{$nav}_{$subnav}
|
||||
*
|
||||
* @example <caption>Display some content in User Profile `main` nav and `step2` subnav content tab.</caption>
|
||||
* function my_profile_content_main_step2( $args ) {
|
||||
* // your code here
|
||||
* echo $content;
|
||||
* }
|
||||
* ?>
|
||||
* add_action( 'um_profile_content_main_step2', 'my_profile_content_main_step2' );
|
||||
*/
|
||||
do_action( "um_profile_content_{$nav}_{$subnav}", $args ); ?>
|
||||
|
||||
do_action( "um_profile_content_{$nav}_$subnav", $args );
|
||||
?>
|
||||
<div class="clear"></div>
|
||||
</div>
|
||||
|
||||
@@ -218,69 +245,51 @@ $description_key = UM()->profile()->get_show_bio_key( $args );
|
||||
|
||||
</form>
|
||||
|
||||
<?php }
|
||||
<?php
|
||||
}
|
||||
} else {
|
||||
$menu_enabled = UM()->options()->get( 'profile_menu' );
|
||||
$tabs = UM()->profile()->tabs_active();
|
||||
$profile_tabs = UM()->profile()->tabs_active();
|
||||
|
||||
$nav = UM()->profile()->active_tab();
|
||||
$nav = UM()->profile()->active_tab();
|
||||
$subnav = UM()->profile()->active_subnav();
|
||||
$subnav = ! empty( $subnav ) ? $subnav : 'default';
|
||||
|
||||
if ( $menu_enabled || ! empty( $tabs[ $nav ]['hidden'] ) ) { ?>
|
||||
|
||||
if ( $menu_enabled || ! empty( $profile_tabs[ $nav ]['hidden'] ) ) {
|
||||
?>
|
||||
<div class="um-profile-body <?php echo esc_attr( $nav . ' ' . $nav . '-' . $subnav ); ?>">
|
||||
|
||||
<?php
|
||||
// Custom hook to display tabbed content
|
||||
/**
|
||||
* UM hook
|
||||
*
|
||||
* @type action
|
||||
* @title um_profile_content_{$nav}
|
||||
* @description Custom hook to display tabbed content
|
||||
* @input_vars
|
||||
* [{"var":"$args","type":"array","desc":"Profile form shortcode arguments"}]
|
||||
* @change_log
|
||||
* ["Since: 2.0"]
|
||||
* @usage add_action( 'um_profile_content_{$nav}', 'function_name', 10, 1 );
|
||||
* @example
|
||||
* <?php
|
||||
* add_action( 'um_profile_content_{$nav}', 'my_profile_content', 10, 1 );
|
||||
* function my_profile_content( $args ) {
|
||||
* // your code here
|
||||
* }
|
||||
* ?>
|
||||
*/
|
||||
do_action("um_profile_content_{$nav}", $args);
|
||||
|
||||
/**
|
||||
* UM hook
|
||||
*
|
||||
* @type action
|
||||
* @title um_profile_content_{$nav}_{$subnav}
|
||||
* @description Custom hook to display tabbed content
|
||||
* @input_vars
|
||||
* [{"var":"$args","type":"array","desc":"Profile form shortcode arguments"}]
|
||||
* @change_log
|
||||
* ["Since: 2.0"]
|
||||
* @usage add_action( 'um_profile_content_{$nav}_{$subnav}', 'function_name', 10, 1 );
|
||||
* @example
|
||||
* <?php
|
||||
* add_action( 'um_profile_content_{$nav}_{$subnav}', 'my_profile_content', 10, 1 );
|
||||
* function my_profile_content( $args ) {
|
||||
* // your code here
|
||||
* }
|
||||
* ?>
|
||||
*/
|
||||
do_action( "um_profile_content_{$nav}_{$subnav}", $args ); ?>
|
||||
|
||||
/** This action is documented in ultimate-member/templates/profile.php */
|
||||
do_action( "um_profile_content_$nav", $args );
|
||||
/** This action is documented in ultimate-member/templates/profile.php */
|
||||
do_action( "um_profile_content_{$nav}_$subnav", $args );
|
||||
?>
|
||||
<div class="clear"></div>
|
||||
</div>
|
||||
|
||||
<?php }
|
||||
<?php
|
||||
}
|
||||
}
|
||||
|
||||
do_action( 'um_profile_footer', $args ); ?>
|
||||
/**
|
||||
* Fires for adding content below User Profile menu.
|
||||
*
|
||||
* Internal Ultimate Member callbacks (Priority -> Callback name -> Excerpt):
|
||||
* 99 - `profile_footer_login_form()` displays User Login form related to messaging extension.
|
||||
*
|
||||
* @param {array} $args User Profile data.
|
||||
*
|
||||
* @since 2.0
|
||||
* @hook um_profile_footer
|
||||
*
|
||||
* @example <caption>Display some content in User Profile footer.</caption>
|
||||
* function my_um_profile_footer( $args ) {
|
||||
* // your code here
|
||||
* echo $content;
|
||||
* }
|
||||
* add_action( 'um_profile_footer', 'my_um_profile_footer' );
|
||||
*/
|
||||
do_action( 'um_profile_footer', $args );
|
||||
?>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
Reference in New Issue
Block a user