I have this function...
$user = wp_get_current_user();
if (( in_category('Locked') ) && in_array( 'subscriber', (array) $user->roles ) ) {
/* Is subscriber, is in category Locked, has amount of posts */
echo do_shortcode('[shortcode_name]');
} else if (( in_category('Locked') ) && in_array( 'subscriber', (array) $user->roles ) ) {
/* Is subscriber, is in category Locked, has NO amount of posts */
echo '<div id="locked">
You are subscriber without number of posts!
</div>';
} else if ( in_category('Locked') ) {
/* Is NOT subscriber, is in category Locked, has NO amount of posts */
echo '<div id="locked">
Login or register pal!
</div>';
} else {
/* Is NOT subscriber, is NOT in category Locked, has NO amount of posts */
echo do_shortcode('[shortcode_name]');
}
I need to apply "has amount of posts" or "check if user is author of numebr of posts" on first part of code...
if (( in_category('Locked') ) && in_array( 'subscriber', (array) $user->roles ) ) && ?????
If this way can't work, I would have one more possible solution, it is to auto move user from subscriber to contributor once subscriber posted number of posts, but this first solution would be better.
I have this function...
$user = wp_get_current_user();
if (( in_category('Locked') ) && in_array( 'subscriber', (array) $user->roles ) ) {
/* Is subscriber, is in category Locked, has amount of posts */
echo do_shortcode('[shortcode_name]');
} else if (( in_category('Locked') ) && in_array( 'subscriber', (array) $user->roles ) ) {
/* Is subscriber, is in category Locked, has NO amount of posts */
echo '<div id="locked">
You are subscriber without number of posts!
</div>';
} else if ( in_category('Locked') ) {
/* Is NOT subscriber, is in category Locked, has NO amount of posts */
echo '<div id="locked">
Login or register pal!
</div>';
} else {
/* Is NOT subscriber, is NOT in category Locked, has NO amount of posts */
echo do_shortcode('[shortcode_name]');
}
I need to apply "has amount of posts" or "check if user is author of numebr of posts" on first part of code...
if (( in_category('Locked') ) && in_array( 'subscriber', (array) $user->roles ) ) && ?????
If this way can't work, I would have one more possible solution, it is to auto move user from subscriber to contributor once subscriber posted number of posts, but this first solution would be better.
I guess count_user_posts
is what you're looking for ;)
This is how you use it:
$user_post_count = count_user_posts( $userid , $post_type );
And it returns the number of published posts the user has written in this post type.
PS. And if you want some more advanced count, get_posts_by_author_sql
can come quite handy.
Guy above answered correctly, but for anyone needing this further, I will add full code as response too...
$user = wp_get_current_user();
$user_ID = get_current_user_id();
$user_post_count = count_user_posts( $user_ID );
$my_post_meta = get_post_meta($post->ID, 'shortcode_name', true);
if (( in_category('Locked') ) && in_array( 'subscriber', (array) $user->roles ) && $user_post_count == 5 ) {
/* Is subscriber, is in category Locked, has amount of posts */
echo do_shortcode('[shortcode_name]');
} else if (( in_category('Locked') ) && in_array( 'subscriber', (array) $user->roles ) ) {
/* Is subscriber, is in category Locked, has NO amount of posts */
echo '<div id="locked">
You are subscriber without number of posts!
</div>';
} else if (( in_category('Locked') ) && in_array( 'administrator', (array) $user->roles ) ) {
/* Is subscriber, is in category Locked, has power */
echo do_shortcode('[shortcode_name]');
} else if ( in_category('Locked') ) {
/* Is NOT subscriber, is in category Locked, has NO amount of posts */
echo '<div id="locked">
Login or register pal!
</div>';
} else if ( ! empty ( $my_post_meta ) ) {
/* Post meta exist */
echo do_shortcode('[shortcode_name]');
} else {
/* Is NOT subscriber, is NOT in category Locked, has NO amount of posts */
/* Post meta NOT exist */
echo do_shortcode('[shortcode_name_1]');
}