{"id":333174,"date":"2026-08-03T20:43:13","date_gmt":"2026-08-03T20:43:13","guid":{"rendered":"https:\/\/wordpress.org\/plugins\/safeuser-registration-alerts-for-telegram\/"},"modified":"2026-08-03T21:53:56","modified_gmt":"2026-08-03T21:53:56","slug":"safeuser-registration-alerts-for-telegram","status":"publish","type":"plugin","link":"https:\/\/ky.wordpress.org\/plugins\/safeuser-registration-alerts-for-telegram\/","author":23387464,"comment_status":"closed","ping_status":"closed","template":"","meta":{"version":"1.3.7","stable_tag":"1.3.7","tested":"7.0.3","requires":"6.0","requires_php":"8.0","requires_plugins":null,"header_name":"SafeUser \u2013 Registration Alerts for Telegram","header_author":"FNL Pulse","header_description":"Telegram notifications for new user registrations. Prevents abuse and admin hijacking.","assets_banners_color":"d0b2e6","last_updated":"2026-08-03 21:53:56","external_support_url":"","external_repository_url":"","donate_link":"","header_plugin_uri":"https:\/\/fnlpulse.com\/","header_author_uri":"https:\/\/fnlpulse.com","rating":0,"author_block_rating":0,"active_installs":0,"downloads":79,"num_ratings":0,"support_threads":0,"support_threads_resolved":0,"author_block_count":0,"sections":["description","installation","faq","changelog"],"tags":{"1.3.7":{"tag":"1.3.7","author":"ravinovikau","date":"2026-08-03 21:53:56"}},"upgrade_notice":{"1.3.3":"<p>Minor maintenance release \u2014 no functional changes.<\/p>","1.3.2":"<p>UI cleanup \u2014 Insights and Pro tabs removed from the free plugin settings page. Pro features remain available via the separate SafeUser Pro add-on.<\/p>","1.3.1":"<p>Minor wording fixes \u2014 admin heading spells out &quot;Telegram&quot;, Pro link updated.<\/p>","1.3.0":"<p>The plugin is now fully free with no license checks. Role routing and analytics are available as a separate optional add-on. Recommended update.<\/p>","1.2.75":"<p>Fixes Freemius vendor path issue on activation. Recommended update.<\/p>","1.2.74":"<p>Freemius dashboard sync \u2014 premium slug and license configuration updates. Recommended update.<\/p>","1.2.73":"<p>Rebrand to SafeUser with a new slug and name, plus an External Services disclosure required for WordPress.org submission. Recommended update.<\/p>","1.2.72":"<p>Adds German translation and resolves languages\/ directory warning on WP.org plugin check.<\/p>","1.2.71":"<p>Minor fix \u2014 removes underline from CTA buttons in the admin settings page.<\/p>","1.2.7":"<p>WordPress.org submission readiness \u2014 resolves all plugin check errors and warnings. Recommended update.<\/p>","1.2.6":"<p>Required update for Freemius compatibility \u2014 moves uninstall logic to the Freemius after_uninstall hook.<\/p>","1.2.5":"<p>Recommended update \u2014 adds Chatbots partner tab, removes legacy SendPulse API wiring, and includes performance and correctness fixes.<\/p>","1.2.4":"<p>Recommended update \u2014 fixes a placeholder bug where <code>{source}<\/code> appeared blank in some Telegram messages, and replaces the demo license toggle with real Freemius licensing.<\/p>"},"ratings":[],"assets_icons":{"icon-128x128.jpg":{"filename":"icon-128x128.jpg","revision":3633429,"resolution":"128x128","location":"assets","locale":"","width":128,"height":128},"icon-256x256.jpg":{"filename":"icon-256x256.jpg","revision":3633429,"resolution":"256x256","location":"assets","locale":"","width":256,"height":256}},"assets_banners":{"banner-1544x500.jpg":{"filename":"banner-1544x500.jpg","revision":3633429,"resolution":"1544x500","location":"assets","locale":"","width":1544,"height":500},"banner-772x250.jpg":{"filename":"banner-772x250.jpg","revision":3633429,"resolution":"772x250","location":"assets","locale":"","width":772,"height":250}},"assets_blueprints":{},"all_blocks":[],"tagged_versions":["1.3.7"],"block_files":[],"assets_screenshots":{"Screenshot-1.png":{"filename":"Screenshot-1.png","revision":3633429,"resolution":"1","location":"assets","locale":"","width":2464,"height":1406},"Screenshot-2.png":{"filename":"Screenshot-2.png","revision":3633429,"resolution":"2","location":"assets","locale":"","width":2546,"height":1476},"Screenshot-3.png":{"filename":"Screenshot-3.png","revision":3634439,"resolution":"3","location":"assets","locale":"","width":2548,"height":1520},"Screenshot-4.png":{"filename":"Screenshot-4.png","revision":3633429,"resolution":"4","location":"assets","locale":"","width":2498,"height":1796},"Screenshot-5.png":{"filename":"Screenshot-5.png","revision":3633429,"resolution":"5","location":"assets","locale":"","width":2464,"height":1678}},"screenshots":{"1":"Telegram Integration settings \u2014 bot token, chat ID, and live preview","2":"Notification Designer \u2014 template editor with shortcode pills and real-time Telegram render","3":"System Status &amp; Diagnostics"}},"plugin_section":[],"plugin_tags":[4906,603,600,9171,5134],"plugin_category":[54,58],"plugin_contributors":[274377],"plugin_business_model":[],"class_list":["post-333174","plugin","type-plugin","status-publish","hentry","plugin_tags-notifications","plugin_tags-registration","plugin_tags-security","plugin_tags-telegram","plugin_tags-user-registration","plugin_category-security-and-spam-protection","plugin_category-user-management","plugin_contributors-ravinovikau","plugin_committers-ravinovikau"],"banners":{"banner":"https:\/\/ps.w.org\/safeuser-registration-alerts-for-telegram\/assets\/banner-772x250.jpg?rev=3633429","banner_2x":"https:\/\/ps.w.org\/safeuser-registration-alerts-for-telegram\/assets\/banner-1544x500.jpg?rev=3633429","banner_rtl":false,"banner_2x_rtl":false},"icons":{"svg":false,"icon":"https:\/\/ps.w.org\/safeuser-registration-alerts-for-telegram\/assets\/icon-128x128.jpg?rev=3633429","icon_2x":"https:\/\/ps.w.org\/safeuser-registration-alerts-for-telegram\/assets\/icon-256x256.jpg?rev=3633429","generated":false},"screenshots":[{"src":"https:\/\/ps.w.org\/safeuser-registration-alerts-for-telegram\/assets\/Screenshot-1.png?rev=3633429","caption":"Telegram Integration settings \u2014 bot token, chat ID, and live preview"},{"src":"https:\/\/ps.w.org\/safeuser-registration-alerts-for-telegram\/assets\/Screenshot-2.png?rev=3633429","caption":"Notification Designer \u2014 template editor with shortcode pills and real-time Telegram render"},{"src":"https:\/\/ps.w.org\/safeuser-registration-alerts-for-telegram\/assets\/Screenshot-3.png?rev=3634439","caption":"System Status &amp; Diagnostics"},{"src":"https:\/\/ps.w.org\/safeuser-registration-alerts-for-telegram\/assets\/Screenshot-4.png?rev=3633429","caption":""},{"src":"https:\/\/ps.w.org\/safeuser-registration-alerts-for-telegram\/assets\/Screenshot-5.png?rev=3633429","caption":""}],"raw_content":"<!--section=description-->\n<p><strong>Registration Alerts for Telegram<\/strong> fires a customisable Telegram message every time a new user registers on your WordPress site \u2014 via the standard registration form, WooCommerce checkout, REST API, or the admin panel.<\/p>\n\n<h4>Free Features<\/h4>\n\n<ul>\n<li>Instant Telegram notification on every new user registration<\/li>\n<li>Customisable message template with dynamic shortcodes (<code>{display_name}<\/code>, <code>{user_login}<\/code>, <code>{user_email}<\/code>, <code>{role}<\/code>, <code>{source}<\/code>, <code>{site_name}<\/code>, <code>{admin_url}<\/code>)<\/li>\n<li>Registration source detection (WooCommerce, form, admin, REST API, bulk import)<\/li>\n<li>Non-blocking delivery \u2014 notifications are deferred to shutdown so checkout flows are never slowed<\/li>\n<li>Auto-detect Chat ID from the bot's recent messages<\/li>\n<li>Live Telegram message preview in the admin<\/li>\n<li>One-click token validation and test message<\/li>\n<li>Supports private chats, groups, supergroups, and channels<\/li>\n<\/ul>\n\n<h4>Pro add-on (optional, separate plugin)<\/h4>\n\n<p><strong>SafeUser Pro<\/strong> is a standalone add-on \u2014 distributed separately from this free plugin \u2014 that adds:<\/p>\n\n<ul>\n<li><strong>Role-Based Routing<\/strong> \u2014 send notifications to different Telegram chats per user role<\/li>\n<li><strong>Registration Insights<\/strong> \u2014 charts of registration trends by source and role<\/li>\n<\/ul>\n\n<p>SafeUser Pro is not included in or required by this free plugin. Learn more: https:\/\/fnlpulse.com\/safeuser\/<\/p>\n\n<h4>Security<\/h4>\n\n<p>The bot token can be locked via a <code>wp-config.php<\/code> constant so it is never stored in the database:<\/p>\n\n<pre><code>define( 'REATG_BOT_TOKEN', 'your-token' );\n<\/code><\/pre>\n\n<h3>External Services<\/h3>\n\n<p>This plugin connects to the <strong>Telegram Bot API<\/strong> (<code>api.telegram.org<\/code>) \u2014 a third-party service operated by Telegram \u2014 to deliver notifications and configure your bot. This is required for the plugin to function.<\/p>\n\n<p>What is sent and when:<\/p>\n\n<ul>\n<li><strong>On each new user registration:<\/strong> the plugin calls the <code>sendMessage<\/code> endpoint to deliver your notification. The message contains whatever fields you include in your template \u2014 by default this can be the new user's username, email address, display name, role, and registration source.<\/li>\n<li><strong>When you save\/validate the bot token or send a test message:<\/strong> the plugin calls the <code>getMe<\/code> and <code>sendMessage<\/code> endpoints to verify the token and chat.<\/li>\n<li><strong>When you click Auto-Detect:<\/strong> the plugin calls the <code>getUpdates<\/code> endpoint to read your bot's recent messages and find your Chat ID.<\/li>\n<li><strong>Connectivity check:<\/strong> the plugin may make a request to <code>api.telegram.org<\/code> to confirm outbound HTTPS is available.<\/li>\n<\/ul>\n\n<p>Your bot token is transmitted to Telegram as part of each API request. No data is sent to Telegram unless you have configured a bot token.<\/p>\n\n<p>Telegram's terms and privacy policy:<\/p>\n\n<ul>\n<li>Terms of Service: https:\/\/telegram.org\/tos<\/li>\n<li>Privacy Policy: https:\/\/telegram.org\/privacy<\/li>\n<\/ul>\n\n<!--section=installation-->\n<ol>\n<li>Upload the <code>safeuser-registration-alerts-for-telegram<\/code> folder to <code>\/wp-content\/plugins\/<\/code><\/li>\n<li>Activate via <strong>Plugins &gt; Installed Plugins<\/strong><\/li>\n<li>Go to <strong>Settings &gt; Registration Alerts for Telegram<\/strong><\/li>\n<li>Enter your Telegram bot token (create one at @BotFather on Telegram)<\/li>\n<li>Click <strong>Auto-Detect<\/strong> to find your Chat ID, or enter it manually<\/li>\n<li>Save settings \u2014 you will receive an alert on every new registration<\/li>\n<\/ol>\n\n<!--section=faq-->\n<dl>\n<dt id=\"how%20do%20i%20create%20a%20telegram%20bot%3F\"><h3>How do I create a Telegram bot?<\/h3><\/dt>\n<dd><p>Open Telegram, search for @BotFather, send <code>\/newbot<\/code>, and follow the prompts. Copy the token it gives you into the plugin settings.<\/p><\/dd>\n<dt id=\"how%20do%20i%20find%20my%20chat%20id%3F\"><h3>How do I find my Chat ID?<\/h3><\/dt>\n<dd><p>Send any message to your bot, then click <strong>Auto-Detect<\/strong> in the plugin settings. The plugin calls <code>getUpdates<\/code> on your bot and returns the most recent chat ID automatically.<\/p><\/dd>\n<dt id=\"does%20this%20slow%20down%20registration%20or%20woocommerce%20checkout%3F\"><h3>Does this slow down registration or WooCommerce checkout?<\/h3><\/dt>\n<dd><p>No. Notifications are sent on the <code>shutdown<\/code> hook, after the HTTP response is delivered. The user's browser never waits for the Telegram API.<\/p><\/dd>\n<dt id=\"can%20i%20send%20to%20a%20group%20or%20channel%20instead%20of%20a%20private%20chat%3F\"><h3>Can I send to a group or channel instead of a private chat?<\/h3><\/dt>\n<dd><p>Yes. Add the bot as an admin of the group or channel, then paste the group\/channel Chat ID (usually a negative number starting with -100) into the settings.<\/p><\/dd>\n<dt id=\"where%20is%20registration%20source%20data%20stored%3F\"><h3>Where is registration source data stored?<\/h3><\/dt>\n<dd><p>In user meta (<code>_reatg_registration_source<\/code>), used to populate the <code>{source}<\/code> placeholder. The plugin options are removed on uninstall.<\/p><\/dd>\n\n<\/dl>\n\n<!--section=changelog-->\n<h4>1.3.7<\/h4>\n\n<ul>\n<li>Fixed: Auto-Detect now clears any active webhook on the bot token before polling for messages \u2014 Telegram refuses <code>getUpdates<\/code> while a webhook is registered, which caused detection to fail with a \"Conflict\" error.<\/li>\n<\/ul>\n\n<h4>1.3.6<\/h4>\n\n<ul>\n<li>Fixed: Auto-Detect Chat ID could miss a brand-new chat until a second message was sent; the bot's first <code>my_chat_member<\/code> (start) event is now recognized too.<\/li>\n<\/ul>\n\n<h4>1.3.5<\/h4>\n\n<ul>\n<li>Fixed: Bot Token field no longer triggers the browser's \"save password\" prompt.<\/li>\n<li>Fixed: Header subtitle left-aligned with the plugin title.<\/li>\n<\/ul>\n\n<h4>1.3.4<\/h4>\n\n<ul>\n<li>Changed: Admin menu label shortened to \"SafeUser\".<\/li>\n<li>Added: <code>{profile_url}<\/code> and <code>{order_url}<\/code> message template placeholders \u2014 <code>{order_url}<\/code> links to the user's most recent WooCommerce order, if any.<\/li>\n<\/ul>\n\n<h4>1.3.3<\/h4>\n\n<ul>\n<li>Chore: Added screenshots\/ to .gitignore for WordPress.org compliance.<\/li>\n<\/ul>\n\n<h4>1.3.2<\/h4>\n\n<ul>\n<li>Changed: Removed Insights and Pro tabs from free plugin settings page.<\/li>\n<li>Added: Footer message with link to SafeUser Pro (https:\/\/fnlpulse.com\/safeuser\/).<\/li>\n<\/ul>\n\n<h4>1.3.1<\/h4>\n\n<ul>\n<li>Fixed: Admin page heading and menu label no longer abbreviate \"Telegram\" to \"Tg\".<\/li>\n<li>Changed: Pro add-on link now points to https:\/\/fnlpulse.com\/safeuser\/.<\/li>\n<\/ul>\n\n<h4>1.3.0<\/h4>\n\n<ul>\n<li>Changed: This plugin is now fully free and self-contained. Role-Based Routing and Registration Insights moved to a separate optional add-on (SafeUser Pro) distributed outside WordPress.org.<\/li>\n<li>Removed: Bundled Freemius SDK, all license checks, the analytics table\/logging, and the bundled Chart.js library.<\/li>\n<li>Added: Extension hooks (<code>reatg_chat_id<\/code>, <code>reatg_user_registered<\/code>, <code>reatg_register_settings<\/code>, <code>reatg_admin_assets<\/code>, <code>reatg_settings_telegram_extra<\/code>, <code>reatg_insights_panel<\/code>) so the add-on attaches without modifying core.<\/li>\n<li>Added: <code>uninstall.php<\/code> to remove plugin options on uninstall.<\/li>\n<\/ul>\n\n<h4>1.2.75<\/h4>\n\n<ul>\n<li>Fixed: Corrected Freemius vendor path in bootstrap (dirname with 2 levels to reach plugin root).<\/li>\n<\/ul>\n\n<h4>1.2.74<\/h4>\n\n<ul>\n<li>Changed: Updated Freemius bootstrap configuration \u2014 added premium_slug, set is_premium to true.<\/li>\n<li>Fixed: Removed AI generator metadata from German translation files.<\/li>\n<\/ul>\n\n<h4>1.2.73<\/h4>\n\n<ul>\n<li>Changed: Renamed plugin to \"SafeUser \u2013 Registration Alerts for Telegram\"; slug, text domain, Freemius slug, and language files updated to <code>safeuser-registration-alerts-for-telegram<\/code>. Internal <code>reatg_<\/code> prefix and settings unchanged.<\/li>\n<li>Changed: Admin heading updated to \"SafeUser: registration alerts for Tg\".<\/li>\n<li>Added: \"External Services\" disclosure section for the Telegram Bot API.<\/li>\n<li>Fixed: Replaced the Telegram paper-plane header logo with the SafeUser plugin logo (trademark compliance).<\/li>\n<\/ul>\n\n<h4>1.2.72<\/h4>\n\n<ul>\n<li>Added: English POT template and German (de_DE) translation files (.po + .mo)<\/li>\n<li>Fixed: languages\/ directory now committed \u2014 Git requires a file inside to track an empty folder<\/li>\n<\/ul>\n\n<h4>1.2.71<\/h4>\n\n<ul>\n<li>Fixed: Remove underline from .reatg-btn anchor elements (WP admin CSS override)<\/li>\n<\/ul>\n\n<h4>1.2.7<\/h4>\n\n<ul>\n<li>Fixed: Removed .DS_Store from repository<\/li>\n<li>Fixed: Removed deprecated load_plugin_textdomain() call (WP 4.6+ handles this automatically)<\/li>\n<li>Fixed: Added wp_cache_get\/set caching to DB::get_stats() to resolve NoCaching sniff<\/li>\n<li>Fixed: Suppressed false-positive phpcs warnings for internal table-name interpolation and production error_log usage<\/li>\n<li>Fixed: Sanitized admin_init routing guards in Settings class<\/li>\n<li>Fixed: Prefixed all template variables in settings-page.php to satisfy NonPrefixedVariable sniff<\/li>\n<li>Changed: readme.txt Tested up to bumped to 7.0<\/li>\n<li>Added: languages\/ directory (resolves missing Domain Path header warning)<\/li>\n<\/ul>\n\n<h4>1.2.6<\/h4>\n\n<ul>\n<li>Changed: Uninstall logic moved to Freemius after_uninstall hook; uninstall.php removed<\/li>\n<\/ul>\n\n<h4>1.2.5<\/h4>\n\n<ul>\n<li>Added: Chatbots tab \u2014 SendPulse partner panel with \u20ac20 free credit offer<\/li>\n<li>Changed: SendPulse API integration removed (coming back as standalone add-on)<\/li>\n<li>Fixed: DB::get_stats() integer parameter now correctly passed through wpdb-&gt;prepare()<\/li>\n<li>Fixed: Options flush hook registered unconditionally, not inside is_admin() gate<\/li>\n<li>Performance: Options static cache eliminates repeated get_option() calls per request<\/li>\n<\/ul>\n\n<h4>1.2.4<\/h4>\n\n<ul>\n<li>Fixed: <code>{source}<\/code> placeholder now correctly populated in deferred shutdown messages<\/li>\n<li>Fixed: SendPulse transients fully removed on uninstall<\/li>\n<li>Fixed: Namespace fatal error on activation resolved<\/li>\n<li>Changed: Chart.js bundled locally (removed CDN dependency)<\/li>\n<li>Changed: Freemius licensing replaces demo Pro toggle<\/li>\n<\/ul>\n\n<h4>1.2.3<\/h4>\n\n<ul>\n<li>Added: Pro tier \u2014 Role-Based Routing and Insights &amp; Analytics dashboard<\/li>\n<li>Added: Freemius licensing integration<\/li>\n<li>Added: Custom <code>wp_reatg_logs<\/code> table for registration analytics<\/li>\n<li>Changed: Modernised admin UI with icon tabs and PRO badges<\/li>\n<\/ul>\n\n<h4>1.2.2<\/h4>\n\n<ul>\n<li>Fixed: Namespace issue in settings view template<\/li>\n<\/ul>\n\n<h4>1.2.1<\/h4>\n\n<ul>\n<li>Security: <code>REATG_BOT_TOKEN<\/code>, <code>REATG_SP_CLIENT_ID<\/code>, <code>REATG_SP_CLIENT_SECRET<\/code> constants for locking secrets in <code>wp-config.php<\/code><\/li>\n<\/ul>\n\n<h4>1.0.0<\/h4>\n\n<ul>\n<li>Initial release<\/li>\n<\/ul>","raw_excerpt":"Instant Telegram alerts on every new WordPress user registration. Catch admin hijacking and suspicious signups in real time.","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/ky.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin\/333174","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/ky.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin"}],"about":[{"href":"https:\/\/ky.wordpress.org\/plugins\/wp-json\/wp\/v2\/types\/plugin"}],"replies":[{"embeddable":true,"href":"https:\/\/ky.wordpress.org\/plugins\/wp-json\/wp\/v2\/comments?post=333174"}],"author":[{"embeddable":true,"href":"https:\/\/ky.wordpress.org\/plugins\/wp-json\/wporg\/v1\/users\/ravinovikau"}],"wp:attachment":[{"href":"https:\/\/ky.wordpress.org\/plugins\/wp-json\/wp\/v2\/media?parent=333174"}],"wp:term":[{"taxonomy":"plugin_section","embeddable":true,"href":"https:\/\/ky.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_section?post=333174"},{"taxonomy":"plugin_tags","embeddable":true,"href":"https:\/\/ky.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_tags?post=333174"},{"taxonomy":"plugin_category","embeddable":true,"href":"https:\/\/ky.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_category?post=333174"},{"taxonomy":"plugin_contributors","embeddable":true,"href":"https:\/\/ky.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_contributors?post=333174"},{"taxonomy":"plugin_business_model","embeddable":true,"href":"https:\/\/ky.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_business_model?post=333174"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}