Add bookmark exports and sharing + various fixes

This commit is contained in:
Joey Kimsey
2024-12-15 17:20:57 -05:00
parent 3ef97138a2
commit ab2f009e5b
26 changed files with 975 additions and 297 deletions

View File

@ -18,6 +18,7 @@ use Stripe\StripeClient;
use TheTempusProject\Bedrock\Classes\Config;
use TheTempusProject\Hermes\Functions\Route as Routes;
use TheTempusProject\Models\Memberships;
use TheTempusProject\Models\MembershipProducts as Products;
class Members extends Plugin {
public static $stripe;
@ -42,7 +43,7 @@ class Members extends Plugin {
];
public $admin_links = [
[
'text' => '<i class="fa fa-fw fa-arrows-v"></i> Memberships',
'text' => '<i class="fa fa-fw fa-arrow-down"></i> Memberships',
'url' => [
[
'text' => '<i class="fa fa-fw fa-database"></i> Products',
@ -60,15 +61,20 @@ class Members extends Plugin {
],
];
public $main_links = [
// [
// 'text' => 'Members',
// 'url' => '{ROOT_URL}member/index',
// 'filter' => 'member',
// ],
[
'text' => 'Members',
'url' => '{ROOT_URL}member/index',
'filter' => 'member',
'text' => 'Subscribe',
'url' => '{ROOT_URL}member/join',
'filter' => 'nonmember',
],
[
'text' => 'Become a Member',
'url' => '{ROOT_URL}member/join/1',
'filter' => 'nonmember',
'text' => 'Upgrade',
'url' => '{ROOT_URL}member/upgrade',
'filter' => 'upgrade',
],
];
public $resourceMatrix = [
@ -129,7 +135,13 @@ class Members extends Plugin {
$this->filters[] = [
'name' => 'nonmember',
'find' => '#{NONMEMBER}(.*?){/NONMEMBER}#is',
'replace' => ( App::$isLoggedIn && ! App::$isMember ? '$1' : '' ),
'replace' => ( App::$isLoggedIn && App::$isMember == false ? '$1' : '' ),
'enabled' => true,
];
$this->filters[] = [
'name' => 'upgrade',
'find' => '#{UPGRADE}(.*?){/UPGRADE}#is',
'replace' => ( App::$isLoggedIn && ( App::$isMember === 'monthly' ) ? '$1' : '' ),
'enabled' => true,
];
$api_key = Config::getValue( 'memberships/stripeSecret' );
@ -147,14 +159,20 @@ class Members extends Plugin {
}
return false;
}
public function userHasActiveMembership( $user_id ) {
self::$memberships = new Memberships;
$membership = self::$memberships->findActiveByUserID( $user_id );
$memberships = new Memberships;
$membership = $memberships->findActiveByUserID( $user_id );
if ( empty( $membership ) ) {
return false;
}
return true;
$products = new Products;
$product = $products->findByPriceID( $membership->subscription_price_id );
if ( $product->stripe_price_monthly == $membership->subscription_price_id ) {
return 'monthly';
}
return 'yearly';
}
public static function webhookSetup() {