Changeset 3748764
- Timestamp:
- 10/15/2026 02:38:38 PM (10 days ago)
- Location:
- bang-invites/trunk
- Files:
-
- 4 edited
-
bang-invites.php (modified) (14 diffs)
-
changelog.txt (modified) (1 diff)
-
languages/bang-invites.pot (modified) (7 diffs)
-
readme.txt (modified) (2 diffs)
Legend:
- Unmodified
- Added
- Removed
-
bang-invites/trunk/bang-invites.php
r3647283 r3748764 1 1 <?php 2 2 /** 3 * Plugin Name: Bang! Invites - Invite People to Registerby Email3 * Plugin Name: Bang! Invites - Invite Users by Email 4 4 * 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. 395 * Version: 1.0.40 6 6 * Requires at least: 6.0 7 7 * Requires PHP: 7.4 … … 30 30 } 31 31 32 if ( ! defined( 'BANGINVITES_VERSION' ) ) { define( 'BANGINVITES_VERSION', '1.0. 39' ); }32 if ( ! defined( 'BANGINVITES_VERSION' ) ) { define( 'BANGINVITES_VERSION', '1.0.40' ); } 33 33 if ( ! defined( 'BANGINVITES_OPTION' ) ) { define( 'BANGINVITES_OPTION', 'banginvites' ); } 34 34 if ( ! defined( 'BANGINVITES_RECORDS' ) ) { define( 'BANGINVITES_RECORDS', 'banginvites_records' ); } … … 630 630 $u->set_role( banginvites_safe_role( $match['role'] ) ); 631 631 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 632 638 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 */ 647 function banginvites_finishing_registration( $code ) { 648 return '' !== $code 649 && isset( $GLOBALS['banginvites_just_accepted'] ) 650 && $GLOBALS['banginvites_just_accepted'] === $code; 633 651 } 634 652 … … 973 991 974 992 /** 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 */ 999 function 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 /** 975 1008 * Registration-page guard. When protection is on, a visitor who opens the 976 1009 * setup page without an invitation sees a notice in place of the page content. … … 1003 1036 $g_email = sanitize_email( wp_unslash( $_GET['email'] ) ); 1004 1037 $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; } 1005 1042 1006 1043 if ( is_user_logged_in() ) { … … 1339 1376 // from an older version cannot wipe the saved addresses. Entries 1340 1377 // 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' ) : ''; 1342 1379 $rows = is_array( $rows ) ? $rows : banginvites_notify_rows( $rows ); 1343 1380 $rows = array_filter( array_map( 'sanitize_text_field', (array) $rows ) ); … … 1865 1902 // Built-in-form settings are greyed (not hidden) in external mode. Inputs 1866 1903 // 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>';1869 1904 ?> 1870 1905 <form method="post" class="banginvites-tabform" data-triggers="banginvites_save_settings"> … … 1890 1925 <div class="banginvites-card" id="banginvites-sec-reg-form"> 1891 1926 <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. ?> 1894 1928 <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> 1895 1929 … … 1930 1964 </div> 1931 1965 </div> 1932 </div> 1966 </div><?php echo $ext ? '</div>' : ''; // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped -- fixed markup. ?> 1933 1967 </div> 1934 1968 … … 1992 2026 1993 2027 <?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. ?> 1996 2029 <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> 1997 2030 <select id="bi-set-redir" name="redirect" class="banginvites-input"> … … 2006 2039 <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/"> 2007 2040 <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. ?> 2009 2042 2010 2043 <?php $login_is_url = ( is_string( $s['login_url'] ) && preg_match( '#^https?://#i', $s['login_url'] ) ); ?> … … 2027 2060 <div class="banginvites-card-head"><h2><?php esc_html_e( 'Behaviour', 'bang-invites' ); ?></h2></div> 2028 2061 <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. ?> 2030 2063 <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. ?> 2033 2065 <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> 2034 2066 <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> … … 2120 2152 .banginvites-admin .banginvites-sub{color:#6b7280;font-size:12.5px;line-height:1.6;margin:0 0 18px;max-width:78ch;} 2121 2153 .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;} 2123 2155 .banginvites-admin .banginvites-main .banginvites-card textarea.banginvites-input{max-width:none;} 2124 2156 .banginvites-admin .banginvites-hint code{background:#f4f4f8;border-radius:5px;padding:1px 6px;font-size:11.5px;color:#3a3d5c;} … … 2171 2203 } 2172 2204 /* 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;} 2173 2209 .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;} 2174 2210 .banginvites-admin .banginvites-savedbar .banginvites-floatsave-state{color:#fff;} -
bang-invites/trunk/changelog.txt
r3647283 r3748764 4 4 The readme keeps only recent versions, as the directory truncates long histories. 5 5 This 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. 6 13 7 14 = 1.0.39 = -
bang-invites/trunk/languages/bang-invites.pot
r3647283 r3748764 1 1 # 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. 3 3 msgid "" 4 4 msgstr "" 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" 6 6 "Report-Msgid-Bugs-To: https://wordpress.org/support/plugin/bang-invites\n" 7 7 "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n" … … 10 10 "Content-Type: text/plain; charset=UTF-8\n" 11 11 "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" 13 13 "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" 16 15 "X-Domain: bang-invites\n" 16 17 #. Plugin Name of the plugin 18 #: bang-invites.php 19 msgid "Bang! Invites - Invite Users by Email" 20 msgstr "" 21 22 #. Description of the plugin 23 #: bang-invites.php 24 msgid "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." 25 msgstr "" 26 27 #. Author of the plugin 28 #: bang-invites.php 29 msgid "Bang! Plugins" 30 msgstr "" 31 32 #. Author URI of the plugin 33 #: bang-invites.php 34 msgid "https://www.bangplugins.com" 35 msgstr "" 17 36 18 37 #. translators: %s: site name 19 38 #: bang-invites.php:150 20 #, php-format21 39 msgid "You are invited to join %s" 22 40 msgstr "" … … 24 42 #. translators: %s: site name 25 43 #: bang-invites.php:155 26 #, php-format27 44 msgid "Welcome to %s" 28 45 msgstr "" … … 32 49 msgstr "" 33 50 34 #: bang-invites.php:162 bang-invites.php:935 51 #: bang-invites.php:162 52 #: bang-invites.php:964 35 53 msgid "Complete Registration" 36 54 msgstr "" 37 55 38 #: bang-invites.php:165 bang-invites.php:456 56 #: bang-invites.php:165 57 #: bang-invites.php:456 39 58 msgid "Complete Your Registration" 40 59 msgstr "" … … 52 71 msgstr "" 53 72 54 #: bang-invites.php:8 1273 #: bang-invites.php:841 55 74 msgid "Please enter your first name." 56 75 msgstr "" 57 76 58 #: bang-invites.php:8 1377 #: bang-invites.php:842 59 78 msgid "Please enter your last name." 60 79 msgstr "" 61 80 62 #: bang-invites.php:8 1481 #: bang-invites.php:843 63 82 msgid "Please use a password of at least 8 characters." 64 83 msgstr "" 65 84 66 #: bang-invites.php:8 1585 #: bang-invites.php:844 67 86 msgid "The two passwords do not match." 68 87 msgstr "" 69 88 70 #: bang-invites.php:8 1689 #: bang-invites.php:845 71 90 msgid "An account for this email already exists." 72 91 msgstr "" 73 92 74 #: bang-invites.php:869 bang-invites.php:1008 93 #: bang-invites.php:898 94 #: bang-invites.php:1056 75 95 msgid "You are already registered and logged in." 76 96 msgstr "" 77 97 78 #: bang-invites.php:870 bang-invites.php:1009 98 #: bang-invites.php:899 99 #: bang-invites.php:1057 79 100 msgid "Go to your client area" 80 101 msgstr "" 81 102 82 #: bang-invites.php: 886103 #: bang-invites.php:915 83 104 msgid "You have already signed up - an account already exists for this email address. Please log in instead." 84 105 msgstr "" 85 106 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 88 111 msgid "Log in" 89 112 msgstr "" 90 113 91 #: bang-invites.php:904 bang-invites.php:1023 114 #: bang-invites.php:933 115 #: bang-invites.php:1071 92 116 msgid "You have already signed up - this invitation has been used. Please log in to your account instead." 93 117 msgstr "" 94 118 95 #: bang-invites.php:911 bang-invites.php:1030 119 #: bang-invites.php:940 120 #: bang-invites.php:1078 96 121 msgid "This invitation link is invalid or has expired. Please ask for a new one." 97 122 msgstr "" 98 123 99 #: bang-invites.php:9 43124 #: bang-invites.php:972 100 125 msgid "First name" 101 126 msgstr "" 102 127 103 #: bang-invites.php:9 47128 #: bang-invites.php:976 104 129 msgid "Last name" 105 130 msgstr "" 106 131 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 108 135 msgid "Email" 109 136 msgstr "" 110 137 111 #: bang-invites.php:9 56138 #: bang-invites.php:985 112 139 msgid "Password" 113 140 msgstr "" 114 141 115 #: bang-invites.php:9 60142 #: bang-invites.php:989 116 143 msgid "Confirm password" 117 144 msgstr "" 118 145 119 146 #. translators: %s: username 120 #: bang-invites.php:1164 121 #, php-format 147 #: bang-invites.php:1212 122 148 msgid "New registration: %s" 123 149 msgstr "" 124 150 125 151 #. translators: 1: username 2: email 126 #: bang-invites.php:1166 127 #, php-format 152 #: bang-invites.php:1214 128 153 msgid "" 129 154 "A new user has registered.\n" … … 133 158 msgstr "" 134 159 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 137 166 msgid "Bang! Invites" 138 167 msgstr "" 139 168 140 #: bang-invites.php:1248 bang-invites.php:1565 169 #: bang-invites.php:1296 170 #: bang-invites.php:1613 141 171 msgid "Send an invitation" 142 172 msgstr "" 143 173 144 174 #. translators: %d: number pending 145 #: bang-invites.php:1252 146 #, php-format 175 #: bang-invites.php:1300 147 176 msgid "Tracking (%d pending)" 148 177 msgstr "" 149 178 150 #: bang-invites.php:1255 bang-invites.php:1269 179 #: bang-invites.php:1303 180 #: bang-invites.php:1317 151 181 msgid "Settings" 152 182 msgstr "" 153 183 154 #: bang-invites.php:1 265184 #: bang-invites.php:1313 155 185 msgid "Invite" 156 186 msgstr "" 157 187 158 #: bang-invites.php:1 266188 #: bang-invites.php:1314 159 189 msgid "Tracking" 160 190 msgstr "" 161 191 162 #: bang-invites.php:1 267192 #: bang-invites.php:1315 163 193 msgid "Invite email" 164 194 msgstr "" 165 195 166 #: bang-invites.php:1 268196 #: bang-invites.php:1316 167 197 msgid "Welcome email" 168 198 msgstr "" 169 199 170 200 #. translators: %d: count 171 #: bang-invites.php:1294 172 #, php-format 201 #: bang-invites.php:1342 173 202 msgid "%d invitation sent." 174 203 msgid_plural "%d invitations sent." … … 177 206 178 207 #. translators: %s: addresses 179 #: bang-invites.php:1298 180 #, php-format 208 #: bang-invites.php:1346 181 209 msgid "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" 182 210 msgstr "" 183 211 184 212 #. translators: %s: addresses 185 #: bang-invites.php:1302 186 #, php-format 213 #: bang-invites.php:1350 187 214 msgid "Already have an account, so not invited: %s" 188 215 msgstr "" 189 216 190 217 #. translators: %s: addresses 191 #: bang-invites.php:1306 192 #, php-format 218 #: bang-invites.php:1354 193 219 msgid "Not a valid email address: %s" 194 220 msgstr "" 195 221 196 #: bang-invites.php:1 397222 #: bang-invites.php:1445 197 223 msgid "Invitation deleted." 198 224 msgstr "" 199 225 200 226 #. translators: %s: recipient email address 201 #: bang-invites.php:1404 202 #, php-format 227 #: bang-invites.php:1452 203 228 msgid "Invitation resent to %s." 204 229 msgstr "" 205 230 206 #: bang-invites.php:14 12231 #: bang-invites.php:1460 207 232 msgid "That invitation has already been accepted, so a new link was not generated. Send a fresh invitation instead." 208 233 msgstr "" 209 234 210 235 #. translators: %s: email 211 #: bang-invites.php:1426 212 #, php-format 236 #: bang-invites.php:1474 213 237 msgid "New link generated for %s. Use Copy link to grab it." 214 238 msgstr "" 215 239 216 #: bang-invites.php:14 42240 #: bang-invites.php:1490 217 241 msgid "Selected invitations deleted." 218 242 msgstr "" 219 243 220 #: bang-invites.php:1 462244 #: bang-invites.php:1510 221 245 msgid "Site" 222 246 msgstr "" 223 247 224 #: bang-invites.php:1 468248 #: bang-invites.php:1516 225 249 msgid "Documentation" 226 250 msgstr "" 227 251 228 #: bang-invites.php:1 469252 #: bang-invites.php:1517 229 253 msgid "Docs" 230 254 msgstr "" 231 255 232 #: bang-invites.php:1 475256 #: bang-invites.php:1523 233 257 msgid "Sections" 234 258 msgstr "" 235 259 236 #: bang-invites.php:1 493260 #: bang-invites.php:1541 237 261 msgid "Saved" 238 262 msgstr "" 239 263 240 #: bang-invites.php:15 03264 #: bang-invites.php:1551 241 265 msgid "Sections on this page" 242 266 msgstr "" 243 267 244 #: bang-invites.php:15 04268 #: bang-invites.php:1552 245 269 msgid "On this page" 246 270 msgstr "" 247 271 248 #: bang-invites.php:15 32272 #: bang-invites.php:1580 249 273 msgid "Click to copy" 250 274 msgstr "" 251 275 252 #: bang-invites.php:15 47276 #: bang-invites.php:1595 253 277 msgid "One thing to finish setup" 254 278 msgstr "" 255 279 256 280 #. translators: %s: settings url 257 #: bang-invites.php:1551 258 #, php-format 281 #: bang-invites.php:1599 259 282 msgid "Choose the page that holds your registration form under <a href=\"%s\">Settings</a>. Invite links point there." 260 283 msgstr "" 261 284 262 285 #. translators: %s: shortcode chip 263 #: bang-invites.php:1557 264 #, php-format 286 #: bang-invites.php:1605 265 287 msgid "Your chosen page does not contain the %s shortcode yet. Add it so invited people see the form." 266 288 msgstr "" 267 289 268 #: bang-invites.php:1 566290 #: bang-invites.php:1614 269 291 msgid "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." 270 292 msgstr "" 271 293 272 #: bang-invites.php:1 569294 #: bang-invites.php:1617 273 295 msgid "Email address(es)" 274 296 msgstr "" 275 297 276 #: bang-invites.php:1 570298 #: bang-invites.php:1618 277 299 msgid "Separate several with commas or new lines" 278 300 msgstr "" 279 301 280 #: bang-invites.php:1 571302 #: bang-invites.php:1619 281 303 msgid "Role they will get" 282 304 msgstr "" 283 305 284 #: bang-invites.php:1 577306 #: bang-invites.php:1625 285 307 msgid "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." 286 308 msgstr "" 287 309 288 #: bang-invites.php:1 579310 #: bang-invites.php:1627 289 311 msgid "Send invitation" 290 312 msgstr "" 291 313 292 #: bang-invites.php:1 592314 #: bang-invites.php:1640 293 315 msgid "Invitations" 294 316 msgstr "" 295 317 296 #: bang-invites.php:1 597318 #: bang-invites.php:1645 297 319 msgid "Bulk actions" 298 320 msgstr "" 299 321 300 #: bang-invites.php:1598 bang-invites.php:1657 322 #: bang-invites.php:1646 323 #: bang-invites.php:1705 301 324 msgid "Delete" 302 325 msgstr "" 303 326 304 #: bang-invites.php:16 00327 #: bang-invites.php:1648 305 328 msgid "Apply" 306 329 msgstr "" 307 330 308 #: bang-invites.php:1608 bang-invites.php:1638 331 #: bang-invites.php:1656 332 #: bang-invites.php:1686 309 333 msgid "Role" 310 334 msgstr "" 311 335 312 #: bang-invites.php:1609 bang-invites.php:1647 336 #: bang-invites.php:1657 337 #: bang-invites.php:1695 313 338 msgid "Status" 314 339 msgstr "" 315 340 316 #: bang-invites.php:1610 bang-invites.php:1648 341 #: bang-invites.php:1658 342 #: bang-invites.php:1696 317 343 msgid "Expires" 318 344 msgstr "" 319 345 320 #: bang-invites.php:1611 bang-invites.php:1649 346 #: bang-invites.php:1659 347 #: bang-invites.php:1697 321 348 msgid "Actions" 322 349 msgstr "" 323 350 324 #: bang-invites.php:16 16351 #: bang-invites.php:1664 325 352 msgid "No invitations yet." 326 353 msgstr "" 327 354 328 #: bang-invites.php:16 21355 #: bang-invites.php:1669 329 356 msgid "Accepted" 330 357 msgstr "" 331 358 332 #: bang-invites.php:16 23359 #: bang-invites.php:1671 333 360 msgid "Expired" 334 361 msgstr "" 335 362 336 #: bang-invites.php:16 25363 #: bang-invites.php:1673 337 364 msgid "Pending" 338 365 msgstr "" 339 366 340 #: bang-invites.php:1 652367 #: bang-invites.php:1700 341 368 msgid "Copy link" 342 369 msgstr "" 343 370 344 #: bang-invites.php:1 654371 #: bang-invites.php:1702 345 372 msgid "New link" 346 373 msgstr "" 347 374 348 #: bang-invites.php:1 655375 #: bang-invites.php:1703 349 376 msgid "Resend" 350 377 msgstr "" 351 378 352 #: bang-invites.php:1 657379 #: bang-invites.php:1705 353 380 msgid "Delete this invitation?" 354 381 msgstr "" 355 382 356 #: bang-invites.php:1 675383 #: bang-invites.php:1723 357 384 msgid "The invitation email" 358 385 msgstr "" 359 386 360 #: bang-invites.php:1 676387 #: bang-invites.php:1724 361 388 msgid "Sent when you invite someone." 362 389 msgstr "" 363 390 364 #: bang-invites.php:1 676391 #: bang-invites.php:1724 365 392 msgid "This is the email that carries the invitation link. Use the registration tokens below; they are swapped in when the email is sent." 366 393 msgstr "" 367 394 368 #: bang-invites.php:1678 bang-invites.php:1783 395 #: bang-invites.php:1726 396 #: bang-invites.php:1831 369 397 msgid "Subject" 370 398 msgstr "" 371 399 372 #: bang-invites.php:1681 bang-invites.php:1786 400 #: bang-invites.php:1729 401 #: bang-invites.php:1834 373 402 msgid "Message" 374 403 msgstr "" 375 404 376 #: bang-invites.php:1691 bang-invites.php:1796 405 #: bang-invites.php:1739 406 #: bang-invites.php:1844 377 407 msgid "Click a token to insert it into the message:" 378 408 msgstr "" 379 409 380 #: bang-invites.php:1 693410 #: bang-invites.php:1741 381 411 msgid "the button" 382 412 msgstr "" 383 413 384 #: bang-invites.php:1 694414 #: bang-invites.php:1742 385 415 msgid "plain link" 386 416 msgstr "" 387 417 388 #: bang-invites.php:1 695418 #: bang-invites.php:1743 389 419 msgid "expiry date" 390 420 msgstr "" 391 421 392 #: bang-invites.php:1 696422 #: bang-invites.php:1744 393 423 msgid "invite code" 394 424 msgstr "" 395 425 396 #: bang-invites.php:1697 bang-invites.php:1804 426 #: bang-invites.php:1745 427 #: bang-invites.php:1852 397 428 msgid "site name" 398 429 msgstr "" 399 430 400 #: bang-invites.php:1 698431 #: bang-invites.php:1746 401 432 msgid "their role" 402 433 msgstr "" 403 434 404 #: bang-invites.php:17 01435 #: bang-invites.php:1749 405 436 msgid "Button styling" 406 437 msgstr "" 407 438 408 #: bang-invites.php:1704 bang-invites.php:1915 439 #: bang-invites.php:1752 440 #: bang-invites.php:1960 409 441 msgid "Button label" 410 442 msgstr "" 411 443 412 #: bang-invites.php:1708 bang-invites.php:1928 444 #: bang-invites.php:1756 445 #: bang-invites.php:1973 413 446 msgid "Corner radius (px)" 414 447 msgstr "" 415 448 416 #: bang-invites.php:1715 bang-invites.php:1898 449 #: bang-invites.php:1763 450 #: bang-invites.php:1943 417 451 msgid "Button colour" 418 452 msgstr "" 419 453 420 #: bang-invites.php:1722 bang-invites.php:1905 454 #: bang-invites.php:1770 455 #: bang-invites.php:1950 421 456 msgid "Button text" 422 457 msgstr "" 423 458 424 #: bang-invites.php:17 32459 #: bang-invites.php:1780 425 460 msgid "Sender" 426 461 msgstr "" 427 462 428 #: bang-invites.php:17 35463 #: bang-invites.php:1783 429 464 msgid "From name" 430 465 msgstr "" 431 466 432 #: bang-invites.php:17 39467 #: bang-invites.php:1787 433 468 msgid "From email" 434 469 msgstr "" 435 470 436 #: bang-invites.php:17 41471 #: bang-invites.php:1789 437 472 msgid "Leave blank to use the WordPress default." 438 473 msgstr "" 439 474 440 #: bang-invites.php:17 44475 #: bang-invites.php:1792 441 476 msgid "Reply-to" 442 477 msgstr "" 443 478 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 445 482 msgid "Unsaved changes" 446 483 msgstr "" 447 484 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 449 488 msgid "Discard" 450 489 msgstr "" 451 490 452 #: bang-invites.php:1 754491 #: bang-invites.php:1802 453 492 msgid "Save invite email" 454 493 msgstr "" 455 494 456 #: bang-invites.php:1 766495 #: bang-invites.php:1814 457 496 msgid "After they register" 458 497 msgstr "" 459 498 460 #: bang-invites.php:1 767499 #: bang-invites.php:1815 461 500 msgid "A different, second email - sent automatically once someone finishes registering." 462 501 msgstr "" 463 502 464 #: bang-invites.php:1 767503 #: bang-invites.php:1815 465 504 msgid "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." 466 505 msgstr "" 467 506 468 #: bang-invites.php:1 771507 #: bang-invites.php:1819 469 508 msgid "Send a welcome email" 470 509 msgstr "" 471 510 472 #: bang-invites.php:1 772511 #: bang-invites.php:1820 473 512 msgid "Emailed to each person the moment their account is created." 474 513 msgstr "" 475 514 476 #: bang-invites.php:1 779515 #: bang-invites.php:1827 477 516 msgid "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." 478 517 msgstr "" 479 518 480 #: bang-invites.php:1 798519 #: bang-invites.php:1846 481 520 msgid "their name" 482 521 msgstr "" 483 522 484 #: bang-invites.php:1 799523 #: bang-invites.php:1847 485 524 msgid "first name" 486 525 msgstr "" 487 526 488 #: bang-invites.php:18 00527 #: bang-invites.php:1848 489 528 msgid "last name" 490 529 msgstr "" 491 530 492 #: bang-invites.php:18 01531 #: bang-invites.php:1849 493 532 msgid "username" 494 533 msgstr "" 495 534 496 #: bang-invites.php:18 02535 #: bang-invites.php:1850 497 536 msgid "login button" 498 537 msgstr "" 499 538 500 #: bang-invites.php:18 03539 #: bang-invites.php:1851 501 540 msgid "login link" 502 541 msgstr "" 503 542 504 #: bang-invites.php:18 15543 #: bang-invites.php:1863 505 544 msgid "Notify your team" 506 545 msgstr "" 507 546 508 #: bang-invites.php:18 16547 #: bang-invites.php:1864 509 548 msgid "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." 510 549 msgstr "" 511 550 512 #: bang-invites.php:18 20551 #: bang-invites.php:1868 513 552 msgid "Tell the team about new registrations" 514 553 msgstr "" 515 554 516 #: bang-invites.php:18 21555 #: bang-invites.php:1869 517 556 msgid "Sent to every address below. With no addresses saved, nothing is sent." 518 557 msgstr "" 519 558 520 #: bang-invites.php:18 27559 #: bang-invites.php:1875 521 560 msgid "Send to" 522 561 msgstr "" 523 562 524 #: bang-invites.php:18 32563 #: bang-invites.php:1880 525 564 msgid "Remove this address" 526 565 msgstr "" 527 566 528 #: bang-invites.php:18 36567 #: bang-invites.php:1884 529 568 msgid "Add another address" 530 569 msgstr "" 531 570 532 571 #. 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 535 573 msgid "Not a valid email address, so nothing is sent to it: %s" 536 574 msgstr "" 537 575 538 #: bang-invites.php:18 47576 #: bang-invites.php:1895 539 577 msgid "Anyone who should hear about a new registration - they do not need an account on the site." 540 578 msgstr "" 541 579 542 #: bang-invites.php:1 854580 #: bang-invites.php:1902 543 581 msgid "Save welcome email" 544 582 msgstr "" 545 583 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 551 585 msgid "Registration method" 552 586 msgstr "" 553 587 554 #: bang-invites.php:1 877588 #: bang-invites.php:1923 555 589 msgid "Built-in form" 556 590 msgstr "" 557 591 558 #: bang-invites.php:1 878592 #: bang-invites.php:1924 559 593 msgid "The plugin's own form on your registration page handles everything." 560 594 msgstr "" 561 595 562 #: bang-invites.php:1 882596 #: bang-invites.php:1928 563 597 msgid "I'm using another registration plugin" 564 598 msgstr "" 565 599 566 #: bang-invites.php:1 883600 #: bang-invites.php:1929 567 601 msgid "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." 568 602 msgstr "" 569 603 570 #: bang-invites.php:1 886604 #: bang-invites.php:1932 571 605 msgid "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." 572 606 msgstr "" 573 607 574 #: bang-invites.php:1 891608 #: bang-invites.php:1937 575 609 msgid "Registration form" 576 610 msgstr "" 577 611 578 #: bang-invites.php:1894 612 #: bang-invites.php:1938 613 msgid "Not used - your registration plugin's own form and styling apply" 614 msgstr "" 615 616 #: bang-invites.php:1939 579 617 msgid "How the built-in form looks - the one invited people use to set a password. The shortcode to place it lives under Pages above." 580 618 msgstr "" 581 619 582 #: bang-invites.php:19 19620 #: bang-invites.php:1964 583 621 msgid "Button position" 584 622 msgstr "" 585 623 586 #: bang-invites.php:19 21624 #: bang-invites.php:1966 587 625 msgid "Left" 588 626 msgstr "" 589 627 590 #: bang-invites.php:19 22628 #: bang-invites.php:1967 591 629 msgid "Centre" 592 630 msgstr "" 593 631 594 #: bang-invites.php:19 23632 #: bang-invites.php:1968 595 633 msgid "Right" 596 634 msgstr "" 597 635 598 #: bang-invites.php:19 24636 #: bang-invites.php:1969 599 637 msgid "Full width" 600 638 msgstr "" 601 639 602 #: bang-invites.php:19 36640 #: bang-invites.php:1981 603 641 msgid "How invitations work" 604 642 msgstr "" 605 643 606 #: bang-invites.php:19 39644 #: bang-invites.php:1984 607 645 msgid "Default role for new users" 608 646 msgstr "" 609 647 610 #: bang-invites.php:19 45648 #: bang-invites.php:1990 611 649 msgid "Only low-privilege roles are offered. Promote an account under Users after registration if it needs more." 612 650 msgstr "" 613 651 614 #: bang-invites.php:19 48652 #: bang-invites.php:1993 615 653 msgid "Invite expires after (days)" 616 654 msgstr "" 617 655 618 #: bang-invites.php: 1955656 #: bang-invites.php:2000 619 657 msgid "Pages" 620 658 msgstr "" 621 659 622 #: bang-invites.php: 1956660 #: bang-invites.php:2001 623 661 msgid "Registration page (holds the form)" 624 662 msgstr "" 625 663 626 #: bang-invites.php: 1962664 #: bang-invites.php:2007 627 665 msgid "- Select a page -" 628 666 msgstr "" 629 667 630 #: bang-invites.php: 1969668 #: bang-invites.php:2014 631 669 msgid "Place your registration plugin's form on this page. Invite links send people here." 632 670 msgstr "" 633 671 634 672 #. translators: %s: shortcode chip 635 #: bang-invites.php:1973 636 #, php-format 673 #: bang-invites.php:2018 637 674 msgid "Put %s on this page (click it to copy). Invite links send people here." 638 675 msgstr "" 639 676 640 #: bang-invites.php: 1978677 #: bang-invites.php:2023 641 678 msgid "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." 642 679 msgstr "" 643 680 644 #: bang-invites.php: 1982681 #: bang-invites.php:2027 645 682 msgid "Protect this page - invitation only" 646 683 msgstr "" 647 684 648 #: bang-invites.php: 1983685 #: bang-invites.php:2028 649 686 msgid "Visitors without a valid invitation see a notice instead of the page. You and other editors always see it." 650 687 msgstr "" 651 688 652 #: bang-invites.php: 1989689 #: bang-invites.php:2034 653 690 msgid "Invitation-only notice" 654 691 msgstr "" 655 692 656 #: bang-invites.php: 1991693 #: bang-invites.php:2036 657 694 msgid "Shown in place of the page to anyone who opens it without an invitation link." 658 695 msgstr "" 659 696 660 #: bang-invites.php:1996 697 #: bang-invites.php:2039 698 msgid "Not used - set this in your registration plugin" 699 msgstr "" 700 701 #: bang-invites.php:2040 661 702 msgid "Where to send people the first time, right after they register" 662 703 msgstr "" 663 704 664 #: bang-invites.php: 1998705 #: bang-invites.php:2042 665 706 msgid "The WordPress dashboard" 666 707 msgstr "" 667 708 668 #: bang-invites.php:2002 bang-invites.php:2017 709 #: bang-invites.php:2046 710 #: bang-invites.php:2061 669 711 msgid "A custom URL (below)" 670 712 msgstr "" 671 713 672 #: bang-invites.php:20 05714 #: bang-invites.php:2049 673 715 msgid "Custom URL" 674 716 msgstr "" 675 717 676 #: bang-invites.php:20 07718 #: bang-invites.php:2051 677 719 msgid "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." 678 720 msgstr "" 679 721 680 #: bang-invites.php:20 11722 #: bang-invites.php:2055 681 723 msgid "Where clients log in" 682 724 msgstr "" 683 725 684 #: bang-invites.php:20 13726 #: bang-invites.php:2057 685 727 msgid "The standard WordPress login page" 686 728 msgstr "" 687 729 688 #: bang-invites.php:20 20730 #: bang-invites.php:2064 689 731 msgid "Custom login URL" 690 732 msgstr "" 691 733 692 #: bang-invites.php:20 22734 #: bang-invites.php:2066 693 735 msgid "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." 694 736 msgstr "" 695 737 696 #: bang-invites.php:20 27738 #: bang-invites.php:2071 697 739 msgid "Behaviour" 698 740 msgstr "" 699 741 700 #: bang-invites.php:2030 742 #: bang-invites.php:2073 743 msgid "Not used - your registration plugin decides this" 744 msgstr "" 745 746 #: bang-invites.php:2074 701 747 msgid "Log people in automatically once they finish registering" 702 748 msgstr "" 703 749 704 #: bang-invites.php:20 33750 #: bang-invites.php:2076 705 751 msgid "Silence WordPress's own account emails (send only mine)" 706 752 msgstr "" 707 753 708 #: bang-invites.php:20 34754 #: bang-invites.php:2077 709 755 msgid "Show a shortcut in the top WordPress toolbar" 710 756 msgstr "" 711 757 712 #: bang-invites.php:20 42758 #: bang-invites.php:2085 713 759 msgid "Save settings" 714 760 msgstr "" 715 761 716 #: bang-invites.php:2 292762 #: bang-invites.php:2339 717 763 msgid "Copied" 718 764 msgstr "" -
bang-invites/trunk/readme.txt
r3647283 r3748764 1 === Bang! Invites - Invite People to Registerby Email ===1 === Bang! Invites - Invite Users by Email === 2 2 Contributors: bangplugins 3 3 Tags: invite, registration, users, email invitation, membership 4 4 Requires at least: 6.0 5 Tested up to: 7. 05 Tested up to: 7.1 6 6 Requires PHP: 7.4 7 7 Stable tag: 1.0.38 … … 104 104 == Changelog == 105 105 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 106 113 = 1.0.39 = 107 114 * 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.
![(please configure the [header_logo] section in trac.ini)](/chrome/site/your_project_logo.png)