Plugin Directory

Changeset 3437030


Ignore:
Timestamp:
01/11/2026 11:15:12 AM (3 months ago)
Author:
webdevmattcrom
Message:

Release version 1.1.3 – adds "leave a review" reminder only on the settings screen.

Location:
synced-pattern-popups
Files:
25 added
6 edited

Legend:

Unmodified
Added
Removed
  • synced-pattern-popups/trunk/assets/css/admin.css

    r3436798 r3437030  
    489489    align-items: center;
    490490    margin-bottom: 0;
     491    max-width: 960px;
     492    width: 100%;
     493    box-sizing: border-box;
    491494}
    492495
     
    919922    }
    920923}
     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  
    344344        });
    345345    }
     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();
    346408})();
    347409
  • synced-pattern-popups/trunk/includes/class-sppopups-admin.php

    r3436798 r3437030  
    5858        // Add link to Synced Pattern Popups on Patterns list table
    5959        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' ) );
    6064    }
    6165
     
    102106            'sppopupsAdmin',
    103107            array(
     108                'ajaxUrl' => admin_url( 'admin-ajax.php' ),
    104109                'strings' => array(
    105110                    'copied' => __( 'Copied!', 'synced-pattern-popups' ),
     
    794799        <?php
    795800    }
     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    }
    796814}
    797815
  • synced-pattern-popups/trunk/languages/synced-pattern-popups.pot

    r3436798 r3437030  
    33msgid ""
    44msgstr ""
    5 "Project-Id-Version: Synced Pattern Popups 1.1.2\n"
    6 "Report-Msgid-Bugs-To: https://wordpress.org/support/plugin/synced-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"
    77"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
    88"Language-Team: LANGUAGE <[email protected]>\n"
     
    1010"Content-Type: text/plain; charset=UTF-8\n"
    1111"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"
    1313"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
    1414"X-Generator: WP-CLI 2.12.0\n"
     
    9999#: includes/class-sppopups-abilities.php:218
    100100#: includes/class-sppopups-abilities.php:299
    101 #: includes/class-sppopups-admin.php:367
     101#: includes/class-sppopups-admin.php:375
    102102msgid "(no title)"
    103103msgstr ""
     
    185185msgstr ""
    186186
    187 #: includes/class-sppopups-admin.php:67
    188 #: includes/class-sppopups-admin.php:68
    189 #: includes/class-sppopups-admin.php:264
     187#: includes/class-sppopups-admin.php:71
     188#: includes/class-sppopups-admin.php:72
     189#: includes/class-sppopups-admin.php:269
    190190msgid "Synced Patterns"
    191191msgstr ""
    192192
    193 #: includes/class-sppopups-admin.php:105
     193#: includes/class-sppopups-admin.php:110
    194194msgid "Copied!"
    195195msgstr ""
    196196
    197 #: includes/class-sppopups-admin.php:106
     197#: includes/class-sppopups-admin.php:111
    198198msgid "Failed to copy"
    199199msgstr ""
    200200
    201 #: includes/class-sppopups-admin.php:163
     201#: includes/class-sppopups-admin.php:168
    202202msgid "Security check failed."
    203203msgstr ""
    204204
    205 #: includes/class-sppopups-admin.php:230
     205#: includes/class-sppopups-admin.php:235
    206206msgid "Pattern deleted successfully."
    207207msgstr ""
    208208
    209209#. translators: %d: number of cache entries deleted
    210 #: includes/class-sppopups-admin.php:236
     210#: includes/class-sppopups-admin.php:241
    211211#, php-format
    212212msgid "Cache cleared successfully. %d entry deleted."
     
    216216
    217217#. translators: %d: Pattern ID
    218 #: includes/class-sppopups-admin.php:250
     218#: includes/class-sppopups-admin.php:255
    219219#, php-format
    220220msgid "Transient cache deleted successfully for pattern #%d."
    221221msgstr ""
    222222
    223 #: includes/class-sppopups-admin.php:257
     223#: includes/class-sppopups-admin.php:262
    224224msgid "TLDR settings saved successfully."
    225225msgstr ""
    226226
    227 #: includes/class-sppopups-admin.php:269
     227#: includes/class-sppopups-admin.php:274
    228228msgid "Learn more about Synced Pattern Popups"
    229229msgstr ""
    230230
    231 #: includes/class-sppopups-admin.php:277
     231#: includes/class-sppopups-admin.php:282
    232232msgid "Patterns"
    233233msgstr ""
    234234
    235 #: includes/class-sppopups-admin.php:280
     235#: includes/class-sppopups-admin.php:285
    236236#: includes/class-sppopups-ajax.php:362
    237237msgid "TLDR"
    238238msgstr ""
    239239
    240 #: includes/class-sppopups-admin.php:283
     240#: includes/class-sppopups-admin.php:288
    241241msgid "How to Use"
    242242msgstr ""
    243243
    244 #: includes/class-sppopups-admin.php:285
     244#: includes/class-sppopups-admin.php:291
    245245msgid "Get Support"
    246246msgstr ""
    247247
    248 #: includes/class-sppopups-admin.php:292
     248#: includes/class-sppopups-admin.php:300
    249249msgid "Add New"
    250250msgstr ""
    251251
    252 #: includes/class-sppopups-admin.php:301
     252#: includes/class-sppopups-admin.php:309
    253253msgid "Clear Transient Cache"
    254254msgstr ""
    255255
    256 #: includes/class-sppopups-admin.php:306
     256#: includes/class-sppopups-admin.php:314
    257257msgid "Manage synced patterns that can be used as popups. Only synced patterns are available for popup triggers."
    258258msgstr ""
    259259
    260 #: includes/class-sppopups-admin.php:312
     260#: includes/class-sppopups-admin.php:320
    261261msgid "No synced patterns found."
    262262msgstr ""
    263263
    264 #: includes/class-sppopups-admin.php:314
     264#: includes/class-sppopups-admin.php:322
    265265msgid "Create your first synced pattern"
    266266msgstr ""
    267267
    268 #: includes/class-sppopups-admin.php:323
    269 #: includes/class-sppopups-admin.php:361
     268#: includes/class-sppopups-admin.php:331
     269#: includes/class-sppopups-admin.php:369
    270270msgid "ID"
    271271msgstr ""
    272272
    273 #: includes/class-sppopups-admin.php:324
    274 #: includes/class-sppopups-admin.php:364
     273#: includes/class-sppopups-admin.php:332
     274#: includes/class-sppopups-admin.php:372
    275275msgid "Title"
    276276msgstr ""
    277277
    278 #: includes/class-sppopups-admin.php:325
    279 #: includes/class-sppopups-admin.php:378
     278#: includes/class-sppopups-admin.php:333
     279#: includes/class-sppopups-admin.php:386
    280280msgid "Status"
    281281msgstr ""
    282282
    283 #: includes/class-sppopups-admin.php:326
    284 #: includes/class-sppopups-admin.php:390
     283#: includes/class-sppopups-admin.php:334
     284#: includes/class-sppopups-admin.php:398
    285285msgid "Trigger Code"
    286286msgstr ""
    287287
    288 #: includes/class-sppopups-admin.php:327
     288#: includes/class-sppopups-admin.php:335
     289#: includes/class-sppopups-admin.php:413
     290msgid "Actions"
     291msgstr ""
     292
    289293#: 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
    295295msgid "Copy to Clipboard"
    296296msgstr ""
    297297
    298 #: includes/class-sppopups-admin.php:410
     298#: includes/class-sppopups-admin.php:418
    299299msgid "Edit"
    300300msgstr ""
    301301
    302 #: includes/class-sppopups-admin.php:417
     302#: includes/class-sppopups-admin.php:425
    303303msgid "Are you sure you want to delete this pattern?"
    304304msgstr ""
    305305
    306 #: includes/class-sppopups-admin.php:419
     306#: includes/class-sppopups-admin.php:427
    307307msgid "Delete"
    308308msgstr ""
    309309
    310310#. translators: %d: Pattern ID
    311 #: includes/class-sppopups-admin.php:434
     311#: includes/class-sppopups-admin.php:442
    312312#, php-format
    313313msgid "Are you sure you want to delete the transient cache for pattern #%d?"
     
    315315
    316316#. translators: %d: Pattern ID
    317 #: includes/class-sppopups-admin.php:439
     317#: includes/class-sppopups-admin.php:447
    318318#, php-format
    319319msgid "Delete Transient #%d"
    320320msgstr ""
    321321
    322 #: includes/class-sppopups-admin.php:464
     322#: includes/class-sppopups-admin.php:472
    323323msgid "How to Use Synced Pattern Popups"
    324324msgstr ""
    325325
    326 #: includes/class-sppopups-admin.php:466
     326#: includes/class-sppopups-admin.php:474
    327327msgid "There are two ways to trigger a popup on your site:"
    328328msgstr ""
    329329
    330 #: includes/class-sppopups-admin.php:470
     330#: includes/class-sppopups-admin.php:478
    331331msgid "Method 1: Class Name"
    332332msgstr ""
    333333
    334 #: includes/class-sppopups-admin.php:471
     334#: includes/class-sppopups-admin.php:479
    335335msgid "Add the class"
    336336msgstr ""
    337337
    338 #: includes/class-sppopups-admin.php:471
     338#: includes/class-sppopups-admin.php:479
    339339msgid "to any clickable element, where"
    340340msgstr ""
    341341
    342 #: includes/class-sppopups-admin.php:471
     342#: includes/class-sppopups-admin.php:479
    343343msgid "is the numeric ID of your Synced Pattern."
    344344msgstr ""
    345345
    346 #: includes/class-sppopups-admin.php:472
     346#: includes/class-sppopups-admin.php:480
    347347msgid "Examples:"
    348348msgstr ""
    349349
    350 #: includes/class-sppopups-admin.php:473
    351350#: includes/class-sppopups-admin.php:481
     351#: includes/class-sppopups-admin.php:489
    352352msgid "Open Popup"
    353353msgstr ""
    354354
    355 #: includes/class-sppopups-admin.php:474
     355#: includes/class-sppopups-admin.php:482
    356356msgid "Click Me"
    357357msgstr ""
    358358
    359 #: includes/class-sppopups-admin.php:478
     359#: includes/class-sppopups-admin.php:486
    360360msgid "Method 2: Href Attribute"
    361361msgstr ""
    362362
    363 #: includes/class-sppopups-admin.php:479
     363#: includes/class-sppopups-admin.php:487
    364364msgid "Set the"
    365365msgstr ""
    366366
    367 #: includes/class-sppopups-admin.php:479
     367#: includes/class-sppopups-admin.php:487
    368368msgid "attribute to"
    369369msgstr ""
    370370
    371 #: includes/class-sppopups-admin.php:479
     371#: includes/class-sppopups-admin.php:487
    372372msgid "on any link element. This is especially useful in the WordPress Block Editor where you can't easily add custom classes."
    373373msgstr ""
    374374
    375 #: includes/class-sppopups-admin.php:480
    376 #: includes/class-sppopups-admin.php:487
     375#: includes/class-sppopups-admin.php:488
     376#: includes/class-sppopups-admin.php:495
    377377msgid "Example:"
    378378msgstr ""
    379379
    380 #: includes/class-sppopups-admin.php:485
     380#: includes/class-sppopups-admin.php:493
    381381msgid "Custom Width"
    382382msgstr ""
    383383
    384 #: includes/class-sppopups-admin.php:486
     384#: includes/class-sppopups-admin.php:494
    385385msgid "You can specify a custom modal width by adding a width suffix:"
    386386msgstr ""
    387387
    388 #: includes/class-sppopups-admin.php:486
     388#: includes/class-sppopups-admin.php:494
    389389msgid "where width is in pixels (100-5000px)."
    390390msgstr ""
    391391
    392 #: includes/class-sppopups-admin.php:488
     392#: includes/class-sppopups-admin.php:496
    393393msgid "Open 800px Modal"
    394394msgstr ""
    395395
    396 #: includes/class-sppopups-admin.php:492
     396#: includes/class-sppopups-admin.php:500
    397397msgid "Finding Pattern IDs"
    398398msgstr ""
    399399
    400 #: includes/class-sppopups-admin.php:493
     400#: includes/class-sppopups-admin.php:501
    401401msgid "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."
    402402msgstr ""
    403403
    404 #: includes/class-sppopups-admin.php:516
     404#: includes/class-sppopups-admin.php:524
    405405msgid "Synced Pattern Popup Support"
    406406msgstr ""
    407407
    408 #: includes/class-sppopups-admin.php:544
     408#: includes/class-sppopups-admin.php:552
    409409#: includes/class-sppopups-settings.php:287
    410410#: includes/class-sppopups-settings.php:381
     
    412412msgstr ""
    413413
    414 #: includes/class-sppopups-admin.php:549
     414#: includes/class-sppopups-admin.php:557
    415415msgid "Forced On"
    416416msgstr ""
    417417
    418 #: includes/class-sppopups-admin.php:553
     418#: includes/class-sppopups-admin.php:561
    419419msgid "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."
    420420msgstr ""
    421421
    422 #: includes/class-sppopups-admin.php:613
     422#: includes/class-sppopups-admin.php:621
    423423msgid "You do not have permission to install plugins."
    424424msgstr ""
    425425
    426426#. translators: %s: Error message
    427 #: includes/class-sppopups-admin.php:651
     427#: includes/class-sppopups-admin.php:659
    428428#, php-format
    429429msgid "Error retrieving plugin information: %s"
    430430msgstr ""
    431431
    432 #: includes/class-sppopups-admin.php:661
     432#: includes/class-sppopups-admin.php:669
    433433msgid "Filesystem credentials are required to install plugins."
    434434msgstr ""
    435435
    436 #: includes/class-sppopups-admin.php:665
     436#: includes/class-sppopups-admin.php:673
    437437msgid "Filesystem initialization failed."
    438438msgstr ""
    439439
    440440#. translators: %s: Error message
    441 #: includes/class-sppopups-admin.php:680
     441#: includes/class-sppopups-admin.php:688
    442442#, php-format
    443443msgid "Plugin installation failed: %s"
    444444msgstr ""
    445445
    446 #: includes/class-sppopups-admin.php:687
     446#: includes/class-sppopups-admin.php:695
    447447msgid "Plugin installation failed. Please try again."
    448448msgstr ""
    449449
    450 #: includes/class-sppopups-admin.php:756
     450#: includes/class-sppopups-admin.php:764
    451451msgid "Go to Synced Pattern Popups"
     452msgstr ""
     453
     454#: includes/class-sppopups-admin.php:810
     455msgid "Settings"
    452456msgstr ""
    453457
     
    459463#: includes/class-sppopups-ajax.php:174
    460464#: includes/class-sppopups-ajax.php:293
     465#: includes/class-sppopups-review-notice.php:210
    461466msgid "Invalid security token. Please refresh the page and try again."
    462467msgstr ""
     
    518523msgstr ""
    519524
     525#. translators: %s: Plugin name
     526#: includes/class-sppopups-review-notice.php:168
     527#, php-format
     528msgid "Enjoying %s?"
     529msgstr ""
     530
     531#: includes/class-sppopups-review-notice.php:173
     532msgid "Leave us a kind review on WordPress.org"
     533msgstr ""
     534
     535#: includes/class-sppopups-review-notice.php:182
     536msgid "Leave your Review Here"
     537msgstr ""
     538
     539#: includes/class-sppopups-review-notice.php:184
     540msgid "Dismiss this notice"
     541msgstr ""
     542
     543#: includes/class-sppopups-review-notice.php:185
     544msgid "I'd rather not (dismiss)"
     545msgstr ""
     546
     547#: includes/class-sppopups-review-notice.php:190
     548msgid "Your review and feedback keeps us developing this plugin for more users like you!"
     549msgstr ""
     550
     551#: includes/class-sppopups-review-notice.php:203
     552msgid "Insufficient permissions."
     553msgstr ""
     554
     555#: includes/class-sppopups-review-notice.php:217
     556msgid "User not found."
     557msgstr ""
     558
     559#: includes/class-sppopups-review-notice.php:224
     560msgid "Notice dismissed."
     561msgstr ""
     562
    520563#: includes/class-sppopups-settings.php:98
    521564msgid "Configure the AI-powered TLDR feature that generates page summaries on-demand."
  • synced-pattern-popups/trunk/readme.txt

    r3436798 r3437030  
    44Requires at least: 5.8
    55Tested up to: 6.9
    6 Stable tag: 1.1.2
     6Stable tag: 1.1.3
    77License: GPLv2 or later
    88License URI: https://www.gnu.org/licenses/gpl-2.0.html
     
    198198
    199199== 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
    200207
    201208= 1.1.2 =
     
    247254== Upgrade Notice ==
    248255
     256= 1.1.3 =
     257Admin 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
    249259= 1.1.2 =
    250260Internationalization 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  
    33 * Plugin Name: Synced Pattern Popups
    44 * Description: A lightweight modal popup system that loads WordPress Synced Pattern content on demand. Trigger with class "spp-trigger-{id}".
    5  * Version: 1.1.2
     5 * Version: 1.1.3
    66 * Author: Matt Cromwell
    77 * Author URI: https://www.mattcromwell.com
     
    1919
    2020// Define plugin constants
    21 define( 'SPPOPUPS_VERSION', '1.1.2' );
     21define( 'SPPOPUPS_VERSION', '1.1.3' );
    2222define( 'SPPOPUPS_PLUGIN_DIR', plugin_dir_path( __FILE__ ) );
    2323define( 'SPPOPUPS_PLUGIN_URL', plugin_dir_url( __FILE__ ) );
     
    3535require_once SPPOPUPS_PLUGIN_DIR . 'includes/class-sppopups-tldr.php';
    3636require_once SPPOPUPS_PLUGIN_DIR . 'includes/class-sppopups-plugin.php';
     37require_once SPPOPUPS_PLUGIN_DIR . 'includes/class-sppopups-review-notice.php';
     38
     39// Register activation hook to set review notice trigger date
     40register_activation_hook( __FILE__, array( 'SPPopups_Review_Notice', 'set_trigger_date' ) );
     41
     42// Register uninstall hook for cleanup
     43register_uninstall_hook( __FILE__, 'sppopups_uninstall' );
    3744
    3845// Initialize plugin
     
    5764    $plugin = new SPPopups_Plugin();
    5865    $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    }
    5972}
    6073
     74/**
     75 * Cleanup on plugin uninstall
     76 */
     77function sppopups_uninstall() {
     78    SPPopups_Review_Notice::cleanup();
     79}
     80
Note: See TracChangeset for help on using the changeset viewer.