{"id":398511,"date":"2026-11-10T09:35:32","date_gmt":"2026-11-10T09:35:32","guid":{"rendered":"https:\/\/wordpress.org\/plugins\/pvs-ai-voice\/"},"modified":"2026-11-10T09:34:59","modified_gmt":"2026-11-10T09:34:59","slug":"pvs-ai-voice","status":"publish","type":"plugin","link":"https:\/\/wordpress.org\/plugins\/pvs-ai-voice\/","author":23598902,"comment_status":"closed","ping_status":"closed","template":"","meta":{"version":"2.11.1","stable_tag":"2.11.1","tested":"7.1.4","requires":"6.0","requires_php":"7.4","requires_plugins":null,"header_name":"PVS AI Voice","header_author":"PVS Computer","header_description":"A Call button for your website: visitors talk to your ElevenLabs voice agent in a widget you design yourself. Connect any agent by its Agent ID, style the widget in the Widget Studio and place it site-wide, by shortcode, block or Elementor.","last_updated":"2026-11-10 09:34:59","external_support_url":"","external_repository_url":"","donate_link":"","header_plugin_uri":"https:\/\/pvs-computer.com\/pricing\/","header_author_uri":"https:\/\/pvs-computer.com\/","rating":0,"author_block_rating":0,"active_installs":0,"downloads":115,"num_ratings":0,"support_threads":0,"support_threads_resolved":0,"author_block_count":0,"sections":["description","installation","faq","changelog"],"tags":{"2.11.1":{"tag":"2.11.1","author":"pvscomputer","date":"2026-11-10 09:34:59","revision":3794005}},"upgrade_notice":[],"ratings":[],"assets_icons":{"icon-128x128.png":{"filename":"icon-128x128.png","revision":3794005,"resolution":"128x128","location":"assets","locale":"","width":128,"height":128},"icon-256x256.png":{"filename":"icon-256x256.png","revision":3794005,"resolution":"256x256","location":"assets","locale":"","width":256,"height":256}},"assets_banners":{"banner-1544x500.png":{"filename":"banner-1544x500.png","revision":3794005,"resolution":"1544x500","location":"assets","locale":"","width":1544,"height":500},"banner-772x250.png":{"filename":"banner-772x250.png","revision":3794005,"resolution":"772x250","location":"assets","locale":"","width":772,"height":250}},"assets_blueprints":{},"all_blocks":{"pvs-voice\/widget":{"$schema":"https:\/\/schemas.wp.org\/trunk\/block.json","apiVersion":3,"name":"pvs-voice\/widget","version":"2.7.0","title":"PVS AI Voice","category":"widgets","icon":"format-chat","description":"Inserts a PVS AI Voice widget on this page.","keywords":["voice","call","agent","pvs","assistant"],"textdomain":"pvs-voice","attributes":{"token":{"type":"string","default":""},"position":{"type":"string","default":"bottom-right"},"autoOpen":{"type":"boolean","default":false}},"supports":{"html":false,"multiple":false,"customClassName":false},"editorScript":"pvs-voice-block"}},"tagged_versions":["2.11.1"],"block_files":[],"assets_screenshots":{"screenshot-1.png":{"filename":"screenshot-1.png","revision":3794005,"resolution":"1","location":"assets","locale":"","width":1280,"height":800},"screenshot-2.png":{"filename":"screenshot-2.png","revision":3794005,"resolution":"2","location":"assets","locale":"","width":1280,"height":800},"screenshot-3.png":{"filename":"screenshot-3.png","revision":3794005,"resolution":"3","location":"assets","locale":"","width":1280,"height":800},"screenshot-4.png":{"filename":"screenshot-4.png","revision":3794005,"resolution":"4","location":"assets","locale":"","width":1280,"height":800},"screenshot-5.png":{"filename":"screenshot-5.png","revision":3794005,"resolution":"5","location":"assets","locale":"","width":1280,"height":800},"screenshot-6.png":{"filename":"screenshot-6.png","revision":3794005,"resolution":"6","location":"assets","locale":"","width":1280,"height":800},"screenshot-7.png":{"filename":"screenshot-7.png","revision":3794005,"resolution":"7","location":"assets","locale":"","width":1280,"height":800},"screenshot-8.png":{"filename":"screenshot-8.png","revision":3794005,"resolution":"8","location":"assets","locale":"","width":1280,"height":620},"screenshot-9.png":{"filename":"screenshot-9.png","revision":3794005,"resolution":"9","location":"assets","locale":"","width":1280,"height":800}},"screenshots":{"1":"The widget on a website: visitors press Call and talk \u2013 the call screen with the agent's avatar, mute, speaker and the typed-message view.","2":"Widget Studio \u203a Template \u2013 eleven design templates (Signature, Minimal, Business, Dark, Premium) with the live preview beside every setting.","3":"Widget Studio \u203a Call screen \u2013 the Call button's style (Glossy, Solid, Gradient, Soft, Outline, Halo), size and shape.","4":"Widget Studio \u203a Launcher \u2013 42 icons, an optional label and the button's position on your pages.","5":"Widget Studio \u203a Brand \u2013 display name, header logo, colours, font and shape, applied across the whole widget.","6":"Embed widget \u2013 site-wide with one click, shortcode, or the embed code for any other website at the plugin's short address.","7":"The Dashboard \u2013 setup at a glance, your widgets and the settings.","8":"Widgets \u2013 every widget with its token, agent, status and placement.","9":"Right-to-left and nine languages \u2013 the same Studio in Persian."}},"plugin_section":[],"plugin_tags":[2353,7892,244365,4013,258158],"plugin_category":[],"plugin_contributors":[291772],"plugin_business_model":[],"class_list":["post-398511","plugin","type-plugin","status-publish","hentry","plugin_tags-ai","plugin_tags-call","plugin_tags-elevenlabs","plugin_tags-voice","plugin_tags-voice-agent","plugin_contributors-pvscomputer","plugin_committers-pvscomputer"],"banners":{"banner":"https:\/\/ps.w.org\/pvs-ai-voice\/assets\/banner-772x250.png?rev=3794005","banner_2x":"https:\/\/ps.w.org\/pvs-ai-voice\/assets\/banner-1544x500.png?rev=3794005","banner_rtl":false,"banner_2x_rtl":false},"icons":{"svg":false,"icon":"https:\/\/ps.w.org\/pvs-ai-voice\/assets\/icon-128x128.png?rev=3794005","icon_2x":"https:\/\/ps.w.org\/pvs-ai-voice\/assets\/icon-256x256.png?rev=3794005","generated":false},"screenshots":[{"src":"https:\/\/ps.w.org\/pvs-ai-voice\/assets\/screenshot-1.png?rev=3794005","caption":"The widget on a website: visitors press Call and talk \u2013 the call screen with the agent's avatar, mute, speaker and the typed-message view."},{"src":"https:\/\/ps.w.org\/pvs-ai-voice\/assets\/screenshot-2.png?rev=3794005","caption":"Widget Studio \u203a Template \u2013 eleven design templates (Signature, Minimal, Business, Dark, Premium) with the live preview beside every setting."},{"src":"https:\/\/ps.w.org\/pvs-ai-voice\/assets\/screenshot-3.png?rev=3794005","caption":"Widget Studio \u203a Call screen \u2013 the Call button's style (Glossy, Solid, Gradient, Soft, Outline, Halo), size and shape."},{"src":"https:\/\/ps.w.org\/pvs-ai-voice\/assets\/screenshot-4.png?rev=3794005","caption":"Widget Studio \u203a Launcher \u2013 42 icons, an optional label and the button's position on your pages."},{"src":"https:\/\/ps.w.org\/pvs-ai-voice\/assets\/screenshot-5.png?rev=3794005","caption":"Widget Studio \u203a Brand \u2013 display name, header logo, colours, font and shape, applied across the whole widget."},{"src":"https:\/\/ps.w.org\/pvs-ai-voice\/assets\/screenshot-6.png?rev=3794005","caption":"Embed widget \u2013 site-wide with one click, shortcode, or the embed code for any other website at the plugin's short address."},{"src":"https:\/\/ps.w.org\/pvs-ai-voice\/assets\/screenshot-7.png?rev=3794005","caption":"The Dashboard \u2013 setup at a glance, your widgets and the settings."},{"src":"https:\/\/ps.w.org\/pvs-ai-voice\/assets\/screenshot-8.png?rev=3794005","caption":"Widgets \u2013 every widget with its token, agent, status and placement."},{"src":"https:\/\/ps.w.org\/pvs-ai-voice\/assets\/screenshot-9.png?rev=3794005","caption":"Right-to-left and nine languages \u2013 the same Studio in Persian."}],"raw_content":"<!--section=description-->\n<p><strong>Your website now talks to visitors.<\/strong> PVS AI Voice puts a <em>Call<\/em> button on your site. Visitors press it and talk to an AI voice agent that lives in <strong>your own ElevenLabs account<\/strong> \u2013 a real conversation over WebRTC, with the transcript written out as it happens. During the call they can type into the same conversation. The widget itself \u2013 colours, font, launcher, call screen \u2013 is yours to design, with a live preview beside every setting.<\/p>\n\n<p>https:\/\/www.youtube.com\/watch?v=1fBWyDCVfoE<\/p>\n\n<h4>Up and running in three steps<\/h4>\n\n<ol>\n<li><strong>Open an agent<\/strong> in your ElevenLabs dashboard \u2013 or build one there \u2013 and copy its Agent ID.<\/li>\n<li><strong>Create a widget<\/strong> under <em>PVS AI Voice \u2192 Widgets<\/em>, paste the Agent ID and design the widget in the Widget Studio. Eleven templates give you a finished look in one click.<\/li>\n<li><strong>Place it<\/strong>: site-wide on every page, with a shortcode, with the \"PVS AI Voice\" block, with the Elementor element, or as embed code on any other website.<\/li>\n<\/ol>\n\n<p>A public agent needs nothing else \u2013 no API key. For an agent with <em>Enable authentication<\/em> switched on at ElevenLabs, store your ElevenLabs API key under <em>Settings \u2192 AI providers<\/em>: every call is then opened with a short-lived token your site requests from ElevenLabs, and the key itself never reaches the browser.<\/p>\n\n<h4>What your visitors get<\/h4>\n\n<ul>\n<li><strong>A real conversation, not a form.<\/strong> They press Call, speak, and hear the answer \u2013 with the transcript written out live, so nothing is lost. During the call they can also type.<\/li>\n<li><strong>A widget that looks like your website.<\/strong> Colours, font, corners, shadows, the launcher icon, the call screen: every detail is yours. Eleven templates give you a finished look in one click; the live preview shows every change as you make it.<\/li>\n<li><strong>Their language.<\/strong> The admin and the widget's own texts come in English, German, French, Spanish, Turkish, Russian, Arabic, Simplified Chinese and Persian \u2013 Arabic and Persian right-to-left. The language the agent speaks is set at ElevenLabs.<\/li>\n<li><strong>Takeaways.<\/strong> A copy button on replies and the transcript as a PDF, if you switch them on.<\/li>\n<\/ul>\n\n<h4>What you control<\/h4>\n\n<ul>\n<li><strong>The agent.<\/strong> Build it in your ElevenLabs account \u2013 prompt, voice, knowledge, turn-taking \u2013 and paste its Agent ID. Public agents need no key; agents with authentication use a short-lived token your site mints with your key, which never reaches the browser.<\/li>\n<li><strong>Where it shows.<\/strong> Site-wide on every page, on one page with the shortcode, as a block in the editor, as an Elementor element, or on any other website with the embed code. An allow-list limits which websites may call a widget.<\/li>\n<li><strong>The design, down to the pixel.<\/strong> The Widget Studio has eight pages \u2013 Agent, Template, Brand, Launcher, Chat window, Call screen, Features, Publish \u2013 with about 140 Google Fonts plus system fonts, 42 icons, free colours, shapes and shadows, and a live preview beside every setting.<\/li>\n<\/ul>\n\n<h4>Everything in the free edition<\/h4>\n\n<ul>\n<li>Any number of widgets, each calling its own ElevenLabs agent by Agent ID (public, or private with your key)<\/li>\n<li>Widget Studio with eight pages \u2013 Agent, Template, Brand, Launcher, Chat window, Call screen, Features, Publish: 11 design templates, about 140 Google Fonts plus system fonts, 42 icons, free choice of colours, shapes and shadows, live preview<\/li>\n<li>During a call: live transcript, typed messages, full-screen mode on desktop, a copy button on replies, transcript download as PDF<\/li>\n<li>Placement site-wide, via shortcode, Gutenberg block or Elementor element \u2013 and as embed code for other websites; an allow-list of the websites a widget may be called from<\/li>\n<li>Nine languages for admin and widget: English, German, French, Spanish, Turkish, Russian, Arabic, Simplified Chinese and Persian \u2013 Persian and Arabic with a right-to-left interface<\/li>\n<li>The ElevenLabs API key is stored encrypted (libsodium or OpenSSL) and is only ever sent to ElevenLabs<\/li>\n<li>No account with us, no sign-up, no limits on widgets or calls. You need an ElevenLabs account and pay ElevenLabs directly for the calls \u2013 the plugin adds no credits and no fees of its own.<\/li>\n<\/ul>\n\n<h4>PVS AI Voice Pro<\/h4>\n\n<p>The Pro edition of this plugin (sold separately on <a href=\"https:\/\/pvs-computer.com\/pricing\/#plans\">pvs-computer.com<\/a>) adds the <strong>Agent Builder<\/strong>: agents created in your ElevenLabs account from your business profile, website analysis and knowledge base, with a generated system prompt. It also adds the <strong>WordPress, WooCommerce, MCP and Vision tools<\/strong> for the agent, <strong>live video avatars<\/strong> (HeyGen LiveAvatar, Tavus), uploads during a call, and <strong>Conversations<\/strong> with AI reports. The Pro edition installs over this one and keeps every widget and setting.<\/p>\n\n<p>https:\/\/www.youtube.com\/watch?v=0EyrNLHPhFw<\/p>\n\n<h3>Privacy<\/h3>\n\n<p>The call runs between the visitor's browser and ElevenLabs: the visitor's voice, the agent's speech and the transcript are processed by ElevenLabs under its terms of service \u2013 https:\/\/elevenlabs.io\/terms \u2013 and privacy policy \u2013 https:\/\/elevenlabs.io\/privacy \u2013 and this plugin stores no transcripts and no visitor data on your website. The widget keeps a random session id in the browser's local storage \u2013 no personal data, no message text. For an agent that requires authentication, this website requests a short-lived conversation token from ElevenLabs for each call; the request carries your API key and the Agent ID, nothing about the visitor. The token route is rate-limited per IP address and per widget.<\/p>\n\n<p>Suggested privacy-policy sentence: \"Our voice agent runs on ElevenLabs; what you say and type is processed there to answer you.\"<\/p>\n\n<p>Uninstalling the plugin removes everything it stored: the widget table, the settings, the encrypted API key, transients and the cron job.<\/p>\n\n<h3>Third-party services<\/h3>\n\n<ul>\n<li><strong>ElevenLabs<\/strong> \u2013 API: https:\/\/api.elevenlabs.io \u2013 terms: https:\/\/elevenlabs.io\/terms \u2013 privacy policy: https:\/\/elevenlabs.io\/privacy \u2013 every call is opened from the visitor's browser to ElevenLabs with the Agent ID of the widget. For an agent that requires authentication, this website asks ElevenLabs for a conversation token with your API key before each call. \"Test connection\" on the settings page asks ElevenLabs for the voices and agents the key may use.<\/li>\n<li><strong>Google Fonts<\/strong> \u2013 https:\/\/fonts.googleapis.com \u2013 privacy policy: https:\/\/policies.google.com\/privacy \u2013 the plugin's admin pages load IBM Plex Sans, IBM Plex Mono, Bricolage Grotesque and Michroma (Vazirmatn in Arabic and Persian); on your website the widget loads the Google Font you chose for it in the Widget Studio \u2013 not when a system font is chosen.\nNo other server is contacted. The plugin sends nothing to its maker.<\/li>\n<\/ul>\n\n<h3>Source code<\/h3>\n\n<p>Everything in this plugin is human-readable source except one bundled library: <code>assets\/js\/vendor\/elevenlabs-client.js<\/code> is the official ElevenLabs JavaScript client <code>@elevenlabs\/client<\/code> (MIT, with <code>livekit-client<\/code>, Apache-2.0) as published on npm, minified. The exact version and the one-line rebuild command are in <code>assets\/js\/vendor\/README.md<\/code>; the licences are in <code>assets\/js\/vendor\/LICENSES.txt<\/code>. The transcript download uses jsPDF 4.2.1 (MIT), <code>assets\/js\/vendor\/jspdf.umd.min.js<\/code>, as published on npm.<\/p>\n\n<h3>Logos<\/h3>\n\n<p>The ElevenLabs mark on the settings page is a trademark of its owner and is used only to identify the service an API key belongs to. The icon path comes from the Simple Icons project (CC0). PVS AI Voice is not affiliated with or endorsed by ElevenLabs.<\/p>\n\n<!--section=installation-->\n<ol>\n<li>Install the plugin from the WordPress plugin directory, or upload the ZIP under <em>Plugins \u2192 Add New \u2192 Upload Plugin<\/em>, and activate it.<\/li>\n<li>Create a widget under <em>PVS AI Voice \u2192 Widgets \u2192 New widget<\/em> and enter the Agent ID of your ElevenLabs agent (open the agent in your ElevenLabs dashboard; the ID is shown in its settings).\n\n<ul>\n<li>Public agent: in the agent's <em>Security<\/em> settings at ElevenLabs add your website's hostname to the allowlist, so the Agent ID cannot be used from other sites. Nothing else is needed.<\/li>\n<li>Agent with <em>Enable authentication<\/em>: tick <em>The agent requires authentication<\/em> in the widget and store your ElevenLabs API key under <em>PVS AI Voice \u2192 Settings \u2192 AI providers<\/em> (give the key access to \"Agents\" in your ElevenLabs API-key settings and use <em>Test connection<\/em>).<\/li>\n<\/ul><\/li>\n<li>Design the widget in the Widget Studio and switch it on under <em>Publish<\/em>.<\/li>\n<li>Place the widget:\n\n<ul>\n<li><strong>Site-wide:<\/strong> <em>PVS AI Voice \u2192 Settings \u2192 General<\/em> or <em>Set as site-wide widget<\/em> on the widget's <em>Embed widget<\/em> page.<\/li>\n<li><strong>Shortcode:<\/strong> <code>[pvs_voice token=\"PVS-xxxxxxxxx\"]<\/code> (optional <code>position=\"bottom-left\"<\/code>, <code>auto_open=\"true\"<\/code>).<\/li>\n<li><strong>Block:<\/strong> insert the \"PVS AI Voice\" block in the editor and select the widget.<\/li>\n<li><strong>Elementor:<\/strong> search the elements panel for \"PVS AI Voice\", drop the element onto the page and pick the widget (corner, auto-open, offsets and a welcome message per page).<\/li>\n<li><strong>External:<\/strong> copy the embed code from the <em>Embed widget<\/em> page into any HTML page.<\/li>\n<\/ul><\/li>\n<\/ol>\n\n<p>The embed code names the widget script and its configuration at two short addresses of your site \u2013 <code>\/voice-widget\/embed.js<\/code> and <code>\/voice-widget\/api\/<\/code> \u2013 which the plugin registers as rewrite rules on activation (on a site without pretty permalinks the same addresses take the query-string form, like WordPress' own REST API). The code stays the same when a widget is edited: the design is fetched when the page loads.<\/p>\n\n<!--section=faq-->\n<dl>\n<dt id=\"do%20i%20need%20an%20elevenlabs%20account%3F\"><h3>Do I need an ElevenLabs account?<\/h3><\/dt>\n<dd><p>Yes. The voice agent itself \u2013 its prompt, voice, knowledge and conversation settings \u2013 is built and run in your ElevenLabs account. This plugin puts the Call button on your website and connects it to that agent. ElevenLabs bills you directly for the calls.<\/p><\/dd>\n<dt id=\"do%20i%20need%20an%20api%20key%3F\"><h3>Do I need an API key?<\/h3><\/dt>\n<dd><p>Only for an agent that has <em>Enable authentication<\/em> switched on at ElevenLabs. A public agent is called with its Agent ID alone. With authentication, this site requests a short-lived conversation token from ElevenLabs with your key for every call; the key is stored encrypted on your server and never sent to the browser.<\/p><\/dd>\n<dt id=\"where%20does%20the%20conversation%20happen%3F\"><h3>Where does the conversation happen?<\/h3><\/dt>\n<dd><p>Between the visitor's browser and ElevenLabs. This plugin does not store what is said: the transcript is shown live in the widget and can be downloaded by the visitor as a PDF, and that is all.<\/p><\/dd>\n<dt id=\"can%20i%20use%20more%20than%20one%20widget%3F\"><h3>Can I use more than one widget?<\/h3><\/dt>\n<dd><p>Yes \u2013 as many as you like, each with its own agent, design and placement.<\/p><\/dd>\n<dt id=\"which%20languages%20are%20supported%3F\"><h3>Which languages are supported?<\/h3><\/dt>\n<dd><p>The admin pages and the texts the widget generates itself come in English, German, French, Spanish, Turkish, Russian, Arabic, Simplified Chinese and Persian (chosen under <em>Settings \u2192 General<\/em>). The language the agent speaks is a setting of the agent at ElevenLabs.<\/p><\/dd>\n<dt id=\"what%20does%20the%20pro%20edition%20add%3F\"><h3>What does the Pro edition add?<\/h3><\/dt>\n<dd><p>The Agent Builder (agents created in your ElevenLabs account from your business, website and knowledge base), the WordPress, WooCommerce, MCP and Vision tools, live video avatars, uploads during a call, and Conversations with AI reports. See https:\/\/pvs-computer.com\/pricing\/#plans. The Pro edition is installed over this one and keeps every widget and setting.<\/p><\/dd>\n\n<\/dl>\n\n<!--section=changelog-->\n<h4>2.11.1<\/h4>\n\n<ul>\n<li>First release in the WordPress plugin directory. The version number follows the Pro edition of PVS AI Voice, which this plugin shares its widgets and settings with.<\/li>\n<\/ul>","raw_excerpt":"A Call button for your website: visitors talk to your ElevenLabs voice agent in a widget you design yourself.","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin\/398511","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin"}],"about":[{"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/types\/plugin"}],"replies":[{"embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/comments?post=398511"}],"author":[{"embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wporg\/v1\/users\/pvscomputer"}],"wp:attachment":[{"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/media?parent=398511"}],"wp:term":[{"taxonomy":"plugin_section","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_section?post=398511"},{"taxonomy":"plugin_tags","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_tags?post=398511"},{"taxonomy":"plugin_category","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_category?post=398511"},{"taxonomy":"plugin_contributors","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_contributors?post=398511"},{"taxonomy":"plugin_business_model","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_business_model?post=398511"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}