Badwolf Web IRC Client
A modern, feature-rich WebSocket IRC client for WordPress. Connect your website visitors to your IRC server with real-time chat, private messaging, desktop notifications, and a beautiful tabbed interface. Version 5.2.0 – What’s New 🔧 WordPress 6.9 Compatibility FIXED: Plugin now works perfectly with WordPress 6.9 FIXED: Script loading issues with block themes and Full Site Editing (FSE) FIXED: Configuration passing to JavaScript 🔌 WebSocket Improvements FIXED: Connection stability issues FIXED: Binary WebSocket data handling ADDED: IRC subprotocol support for UnrealIRCd ⚙️ User Experience ADDED: Settings link in plugin list for easy access IMPROVED: Error handling and logging IMPROVED: Connection reliability Features ✅ Real-time IRC chat via secure WebSocket (wss://) ✅ Private messaging between users ✅ Desktop notifications for mentions and PMs ✅ Multiple channel support with tabbed interface ✅ User list with right-click context menus ✅ Command history (use arrow keys) ✅ Auto-reconnection with smart retry logic ✅ Customizable themes (light/dark) ✅ Mobile-responsive design ✅ IRC commands support (/nick, /join, /part, /msg, /me) ✅ Tab completion for nicknames ✅ Unread message badges ✅ Message history (500 messages per channel) Requirements WordPress: 5.0 or higher (tested up to 6.9) PHP: 7.4 or higher IRC Server: UnrealIRCd 6.x with WebSocket support (recommended) SSL Certificate: Valid SSL/TLS certificate for secure WebSocket (wss://) Configuration WordPress Settings Navigate to Settings → Badwolf Web IRC Client and configure: WebSocket URL: Your IRC server WebSocket URL (e.g., wss://irc.example.com:7443) Default Channel: IRC channel to join (e.g., #general) Nickname Prefix: Prefix for auto-generated nicknames (e.g., guest) Real Name: Default real name for users Theme: Light or Dark theme Auto Connect: Automatically connect when page loads UnrealIRCd Server Configuration Your UnrealIRCd server must have WebSocket support enabled: `conf Load WebSocket module loadmodule “websocket”; Configure WebSocket listener listen { ip *; port 7443; options { tls; websocket; } tls-options { certificate “/path/to/fullchain.pem”; key “/path/to/privkey.pem”; options { no-client-certificate; } } } ` SSL Certificate Setup (Let’s Encrypt) `bash Install certbot if not already installed sudo apt-get install certbot Get certificate for your IRC domain sudo certbot certonly –standalone -d irc.yourdomain.com Copy certificates to UnrealIRCd sudo cp /etc/letsencrypt/live/irc.yourdomain.com/fullchain.pem /path/to/unrealircd/conf/tls/ sudo cp /etc/letsencrypt/live/irc.yourdomain.com/privkey.pem /path/to/unrealircd/conf/tls/ Set correct permissions sudo chown unrealircd:unrealircd /path/to/unrealircd/conf/tls/*.pem sudo chmod 600 /path/to/unrealircd/conf/tls/privkey.pem sudo chmod 644 /path/to/unrealircd/conf/tls/fullchain.pem Restart UnrealIRCd cd /path/to/unrealircd ./unrealircd restart ` Auto-Renewal Setup Create a renewal hook to automatically copy certificates: `bash Create renewal hook script sudo nano /etc/letsencrypt/renewal-hooks/deploy/copy-to-unrealircd.sh ` Add this content: `bash !/bin/bash cp /etc/letsencrypt/live/irc.yourdomain.com/fullchain.pem /path/to/unrealircd/conf/tls/ cp /etc/letsencrypt/live/irc.yourdomain.com/privkey.pem /path/to/unrealircd/conf/tls/ chown unrealircd:unrealircd /path/to/unrealircd/conf/tls/*.pem chmod 600 /path/to/unrealircd/conf/tls/privkey.pem chmod 644 /path/to/unrealircd/conf/tls/fullchain.pem /path/to/unrealircd/unrealircd rehash ` Make it executable: `bash sudo chmod +x /etc/letsencrypt/renewal-hooks/deploy/copy-to-unrealircd.sh ` Usage Basic Shortcode ` [web_irc_client] ` Shortcode with Attributes ` [web_irc_client theme=”dark” width=”100%” height=”600px”] ` Available attributes: theme – Override theme (light or dark) width – Set custom width (default: 100%) height – Set custom height (default: 70vh) IRC Commands Users can use standard IRC commands: /nick newname – Change nickname /join #channel – Join a channel /part – Leave current channel /msg username message – Send private message /me action – Send action message /help – Show available commands Troubleshooting Connection Issues Problem: “Reconnecting…” message appears Solutions: Verify UnrealIRCd is running: ps aux | grep unrealircd Check port is listening: sudo netstat -tlnp | grep 7443 Verify SSL certificate is valid and not expired Check UnrealIRCd logs: tail -f /path/to/unrealircd/logs/ircd.log Test WebSocket connection: https://www.piesocket.com/websocket-tester SSL Certificate Errors Problem: Certificate expired or invalid Solution: `bash Check certificate expiry sudo certbot certificates Renew if needed sudo certbot renew –force-renewal Copy to UnrealIRCd and restart sudo cp /etc/letsencrypt/live/irc.yourdomain.com/*.pem /path/to/unrealircd/conf/tls/ ./unrealircd restart ` Plugin Not Loading Problem: IRC client doesn’t appear on page Solutions: Verify shortcode is correct: [web_irc_client] Clear WordPress cache Clear browser cache (Ctrl+Shift+R) Check browser console for JavaScript errors (F12) Verify WebSocket URL is configured in plugin settings WordPress 6.9 Issues Problem: Plugin stopped working after WordPress 6.9 update Solution: Update to version 5.2.0 which includes WordPress 6.9 compatibility fixes. Support GitHub: https://github.com/badwolf1972/web-irc-client Issues: https://github.com/badwolf1972/web-irc-client/issues WordPress Support: https://wordpress.org/support/plugin/badwolf-web-irc-client/ Credits Author: Martin Cooper (badwolf72) Website: https://www.oo3dmodels.com License: GPL v2 or later
Top keywords
- unrealircd31×3.92%
- irc23×2.91%
- path16×2.02%
- websocket15×1.90%
- path to unrealircd14×1.77%
- pem13×1.64%
- sudo13×1.64%
- tls13×1.64%
- conf12×1.52%
- com11×1.39%
- conf tls11×1.39%
- unrealircd conf11×1.39%
Joinchat – Enhanced "click to chat"
Turn conversations into conversions Joinchat is the most installed plugin for WhatsApp: a customizable floating button that turns your visitors into chats, leads and sales. Built for conversion from the very first click: eye-catching CTAs, dynamic start messages, native WooCommerce integration and built-in analytics to measure every conversation. 🌍 Joinchat, the global leader in WhatsApp click to chat 🗺️ Present in more than 176 countries 🏆 #1 chat solution in: 🇦🇷 Argentina 🇨🇴 Colombia 🇧🇷 Brazil 🇪🇸 Spain 🇳🇱 Netherlands 🇲🇽 Mexico 🇨🇱 Chile 🇵🇪 Peru 🇵🇹 Portugal Source: BuiltWith® What you get with Joinchat A complete WhatsApp conversion toolkit for WordPress, designed to capture more leads and close more sales. Floating WhatsApp button that opens the WhatsApp app on mobile, and on desktop launches WhatsApp Desktop or WhatsApp Web and shows a scannable QR code. Eye-catching CTAs to greet visitors, present offers and start the chat with the right message. Dynamic start messages so every conversation arrives with full context (the page, the product, the price, the discount…). WooCommerce integration, with a contact button next to “Add to cart” and shop-specific CTAs. Analytics built in — 🆕 — Clicks counter in your WordPress dashboard. Events for Google Analytics 4, Google Tag Manager and Facebook Pixel, plus Google Ads conversions. Lightweight and fast — JavaScript with no dependencies and lazy-loaded styles. No render-blocking. Customizable site-wide or at the page, product, category, etc. level. 🛡️ Say goodbye to the fear of WhatsApp bans Many companies lose their WhatsApp Business number for contacting customers first without consent. Joinchat flips the model: the visitor writes first, so every conversation starts aligned with WhatsApp’s official policies. The result: your business number protected and your customers reaching out when they need to, not the other way around. With Joinchat, you can unlock the full potential of WhatsApp’s “click to chat” feature. Take Joinchat further with Premium and AI Joinchat Free is just the start. Premium and AI unlock its full conversion potential. 💬 Add more support channels — extend beyond WhatsApp with Telegram, Facebook Messenger, phone calls and more, all from the same widget. 🕒 Multi-agent with custom schedules — assign chats to the right person at the right time. Each agent works their own hours and only takes chats when available, and you can set an alternative CTA when no agents are online. 🔁 Add a Chat Funnel — guided conversational flows that qualify and capture leads automatically with higher conversion than a form, 24/7, even when no one is at the desk. ✨ Add an AI agent — trained on your FAQs and website content. Answers visitors instantly, anytime, with the tone and knowledge you define. 👉 Get Joinchat Premium | 👉 Get Joinchat AI 📝 Settings at page or archive level You can change main settings on every Post, Page, Product or CPT and for Tag or Category archive pages. Edit your WhatsApp number, CTA, Start Message and Visibility options. 🔴 Show a notification Use a balloon on the button to get the visitor’s attention. In this way, you ensure that you do not miss any important message you want to give them, surprise them in a less intrusive way. 📯 Create call-to-action messages CTAs with Rich Chat: multiple chat bubbles with links, buttons, images or random text. Encourage users to contact you with a welcome message, offering help or promotions and offers. Read more 💬 Customize conversation start messages Defines a pre-loaded initial message for when the user contacts via WhatsApp. Add context with our “Dynamic Variables” and you will know what page the visitor is coming from or what product they are looking at when they start the chat. ✅ Opt-in text Opt-in is a users’ consent to receive messages from a business. Write a text with the conditions under which the visitor contacts you (or other info that you consider important). You can make it mandatory and disable contact until the user accepts it. 🛒 Integration with WooCommerce Set CTAs and Start Messages for shop page, product pages and for products on sale. Add a WhatsApp Contact Button directly on your product page next to the “Add to cart” button or choose the best position, even on products without a price. 🧩 WhatsApp Contact Button Block Add beautiful and customizable WhatsApp contact buttons in the Block Editor. You can define phone and initial message of the button or use the post/general Joinchat settings (ideal for Reusable Blocks). Enable QR Code on desktop to allow your visitors to scan it and start messaging from their phone. 🃏 Dynamic Variables Use variables in your CTAs and Start Messages that change dynamically for each page: {SITE} ➡ Website title {TITLE} ➡ Current page title {HOME} ➡ Website home url {URL} ➡ Current page url {HREF} ➡ Current page url (full with query params) {PRODUCT} ➡ Product name (Woo) {SKU} ➡ Product SKU (Woo) {REGULAR} ➡ Product regular price (Woo) {PRICE} ➡ Product current price (Woo) {DISCOUNT} ➡ Product percent discount when is on sale (Woo) 📈 Analytics Integration Automatically send events to Google Analytics, Google Tag Manager and Facebook Pixel when the user opens WhatsApp. — 🆕 — Clicks counter in your WordPress dashboard Google Analytics 4 send the recommended "generate_lead" event Google Tag Manager send "JoinChat" event Facebook Pixel send "JoinChat" event Google Ads conversion, just add your Conversion ID and Conversion Label You can also create your own custom events or add event parameters. View FAQs / Read more 🍾 Chat Triggers Any element in your page can be a chat trigger, eg: it can launch WhatsApp from a link or show the Joinchat CTA when the user scrolls to the footer. On page load (by url): url query param joinchat to show chat window. Can set delay in seconds, default is 0 (e.g. example.com/page/?joinchat=5) url query hash #joinchat to show chat window (e.g. example.com/page/#joinchat) On click: class "joinchat_app" direct launch WhatsApp class "joinchat_open" opens Joinchat CTA link href "#whatsapp" direct launch WhatsApp link href "#joinchat" opens Joinchat CTA Set custom phone and initial message for direct WhatsApp triggers: data-phone="99999999" data-message="Only for this trigger message". On scroll (when element appears on screen): class "joinchat_show" opens Joinchat CTA (first time) class "joinchat_force_show" opens Joinchat CTA (always) 💱 Multi-Language & RTL Support To be able to support all your users, wherever they are. Our plugin is compatible with WPML, Polylang and — 🆕 — TranslatePress and also RTL languages are supported. 🌈 Theme Colors & 🌚 Dark Mode You choose a color and we customize the entire visual theme of the widget. With Dark Mode display the chat window with dark colors and white text. From settings you can activate it or leave it automatic and detects devices’ configuration. ⚡ Fast & Light Only load what need when needed. Joinchat is lightweight and follow best coding practices. Use vanilla JavaScript without dependencies, deferred scripts and lazy load of styles to prevent render-blocking. See Tests Report and Speed Score. 🔕 No distractions Joinchat integrates with all major Visual Editors and Page Builders and will not appear when editing a page. Supported editors: Beaver Builder, Brizy Page Builder, Elementor, Oxygen Builder, Page Builder by SiteOrigin, Thrive Architect, Visual Composer and WP Page Builder. 🍪 Cookies & GDPR Joinchat can be used without any cookies. But to automatically display the CTA, two cookies are necessary. They are first-party cookies and don’t collect personal data. Joinchat integrates with WordPress’s Privacy Policy Guide and suggests the necessary text. 👨💻 Developer friendly Fully extensible, with lots of filters and actions to extend its functionality or change behavior. Documentation ⌁ If you like Joinchat 😍 Please leave us a ★★★★★ rating. We’ll thank you. Help us with the translation in your language Visit our blog and find tips and tricks at join.chat. Follow @joinchatnow on X. Join chat now!