Changeset 3678773
- Timestamp:
- 09/02/2026 11:08:37 PM (7 weeks ago)
- Location:
- glocalsaino-webpagespassworded
- Files:
-
- 6 added
- 5 deleted
- 5 edited
- 7 copied
-
assets/icon-128x128.png (modified) ( previous)
-
assets/icon-256x256.png (modified) ( previous)
-
tags/4.5.0 (copied) (copied from glocalsaino-webpagespassworded/trunk )
-
tags/4.5.0/assets (copied) (copied from glocalsaino-webpagespassworded/trunk/assets )
-
tags/4.5.0/assets/img (copied) (copied from glocalsaino-webpagespassworded/trunk/assets/img )
-
tags/4.5.0/assets/img/icon-auctions-displayed-by-shortcodes.png (added)
-
tags/4.5.0/assets/img/icon-glocalsaino-layer-map-viewer.png (added)
-
tags/4.5.0/assets/img/icon-wppw-magic-link.png (added)
-
tags/4.5.0/assets/img/magic-links-banner.png (deleted)
-
tags/4.5.0/glocalsaino-webpagespassworded.php (copied) (copied from glocalsaino-webpagespassworded/trunk/glocalsaino-webpagespassworded.php ) (2 diffs)
-
tags/4.5.0/includes (copied) (copied from glocalsaino-webpagespassworded/trunk/includes )
-
tags/4.5.0/includes/class-wppw-admin.php (copied) (copied from glocalsaino-webpagespassworded/trunk/includes/class-wppw-admin.php ) (1 diff)
-
tags/4.5.0/readme.txt (copied) (copied from glocalsaino-webpagespassworded/trunk/readme.txt ) (3 diffs)
-
trunk/assets/img/icon-auctions-displayed-by-shortcodes.png (added)
-
trunk/assets/img/icon-glocalsaino-layer-map-viewer.png (added)
-
trunk/assets/img/icon-wppw-magic-link.png (added)
-
trunk/assets/img/magic-links-banner.png (deleted)
-
trunk/composer.json (deleted)
-
trunk/freemius-init.php (deleted)
-
trunk/glocalsaino-webpagespassworded.php (modified) (2 diffs)
-
trunk/includes/class-wppw-admin.php (modified) (1 diff)
-
trunk/readme.txt (modified) (3 diffs)
-
trunk/vendor (deleted)
Legend:
- Unmodified
- Added
- Removed
-
glocalsaino-webpagespassworded/tags/4.5.0/glocalsaino-webpagespassworded.php
r3669424 r3678773 2 2 /** 3 3 * Plugin Name: GlocalSaino WebPagesPassworded 4 * Plugin URI: https://glocalsaino.com 4 * Plugin URI: https://glocalsaino.com/webpagespassworded/ 5 5 * 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.96 * Version: 4.5.0 7 7 * Requires at least: 5.0 8 8 * Requires PHP: 7.4 … … 21 21 } 22 22 23 if ( function_exists( 'glocalsaino_wppw_fs' ) ) { 24 glocalsaino_wppw_fs()->set_basename( false, __FILE__ ); 25 } else { 23 define( 'GLOCALSAINO_WPPW_VERSION', '4.5.0' ); 24 define( 'GLOCALSAINO_WPPW_DIR', plugin_dir_path( __FILE__ ) ); 25 define( 'GLOCALSAINO_WPPW_URL', plugin_dir_url( __FILE__ ) ); 26 define( 'GLOCALSAINO_WPPW_COOKIE_SECONDS', 864000 ); 27 define( 'GLOCALSAINO_WPPW_MAX_ATTEMPTS', 5 ); 28 define( 'GLOCALSAINO_WPPW_LOCKOUT_SECONDS', 900 ); 26 29 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 ); 30 require_once GLOCALSAINO_WPPW_DIR . 'includes/class-wppw-core.php'; 31 require_once GLOCALSAINO_WPPW_DIR . 'includes/class-wppw-admin.php'; 32 require_once GLOCALSAINO_WPPW_DIR . 'includes/class-wppw-styles.php'; 33 33 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(); 37 37 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'; 38 add_action( 'init', array( $glocalsaino_wppw_core, 'process_form' ) ); 39 add_shortcode( 'glocalsaino_wppw', array( $glocalsaino_wppw_core, 'wppw_shortcode' ) ); 41 40 42 $glocalsaino_wppw_core = new GlocalSaino_Wppw_Core(); 43 $glocalsaino_wppw_admin = new GlocalSaino_Wppw_Admin(); 44 $glocalsaino_wppw_styles = new GlocalSaino_Wppw_Styles(); 41 add_action( 'admin_menu', array( $glocalsaino_wppw_admin, 'register_menu' ) ); 42 add_action( 'admin_menu', array( $glocalsaino_wppw_admin, 'register_extensions_submenu' ), PHP_INT_MAX ); 43 add_action( 'admin_init', array( $glocalsaino_wppw_admin, 'register_settings' ) ); 44 add_action( 'admin_enqueue_scripts', array( $glocalsaino_wppw_admin, 'enqueue_admin_assets' ) ); 45 45 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 } 46 add_action( 'wp_enqueue_scripts', array( $glocalsaino_wppw_styles, 'enqueue_frontend_assets' ) ); -
glocalsaino-webpagespassworded/tags/4.5.0/includes/class-wppw-admin.php
r3669424 r3678773 316 316 } 317 317 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 318 346 public function render_extensions_page(): void { 319 $banner_url = GLOCALSAINO_WPPW_URL . 'assets/img/magic-links-banner.png';320 347 ?> 321 348 <div class="wrap"> 322 349 <h1><?php esc_html_e( 'Extensions', 'glocalsaino-webpagespassworded' ); ?></h1> 323 350 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' ); ?> 330 364 </p> 331 365 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 ?> 367 383 </div> 368 384 <?php -
glocalsaino-webpagespassworded/tags/4.5.0/readme.txt
r3669424 r3678773 1 1 === GlocalSaino WebPagesPassworded === 2 Contributors: glocalsaino, rafammoo , freemius2 Contributors: glocalsaino, rafammoo 3 3 Tags: password, protected pages, child pages, access control, shortcode 4 4 Requires at least: 5.0 5 5 Tested up to: 7.1 6 Stable tag: 4. 4.96 Stable tag: 4.5.0 7 7 Requires PHP: 7.4 8 8 License: GPLv2 or later … … 61 61 == Screenshots == 62 62 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. 63 1. Password form on the front end — parent page showing the password input field as visitors see it. 64 2. Admin settings — General Settings: button label, shortcode reference and available shortcode parameters. 65 3. Admin settings — Error Messages: customisable wrong-password and too-many-attempts messages. 66 4. Admin settings — Form Design: appearance controls for the password input field (colours, size, icon). 67 5. WordPress editor — parent page with the [glocalsaino_wppw] shortcode and annotated explanatory overlays. 68 6. WordPress editor — password-protected child page with annotated explanatory overlays showing the required configuration. 68 69 69 70 == Installation == … … 123 124 == Changelog == 124 125 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 125 132 = 4.4.9 = 126 133 * All admin UI text changed to English as base language for translation support. -
glocalsaino-webpagespassworded/trunk/glocalsaino-webpagespassworded.php
r3669424 r3678773 2 2 /** 3 3 * Plugin Name: GlocalSaino WebPagesPassworded 4 * Plugin URI: https://glocalsaino.com 4 * Plugin URI: https://glocalsaino.com/webpagespassworded/ 5 5 * 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.96 * Version: 4.5.0 7 7 * Requires at least: 5.0 8 8 * Requires PHP: 7.4 … … 21 21 } 22 22 23 if ( function_exists( 'glocalsaino_wppw_fs' ) ) { 24 glocalsaino_wppw_fs()->set_basename( false, __FILE__ ); 25 } else { 23 define( 'GLOCALSAINO_WPPW_VERSION', '4.5.0' ); 24 define( 'GLOCALSAINO_WPPW_DIR', plugin_dir_path( __FILE__ ) ); 25 define( 'GLOCALSAINO_WPPW_URL', plugin_dir_url( __FILE__ ) ); 26 define( 'GLOCALSAINO_WPPW_COOKIE_SECONDS', 864000 ); 27 define( 'GLOCALSAINO_WPPW_MAX_ATTEMPTS', 5 ); 28 define( 'GLOCALSAINO_WPPW_LOCKOUT_SECONDS', 900 ); 26 29 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 ); 30 require_once GLOCALSAINO_WPPW_DIR . 'includes/class-wppw-core.php'; 31 require_once GLOCALSAINO_WPPW_DIR . 'includes/class-wppw-admin.php'; 32 require_once GLOCALSAINO_WPPW_DIR . 'includes/class-wppw-styles.php'; 33 33 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(); 37 37 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'; 38 add_action( 'init', array( $glocalsaino_wppw_core, 'process_form' ) ); 39 add_shortcode( 'glocalsaino_wppw', array( $glocalsaino_wppw_core, 'wppw_shortcode' ) ); 41 40 42 $glocalsaino_wppw_core = new GlocalSaino_Wppw_Core(); 43 $glocalsaino_wppw_admin = new GlocalSaino_Wppw_Admin(); 44 $glocalsaino_wppw_styles = new GlocalSaino_Wppw_Styles(); 41 add_action( 'admin_menu', array( $glocalsaino_wppw_admin, 'register_menu' ) ); 42 add_action( 'admin_menu', array( $glocalsaino_wppw_admin, 'register_extensions_submenu' ), PHP_INT_MAX ); 43 add_action( 'admin_init', array( $glocalsaino_wppw_admin, 'register_settings' ) ); 44 add_action( 'admin_enqueue_scripts', array( $glocalsaino_wppw_admin, 'enqueue_admin_assets' ) ); 45 45 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 } 46 add_action( 'wp_enqueue_scripts', array( $glocalsaino_wppw_styles, 'enqueue_frontend_assets' ) ); -
glocalsaino-webpagespassworded/trunk/includes/class-wppw-admin.php
r3669424 r3678773 316 316 } 317 317 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 318 346 public function render_extensions_page(): void { 319 $banner_url = GLOCALSAINO_WPPW_URL . 'assets/img/magic-links-banner.png';320 347 ?> 321 348 <div class="wrap"> 322 349 <h1><?php esc_html_e( 'Extensions', 'glocalsaino-webpagespassworded' ); ?></h1> 323 350 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' ); ?> 330 364 </p> 331 365 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 ?> 367 383 </div> 368 384 <?php -
glocalsaino-webpagespassworded/trunk/readme.txt
r3669424 r3678773 1 1 === GlocalSaino WebPagesPassworded === 2 Contributors: glocalsaino, rafammoo , freemius2 Contributors: glocalsaino, rafammoo 3 3 Tags: password, protected pages, child pages, access control, shortcode 4 4 Requires at least: 5.0 5 5 Tested up to: 7.1 6 Stable tag: 4. 4.96 Stable tag: 4.5.0 7 7 Requires PHP: 7.4 8 8 License: GPLv2 or later … … 61 61 == Screenshots == 62 62 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. 63 1. Password form on the front end — parent page showing the password input field as visitors see it. 64 2. Admin settings — General Settings: button label, shortcode reference and available shortcode parameters. 65 3. Admin settings — Error Messages: customisable wrong-password and too-many-attempts messages. 66 4. Admin settings — Form Design: appearance controls for the password input field (colours, size, icon). 67 5. WordPress editor — parent page with the [glocalsaino_wppw] shortcode and annotated explanatory overlays. 68 6. WordPress editor — password-protected child page with annotated explanatory overlays showing the required configuration. 68 69 69 70 == Installation == … … 123 124 == Changelog == 124 125 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 125 132 = 4.4.9 = 126 133 * All admin UI text changed to English as base language for translation support.
Note:
See TracChangeset
for help on using the changeset viewer.
![(please configure the [header_logo] section in trac.ini)](/chrome/site/your_project_logo.png)