Jake Vanderwerf
2026-08-29 f859e64a57c624ff2daa2b21355f65a49fd4807d
inc/managers/NewsRelationships.php
@@ -1,7 +1,7 @@
<?php
namespace JVBase\managers;
use JVBase\JVB;
use JVBase\managers\queue\Queue;
use WP_Post;
use WP_Term;
use WP_Query;
@@ -15,14 +15,13 @@
 */
class NewsRelationships
{
    private string $table_name;
    private object $cache;
   protected Cache $cache;
    public function __construct()
    {
        global $wpdb;
        $this->table_name = $wpdb->prefix . BASE . 'news_relationships';
        $this->cache = new CacheManager('news_relationships', 3600); // 1 hour cache by default
        $this->cache = Cache::for('news_relationships', WEEK_IN_SECONDS)->connect('post', true)->connect('taxonomy', true)->connect('user',true);
        // Register hooks
        add_action('init', [$this, 'registerHooks']);
@@ -215,7 +214,7 @@
     */
    public function handleLinkChange(int $meta_id, int $object_id, string $meta_key, string|null $meta_value = null):void
    {
        // Only proceed for BASE.'link' meta key
        // Only proceed for BASE.'profile_link' meta key
        if ($meta_key !== BASE . 'link') {
            return;
        }
@@ -367,7 +366,7 @@
     * Get all artists with news post counts
     * @return array
     */
    public function getAllArtistsWithNews():int
    public function getAllArtistsWithNews():array
    {
        global $wpdb;
@@ -512,7 +511,7 @@
        }
        // Update cache
        $this->cache->invalidate('shop_' . $shop_id);
        $this->cache->forget($shop_id);
        // Update shop total count
        $this->updateShopTotal($shop_id);
@@ -534,7 +533,7 @@
        );
        // Update cache
        $this->cache->invalidate('shop_' . $shop_id);
        $this->cache->forget($shop_id);
    }
    /**
@@ -566,8 +565,7 @@
     */
    public function getShopNewsStats(int $shop_id):array
    {
        $cache_key = 'shop_' . $shop_id;
        $cached = $this->cache->get($cache_key);
        $cached = $this->cache->get($shop_id);
        if ($cached !== false) {
            return $cached;
@@ -596,7 +594,7 @@
            'artists' => $stats
        ];
        $this->cache->set($cache_key, $result);
        $this->cache->set($shop_id, $result);
        return $result;
    }
@@ -627,7 +625,7 @@
        $wpdb->query("TRUNCATE TABLE {$this->table_name}");
        JVB()->queue()->queueOperation(
        Queue::getInstance()->queueOperation(
            'rebuild_news',
            0,
            [
@@ -646,7 +644,7 @@
    }
    /**
     * @param WP_Error $result
     * @param WP_Error|array $result
     * @param object $operation
     * @param array $data
     *
@@ -715,7 +713,7 @@
     */
    public function getAllShopsNews():array
    {
        $cache_key = 'all_shops_counts';
        $cache_key = 'all';
        $cached = $this->cache->get($cache_key);
        if ($cached !== false) {