Plugin Directory

Changeset 3678773


Ignore:
Timestamp:
09/02/2026 11:08:37 PM (7 weeks ago)
Author:
glocalsaino
Message:

Release 4.5.0 — remove Freemius SDK, update icons

Location:
glocalsaino-webpagespassworded
Files:
6 added
5 deleted
5 edited
7 copied

Legend:

Unmodified
Added
Removed
  • glocalsaino-webpagespassworded/tags/4.5.0/glocalsaino-webpagespassworded.php

    r3669424 r3678773  
    22/**
    33 * Plugin Name:       GlocalSaino WebPagesPassworded
    4  * Plugin URI:        https://glocalsaino.com
     4 * Plugin URI:        https://glocalsaino.com/webpagespassworded/
    55 * Description:       Single access page for groups of password-protected child pages. Place [glocalsaino_wppw] on a parent page and visitors are redirected to the matching child page after entering the correct password.
    6  * Version:           4.4.9
     6 * Version:           4.5.0
    77 * Requires at least: 5.0
    88 * Requires PHP:      7.4
    … …  
    2121}
    2222
    23 if ( function_exists( 'glocalsaino_wppw_fs' ) ) {
    24         glocalsaino_wppw_fs()->set_basename( false, __FILE__ );
    25 } else {
     23define( 'GLOCALSAINO_WPPW_VERSION',        '4.5.0' );
     24define( 'GLOCALSAINO_WPPW_DIR',     plugin_dir_path( __FILE__ ) );
     25define( 'GLOCALSAINO_WPPW_URL',     plugin_dir_url( __FILE__ ) );
     26define( 'GLOCALSAINO_WPPW_COOKIE_SECONDS', 864000 );
     27define( 'GLOCALSAINO_WPPW_MAX_ATTEMPTS',   5 );
     28define( 'GLOCALSAINO_WPPW_LOCKOUT_SECONDS', 900 );
    2629
    27         define( 'GLOCALSAINO_WPPW_VERSION',        '4.4.9' );
    28         define( 'GLOCALSAINO_WPPW_DIR',     plugin_dir_path( __FILE__ ) );
    29         define( 'GLOCALSAINO_WPPW_URL',     plugin_dir_url( __FILE__ ) );
    30         define( 'GLOCALSAINO_WPPW_COOKIE_SECONDS', 864000 );
    31         define( 'GLOCALSAINO_WPPW_MAX_ATTEMPTS',   5 );
    32         define( 'GLOCALSAINO_WPPW_LOCKOUT_SECONDS', 900 );
     30require_once GLOCALSAINO_WPPW_DIR . 'includes/class-wppw-core.php';
     31require_once GLOCALSAINO_WPPW_DIR . 'includes/class-wppw-admin.php';
     32require_once GLOCALSAINO_WPPW_DIR . 'includes/class-wppw-styles.php';
    3333
    34         if ( ! function_exists( 'glocalsaino_wppw_fs' ) ) {
    35                 require_once GLOCALSAINO_WPPW_DIR . 'freemius-init.php';
    36         }
     34$glocalsaino_wppw_core   = new GlocalSaino_Wppw_Core();
     35$glocalsaino_wppw_admin  = new GlocalSaino_Wppw_Admin();
     36$glocalsaino_wppw_styles = new GlocalSaino_Wppw_Styles();
    3737
    38         require_once GLOCALSAINO_WPPW_DIR . 'includes/class-wppw-core.php';
    39         require_once GLOCALSAINO_WPPW_DIR . 'includes/class-wppw-admin.php';
    40         require_once GLOCALSAINO_WPPW_DIR . 'includes/class-wppw-styles.php';
     38add_action( 'init',                  array( $glocalsaino_wppw_core,   'process_form' ) );
     39add_shortcode( 'glocalsaino_wppw',   array( $glocalsaino_wppw_core,   'wppw_shortcode' ) );
    4140
    42         $glocalsaino_wppw_core   = new GlocalSaino_Wppw_Core();
    43         $glocalsaino_wppw_admin  = new GlocalSaino_Wppw_Admin();
    44         $glocalsaino_wppw_styles = new GlocalSaino_Wppw_Styles();
     41add_action( 'admin_menu',            array( $glocalsaino_wppw_admin,  'register_menu' ) );
     42add_action( 'admin_menu',            array( $glocalsaino_wppw_admin,  'register_extensions_submenu' ), PHP_INT_MAX );
     43add_action( 'admin_init',            array( $glocalsaino_wppw_admin,  'register_settings' ) );
     44add_action( 'admin_enqueue_scripts', array( $glocalsaino_wppw_admin,  'enqueue_admin_assets' ) );
    4545
    46         add_action( 'init',                  array( $glocalsaino_wppw_core,   'process_form' ) );
    47         add_shortcode( 'glocalsaino_wppw',   array( $glocalsaino_wppw_core,   'wppw_shortcode' ) );
    48 
    49         add_action( 'admin_menu',            array( $glocalsaino_wppw_admin,  'register_menu' ) );
    50         add_action( 'admin_menu',            array( $glocalsaino_wppw_admin,  'register_extensions_submenu' ), PHP_INT_MAX );
    51         add_action( 'admin_init',            array( $glocalsaino_wppw_admin,  'register_settings' ) );
    52         add_action( 'admin_enqueue_scripts', array( $glocalsaino_wppw_admin,  'enqueue_admin_assets' ) );
    53 
    54         add_action( 'wp_enqueue_scripts',    array( $glocalsaino_wppw_styles, 'enqueue_frontend_assets' ) );
    55 }
     46add_action( 'wp_enqueue_scripts',    array( $glocalsaino_wppw_styles, 'enqueue_frontend_assets' ) );
  • glocalsaino-webpagespassworded/tags/4.5.0/includes/class-wppw-admin.php

    r3669424 r3678773  
    316316        }
    317317
     318        // Tarjeta compacta reutilizable (icono + nombre + una frase + estado/CTA)
     319        // — mismo formato en los tres plugins de la familia (GlocalSaino
     320        // Auctions Displayed by Shortcodes, Layer Map Viewer y este), para que
     321        // las tres páginas de "Extensions" se vean consistentes entre sí.
     322        private function render_extension_card( string $name, string $description, bool $active, string $url, string $icon_url = '' ): void {
     323                ?>
     324                <div style="background:#fff;border:1px solid #ccd0d4;padding:20px;max-width:640px;margin-top:16px;display:flex;gap:16px;align-items:flex-start;">
     325                        <?php if ( $icon_url ) : ?>
     326                                <img src="<?php echo esc_url( $icon_url ); ?>" alt="<?php echo esc_attr( $name ); ?>"
     327                                        width="48" height="48" style="width:48px;height:48px;border-radius:8px;flex-shrink:0;">
     328                        <?php endif; ?>
     329                        <div>
     330                                <h2 style="margin-top:0;"><?php echo esc_html( $name ); ?></h2>
     331                                <p><?php echo esc_html( $description ); ?></p>
     332                                <?php if ( $active ) : ?>
     333                                        <p><strong><?php esc_html_e( 'Active', 'glocalsaino-webpagespassworded' ); ?></strong></p>
     334                                <?php else : ?>
     335                                        <p>
     336                                                <a class="button button-primary" href="<?php echo esc_url( $url ); ?>" target="_blank" rel="noopener">
     337                                                        <?php esc_html_e( 'Learn more', 'glocalsaino-webpagespassworded' ); ?>
     338                                                </a>
     339                                        </p>
     340                                <?php endif; ?>
     341                        </div>
     342                </div>
     343                <?php
     344        }
     345
    318346        public function render_extensions_page(): void {
    319                 $banner_url = GLOCALSAINO_WPPW_URL . 'assets/img/magic-links-banner.png';
    320347                ?>
    321348                <div class="wrap">
    322349                        <h1><?php esc_html_e( 'Extensions', 'glocalsaino-webpagespassworded' ); ?></h1>
    323350
    324                         <img src="<?php echo esc_url( $banner_url ); ?>"
    325                                 alt="<?php esc_attr_e( 'GlocalSaino WPPW Magic Links', 'glocalsaino-webpagespassworded' ); ?>"
    326                                 style="max-width:772px;width:100%;height:auto;display:block;margin:16px 0 24px;" />
    327 
    328                         <p style="font-size:14px;max-width:760px;">
    329                                 <?php esc_html_e( 'GlocalSaino WPPW Magic Links lets you generate signed links that grant direct access to password-protected pages — no password form, no friction. Control expiry, usage limits, and revoke any link instantly.', 'glocalsaino-webpagespassworded' ); ?>
     351                        <?php
     352                        $this->render_extension_card(
     353                                __( 'GlocalSaino WPPW Magic Links', 'glocalsaino-webpagespassworded' ),
     354                                __( 'Generate signed links that grant direct access to password-protected pages — no password form, no friction. Control expiry, usage limits, and revoke any link instantly.', 'glocalsaino-webpagespassworded' ),
     355                                class_exists( 'GlocalSaino_Wppw_ML_Core' ),
     356                                'https://glocalsaino.com/wppw-magic-link',
     357                                GLOCALSAINO_WPPW_URL . 'assets/img/icon-wppw-magic-link.png'
     358                        );
     359                        ?>
     360
     361                        <h2 style="margin-top:32px;"><?php esc_html_e( 'What are you protecting?', 'glocalsaino-webpagespassworded' ); ?></h2>
     362                        <p style="max-width:760px;font-size:14px;">
     363                                <?php esc_html_e( 'WebPagesPassworded controls who gets in — these two free GlocalSaino plugins give visitors something worth getting in for.', 'glocalsaino-webpagespassworded' ); ?>
    330364                        </p>
    331365
    332                         <ol style="max-width:760px;font-size:14px;line-height:1.8;">
    333                                 <li><strong><?php esc_html_e( 'Send access, not passwords.', 'glocalsaino-webpagespassworded' ); ?></strong>
    334                                         <?php esc_html_e( 'Stop copying and pasting passwords into emails. Generate a single link and share it — your client clicks it and lands directly on the protected page.', 'glocalsaino-webpagespassworded' ); ?></li>
    335                                 <li><strong><?php esc_html_e( 'Control who gets in and for how long.', 'glocalsaino-webpagespassworded' ); ?></strong>
    336                                         <?php esc_html_e( 'Set an expiry date or a maximum number of uses on each link. When a project ends or a client\'s access period is over, the link stops working on its own.', 'glocalsaino-webpagespassworded' ); ?></li>
    337                                 <li><strong><?php esc_html_e( 'Protect your passwords without exposing them.', 'glocalsaino-webpagespassworded' ); ?></strong>
    338                                         <?php esc_html_e( 'The real page password never appears in the URL. You can share access with dozens of individual people, revoke any one of them instantly, and the underlying password remains unchanged for everyone else.', 'glocalsaino-webpagespassworded' ); ?></li>
    339                         </ol>
    340 
    341                         <hr style="max-width:760px;margin:24px 0;" />
    342 
    343                         <p style="font-size:14px;max-width:760px;">
    344                                 <?php esc_html_e( 'Managing password-protected content should not mean managing passwords. GlocalSaino WPPW Magic Links removes that friction entirely.', 'glocalsaino-webpagespassworded' ); ?>
    345                         </p>
    346 
    347                         <h2><?php esc_html_e( 'Share access without sharing passwords', 'glocalsaino-webpagespassworded' ); ?></h2>
    348                         <p style="max-width:760px;font-size:14px;">
    349                                 <?php esc_html_e( 'When you protect a page with a password, sharing that password is the weakest link in your workflow. Anyone who receives it can forward it, anyone can save it, and changing it means notifying everyone all over again. Magic links break that cycle. Each link is a unique, signed token that grants access to one specific page. The real password stays private — only the token travels in the URL.', 'glocalsaino-webpagespassworded' ); ?>
    350                         </p>
    351 
    352                         <h2><?php esc_html_e( 'Access that expires on your terms', 'glocalsaino-webpagespassworded' ); ?></h2>
    353                         <p style="max-width:760px;font-size:14px;">
    354                                 <?php esc_html_e( 'Every magic link you generate can have its own rules. Set it to expire after one day, one week, or one month. Limit it to a single use or a fixed number of visits. When the link expires or runs out of uses, access stops automatically — no manual intervention required. If you want the visitor to land somewhere specific when a link no longer works, add a fallback URL and they will be redirected gracefully instead of hitting a dead end.', 'glocalsaino-webpagespassworded' ); ?>
    355                         </p>
    356 
    357                         <h2><?php esc_html_e( 'A clear dashboard, full control', 'glocalsaino-webpagespassworded' ); ?></h2>
    358                         <p style="max-width:760px;font-size:14px;">
    359                                 <?php esc_html_e( 'The Magic Links panel shows every link you have generated: the target page, the label you assigned, the expiry date, the number of uses, and the current status — active, expired, or exhausted. Revoking a link takes one click and takes effect immediately.', 'glocalsaino-webpagespassworded' ); ?>
    360                         </p>
    361 
    362                         <p style="margin-top:24px;">
    363                                 <a href="https://glocalsaino.com/wppw-magic-link" target="_blank" rel="noopener noreferrer" class="button button-primary button-large">
    364                                         <?php esc_html_e( 'Learn more and buy →', 'glocalsaino-webpagespassworded' ); ?>
    365                                 </a>
    366                         </p>
     366                        <?php
     367                        $this->render_extension_card(
     368                                __( 'GlocalSaino Auctions Displayed by Shortcodes', 'glocalsaino-webpagespassworded' ),
     369                                __( "Run a private, invitation-only auction. Put the auction page behind a password or a Magic Link, so only people you've vetted can even see the bidding.", 'glocalsaino-webpagespassworded' ),
     370                                class_exists( 'GSADS_Settings' ),
     371                                'https://glocalsaino.com/auctionsdisplayedbyshortcodes/',
     372                                GLOCALSAINO_WPPW_URL . 'assets/img/icon-auctions-displayed-by-shortcodes.png'
     373                        );
     374
     375                        $this->render_extension_card(
     376                                __( 'GlocalSaino Layer Map Viewer', 'glocalsaino-webpagespassworded' ),
     377                                __( 'Protect a map with sensitive or unpublished data. Show parcel boundaries, property details, or live-tracked assets only to people who have the password or the link.', 'glocalsaino-webpagespassworded' ),
     378                                function_exists( 'kml_map_tile_dir' ),
     379                                'https://glocalsaino.com/layermapviewer/',
     380                                GLOCALSAINO_WPPW_URL . 'assets/img/icon-glocalsaino-layer-map-viewer.png'
     381                        );
     382                        ?>
    367383                </div>
    368384                <?php
  • glocalsaino-webpagespassworded/tags/4.5.0/readme.txt

    r3669424 r3678773  
    11=== GlocalSaino WebPagesPassworded ===
    2 Contributors: glocalsaino, rafammoo, freemius
     2Contributors: glocalsaino, rafammoo
    33Tags: password, protected pages, child pages, access control, shortcode
    44Requires at least: 5.0
    55Tested up to: 7.1
    6 Stable tag: 4.4.9
     6Stable tag: 4.5.0
    77Requires PHP: 7.4
    88License: GPLv2 or later
    … …  
    6161== Screenshots ==
    6262
    63 1. Password form on the front-end, with a custom icon and custom colours applied via the settings panel.
    64 2. Settings panel: general settings section (button label and shortcode reference) and customisable error messages.
    65 3. Settings panel: form design section with colour pickers, font size controls, and a Font Awesome icon picker.
    66 4. WordPress editor showing the parent page with the [glocalsaino_wppw] shortcode inserted.
    67 5. WordPress editor showing a child page configured as a child of the parent page and protected with a password.
     631. Password form on the front end — parent page showing the password input field as visitors see it.
     642. Admin settings — General Settings: button label, shortcode reference and available shortcode parameters.
     653. Admin settings — Error Messages: customisable wrong-password and too-many-attempts messages.
     664. Admin settings — Form Design: appearance controls for the password input field (colours, size, icon).
     675. WordPress editor — parent page with the [glocalsaino_wppw] shortcode and annotated explanatory overlays.
     686. WordPress editor — password-protected child page with annotated explanatory overlays showing the required configuration.
    6869
    6970== Installation ==
    … …  
    123124== Changelog ==
    124125
     126= 4.5.0 =
     127* Architecture: removed the Freemius SDK entirely. The plugin never had premium code of its own; the SDK served no purpose beyond unnecessary overhead. No functional change for site owners — the plugin works exactly as before. The WPPW Magic Links add-on is now registered as an independent Freemius product and no longer requires the parent plugin to carry the SDK.
     128
     129= 4.4.10 =
     130* Redesigned the "Extensions" submenu: the Magic Links add-on is now a compact card with its logo, and the page now also cross-promotes GlocalSaino Auctions Displayed by Shortcodes and GlocalSaino Layer Map Viewer, each showing "Active" automatically when already installed.
     131
    125132= 4.4.9 =
    126133* All admin UI text changed to English as base language for translation support.
  • glocalsaino-webpagespassworded/trunk/glocalsaino-webpagespassworded.php

    r3669424 r3678773  
    22/**
    33 * Plugin Name:       GlocalSaino WebPagesPassworded
    4  * Plugin URI:        https://glocalsaino.com
     4 * Plugin URI:        https://glocalsaino.com/webpagespassworded/
    55 * Description:       Single access page for groups of password-protected child pages. Place [glocalsaino_wppw] on a parent page and visitors are redirected to the matching child page after entering the correct password.
    6  * Version:           4.4.9
     6 * Version:           4.5.0
    77 * Requires at least: 5.0
    88 * Requires PHP:      7.4
    … …  
    2121}
    2222
    23 if ( function_exists( 'glocalsaino_wppw_fs' ) ) {
    24         glocalsaino_wppw_fs()->set_basename( false, __FILE__ );
    25 } else {
     23define( 'GLOCALSAINO_WPPW_VERSION',        '4.5.0' );
     24define( 'GLOCALSAINO_WPPW_DIR',     plugin_dir_path( __FILE__ ) );
     25define( 'GLOCALSAINO_WPPW_URL',     plugin_dir_url( __FILE__ ) );
     26define( 'GLOCALSAINO_WPPW_COOKIE_SECONDS', 864000 );
     27define( 'GLOCALSAINO_WPPW_MAX_ATTEMPTS',   5 );
     28define( 'GLOCALSAINO_WPPW_LOCKOUT_SECONDS', 900 );
    2629
    27         define( 'GLOCALSAINO_WPPW_VERSION',        '4.4.9' );
    28         define( 'GLOCALSAINO_WPPW_DIR',     plugin_dir_path( __FILE__ ) );
    29         define( 'GLOCALSAINO_WPPW_URL',     plugin_dir_url( __FILE__ ) );
    30         define( 'GLOCALSAINO_WPPW_COOKIE_SECONDS', 864000 );
    31         define( 'GLOCALSAINO_WPPW_MAX_ATTEMPTS',   5 );
    32         define( 'GLOCALSAINO_WPPW_LOCKOUT_SECONDS', 900 );
     30require_once GLOCALSAINO_WPPW_DIR . 'includes/class-wppw-core.php';
     31require_once GLOCALSAINO_WPPW_DIR . 'includes/class-wppw-admin.php';
     32require_once GLOCALSAINO_WPPW_DIR . 'includes/class-wppw-styles.php';
    3333
    34         if ( ! function_exists( 'glocalsaino_wppw_fs' ) ) {
    35                 require_once GLOCALSAINO_WPPW_DIR . 'freemius-init.php';
    36         }
     34$glocalsaino_wppw_core   = new GlocalSaino_Wppw_Core();
     35$glocalsaino_wppw_admin  = new GlocalSaino_Wppw_Admin();
     36$glocalsaino_wppw_styles = new GlocalSaino_Wppw_Styles();
    3737
    38         require_once GLOCALSAINO_WPPW_DIR . 'includes/class-wppw-core.php';
    39         require_once GLOCALSAINO_WPPW_DIR . 'includes/class-wppw-admin.php';
    40         require_once GLOCALSAINO_WPPW_DIR . 'includes/class-wppw-styles.php';
     38add_action( 'init',                  array( $glocalsaino_wppw_core,   'process_form' ) );
     39add_shortcode( 'glocalsaino_wppw',   array( $glocalsaino_wppw_core,   'wppw_shortcode' ) );
    4140
    42         $glocalsaino_wppw_core   = new GlocalSaino_Wppw_Core();
    43         $glocalsaino_wppw_admin  = new GlocalSaino_Wppw_Admin();
    44         $glocalsaino_wppw_styles = new GlocalSaino_Wppw_Styles();
     41add_action( 'admin_menu',            array( $glocalsaino_wppw_admin,  'register_menu' ) );
     42add_action( 'admin_menu',            array( $glocalsaino_wppw_admin,  'register_extensions_submenu' ), PHP_INT_MAX );
     43add_action( 'admin_init',            array( $glocalsaino_wppw_admin,  'register_settings' ) );
     44add_action( 'admin_enqueue_scripts', array( $glocalsaino_wppw_admin,  'enqueue_admin_assets' ) );
    4545
    46         add_action( 'init',                  array( $glocalsaino_wppw_core,   'process_form' ) );
    47         add_shortcode( 'glocalsaino_wppw',   array( $glocalsaino_wppw_core,   'wppw_shortcode' ) );
    48 
    49         add_action( 'admin_menu',            array( $glocalsaino_wppw_admin,  'register_menu' ) );
    50         add_action( 'admin_menu',            array( $glocalsaino_wppw_admin,  'register_extensions_submenu' ), PHP_INT_MAX );
    51         add_action( 'admin_init',            array( $glocalsaino_wppw_admin,  'register_settings' ) );
    52         add_action( 'admin_enqueue_scripts', array( $glocalsaino_wppw_admin,  'enqueue_admin_assets' ) );
    53 
    54         add_action( 'wp_enqueue_scripts',    array( $glocalsaino_wppw_styles, 'enqueue_frontend_assets' ) );
    55 }
     46add_action( 'wp_enqueue_scripts',    array( $glocalsaino_wppw_styles, 'enqueue_frontend_assets' ) );
  • glocalsaino-webpagespassworded/trunk/includes/class-wppw-admin.php

    r3669424 r3678773  
    316316        }
    317317
     318        // Tarjeta compacta reutilizable (icono + nombre + una frase + estado/CTA)
     319        // — mismo formato en los tres plugins de la familia (GlocalSaino
     320        // Auctions Displayed by Shortcodes, Layer Map Viewer y este), para que
     321        // las tres páginas de "Extensions" se vean consistentes entre sí.
     322        private function render_extension_card( string $name, string $description, bool $active, string $url, string $icon_url = '' ): void {
     323                ?>
     324                <div style="background:#fff;border:1px solid #ccd0d4;padding:20px;max-width:640px;margin-top:16px;display:flex;gap:16px;align-items:flex-start;">
     325                        <?php if ( $icon_url ) : ?>
     326                                <img src="<?php echo esc_url( $icon_url ); ?>" alt="<?php echo esc_attr( $name ); ?>"
     327                                        width="48" height="48" style="width:48px;height:48px;border-radius:8px;flex-shrink:0;">
     328                        <?php endif; ?>
     329                        <div>
     330                                <h2 style="margin-top:0;"><?php echo esc_html( $name ); ?></h2>
     331                                <p><?php echo esc_html( $description ); ?></p>
     332                                <?php if ( $active ) : ?>
     333                                        <p><strong><?php esc_html_e( 'Active', 'glocalsaino-webpagespassworded' ); ?></strong></p>
     334                                <?php else : ?>
     335                                        <p>
     336                                                <a class="button button-primary" href="<?php echo esc_url( $url ); ?>" target="_blank" rel="noopener">
     337                                                        <?php esc_html_e( 'Learn more', 'glocalsaino-webpagespassworded' ); ?>
     338                                                </a>
     339                                        </p>
     340                                <?php endif; ?>
     341                        </div>
     342                </div>
     343                <?php
     344        }
     345
    318346        public function render_extensions_page(): void {
    319                 $banner_url = GLOCALSAINO_WPPW_URL . 'assets/img/magic-links-banner.png';
    320347                ?>
    321348                <div class="wrap">
    322349                        <h1><?php esc_html_e( 'Extensions', 'glocalsaino-webpagespassworded' ); ?></h1>
    323350
    324                         <img src="<?php echo esc_url( $banner_url ); ?>"
    325                                 alt="<?php esc_attr_e( 'GlocalSaino WPPW Magic Links', 'glocalsaino-webpagespassworded' ); ?>"
    326                                 style="max-width:772px;width:100%;height:auto;display:block;margin:16px 0 24px;" />
    327 
    328                         <p style="font-size:14px;max-width:760px;">
    329                                 <?php esc_html_e( 'GlocalSaino WPPW Magic Links lets you generate signed links that grant direct access to password-protected pages — no password form, no friction. Control expiry, usage limits, and revoke any link instantly.', 'glocalsaino-webpagespassworded' ); ?>
     351                        <?php
     352                        $this->render_extension_card(
     353                                __( 'GlocalSaino WPPW Magic Links', 'glocalsaino-webpagespassworded' ),
     354                                __( 'Generate signed links that grant direct access to password-protected pages — no password form, no friction. Control expiry, usage limits, and revoke any link instantly.', 'glocalsaino-webpagespassworded' ),
     355                                class_exists( 'GlocalSaino_Wppw_ML_Core' ),
     356                                'https://glocalsaino.com/wppw-magic-link',
     357                                GLOCALSAINO_WPPW_URL . 'assets/img/icon-wppw-magic-link.png'
     358                        );
     359                        ?>
     360
     361                        <h2 style="margin-top:32px;"><?php esc_html_e( 'What are you protecting?', 'glocalsaino-webpagespassworded' ); ?></h2>
     362                        <p style="max-width:760px;font-size:14px;">
     363                                <?php esc_html_e( 'WebPagesPassworded controls who gets in — these two free GlocalSaino plugins give visitors something worth getting in for.', 'glocalsaino-webpagespassworded' ); ?>
    330364                        </p>
    331365
    332                         <ol style="max-width:760px;font-size:14px;line-height:1.8;">
    333                                 <li><strong><?php esc_html_e( 'Send access, not passwords.', 'glocalsaino-webpagespassworded' ); ?></strong>
    334                                         <?php esc_html_e( 'Stop copying and pasting passwords into emails. Generate a single link and share it — your client clicks it and lands directly on the protected page.', 'glocalsaino-webpagespassworded' ); ?></li>
    335                                 <li><strong><?php esc_html_e( 'Control who gets in and for how long.', 'glocalsaino-webpagespassworded' ); ?></strong>
    336                                         <?php esc_html_e( 'Set an expiry date or a maximum number of uses on each link. When a project ends or a client\'s access period is over, the link stops working on its own.', 'glocalsaino-webpagespassworded' ); ?></li>
    337                                 <li><strong><?php esc_html_e( 'Protect your passwords without exposing them.', 'glocalsaino-webpagespassworded' ); ?></strong>
    338                                         <?php esc_html_e( 'The real page password never appears in the URL. You can share access with dozens of individual people, revoke any one of them instantly, and the underlying password remains unchanged for everyone else.', 'glocalsaino-webpagespassworded' ); ?></li>
    339                         </ol>
    340 
    341                         <hr style="max-width:760px;margin:24px 0;" />
    342 
    343                         <p style="font-size:14px;max-width:760px;">
    344                                 <?php esc_html_e( 'Managing password-protected content should not mean managing passwords. GlocalSaino WPPW Magic Links removes that friction entirely.', 'glocalsaino-webpagespassworded' ); ?>
    345                         </p>
    346 
    347                         <h2><?php esc_html_e( 'Share access without sharing passwords', 'glocalsaino-webpagespassworded' ); ?></h2>
    348                         <p style="max-width:760px;font-size:14px;">
    349                                 <?php esc_html_e( 'When you protect a page with a password, sharing that password is the weakest link in your workflow. Anyone who receives it can forward it, anyone can save it, and changing it means notifying everyone all over again. Magic links break that cycle. Each link is a unique, signed token that grants access to one specific page. The real password stays private — only the token travels in the URL.', 'glocalsaino-webpagespassworded' ); ?>
    350                         </p>
    351 
    352                         <h2><?php esc_html_e( 'Access that expires on your terms', 'glocalsaino-webpagespassworded' ); ?></h2>
    353                         <p style="max-width:760px;font-size:14px;">
    354                                 <?php esc_html_e( 'Every magic link you generate can have its own rules. Set it to expire after one day, one week, or one month. Limit it to a single use or a fixed number of visits. When the link expires or runs out of uses, access stops automatically — no manual intervention required. If you want the visitor to land somewhere specific when a link no longer works, add a fallback URL and they will be redirected gracefully instead of hitting a dead end.', 'glocalsaino-webpagespassworded' ); ?>
    355                         </p>
    356 
    357                         <h2><?php esc_html_e( 'A clear dashboard, full control', 'glocalsaino-webpagespassworded' ); ?></h2>
    358                         <p style="max-width:760px;font-size:14px;">
    359                                 <?php esc_html_e( 'The Magic Links panel shows every link you have generated: the target page, the label you assigned, the expiry date, the number of uses, and the current status — active, expired, or exhausted. Revoking a link takes one click and takes effect immediately.', 'glocalsaino-webpagespassworded' ); ?>
    360                         </p>
    361 
    362                         <p style="margin-top:24px;">
    363                                 <a href="https://glocalsaino.com/wppw-magic-link" target="_blank" rel="noopener noreferrer" class="button button-primary button-large">
    364                                         <?php esc_html_e( 'Learn more and buy →', 'glocalsaino-webpagespassworded' ); ?>
    365                                 </a>
    366                         </p>
     366                        <?php
     367                        $this->render_extension_card(
     368                                __( 'GlocalSaino Auctions Displayed by Shortcodes', 'glocalsaino-webpagespassworded' ),
     369                                __( "Run a private, invitation-only auction. Put the auction page behind a password or a Magic Link, so only people you've vetted can even see the bidding.", 'glocalsaino-webpagespassworded' ),
     370                                class_exists( 'GSADS_Settings' ),
     371                                'https://glocalsaino.com/auctionsdisplayedbyshortcodes/',
     372                                GLOCALSAINO_WPPW_URL . 'assets/img/icon-auctions-displayed-by-shortcodes.png'
     373                        );
     374
     375                        $this->render_extension_card(
     376                                __( 'GlocalSaino Layer Map Viewer', 'glocalsaino-webpagespassworded' ),
     377                                __( 'Protect a map with sensitive or unpublished data. Show parcel boundaries, property details, or live-tracked assets only to people who have the password or the link.', 'glocalsaino-webpagespassworded' ),
     378                                function_exists( 'kml_map_tile_dir' ),
     379                                'https://glocalsaino.com/layermapviewer/',
     380                                GLOCALSAINO_WPPW_URL . 'assets/img/icon-glocalsaino-layer-map-viewer.png'
     381                        );
     382                        ?>
    367383                </div>
    368384                <?php
  • glocalsaino-webpagespassworded/trunk/readme.txt

    r3669424 r3678773  
    11=== GlocalSaino WebPagesPassworded ===
    2 Contributors: glocalsaino, rafammoo, freemius
     2Contributors: glocalsaino, rafammoo
    33Tags: password, protected pages, child pages, access control, shortcode
    44Requires at least: 5.0
    55Tested up to: 7.1
    6 Stable tag: 4.4.9
     6Stable tag: 4.5.0
    77Requires PHP: 7.4
    88License: GPLv2 or later
    … …  
    6161== Screenshots ==
    6262
    63 1. Password form on the front-end, with a custom icon and custom colours applied via the settings panel.
    64 2. Settings panel: general settings section (button label and shortcode reference) and customisable error messages.
    65 3. Settings panel: form design section with colour pickers, font size controls, and a Font Awesome icon picker.
    66 4. WordPress editor showing the parent page with the [glocalsaino_wppw] shortcode inserted.
    67 5. WordPress editor showing a child page configured as a child of the parent page and protected with a password.
     631. Password form on the front end — parent page showing the password input field as visitors see it.
     642. Admin settings — General Settings: button label, shortcode reference and available shortcode parameters.
     653. Admin settings — Error Messages: customisable wrong-password and too-many-attempts messages.
     664. Admin settings — Form Design: appearance controls for the password input field (colours, size, icon).
     675. WordPress editor — parent page with the [glocalsaino_wppw] shortcode and annotated explanatory overlays.
     686. WordPress editor — password-protected child page with annotated explanatory overlays showing the required configuration.
    6869
    6970== Installation ==
    … …  
    123124== Changelog ==
    124125
     126= 4.5.0 =
     127* Architecture: removed the Freemius SDK entirely. The plugin never had premium code of its own; the SDK served no purpose beyond unnecessary overhead. No functional change for site owners — the plugin works exactly as before. The WPPW Magic Links add-on is now registered as an independent Freemius product and no longer requires the parent plugin to carry the SDK.
     128
     129= 4.4.10 =
     130* Redesigned the "Extensions" submenu: the Magic Links add-on is now a compact card with its logo, and the page now also cross-promotes GlocalSaino Auctions Displayed by Shortcodes and GlocalSaino Layer Map Viewer, each showing "Active" automatically when already installed.
     131
    125132= 4.4.9 =
    126133* All admin UI text changed to English as base language for translation support.
Note: See TracChangeset for help on using the changeset viewer.