From 6062b7646ca26759935a0e6754a60a6bd93a18fe Mon Sep 17 00:00:00 2001 From: Josako Date: Tue, 27 Aug 2024 10:31:33 +0200 Subject: [PATCH] - Allow multiple instances of Evie on 1 website. Shortcode is now parametrized. --- integrations/Wordpress/eveai-chat-widget.zip | Bin 14098 -> 13805 bytes .../eveai-chat-widget/eveai-chat_plugin.php | 104 ++++-------------- .../Wordpress/eveai-chat-widget/readme.txt | 22 +++- 3 files changed, 40 insertions(+), 86 deletions(-) diff --git a/integrations/Wordpress/eveai-chat-widget.zip b/integrations/Wordpress/eveai-chat-widget.zip index dce62c31e10c7ae5381f0502a1e4e132a49370b3..e65d7851db8ce35cb9266f82c0025465b64ece4e 100644 GIT binary patch delta 3294 zcmaJ@2{=@38y;q?GiFAXG?wg3*1?P{WsBcdwrpjsNJyq+XKeWxOX-A2L^KLTmZ6C3 zONf%Ol$~VBzLbxDMt!R9`mg`Y^`3Ly=RD8-&ig#)xzByubKafB#1IT&2T_kSUG78{ zacF~YhszpeP_Bs@C@|G(C%Ir@I~Ti_<8Gk zsy$vaws_02)YikEI#&vQ&R+#HLF&bygual6mvS`2nUqr z&P`65w#>)9kK?$>b(JJ32xQcr2V`Q%!1(R*5|WFWDlQOZPOSkWKWY7u z?jryk+y?$}9|TxIQhwft!YS3U*()C9WWxmD>E!X$`c3|*-@hx8YdPpSsEZ7qwt~UH zIp#5OVaFwsBlvx2IegrOT~|yX4N1& zYmaRgmB6o!4W8>Dm(U)wX#WJCy0>Z;GK;e}3^0>@4p_&+6nl#3U zyO|(!Ck9_McgMzk?08~?WV(XYS#r@pH#T5K;)*lT0RHx?EdMmv}31n}k6W~BB&pTAl+jl~~z)l!LG%g}df#P2v?wq5Nn8Rzv4 z?HQ{nPlp!x8}1B)52*Xp2Mi=`l-gaWAi1TA2&piHgc^2~vkn!1Ixlq7_^;1_J%hY6 z4ew+U$`-~$D@o$r4w8-|IS(F3^>e(LDIn*{ogfw)^)#BTcy-kAx@X?SX3BMijVjKG z%va%awM=iC51jdGx+oQ;ntScUyue~B-9c_-P?|1cW>QDnrRhqmk6Jpbg?%jP@H-+Vx`qJkk=hH*ej%hrT*cn_ z#ky@+ zS8Orm{hSWHq~+VpIK0vKT0gJ998gb9z?GIQrKz>VMM3K<>|Jg1h{W{?(#WTx>o**& z(P5^WXdb#gHSH`MtyTN%N3NW3!lBb2mDPqs*u>)>i`9>Y)F7bUk!BqAZNsxprdAO+ zKh|WIvvit*FiwJ?tDH!=h)sI!jP7OYsP&Y{2oH8OgCtod5}v+;B}!96>W#@oLSK}j z<{HE6CljbIPb4ZpmKIl^70OybPK!T-*Dh~gep*fZdSCGtS6ug>K+OpP6}MT5Mfoj+ZVbwa~C06%**N7*W3dRJo_St6>-RiTL>y=M3n|BD3ox2~Rk61{)?l^b9iVz|LqqBM$yBtlDjV8x_3)+?eTyDkO7NVSaqe@;X@+9yLHE)KKFLP-{lU*k+-Eqe;#9%L z!?qQZ1|`q7?F$S1#a!eooMipjW2Gbfvl%!J`Z2#v{#s1ddc1WdnujDoWUo)}9>RLR z$0&B`XFRi1Z&YZAel&Q&-9nchRicZ#wpd3xfIoqGE38gLqg?rQCVLZGVzEJEsSG#P zm33<{?g3n_*978waYT)qE!9`qZC`#{vEAjmH>7FMo(Lc*pTRJ(L_J zn&cq`W9HmppwiQ5P;a{&1O%dz%`c_$I}JUgs1Gp^fI`aro2`IO6s%+z>B01mVkzlF zY0&OXSb3YkOsATGTM+h=1>O`S17-4)sV8BW4Fwg=}Eyl5B_^T$F> zToe#qN}|N}woMH_f1eOncj)xk=1Jv>!{Q0VI h0wZV?kc@@X(nz7{|mHG$3p-B delta 3432 zcmZ8j2|QHm8=loNWCmj&nJ60D4931>OEK0kmW#`{mJE`R5<^N?wiyRmhc;RWDO-h# z#1O;1jit1p2uXyv@gKUkfA^l>?>pZ)@Atg#Iq&=YzVChJsM+B=97#|Z8nkr{k;EB0 z_6p#pp9Cs%2X|(eN<+7--kLwGn$u4Jbz~wm&qf@O1#8fH-#rO@$sJpBbgTdf4Eq8G zfwm*g-s+6r@06e4YMck>F3HE!@@9{bFs_fjffv0<4zf{R! zUd)zV$n#O}xthtqMS1S~=5r;L?$(P=q5+Tp+NamD>4u&}DtKt9uB{HCW`*B*o?CXg z?!i}czmAWvU|W@@^D)?g!)``7<~Y}a9Z9@=^^tn65?hs$1cAO&zz5<3ZB>;CF%tNv zs^6=v3?QN1(C^Qu0C(7hzn>F@xa4?jbH}~ShyjUkP1;ZN{g;rt?%qd6b* zYr}iNWimUrkl(~g>(;b6#ZGL1G&04?FyRr=@6^}cgpK@ea|vmlO|{N7KYzGTaHIT? zhjvBR&52I8EB|zbNVXb+=83cc;I3duHVKBXWY@~3%0}NTGtl! zeQGIM@f_Q4et{Lsg;T4c2ZSsOZdMWIa$r0eN!3u>gDGKep0Isvsy4rU2_@!lG$sWO zG-1(AiZs5M1}9V`mBA2eOKpG zfy)j;$l+%nrxnkHTdL*#F2*x}Fr`|jsS*zKJ&J$YMr&b9{!PM(*#gmn`ci!uC&E z!>&?@nj(hB4zwi&Tm>5yqm~mT3#{xdqI9hNWnCNF9T^H&Ti9E9rzs34T zn6{SdCDa{;(dE&`;VD%m@oz&)MhiH?dbC?1#9fzhw$9$am<%m8Gs6@n;N%bkFOrwg zsAj3ELmz}c{|aI3beWqQJwT5}pRPgMAf048qK1CkoiylrpsFOm!Rw{){6sPP^tH~Z z0b|QM7jYqBH}vw?OHyw%dux=uBzqRszYu30r;zL-?3k*Cf}ZbNM`l|q1P0d!)@gEH z;Ni0StqEc=dmc76kY2Odv*6||P^nesQYdon%3+pGFLLk6p!(FJmdLw{ns%G)c=%3Y zu-h?~*ST)TrHXiP_p93XW>VvAaEBS3%)z=s-r`T`sh84bq}Hl7?jd6p7c+C5qNX?J zQcJsHSZlr|&yKnVH(K8D2Ty685TT7wOouaMmc!><$2Z#Nk7`&p1wu!Y=C!MrKl}jpa=N4512p30fO%ynaK|Vuz0{0qXe>fo zSr|O2SM08~Y>S>Hx4$79?YQ=JN~2W%ite67RXc3iC4^5(1WK#ZTu+|G^rxv|Q-p1L zt;>{#suE5y9c7i4ct^0O^7qUZQXA{#5O<9MIiWkF>wTg@7AD{Po+lphw58?hVP5N8 zH*)x$Ilh)0ML&Y5J0@U&3C5G+X+6dl)XNhKg~pot^$kE~{#X-}LYDAF1xdZ)DSF{X zF>k+vHO<#k_nWL7>)mb{25s5U>krfsb+U@!FXpMe(Eye-50%b%q%EyRD!o>o@O-_%+Hw^N35IR{|K5{Gf|kfYxCUT-D)v2 z^xd~#!M7U2&n<@AGJqKVga2vh>F_=-5(Bg%#egFSB(Q*#p+&opvIYsLmiKNw8RvqV zN5y!R#av>*aB&x3w>WQIrXtzfFji4*lA~2W$jcWVW|TD_&=;r`+t6_W&Z(lr5}M6Y zhC|6-ah(rUj-u}OD4UD};vJ$%r|52j162@Q4P ztIy9@=7}fKT(!=!KHG$Z+ht@%AmqdwM)_AkWQ~-^#~U}vb{7LamX9xlH>k*PE|?Jg zi~0_~h>9WN@ZEX3^?Q{&hhPP!ZE8X}^7e#C5%P^EtE|UkE8v}{`UM`^nWogLBAnjv zTo)?$A20cYKY#BzDysfSIy9i_mD8-471lE2W%9rpZQlEy>MPoF(~f?4tG0nM&)wrH zgG;+`$INlPyR|Iu6UReOR-7Iw`@_k~OP^v^o=L}(8s{tBq&N!UP6bY(vH`wXHJ{1; zzZ)Lvh~;F!crK40Ew>pz&`&w6RzII+&A(XKOOCSJk&Jo4^GY{tZRt10I7}zrApRJ=L1S@j0Z}gL5id{l};CQXJR9x$6;iuj2v8fptT8C;A?km|E#zgE!suh+`60_EBEt=hW zR@L*tHF-%eXQ{(T_2{HUPim@551yel?a<<*z{+fhuhZN&x#+jPyQ*b*SM%4bVaDVk zQ~msNWy|O4S^GvJsF$uW-d}tzFLwVJuE98M^NmwX5S~Hr-IaN{8)@!&a{Q#^UwI zbv&~CEGcoHV>04UN_UMBCp6NlZ+}J+TB7o8TjwWw8PD)c{{*3DL6*~C#+#f~s@>+3 zykcD`Sy^^&%|YsfY(Hb^>n{-q;+hg9CIK46rCf z5V$?@D6oz@xWcSX9l6T?w<=4oyDLS6{3FqTP>dB=6v%>!*L7hopm;^O%KE#Kiv?b( zA-3c-Fsr8XV>@!?TQ(lEZMIc6{bA<1aLxQ&edw{R9D)1l`ae`6S1oS&Y>7uXybOd6 z0cthnfF6j@55%^+B#@4mhv-9rT|_hx0#yWF6A?fJ5rx8nu>Xii&|FdmblbfPirUH{ z8!rj?5ahv5KoWrhxdPi>dksT=U&F|4DbSw}8l|6NT}cW8oHX!1lK3gN8yYf@dji|R z-f2kxKzvV=`%^H?{|nANm;M!$A-J8v-^Uby!V7L^@$WBhAi2TSf98l=qOHIHLQ5Lb zh1w2bphbbqNO6I(z^0_q-zjZ_;6!OiyEGRR25G '', + 'api_key' => '', + 'domain' => '', + 'language' => 'en', + 'supported_languages' => 'en,fr,de,es' + ); + + // Merge provided attributes with defaults + $atts = shortcode_atts($defaults, $atts, 'eveai_chat'); + + // Sanitize inputs + $tenant_id = sanitize_text_field($atts['tenant_id']); + $api_key = sanitize_text_field($atts['api_key']); + $domain = esc_url_raw($atts['domain']); + $language = sanitize_text_field($atts['language']); + $supported_languages = sanitize_text_field($atts['supported_languages']); // Generate a unique ID for this instance of the chat widget $chat_id = 'chat-container-' . uniqid(); @@ -49,80 +62,3 @@ function eveai_chat_shortcode($atts) { } add_shortcode('eveai_chat', 'eveai_chat_shortcode'); -// Add admin menu -function eveai_chat_admin_menu() { - add_options_page('EveAI Chat Settings', 'EveAI Chat', 'manage_options', 'eveai-chat-settings', 'eveai_chat_settings_page'); -} -add_action('admin_menu', 'eveai_chat_admin_menu'); - -// Settings page -function eveai_chat_settings_page() { - ?> -
-

EveAI Chat Settings

-
- -
-
- Enter your EveAI Chat configuration details below:

'; -} - -function eveai_chat_tenant_id_input() { - $options = get_option('eveai_chat_options'); - echo ""; -} - -function eveai_chat_api_key_input() { - $options = get_option('eveai_chat_options'); - echo ""; -} - -function eveai_chat_domain_input() { - $options = get_option('eveai_chat_options'); - echo ""; -} - -function eveai_chat_language_input() { - $options = get_option('eveai_chat_options'); - echo ""; -} - -function eveai_chat_supported_languages_input() { - $options = get_option('eveai_chat_options'); - $supported_languages = isset($options['supported_languages']) ? $options['supported_languages'] : 'en,fr,de,es'; - echo ""; - echo "

Enter comma-separated language codes (e.g., en,fr,de,es)

"; -} - - -function eveai_chat_options_validate($input) { - $new_input = array(); - $new_input['tenant_id'] = sanitize_text_field($input['tenant_id']); - $new_input['api_key'] = sanitize_text_field($input['api_key']); - $new_input['domain'] = esc_url_raw($input['domain']); - $new_input['language'] = sanitize_text_field($input['language']); - $new_input['supported_languages'] = sanitize_text_field($input['supported_languages']); - return $new_input; -} \ No newline at end of file diff --git a/integrations/Wordpress/eveai-chat-widget/readme.txt b/integrations/Wordpress/eveai-chat-widget/readme.txt index c79d911..087696a 100644 --- a/integrations/Wordpress/eveai-chat-widget/readme.txt +++ b/integrations/Wordpress/eveai-chat-widget/readme.txt @@ -3,7 +3,7 @@ Contributors: Josako Tags: chat, ai Requires at least: 5.0 Tested up to: 5.9 -Stable tag: 1.3.0 +Stable tag: 1.4.1 License: GPLv2 or later License URI: http://www.gnu.org/licenses/gpl-2.0.html @@ -17,7 +17,18 @@ This plugin allows you to easily add the EveAI chat widget to your WordPress sit 1. Upload the `eveai-chat-widget` folder to the `/wp-content/plugins/` directory 2. Activate the plugin through the 'Plugins' menu in WordPress -3. Go to Settings > EveAI Chat to configure your chat widget parameters +3. Add EveAI Chat Widget to your page or post using the instructions below. + +== Usage == + +To add an EveAI Chat Widget to your page or post, use the following shortcode: + +[eveai_chat tenant_id="YOUR_TENANT_ID" api_key="YOUR_API_KEY" domain="YOUR_DOMAIN" language="LANGUAGE_CODE" supported_languages="COMMA_SEPARATED_LANGUAGE_CODES"] + +Example: +[eveai_chat tenant_id="123456" api_key="your_api_key_here" domain="https://your-domain.com" language="en" supported_languages="en,fr,de,es"] + +You can add multiple chat widgets with different configurations by using the shortcode multiple times with different parameters. == Frequently Asked Questions == @@ -27,6 +38,13 @@ Contact your EveAI service provider to obtain your Tenant ID, API Key, and Domai == Changelog == += 1.4.1 - 1.4...= +* Bug fixes + += 1.4.0 = +* Allow for multiple instances of Evie on the same website +* Parametrization of the shortcode + = 1.3.3 - = * ensure all attributes (also height and supportedLanguages) are set before initializing the socket * Bugfixing