- Implement OAuth 2.0 authentication for Zoho CRM - Add sync functionality for Events → Campaigns, Users → Contacts, Orders → Invoices - Create staging mode that prevents production syncs from non-production domains - Build admin interface for sync management - Add comprehensive field mapping between WordPress and Zoho - Include test scripts and documentation - Ensure production sync only on upskillhvac.com domain
91 lines
No EOL
3.2 KiB
Bash
Executable file
91 lines
No EOL
3.2 KiB
Bash
Executable file
#!/bin/bash
|
|
|
|
# Script to disable Breeze cache for testing environments
|
|
# This creates an mu-plugin that sets DONOTCACHEPAGE constant
|
|
|
|
SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
|
|
PROJECT_ROOT="$(dirname "$SCRIPT_DIR")"
|
|
|
|
# Source environment variables
|
|
if [ -f "$PROJECT_ROOT/.env" ]; then
|
|
source "$PROJECT_ROOT/.env"
|
|
fi
|
|
|
|
# Check for required environment variables
|
|
if [ -z "$UPSKILL_STAGING_SSH_USER" ] || [ -z "$UPSKILL_STAGING_PASS" ] || [ -z "$UPSKILL_STAGING_IP" ] || [ -z "$UPSKILL_STAGING_PATH" ]; then
|
|
echo "Error: Missing required environment variables."
|
|
echo "Please ensure the following are set in your .env file:"
|
|
echo " - UPSKILL_STAGING_SSH_USER"
|
|
echo " - UPSKILL_STAGING_PASS"
|
|
echo " - UPSKILL_STAGING_IP"
|
|
echo " - UPSKILL_STAGING_PATH"
|
|
exit 1
|
|
fi
|
|
|
|
echo "Creating mu-plugin to disable Breeze cache for testing..."
|
|
|
|
# Create the mu-plugin content
|
|
MU_PLUGIN_CONTENT='<?php
|
|
/**
|
|
* Disable Breeze cache for testing environments
|
|
*/
|
|
|
|
// Disable Breeze cache when running tests
|
|
if (
|
|
getenv("WP_ENV") === "testing" ||
|
|
defined("WP_TESTS_DOMAIN") ||
|
|
strpos($_SERVER["HTTP_USER_AGENT"] ?? "", "Playwright") !== false ||
|
|
isset($_GET["no_cache_test"]) ||
|
|
(isset($_SERVER["REQUEST_URI"]) && strpos($_SERVER["REQUEST_URI"], "/manage-event/") !== false)
|
|
) {
|
|
if (!defined("DONOTCACHEPAGE")) {
|
|
define("DONOTCACHEPAGE", true);
|
|
}
|
|
}
|
|
|
|
// Additional Breeze filter to ensure cache is disabled
|
|
add_filter("breeze_override_donotcachepage", function($do_not_cache) {
|
|
if (
|
|
getenv("WP_ENV") === "testing" ||
|
|
defined("WP_TESTS_DOMAIN") ||
|
|
strpos($_SERVER["HTTP_USER_AGENT"] ?? "", "Playwright") !== false ||
|
|
isset($_GET["no_cache_test"])
|
|
) {
|
|
return false; // This returns false to the override, which means DO cache page = false
|
|
}
|
|
return $do_not_cache;
|
|
});
|
|
'
|
|
|
|
# Create mu-plugin via SSH
|
|
echo "Creating mu-plugin on staging server..."
|
|
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/disable-breeze-for-tests.php << 'EOF'
|
|
$MU_PLUGIN_CONTENT
|
|
EOF"
|
|
|
|
# Verify the file was created
|
|
echo "Verifying mu-plugin creation..."
|
|
FILE_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/disable-breeze-for-tests.php ] && echo 'exists' || echo 'not found'")
|
|
|
|
if [ "$FILE_EXISTS" = "exists" ]; then
|
|
echo "✅ Successfully created mu-plugin to disable Breeze cache for testing"
|
|
echo "The following conditions will disable cache:"
|
|
echo " - WP_ENV environment variable is set to 'testing'"
|
|
echo " - WP_TESTS_DOMAIN constant is defined"
|
|
echo " - User agent contains 'Playwright'"
|
|
echo " - URL has 'no_cache_test' query parameter"
|
|
echo " - URL contains '/manage-event/'"
|
|
else
|
|
echo "❌ Failed to create mu-plugin"
|
|
exit 1
|
|
fi
|
|
|
|
# Clear existing cache
|
|
echo "Clearing existing Breeze cache..."
|
|
$SCRIPT_DIR/clear-breeze-cache.sh
|
|
|
|
echo "✅ Breeze cache setup for testing complete" |