Hi all,
I’m customizing MediaPress according to the needs of the site I’m building. Just to mention that the ability to make pictures show only for friends is such a great feature! I will need to fix an issue that I noticed with that but one thing at a time.
First, I’m having a single public gallery created automatically at user registration. I found the way to do it from other posts on this forum but the code I ended up with is not working. Can you tell me if everything looks good?
Thank you in advance.function mpp_custom_create_gallery($user_id) { if ( ! function_exists( 'mpp_is_user_gallery_component' ) ) { return; } $gallery_id = mpp_create_gallery( array( 'creator_id' => $user_id, 'title' => $user_id, 'description' => '', 'status' => 'public', 'component' => 'members', 'component_id' => $user_id, 'type' => 'photo' ) ); if ( $gallery_id ) { mpp_update_wall_gallery_id( array( 'component' => 'members', 'component_id' => $user_id, 'media_type' => 'photo', 'gallery_id' => $gallery_id ) ); } } add_action( 'user_register', 'mpp_custom_create_gallery', 10, 1 );
I added an echo to output the $user_id, to make sure it passes and it is.
I also added an echo to give me the $gallery_id right after “$gallery_id = mpp_create_gallery( array( etc.” and it’s giving me the id which probably means that the gallery is created (I think/hope). So why is it not showing up on the user’s profile? Is there an extra step I’m missing?
ThanksI also tried the below code from one of Brajesh’s posts. Still nothing.
function mpp_custom_auto_create_gallery($user_id) { //make sure that user gallery functions are available if ( ! function_exists( 'mpp_create_gallery' ) ) { return; } //repeatable block $gallery_id = mpp_create_gallery( array( 'creator_id' => $user_id, 'title' => 'Pictures', 'description' => '', //add description if any 'status' => 'public',//can use any of the status e.g. 'public' , 'private', 'loggedin', 'friends' etc 'component' => 'members',//for user 'component_id' => $user_id,//no need to change 'type' => 'photo', //can change to "audio", "video", "doc" ) ); //let us keep the id in usermeta to avoid creating it again, right? if ( ! is_wp_error( $gallery_id ) ) { update_user_meta( $user_id, '_Pictures', $gallery_id ); //you can change the key to anything } //end of repeatable block //repeatable block $gallery_id = mpp_create_gallery( array( 'creator_id' => $user_id, 'title' => 'Private Album', 'description' => '', //add description if any 'status' => 'friendsonly',//can use any of the status e.g. 'public' , 'private', 'loggedin', 'friends' etc 'component' => 'members',//for user 'component_id' => $user_id,//no need to change 'type' => 'photo', //can change to "audio", "video", "doc" ) ); //let us keep the id in usermeta to avoid creating it again, right? if ( ! is_wp_error( $gallery_id ) ) { update_user_meta( $user_id, '_Private_Album', $gallery_id ); //you can change the key to anything } //end of repeatable block //echo $user_id . ' ' . $gallery_id; } add_action( 'user_register', 'mpp_custom_auto_create_gallery', 10, 1 );
Hi Panos,
Welcome to BuddyDev.
Your code is correct. My guess is the problem lies with the hook it is attached to.MediaPress is state is setup on init action and most probably the user_register is getting called early.
At that time, MediaPress will not have the type/status/component set and that’s why the gallery might not be created.
I will suggest hooking to any action that comes after init. I believe your goal is to optimize the database query by hooking to account creation.
It will be fine even if you hooked to ‘mpp_actions’ and stored the id in user meta. BuddyPress uses the cached meta for the displayed user/logged user and members loop users. So, your code won’t be causing any extra database query.
Regards
BrajeshHi Brajesh,
Thanks for the reply. So yes, if I hook it up to ‘mpp_actions’ it works fine and you’re right, I’m doing it to optimize database query. I didn’t quite get the part where I store the id in user meta though. Which id? Do you have example code?
Thanks again for your help. It’s getting there!
-PanosHi Panos,
Thank you.I was suggesting that when you created the gallery, you get gallery id. You can store it in the user meta for that user and retrieve it later to check for the existence of gallery etc.
I am assuming that you are using the get_current_user_id() if hooking to mpp_action.
Regards
BrajeshBrajesh,
I didn’t want to create another post since this is the same subject but let me know if I should. Not a big deal but it would be great if it could be done. My question is, can I hook the auto-create Gallery function to the BP Autologin on Activation plugin? That way it just runs once and that’s that.
Thanks for all you do!
-PanosI will recommend using ‘bp_first_activity_for_member’. That should do it.
Regards
Brajesh
The topic ‘ [Resolved] Help w/ auto-create gallery code’ is closed to new replies.