Changeset 3437030
- Timestamp:
- 01/11/2026 11:15:12 AM (3 months ago)
- Location:
- synced-pattern-popups
- Files:
-
- 25 added
- 6 edited
-
tags/1.1.3 (added)
-
tags/1.1.3/assets (added)
-
tags/1.1.3/assets/css (added)
-
tags/1.1.3/assets/css/admin.css (added)
-
tags/1.1.3/assets/css/modal.css (added)
-
tags/1.1.3/assets/js (added)
-
tags/1.1.3/assets/js/admin.js (added)
-
tags/1.1.3/assets/js/modal.js (added)
-
tags/1.1.3/includes (added)
-
tags/1.1.3/includes/class-sppopups-abilities.php (added)
-
tags/1.1.3/includes/class-sppopups-admin.php (added)
-
tags/1.1.3/includes/class-sppopups-ajax.php (added)
-
tags/1.1.3/includes/class-sppopups-asset-collector.php (added)
-
tags/1.1.3/includes/class-sppopups-cache.php (added)
-
tags/1.1.3/includes/class-sppopups-pattern.php (added)
-
tags/1.1.3/includes/class-sppopups-plugin.php (added)
-
tags/1.1.3/includes/class-sppopups-review-notice.php (added)
-
tags/1.1.3/includes/class-sppopups-settings.php (added)
-
tags/1.1.3/includes/class-sppopups-tldr.php (added)
-
tags/1.1.3/includes/class-sppopups-trigger-parser.php (added)
-
tags/1.1.3/languages (added)
-
tags/1.1.3/languages/synced-pattern-popups.pot (added)
-
tags/1.1.3/readme.txt (added)
-
tags/1.1.3/sppopups.php (added)
-
trunk/assets/css/admin.css (modified) (2 diffs)
-
trunk/assets/js/admin.js (modified) (1 diff)
-
trunk/includes/class-sppopups-admin.php (modified) (3 diffs)
-
trunk/includes/class-sppopups-review-notice.php (added)
-
trunk/languages/synced-pattern-popups.pot (modified) (9 diffs)
-
trunk/readme.txt (modified) (3 diffs)
-
trunk/sppopups.php (modified) (4 diffs)
Legend:
- Unmodified
- Added
- Removed
-
synced-pattern-popups/trunk/assets/css/admin.css
r3436798 r3437030 489 489 align-items: center; 490 490 margin-bottom: 0; 491 max-width: 960px; 492 width: 100%; 493 box-sizing: border-box; 491 494 } 492 495 … … 919 922 } 920 923 } 924 925 /* Review Notice Styles */ 926 .sppopups-review-notice-wrapper { 927 margin: 20px 0; 928 width: 100%; 929 max-width: 960px; 930 } 931 932 .sppopups-review-notice { 933 position: relative; 934 width: 100%; 935 max-width: 100%; 936 padding: 24px 32px; 937 background: linear-gradient(135deg, #f7f8f9 0%, #f0f1f3 100%); 938 border: 1px solid #e5e7e9; 939 border-radius: 8px; 940 box-shadow: 0 1px 3px rgba(0, 0, 0, 0.05); 941 box-sizing: border-box; 942 } 943 944 .sppopups-review-notice-heading { 945 margin: 0 0 8px 0; 946 padding: 0; 947 font-size: 18px; 948 font-weight: 600; 949 color: #1d2327; 950 line-height: 1.4; 951 } 952 953 .sppopups-review-notice-subheading { 954 margin: 0 0 12px 0; 955 padding: 0; 956 font-size: 14px; 957 color: #50575e; 958 line-height: 1.5; 959 } 960 961 .sppopups-review-notice-stars { 962 margin: 0 0 16px 0; 963 font-size: 20px; 964 line-height: 1; 965 letter-spacing: 2px; 966 } 967 968 .sppopups-review-notice-actions { 969 margin: 0 0 12px 0; 970 display: flex; 971 align-items: center; 972 gap: 16px; 973 flex-wrap: wrap; 974 } 975 976 .sppopups-review-notice-button { 977 display: inline-block; 978 padding: 10px 20px; 979 background: #2271b1; 980 color: #fff; 981 text-decoration: none; 982 border-radius: 4px; 983 font-size: 14px; 984 font-weight: 500; 985 line-height: 1.5; 986 transition: background-color 0.2s ease, color 0.2s ease; 987 } 988 989 .sppopups-review-notice-button:hover, 990 .sppopups-review-notice-button:focus { 991 background: #135e96; 992 color: #fff; 993 text-decoration: none; 994 outline: 2px solid #2271b1; 995 outline-offset: 2px; 996 } 997 998 .sppopups-review-notice-button:active { 999 background: #0a4b78; 1000 } 1001 1002 .sppopups-review-notice-footer { 1003 margin: 0; 1004 padding: 0; 1005 font-size: 12px; 1006 color: #646970; 1007 line-height: 1.5; 1008 } 1009 1010 .sppopups-review-notice-footer em { 1011 font-style: italic; 1012 color: #646970; 1013 } 1014 1015 .sppopups-review-notice-dismiss-link { 1016 color: #646970; 1017 text-decoration: none; 1018 font-size: 13px; 1019 cursor: pointer; 1020 transition: color 0.2s ease; 1021 } 1022 1023 .sppopups-review-notice-dismiss-link:hover, 1024 .sppopups-review-notice-dismiss-link:focus { 1025 color: #1d2327; 1026 text-decoration: underline; 1027 outline: none; 1028 } 1029 1030 .sppopups-review-notice-dismiss-link:active { 1031 color: #0a4b78; 1032 } -
synced-pattern-popups/trunk/assets/js/admin.js
r3436798 r3437030 344 344 }); 345 345 } 346 347 /** 348 * Handle review notice dismissal 349 */ 350 function initReviewNoticeDismiss() { 351 var dismissLink = document.querySelector('.sppopups-review-notice-dismiss-link'); 352 if (!dismissLink) { 353 return; 354 } 355 356 var notice = dismissLink.closest('.sppopups-review-notice'); 357 if (!notice) { 358 return; 359 } 360 361 var nonce = notice.getAttribute('data-nonce'); 362 if (!nonce) { 363 return; 364 } 365 366 dismissLink.addEventListener('click', function(event) { 367 event.preventDefault(); 368 369 // Hide notice immediately for better UX 370 notice.style.transition = 'opacity 0.3s ease'; 371 notice.style.opacity = '0'; 372 373 // Send AJAX request 374 var formData = new FormData(); 375 formData.append('action', 'sppopups_dismiss_review_notice'); 376 formData.append('nonce', nonce); 377 378 var ajaxUrl = (typeof sppopupsAdmin !== 'undefined' && sppopupsAdmin.ajaxUrl) ? sppopupsAdmin.ajaxUrl : (typeof ajaxurl !== 'undefined' ? ajaxurl : '/wp-admin/admin-ajax.php'); 379 fetch(ajaxUrl, { 380 method: 'POST', 381 body: formData, 382 credentials: 'same-origin' 383 }) 384 .then(function(response) { 385 return response.json(); 386 }) 387 .then(function(data) { 388 if (data.success) { 389 // Remove notice from DOM after fade out 390 setTimeout(function() { 391 notice.remove(); 392 }, 300); 393 } else { 394 // Show notice again on error 395 notice.style.opacity = '1'; 396 } 397 }) 398 .catch(function(error) { 399 console.error('Error dismissing notice:', error); 400 // Show notice again on error 401 notice.style.opacity = '1'; 402 }); 403 }); 404 } 405 406 // Initialize review notice dismiss functionality 407 initReviewNoticeDismiss(); 346 408 })(); 347 409 -
synced-pattern-popups/trunk/includes/class-sppopups-admin.php
r3436798 r3437030 58 58 // Add link to Synced Pattern Popups on Patterns list table 59 59 add_action( 'admin_footer', array( $this, 'add_patterns_list_table_link' ) ); 60 61 // Add Settings link to plugin action links 62 $plugin_file = plugin_basename( SPPOPUPS_PLUGIN_DIR . 'sppopups.php' ); 63 add_filter( 'plugin_action_links_' . $plugin_file, array( $this, 'add_settings_link' ) ); 60 64 } 61 65 … … 102 106 'sppopupsAdmin', 103 107 array( 108 'ajaxUrl' => admin_url( 'admin-ajax.php' ), 104 109 'strings' => array( 105 110 'copied' => __( 'Copied!', 'synced-pattern-popups' ), … … 794 799 <?php 795 800 } 801 802 /** 803 * Add Settings link to plugin action links 804 * Adds the link as the first item in the action links array 805 * 806 * @param array $links Plugin action links array 807 * @return array Modified plugin action links array 808 */ 809 public function add_settings_link( $links ) { 810 $settings_link = '<a href="' . esc_url( admin_url( 'themes.php?page=simplest-popup-patterns' ) ) . '">' . esc_html__( 'Settings', 'synced-pattern-popups' ) . '</a>'; 811 array_unshift( $links, $settings_link ); 812 return $links; 813 } 796 814 } 797 815 -
synced-pattern-popups/trunk/languages/synced-pattern-popups.pot
r3436798 r3437030 3 3 msgid "" 4 4 msgstr "" 5 "Project-Id-Version: Synced Pattern Popups 1.1. 2\n"6 "Report-Msgid-Bugs-To: https://wordpress.org/support/plugin/s ynced-pattern-popups\n"5 "Project-Id-Version: Synced Pattern Popups 1.1.3\n" 6 "Report-Msgid-Bugs-To: https://wordpress.org/support/plugin/sppopups\n" 7 7 "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n" 8 8 "Language-Team: LANGUAGE <[email protected]>\n" … … 10 10 "Content-Type: text/plain; charset=UTF-8\n" 11 11 "Content-Transfer-Encoding: 8bit\n" 12 "POT-Creation-Date: 2026-01- 09T16:03:54+00:00\n"12 "POT-Creation-Date: 2026-01-11T11:09:58+00:00\n" 13 13 "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" 14 14 "X-Generator: WP-CLI 2.12.0\n" … … 99 99 #: includes/class-sppopups-abilities.php:218 100 100 #: includes/class-sppopups-abilities.php:299 101 #: includes/class-sppopups-admin.php:3 67101 #: includes/class-sppopups-admin.php:375 102 102 msgid "(no title)" 103 103 msgstr "" … … 185 185 msgstr "" 186 186 187 #: includes/class-sppopups-admin.php: 67188 #: includes/class-sppopups-admin.php: 68189 #: includes/class-sppopups-admin.php:26 4187 #: includes/class-sppopups-admin.php:71 188 #: includes/class-sppopups-admin.php:72 189 #: includes/class-sppopups-admin.php:269 190 190 msgid "Synced Patterns" 191 191 msgstr "" 192 192 193 #: includes/class-sppopups-admin.php:1 05193 #: includes/class-sppopups-admin.php:110 194 194 msgid "Copied!" 195 195 msgstr "" 196 196 197 #: includes/class-sppopups-admin.php:1 06197 #: includes/class-sppopups-admin.php:111 198 198 msgid "Failed to copy" 199 199 msgstr "" 200 200 201 #: includes/class-sppopups-admin.php:16 3201 #: includes/class-sppopups-admin.php:168 202 202 msgid "Security check failed." 203 203 msgstr "" 204 204 205 #: includes/class-sppopups-admin.php:23 0205 #: includes/class-sppopups-admin.php:235 206 206 msgid "Pattern deleted successfully." 207 207 msgstr "" 208 208 209 209 #. translators: %d: number of cache entries deleted 210 #: includes/class-sppopups-admin.php:2 36210 #: includes/class-sppopups-admin.php:241 211 211 #, php-format 212 212 msgid "Cache cleared successfully. %d entry deleted." … … 216 216 217 217 #. translators: %d: Pattern ID 218 #: includes/class-sppopups-admin.php:25 0218 #: includes/class-sppopups-admin.php:255 219 219 #, php-format 220 220 msgid "Transient cache deleted successfully for pattern #%d." 221 221 msgstr "" 222 222 223 #: includes/class-sppopups-admin.php:2 57223 #: includes/class-sppopups-admin.php:262 224 224 msgid "TLDR settings saved successfully." 225 225 msgstr "" 226 226 227 #: includes/class-sppopups-admin.php:2 69227 #: includes/class-sppopups-admin.php:274 228 228 msgid "Learn more about Synced Pattern Popups" 229 229 msgstr "" 230 230 231 #: includes/class-sppopups-admin.php:2 77231 #: includes/class-sppopups-admin.php:282 232 232 msgid "Patterns" 233 233 msgstr "" 234 234 235 #: includes/class-sppopups-admin.php:28 0235 #: includes/class-sppopups-admin.php:285 236 236 #: includes/class-sppopups-ajax.php:362 237 237 msgid "TLDR" 238 238 msgstr "" 239 239 240 #: includes/class-sppopups-admin.php:28 3240 #: includes/class-sppopups-admin.php:288 241 241 msgid "How to Use" 242 242 msgstr "" 243 243 244 #: includes/class-sppopups-admin.php:2 85244 #: includes/class-sppopups-admin.php:291 245 245 msgid "Get Support" 246 246 msgstr "" 247 247 248 #: includes/class-sppopups-admin.php: 292248 #: includes/class-sppopups-admin.php:300 249 249 msgid "Add New" 250 250 msgstr "" 251 251 252 #: includes/class-sppopups-admin.php:30 1252 #: includes/class-sppopups-admin.php:309 253 253 msgid "Clear Transient Cache" 254 254 msgstr "" 255 255 256 #: includes/class-sppopups-admin.php:3 06256 #: includes/class-sppopups-admin.php:314 257 257 msgid "Manage synced patterns that can be used as popups. Only synced patterns are available for popup triggers." 258 258 msgstr "" 259 259 260 #: includes/class-sppopups-admin.php:3 12260 #: includes/class-sppopups-admin.php:320 261 261 msgid "No synced patterns found." 262 262 msgstr "" 263 263 264 #: includes/class-sppopups-admin.php:3 14264 #: includes/class-sppopups-admin.php:322 265 265 msgid "Create your first synced pattern" 266 266 msgstr "" 267 267 268 #: includes/class-sppopups-admin.php:3 23269 #: includes/class-sppopups-admin.php:36 1268 #: includes/class-sppopups-admin.php:331 269 #: includes/class-sppopups-admin.php:369 270 270 msgid "ID" 271 271 msgstr "" 272 272 273 #: includes/class-sppopups-admin.php:3 24274 #: includes/class-sppopups-admin.php:3 64273 #: includes/class-sppopups-admin.php:332 274 #: includes/class-sppopups-admin.php:372 275 275 msgid "Title" 276 276 msgstr "" 277 277 278 #: includes/class-sppopups-admin.php:3 25279 #: includes/class-sppopups-admin.php:3 78278 #: includes/class-sppopups-admin.php:333 279 #: includes/class-sppopups-admin.php:386 280 280 msgid "Status" 281 281 msgstr "" 282 282 283 #: includes/class-sppopups-admin.php:3 26284 #: includes/class-sppopups-admin.php:39 0283 #: includes/class-sppopups-admin.php:334 284 #: includes/class-sppopups-admin.php:398 285 285 msgid "Trigger Code" 286 286 msgstr "" 287 287 288 #: includes/class-sppopups-admin.php:327 288 #: includes/class-sppopups-admin.php:335 289 #: includes/class-sppopups-admin.php:413 290 msgid "Actions" 291 msgstr "" 292 289 293 #: includes/class-sppopups-admin.php:405 290 msgid "Actions" 291 msgstr "" 292 293 #: includes/class-sppopups-admin.php:397 294 #: includes/class-sppopups-admin.php:398 294 #: includes/class-sppopups-admin.php:406 295 295 msgid "Copy to Clipboard" 296 296 msgstr "" 297 297 298 #: includes/class-sppopups-admin.php:41 0298 #: includes/class-sppopups-admin.php:418 299 299 msgid "Edit" 300 300 msgstr "" 301 301 302 #: includes/class-sppopups-admin.php:4 17302 #: includes/class-sppopups-admin.php:425 303 303 msgid "Are you sure you want to delete this pattern?" 304 304 msgstr "" 305 305 306 #: includes/class-sppopups-admin.php:4 19306 #: includes/class-sppopups-admin.php:427 307 307 msgid "Delete" 308 308 msgstr "" 309 309 310 310 #. translators: %d: Pattern ID 311 #: includes/class-sppopups-admin.php:4 34311 #: includes/class-sppopups-admin.php:442 312 312 #, php-format 313 313 msgid "Are you sure you want to delete the transient cache for pattern #%d?" … … 315 315 316 316 #. translators: %d: Pattern ID 317 #: includes/class-sppopups-admin.php:4 39317 #: includes/class-sppopups-admin.php:447 318 318 #, php-format 319 319 msgid "Delete Transient #%d" 320 320 msgstr "" 321 321 322 #: includes/class-sppopups-admin.php:4 64322 #: includes/class-sppopups-admin.php:472 323 323 msgid "How to Use Synced Pattern Popups" 324 324 msgstr "" 325 325 326 #: includes/class-sppopups-admin.php:4 66326 #: includes/class-sppopups-admin.php:474 327 327 msgid "There are two ways to trigger a popup on your site:" 328 328 msgstr "" 329 329 330 #: includes/class-sppopups-admin.php:47 0330 #: includes/class-sppopups-admin.php:478 331 331 msgid "Method 1: Class Name" 332 332 msgstr "" 333 333 334 #: includes/class-sppopups-admin.php:47 1334 #: includes/class-sppopups-admin.php:479 335 335 msgid "Add the class" 336 336 msgstr "" 337 337 338 #: includes/class-sppopups-admin.php:47 1338 #: includes/class-sppopups-admin.php:479 339 339 msgid "to any clickable element, where" 340 340 msgstr "" 341 341 342 #: includes/class-sppopups-admin.php:47 1342 #: includes/class-sppopups-admin.php:479 343 343 msgid "is the numeric ID of your Synced Pattern." 344 344 msgstr "" 345 345 346 #: includes/class-sppopups-admin.php:4 72346 #: includes/class-sppopups-admin.php:480 347 347 msgid "Examples:" 348 348 msgstr "" 349 349 350 #: includes/class-sppopups-admin.php:473351 350 #: includes/class-sppopups-admin.php:481 351 #: includes/class-sppopups-admin.php:489 352 352 msgid "Open Popup" 353 353 msgstr "" 354 354 355 #: includes/class-sppopups-admin.php:4 74355 #: includes/class-sppopups-admin.php:482 356 356 msgid "Click Me" 357 357 msgstr "" 358 358 359 #: includes/class-sppopups-admin.php:4 78359 #: includes/class-sppopups-admin.php:486 360 360 msgid "Method 2: Href Attribute" 361 361 msgstr "" 362 362 363 #: includes/class-sppopups-admin.php:4 79363 #: includes/class-sppopups-admin.php:487 364 364 msgid "Set the" 365 365 msgstr "" 366 366 367 #: includes/class-sppopups-admin.php:4 79367 #: includes/class-sppopups-admin.php:487 368 368 msgid "attribute to" 369 369 msgstr "" 370 370 371 #: includes/class-sppopups-admin.php:4 79371 #: includes/class-sppopups-admin.php:487 372 372 msgid "on any link element. This is especially useful in the WordPress Block Editor where you can't easily add custom classes." 373 373 msgstr "" 374 374 375 #: includes/class-sppopups-admin.php:48 0376 #: includes/class-sppopups-admin.php:4 87375 #: includes/class-sppopups-admin.php:488 376 #: includes/class-sppopups-admin.php:495 377 377 msgid "Example:" 378 378 msgstr "" 379 379 380 #: includes/class-sppopups-admin.php:4 85380 #: includes/class-sppopups-admin.php:493 381 381 msgid "Custom Width" 382 382 msgstr "" 383 383 384 #: includes/class-sppopups-admin.php:4 86384 #: includes/class-sppopups-admin.php:494 385 385 msgid "You can specify a custom modal width by adding a width suffix:" 386 386 msgstr "" 387 387 388 #: includes/class-sppopups-admin.php:4 86388 #: includes/class-sppopups-admin.php:494 389 389 msgid "where width is in pixels (100-5000px)." 390 390 msgstr "" 391 391 392 #: includes/class-sppopups-admin.php:4 88392 #: includes/class-sppopups-admin.php:496 393 393 msgid "Open 800px Modal" 394 394 msgstr "" 395 395 396 #: includes/class-sppopups-admin.php: 492396 #: includes/class-sppopups-admin.php:500 397 397 msgid "Finding Pattern IDs" 398 398 msgstr "" 399 399 400 #: includes/class-sppopups-admin.php: 493400 #: includes/class-sppopups-admin.php:501 401 401 msgid "Go to WordPress Admin → Appearance → Synced Patterns. The ID column shows the pattern ID prominently. You can also click the \"Copy Trigger\" button in the Actions column to copy the complete trigger code." 402 402 msgstr "" 403 403 404 #: includes/class-sppopups-admin.php:5 16404 #: includes/class-sppopups-admin.php:524 405 405 msgid "Synced Pattern Popup Support" 406 406 msgstr "" 407 407 408 #: includes/class-sppopups-admin.php:5 44408 #: includes/class-sppopups-admin.php:552 409 409 #: includes/class-sppopups-settings.php:287 410 410 #: includes/class-sppopups-settings.php:381 … … 412 412 msgstr "" 413 413 414 #: includes/class-sppopups-admin.php:5 49414 #: includes/class-sppopups-admin.php:557 415 415 msgid "Forced On" 416 416 msgstr "" 417 417 418 #: includes/class-sppopups-admin.php:5 53418 #: includes/class-sppopups-admin.php:561 419 419 msgid "In most cases you can leave this on Default. Use Forced On if your trigger link/class is injected dynamically (e.g., forms, AJAX, page builders) and the popup assets aren't loading." 420 420 msgstr "" 421 421 422 #: includes/class-sppopups-admin.php:6 13422 #: includes/class-sppopups-admin.php:621 423 423 msgid "You do not have permission to install plugins." 424 424 msgstr "" 425 425 426 426 #. translators: %s: Error message 427 #: includes/class-sppopups-admin.php:65 1427 #: includes/class-sppopups-admin.php:659 428 428 #, php-format 429 429 msgid "Error retrieving plugin information: %s" 430 430 msgstr "" 431 431 432 #: includes/class-sppopups-admin.php:66 1432 #: includes/class-sppopups-admin.php:669 433 433 msgid "Filesystem credentials are required to install plugins." 434 434 msgstr "" 435 435 436 #: includes/class-sppopups-admin.php:6 65436 #: includes/class-sppopups-admin.php:673 437 437 msgid "Filesystem initialization failed." 438 438 msgstr "" 439 439 440 440 #. translators: %s: Error message 441 #: includes/class-sppopups-admin.php:68 0441 #: includes/class-sppopups-admin.php:688 442 442 #, php-format 443 443 msgid "Plugin installation failed: %s" 444 444 msgstr "" 445 445 446 #: includes/class-sppopups-admin.php:6 87446 #: includes/class-sppopups-admin.php:695 447 447 msgid "Plugin installation failed. Please try again." 448 448 msgstr "" 449 449 450 #: includes/class-sppopups-admin.php:7 56450 #: includes/class-sppopups-admin.php:764 451 451 msgid "Go to Synced Pattern Popups" 452 msgstr "" 453 454 #: includes/class-sppopups-admin.php:810 455 msgid "Settings" 452 456 msgstr "" 453 457 … … 459 463 #: includes/class-sppopups-ajax.php:174 460 464 #: includes/class-sppopups-ajax.php:293 465 #: includes/class-sppopups-review-notice.php:210 461 466 msgid "Invalid security token. Please refresh the page and try again." 462 467 msgstr "" … … 518 523 msgstr "" 519 524 525 #. translators: %s: Plugin name 526 #: includes/class-sppopups-review-notice.php:168 527 #, php-format 528 msgid "Enjoying %s?" 529 msgstr "" 530 531 #: includes/class-sppopups-review-notice.php:173 532 msgid "Leave us a kind review on WordPress.org" 533 msgstr "" 534 535 #: includes/class-sppopups-review-notice.php:182 536 msgid "Leave your Review Here" 537 msgstr "" 538 539 #: includes/class-sppopups-review-notice.php:184 540 msgid "Dismiss this notice" 541 msgstr "" 542 543 #: includes/class-sppopups-review-notice.php:185 544 msgid "I'd rather not (dismiss)" 545 msgstr "" 546 547 #: includes/class-sppopups-review-notice.php:190 548 msgid "Your review and feedback keeps us developing this plugin for more users like you!" 549 msgstr "" 550 551 #: includes/class-sppopups-review-notice.php:203 552 msgid "Insufficient permissions." 553 msgstr "" 554 555 #: includes/class-sppopups-review-notice.php:217 556 msgid "User not found." 557 msgstr "" 558 559 #: includes/class-sppopups-review-notice.php:224 560 msgid "Notice dismissed." 561 msgstr "" 562 520 563 #: includes/class-sppopups-settings.php:98 521 564 msgid "Configure the AI-powered TLDR feature that generates page summaries on-demand." -
synced-pattern-popups/trunk/readme.txt
r3436798 r3437030 4 4 Requires at least: 5.8 5 5 Tested up to: 6.9 6 Stable tag: 1.1. 26 Stable tag: 1.1.3 7 7 License: GPLv2 or later 8 8 License URI: https://www.gnu.org/licenses/gpl-2.0.html … … 198 198 199 199 == Changelog == 200 201 = 1.1.3 = 202 * New: Added delayed admin review notice to encourage user reviews (appears after 10 days on settings page) 203 * New: Custom styled review notice with dismiss functionality (AJAX-based) 204 * New: Settings link added to plugin action links for quick access 205 * Improved: Admin UI consistency with unified 960px max-width constraint for all settings content 206 * Improved: Review notice styling matches modern WordPress design patterns 200 207 201 208 = 1.1.2 = … … 247 254 == Upgrade Notice == 248 255 256 = 1.1.3 = 257 Admin UI improvements and review notice feature. Settings page now has consistent width constraints, and a friendly review notice will appear after 10 days to encourage user feedback. All existing functionality remains unchanged. 258 249 259 = 1.1.2 = 250 260 Internationalization and code quality improvements. Enhanced translation support with proper textdomain loading and updated German translations. All Plugin Check compliance issues resolved. Recommended for all users. -
synced-pattern-popups/trunk/sppopups.php
r3436798 r3437030 3 3 * Plugin Name: Synced Pattern Popups 4 4 * Description: A lightweight modal popup system that loads WordPress Synced Pattern content on demand. Trigger with class "spp-trigger-{id}". 5 * Version: 1.1. 25 * Version: 1.1.3 6 6 * Author: Matt Cromwell 7 7 * Author URI: https://www.mattcromwell.com … … 19 19 20 20 // Define plugin constants 21 define( 'SPPOPUPS_VERSION', '1.1. 2' );21 define( 'SPPOPUPS_VERSION', '1.1.3' ); 22 22 define( 'SPPOPUPS_PLUGIN_DIR', plugin_dir_path( __FILE__ ) ); 23 23 define( 'SPPOPUPS_PLUGIN_URL', plugin_dir_url( __FILE__ ) ); … … 35 35 require_once SPPOPUPS_PLUGIN_DIR . 'includes/class-sppopups-tldr.php'; 36 36 require_once SPPOPUPS_PLUGIN_DIR . 'includes/class-sppopups-plugin.php'; 37 require_once SPPOPUPS_PLUGIN_DIR . 'includes/class-sppopups-review-notice.php'; 38 39 // Register activation hook to set review notice trigger date 40 register_activation_hook( __FILE__, array( 'SPPopups_Review_Notice', 'set_trigger_date' ) ); 41 42 // Register uninstall hook for cleanup 43 register_uninstall_hook( __FILE__, 'sppopups_uninstall' ); 37 44 38 45 // Initialize plugin … … 57 64 $plugin = new SPPopups_Plugin(); 58 65 $plugin->init(); 66 67 // Initialize review notice (admin only) 68 if ( is_admin() ) { 69 $review_notice = new SPPopups_Review_Notice(); 70 $review_notice->init(); 71 } 59 72 } 60 73 74 /** 75 * Cleanup on plugin uninstall 76 */ 77 function sppopups_uninstall() { 78 SPPopups_Review_Notice::cleanup(); 79 } 80
Note: See TracChangeset
for help on using the changeset viewer.