Changeset 3427118
- Timestamp:
- 12/25/2025 06:30:18 AM (3 weeks ago)
- Location:
- integrate-with-zoho-desk
- Files:
-
- 83 added
- 8 edited
-
tags/1.0.9 (added)
-
tags/1.0.9/assets (added)
-
tags/1.0.9/assets/css (added)
-
tags/1.0.9/assets/css/ai-settings.css (added)
-
tags/1.0.9/assets/css/auth.css (added)
-
tags/1.0.9/assets/css/banner.css (added)
-
tags/1.0.9/assets/css/error-log.css (added)
-
tags/1.0.9/assets/css/help.css (added)
-
tags/1.0.9/assets/css/home.css (added)
-
tags/1.0.9/assets/css/other-plugins.css (added)
-
tags/1.0.9/assets/css/premium.css (added)
-
tags/1.0.9/assets/css/settings.css (added)
-
tags/1.0.9/assets/css/setup-filter.css (added)
-
tags/1.0.9/assets/css/setup-fm.css (added)
-
tags/1.0.9/assets/img (added)
-
tags/1.0.9/assets/img/close.png (added)
-
tags/1.0.9/assets/img/loading-icon.gif (added)
-
tags/1.0.9/assets/img/loading-icon.png (added)
-
tags/1.0.9/assets/img/loading-icon.svg (added)
-
tags/1.0.9/assets/img/loading.gif (added)
-
tags/1.0.9/assets/img/tick.png (added)
-
tags/1.0.9/assets/img/zoho-logo.png (added)
-
tags/1.0.9/assets/js (added)
-
tags/1.0.9/assets/js/ai-settings.js (added)
-
tags/1.0.9/assets/js/common.js (added)
-
tags/1.0.9/assets/js/error-log.js (added)
-
tags/1.0.9/assets/js/help.js (added)
-
tags/1.0.9/assets/js/home.js (added)
-
tags/1.0.9/assets/js/setup-custom.js (added)
-
tags/1.0.9/assets/js/setup-filter.js (added)
-
tags/1.0.9/assets/js/setup-fm.js (added)
-
tags/1.0.9/includes (added)
-
tags/1.0.9/includes/admin (added)
-
tags/1.0.9/includes/admin/accounts-tab.php (added)
-
tags/1.0.9/includes/admin/admin.php (added)
-
tags/1.0.9/includes/admin/ai-settings-tab.php (added)
-
tags/1.0.9/includes/admin/banner.php (added)
-
tags/1.0.9/includes/admin/errorlog-tab.php (added)
-
tags/1.0.9/includes/admin/other-plugins.php (added)
-
tags/1.0.9/includes/admin/premium-tab.php (added)
-
tags/1.0.9/includes/admin/settings-tab.php (added)
-
tags/1.0.9/includes/admin/setup-existing.php (added)
-
tags/1.0.9/includes/admin/setup-new.php (added)
-
tags/1.0.9/includes/admin/setup-tab.php (added)
-
tags/1.0.9/includes/class-includes.php (added)
-
tags/1.0.9/includes/extend (added)
-
tags/1.0.9/includes/extend/auth.php (added)
-
tags/1.0.9/includes/extend/error-log.php (added)
-
tags/1.0.9/includes/extend/extend.php (added)
-
tags/1.0.9/includes/extend/setup.php (added)
-
tags/1.0.9/includes/function (added)
-
tags/1.0.9/includes/function/common-actions.php (added)
-
tags/1.0.9/includes/function/review.php (added)
-
tags/1.0.9/includes/function/session-notice.php (added)
-
tags/1.0.9/includes/includes.php (added)
-
tags/1.0.9/integrate-with-zoho-desk.php (added)
-
tags/1.0.9/readme.txt (added)
-
tags/1.0.9/src (added)
-
tags/1.0.9/src/db (added)
-
tags/1.0.9/src/db/account.php (added)
-
tags/1.0.9/src/db/error-log.php (added)
-
tags/1.0.9/src/db/field-mapping.php (added)
-
tags/1.0.9/src/forms (added)
-
tags/1.0.9/src/forms/ai-settings.php (added)
-
tags/1.0.9/src/forms/form-fields.php (added)
-
tags/1.0.9/src/forms/form-group-ids.php (added)
-
tags/1.0.9/src/forms/form-name.php (added)
-
tags/1.0.9/src/forms/forms.php (added)
-
tags/1.0.9/src/forms/id-mapping.php (added)
-
tags/1.0.9/src/forms/smart-form-filter.php (added)
-
tags/1.0.9/src/forms/submit-action.php (added)
-
tags/1.0.9/src/product (added)
-
tags/1.0.9/src/product/account-action.php (added)
-
tags/1.0.9/src/product/action.php (added)
-
tags/1.0.9/src/product/ai-settings-action.php (added)
-
tags/1.0.9/src/product/errorlog-action.php (added)
-
tags/1.0.9/src/product/product.php (added)
-
tags/1.0.9/src/product/settings-action.php (added)
-
tags/1.0.9/src/product/setup-action.php (added)
-
tags/1.0.9/src/product/util.php (added)
-
tags/1.0.9/uninstall.php (added)
-
trunk/assets/css/banner.css (modified) (1 diff)
-
trunk/assets/css/other-plugins.css (added)
-
trunk/includes/admin/accounts-tab.php (modified) (5 diffs)
-
trunk/includes/admin/admin.php (modified) (1 diff)
-
trunk/includes/admin/banner.php (modified) (1 diff)
-
trunk/includes/admin/other-plugins.php (added)
-
trunk/includes/admin/premium-tab.php (modified) (2 diffs)
-
trunk/integrate-with-zoho-desk.php (modified) (1 diff)
-
trunk/readme.txt (modified) (3 diffs)
-
trunk/src/product/account-action.php (modified) (4 diffs)
Legend:
- Unmodified
- Added
- Removed
-
integrate-with-zoho-desk/trunk/assets/css/banner.css
r3277037 r3427118 1 .iafwzdesk-banner- container{2 margin: 10px auto;3 padding: 15px;4 background-color: #0073aad4;5 color: #fff;6 border-radius: 6px;7 font-family: Arial, sans-serif;8 max-width: 600px;9 box-shadow: 0 2px 6px rgba(0, 0, 0, 0.1);1 .iafwzdesk-banner-wrap{ 2 max-width: 900px; 3 margin: 30px auto; 4 padding: 28px; 5 background: #f9fafc; 6 border: 1px solid #e3e7ef; 7 border-radius: 10px; 8 font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif; 9 color: #222; 10 10 } 11 11 12 .iafwzdesk-banner-header { 13 display: flex; 14 align-items: center; 15 justify-content: space-between; 16 flex-wrap: wrap; 12 /* HEADER */ 13 .iafwzdesk-banner-head{ 14 text-align: center; 15 margin-bottom: 20px; 16 } 17 .iafwzdesk-banner-title{ 18 font-size: 20px; 19 font-weight: 600; 20 display: block; 21 margin-bottom: 8px; 22 } 23 .iafwzdesk-banner-offer{ 24 display: inline-block; 25 padding: 10px 16px; 26 border: 1px dashed #d9a1a1; 27 background: #fff5f5; 28 border-radius: 8px; 29 font-size: 13px; 30 margin-top: 10px; 31 } 32 .iafwzdesk-banner-offer code{ 33 background: #ffe5e5; 34 padding: 3px 8px; 35 border-radius: 5px; 36 font-weight: 600; 37 color: #d60000; 17 38 } 18 39 19 .iafwzdesk-banner-text { 20 flex: 1; 21 min-width: 150px; 40 /* PLAN AREA */ 41 .iafwzdesk-banner-plan-box{ 42 display: flex; 43 gap: 18px; 44 flex-wrap: wrap; 45 margin-top: 22px; 46 } 47 .iafwzdesk-banner-plan{ 48 flex: 1; 49 min-width: 280px; 50 padding: 18px; 51 border: 1px solid #d8dce3; 52 background: #fff; 53 border-radius: 10px; 54 transition: all .2s; 55 } 56 .iafwzdesk-banner-plan:hover{ 57 border-color: #bfc9d8; 58 box-shadow: 0 3px 10px rgba(0,0,0,0.05); 59 } 60 .iafwzdesk-banner-plan-title{ 61 font-size: 15px; 62 font-weight: 600; 63 display: block; 64 margin-bottom: 6px; 65 } 66 .iafwzdesk-banner-price{ 67 font-size: 18px; 68 font-weight: 700; 69 margin: 8px 0 12px; 70 } 71 .iafwzdesk-banner-price del{ 72 font-size: 12px; 73 color: #999; 22 74 } 23 75 24 .iafwzdesk-banner-title { 25 margin: 0 0 8px; 26 font-size: 16px; 27 font-weight: bold; 28 color: #fff; 76 /* FEATURES */ 77 .iafwzdesk-banner-features{ 78 list-style-type: disc; 79 padding-left: 18px; 80 font-size: 14px; 81 line-height: 1.55; 82 } 83 .iafwzdesk-banner-features li{ 84 margin-bottom: 6px; 85 } 86 .iafwzdesk-banner-features .disabled{ 87 opacity: 0.55; 88 text-decoration: line-through; 89 list-style-type: circle; 29 90 } 30 91 31 .iafwzdesk-banner-description { 32 margin: 0; 33 font-size: 12px; 34 line-height: 1.4; 35 color: #f1f1f1; 92 /* BUTTON */ 93 .iafwzdesk-banner-cta{ 94 text-align: center; 95 margin-top: 25px; 36 96 } 37 97 38 .iafwzdesk-banner-feature-list { 39 margin-top: 12px; 40 display: grid; 41 grid-template-columns: repeat(auto-fit, minmax(150px, 1fr)); 42 gap: 8px; 43 font-size: 12px; 44 line-height: 1.4; 45 color: #f1f1f1; 98 .iafwzdesk-banner-btn{ 99 background: #2a3cff; 100 color: #fff !important; 101 padding: 10px 22px; 102 border-radius: 8px; 103 font-size: 14px; 104 font-weight: 600; 105 text-decoration: none !important; 106 display: inline-block; 107 cursor: pointer; 46 108 } 47 109 48 .iafwzdesk-banner-buttons-container { 49 margin-top: 15px; 50 display: flex; 51 justify-content: flex-end; 52 gap: 8px; 53 flex-wrap: wrap; 110 /* disable hover style */ 111 .iafwzdesk-banner-btn:hover{ 112 background: #2a3cff !important; 113 color: #fff !important; 114 text-decoration: none !important; 115 box-shadow: none !important; 116 opacity: 1 !important; 54 117 } 55 56 .iafwzdesk-banner-button {57 padding: 8px 15px;58 font-size: 12px;59 font-weight: bold;60 text-decoration: none;61 border-radius: 4px;62 box-shadow: 0 1px 3px rgba(0, 0, 0, 0.2);63 transition: background-color 0.3s ease;64 }65 66 .iafwzdesk-banner-trial-button {67 background-color: #ffba00;68 color: #333;69 }70 71 .iafwzdesk-banner-trial-button:hover {72 background-color: #ffa500;73 }74 75 .iafwzdesk-banner-upgrade-button {76 background-color: #ffffff;77 color: #333;78 }79 80 .iafwzdesk-banner-upgrade-button:hover {81 background-color: #f0f0f0;82 } -
integrate-with-zoho-desk/trunk/includes/admin/accounts-tab.php
r3277037 r3427118 16 16 </div> 17 17 </div> 18 18 <?php if ( $iafwzdesk_accountDBInstance->get_total_accounts() == 0 ) : ?> 19 20 <div class="notice notice-error"> 21 <p> 22 <?php 23 echo wp_kses( 24 __('Start by clicking <b>Add Account</b>. After connecting your Zoho account, continue to the Setup tab to create integrations.', 'integrate-with-zoho-desk'), 25 array( 'b' => array() ) 26 ); 27 ?> 28 </p> 29 </div> 30 31 <?php endif; ?> 19 32 <?php 20 33 $message = get_transient('iafwzdesk_account_message'); … … 34 47 $accounts_table->display(); // Display account table 35 48 if (!$session) { 36 include " banner.php";49 include "other-plugins.php"; 37 50 } 38 51 … … 65 78 66 79 // Get authentication data from transient 67 $auth_data = get_ transient('iafwzdesk_account_data');80 $auth_data = get_option('iafwzdesk_account_data'); 68 81 if (!$account_id) { 69 82 $account_id = $auth_data['account_id'] ?? null; … … 81 94 $data_center = $auth_data['data_center'] ?? ''; 82 95 $message = $auth_data['error_message'] ?? ''; 83 delete_transient('iafwzdesk_account_data'); 96 delete_option('iafwzdesk_account_data'); 97 84 98 } else { 85 99 // Fetch account details based on account ID … … 94 108 $data_center = $auth_data['data_center'] ?? ''; 95 109 $message = $auth_data['error_message'] ?? ''; 96 delete_transient('iafwzdesk_account_data'); 110 delete_option('iafwzdesk_account_data'); 111 97 112 } else { 98 113 // Default account name if no account ID or auth data is provided -
integrate-with-zoho-desk/trunk/includes/admin/admin.php
r3367574 r3427118 38 38 // Define assets for CSS and JS with busting versioning. 39 39 $assets = [ 40 'css' => ['home', 'auth', 'setup-fm', 'setup-filter', 'premium', 'settings', 'ai-settings', 'help', 'banner', 'error-log' ],40 'css' => ['home', 'auth', 'setup-fm', 'setup-filter', 'premium', 'settings', 'ai-settings', 'help', 'banner', 'error-log','other-plugins'], 41 41 'js' => ['home', 'common', 'setup-fm', 'setup-custom', 'setup-filter', 'ai-settings', 'help', 'error-log'] 42 42 ]; -
integrate-with-zoho-desk/trunk/includes/admin/banner.php
r3277037 r3427118 1 1 <?php 2 // Exit if accessed directly 3 if (!defined('ABSPATH')) { 4 exit; 5 } 2 6 ?> 3 <div class="iafwzdesk-banner-container"> 4 <div class="iafwzdesk-banner-header"> 5 <div class="iafwzdesk-banner-text"> 6 <h3 class="iafwzdesk-banner-title">Upgrade to Premium!</h3> 7 <p class="iafwzdesk-banner-description"> 8 Upgrade now to access advanced features and take your experience to the next level! 9 </p> 10 </div> 7 8 <div class="iafwzdesk-banner-wrap"> 9 10 <div class="iafwzdesk-banner-head"> 11 <span class="iafwzdesk-banner-title">Upgrade to Premium</span> 12 <div class="iafwzdesk-banner-offer"> 13 Use coupon code <code>NEWYEAR2026</code> to get <b>61% OFF</b> — Save <b>$30</b> instantly! 11 14 </div> 12 <div class="iafwzdesk-banner-feature-list"> 13 <div>✅ Integrate Unlimited Accounts</div> 14 <div>✅ Integrate Unlimited Forms</div> 15 <div>✅ Unlock Custom Fields</div> 16 <div>✅ Unlock Premium Fields</div> 17 <div>✅ Error Log Resync</div> 18 <div>✅ ...and much more!</div> 19 </div> 20 <div class="iafwzdesk-banner-buttons-container"> 21 <a href="<?php echo esc_url("https://integrazo.com/products/integrate-with-zoho-desk"); ?>" class="iafwzdesk-banner-button iafwzdesk-banner-upgrade-button" target="_blank" rel="noopener noreferrer"> 22 Upgrade Now 23 </a> 15 </div> 24 16 17 <div class="iafwzdesk-banner-plan-box"> 18 19 <!-- Free --> 20 <div class="iafwzdesk-banner-plan"> 21 <span class="iafwzdesk-banner-plan-title">Free Version</span> 22 <div class="iafwzdesk-banner-price">$0</div> 23 24 <ul class="iafwzdesk-banner-features"> 25 <li>Connect limited integrations</li> 26 <li>Basic field mapping</li> 27 <li class="disabled">Premium fields support</li> 28 <li class="disabled">Custom fields mapping</li> 29 <li class="disabled">Error log resync</li> 30 <li class="disabled">Priority support</li> 31 </ul> 25 32 </div> 26 33 34 <!-- Premium --> 35 <div class="iafwzdesk-banner-plan" style="border: 2px solid #2a3cff;"> 36 <span class="iafwzdesk-banner-plan-title">Premium Version</span> 37 38 <div class="iafwzdesk-banner-price"> 39 <del>$49</del> $19 40 </div> 41 42 <span style="font-size: 13px; color: #0a8f0a; font-weight: 600;"> 43 🎉 You save <b>$30</b> right now (61% OFF) 44 </span> 45 46 <ul class="iafwzdesk-banner-features" style="margin-top: 10px;"> 47 <li>Connect unlimited integrations</li> 48 <li>Advanced field mapping</li> 49 <li>Premium fields support</li> 50 <li>Custom fields mapping</li> 51 <li>Error log resync</li> 52 <li>Priority email support</li> 53 </ul> 54 </div> 55 56 </div> 57 58 <div class="iafwzdesk-banner-cta"> 59 <a href="https://integrazo.com/products/integrate-with-zoho-desk" 60 target="_blank" 61 class="iafwzdesk-banner-btn"> 62 Purchase Now & Save $30 63 </a> 64 <div style="margin-top: 8px; font-size: 13px; color: #666;"> 65 Limited time offer — Grab your 61% discount today! 66 </div> 67 </div> 68 27 69 </div> -
integrate-with-zoho-desk/trunk/includes/admin/premium-tab.php
r3277037 r3427118 10 10 <p>The free version offers basic features to get started, but upgrading to premium unlocks advanced tools and unlimited access.</p> 11 11 </div> 12 12 13 <div style="text-align: center;"> 14 <a href="https://integrazo.com/products/integrate-with-zoho-desk" target="_blank"> 15 <button class="iafwzdesk-go-premium-button">Upgrade to Premium</button> 16 </a> 17 </div> 18 <br> 13 19 <table class="iafwzdesk-plan-comparison-table-wrapper"> 14 20 <thead class="iafwzdesk-plan-table-header-container"> … … 208 214 209 215 210 <br> 211 <div style="text-align: center;"> 212 <a href="https://integrazo.com/products/integrate-with-zoho-desk" target="_blank"> 213 <button class="iafwzdesk-go-premium-button">Upgrade to Premium</button> 214 </a> 215 </div> 216 216 217 217 218 </div> -
integrate-with-zoho-desk/trunk/integrate-with-zoho-desk.php
r3414034 r3427118 5 5 * Plugin URI: https://integrazo.com/products/integrate-with-zoho-desk 6 6 * Description: Connect Contact Form 7, WPForms, Elementor Forms, Gravity Forms, and Formidable Forms submissions with Zoho Desk. 7 * Version: 1.0. 87 * Version: 1.0.9 8 8 * Author: Integrazo 9 9 * Author URI: https://integrazo.com/ -
integrate-with-zoho-desk/trunk/readme.txt
r3414034 r3427118 1 === Integration for Zoho Desk ===1 === Integration for Zoho Desk - Contact Form 7, WPForms, Elementor, Gravity Forms and Formidable === 2 2 Contributors: plugcrux, integrazo, padmadev 3 3 Tags: zoho desk integration, zoho desk, contact form 7, wpforms, elementor forms … … 5 5 Tested up to: 6.9 6 6 Requires PHP: 7.4 7 Stable tag: 1.0. 87 Stable tag: 1.0.9 8 8 License: GPLv2 or later 9 9 License URI: https://www.gnu.org/licenses/gpl-2.0.html … … 211 211 == Changelog == 212 212 213 = 1.0.9 = 214 * Changed: Replaced transient-based account authentication storage with WordPress options for improved reliability. 215 * Improved: Account authentication flow stability during Zoho OAuth redirects. 216 * Improved: Better handling of authentication errors and session recovery. 217 * Improved: Data sanitization and validation in the Accounts and Setup pages. 218 * Fixed: Edge cases where account data could be lost during browser refresh or delayed redirects. 219 213 220 = 1.0.8 = 214 221 * Checked: Plugin tested and confirmed compatible with WordPress 6.9 -
integrate-with-zoho-desk/trunk/src/product/account-action.php
r3349490 r3427118 54 54 'account_id' => $account_id, 55 55 ]; 56 set_transient('iafwzdesk_account_data', $auth_data, 300); // Store for 5 minutes56 update_option('iafwzdesk_account_data', $auth_data); 57 57 58 58 // Construct the Zoho OAuth URL … … 81 81 if (isset($_GET['page'], $_GET['nonce']) && $_GET['page'] === 'integrate-with-zoho-desk') { 82 82 // Retrieve and sanitize transient values 83 $auth_data = get_ transient('iafwzdesk_account_data') ?: [];83 $auth_data = get_option('iafwzdesk_account_data') ?: []; 84 84 85 85 // Handle session expiration or missing data … … 124 124 $iafwzdesk_accountDBInstance->update_account($account_id, $auth_data['account_name'], $auth_data['data_center'], $refresh_token, $access_token, $org_id); 125 125 } else { 126 set_transient('iafwzdesk_account_message', "Account added successfully.", 300); 126 127 $current_count = $iafwzdesk_accountDBInstance->get_total_accounts(); 128 129 // Insert new account 127 130 $account_id = $iafwzdesk_accountDBInstance->insert_account($auth_data['account_name'], $auth_data['data_center'], $refresh_token, $access_token, $org_id); 128 } 129 // 130 131 132 // If this is the first account (count was 0 before insert) 133 if ( $current_count == 0 ) { 134 set_transient( 135 'iafwzdesk_account_message', 136 "Account added successfully. Next, go to the Setup tab and start your integration.", 137 300 138 ); 139 } else { 140 set_transient('iafwzdesk_account_message', "Account added successfully.", 300); 141 } 142 } 131 143 // Delete auth data transient and redirect 132 delete_transient('iafwzdesk_account_data'); 144 delete_option('iafwzdesk_account_data'); 145 133 146 wp_redirect($redirect_url); 134 147 exit; … … 139 152 { 140 153 // Retrieve the existing auth data and merge the new error message 141 $auth_data = get_transient('iafwzdesk_account_data') ?: []; 154 $auth_data = get_option('iafwzdesk_account_data') ?: []; 155 142 156 $auth_data['error_message'] = $message; // Add error message to existing data 143 157 144 158 // Set the transient with the full auth data, including error message 145 set_transient('iafwzdesk_account_data', $auth_data, 300);159 update_option('iafwzdesk_account_data', $auth_data); 146 160 // Redirect with error status 147 161 wp_redirect(remove_query_arg(['code', 'nonce']));
Note: See TracChangeset
for help on using the changeset viewer.