Pro Sites and Buddypress = registration + subsite creation

I've been bouncing around trying 3 dozen different configurations and custom setups and premium 3rd-party option - and I surrender, I'll use default... but still confused and need help deciphering 'out of the box' setup

I want a BuddyPress community
I want to offer Paid for subsites (not free) that have subscription and expire
I would like Pro Sites to handle subsite creation and levels

So...
in network admin > network settings > Both sites and user accounts can be registered.

If I encourage user registration ie Buddypress, example.com/register/ users are given option to create a subsite for free (I don't want that)

If I click network admin > Pro Sites > Signup on Checkout - then /register/ gets redirected to the Pro Sites signup page and there doesn't seem a way to sign up as a simple buddypress community member

It also appears that the Set Password plugin breaks when BuddyPress is enabled - new users can't login using their password - so if they must go through BuddyPress reg first that is okay and acceptable, but not sure how that would work

so please set me straight here...
1) how can I allow people to join Buddypress without having to create a blog?
2) how can I force using Pro Sites to create the paid blog when the user wants it, while also allowing community signups?
3) is there a way to do this without requiring the email activation/confirmation?

I don't have a problem requiring a user to be logged in to create a blog using Pro Sites but I can't figure out the workflow

THANKS

  • Predrag Dubajic

    Hey tripvendor,

    Hope you're doing well today :slight_smile:

    My suggestion would be to remove the site creation section from the BuddyPress page and thus leaving site registration from pro sites page.

    This way you would have one page for user registration and one for Pro Site creation.

    You can hide new site section from BP registration page with some simple CSS like this:

    #blog-details-section {
    display: none;
    }

    This is not the safest method since the field will still be visible if someone inspects the page and that would allow them to create site for free.

    What you can do to remove it completely is go to /wp-content/plugins/buddypress/bp-templates/bp-legacy/buddypress/members/ and copy register.php file.
    In your child theme create /buddypress/members/ folder and paste the file there.

    Edit the file and remove entire code for "Blog Creation Details" section, it should be lines 257 to 342
    After that the form will be removed completely.

    It also appears that the Set Password plugin breaks when BuddyPress is enabled - new users can't login using their password - so if they must go through BuddyPress reg first that is okay and acceptable, but not sure how that would work

    Which plugin are you referring to here? It might be best having this question in separate thread so we can deal with it separately.

    is there a way to do this without requiring the email activation/confirmation?

    Could you give a bit more info about this, which emails exactly you want disabled and which ones should still be sent?

    Best regards,
    Predrag

  • tripvendor

    Hi -

    I'm not sure about this.

    In order to have site creation from Pro Sites, we need to have Pro Sites > General Settings > Signup on Checkout enabled, which redirects Buddypress /register/ completely to the Pro Sites create site page only and simple user can't register in Buddypress.

    So hiding the Blog creation option means a subsite can't be created. (unless I'm missing an option somewhere)

  • Adam Czajczyk

    Hello tripvendor!

    I hope you're having a nice day!

    You mentioned before that you "don't have a problem requiring a user to be logged in to create a blog using Pro Sites but I can't figure out the workflow". if it's acceptable than the "Predrag's way" should work. Let me however share some more details on this (step by step) :slight_smile:

    1. Go to the "Network Admin -> Network Settings" and make sure that "Both sites and user accounts can be registered." option is enabled
    2. Go to the "Network Admin -> Pro Sites -> Settings -> General Settings" page and make sure that "Signup on Checkout" option is disabled and the "Allow Free Signup" (as you don't want free sites) is disabled as well
    3. Use Predrag's CSS to hide the "create site" checkbox from BP registration page.

    Then visitor that comes to your site he/she should be directed to the BP registration page to create an account ("BP community" part). If they visit Pro Sites checkout directly they'll be asked to login before they can proceed.

    Now given that they don't have an option to create a site on BP registration page they will just create an account. Any logged in user can be then given a link to "Pro Sites" checkout which will allow them to register a premium/paid site.

    I tested it on my end and unless I'm missing something (hopefully not) it's working fine, separating "registration" and "site creation". Can you give it a try and see if that works for you?

    Best regards,
    Adam

  • tripvendor

    okay, still need a bit of help

    Things working as intended; almost...

    on the Pro Sites page it isn't displaying New Blog Template options either before or after 'choosing plan' (it does if I'm logged in as SuperAdmin, but not for regular user) - I'm not sure if the blog template will appear after paying, but it is much more preferable to have on the Pro Sites page. The templates will show up on a showcase page but really need them on the Pro Site order page before selecting the Plan Level

    am I missing a setting or tweak?

    thanks

  • Adam Czajczyk

    Hello tripvendor!

    This shouldn't be caused by this changes. Please go to the "Network Admin -> Blog Templates -> Settings" page and make sure that

    1. The "Show templates selection on registration" option is checked on (enabled)
    2. The "Type of selection" option is set to any option but "As a showcase inside a page" (this one last option will move template selection to a separate page while all the other options will show it immediately after the Pro Sites plan has been selected, along with Pro Sites form).

    Let me know please if that helped :slight_smile:

    Best regards,
    Adam

  • tripvendor

    Hi Thank you very much for following up

    the selector Does display after clicking to select plan - I would prefer it to be displayed before plan (because of usability/conversion that way)

    I'd also very much like to have a separate showcase page of templates In Addition to the selector on the /pro-sites/ page - I realize this isn't 'out of the box' but sure would be nice to have. - maybe add the php for that and insert on page of choice as a widget.

    I've got the dashboard disabled for performance reasons so the whole admin access thing is problematic anyway

    thanks

  • Adam Czajczyk

    Hello tripvendor!

    Having the separate showcase page in addition to existing selection wouldn't be possible "out of the box" but I think a little workaround should do the "trick" (it seems to be working well on my end):

    1. Create a custom page template first. It would be best to do it within a child-theme and use a default "page.php" template file of the current theme as a "starting point"; here's more info on creating custom page templates:

    https://premium.wpmudev.org/blog/creating-custom-page-templates-in-wordpress/

    2. Inside that page template add this code instead or along (above or below) the regular WP loop code:

    <div id="blog_template-selection">
    				<h3><?php _e('Select a template', 'blog_templates') ?></h3>
    				<?php
    				if ( class_exists( 'BuddyPress' ) ) {
    					$sign_up_url = bp_get_signup_page();
    				}
    				else {
    					$sign_up_url = network_site_url( 'wp-signup.php' );
    					$sign_up_url = apply_filters( 'wp_signup_location', $sign_up_url );
    				}
    				$sign_up_url = add_query_arg( 'blog_template', 'just_user', $sign_up_url );
    				?>
    				<p><a href="<?php echo esc_url( $sign_up_url ); ?>"><?php _e('Just a username, please.', 'blog_templates') ?></a></p>
    				<?php
    					//if ( $settings['show-categories-selection'] )
    					$templates = nbt_theme_selection_toolbar( $templates );
    				?>
    
    				<div class="blog_template-option">
    
    				<?php
    				foreach ( $templates as $tkey => $template ) {
    					nbt_render_theme_selection_item( 'page-showcase', $tkey, $template, $settings );
    				}
    				?>
    				<div style="clear:both;"></div>
    				</div>
    			</div>

    3. Create a new page in your WP backend and then assign this new template to it.

    As a result on this new page a showcase of available templates should be displayed and it should be independent of the Pro Sites checkout template selection. I think you may want to give it a try :slight_smile:

    As for moving templates above the Pricing Tables. Currently this would most likely require some changes in a plugin code. It could probably be possible to move that entire "block" with some additional JS and CSS but I'd expect that it could break the worflow in some cases. I can try that if you wish but I can't promise you any guaranteed results so let me know what do you think.

    Best regards,
    Adam

Thank NAME, for their help.

Let NAME know exactly why they deserved these points.

Gift a custom amount of points.