- Fixed dashboard data class to use consistent post_author queries instead of mixed _EventOrganizerID meta queries - This resolves the issue where dashboard showed 18 events but 0 tickets/revenue - Added WordPress API credentials to environment (.env) - Created comprehensive API debugging utilities (wp-api-debug.sh, wp-api-fix.sh, api-only-debug.sh) - Enhanced test and deployment suite with WordPress REST API capabilities - Root cause: get_total_tickets_sold() and get_total_revenue() were using _EventOrganizerID while other methods used post_author 🤖 Generated with [Claude Code](https://claude.ai/code) Co-Authored-By: Claude <noreply@anthropic.com>
176 lines
No EOL
6.1 KiB
Bash
Executable file
176 lines
No EOL
6.1 KiB
Bash
Executable file
#!/bin/bash
|
|
|
|
# Exit on error
|
|
set -e
|
|
|
|
# Source environment variables
|
|
if [ -f ".env" ]; then
|
|
source .env
|
|
else
|
|
echo "Error: .env file not found. Please create it with the required variables."
|
|
exit 1
|
|
fi
|
|
|
|
echo "===== Creating No-Cache Plugin for Authentication Pages ====="
|
|
|
|
# Create mu-plugin to disable caching for login pages
|
|
echo "Creating mu-plugin to disable cache for login and dashboard pages..."
|
|
sshpass -p "$UPSKILL_STAGING_PASS" ssh -o StrictHostKeyChecking=no "$UPSKILL_STAGING_SSH_USER@$UPSKILL_STAGING_IP" "cd $UPSKILL_STAGING_PATH && mkdir -p wp-content/mu-plugins && cat > wp-content/mu-plugins/hvac-disable-auth-cache.php << 'EOF'
|
|
<?php
|
|
/**
|
|
* Plugin Name: HVAC - Disable Cache for Authentication Pages
|
|
* Description: Disables caching for login, dashboard, and authentication-related pages
|
|
* Version: 1.0.0
|
|
* Author: HVAC Community Events
|
|
*/
|
|
|
|
// Disable caching for authentication-related pages
|
|
function hvac_disable_cache_for_auth_pages() {
|
|
// List of pages and URL patterns to disable cache for
|
|
$no_cache_patterns = array(
|
|
'community-login',
|
|
'wp-login.php',
|
|
'hvac-dashboard',
|
|
'login=',
|
|
'certificate-reports',
|
|
'generate-certificates',
|
|
'event-summary',
|
|
'email-attendees',
|
|
'trainer-profile',
|
|
'edit-profile',
|
|
);
|
|
|
|
// Get current URL
|
|
$current_url = isset($_SERVER['REQUEST_URI']) ? $_SERVER['REQUEST_URI'] : '';
|
|
|
|
// Check if current URL matches any of our patterns
|
|
$disable_cache = false;
|
|
foreach ($no_cache_patterns as $pattern) {
|
|
if (strpos($current_url, $pattern) !== false) {
|
|
$disable_cache = true;
|
|
break;
|
|
}
|
|
}
|
|
|
|
// Also disable cache for logged-in users or when handling logins
|
|
if (is_user_logged_in() || isset($_POST['log']) || isset($_POST['pwd']) || isset($_GET['login'])) {
|
|
$disable_cache = true;
|
|
}
|
|
|
|
if ($disable_cache) {
|
|
// Define WordPress constant to prevent page caching
|
|
if (!defined('DONOTCACHEPAGE')) {
|
|
define('DONOTCACHEPAGE', true);
|
|
}
|
|
|
|
// Send cache control headers
|
|
header('Cache-Control: no-store, no-cache, must-revalidate, max-age=0');
|
|
header('Cache-Control: post-check=0, pre-check=0', false);
|
|
header('Pragma: no-cache');
|
|
header('Expires: Mon, 07 Jul 1997 05:00:00 GMT');
|
|
|
|
// Add a specific cookie to help prevent caching
|
|
if (!isset($_COOKIE['hvac_nocache'])) {
|
|
setcookie('hvac_nocache', '1', 0, '/', '', is_ssl(), true);
|
|
}
|
|
}
|
|
}
|
|
add_action('init', 'hvac_disable_cache_for_auth_pages', 1);
|
|
|
|
// Disable Breeze caching for logged-in users
|
|
function hvac_disable_breeze_for_logged_in() {
|
|
// If Breeze classes exist
|
|
if (class_exists('Breeze_Options_Reader')) {
|
|
if (is_user_logged_in()) {
|
|
add_filter('breeze_disable_cache', '__return_true');
|
|
add_filter('breeze_override_donotcachepage', '__return_false');
|
|
}
|
|
}
|
|
}
|
|
add_action('init', 'hvac_disable_breeze_for_logged_in', 5);
|
|
|
|
// Add our auth pages to Breeze's no-cache list
|
|
function hvac_add_auth_pages_to_breeze_exclude() {
|
|
// Only run this once
|
|
if (get_option('hvac_breeze_pages_added')) {
|
|
return;
|
|
}
|
|
|
|
// Get Breeze settings
|
|
$breeze_options = get_option('breeze_basic_settings');
|
|
if (!$breeze_options || !is_array($breeze_options)) {
|
|
return;
|
|
}
|
|
|
|
// Pages to exclude
|
|
$auth_pages = array(
|
|
'/community-login/',
|
|
'/wp-login.php',
|
|
'/hvac-dashboard/',
|
|
'/certificate-reports/',
|
|
'/generate-certificates/',
|
|
'/event-summary/',
|
|
'/email-attendees/',
|
|
'/trainer-profile/',
|
|
'/edit-profile/'
|
|
);
|
|
|
|
// Current excluded pages
|
|
$excluded_pages = isset($breeze_options['no-cache-pages']) ? $breeze_options['no-cache-pages'] : '';
|
|
|
|
// Add our pages
|
|
$pages_to_add = array();
|
|
foreach ($auth_pages as $page) {
|
|
if (strpos($excluded_pages, $page) === false) {
|
|
$pages_to_add[] = $page;
|
|
}
|
|
}
|
|
|
|
if (empty($pages_to_add)) {
|
|
update_option('hvac_breeze_pages_added', 1);
|
|
return;
|
|
}
|
|
|
|
// Update excluded pages
|
|
$updated_pages = $excluded_pages;
|
|
if (!empty($excluded_pages)) {
|
|
$updated_pages .= ', ';
|
|
}
|
|
$updated_pages .= implode(', ', $pages_to_add);
|
|
|
|
$breeze_options['no-cache-pages'] = $updated_pages;
|
|
update_option('breeze_basic_settings', $breeze_options);
|
|
update_option('hvac_breeze_pages_added', 1);
|
|
}
|
|
add_action('admin_init', 'hvac_add_auth_pages_to_breeze_exclude');
|
|
|
|
// Clear Breeze cache after user login and logout
|
|
function hvac_clear_breeze_on_login() {
|
|
if (function_exists('breeze_cache_flush')) {
|
|
breeze_cache_flush();
|
|
}
|
|
}
|
|
add_action('wp_login', 'hvac_clear_breeze_on_login');
|
|
add_action('wp_logout', 'hvac_clear_breeze_on_login');
|
|
EOF"
|
|
|
|
# First, remove the old plugin with syntax error
|
|
echo "Removing plugin with syntax error..."
|
|
sshpass -p "$UPSKILL_STAGING_PASS" ssh -o StrictHostKeyChecking=no "$UPSKILL_STAGING_SSH_USER@$UPSKILL_STAGING_IP" "cd $UPSKILL_STAGING_PATH && rm -f wp-content/mu-plugins/hvac-disable-auth-cache.php"
|
|
|
|
# Clear cache after mu-plugin creation
|
|
echo "Clearing Breeze cache..."
|
|
sshpass -p "$UPSKILL_STAGING_PASS" ssh -o StrictHostKeyChecking=no "$UPSKILL_STAGING_SSH_USER@$UPSKILL_STAGING_IP" "cd $UPSKILL_STAGING_PATH && rm -rf wp-content/cache/breeze/* wp-content/uploads/breeze/css/* wp-content/uploads/breeze/js/*"
|
|
|
|
# Check if mu-plugin was created successfully
|
|
PLUGIN_EXISTS=$(sshpass -p "$UPSKILL_STAGING_PASS" ssh -o StrictHostKeyChecking=no "$UPSKILL_STAGING_SSH_USER@$UPSKILL_STAGING_IP" "cd $UPSKILL_STAGING_PATH && [ -f wp-content/mu-plugins/hvac-disable-auth-cache.php ] && echo 'yes' || echo 'no'")
|
|
|
|
if [ "$PLUGIN_EXISTS" = "yes" ]; then
|
|
echo "✅ No-cache plugin created successfully"
|
|
else
|
|
echo "❌ Failed to create no-cache plugin"
|
|
fi
|
|
|
|
echo -e "\n===== Plugin Creation Complete ====="
|
|
echo "A must-use plugin has been created to prevent caching on login pages and dashboard."
|
|
echo "This should resolve browser-based login issues for the test_trainer user." |