Pro-sites no longer respecting trial period before making charge

Previously, Pro-sites would not bill the customer until trial period was over if somebody decided to upgrade to a pro-site during their trial period.

Now it seems to bill immediately even when person signs up during trial.

Is there a way to not bill the customer until trial is over? Was that functionality removed or am i doing something wrong.


  • Vinod Dalvi

    Hi @Ben,

    I hope you are well today and thank you for your question.

    The functionality is changed because of the issue reported on the following topic.

    The person should be billed immediately when he upgrades to a pro-site during their trial period to resolve the issue mentioned on the above thread.

    If the customer doesn't want to bill him during the trial then he shouldn't upgrade to a pro-site during trial but after the trial expires or about to expire.

    Please advise if you have more questions.

    Kind Regards,
    Vinod Dalvi

  • Ben

    hmm interesting.

    Well my issue is this, have a few hundred customers that i am transitioning to the new system. Many paid for the old system a year in advance. So for instance, somebody on the old system is paid up till dec 29th.

    The sooner I can grab their info for the new site and the card information, then the more likely they will stay with me.

    Previously I was creating a trial date in the system that would end once their billing from their previous site was completed. So in our example i would have counted the days till dec 29th, and then extended the trial till then so that they weren't billed for the new subscription till then.

    How can I achieve that now with the revised change?


  • Vinod Dalvi

    Hi @Ben,

    Thank you for your detailed reply.

    I have notified one of our SLS developer to get his invaluable reply about whether we can develop any plugin option by considering this as feature request or this is a custom functionality which needs to be achieved by developing custom code or is there any work around to achieve it.

    The SLS developer will reply on this thread shortly.

    Vinod Dalvi

  • Jose


    I took a look and it is indeed designed to work in this way, as Vinod pointed above.

    Providing a custom solution for this is a bit out of scope for us, since it would require a good round of testing and, possibly, a good amount of code.

    Assuming that you are using paypal gateway, you need to look into the file ../wp-content/plugins/pro-sites/pro-sites-files/gateways/gateway-paypal-express-pro.php line 979:

    //check for modifiying
    if ( is_pro_site( $blog_id ) && ! is_pro_trial( $blog_id ) ) {
    	$modify = $psts->get_expire( $blog_id );
    	//check for a upgrade and get new first payment date
    	if ( $upgrade = $psts->calc_upgrade( $blog_id, $initAmount, $_SESSION['LEVEL'], $_SESSION['PERIOD'] ) ) {
    		$modify = $upgrade;
    	} else {
    		$upgrade = false;
    } else {
    	$modify = false;

    You can see that it is taking the expire date into account only when it is not a trial.

    If you are open to try and test in your install, there might be a quick solution by changing this:
    if ( is_pro_site( $blog_id ) && ! is_pro_trial( $blog_id ) ) {
    into this:
    if ( is_pro_site( $blog_id ) ) {

    Another alternative would be to change the value for the column 'gateway' in the table '{prefix}pro_sites' from 'Trial' to 'paypal'.

    Hope this helps. As I said, this is not tested and you might need to hire a dev if the customization requires further tweaks.

    Please let us know if it works for you.


Thank NAME, for their help.

Let NAME know exactly why they deserved these points.

Gift a custom amount of points.