This commit is contained in:
Joey Kimsey
2024-12-21 16:26:05 -05:00
parent 0c2fa757dd
commit f8e75e847d
59 changed files with 861 additions and 387 deletions

View File

@ -70,7 +70,7 @@ class Member extends Controller {
}
try {
$session = self::$stripe->billingPortal->sessions->create([
'customer' => $customer,
'customer' => $customer->stripe_customer,
'return_url' => Routes::getAddress() . 'member/manage',
]);
} catch (\Stripe\Exception\InvalidRequestException $e) {
@ -174,7 +174,7 @@ class Member extends Controller {
Session::flash( 'success', 'We aren\'t currently accepting new members, please check back soon!' );
return Redirect::home();
}
Views::view( 'members.landing1', $product );
Views::view( 'members.landing', $product );
}
public function checkout( $plan = 'monthly' ) {
@ -187,6 +187,19 @@ class Member extends Controller {
Issues::add( 'error', 'no customer' );
return $this->index();
}
$plan = strtolower( $plan );
if ( ! in_array( $plan, ['monthly','yearly','upgrade'] ) ) {
Session::flash( 'error', 'Unknown plan' );
return Redirect::to( 'home/index' );
}
if ( $plan === 'upgrade' ) {
$plan = 'yearly';
$successUrl = Routes::getAddress() . 'member/payment/upgrade?session_id={CHECKOUT_SESSION_ID}';
} else {
$successUrl = Routes::getAddress() . 'member/payment/complete?session_id={CHECKOUT_SESSION_ID}';
}
$stripePrice = $this->findPrice( $plan );
$session = self::$stripe->checkout->sessions->create([
@ -197,7 +210,7 @@ class Member extends Controller {
'quantity' => 1,
]],
'mode' => 'subscription',
'success_url' => Routes::getAddress() . 'member/payment/complete?session_id={CHECKOUT_SESSION_ID}',
'success_url' => $successUrl,
'cancel_url' => Routes::getAddress() . 'member/payment/cancel',
]);
header('Location: ' . $session->url);
@ -206,7 +219,7 @@ class Member extends Controller {
public function payment( $type = '' ) {
$type = strtolower( $type );
if ( ! in_array( $type, ['cancel','complete'] ) ) {
if ( ! in_array( $type, ['cancel','complete','upgrade'] ) ) {
Session::flash( 'error', 'Unknown Payment' );
return Redirect::to( 'home/index' );
}
@ -216,6 +229,11 @@ class Member extends Controller {
return Views::view( 'members.paymentcanceled' );
}
if ( $type == 'upgrade' ) {
self::$title = 'Better Members Area';
return Views::view( 'members.upgradeCompleted' );
}
self::$title = '(almost) Members Area';
Views::view( 'members.paymentcomplete' );
}