From 86c6cd3cc099d2480932ede03c12cea01e625c94 Mon Sep 17 00:00:00 2001
From: Jake Vanderwerf <get@jakevanderwerf.ca>
Date: Sun, 26 Apr 2026 21:56:28 +0000
Subject: [PATCH] =Requiring files based on Site class settings
---
inc/managers/ReferralManager.php | 48 +++++++++++++++++++++++-------------------------
1 files changed, 23 insertions(+), 25 deletions(-)
diff --git a/inc/managers/ReferralManager.php b/inc/managers/ReferralManager.php
index af9f0b2..6ac1630 100644
--- a/inc/managers/ReferralManager.php
+++ b/inc/managers/ReferralManager.php
@@ -1,12 +1,10 @@
<?php
namespace JVBase\managers;
-use JVBase\managers\MagicLinkManager;
-use JVBase\integrations\Cloudflare;
use JVBase\meta\Form;
use JVBase\ui\CRUDSkeleton;
use JVBase\ui\Tabs;
-use JVBase\utility\Features;
+use JVBase\base\Site;
use WP_User;
use WP_Error;
@@ -134,7 +132,7 @@
$table->setKeys([
['key' => 'PRIMARY', 'value' => 'id'],
- ['key' => 'UNIQUE', 'value' => 'to_user (`to_user`)'],
+ ['key' => 'UNIQUE', 'value' => '(`to_user`)'],
'from_user (`from_user`)',
'status (`status`)',
'code (`referral_code`)',
@@ -165,8 +163,8 @@
]);
$table->setKeys([
- ['key' => 'PRIMARY', 'value' => 'id'],
- ['key' => 'UNIQUE', 'value' => 'code (`code`)'],
+ ['key' => 'PRIMARY', 'value' => '(`id`)'],
+ ['key' => 'UNIQUE', 'value' => '(`code`)'],
'user (`user_id`)',
]);
@@ -195,7 +193,7 @@
$table->setKeys([
['key' => 'PRIMARY', 'value' => '(`id`)'],
- ['key' => 'UNIQUE', 'value' => 'patient_guid (`patient_guid`)'],
+ ['key' => 'UNIQUE', 'value' => '(`patient_guid`)'],
'user (`user_id`)',
'email (`email`)',
]);
@@ -238,9 +236,9 @@
$base = BASE;
$table->setConstraints([
"CONSTRAINT `{$base}reward_referral` FOREIGN KEY (`referral_id`)
- REFERENCES {$this->referrals->getFullTableName()} (`id`) ON DELETE CASCADE",
+ REFERENCES `{$this->referrals->getFullTableName()}` (`id`) ON DELETE CASCADE",
"CONSTRAINT `{$base}reward_user` FOREIGN KEY (`user_id`)
- REFERENCES {$table->getUserTable()}` (`ID`) ON DELETE CASCADE"
+ REFERENCES `{$table->getUserTable()}` (`ID`) ON DELETE CASCADE"
]);
$table->defineTable();
$this->rewards = $table;
@@ -329,7 +327,7 @@
'jvb-data-store',
];
- if (Features::hasIntegration('cloudflare') && JVB()->connect('cloudflare')->isSetUp()) {
+ if (Site::hasIntegration('cloudflare') && JVB()->connect('cloudflare')->isSetUp()) {
JVB()->connect('cloudflare')->enqueueTurnstileScripts();
}
if (is_singular(BASE.'dash')) {
@@ -396,24 +394,24 @@
* @param string|null $custom_code Optional custom code
* @return string|WP_Error
*/
- public function getUserReferralCode(int $user_id, ?string $custom_code = null):array|wp_error
+ public function getUserReferralCode(int $user_id, ?string $custom_code = null):string|false
{
$user = get_userdata($user_id);
if (!$user) {
- return new WP_Error('invalid_user', 'User not found');
+ return false;
}
$existing = $this->codes->pluck('code', ['user_id' => $user_id],'created_at', 'DESC');
- if ($existing && !$custom_code) {
- return $existing;
+ if (!empty($existing) && !$custom_code) {
+ return $existing[0];
}
- if ($custom_code && !in_array($custom_code, $existing)) {
+ if ($custom_code && !empty($existing) && !in_array($custom_code, $existing)) {
$test = $this->createCode($user_id, $custom_code);
if ($test) {
return $this->codes->pluck('code', ['user_id' => $user_id], 'created_at', 'DESC');
+ } else {
+ return $existing[0];
}
- } else {
- return $existing;
}
// Generate new code if custom provided or none exists
@@ -421,10 +419,10 @@
$success = $this->createCode($user_id, $code);
if ($success) {
- return $this->codes->pluck('code', ['user_id' => $user_id], 'created_at', 'DESC');
+ return $this->codes->pluck('code', ['user_id' => $user_id], 'created_at', 'DESC')[0];
}
- return $code;
+ return false;
}
/**
@@ -1395,7 +1393,7 @@
public function getLoggedInReferral(int $user_id): string
{
$referral_code = $this->getUserReferralCode($user_id);
- if (is_wp_error($referral_code)) {
+ if (!$referral_code) {
return '';
}
@@ -1494,7 +1492,7 @@
$code = $this->getUserReferralCode($user->ID);
$yourCode = '';
- if (!is_wp_error($code)) {
+ if ($code) {
$share_url = $this->getShareURL($code);
$yourCode = sprintf(
'<div class="callout">
@@ -1556,7 +1554,7 @@
$referrer = get_user_by('ID', $user_id);
$referral_code = $this->getUserReferralCode($user_id);
- if (is_wp_error($referral_code)) {
+ if ($referral_code) {
return $referral_code;
}
@@ -2621,10 +2619,10 @@
// Regular users get their referral dashboard
$user_id = get_current_user_id();
- $referral_code = get_user_meta($user_id, BASE . 'referral_code', true);
+ $referral_code = $this->getUserReferralCode($user_id);
if (!$referral_code) {
- $referral_code = $this->getUserReferralCode($user_id);
+ $referral_code = $this->generateReferralCode($user_id);
}
$referrals = $this->getUserReferrals($user_id, ['limit' => 20]);
@@ -2892,7 +2890,7 @@
public function getShareButtons(int $user_id):void
{
$referral_code = $this->getUserReferralCode($user_id);
- if (is_wp_error($referral_code)) {
+ if (!$referral_code) {
return;
}
--
Gitblit v1.10.0