-
-
Save ultimatemember/643cd90967e5e415378d to your computer and use it in GitHub Desktop.
/* add a custom tab to show user pages */ | |
add_filter('um_profile_tabs', 'pages_tab', 1000 ); | |
function pages_tab( $tabs ) { | |
$tabs['pages'] = array( | |
'name' => 'Pages', | |
'icon' => 'um-faicon-pencil', | |
'custom' => true | |
); | |
return $tabs; | |
} | |
/* Tell the tab what to display */ | |
add_action('um_profile_content_pages_default', 'um_profile_content_pages_default'); | |
function um_profile_content_pages_default( $args ) { | |
global $ultimatemember; | |
$loop = $ultimatemember->query->make('post_type=page&posts_per_page=10&offset=0&author=' . um_profile_id() ); | |
while ($loop->have_posts()) { $loop->the_post(); $post_id = get_the_ID(); | |
?> | |
<div class="um-item"> | |
<div class="um-item-link"><i class="um-icon-ios-paper"></i><a href="<?php the_permalink(); ?>"><?php the_title(); ?></a></div> | |
</div> | |
<?php | |
} | |
} |
Try this:
$ultimatemember->user->get_role_name()
You may also need to fetch the current user first:
$user_id = get_current_user_id();
um_fetch_user( $user_id );
TRY THIS WHERE? Can you provide me full code with your edits pretty please
TRY THIS WHERE? Can you provide me full code with your edits pretty please
global $ultimatemember;
$user_id = get_current_user_id();
um_fetch_user( $user_id );
// Check if user role is not "Company"
if ($ultimatemember->user->get_role_name() != 'company') {
unset($tabs['posts']);
}
return $tabs;
No need for the capitals... I am just another user who has been trying to figure this kind of stuff out on my own, and am just trying to help you out here.
I actually went about it a different way. I know it s a bit of a process but once completed it allows for ALLOT OF CONTROL!!!
Installed:
Ultimate Member - Profile Tabs
https://wordpress.org/plugins/profile-tabs-for-ultimate-member/
Ran fix
https://gist.github.com/gboudreau/dc94478877dab935edf562f826531906
This creates a custom shortcode to call to external php file and print.
https://wordpress.stackexchange.com/questions/49675/include-php-file-in-content-using-shortcode
if (is_admin()) {
include dirname(__FILE__) . '/admin.php';
} else {
function includeme_call($attrs, $content = null) {
if (isset($attrs['file'])) {
$file = strip_tags($attrs['file']);
if ($file[0] != '/')
$file = ABSPATH . $file;
ob_start();
include($file);
$buffer = ob_get_clean();
$options = get_option('includeme', array());
if (isset($options['shortcode'])) {
$buffer = do_shortcode($buffer);
}
} else {
$tmp = '';
foreach ($attrs as $key => $value) {
if ($key == 'src') {
$value = strip_tags($value);
}
$value = str_replace('&', '&', $value);
if ($key == 'src') {
$value = strip_tags($value);
}
$tmp .= ' ' . $key . '="' . $value . '"';
}
$buffer = '<iframe' . $tmp . '></iframe>';
}
return $buffer;
}
add_shortcode('includeme', 'includeme_call');
}
Created new profile tab
ULTIMATE MEMBER >> PROFILE TABS
Profile tab creation also has its own options
Added Shortcode to profile tab text editor not visual
[includeme file="wp-content/soundcloud.php"]
Created File
public_html/wp-content/youtube.php
Now I can recycle to add as many tabs as I like with custom conditions and custom code for my needs
I appreciate the fix but for me this has way more control. Kinda glad I was a bit inpatient.
Could you help with this php issue?
Halfway, this has worked for me: https://docs.ultimatemember.com/article/69-how-do-i-add-my-extra-tabs-to-user-profiles
Before continuing I want to greet and applaud you for such an excellent plugin, it is a very good job, congratulations.
I am using the basic version available in the WordPress plugin repository
By implementing the code that you have provided at: https://docs.ultimatemember.com/article/69-how-do-i-add-my-extra-tabs-to-user-profiles
I can only see basic user profile information
line 36 of the code
36 'description'
);
But I would like to be able to replace that information with a page or the shortcode of a page. Do you think you could tell us how this objective can be achieved?
Thank you very much UM
I actually went about it a different way. I know it s a bit of a process but once completed it allows for ALLOT OF CONTROL!!!
Installed:
Ultimate Member - Profile Tabs
https://wordpress.org/plugins/profile-tabs-for-ultimate-member/Ran fix
https://gist.github.com/gboudreau/dc94478877dab935edf562f826531906
This creates a custom shortcode to call to external php file and print.
https://wordpress.stackexchange.com/questions/49675/include-php-file-in-content-using-shortcode
if (is_admin()) { include dirname(__FILE__) . '/admin.php'; } else { function includeme_call($attrs, $content = null) { if (isset($attrs['file'])) { $file = strip_tags($attrs['file']); if ($file[0] != '/') $file = ABSPATH . $file; ob_start(); include($file); $buffer = ob_get_clean(); $options = get_option('includeme', array()); if (isset($options['shortcode'])) { $buffer = do_shortcode($buffer); } } else { $tmp = ''; foreach ($attrs as $key => $value) { if ($key == 'src') { $value = strip_tags($value); } $value = str_replace('&', '&', $value); if ($key == 'src') { $value = strip_tags($value); } $tmp .= ' ' . $key . '="' . $value . '"'; } $buffer = '<iframe' . $tmp . '></iframe>'; } return $buffer; } add_shortcode('includeme', 'includeme_call'); }
Created new profile tab
ULTIMATE MEMBER >> PROFILE TABS
Profile tab creation also has its own options
Added Shortcode to profile tab text editor not visual
[includeme file="wp-content/soundcloud.php"]
Created File
public_html/wp-content/youtube.php
Now I can recycle to add as many tabs as I like with custom conditions and custom code for my needs
I appreciate the fix but for me this has way more control. Kinda glad I was a bit inpatient.
Can you share step for step how you did this please.
Hi guys,
thanks for this great plugin. I tried the code for adding a new tab, but ran into a problem
I had to change
$loop = $ultimatemember->query->make
to
$loop = $ultimatemember->query()->make
Please make the change in the documentation, as it took me half an hour to figure out
Cordial greeting
Excuse me gentlemen, I KNOW very well that it is not your obligation, much less, but I really do not know what to do or who to turn to.
I am not a programmer, I am just a humble designer who has made a web page using the Ultimate Member plugin, because it is free (it is what is within the reach of my economy ...)
I see that you and several here in this thread, have had the need to create additional tabs for your users, well, me too, only I do not know anything about code and although it is very difficult for me to do so, I presume to understand after some time of effort and a lot of trial and error, but in the end I manage to understand.
I will tell you about my case to see if someone can guide me a little and give me a hand, specifically and at the risk of sounding a little daring, ask, with much respect and humility, for the lines of code that will help me solve the great problem that I am facing. now. (Believe me, I have done everything in the UM plugin developer documentation to the letter, but this does not give me a positive result.)
I have my website, I have UM, I have user registration enabled, so far, so good.
I have two user types with attribute level 2 (members only) (- * There are values for 'default_privacy' attribute:
- 0 - Anyone,
- 1 - Guests only,
- 2 - Members only,
- 3 - Only the owner
- / -)
And in turn those members or registered users of level 2 are: Employer and Employee.
---- I hope I have understood up to here ----
Using the sample code from the original plugin documentation
(https://docs.ultimatemember.com/article/69-how-do-i-add-my-extra-tabs-to-user-profiles)
I have managed to create an additional tab, I will actually need two, but I cannot get the first one to work properly.
What I'm looking for is that when a level two user enters the profile, they see ONLY the tab that corresponds to them, I explain a little more, as I already mentioned, I only have two types of registered users, Employer and Employee, well, what I seek to achieve is that if the employer user enters their profile in the new personalized tab, they can find an html
But ----, eye, but, if the one who enters your profile is a level two user but of the Employee type, they will be shown, also 1 single tab, different from that of the employer, but in the same location, that is to say the tab next to the "information" tab that has UM by default, and that tab in its content also has an html
tab 1, shows the content only to the user registered as an employer
tab 2, shows only the content to the user registered as an employee
Pdta. The forms I have already solved satisfactorily and each one I have on a different and independent page, on the one hand, a page for the employer form on the other hand, another page for the form of the person who is seeking employment or specifically the Employee.
To those who can help me, all that remains is to reiterate again and again and my gratitude and respect.
I did find this but get WHITE SCREEN when adding it to functions.php
add_filter('um_profile_tabs', 'remove_posts_tab_for_members', 1000 );
function remove_posts_tab_for_members( $tabs ) {
}
Receive white screen with error:
[28-Mar-2020 02:31:55 UTC] PHP Fatal error: Uncaught Error: Call to a member function get_role() on null in /home3/hisking3/public_html/wp-content/themes/recond-child/functions.php:154
Stack trace:
#0 /home3/hisking3/public_html/wp-includes/class-wp-hook.php(288): remove_posts_tab_for_members(Array)
#1 /home3/hisking3/public_html/wp-includes/plugin.php(206): WP_Hook->apply_filters(Array, Array)
#2 /home3/hisking3/public_html/wp-content/plugins/ultimate-member/includes/core/class-profile.php(150): apply_filters('um_profile_tabs', Array)
#3 /home3/hisking3/public_html/wp-content/plugins/ultimate-member/includes/class-config.php(580): um\core\Profile->tabs()
#4 /home3/hisking3/public_html/wp-content/plugins/ultimate-member/includes/class-init.php(969): um\Config->__construct()
#5 /home3/hisking3/public_html/wp-content/plugins/ultimate-member/includes/um-short-functions.php(1334): UM->config()
#6 /home3/hisking3/public_html/wp-content/plugins/ultimate-member/includes/core/um-filters-profile.php(49): um_is_core_page('user')
#7 /home3/hisking3/public_html/wp in /home3/hisking3/public_html/wp-content/themes/recond-child/functions.php on line 154
If function is removed site is back up. I'm assuming the function get_role() has changed to something else