Free Trial with Separate Forms

Hello!

I am working on creating a new process for users to try out our membership site with a free trial and dealing with a few set-backs due to the new way we are attempting to do this. Here is the process we would like to create for our users:

->User lands on a page with the Free Registration form so they can create an account.

->Once they create the account, they are sent to another page with a PayPal Pro Form (I am currently using Billing Modification to this) to pay for the free trial (14 days free then the payment takes place).

My issues are as followed:

  1. When the user goes from the free registration to the payment page, the page says they are not signed in. Is there a way that they can be signed in once they create the account?

  2. When the 14 days are up, I would like the successful payment to trigger the user to move from level #7 (which is our specific level for free trial users) to level #1 (our regular subscriber member level). I have not found a way of making this happen with my S2Member Pro Forms.

  3. Is there a way of having the second year of payment (and from then on) be a different amount? For example: first year would be $20 and then make the second year (and from then on) be $30.

Thank you very much for your help!

(1) Why don’t you just use one form to both register them and pay?

(2) Try adding this as an mu-plugin:

<?php
add_action( 'ws_plugin__s2member_during_configure_user_registration', 's2_auto_login_after_registration' );

function s2_auto_login_after_registration( $vars = array() ) {
    if ( is_admin() ) return; // Not when an Admin is creating accounts.
    wp_set_auth_cookie( $vars['user_id'], FALSE, FALSE ); // Log the user in.
    
    if ( did_action( 'login_form_register' ) ) // For `/wp-login.php?action=register` compatibility.
    c_ws_plugin__s2member_login_redirects::login_redirect( $vars['login'], $vars['user'] );
    
    $GLOBALS['_s2_auto_login_after_registration_vars'] = $vars; // For Pro Form compatibility.
    
    add_action( 'template_redirect', '_s2_auto_login_after_registration', 1 );
}

// Pro Form redirection handler
function _s2_auto_login_after_registration() {
    $vars = $GLOBALS['_s2_auto_login_after_registration_vars'];
    c_ws_plugin__s2member_login_redirects::login_redirect( $vars['login'], $vars['user'] );
    wp_redirect( home_url( '/welcome/' ) );
    exit;
}

(3) If you sign them up for just a year, then you can use a Billing Modification Form to offer them re-subscriptions at the higher price.

You are making things very difficult for yourself. First, why do you have a seventh level for free trial members? I’ll assume it is because you aren’t really giving them a “free trial” of all your content, but if that isn’t the case I really would like to hear it.

s2Member is equipped to handle free trials “out-of-the-box” without jumping through hoops (and you can’t say that about everything with s2Member, as much as I love it). It is not equipped to do what you are asking “out-of-the-box”.

There are several threads in this forum about logging in new Members automatically after registration. Try the Search icon at the top of the page.

Given that this is exactly what you want to do:

  • Register as a free Subscriber
  • Fill out a Billing Modification form for an upgrade to Level 7 for 14 days
  • After 14 days demote to Level 1

Then the answer is this cannot be done without custom code. However, if you are actually offering people a free trial with access to all Level 1 content all you have to do is have them fill out a Level 1 Registration Pro-Form with a 14-day free trial.

No, and since you say you are using PayPal then it couldn’t be done even if you wrote custom code because PayPal has a 25% limit on price increases for existing subscriptions.