Jake Vanderwerf
2026-02-17 a24a06002081ad71a78ffeff9072725ba39cf121
activate.php
@@ -1,6 +1,11 @@
<?php
use JVBase\integrations\Umami;
use JVBase\managers\Cache;
use JVBase\managers\DirectoryManager;
use JVBase\managers\ReferralManager;
use JVBase\managers\SEO\SEOAdminPage;
use JVBase\utility\Features;
if (!defined('ABSPATH')) {
    exit; // Exit if accessed directly
@@ -8,7 +13,6 @@
function jvbActivatePlugin():void
{
   ob_start();
   $validator = new JVBase\utility\Validator();
   $validation = $validator->validateAll();
   error_log('Validation result: '.print_r($validation, true));
@@ -40,27 +44,17 @@
    remove_role('editor');
   error_log('Roles removed!');
   error_log('New Roles done!');
   jvbRegisterAdminPages();
   if (array_key_exists('integrations', JVB_SITE) && array_key_exists('umami', JVB_SITE['integrations']) && JVB_SITE['integrations']['umami']=== true) {
      error_log('Adding Umami tables');
      Umami::createTables();
   }
   error_log('Activation done! Huzzah!');
   $output = ob_get_clean();
   if ( $output ) {
      // Grab a backtrace to see what caused the output
      $trace = debug_backtrace( DEBUG_BACKTRACE_IGNORE_ARGS );
      $formatted = [];
      foreach ( $trace as $step ) {
         if ( isset( $step['file'], $step['line'] ) ) {
            $formatted[] = $step['file'] . ':' . $step['line'];
         }
      }
      error_log( "⚠️ Plugin activation produced unexpected output (" . strlen( $output ) . " chars)" );
      error_log( "Output: " . trim( $output ) );
      error_log( "Backtrace: " . implode( ' <- ', $formatted ) );
   if (Features::forSite()->has('is_directory')) {
      error_log('Activating DirectoryManager');
      DirectoryManager::activate();
   }
   error_log('Activation done! Huzzah!');
}
function jvbAddAdminCaps()
@@ -199,6 +193,7 @@
    jvbDeleteOptions();
    jvbDeleteDashboard();
    jvbDeleteDirectories();
   Cache::flushAll();
    do_action('jvbDeactivate');
}
@@ -234,14 +229,13 @@
    $pages = new WP_Query([
        'post_type' => BASE.'directory',
        'posts_per_page'    => -1,
        'post_status'   => 'any',
        'post_status'   => ['publish', 'draft','trash'],
        'fields'    => 'ids'
    ]);
    if ($pages->have_posts()) {
        foreach ($pages->posts as $ID) {
            wp_delete_post($ID, true);
        }
    }
   foreach ($pages->posts as $ID) {
      wp_delete_post($ID, true);
   }
}
function jvbClearSchedules()
{
@@ -268,3 +262,12 @@
   do_action('jvbDailyReset');
   error_log('Daily options reset completed at ' . current_time('Y-m-d H:i:s'));
}
function jvbRegisterAdminPages():void
{
   if (Features::forSite()->has('referrals')){
      ReferralManager::addSubpage();
   }
   SEOAdminPage::addSubpage();
}