From fff721dd185f5b97f7ae7a6e64189e55887ff590 Mon Sep 17 00:00:00 2001
From: Jake Vanderwerf <get@jakevanderwerf.ca>
Date: Sun, 05 Jul 2026 18:36:57 +0000
Subject: [PATCH] =Cleaning up the Square integration (still a bit more to do yet). Also majorly overhauled /rest/ files to ignore a rest request 'user' paramater, and rely on get_current_user_id() instead.

---
 inc/integrations/Facebook.php |   33 ++++++++++++++++++++++++++-------
 1 files changed, 26 insertions(+), 7 deletions(-)

diff --git a/inc/integrations/Facebook.php b/inc/integrations/Facebook.php
index e4e3a96..f30ee8f 100644
--- a/inc/integrations/Facebook.php
+++ b/inc/integrations/Facebook.php
@@ -5,8 +5,8 @@
  */
 namespace JVBase\integrations;
 
-use JVBase\meta\MetaManager;
 use Exception;
+use JVBase\meta\Meta;
 use WP_Error;
 use WP_Post;
 
@@ -17,6 +17,15 @@
 class Facebook extends Integrations
 {
 	// Facebook-specific properties
+	protected array $allowedContent = [
+		'post',
+		'photo',
+		'video',
+		'event',
+		'offer',
+		'note',
+		'milestone'
+	];
 	private string $page_id = '';
 	private string $page_access_token = '';
 	private array $permissions = [];
@@ -33,7 +42,17 @@
 		'milestone' => 'milestones'
 	];
 
-	public function __construct(?int $userID = null)
+	protected static array $instances = [];
+	public static function getInstance(?int $userID = null):self
+	{
+		$key = is_null($userID) ? 'base' : $userID;
+		if (!array_key_exists($key, self::$instances)) {
+			self::$instances[$key] = new self($userID);
+		}
+		return self::$instances[$key];
+	}
+
+	protected function __construct(?int $userID = null)
 	{
 		$this->service_name = 'facebook';
 		$this->title = 'Facebook';
@@ -524,18 +543,18 @@
 	private function createFacebookEvent(array $data): array
 	{
 		$post = get_post($data['post_id']);
-		$meta = new MetaManager($post->ID, 'post');
+		$meta = Meta::forPost($post->ID);
 
 		$event_data = [
 			'name' => $post->post_title,
 			'description' => $this->formatPostContent($post),
-			'start_time' => $meta->getValue('event_start_date'),
-			'end_time' => $meta->getValue('event_end_date'),
+			'start_time' => $meta->get('event_start_date'),
+			'end_time' => $meta->get('event_end_date'),
 			'access_token' => $this->page_access_token
 		];
 
 		// Add location if available
-		$location = $meta->getValue('event_location');
+		$location = $meta->get('event_location');
 		if ($location) {
 			$event_data['location'] = $location;
 		}
@@ -563,7 +582,7 @@
 	/**
 	 * Helper: Get user's Facebook pages
 	 */
-	private function getUserPages(string $access_token = null): array
+	private function getUserPages(?string $access_token = null): array
 	{
 		$token = $access_token ?: $this->credentials['access_token'];
 

--
Gitblit v1.10.0