Plugin Directory

Changeset 3748764


Ignore:
Timestamp:
10/15/2026 02:38:38 PM (10 days ago)
Author:
bangplugins
Message:

Preparing 1.0.40

Location:
bang-invites/trunk
Files:
4 edited

Legend:

Unmodified
Added
Removed
  • bang-invites/trunk/bang-invites.php

    r3647283 r3748764  
    11<?php
    22/**
    3  * Plugin Name:       Bang! Invites - Invite People to Register by Email
     3 * Plugin Name:       Bang! Invites - Invite Users by Email
    44 * Description:       Invite people to join your WordPress site by email. They click one secure, expiring link, set a password, and land wherever you choose - with the role you pick. Tracks who is pending, accepted or expired.
    5  * Version:           1.0.39
     5 * Version:           1.0.40
    66 * Requires at least: 6.0
    77 * Requires PHP:      7.4
    … …  
    3030}
    3131
    32 if ( ! defined( 'BANGINVITES_VERSION' ) ) { define( 'BANGINVITES_VERSION', '1.0.39' ); }
     32if ( ! defined( 'BANGINVITES_VERSION' ) ) { define( 'BANGINVITES_VERSION', '1.0.40' ); }
    3333if ( ! defined( 'BANGINVITES_OPTION' ) )  { define( 'BANGINVITES_OPTION', 'banginvites' ); }
    3434if ( ! defined( 'BANGINVITES_RECORDS' ) ) { define( 'BANGINVITES_RECORDS', 'banginvites_records' ); }
    … …  
    630630    $u->set_role( banginvites_safe_role( $match['role'] ) );
    631631
     632    // The registration plugin finishes inside this same request (its success
     633    // message or redirect). Flag it so the page guard lets that response
     634    // through instead of showing "already signed up". Request-only on purpose:
     635    // anything longer-lived would show the form again to that browser.
     636    $GLOBALS['banginvites_just_accepted'] = $code;
     637
    632638    do_action( 'banginvites_after_accept', $user_id, $match );
     639}
     640
     641/**
     642 * True only inside the request in which this invite was just accepted, so the
     643 * registration plugin's own success message or redirect is not replaced by
     644 * the "already signed up" notice. Any later load of the link - same browser
     645 * or not - gets the notice, keeping the link strictly single-use.
     646 */
     647function banginvites_finishing_registration( $code ) {
     648    return '' !== $code
     649        && isset( $GLOBALS['banginvites_just_accepted'] )
     650        && $GLOBALS['banginvites_just_accepted'] === $code;
    633651}
    634652
    … …  
    973991
    974992/**
     993 * Open a locked group of settings for external-form mode: a labelled box whose
     994 * header says these fields are not used, with the fields locked underneath.
     995 * `inert` blocks clicks, typing and tabbing but, unlike `disabled`, the fields
     996 * still post on save, so their saved values are never wiped. The caller closes
     997 * the inner div itself and then the outer one when $locked is true.
     998 */
     999function banginvites_lock_open( $locked, $label ) {
     1000    if ( ! $locked ) { return '<div>'; }
     1001    return '<div class="banginvites-lockgroup"><div class="banginvites-lockhead">'
     1002         . '<span class="dashicons dashicons-lock" aria-hidden="true"></span>'
     1003         . esc_html( $label ) . '</div><div class="banginvites-locked" inert>';
     1004}
     1005
     1006
     1007/**
    9751008 * Registration-page guard. When protection is on, a visitor who opens the
    9761009 * setup page without an invitation sees a notice in place of the page content.
    … …  
    10031036        $g_email = sanitize_email( wp_unslash( $_GET['email'] ) );
    10041037        $g_code  = sanitize_text_field( wp_unslash( $_GET['invite_code'] ) );
     1038
     1039        // The person who has just registered: leave the page to the
     1040        // registration plugin so its success message and redirect run.
     1041        if ( banginvites_finishing_registration( $g_code ) ) { return $content; }
    10051042
    10061043        if ( is_user_logged_in() ) {
    … …  
    13391376            // from an older version cannot wipe the saved addresses. Entries
    13401377            // are not validated here - see banginvites_notify_rows().
    1341             $rows = wp_unslash( $_POST['notify'] ?? '' );
     1378            $rows = isset( $_POST['notify'] ) ? map_deep( wp_unslash( $_POST['notify'] ), 'sanitize_text_field' ) : '';
    13421379            $rows = is_array( $rows ) ? $rows : banginvites_notify_rows( $rows );
    13431380            $rows = array_filter( array_map( 'sanitize_text_field', (array) $rows ) );
    … …  
    18651902    // Built-in-form settings are greyed (not hidden) in external mode. Inputs
    18661903    // stay enabled so their saved values still post back unchanged.
    1867     $dim      = $ext ? ' style="opacity:.45;"' : '';
    1868     $ext_note = '<p class="banginvites-hint" style="font-style:italic;">' . esc_html__( 'Handled by your registration plugin.', 'bang-invites' ) . '</p>';
    18691904    ?>
    18701905    <form method="post" class="banginvites-tabform" data-triggers="banginvites_save_settings">
    … …  
    18901925      <div class="banginvites-card" id="banginvites-sec-reg-form">
    18911926        <div class="banginvites-card-head"><h2><?php esc_html_e( 'Registration form', 'bang-invites' ); ?></h2></div>
    1892         <div<?php echo $dim; // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped -- fixed inline style. ?>>
    1893         <?php if ( $ext ) { echo wp_kses_post( $ext_note ); } ?>
     1927        <?php echo banginvites_lock_open( $ext, __( "Not used - your registration plugin's own form and styling apply", 'bang-invites' ) ); // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped -- escaped inside. ?>
    18941928        <p class="banginvites-sub"><?php esc_html_e( 'How the built-in form looks - the one invited people use to set a password. The shortcode to place it lives under Pages above.', 'bang-invites' ); ?></p>
    18951929
    … …  
    19301964          </div>
    19311965        </div>
    1932         </div>
     1966        </div><?php echo $ext ? '</div>' : ''; // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped -- fixed markup. ?>
    19331967      </div>
    19341968
    … …  
    19922026
    19932027        <?php $redir_is_url = ( is_string( $s['redirect'] ) && preg_match( '#^https?://#i', $s['redirect'] ) ); ?>
    1994         <div<?php echo $dim; // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped -- fixed inline style. ?>>
    1995         <?php if ( $ext ) { echo wp_kses_post( $ext_note ); } ?>
     2028        <?php echo banginvites_lock_open( $ext, __( 'Not used - set this in your registration plugin', 'bang-invites' ) ); // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped -- escaped inside. ?>
    19962029        <label class="banginvites-label" for="bi-set-redir" style="margin-top:20px;"><?php esc_html_e( 'Where to send people the first time, right after they register', 'bang-invites' ); ?></label>
    19972030        <select id="bi-set-redir" name="redirect" class="banginvites-input">
    … …  
    20062039        <input id="bi-set-redir-url" type="url" name="redirect_custom" class="banginvites-input" value="<?php echo esc_attr( $redir_is_url ? $s['redirect'] : '' ); ?>" placeholder="https://example.com/welcome/">
    20072040        <p class="banginvites-hint"><?php esc_html_e( 'Used only when "A custom URL" is selected above. This fires once, right after someone registers - it is not a login redirect. Where clients go each time they log in later is handled by your theme or membership setup, not this plugin.', 'bang-invites' ); ?></p>
    2008         </div>
     2041        </div><?php echo $ext ? '</div>' : ''; // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped -- fixed markup. ?>
    20092042
    20102043        <?php $login_is_url = ( is_string( $s['login_url'] ) && preg_match( '#^https?://#i', $s['login_url'] ) ); ?>
    … …  
    20272060        <div class="banginvites-card-head"><h2><?php esc_html_e( 'Behaviour', 'bang-invites' ); ?></h2></div>
    20282061        <div class="banginvites-checkset">
    2029         <div<?php echo $dim; // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped -- fixed inline style. ?>>
     2062        <?php echo banginvites_lock_open( $ext, __( 'Not used - your registration plugin decides this', 'bang-invites' ) ); // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped -- escaped inside. ?>
    20302063        <label class="banginvites-check"><input type="checkbox" name="auto_login" value="1" <?php checked( $s['auto_login'] ); ?>> <?php esc_html_e( 'Log people in automatically once they finish registering', 'bang-invites' ); ?></label>
    2031         <?php if ( $ext ) { echo wp_kses_post( $ext_note ); } ?>
    2032         </div>
     2064        </div><?php echo $ext ? '</div>' : ''; // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped -- fixed markup. ?>
    20332065        <label class="banginvites-check"><input type="checkbox" name="quiet_wp_mail" value="1" <?php checked( $s['quiet_wp_mail'] ); ?>> <?php esc_html_e( "Silence WordPress's own account emails (send only mine)", 'bang-invites' ); ?></label>
    20342066        <label class="banginvites-check"><input type="checkbox" name="admin_bar" value="1" <?php checked( $s['admin_bar'] ); ?>> <?php esc_html_e( 'Show a shortcut in the top WordPress toolbar', 'bang-invites' ); ?></label>
    … …  
    21202152      .banginvites-admin .banginvites-sub{color:#6b7280;font-size:12.5px;line-height:1.6;margin:0 0 18px;max-width:78ch;}
    21212153      .banginvites-admin .banginvites-hint{color:#6b7280;font-size:12.5px;line-height:1.6;margin:8px 0 0;max-width:78ch;overflow-wrap:anywhere;}
    2122       .banginvites-admin .banginvites-main .banginvites-card .banginvites-hint{max-width:none;}
     2154      .banginvites-admin .banginvites-main .banginvites-card .banginvites-hint,.banginvites-admin .banginvites-main .banginvites-card .banginvites-sub,.banginvites-admin .banginvites-main .banginvites-card .banginvites-tokens{max-width:none;}
    21232155      .banginvites-admin .banginvites-main .banginvites-card textarea.banginvites-input{max-width:none;}
    21242156      .banginvites-admin .banginvites-hint code{background:#f4f4f8;border-radius:5px;padding:1px 6px;font-size:11.5px;color:#3a3d5c;}
    … …  
    21712203      }
    21722204      /* Green "saved" confirmation - same shape, leaves by itself. */
     2205      .banginvites-admin .banginvites-lockgroup{border:1px dashed #b7aef9;border-radius:10px;overflow:hidden;margin:6px 0 14px;}
     2206      .banginvites-admin .banginvites-lockhead{display:flex;align-items:center;gap:8px;background:#f1effe;border-bottom:1px dashed #b7aef9;padding:9px 14px;font-size:13px;font-weight:600;color:#4b3fc4;}
     2207      .banginvites-admin .banginvites-lockhead .dashicons{font-size:16px;width:16px;height:16px;}
     2208      .banginvites-admin .banginvites-locked{opacity:.4;pointer-events:none;user-select:none;cursor:default;padding:4px 14px 14px;}
    21732209      .banginvites-admin .banginvites-savedbar{background:#72b47a;border-color:#72b47a;box-shadow:0 12px 34px -10px rgba(114,180,122,.45);justify-content:flex-start;transition:opacity .45s ease, transform .45s ease;}
    21742210      .banginvites-admin .banginvites-savedbar .banginvites-floatsave-state{color:#fff;}
  • bang-invites/trunk/changelog.txt

    r3647283 r3748764  
    44The readme keeps only recent versions, as the directory truncates long histories.
    55This file is the whole story.
     6
     7= 1.0.40 =
     8* Fixed: on sites using another registration plugin, the person who had just registered was shown "You have already signed up - this invitation has been used" instead of that plugin's success message or redirect. The page guard now recognises the person finishing their own registration and leaves the page to the registration plugin. Anyone opening a used link afterwards still sees the notice.
     9* When another registration plugin is in use, the settings that only apply to the built-in form now sit in a clearly labelled box saying they are not used and where to set them instead, and they are locked. Previously they were greyed out with a faint note but could still be clicked and changed, which suggested they did something. Their saved values are kept, ready for if you switch back.
     10* Intro text at the top of each settings card now runs the full width of the card instead of stopping two thirds of the way across.
     11* Plugin renamed to "Bang! Invites - Invite Users by Email". Nothing else about the plugin, its settings or its address changes.
     12* Tested with WordPress 7.1.
    613
    714= 1.0.39 =
  • bang-invites/trunk/languages/bang-invites.pot

    r3647283 r3748764  
    11# Copyright (C) 2026 Bang! Plugins
    2 # This file is distributed under the GPL-2.0-or-later license.
     2# This file is distributed under the GPL-2.0-or-later.
    33msgid ""
    44msgstr ""
    5 "Project-Id-Version: Bang! Invites - Invite People to Register by Email 1.0.39\n"
     5"Project-Id-Version: Bang! Invites - Invite Users by Email 1.0.40\n"
    66"Report-Msgid-Bugs-To: https://wordpress.org/support/plugin/bang-invites\n"
    77"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
    … …  
    1010"Content-Type: text/plain; charset=UTF-8\n"
    1111"Content-Transfer-Encoding: 8bit\n"
    12 "POT-Creation-Date: 2026-08-14 00:00+0000\n"
     12"POT-Creation-Date: 2026-10-15T14:16:32+00:00\n"
    1313"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
    14 "Language: \n"
    15 "Plural-Forms: nplurals=2; plural=(n != 1);\n"
     14"X-Generator: WP-CLI 2.11.0\n"
    1615"X-Domain: bang-invites\n"
     16
     17#. Plugin Name of the plugin
     18#: bang-invites.php
     19msgid "Bang! Invites - Invite Users by Email"
     20msgstr ""
     21
     22#. Description of the plugin
     23#: bang-invites.php
     24msgid "Invite people to join your WordPress site by email. They click one secure, expiring link, set a password, and land wherever you choose - with the role you pick. Tracks who is pending, accepted or expired."
     25msgstr ""
     26
     27#. Author of the plugin
     28#: bang-invites.php
     29msgid "Bang! Plugins"
     30msgstr ""
     31
     32#. Author URI of the plugin
     33#: bang-invites.php
     34msgid "https://www.bangplugins.com"
     35msgstr ""
    1736
    1837#. translators: %s: site name
    1938#: bang-invites.php:150
    20 #, php-format
    2139msgid "You are invited to join %s"
    2240msgstr ""
    … …  
    2442#. translators: %s: site name
    2543#: bang-invites.php:155
    26 #, php-format
    2744msgid "Welcome to %s"
    2845msgstr ""
    … …  
    3249msgstr ""
    3350
    34 #: bang-invites.php:162 bang-invites.php:935
     51#: bang-invites.php:162
     52#: bang-invites.php:964
    3553msgid "Complete Registration"
    3654msgstr ""
    3755
    38 #: bang-invites.php:165 bang-invites.php:456
     56#: bang-invites.php:165
     57#: bang-invites.php:456
    3958msgid "Complete Your Registration"
    4059msgstr ""
    … …  
    5271msgstr ""
    5372
    54 #: bang-invites.php:812
     73#: bang-invites.php:841
    5574msgid "Please enter your first name."
    5675msgstr ""
    5776
    58 #: bang-invites.php:813
     77#: bang-invites.php:842
    5978msgid "Please enter your last name."
    6079msgstr ""
    6180
    62 #: bang-invites.php:814
     81#: bang-invites.php:843
    6382msgid "Please use a password of at least 8 characters."
    6483msgstr ""
    6584
    66 #: bang-invites.php:815
     85#: bang-invites.php:844
    6786msgid "The two passwords do not match."
    6887msgstr ""
    6988
    70 #: bang-invites.php:816
     89#: bang-invites.php:845
    7190msgid "An account for this email already exists."
    7291msgstr ""
    7392
    74 #: bang-invites.php:869 bang-invites.php:1008
     93#: bang-invites.php:898
     94#: bang-invites.php:1056
    7595msgid "You are already registered and logged in."
    7696msgstr ""
    7797
    78 #: bang-invites.php:870 bang-invites.php:1009
     98#: bang-invites.php:899
     99#: bang-invites.php:1057
    79100msgid "Go to your client area"
    80101msgstr ""
    81102
    82 #: bang-invites.php:886
     103#: bang-invites.php:915
    83104msgid "You have already signed up - an account already exists for this email address. Please log in instead."
    84105msgstr ""
    85106
    86 #: bang-invites.php:887 bang-invites.php:905 bang-invites.php:1024
    87 #: bang-invites.php:1117
     107#: bang-invites.php:916
     108#: bang-invites.php:934
     109#: bang-invites.php:1072
     110#: bang-invites.php:1165
    88111msgid "Log in"
    89112msgstr ""
    90113
    91 #: bang-invites.php:904 bang-invites.php:1023
     114#: bang-invites.php:933
     115#: bang-invites.php:1071
    92116msgid "You have already signed up - this invitation has been used. Please log in to your account instead."
    93117msgstr ""
    94118
    95 #: bang-invites.php:911 bang-invites.php:1030
     119#: bang-invites.php:940
     120#: bang-invites.php:1078
    96121msgid "This invitation link is invalid or has expired. Please ask for a new one."
    97122msgstr ""
    98123
    99 #: bang-invites.php:943
     124#: bang-invites.php:972
    100125msgid "First name"
    101126msgstr ""
    102127
    103 #: bang-invites.php:947
     128#: bang-invites.php:976
    104129msgid "Last name"
    105130msgstr ""
    106131
    107 #: bang-invites.php:952 bang-invites.php:1607 bang-invites.php:1637
     132#: bang-invites.php:981
     133#: bang-invites.php:1655
     134#: bang-invites.php:1685
    108135msgid "Email"
    109136msgstr ""
    110137
    111 #: bang-invites.php:956
     138#: bang-invites.php:985
    112139msgid "Password"
    113140msgstr ""
    114141
    115 #: bang-invites.php:960
     142#: bang-invites.php:989
    116143msgid "Confirm password"
    117144msgstr ""
    118145
    119146#. translators: %s: username
    120 #: bang-invites.php:1164
    121 #, php-format
     147#: bang-invites.php:1212
    122148msgid "New registration: %s"
    123149msgstr ""
    124150
    125151#. translators: 1: username 2: email
    126 #: bang-invites.php:1166
    127 #, php-format
     152#: bang-invites.php:1214
    128153msgid ""
    129154"A new user has registered.\n"
    … …  
    133158msgstr ""
    134159
    135 #: bang-invites.php:1189 bang-invites.php:1190 bang-invites.php:1237
    136 #: bang-invites.php:1246 bang-invites.php:1456 bang-invites.php:1458
     160#: bang-invites.php:1237
     161#: bang-invites.php:1238
     162#: bang-invites.php:1285
     163#: bang-invites.php:1294
     164#: bang-invites.php:1504
     165#: bang-invites.php:1506
    137166msgid "Bang! Invites"
    138167msgstr ""
    139168
    140 #: bang-invites.php:1248 bang-invites.php:1565
     169#: bang-invites.php:1296
     170#: bang-invites.php:1613
    141171msgid "Send an invitation"
    142172msgstr ""
    143173
    144174#. translators: %d: number pending
    145 #: bang-invites.php:1252
    146 #, php-format
     175#: bang-invites.php:1300
    147176msgid "Tracking (%d pending)"
    148177msgstr ""
    149178
    150 #: bang-invites.php:1255 bang-invites.php:1269
     179#: bang-invites.php:1303
     180#: bang-invites.php:1317
    151181msgid "Settings"
    152182msgstr ""
    153183
    154 #: bang-invites.php:1265
     184#: bang-invites.php:1313
    155185msgid "Invite"
    156186msgstr ""
    157187
    158 #: bang-invites.php:1266
     188#: bang-invites.php:1314
    159189msgid "Tracking"
    160190msgstr ""
    161191
    162 #: bang-invites.php:1267
     192#: bang-invites.php:1315
    163193msgid "Invite email"
    164194msgstr ""
    165195
    166 #: bang-invites.php:1268
     196#: bang-invites.php:1316
    167197msgid "Welcome email"
    168198msgstr ""
    169199
    170200#. translators: %d: count
    171 #: bang-invites.php:1294
    172 #, php-format
     201#: bang-invites.php:1342
    173202msgid "%d invitation sent."
    174203msgid_plural "%d invitations sent."
    … …  
    177206
    178207#. translators: %s: addresses
    179 #: bang-invites.php:1298
    180 #, php-format
     208#: bang-invites.php:1346
    181209msgid "These invitations were created but the email could not be sent - check your site email / SMTP settings, then use \"Resend\" or \"Copy link\" on the Tracking tab: %s"
    182210msgstr ""
    183211
    184212#. translators: %s: addresses
    185 #: bang-invites.php:1302
    186 #, php-format
     213#: bang-invites.php:1350
    187214msgid "Already have an account, so not invited: %s"
    188215msgstr ""
    189216
    190217#. translators: %s: addresses
    191 #: bang-invites.php:1306
    192 #, php-format
     218#: bang-invites.php:1354
    193219msgid "Not a valid email address: %s"
    194220msgstr ""
    195221
    196 #: bang-invites.php:1397
     222#: bang-invites.php:1445
    197223msgid "Invitation deleted."
    198224msgstr ""
    199225
    200226#. translators: %s: recipient email address
    201 #: bang-invites.php:1404
    202 #, php-format
     227#: bang-invites.php:1452
    203228msgid "Invitation resent to %s."
    204229msgstr ""
    205230
    206 #: bang-invites.php:1412
     231#: bang-invites.php:1460
    207232msgid "That invitation has already been accepted, so a new link was not generated. Send a fresh invitation instead."
    208233msgstr ""
    209234
    210235#. translators: %s: email
    211 #: bang-invites.php:1426
    212 #, php-format
     236#: bang-invites.php:1474
    213237msgid "New link generated for %s. Use Copy link to grab it."
    214238msgstr ""
    215239
    216 #: bang-invites.php:1442
     240#: bang-invites.php:1490
    217241msgid "Selected invitations deleted."
    218242msgstr ""
    219243
    220 #: bang-invites.php:1462
     244#: bang-invites.php:1510
    221245msgid "Site"
    222246msgstr ""
    223247
    224 #: bang-invites.php:1468
     248#: bang-invites.php:1516
    225249msgid "Documentation"
    226250msgstr ""
    227251
    228 #: bang-invites.php:1469
     252#: bang-invites.php:1517
    229253msgid "Docs"
    230254msgstr ""
    231255
    232 #: bang-invites.php:1475
     256#: bang-invites.php:1523
    233257msgid "Sections"
    234258msgstr ""
    235259
    236 #: bang-invites.php:1493
     260#: bang-invites.php:1541
    237261msgid "Saved"
    238262msgstr ""
    239263
    240 #: bang-invites.php:1503
     264#: bang-invites.php:1551
    241265msgid "Sections on this page"
    242266msgstr ""
    243267
    244 #: bang-invites.php:1504
     268#: bang-invites.php:1552
    245269msgid "On this page"
    246270msgstr ""
    247271
    248 #: bang-invites.php:1532
     272#: bang-invites.php:1580
    249273msgid "Click to copy"
    250274msgstr ""
    251275
    252 #: bang-invites.php:1547
     276#: bang-invites.php:1595
    253277msgid "One thing to finish setup"
    254278msgstr ""
    255279
    256280#. translators: %s: settings url
    257 #: bang-invites.php:1551
    258 #, php-format
     281#: bang-invites.php:1599
    259282msgid "Choose the page that holds your registration form under <a href=\"%s\">Settings</a>. Invite links point there."
    260283msgstr ""
    261284
    262285#. translators: %s: shortcode chip
    263 #: bang-invites.php:1557
    264 #, php-format
     286#: bang-invites.php:1605
    265287msgid "Your chosen page does not contain the %s shortcode yet. Add it so invited people see the form."
    266288msgstr ""
    267289
    268 #: bang-invites.php:1566
     290#: bang-invites.php:1614
    269291msgid "Enter one or more email addresses. Each person gets a private link that expires, lets them set a password, and gives them the role you choose."
    270292msgstr ""
    271293
    272 #: bang-invites.php:1569
     294#: bang-invites.php:1617
    273295msgid "Email address(es)"
    274296msgstr ""
    275297
    276 #: bang-invites.php:1570
     298#: bang-invites.php:1618
    277299msgid "Separate several with commas or new lines"
    278300msgstr ""
    279301
    280 #: bang-invites.php:1571
     302#: bang-invites.php:1619
    281303msgid "Role they will get"
    282304msgstr ""
    283305
    284 #: bang-invites.php:1577
     306#: bang-invites.php:1625
    285307msgid "For security, invitations can only assign low-privilege roles (no content editing or site management). To give someone a higher role, invite them here and then promote their account under Users once they have registered."
    286308msgstr ""
    287309
    288 #: bang-invites.php:1579
     310#: bang-invites.php:1627
    289311msgid "Send invitation"
    290312msgstr ""
    291313
    292 #: bang-invites.php:1592
     314#: bang-invites.php:1640
    293315msgid "Invitations"
    294316msgstr ""
    295317
    296 #: bang-invites.php:1597
     318#: bang-invites.php:1645
    297319msgid "Bulk actions"
    298320msgstr ""
    299321
    300 #: bang-invites.php:1598 bang-invites.php:1657
     322#: bang-invites.php:1646
     323#: bang-invites.php:1705
    301324msgid "Delete"
    302325msgstr ""
    303326
    304 #: bang-invites.php:1600
     327#: bang-invites.php:1648
    305328msgid "Apply"
    306329msgstr ""
    307330
    308 #: bang-invites.php:1608 bang-invites.php:1638
     331#: bang-invites.php:1656
     332#: bang-invites.php:1686
    309333msgid "Role"
    310334msgstr ""
    311335
    312 #: bang-invites.php:1609 bang-invites.php:1647
     336#: bang-invites.php:1657
     337#: bang-invites.php:1695
    313338msgid "Status"
    314339msgstr ""
    315340
    316 #: bang-invites.php:1610 bang-invites.php:1648
     341#: bang-invites.php:1658
     342#: bang-invites.php:1696
    317343msgid "Expires"
    318344msgstr ""
    319345
    320 #: bang-invites.php:1611 bang-invites.php:1649
     346#: bang-invites.php:1659
     347#: bang-invites.php:1697
    321348msgid "Actions"
    322349msgstr ""
    323350
    324 #: bang-invites.php:1616
     351#: bang-invites.php:1664
    325352msgid "No invitations yet."
    326353msgstr ""
    327354
    328 #: bang-invites.php:1621
     355#: bang-invites.php:1669
    329356msgid "Accepted"
    330357msgstr ""
    331358
    332 #: bang-invites.php:1623
     359#: bang-invites.php:1671
    333360msgid "Expired"
    334361msgstr ""
    335362
    336 #: bang-invites.php:1625
     363#: bang-invites.php:1673
    337364msgid "Pending"
    338365msgstr ""
    339366
    340 #: bang-invites.php:1652
     367#: bang-invites.php:1700
    341368msgid "Copy link"
    342369msgstr ""
    343370
    344 #: bang-invites.php:1654
     371#: bang-invites.php:1702
    345372msgid "New link"
    346373msgstr ""
    347374
    348 #: bang-invites.php:1655
     375#: bang-invites.php:1703
    349376msgid "Resend"
    350377msgstr ""
    351378
    352 #: bang-invites.php:1657
     379#: bang-invites.php:1705
    353380msgid "Delete this invitation?"
    354381msgstr ""
    355382
    356 #: bang-invites.php:1675
     383#: bang-invites.php:1723
    357384msgid "The invitation email"
    358385msgstr ""
    359386
    360 #: bang-invites.php:1676
     387#: bang-invites.php:1724
    361388msgid "Sent when you invite someone."
    362389msgstr ""
    363390
    364 #: bang-invites.php:1676
     391#: bang-invites.php:1724
    365392msgid "This is the email that carries the invitation link. Use the registration tokens below; they are swapped in when the email is sent."
    366393msgstr ""
    367394
    368 #: bang-invites.php:1678 bang-invites.php:1783
     395#: bang-invites.php:1726
     396#: bang-invites.php:1831
    369397msgid "Subject"
    370398msgstr ""
    371399
    372 #: bang-invites.php:1681 bang-invites.php:1786
     400#: bang-invites.php:1729
     401#: bang-invites.php:1834
    373402msgid "Message"
    374403msgstr ""
    375404
    376 #: bang-invites.php:1691 bang-invites.php:1796
     405#: bang-invites.php:1739
     406#: bang-invites.php:1844
    377407msgid "Click a token to insert it into the message:"
    378408msgstr ""
    379409
    380 #: bang-invites.php:1693
     410#: bang-invites.php:1741
    381411msgid "the button"
    382412msgstr ""
    383413
    384 #: bang-invites.php:1694
     414#: bang-invites.php:1742
    385415msgid "plain link"
    386416msgstr ""
    387417
    388 #: bang-invites.php:1695
     418#: bang-invites.php:1743
    389419msgid "expiry date"
    390420msgstr ""
    391421
    392 #: bang-invites.php:1696
     422#: bang-invites.php:1744
    393423msgid "invite code"
    394424msgstr ""
    395425
    396 #: bang-invites.php:1697 bang-invites.php:1804
     426#: bang-invites.php:1745
     427#: bang-invites.php:1852
    397428msgid "site name"
    398429msgstr ""
    399430
    400 #: bang-invites.php:1698
     431#: bang-invites.php:1746
    401432msgid "their role"
    402433msgstr ""
    403434
    404 #: bang-invites.php:1701
     435#: bang-invites.php:1749
    405436msgid "Button styling"
    406437msgstr ""
    407438
    408 #: bang-invites.php:1704 bang-invites.php:1915
     439#: bang-invites.php:1752
     440#: bang-invites.php:1960
    409441msgid "Button label"
    410442msgstr ""
    411443
    412 #: bang-invites.php:1708 bang-invites.php:1928
     444#: bang-invites.php:1756
     445#: bang-invites.php:1973
    413446msgid "Corner radius (px)"
    414447msgstr ""
    415448
    416 #: bang-invites.php:1715 bang-invites.php:1898
     449#: bang-invites.php:1763
     450#: bang-invites.php:1943
    417451msgid "Button colour"
    418452msgstr ""
    419453
    420 #: bang-invites.php:1722 bang-invites.php:1905
     454#: bang-invites.php:1770
     455#: bang-invites.php:1950
    421456msgid "Button text"
    422457msgstr ""
    423458
    424 #: bang-invites.php:1732
     459#: bang-invites.php:1780
    425460msgid "Sender"
    426461msgstr ""
    427462
    428 #: bang-invites.php:1735
     463#: bang-invites.php:1783
    429464msgid "From name"
    430465msgstr ""
    431466
    432 #: bang-invites.php:1739
     467#: bang-invites.php:1787
    433468msgid "From email"
    434469msgstr ""
    435470
    436 #: bang-invites.php:1741
     471#: bang-invites.php:1789
    437472msgid "Leave blank to use the WordPress default."
    438473msgstr ""
    439474
    440 #: bang-invites.php:1744
     475#: bang-invites.php:1792
    441476msgid "Reply-to"
    442477msgstr ""
    443478
    444 #: bang-invites.php:1751 bang-invites.php:1851 bang-invites.php:2039
     479#: bang-invites.php:1799
     480#: bang-invites.php:1899
     481#: bang-invites.php:2082
    445482msgid "Unsaved changes"
    446483msgstr ""
    447484
    448 #: bang-invites.php:1753 bang-invites.php:1853 bang-invites.php:2041
     485#: bang-invites.php:1801
     486#: bang-invites.php:1901
     487#: bang-invites.php:2084
    449488msgid "Discard"
    450489msgstr ""
    451490
    452 #: bang-invites.php:1754
     491#: bang-invites.php:1802
    453492msgid "Save invite email"
    454493msgstr ""
    455494
    456 #: bang-invites.php:1766
     495#: bang-invites.php:1814
    457496msgid "After they register"
    458497msgstr ""
    459498
    460 #: bang-invites.php:1767
     499#: bang-invites.php:1815
    461500msgid "A different, second email - sent automatically once someone finishes registering."
    462501msgstr ""
    463502
    464 #: bang-invites.php:1767
     503#: bang-invites.php:1815
    465504msgid "By now they have an account, so this welcomes them and points them to log in. It is not the invitation email; the invite link and expiry live on the Invite email tab."
    466505msgstr ""
    467506
    468 #: bang-invites.php:1771
     507#: bang-invites.php:1819
    469508msgid "Send a welcome email"
    470509msgstr ""
    471510
    472 #: bang-invites.php:1772
     511#: bang-invites.php:1820
    473512msgid "Emailed to each person the moment their account is created."
    474513msgstr ""
    475514
    476 #: bang-invites.php:1779
     515#: bang-invites.php:1827
    477516msgid "You're using another registration plugin: people may also receive that plugin's own confirmation email. Turn this welcome off here if the two double up."
    478517msgstr ""
    479518
    480 #: bang-invites.php:1798
     519#: bang-invites.php:1846
    481520msgid "their name"
    482521msgstr ""
    483522
    484 #: bang-invites.php:1799
     523#: bang-invites.php:1847
    485524msgid "first name"
    486525msgstr ""
    487526
    488 #: bang-invites.php:1800
     527#: bang-invites.php:1848
    489528msgid "last name"
    490529msgstr ""
    491530
    492 #: bang-invites.php:1801
     531#: bang-invites.php:1849
    493532msgid "username"
    494533msgstr ""
    495534
    496 #: bang-invites.php:1802
     535#: bang-invites.php:1850
    497536msgid "login button"
    498537msgstr ""
    499538
    500 #: bang-invites.php:1803
     539#: bang-invites.php:1851
    501540msgid "login link"
    502541msgstr ""
    503542
    504 #: bang-invites.php:1815
     543#: bang-invites.php:1863
    505544msgid "Notify your team"
    506545msgstr ""
    507546
    508 #: bang-invites.php:1816
     547#: bang-invites.php:1864
    509548msgid "A short plain-text alert to the people who run the site, each time someone finishes registering. This is separate from the welcome email above - either one can be on without the other."
    510549msgstr ""
    511550
    512 #: bang-invites.php:1820
     551#: bang-invites.php:1868
    513552msgid "Tell the team about new registrations"
    514553msgstr ""
    515554
    516 #: bang-invites.php:1821
     555#: bang-invites.php:1869
    517556msgid "Sent to every address below. With no addresses saved, nothing is sent."
    518557msgstr ""
    519558
    520 #: bang-invites.php:1827
     559#: bang-invites.php:1875
    521560msgid "Send to"
    522561msgstr ""
    523562
    524 #: bang-invites.php:1832
     563#: bang-invites.php:1880
    525564msgid "Remove this address"
    526565msgstr ""
    527566
    528 #: bang-invites.php:1836
     567#: bang-invites.php:1884
    529568msgid "Add another address"
    530569msgstr ""
    531570
    532571#. translators: %s: comma-separated list of the addresses that are not valid
    533 #: bang-invites.php:1842
    534 #, php-format
     572#: bang-invites.php:1890
    535573msgid "Not a valid email address, so nothing is sent to it: %s"
    536574msgstr ""
    537575
    538 #: bang-invites.php:1847
     576#: bang-invites.php:1895
    539577msgid "Anyone who should hear about a new registration - they do not need an account on the site."
    540578msgstr ""
    541579
    542 #: bang-invites.php:1854
     580#: bang-invites.php:1902
    543581msgid "Save welcome email"
    544582msgstr ""
    545583
    546 #: bang-invites.php:1868
    547 msgid "Handled by your registration plugin."
    548 msgstr ""
    549 
    550 #: bang-invites.php:1874
     584#: bang-invites.php:1920
    551585msgid "Registration method"
    552586msgstr ""
    553587
    554 #: bang-invites.php:1877
     588#: bang-invites.php:1923
    555589msgid "Built-in form"
    556590msgstr ""
    557591
    558 #: bang-invites.php:1878
     592#: bang-invites.php:1924
    559593msgid "The plugin's own form on your registration page handles everything."
    560594msgstr ""
    561595
    562 #: bang-invites.php:1882
     596#: bang-invites.php:1928
    563597msgid "I'm using another registration plugin"
    564598msgstr ""
    565599
    566 #: bang-invites.php:1883
     600#: bang-invites.php:1929
    567601msgid "Place that plugin's form on your registration page instead of the shortcode. Invite links, expiry and tracking stay exactly the same; the invite is marked accepted the moment the account is created, and the link validation happens on the page itself."
    568602msgstr ""
    569603
    570 #: bang-invites.php:1886
     604#: bang-invites.php:1932
    571605msgid "Acceptance matches by the invited email address. Someone who registers with a different email than they were invited on will not be matched. Most form plugins can prefill the email field from the link's \"email\" URL parameter - set that up in your form plugin so people don't retype it."
    572606msgstr ""
    573607
    574 #: bang-invites.php:1891
     608#: bang-invites.php:1937
    575609msgid "Registration form"
    576610msgstr ""
    577611
    578 #: bang-invites.php:1894
     612#: bang-invites.php:1938
     613msgid "Not used - your registration plugin's own form and styling apply"
     614msgstr ""
     615
     616#: bang-invites.php:1939
    579617msgid "How the built-in form looks - the one invited people use to set a password. The shortcode to place it lives under Pages above."
    580618msgstr ""
    581619
    582 #: bang-invites.php:1919
     620#: bang-invites.php:1964
    583621msgid "Button position"
    584622msgstr ""
    585623
    586 #: bang-invites.php:1921
     624#: bang-invites.php:1966
    587625msgid "Left"
    588626msgstr ""
    589627
    590 #: bang-invites.php:1922
     628#: bang-invites.php:1967
    591629msgid "Centre"
    592630msgstr ""
    593631
    594 #: bang-invites.php:1923
     632#: bang-invites.php:1968
    595633msgid "Right"
    596634msgstr ""
    597635
    598 #: bang-invites.php:1924
     636#: bang-invites.php:1969
    599637msgid "Full width"
    600638msgstr ""
    601639
    602 #: bang-invites.php:1936
     640#: bang-invites.php:1981
    603641msgid "How invitations work"
    604642msgstr ""
    605643
    606 #: bang-invites.php:1939
     644#: bang-invites.php:1984
    607645msgid "Default role for new users"
    608646msgstr ""
    609647
    610 #: bang-invites.php:1945
     648#: bang-invites.php:1990
    611649msgid "Only low-privilege roles are offered. Promote an account under Users after registration if it needs more."
    612650msgstr ""
    613651
    614 #: bang-invites.php:1948
     652#: bang-invites.php:1993
    615653msgid "Invite expires after (days)"
    616654msgstr ""
    617655
    618 #: bang-invites.php:1955
     656#: bang-invites.php:2000
    619657msgid "Pages"
    620658msgstr ""
    621659
    622 #: bang-invites.php:1956
     660#: bang-invites.php:2001
    623661msgid "Registration page (holds the form)"
    624662msgstr ""
    625663
    626 #: bang-invites.php:1962
     664#: bang-invites.php:2007
    627665msgid "- Select a page -"
    628666msgstr ""
    629667
    630 #: bang-invites.php:1969
     668#: bang-invites.php:2014
    631669msgid "Place your registration plugin's form on this page. Invite links send people here."
    632670msgstr ""
    633671
    634672#. translators: %s: shortcode chip
    635 #: bang-invites.php:1973
    636 #, php-format
     673#: bang-invites.php:2018
    637674msgid "Put %s on this page (click it to copy). Invite links send people here."
    638675msgstr ""
    639676
    640 #: bang-invites.php:1978
     677#: bang-invites.php:2023
    641678msgid "This page must never be cached - a cached copy can show the form on a link that has already been used. The plugin tells caches not to store it, which nearly all respect; if your host or caching plugin has an exclusion list, add this page to it as well."
    642679msgstr ""
    643680
    644 #: bang-invites.php:1982
     681#: bang-invites.php:2027
    645682msgid "Protect this page - invitation only"
    646683msgstr ""
    647684
    648 #: bang-invites.php:1983
     685#: bang-invites.php:2028
    649686msgid "Visitors without a valid invitation see a notice instead of the page. You and other editors always see it."
    650687msgstr ""
    651688
    652 #: bang-invites.php:1989
     689#: bang-invites.php:2034
    653690msgid "Invitation-only notice"
    654691msgstr ""
    655692
    656 #: bang-invites.php:1991
     693#: bang-invites.php:2036
    657694msgid "Shown in place of the page to anyone who opens it without an invitation link."
    658695msgstr ""
    659696
    660 #: bang-invites.php:1996
     697#: bang-invites.php:2039
     698msgid "Not used - set this in your registration plugin"
     699msgstr ""
     700
     701#: bang-invites.php:2040
    661702msgid "Where to send people the first time, right after they register"
    662703msgstr ""
    663704
    664 #: bang-invites.php:1998
     705#: bang-invites.php:2042
    665706msgid "The WordPress dashboard"
    666707msgstr ""
    667708
    668 #: bang-invites.php:2002 bang-invites.php:2017
     709#: bang-invites.php:2046
     710#: bang-invites.php:2061
    669711msgid "A custom URL (below)"
    670712msgstr ""
    671713
    672 #: bang-invites.php:2005
     714#: bang-invites.php:2049
    673715msgid "Custom URL"
    674716msgstr ""
    675717
    676 #: bang-invites.php:2007
     718#: bang-invites.php:2051
    677719msgid "Used only when \"A custom URL\" is selected above. This fires once, right after someone registers - it is not a login redirect. Where clients go each time they log in later is handled by your theme or membership setup, not this plugin."
    678720msgstr ""
    679721
    680 #: bang-invites.php:2011
     722#: bang-invites.php:2055
    681723msgid "Where clients log in"
    682724msgstr ""
    683725
    684 #: bang-invites.php:2013
     726#: bang-invites.php:2057
    685727msgid "The standard WordPress login page"
    686728msgstr ""
    687729
    688 #: bang-invites.php:2020
     730#: bang-invites.php:2064
    689731msgid "Custom login URL"
    690732msgstr ""
    691733
    692 #: bang-invites.php:2022
     734#: bang-invites.php:2066
    693735msgid "The welcome email's Log in button and {login_url} link point here. Choose the standard WordPress login, a page on this site, or a custom URL. Used only when \"A custom URL\" is selected above for the URL field."
    694736msgstr ""
    695737
    696 #: bang-invites.php:2027
     738#: bang-invites.php:2071
    697739msgid "Behaviour"
    698740msgstr ""
    699741
    700 #: bang-invites.php:2030
     742#: bang-invites.php:2073
     743msgid "Not used - your registration plugin decides this"
     744msgstr ""
     745
     746#: bang-invites.php:2074
    701747msgid "Log people in automatically once they finish registering"
    702748msgstr ""
    703749
    704 #: bang-invites.php:2033
     750#: bang-invites.php:2076
    705751msgid "Silence WordPress's own account emails (send only mine)"
    706752msgstr ""
    707753
    708 #: bang-invites.php:2034
     754#: bang-invites.php:2077
    709755msgid "Show a shortcut in the top WordPress toolbar"
    710756msgstr ""
    711757
    712 #: bang-invites.php:2042
     758#: bang-invites.php:2085
    713759msgid "Save settings"
    714760msgstr ""
    715761
    716 #: bang-invites.php:2292
     762#: bang-invites.php:2339
    717763msgid "Copied"
    718764msgstr ""
  • bang-invites/trunk/readme.txt

    r3647283 r3748764  
    1 === Bang! Invites - Invite People to Register by Email ===
     1=== Bang! Invites - Invite Users by Email ===
    22Contributors: bangplugins
    33Tags: invite, registration, users, email invitation, membership
    44Requires at least: 6.0
    5 Tested up to: 7.0
     5Tested up to: 7.1
    66Requires PHP: 7.4
    77Stable tag: 1.0.38
    … …  
    104104== Changelog ==
    105105
     106= 1.0.40 =
     107* Fixed: on sites using another registration plugin, the person who had just registered was shown "You have already signed up - this invitation has been used" instead of that plugin's success message or redirect. The page guard now recognises the person finishing their own registration and leaves the page to the registration plugin. Anyone opening a used link afterwards still sees the notice.
     108* When another registration plugin is in use, the settings that only apply to the built-in form now sit in a clearly labelled box saying they are not used and where to set them instead, and they are locked. Previously they were greyed out with a faint note but could still be clicked and changed, which suggested they did something. Their saved values are kept, ready for if you switch back.
     109* Intro text at the top of each settings card now runs the full width of the card instead of stopping two thirds of the way across.
     110* Plugin renamed to "Bang! Invites - Invite Users by Email". Nothing else about the plugin, its settings or its address changes.
     111* Tested with WordPress 7.1.
     112
    106113= 1.0.39 =
    107114* Fixed: switching the welcome email off also stopped the team notification. Both emails were sent by one piece of code sitting behind the welcome email's on/off setting, so a site that turned the welcome off - as the help text suggests doing when another registration plugin sends its own - quietly stopped being told when anybody registered, with the notification addresses still saved and looking live. The two are now independent and each answers only to its own setting. If you have notification addresses saved and the welcome email switched off, those alerts will start arriving again after you update.
Note: See TracChangeset for help on using the changeset viewer.