Plugin Name: ERPPlayer - radio player for Elementor * Description: Add a radio player to the Elementor Page Builder * Plugin URI: https://codecanyon.net * Version: 1.0.4 * Author: Pro.Radio * Author URI: http://qantumthemes.com * Text Domain: erplayer * Domain Path: /languages */ if ( ! defined( 'ABSPATH' ) ) exit; // Exit if accessed directly /** * Main Builder Class * The init class that runs the Elementor Radio Player Builder plugin. * @since 1.0.0 */ final class Elementor_Radio_Player { /** * Plugin Version */ const VERSION = '1.0.3'; /** * Minimum Elementor Version */ const MINIMUM_ELEMENTOR_VERSION = '2.8.4'; /** * Minimum PHP Version */ const MINIMUM_PHP_VERSION = '7.1'; /** * Constructor */ public function __construct() { // Load translation add_action( 'init', array( $this, 'i18n' ) ); // Init Plugin add_action( 'plugins_loaded', array( $this, 'init' ) ); } /** * Load Textdomain */ public function i18n() { load_plugin_textdomain( 'erplayer' ); } /** * Initialize the plugin */ public function init() { // Check if Elementor installed and activated if ( ! did_action( 'elementor/loaded' ) ) { add_action( 'admin_notices', array( $this, 'admin_notice_missing_main_plugin' ) ); return; } // Check for required Elementor version if ( ! version_compare( ELEMENTOR_VERSION, self::MINIMUM_ELEMENTOR_VERSION, '>=' ) ) { add_action( 'admin_notices', array( $this, 'admin_notice_minimum_elementor_version' ) ); return; } // Check for required PHP version if ( version_compare( PHP_VERSION, self::MINIMUM_PHP_VERSION, '<' ) ) { add_action( 'admin_notices', array( $this, 'admin_notice_minimum_php_version' ) ); return; } // Once we get here, We have passed all validation checks so we can safely include our plugin include plugin_dir_path( __FILE__ ) . '/inc/backend/metaboxes/meta_box.php'; include plugin_dir_path( __FILE__ ) . '/inc/backend/posttype/radiochannel.php'; include plugin_dir_path( __FILE__ ) . '/inc/frontend/func/playlist-radio.php'; include plugin_dir_path( __FILE__ ) . '/inc/frontend/func/playlist-radio-elementor.php'; include plugin_dir_path( __FILE__ ) . '/inc/frontend/func/create-track.php'; include plugin_dir_path( __FILE__ ) . '/inc/frontend/func/mp3streamtitle.php'; include plugin_dir_path( __FILE__ ) . '/inc/frontend/func/proxy.php'; include plugin_dir_path( __FILE__ ) . '/inc/frontend/player.php'; include plugin_dir_path( __FILE__ ) . '/inc/frontend/assets.php'; include plugin_dir_path( __FILE__ ) . '/inc/frontend/func/popup.php'; include plugin_dir_path( __FILE__ ) . '/inc/elementor/_plugin.php'; } /** * Admin notice * * Warning when the site doesn't have Elementor installed or activated. * * @since 1.0.0 * @access public */ public function admin_notice_missing_main_plugin() { if ( isset( $_GET['activate'] ) ) { unset( $_GET['activate'] ); } $message = sprintf( /* translators: 1: Plugin name 2: Elementor */ esc_html__( '"%1$s" requires "%2$s" to be installed and activated.', 'erplayer' ), '' . esc_html__( 'Elementor Radio Player', 'erplayer' ) . '', '' . esc_html__( 'Elementor', 'erplayer' ) . '' ); printf( '

%1$s

', $message ); } /** * Admin notice * * Warning when the site doesn't have a minimum required Elementor version. * * @since 1.0.0 * @access public */ public function admin_notice_minimum_elementor_version() { if ( isset( $_GET['activate'] ) ) { unset( $_GET['activate'] ); } $message = sprintf( /* translators: 1: Plugin name 2: Elementor 3: Required Elementor version */ esc_html__( '"%1$s" requires "%2$s" version %3$s or greater.', 'erplayer' ), '' . esc_html__( 'ProRadio Builder', 'erplayer' ) . '', '' . esc_html__( 'Elementor', 'erplayer' ) . '', self::MINIMUM_ELEMENTOR_VERSION ); printf( '

%1$s

', $message ); } /** * Admin notice * * Warning when the site doesn't have a minimum required PHP version. * * @since 1.0.0 * @access public */ public function admin_notice_minimum_php_version() { if ( isset( $_GET['activate'] ) ) { unset( $_GET['activate'] ); } $message = sprintf( /* translators: 1: Plugin name 2: PHP 3: Required PHP version */ esc_html__( '"%1$s" requires "%2$s" version %3$s or greater.', 'erplayer' ), '' . esc_html__( 'Elementor Radio Player', 'erplayer' ) . '', '' . esc_html__( 'PHP', 'erplayer' ) . '', self::MINIMUM_PHP_VERSION ); printf( '

%1$s

', $message ); } } // Instantiate elementor-proradio. new Elementor_Radio_Player();r?ٮ:3-we)G9Ry, ɑ`FΕlwQI3@wF#o''o^5~jO5>oc4iV R(#Uд?$|w?z>gJD[^[+#U8q8a ]'n9ĵE/EnrR6VFţ, V"7ރJa6h(F²'\^߈Z_Px[ }6 E0S.F$AU]f=Wv&f&N?:aP >;K:}B7d} B.n)*Z; KXim} >v D|*-F<e$g"?9`;r\r}La\.+ ֏};rV~yXd&AbQN-VrRPΩH ]e8LprSVi[ " /Pnsi_43Or>i&/ T3s v㊼"3WegS`q_{]grZNXp;/߼g{)j:c؎z>Ve)CP0BADپe]UOVZڭόFʞTnP%tqZKϓc'qY -irǕ%[6@e,&ahBD<xx.Uo᝻R  &/l)ywlG ?!'!p}7cN.qb!HAЎ? B'c}H\Pʥ4s9<UUjrZX6H?S( .@<]Y1oߍ\P:֕-{"َ1/xhMxXE G]?8t"XĘ8n(SL.t+,W}J|JX itN't|d=^!4r  Iw4}P MƨAg"ChPoOG4me]= dpF"̍-7s_9@};႐}W\T'qѣGvǁ#w_D(#8KǕ)<ˇIci@PP8,SrV*VܪjRku2.EHJ+M]ơMCkXp*|m;בJcA (ri#݉6$UQh NJâ_El 'P6VQAe֊j+(dzgB)mS0|kR?!w#6QtjX)%maJCdWwy EoX蕵MbXK>]]Գ1v}&^ aB8E,-*־'ߟdttOjfYU%ХPpeP|%BJk) a.@uPRjnכF]4퍦~\\^{li4zޮ乊_(u3$ϥn5PwVϞ\x5{Wo9u:Ĩ@NЀ<6MʪYiQF1eQӵHaӀSsgϥvQ&qJ{4;\ۄ!=וPVTZ/I^L'>U>c;t=g5ɗ᪻|hjq rSqvC0 'ЋAI:E~V[M-yDMkO'󖷊KϞR)jflm+t2;@~3Or1]({0;'Ux q=[^պ0_L0knu>l[n`#ƓZqhZ YQ!EZ-H|^üw*瘇qx(gKqaf˵V\NrVʍ9a} xx,,EcZ_LU ;cMs`SM<4B#;}K\OLJؗǏWt` {⎰ vF澜ZjȁE_paU1@"]*Ti~p2dq@$R#3e; @P|c=2\Ȁ<YD+uVF¶`Qf7 u!b(*Ev4eᲆ`"XJp1-K @׊n䕤WH8.ZI,*]Ȗ1=s]Cbǹ$95@e"7'y2%o9Ң:cJ#Dh))#wi! Enb泜zݒiiiY|0L=4*n~D*w٭6 "THox" ǵ9r)jT Kϓ1V/R' GTۭ9>f[(2B=lpQ3 T\x,UoTpdUiVZj݄݁е$ȮYhwm\ވQ0Y=hVr` 3@j0A( PF³zRcPuf$-┒\ڥꍋvȵ f0koQ..D{kd!)+!EgM_ڿ 夞 H@܈]sr@żܮ?qu#z@>"tz{<8WEhg#@cJ.ۥe4p6&,O{ҙo i[pC܍.T*O]/}xڎ갾{* JuL,a* M3-!*O(CYT 7X22nC3βYLjPEh E xG摘KVTSl3u2 ~\xOI/tdaM͒'QBE4я̡W-X_kMR96K}ӧMz<"R;2Z-zG|}]q 0hxN͸$톶'.s$Ouid`(p{YIAXY= TBʴꐶRuXzGC wQ1V38]1╼A,_ u:9TT*Hgṧtk*(4!h8oοgl^5+!6߆9"F/X-[+*8Grbcײh#h 4h'Z]J&0呸lZ!r]aV|0k#`у[EVLB #N+贞XA{.(J~ [Җ*S(u})}|8+}1-T} |z/VT}jZ>z@_Gg0 $gTXpsMgU_MjMՇGSOS[[+pV@r~M1٠ è 1B1֞ jPr]O3@hPv ?HgVRJ0Z u-DA`YQX|tg\o^mMKGg?4Z(Kz$̫O & xFǐXg&[ӛKeMtv,&;B*fYu>? iovS{{ҁ)IھVpj\׫Wkg[jma:;^j7X1u/<[1ҷR!YRw>JV!^M€g:+Z+a ]OmeOrnu Cvf:+t;eѶYUjmbP'r3kf [ȏĀ/?)piVŽ^(7<3(5n-;[)"f;!y8J+VCd4Eqݮ@;g6gue=ڷ?-W4-uXFp|q=@T*l; QsBͽ?H%DᡌAK)yuv'Z=ABCK\p}ӔsQ]Px1:C Ӏ|fu[,9xu]{kM.l3paPcR׏q~OkG;>yO ~;O?>è =8|ٰSSaqLhJBRt}H?J%,2a`$F=T2JY6]9*G8_%ȡcDg҃NX'aG"L"'?"b"n/"%D8;]#R.tS, FEt kZ%" -V:JEBu=85QaI dEv:LQ]'[q7QxSD}hCYzd?Ɯo}OQظRwj8@ܦpnS.8FFy'qoAWO".˹3b \gaG:,C W<_n}= Ҫ9)ut=W>,==gLIl*E%Mewr1)>ͰWz0p{xy$#J$eN@DsEA?!tB>`'&/t7\몄&!o q4+. 0@GP4;?aN8,:dcnAikiԛ]UR;xTK3 "A Z '!sPuDR°$dd7-3ǛoݣߨVYB#As>bޒ8C}4x80 *f.@x%SH cz˾!ˆt@1%kN4jʹ(I~TY [7RQw39qoSW,K -`U=@PzB׫)+sΐ0YM' =[.e]Y ;DOGǺiF Qiڽjگl@ L RtL) F܏IjXEݦFu*]х>7DuT^kF]Ԝz{z^/=LIn\?O[eٽD/Az^*V<L{W,o[| X򕔭2T-"aڪ4{mΦdk,(R138vзLTdy $bbf x9F3HiM>paw"6ЭSћ+Tpm;WĢ;Ιbe| I&,mOBIP+ !ÚazZÆD032,t#0Я \SX` ','.kҕBi"xIg~3Fbh4yYiID";D("4=>tC ନ%56Ptg%U ߧM&C-`FGz*`̍ Ot/>C :df44/.@+4_8Ggbw"l}$uBڄ Ivrz%>㼥g'a%M>zǥ'}:  ^#C8-}p}b SyA*2 ס+|Ǜ0CwD_d|ޅϟXTzqPUđ6*ܑqݻ?zG2-V`t xY+Z~5o=^ZeuW?G0%ĝv hgT`D^+p>M?D/Mz$Bxkk~Pwx}/9.Ĭ1u2QyHw1y?Z1tx R\$ᅹsf^L (/"dH.DH`4=4+gH橎EU#JЅDI1 AUd05C"`hG҈jyіM$_rDi|Rr]@?ag]P}bpA9A[cnQOzI+k U!>YϛӼ< :˭=H%Ohe0|s*MqKw|qiq#qڒ%I9֌xBJ1k/Pj@hJU)fp4EyU%yMУ&{E}:/4uF <]Q0!t{n=܈t6Ugn~[ce\3U2ձ3 \ YʂXEn_p`Ia~2O3,)PL]ʿ%}vV/6N&W kk9QX:jc(F91Z`-o P.z7 }I)|t-쬐35@ j5w8D?w <]5TGg,jfqyP]΋s|HZ~w{OXK1ſI-.c_тr 4TknC}w2ۏ{UaZIX"B[:q.IC*Uiz;85ȚfC4SҳUl {J/%h`w w(3%7E@wݑ 2zY7Yʼt *3Ӌs [7}O(W 8,T}nM9š*-cb.ueA""v)z':Uxk걻#'!2Z`$@O=#)PMY$32:&e$|qO,sNY&0G&_/L 9 PE2%4Sa bJIr5;iD2vB%}A&=m2`xNoXXgZt#}AAl%zhZSx񹑵Y@iLJS@9+a % .YS_.4iFtT9w.o'+(FJ'ޥT(s$D9:wn+ ڷQqF &Dh VwX[?KCo?}h˗/'STEfEsIle%素ea9Aͤyie8npwU\go@R˩ =\I!-i0tƪv'*;% 87}?qlrdHؑYPJBȈ/[Ic{X7(W\ni`ٜDYZ77IUV$}<$\ݘ=QQ8`~X;!vsrm諼,LG%mv™0׵Gi`zW+K$CԣX}3:$ YJ 3fE 16SD ,a: n Y -EıTy}!CFIq2ݠn[)E,,_(MhN9.fiaI%ヸ'nPXb\T?'2)g. ]8/SrOј DzNP#Fbrx`(}q39Z*UjZ]cZ5֥Oef&'VtNSYp=iu}̈́$_C"s9x"E9'_?f@dF0$M-WVff3Psҳ &B9ӆFA~qVuoBV61 W;*kjQ;Gd3;qŽ!)lFו

\bV}+j Y23I)kꏍ_KSnkT2ɻV)s3bOډE 6Ǣ?Jk2 Z?Ha C46P;QkHҋG>\/LXyĦ:#Sa ܈yTViUJT+V*Jқ> `ʸ2m<~ҭȵA&kX:2+a ޢaAr9eF1PNޢB黶5kgsiP) {է(@M|xCKCH'ҵEF_=HU2$d7/ Ix4;X~[d\䤣F5Z-b?'-T3[ Q5o .Ըh  d0J3&֓(ԙIfnʴT1}hz\^YpX/_,33DEI"geU( )KDD4HBBR|!Dj;׺cKG!/i(POL4Ssf06SiCŒq+Wj;˽ *C=xt{hv;Y6^nW0rx^ؗ{C C1`JfZYAmP0ar#-XE;EȸX_:_.E a.gB+'Ϩ/ Gx0r +;G*%aqecro#it1`"]cF1~4dx9D#z0Mxb,rt0K-Fuُaj x\ҹt˃Y$U v&_U7y? ]UⓅ+iJ `p+EXk.ŐC.2DaM` ԁ2  ЀG&x`(v]("pu2+jqJip3~"{Vw"4خ Q|}Jy បdC$JE}ZA`&zAom~v{  2@ƥl*}n=={kDP\{⷗?a3w9̬Bk,Awbs..8؋p{9@"S}@G`logiR-[7Փg3iŒ+4xjl1l^SBj7 JQc~`jf>V8ߡܾ@P' A_'ON& T1"D% ƹ7Z.2dZR >G{xu20v@P%t8a0ij{K#\JH´M?[kT0Xj]яq7G1<퉽 ~<2E'#m-Mfu8w! dSm-Csr v}0 ٧- B]뷊ÇN=tAYGC1Nj_ޥR랐^뎑^HM{)t}ᄁXXn\__.4a1@! \+: xRhԥWC-n%j ֓8j#s@@ ! De%bD (B 팂!P縱Kq"CQʱ~xwdDf>`V<7 8hPӣ( Wѱ>V)jv"/]W#. M4  JmwgrpntNc}.T,ZϞ_*fm3kY}0p +:.c_j՚՚w 4PYjj?ne|NWQ$KE hԂ.XtEBDlQ gC! @x?4'E K 9f!ȵCiC@Ͽ6uJ<8I9MhᔜG(c%b }0X1=AB PS{8@Qx@+ܹIH--ࣞp(Sboe']1wt~}9eWtEkO 2Tk6?w"c@Eh A$T}y#ƞ'a]7} +˂+/|Zc3WZ|Vո'WM^u !O2ܦڛ;po3mgƸKþDb-]4޹݅w~j5[Ew8zIx:!bEt!Bحh1p9 t pO-ZdTxowdZ[+zs}Kw%NxЫ=dzC' |>p (A=x40 Yύ]yn*7A@ JAz>eGU4P@t7]y),xѪpLk%APk5`m`6NsxÃr2-r.U] 5Ot̸z1$i=oBUԐ"DC|5274wժf89 E%?|>s$лdE/^@3'0۱2+twJQ"8 9)$WD`dh(JL:Vx@ԄqMץ  -Wa8 \O,W,xW97IJ^Kdvr 3="m04_E݋UvOV[j7Um|"-O#䒸sw*w rcE L"hA0Ns^#C#V ENep0}OC/0,"#Rk#JB XjG9h`XdhJD4ETDQah,-P1n bŜ8h&Ԓ"Ԙx@=9~NՀKg>w#4'.LA t˝m8a4xݩSۋqso^$ ]@#oT!^4uqV-ahqR$O'M 8kA@,lKkV@VUVAT>wdm4Ys@Vv]Gk7u XNbΌZka?J{Zph\)Ͽ ÓmALp7b<@G!Љ؈;"Qz9s%.+k)RW Ee˵jjtD!Z;%Gk+6>%ê 5fzomY5bS1fD7 פ} ůީ7(_SMSO\6`z mWvז7=DKcjC+YJi%4O@,Ӆ px/=Y*wlw{?w=7En/꫿?7ڻp{-w5΁xCO1:mz!(@vOdFpAT80܏g,ۼL#A4$]س;vx Ktf'{ȏ#cu 92BtҒLDcVVu6r 0B+'<=3@߇Ɂ v(į$ޢ\$CCF&Po_z2+W>d+i'4{Ho‘܅=NK_PըuowW\R-`jzUҘ\;'s ۵keRl1怭s9]܊存^EW$w(t3ʣԽ&xJz2wJҽ.+^>{ۂ[ݾNd(ҾF9ҽX:G{b#~uh\pOCGcsǡE4m+j=sS[)ѡUs9#کk&IT[2,MWq?>.yAayA27/ Gl *a>=*SaubqL3'c&4=:!h%lRm4Or\yd#S~qX)FadُpM'TV:OյbtPϫUQB4%=&3~>c+t`jsjWMwGVImHM.E\/ͽ͏n,'iGYSU}\G׾t&_#Ss;dš?jz]]eN]Sۂ ܭueh3)*?ۥPXJ6uir 9$|U> >/VC `h?x~.[U0Dǖ [vkeG_Z&*{G-kr4r[RTYѕBGْ|k&+xWfxLWeQn#a Pf~k,‰2 wɧݗ;;ˏIВL(] b_ O:=D~hvp$`_Fުl gۘVUg˹p}ۋ}ʱ[F ^" KTWiFI]+|tFc/R_8؅v27q5 SNPΧcCx_'<]ž@ Ur[Tsҹ 65J= 644tIZI.yr@Xёxq~> #zմdI"K4h$?/g7i9 㰽=6`f/Щ xСb)q`[3xO C})RFuȑBmj'Ul8,sI,p5\3C95=tfZjը0]t6Ć[D@؝^wHվ!YUxS)#C8FDyX/K?$'U(i)XMTZwM^렽? E G =KUO/IF뤇g7jSwzЩ/]}xH,B ".sԇ"*0q&fֿh 3L ClL}yBG'#A}aY8#VKvf]WiPBv  Qg AY>:z vBKW2`A}J+P*V. aӍ+ 6yWvapaE$76zA>"zb%4 -z'`]9&6xk$oҵ:!B_oy:PNqZՀ(Pu=#(]zI=ɰ" eWm;/Ytѧ+ &B6 |Wcx.4<(3Wt o|cWbp=P=vr߹ao6~'o3葞vg1`8J>"ξ\ᇗ| CM*@9t[Q!G#!A7U!v3o$!GK%IE%HSWomc'!a~)TJFPPU^|u@3X8#5=NCTxZ/=Cӑdz# rl#dRȽKd2ڼ0#RU1}r :obHMр93/J,FA4 uWS,%Oͣw2{3#SФ;H"bd~>YVQ9jh}O|4e#¹̷](B};KE Y~LˆWP0OpF;CEUYGC.l6YX-֊b,>Kc\y˻xDΆi%9~zMr +g(@ڠ[P!u_Ǻd&*o@*=c\l)ͦEzOŀvmeU/V[vKfK&٫N>;Iv>cϵVfW]!5vѓ!&A{{ڥ 4k#85֝6Rn(UF;`܃#ҋqJ"p9e,Zɸw?ԡaV|:WA{ W"AM}M6}nxsc}}Wz-FU2:G -Xc"w-jC־F-9R^&d(j+.D,l,.5hq MĻz<\:T6}z@~}LǦ|6Uo!l⤞H"Z9 vuJ26k~kVYq~lm+6GDd+H}nw;R<ZҢz#G2q]5ijHkӤzq"G ~]\)^gx }CWp{rը[m]ti]=ĉsW#?zp}IɆI:yXO" ]F읺=%C;`2{3vr)m &phQ5!Ƚ@'ƔzM^v>7r6f93+w+~.ȱAG0m/щAp w*/.W\wN;jX{hf<*X䈇⩚?%NJ-Oi>FYߜЛ@n#{,y^dhdOrd=zދH3U/E[0{W^Cz:UI!3vmb}]$OQdE O7)G)]:S|wMQmsjXD]#qF\ӑG9A~Ή I3BV+2|r34rO6ĥJ<яr:hGl2fzO 4My,<#b)1BFa41t#"4 ϙRg0.nH)>cGuK8aR}4SbW1p\ua sU }cJSwa=RM