From 2127b1bdd73ecd2423e443992da4b442f5a3c1a3 Mon Sep 17 00:00:00 2001
From: Jake Vanderwerf <get@jakevanderwerf.ca>
Date: Wed, 04 Feb 2026 21:19:25 +0000
Subject: [PATCH] =Major overhaul of MetaManager.php -> Meta.php and RestRouteManager.php -> Rest.php. Seems to work for JakeVan

---
 inc/integrations/Helcim.php |   43 +++++++++++++++++++++++++++----------------
 1 files changed, 27 insertions(+), 16 deletions(-)

diff --git a/inc/integrations/Helcim.php b/inc/integrations/Helcim.php
index b820041..a70ac16 100644
--- a/inc/integrations/Helcim.php
+++ b/inc/integrations/Helcim.php
@@ -1,7 +1,7 @@
 <?php
 namespace JVBase\integrations;
 
-use JVBase\meta\MetaManager;
+use JVBase\meta\Meta;
 use Exception;
 use WP_Error;
 use WP_REST_Request;
@@ -157,6 +157,10 @@
 	 */
 	protected function registerAdditionalHooks(): void
 	{
+		$this->ensureInitialized();
+		if (!$this->isSetUp()) {
+			return;
+		}
 		// User login tracking for security
 		add_action('wp_login', [$this, 'trackUserLogin'], 10, 2);
 
@@ -527,6 +531,10 @@
 	 */
 	public function enqueueScripts(): void
 	{
+		$this->ensureInitialized();
+		if (!$this->isSetUp()) {
+			return;
+		}
 		// Helcim JS SDK
 		$sdk_url = $this->is_test_mode
 			? 'https://helcim-js-sandbox.helcim.com/v1/helcim.js'
@@ -658,7 +666,7 @@
 				$post = get_post($post_id);
 				if (!$post) continue;
 
-				$meta = new MetaManager($post_id, 'post');
+				$meta = Meta::forPost($post_id);
 				$field_map = $this->field_mappings[$post->post_type] ?? [];
 
 				// Prepare product data for Helcim
@@ -667,12 +675,12 @@
 					'description' => $post->post_content,
 					'productCode' => get_post_meta($post_id, BASE . '_helcim_product_code', true) ?: 'WP-' . $post_id,
 					'type' => $content_type,
-					'price' => floatval($meta->getValue('price')) * 100, // Convert to cents
-					'taxable' => (bool)$meta->getValue('is_taxable'),
+					'price' => floatval($meta->get('price')) * 100, // Convert to cents
+					'taxable' => (bool)$meta->get('is_taxable'),
 				];
 
 				// Handle variations
-				$variations = $meta->getValue('product_variations');
+				$variations = $meta->get('product_variations');
 				if (!empty($variations)) {
 					$product_data['variations'] = $this->prepareVariations($variations);
 				}
@@ -830,7 +838,7 @@
 
 		if ($post_id) {
 			// Update meta data
-			$meta = new MetaManager($post_id, 'post');
+			$meta = Meta::forPost($post_id);
 			$meta->setAll([
 				'price' => $product['price'] / 100, // Convert from cents
 				'_helcim_product_id' => $product['productId'],
@@ -1136,20 +1144,23 @@
 	private function sendWelcomeEmail(\WP_User $user, string $reset_key): void
 	{
 		$site_name = get_bloginfo('name');
-		$reset_url = get_home_url(null, "wp-login.php?action=rp&key=$reset_key&login=" . rawurlencode($user->user_login), 'login');
+		$reset_url = get_home_url(null, "login?action=rp&key=$reset_key&login=" . rawurlencode($user->user_login), 'login');
 
 		$message = sprintf(
 			"Welcome to %s!\n\n" .
-			"Your account has been created. Please click the link below to set your password:\n\n" .
+			"Your account has been created. Please click the button below to set your password:\n\n" .
+			"%s\n\n" .
+			"Or, copy and paste the link below:\n\n".
 			"%s\n\n" .
 			"Once you've set your password, you can:\n" .
 			"- View your order history\n" .
 			"- Save your favorite items\n" .
 			"- Speed up checkout with saved payment methods\n\n" .
-			"Thanks,\n%s",
+			"If you didn't create this account, please ignore this email.\n\n" .
+			"Thanks,\n",
 			$site_name,
-			$reset_url,
-			$site_name
+			JVB()->email()->button('Reset Password', $reset_url),
+			JVB()->email()->link($reset_url),
 		);
 
 		JVB()->email()->sendEmail(
@@ -1217,8 +1228,8 @@
 			$post_id = intval($item['id'] ?? 0);
 			if (!$post_id) continue;
 
-			$meta = new MetaManager($post_id, 'post');
-			$price = floatval($meta->getValue('price'));
+			$meta = Meta::forPost($post_id);
+			$price = floatval($meta->get('price'));
 			$quantity = intval($item['quantity'] ?? 1);
 
 			$total += ($price * $quantity * 100); // Convert to cents
@@ -1243,12 +1254,12 @@
 			if (!$post_id) continue;
 
 			$post = get_post($post_id);
-			$meta = new MetaManager($post_id, 'post');
+			$meta = Meta::forPost($post_id);
 
 			$line_items[] = [
 				'description' => $post->post_title,
 				'quantity' => intval($item['quantity'] ?? 1),
-				'price' => floatval($meta->getValue('price')) * 100,
+				'price' => floatval($meta->get('price')) * 100,
 				'productCode' => get_post_meta($post_id, BASE . '_helcim_product_code', true) ?: 'WP-' . $post_id
 			];
 		}
@@ -1480,7 +1491,7 @@
 			update_user_meta($user->ID, BASE . '_helcim_customer_updated', current_time('mysql'));
 
 			// Clear cached customer data
-			$this->cache->delete('helcim_customer_' . $user->ID);
+			$this->cache->forget('helcim_customer_' . $user->ID);
 		}
 
 		return true;

--
Gitblit v1.10.0