upskill-event-manager/includes/zoho/setup-helper.php
bengizmo 37f4180e1c feat: Add massive missing plugin infrastructure to repository
🚨 CRITICAL: Fixed deployment blockers by adding missing core directories:

**Community System (CRITICAL)**
- includes/community/ - Login_Handler and all community classes
- templates/community/ - Community login forms

**Certificate System (CRITICAL)**
- includes/certificates/ - 8+ certificate classes and handlers
- templates/certificates/ - Certificate reports and generation templates

**Core Individual Classes (CRITICAL)**
- includes/class-hvac-event-summary.php
- includes/class-hvac-trainer-profile-manager.php
- includes/class-hvac-master-dashboard-data.php
- Plus 40+ other individual HVAC classes

**Major Feature Systems (HIGH)**
- includes/database/ - Training leads database tables
- includes/find-trainer/ - Find trainer directory and MapGeo integration
- includes/google-sheets/ - Google Sheets integration system
- includes/zoho/ - Complete Zoho CRM integration
- includes/communication/ - Communication templates system

**Template Infrastructure**
- templates/attendee/, templates/email-attendees/
- templates/event-summary/, templates/status/
- templates/template-parts/ - Shared template components

**Impact:**
- 70+ files added covering 10+ missing directories
- Resolves ALL deployment blockers and feature breakdowns
- Plugin activation should now work correctly
- Multi-machine deployment fully supported

🔧 Generated with Claude Code

Co-Authored-By: Ben Reed <ben@tealmaker.com>
2025-08-11 13:30:11 -03:00

155 lines
No EOL
4.6 KiB
PHP

<?php
/**
* Zoho CRM Setup Helper
*
* Run this script from command line to help set up Zoho credentials
* Usage: php setup-helper.php
*/
// Check if running from command line
if (php_sapi_name() !== 'cli') {
die('This script must be run from the command line.');
}
echo "\n=== Zoho CRM Setup Helper ===\n\n";
// Step 1: Get Client Credentials
echo "Step 1: Enter your Zoho OAuth Client details\n";
echo "----------------------------------------\n";
echo "Client ID: ";
$client_id = trim(fgets(STDIN));
echo "Client Secret: ";
$client_secret = trim(fgets(STDIN));
echo "Redirect URI (default: http://localhost:8080/callback): ";
$redirect_uri = trim(fgets(STDIN));
if (empty($redirect_uri)) {
$redirect_uri = 'http://localhost:8080/callback';
}
// Step 2: Generate Authorization URL
$scopes = 'ZohoCRM.settings.all,ZohoCRM.modules.all,ZohoCRM.users.all,ZohoCRM.org.all';
$auth_url = "https://accounts.zoho.com/oauth/v2/auth?" . http_build_query([
'scope' => $scopes,
'client_id' => $client_id,
'response_type' => 'code',
'access_type' => 'offline',
'redirect_uri' => $redirect_uri,
'prompt' => 'consent'
]);
echo "\nStep 2: Authorize the application\n";
echo "--------------------------------\n";
echo "Open this URL in your browser:\n\n";
echo $auth_url . "\n\n";
echo "After authorization, you'll be redirected to:\n";
echo $redirect_uri . "?code=AUTH_CODE\n\n";
echo "Enter the authorization code: ";
$auth_code = trim(fgets(STDIN));
// Step 3: Exchange code for tokens
echo "\nStep 3: Exchanging code for tokens...\n";
echo "-----------------------------------\n";
$token_url = 'https://accounts.zoho.com/oauth/v2/token';
$token_params = [
'grant_type' => 'authorization_code',
'client_id' => $client_id,
'client_secret' => $client_secret,
'redirect_uri' => $redirect_uri,
'code' => $auth_code
];
$ch = curl_init($token_url);
curl_setopt($ch, CURLOPT_POST, true);
curl_setopt($ch, CURLOPT_POSTFIELDS, http_build_query($token_params));
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
$response = curl_exec($ch);
$http_code = curl_getinfo($ch, CURLINFO_HTTP_CODE);
curl_close($ch);
if ($http_code !== 200) {
echo "Error: Failed to get tokens (HTTP $http_code)\n";
echo "Response: " . $response . "\n";
exit(1);
}
$token_data = json_decode($response, true);
if (!isset($token_data['access_token']) || !isset($token_data['refresh_token'])) {
echo "Error: Invalid token response\n";
echo "Response: " . $response . "\n";
exit(1);
}
echo "Success! Tokens received.\n\n";
// Step 4: Get Organization ID
echo "Step 4: Getting organization ID...\n";
echo "--------------------------------\n";
$org_url = 'https://www.zohoapis.com/crm/v2/org';
$ch = curl_init($org_url);
curl_setopt($ch, CURLOPT_HTTPHEADER, [
'Authorization: Zoho-oauthtoken ' . $token_data['access_token']
]);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
$org_response = curl_exec($ch);
$org_data = json_decode($org_response, true);
curl_close($ch);
$org_id = isset($org_data['org'][0]['id']) ? $org_data['org'][0]['id'] : 'NOT_FOUND';
// Step 5: Generate config file
echo "\nStep 5: Generating configuration\n";
echo "-------------------------------\n";
$config_content = "<?php
/**
* Zoho CRM Configuration
* Generated on: " . date('Y-m-d H:i:s') . "
*
* DO NOT commit this file to version control!
*/
// Zoho OAuth Credentials
define('ZOHO_CLIENT_ID', '$client_id');
define('ZOHO_CLIENT_SECRET', '$client_secret');
define('ZOHO_REFRESH_TOKEN', '{$token_data['refresh_token']}');
define('ZOHO_REDIRECT_URI', '$redirect_uri');
// Zoho API Settings
define('ZOHO_API_BASE_URL', 'https://www.zohoapis.com');
define('ZOHO_ACCOUNTS_URL', 'https://accounts.zoho.com');
define('ZOHO_ORGANIZATION_ID', '$org_id');
// API Scopes
define('ZOHO_SCOPES', '$scopes');
// Development/Production flag
define('ZOHO_ENVIRONMENT', 'development');
// Error logging
define('ZOHO_DEBUG_MODE', true);
define('ZOHO_LOG_FILE', WP_CONTENT_DIR . '/zoho-crm-debug.log');
";
// Save config file
$config_file = __DIR__ . '/zoho-config.php';
file_put_contents($config_file, $config_content);
echo "Configuration saved to: $config_file\n\n";
echo "=== Setup Complete! ===\n";
echo "Your Zoho CRM integration is ready to use.\n";
echo "Refresh token: {$token_data['refresh_token']}\n";
echo "Organization ID: $org_id\n\n";
echo "Next steps:\n";
echo "1. The config file has been created at: $config_file\n";
echo "2. Make sure to keep this file secure and never commit it to version control\n";
echo "3. You can now use the Zoho CRM integration in your WordPress plugin\n\n";