Changeset 3453925
- Timestamp:
- 02/04/2026 04:00:30 PM (2 weeks ago)
- Location:
- tracksharp
- Files:
-
- 1 deleted
- 4 edited
-
tags/1.2.7 (deleted)
-
trunk/Tracksharp-tracker.php (modified) (6 diffs)
-
trunk/assets/freemius-pricing/freemius-pricing.css (modified) (2 diffs)
-
trunk/includes/admin/class-tracksharp-admin.php (modified) (2 diffs)
-
trunk/readme.txt (modified) (3 diffs)
Legend:
- Unmodified
- Added
- Removed
-
tracksharp/trunk/Tracksharp-tracker.php
r3452023 r3453925 4 4 * Plugin Name: TrackSharp – Server Side Tracking for WooCommerce 5 5 * Description: First-party server-side tracking for WooCommerce. GA4 Measurement Protocol, Meta Conversions API (CAPI), Google Ads Conversion attribution, Enhanced Conversions, and WP Consent API integration. 6 * Version: 1.2. 86 * Version: 1.2.9 7 7 * Author: Kaya van Vliet 8 8 * Requires PHP: 7.4 … … 17 17 // Plugin Constants 18 18 // ============================================================================ 19 define( 'TRACKSHARP_VERSION', '1.2. 8' );19 define( 'TRACKSHARP_VERSION', '1.2.9' ); 20 20 define( 'TRACKSHARP_PLUGIN_DIR', plugin_dir_path( __FILE__ ) ); 21 21 define( 'TRACKSHARP_PLUGIN_URL', plugin_dir_url( __FILE__ ) ); … … 44 44 'is_org_compliant' => true, 45 45 'is_premium' => false, 46 'premium_suffix' => ' ',46 'premium_suffix' => 'Pro', 47 47 'has_addons' => false, 48 48 'has_paid_plans' => true, 49 'trial' => array( 50 'days' => 14, 51 'is_require_payment' => false, 52 ), 49 53 'menu' => array( 50 54 'slug' => 'tracksharp-audit', … … 67 71 // ============================================================================ 68 72 if ( function_exists( 'tracksharp_fs' ) ) { 69 // Force default currency to EUR73 // Force default currency to USD 70 74 tracksharp_fs()->add_filter( 'default_currency', function ( $currency ) { 71 return ' eur';75 return 'usd'; 72 76 } ); 73 77 // Custom plugin icon for pricing page … … 75 79 return TRACKSHARP_PLUGIN_DIR . 'assets/images/tracksharp-icon.png'; 76 80 } ); 77 // Custom pricing URL for Dutch sites (keep Freemius flow for others). 81 // Custom pricing URL based on locale. 82 // Dutch sites → tracksharp.nl, others → default Freemius upgrade page 78 83 tracksharp_fs()->add_filter( 'pricing_url', function ( $url ) { 79 84 $site_locale = (string) get_option( 'WPLANG' ); … … 100 105 return 'https://tracksharp.nl/#prijzen'; 101 106 } 102 return $url; 107 // Non-Dutch: return null to use the internal Freemius pricing page (branded with our CSS) 108 return null; 103 109 } ); 104 110 // Hide some Freemius submenus - keep Account and Pricing visible -
tracksharp/trunk/assets/freemius-pricing/freemius-pricing.css
r3437616 r3453925 2 2 * TrackSharp Premium Pricing Page Styles 3 3 * Custom CSS for Freemius pricing page integration 4 * Updated with correct Freemius SDK selectors5 4 */ 6 5 7 /* ============================================================================8 CSS Custom Properties (TrackSharp Brand)9 ============================================================================ */10 6 :root { 11 7 --ts-primary: #1ecc8c; 8 --ts-primary-rgb: 30, 204, 140; 12 9 --ts-primary-dark: #158a5f; 13 10 --ts-primary-darker: #127a54; … … 24 21 } 25 22 26 /* ============================================================================ 27 Base Wrapper & Main Container 28 ============================================================================ */ 23 /* Base Wrapper & Navigation Layout */ 29 24 #fs_pricing_wrapper, 30 25 .fs-app-main { 31 26 font-family: 'Inter', -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, sans-serif !important; 32 27 -webkit-font-smoothing: antialiased; 33 background: linear-gradient(180deg, #0f172a 0%, #1e293b 100%) !important; 34 } 35 36 /* ============================================================================ 37 CRITICAL: Override Inline Width Styles 38 ============================================================================ */ 39 .fs-packages-nav, 40 section.fs-packages-nav { 41 width: 100% !important; 42 max-width: 900px !important; 28 background: var(--ts-surface-alt) !important; 29 min-height: 100vh; 30 } 31 32 /* Header Tweaks */ 33 .fs-app-header { 34 padding: 40px 0 !important; 35 border-bottom: 1px solid var(--ts-border) !important; 36 background: #ffffff !important; 37 margin-bottom: 0px !important; 38 } 39 40 .fs-app-header .fs-plugin-icon { 41 width: 64px !important; 42 height: 64px !important; 43 border-radius: 12px !important; 44 } 45 46 /* Sections Spacing */ 47 .fs-section, 48 #fs_pricing_wrapper section { 49 max-width: 95% !important; 43 50 margin: 0 auto !important; 44 } 45 46 .fs-packages, 47 ul.fs-packages { 48 width: 100% !important; 49 max-width: 100% !important; 50 left: 0 !important; 51 position: relative !important; 51 width: 95% !important; 52 box-sizing: border-box !important; 53 54 } 55 56 57 /* Billing Cycles Toggle - Modernized */ 58 .fs-section--billing-cycles { 59 margin-bottom: 48px !important; 52 60 display: flex !important; 53 61 justify-content: center !important; 54 gap: 24px !important; 62 } 63 64 .fs-billing-cycles { 65 display: flex !important; 66 background: #ffffff !important; 67 border: 1px solid var(--ts-border) !important; 68 border-radius: 999px !important; 69 padding: 6px !important; 70 box-shadow: var(--ts-shadow-sm) !important; 71 list-style: none !important; 72 margin: 0 !important; 73 } 74 75 .fs-billing-cycles li { 76 padding: 12px 32px !important; 77 border-radius: 999px !important; 78 font-weight: 700 !important; 79 font-size: 14px !important; 80 color: var(--ts-text-muted) !important; 81 cursor: pointer !important; 82 transition: all 0.2s ease !important; 83 border: none !important; 84 margin: 0 !important; 85 display: flex !important; 86 align-items: center !important; 87 } 88 89 .fs-billing-cycles li.fs-selected-billing-cycle { 90 background: var(--ts-primary) !important; 91 color: #ffffff !important; 92 box-shadow: 0 4px 12px rgba(var(--ts-primary-rgb), 0.3) !important; 93 } 94 95 /* Annual Discount Badge */ 96 .fs-section--annual-discount { 97 text-align: center !important; 98 margin-bottom: 24px !important; 99 } 100 101 .fs-section--annual-discount .fs-discount-badge { 102 background: rgba(var(--ts-primary-rgb), 0.1) !important; 103 color: var(--ts-primary-dark) !important; 104 padding: 8px 24px !important; 105 border-radius: 999px !important; 106 font-weight: 800 !important; 107 font-size: 13px !important; 108 text-transform: uppercase !important; 109 letter-spacing: 0.05em !important; 110 border: 1px solid rgba(var(--ts-primary-rgb), 0.2) !important; 111 } 112 113 /* Packages Grid */ 114 .fs-packages { 115 display: flex !important; 116 flex-direction: row !important; 117 justify-content: center !important; 118 align-items: stretch !important; 119 gap: 32px !important; 120 margin-top: 40px !important; 55 121 flex-wrap: wrap !important; 56 122 padding: 0 !important; 123 list-style: none !important; 124 width: 100% !important; 125 } 126 127 .fs-package { 128 background: #ffffff !important; 129 border: 1px solid var(--ts-border) !important; 130 border-radius: var(--ts-radius) !important; 131 padding: 48px 40px !important; 132 width: 350px !important; 133 max-width: 100% !important; 134 text-align: center !important; 135 transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1) !important; 136 box-shadow: var(--ts-shadow-sm) !important; 137 position: relative !important; 138 flex: 0 1 auto !important; 57 139 margin: 0 !important; 58 140 } 59 141 60 .fs-package, 61 li.fs-package { 62 width: 320px !important; 63 min-width: 280px !important; 64 max-width: 350px !important; 65 flex: 0 0 auto !important; 66 } 67 68 /* ============================================================================ 69 HIDE: Packages Tab (unnecessary with single plan) 70 ============================================================================ */ 71 .fs-packages-tab, 72 ul.fs-packages-tab { 73 display: none !important; 74 visibility: hidden !important; 75 } 76 77 /* ============================================================================ 78 Packages Section Container 79 ============================================================================ */ 80 .fs-section--packages { 81 background: var(--ts-surface-alt) !important; 82 padding: 48px 24px 64px !important; 83 border-radius: 24px !important; 84 margin: 24px auto !important; 85 max-width: 900px !important; 86 overflow: visible !important; 87 } 88 89 /* Hide prev/next navigation arrows */ 90 .fs-prev-package, 91 .fs-next-package, 92 nav.fs-prev-package, 93 nav.fs-next-package { 94 display: none !important; 95 } 96 97 /* ============================================================================ 98 Billing Cycles Toggle - FIX READABILITY 99 ============================================================================ */ 100 .fs-section--billing-cycles { 101 margin-bottom: 20px !important; 102 } 103 104 .fs-billing-cycles, 105 ul.fs-billing-cycles { 106 display: flex !important; 107 justify-content: center !important; 108 gap: 0 !important; 109 list-style: none !important; 110 padding: 4px !important; 111 margin: 0 !important; 112 background: rgba(255, 255, 255, 0.1) !important; 113 border-radius: 999px !important; 114 border: 1px solid rgba(255, 255, 255, 0.15) !important; 115 } 116 117 /* All billing cycle options - make text WHITE for visibility */ 118 .fs-billing-cycles li, 119 .fs-period--monthly, 120 .fs-period--annual, 121 li[data-billing-cycle] { 122 color: rgba(255, 255, 255, 0.9) !important; 123 padding: 10px 20px !important; 124 border-radius: 999px !important; 125 cursor: pointer !important; 126 font-size: 14px !important; 127 font-weight: 500 !important; 128 transition: all 0.2s ease !important; 129 background: transparent !important; 130 margin: 0 !important; 131 } 132 133 /* Inactive state - ensure white text */ 134 .fs-period--monthly:not(.fs-selected-billing-cycle), 135 .fs-period--annual:not(.fs-selected-billing-cycle), 136 .fs-billing-cycles li:not(.fs-selected-billing-cycle) { 137 color: rgba(255, 255, 255, 0.75) !important; 138 background: transparent !important; 139 } 140 141 /* Active/Selected state */ 142 .fs-selected-billing-cycle, 143 .fs-billing-cycles li.fs-selected-billing-cycle, 144 .fs-period--monthly.fs-selected-billing-cycle, 145 .fs-period--annual.fs-selected-billing-cycle { 142 .fs-package:hover { 143 transform: translateY(-8px) !important; 144 box-shadow: var(--ts-shadow) !important; 145 border-color: var(--ts-primary) !important; 146 } 147 148 /* Most Popular Badge Override */ 149 .fs-most-popular { 150 position: absolute !important; 151 top: -16px !important; 152 left: 50% !important; 153 transform: translateX(-50%) !important; 146 154 background: var(--ts-primary) !important; 147 155 color: #ffffff !important; 156 padding: 8px 20px !important; 157 border-radius: 999px !important; 158 font-size: 11px !important; 159 font-weight: 800 !important; 160 text-transform: uppercase !important; 161 letter-spacing: 0.1em !important; 162 box-shadow: 0 4px 12px rgba(var(--ts-primary-rgb), 0.4) !important; 163 } 164 165 /* Pricing Display */ 166 .fs-plan-title { 167 font-size: 14px !important; 168 font-weight: 700 !important; 169 text-transform: uppercase !important; 170 letter-spacing: 0.1em !important; 171 color: var(--ts-text-muted) !important; 172 margin-bottom: 24px !important; 173 } 174 175 .fs-selected-pricing-amount { 176 font-size: 64px !important; 177 font-weight: 800 !important; 178 color: var(--ts-text-dark) !important; 179 margin: 16px 0 !important; 180 display: flex !important; 181 align-items: center !important; 182 justify-content: center !important; 183 line-height: 1 !important; 184 } 185 186 .fs-selected-pricing-amount sup { 187 font-size: 24px !important; 188 font-weight: 700 !important; 189 margin: 0 2px !important; 190 position: relative !important; 191 top: -4px !important; 192 } 193 194 .fs-selected-pricing-amount .fs-period { 195 font-size: 18px !important; 196 color: var(--ts-text-muted) !important; 148 197 font-weight: 600 !important; 149 box-shadow: 0 2px 8px rgba(30, 204, 140, 0.3) !important; 150 } 151 152 /* ============================================================================ 153 Annual Discount Banner 154 ============================================================================ */ 155 .fs-section--annual-discount { 156 margin-bottom: 16px !important; 157 } 158 159 .fs-section--annual-discount>*, 160 .fs-section--annual-discount span, 161 .fs-section--annual-discount div { 162 background: linear-gradient(135deg, #fbbf24 0%, #f59e0b 100%) !important; 163 color: #0f172a !important; 164 padding: 8px 20px !important; 165 border-radius: 999px !important; 166 font-weight: 600 !important; 167 font-size: 13px !important; 168 display: inline-block !important; 169 } 170 171 /* ============================================================================ 172 Currency Selector 173 ============================================================================ */ 174 .fs-section--currencies { 175 margin-bottom: 24px !important; 176 } 177 178 .fs-section--currencies select, 179 .fs-section--currencies .fs-currency-selector { 180 background: rgba(255, 255, 255, 0.15) !important; 181 border: 1px solid rgba(255, 255, 255, 0.25) !important; 182 border-radius: 8px !important; 183 color: #ffffff !important; 184 padding: 10px 16px !important; 185 font-size: 14px !important; 186 cursor: pointer !important; 187 } 188 189 /* ============================================================================ 190 Individual Package Cards 191 ============================================================================ */ 192 .fs-package { 193 background: var(--ts-surface) !important; 194 border: 2px solid var(--ts-border) !important; 195 border-radius: var(--ts-radius) !important; 196 box-shadow: var(--ts-shadow-sm) !important; 197 padding: 32px 28px !important; 198 transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1) !important; 199 position: relative !important; 200 overflow: visible !important; 201 list-style: none !important; 202 } 203 204 .fs-package:hover { 205 box-shadow: var(--ts-shadow) !important; 206 border-color: var(--ts-primary) !important; 207 } 208 209 /* Featured/Popular Package */ 210 .fs-package:first-child { 211 border-color: var(--ts-primary) !important; 212 box-shadow: var(--ts-shadow), 0 0 0 4px rgba(30, 204, 140, 0.15) !important; 213 } 214 215 /* Most Popular Badge */ 216 .fs-most-popular { 217 position: absolute !important; 218 top: -12px !important; 219 left: 50% !important; 220 transform: translateX(-50%) !important; 221 background: linear-gradient(135deg, var(--ts-primary) 0%, var(--ts-primary-dark) 100%) !important; 222 color: #ffffff !important; 223 font-size: 11px !important; 224 font-weight: 700 !important; 225 text-transform: uppercase !important; 226 letter-spacing: 0.08em !important; 227 padding: 6px 16px !important; 228 border-radius: 999px !important; 229 box-shadow: 0 4px 12px rgba(30, 204, 140, 0.4) !important; 230 white-space: nowrap !important; 231 } 232 233 .fs-package-content { 234 text-align: center !important; 235 } 236 237 /* ============================================================================ 238 Plan Title & Description 239 ============================================================================ */ 240 .fs-plan-title { 241 font-size: 12px !important; 242 font-weight: 700 !important; 243 text-transform: uppercase !important; 244 letter-spacing: 0.12em !important; 245 color: var(--ts-text-muted) !important; 246 margin: 0 0 12px 0 !important; 247 background: var(--ts-surface-alt) !important; 248 border-radius: 8px !important; 249 display: inline-block !important; 250 } 251 252 .fs-plan-title strong { 253 color: var(--ts-text-dark) !important; 254 font-weight: 700 !important; 255 } 256 257 .fs-plan-description { 258 font-size: 14px !important; 259 color: var(--ts-text-muted) !important; 260 line-height: 1.5 !important; 261 margin: 0 0 20px 0 !important; 262 font-weight: 400 !important; 263 } 264 265 /* ============================================================================ 266 Pricing Display 267 ============================================================================ */ 198 margin-left: 8px !important; 199 } 200 201 /* Undiscounted price (Normally $X / mo) */ 268 202 .fs-undiscounted-price { 269 font-size: 1 4px !important;203 font-size: 15px !important; 270 204 color: var(--ts-text-light) !important; 271 205 text-decoration: line-through !important; 272 206 margin-bottom: 4px !important; 273 opacity: 0.7 !important; 274 } 275 276 .fs-selected-pricing-amount { 277 font-size: 48px !important; 278 font-weight: 800 !important; 207 opacity: 0.8 !important; 208 } 209 210 /* Features List */ 211 .fs-plan-features { 212 text-align: left !important; 213 margin: 32px 0 !important; 214 padding: 32px 0 !important; 215 border-top: 1px solid var(--ts-border) !important; 216 list-style: none !important; 217 } 218 219 .fs-plan-features li { 220 margin-bottom: 16px !important; 221 font-size: 14px !important; 279 222 color: var(--ts-text-dark) !important; 280 line-height: 1.1 !important; 281 margin: 8px 0 !important; 282 } 283 284 .fs-selected-pricing-amount sup { 285 font-size: 20px !important; 286 font-weight: 600 !important; 287 vertical-align: top !important; 288 margin-right: 2px !important; 289 } 290 291 .fs-selected-pricing-amount sub, 292 .fs-selected-pricing-amount .fs-period { 293 font-size: 14px !important; 294 font-weight: 500 !important; 295 color: var(--ts-text-muted) !important; 296 } 297 298 .fs-selected-pricing-cycle { 299 font-size: 11px !important; 300 color: var(--ts-text-muted) !important; 301 text-transform: uppercase !important; 302 letter-spacing: 0.08em !important; 303 font-weight: 600 !important; 304 margin: 8px 0 !important; 305 } 306 307 .fs-selected-pricing-license-quantity { 308 font-size: 13px !important; 309 color: var(--ts-primary-dark) !important; 310 font-weight: 500 !important; 311 margin: 4px 0 16px 0 !important; 312 } 313 314 /* ============================================================================ 315 Features Section 316 ============================================================================ */ 317 .fs-support-and-main-features { 318 border-top: 1px solid var(--ts-border) !important; 319 padding-top: 16px !important; 320 margin: 16px 0 !important; 321 font-size: 13px !important; 322 color: var(--ts-text-muted) !important; 323 text-align: center !important; 324 } 325 326 .fs-plan-features { 327 list-style: none !important; 328 padding: 0 !important; 329 margin: 12px 0 0 0 !important; 330 text-align: left !important; 331 } 332 333 .fs-plan-features li { 334 display: flex !important; 335 align-items: flex-start !important; 336 gap: 10px !important; 337 padding: 6px 0 !important; 338 font-size: 13px !important; 339 color: var(--ts-text-dark) !important; 223 display: flex !important; 224 align-items: center !important; 340 225 } 341 226 342 227 .fs-plan-features li::before { 343 content: '✓' !important; 344 display: flex !important; 345 align-items: center !important; 346 justify-content: center !important; 347 width: 18px !important; 348 height: 18px !important; 349 background: rgba(30, 204, 140, 0.15) !important; 350 color: var(--ts-primary-dark) !important; 351 border-radius: 50% !important; 352 font-size: 10px !important; 353 font-weight: 700 !important; 354 flex-shrink: 0 !important; 355 margin-top: 2px !important; 356 } 357 358 /* ============================================================================ 359 CTA Buttons 360 ============================================================================ */ 361 .fs-upgrade-button-container { 362 margin-top: 20px !important; 363 } 364 365 .fs-upgrade-button-container a, 366 .fs-upgrade-button-container button, 367 .fs-button, 368 a.fs-button { 369 display: block !important; 228 content: "✓" !important; 229 color: var(--ts-primary) !important; 230 font-weight: 900 !important; 231 margin-right: 12px !important; 232 font-size: 18px !important; 233 } 234 235 /* Upgrade Button - Massive Brand CTA */ 236 .fs-upgrade-button-container .fs-button, 237 .fs-button-primary { 238 background: var(--ts-primary) !important; 239 border: none !important; 240 color: #ffffff !important; 241 padding: 18px 32px !important; 242 border-radius: var(--ts-radius-sm) !important; 243 font-size: 16px !important; 244 font-weight: 700 !important; 245 text-transform: uppercase !important; 246 letter-spacing: 0.05em !important; 370 247 width: 100% !important; 371 background: linear-gradient(135deg, var(--ts-primary) 0%, var(--ts-primary-dark) 100%) !important;372 border: none !important;373 border-radius: var(--ts-radius-sm) !important;374 color: #ffffff !important;375 font-size: 13px !important;376 font-weight: 600 !important;377 padding: 14px 24px !important;378 text-align: center !important;379 text-decoration: none !important;380 248 cursor: pointer !important; 381 249 transition: all 0.2s ease !important; 382 box-shadow: 0 4px 14px rgba(30, 204, 140, 0.3) !important; 383 text-transform: uppercase !important; 384 letter-spacing: 0.05em !important; 385 } 386 387 .fs-upgrade-button-container a:hover, 388 .fs-upgrade-button-container button:hover, 389 .fs-button:hover, 390 a.fs-button:hover { 391 background: linear-gradient(135deg, var(--ts-primary-dark) 0%, var(--ts-primary-darker) 100%) !important; 250 box-shadow: 0 4px 14px rgba(var(--ts-primary-rgb), 0.3) !important; 251 } 252 253 .fs-upgrade-button-container .fs-button:hover, 254 .fs-button-primary:hover { 255 background: var(--ts-primary-dark) !important; 392 256 transform: translateY(-2px) !important; 393 box-shadow: 0 8px 20px rgba(30, 204, 140, 0.4) !important; 394 color: #ffffff !important; 395 } 396 397 /* ============================================================================ 398 Footer / Trust Section - HIDE 399 ============================================================================ */ 400 .fs-section--contact, 257 box-shadow: 0 8px 20px rgba(var(--ts-primary-rgb), 0.4) !important; 258 } 259 260 /* Disabled/Current Plan Button Styles */ 261 .fs-button[disabled], 262 .fs-button--outline[disabled], 263 .fs-upgrade-button[disabled] { 264 background: var(--ts-surface-alt) !important; 265 border: 2px solid var(--ts-border) !important; 266 color: var(--ts-text-light) !important; 267 cursor: not-allowed !important; 268 opacity: 0.7 !important; 269 box-shadow: none !important; 270 transform: none !important; 271 pointer-events: none !important; 272 } 273 274 /* Disable Unnecessary Elements */ 275 .fs-currencies, 276 .fs-section--currencies, 401 277 .fs-section--badges, 402 .fs-badges, 403 .fs-secure-payments, 404 [class*="secure-payments"], 405 [class*="badges"], 406 footer.fs-footer, 407 .fs-footer, 408 .fs-powered-by, 409 [class*="powered-by"] { 278 .fs-section--faq, 279 .fs-powered-by { 410 280 display: none !important; 411 visibility: hidden !important; 412 height: 0 !important; 413 overflow: hidden !important; 414 opacity: 0 !important; 415 } 416 417 /* ============================================================================ 418 Responsive Design 419 ============================================================================ */ 420 @media (max-width: 768px) { 421 .fs-section--packages { 422 padding: 24px 16px 40px !important; 423 margin: 16px !important; 424 } 425 426 .fs-packages, 427 ul.fs-packages { 428 flex-direction: column !important; 429 align-items: center !important; 430 } 431 432 .fs-package, 433 li.fs-package { 434 width: 100% !important; 435 max-width: 100% !important; 436 padding: 24px 20px !important; 437 } 438 439 .fs-selected-pricing-amount { 440 font-size: 36px !important; 441 } 442 443 .fs-billing-cycles li, 444 .fs-period--monthly, 445 .fs-period--annual { 446 padding: 8px 14px !important; 447 font-size: 13px !important; 448 } 449 } 450 451 /* ============================================================================ 452 Animation 453 ============================================================================ */ 454 @keyframes fadeInUp { 455 from { 456 opacity: 0; 457 transform: translateY(20px); 458 } 459 460 to { 461 opacity: 1; 462 transform: translateY(0); 463 } 464 } 465 466 .fs-package { 467 animation: fadeInUp 0.5s ease forwards; 468 } 469 470 .fs-package:nth-child(1) { 471 animation-delay: 0.1s; 472 } 473 474 .fs-package:nth-child(2) { 475 animation-delay: 0.2s; 476 } 281 } -
tracksharp/trunk/includes/admin/class-tracksharp-admin.php
r3437616 r3453925 147 147 'tracksharp-settings', 148 148 'tracksharp-setup', 149 'tracksharp-audit-pricing', 150 'tracksharp-audit-account', 149 151 ]; 150 152 … … 160 162 TRACKSHARP_VERSION 161 163 ); 164 165 if ($page === 'tracksharp-audit-pricing' || $page === 'tracksharp-audit-account') { 166 wp_enqueue_style( 167 'tracksharp-freemius-pricing', 168 TRACKSHARP_PLUGIN_URL . 'assets/freemius-pricing/freemius-pricing.css', 169 [], 170 TRACKSHARP_VERSION 171 ); 172 } 162 173 163 174 // Enqueue JS -
tracksharp/trunk/readme.txt
r3452023 r3453925 5 5 Tested up to: 6.9 6 6 Requires PHP: 7.4 7 Stable tag: 1.2. 87 Stable tag: 1.2.9 8 8 License: GPLv2 or later 9 9 License URI: https://www.gnu.org/licenses/gpl-2.0.html … … 106 106 == Changelog == 107 107 108 = 1.2.9 = 109 * New: 14-day free trial for Pro features (no credit card required). 110 108 111 = 1.2.8 = 109 112 * New: Referral preservation to improve GA4 attribution accuracy. … … 132 135 133 136 == Upgrade Notice == 137 138 = 1.2.9 = 139 New: 14-day free trial for Pro features. 134 140 135 141 = 1.2.8 =
Note: See TracChangeset
for help on using the changeset viewer.