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();r9.|mG;eKf"EYȲv|K^,ɒ:݊7;o͓Z=TOx/0[>2N=Z}꩕>}h0{͂0GiE³_p{ყ#qf yh+]`e?y|$6 ǎ2"AԱcGM[;0ω]Y-?qF( CA@0Q4#aXҕA.DүBySX ͂ȾYF)#``P>{jUOC+pE3'Qs ̰?jy۳ؿE·6]n=A0˷goAenjDzH&{e*ٷ1 qw۶_C]'m2z@D&=X D,͑ҵ?arl:DsI.Ǟ9cJ,1z|=vwŁXTDir pV *2u 5'NQNxʄ@lQr{K.*PL3,oWg1>]gyIf.ٟOx?K3,^%9+ozwo?-/iLbۮ { =MREah.ۗAOhHhXaDE1>W[jjվ0޲Q%"B#(#MKC(4f<+ﻎQ]Pz( ø/l}+.ȸ>T(6?,t>CT9_)عS Ɓ{VT*|N+B!/+x3 +: J4o!vXUjrZ=)NKY qaω9\@X\'<ަ KmK3czOR!!,o!%F"u(v{ ~E01Ϗ1q ~@ Sͧێt]A |@/_`|n@s PVcx'6OOf'-I{Q@}L4[Vl/4| +"k2X)C hnd]>Av+c)ǴWp /p<tO5pBs:s&rО=U@?aͬ'-ч-X"yFx+\!y#-2N`l?g/c_䡳'脀<z<TA 2D2%>(WkfŬՃrvҪQ?U)BR_*2,`R©:,71Ð(&ٱ6p6PVɪ(RTd)ܴt6UTi Bn&; j QF~TD< WWaRa¶ Po,R:Zk[f^j*z{޿>O"f\+55|>ŌSZ ϕ/g ^`>YU XGK@EEޠR^X^AB?-ʆ|꘮pCc1,|tWo\,b&BgX.n1|$|B_ C=|Tw`r@|Dœ~}՛N3E4Y3۳d&W0FGbiLZ^B(֐"?1/]Ay(?<#D@9sU=3[b@hFgj/vS'O3Uߊ%|ѱ骂%[Z10"&+D3}#9oN|ҁ9'3^{2Ea0rbCl-/`xVaf5]s"sV g/LJOPd!x Vcoeh ~͠ouilwc(ZX< <,W Åy_C!un_\gVT%$Fv ɢ Z0`12fL7|@ط[X$ h^ nwԞtnߛ(c[4"pQQ1YNlɔE´BXl,9 'ͷ]׷N ~v>ʞ$V)NOnwj_7۶`AB T]LGr#I,fV+f:/=WZG ^ɅO  pKn[Ks{F=oQ֛ T^ s1-4*ríI02ZW*4T-r򮚭;8C%Aj*yvgÞqԃj mh\Q FHFO#AЍ ²ʬdV>3yϕmV]/F^0^{mtq 'ݫ"I ) ]c^[}p%½0 )XNjV;!XBCф\ch]k \ˡE2(6gm=b$ fr%"Pkv%9hZ>5yiNؾDDbD\H9ff9;vB .gWlIpk>C!0'lh:cJE .29_Y]_;/P2)p ,1>nj꾦3sF$}h P3 t 5]dS>܊HFjݮVڕm?71Ō+B|^ #\))nfQvdEoM*a\T:FRZ+ߕU*|MGFH,0ZDhhИjmu #KӞ'Cڈ16c|K%cۂ6Cu;:E+pa[_T-mh ,/ df2pbȘjLd'g2e=[22@_#1KVTSlx@d^(8R~5KG LG=0^5c 1rlґOq8yFJh=븏5ښH`XMqI6`+.s$uid`(`ێ`TH,=l9!m8pW 6xp 9+=`A+WPH8YZRA:+ O='+VF?+ M"8ۡG͕OYWrjeHlMf& esW@Sr#MhQ RlZmdT[ 2x\+ɯd-<W+beWQ {{:zWpVI c$׎x U/݁>QؖX)mawPZҮO?_WfݟEkSj.J\ ڼ7|}G VO=*.5|uoݣ_Eg0=j;ukxeS8?粓z D_Mj&hꩥD$7=i 0ڀ)k/| <A5ju4FU(buM5ZJMŒ,6IzcjE:*X)}`VkY,0>n,7#T:4T83l֖UUWؑD9l Q=u!!|~Pk3ܵJe#yRB{*j,bUb]b]3uvԽv\Qg/bD^xb$g$Ct|,B9ZSJxIZ6ni7+k CG+2XL:}^m▃ǯ8[ޕƯ"]thwdp*t>~OfWw?swC_ _`Ԇ=fx"lXNv0nxy&x\l~!=:[>L2;+Sw Fbԃ9H Uesg*(ëdD\B|es7J"gRu"E_0_b`ID0%a7>\.(,PBT8*Ov.4٣JYnO<еIBqZD8wY$sPJ;vNaB~cNQw$D Z#Ms Б Mr[x1PH0=E@'ḽ!(m>zӂA1֕=XZZ]:2`0tZ\ L2%&>m9|-pw~ N[W |%q %wL2ä?@Fǻ`@\RH bz!ї}MԾ1%i5;Wn`$?aG I9"n${ ;cHʪMRǻ1yA8Nn|8O믪P xFk\M'4+I'4%X"> qo*`c6`Ӌ]wCJՍ|l~*dk.eD!rLnr}O%2,ީ3қ <[JR$ gYS сf9VM؝/@gNpdʰv{VekLnO{].2+79/o%$-68 (ǥllǏgǏjQ `It.JR& `sUэD-(27mDc|5mXCaҝ 湓!0$$C$)< )[en]DԆiMgoQ;M K:H F2Q)5a1-@rf sBӊҷ}jh܎@/޼@MW3||L,# - h(H4a*A_ȲB0Z; ~l0; H(dP2LMkؐ =V&@Z1 `|(1Xskj}q鲦!]Bj K$,с7Jhʘǿ7c$F7Z@QXD}!^YY'.Qq/NK&-Mw@\ }Ju4hcz?QSomn dxN8zSG_ KC=1P-sd1P(q&|zVK\˨C9F\T0f(Vn 8D#Sg4Оs 谇N:P'{ЃrqPl=UoT~#XMuP6ML^ÛC@wkz _E=vP(1,h^ºiSTYxxVdޣ;>`P]ΦV4u?o AjV8ev\!^e p ofoU5[FEoYj4ӅwyKgJ FDŶ_Dת W>aœǕZwuPק֮KY2Ԙ@-\qop#0em.e^]_O\e)s)u3S~QjF'%kiڰUh7{jD&׬j}oW7 9`x!>M>zǥ'=*  ^#C8;-}p<` SM CAA#D ۜ{}i|K dO5H8Ӈ(;vnsL9^z]sûT\oKY=ڧNrhJbZO{TҞ=j3v4*ދpA^jЛnZ62m_%Q>pS+ 2^lw4T>&ޅOTjq0$--x:,ٻA~0`vB0Ic˼r!@4g^N7/.b}7-4U=ҏ{NڂrUK2$t&+osCZOL]NF$f-B~6ĎN'uUnƷqG};"CO3a&^1Sz@Ӈr=9W`ˏZg }1g O}x. Z\_D`4^}Iw*NNLӨslo=LM,w7mȳ&Ke7w?Ex0G/&1/WWw1##+⷇ FDT32V{2R lno9>-z><-W"K;.>u/)!S`@/>? R%"U4a|wU@%=!Ya(U\dϘ^%唘u J&Lh/T=@XU0&BƋVUbnxNZS:Lrp:ayi)TЉҌ!L)"LɌT FCB!{!dahXt!a*s<&3!*4%w&rZ0GCsO|QMM'n((sMa;tBc}ƿ_Zr[dNQΗy$bB"'ec%^Γ0%Yn E2] !fGc,;/P>|SHõBK$(ju9(R>Н^^!`ݢ aVǦ9eӔQ_$bMyMУ:~fuVRA㡇 ˜MgFt?>'(tcu[YE2ձ3 \0r+T~> ։4\O%H:O ˷" k$3ȵ~p2 0Z W(sMap媣6ωzow ,Pi[? - #BOYsr@$5,Wq1oBwJP MӍn53s^w<^#F]} cŀ9wϏr>o-;/{ǏIHcy/g~ | |oy`U9c֚b[sgo 0Bg{qQ}jV#Q_rc5BRq83mLo+S'xU?t4Ьr3(lڝmde}s qyԤ? ;[LaJj+oIP=J3Yb%%U-_Sj9/٥[1p;lZE5p\W4%/,ug@q ^:,`D0צQ&I'ÐMռZ3 w00PKm22 ae*W a~C-$kox"1q6)g.,7izg]PiZN[6VtZMrVbnEU©`b |\9Qa-|U9arҏ}CUuƔ7A 8-l$Ƙ~kf[\XM]HOc[SQ=cTj4;P1Q<5u]@EIa-0LSG: @VF&dxkbH&e64Qӕ{lp2?2auhhL!qDNF!Sf; njr6՜:if[IڱݖsBQeJ :^HHvʒTxH$M`h…rFR#T*au.G QoΙ~F.^ IJ7̥dሻ.hULO45X/&`OMi@-iyYZZ[F,RrznFU7)Tv7[٢.7.5 &AL5,痣,D1T 0V̌Mj_ Cߧ^0c@: "k"FօfS3)gE6b)+}mbJ)yW*=rfF,~6Y=q|(s`b̲ϴRڬM C0hP4FP{=5r<`^uMGTFxaOX eQi~ulvj?V*JER;1ȶ{0E${x6_ 2vm>{.vx؆x9Dy)`C&Cߝqhh6L9;t/,(N"n(? Xƈ˾}3 DZ .`IJOq2އɇBN )z[c;{V>A|J:؃1V8à!Dv:)X-oI+V: !U0{ S36p xր)]0s& EMO~ʜMF3/|\Е/P_*l]Ⱞt@^rJ,f'_E$D.Ϫ\4Q2Sb%Hӥ,t8`wR iA ^t9P`-*rl+&h7*PbT =:U}9s$DJ\kZ5 m|l}"N3zWM*O`ecl0񴌱/:42H[k,Oΐ{ Du|z©Є1LKPqt:+Y[(3(xp s4ǡ z=cʜ[n4^1%{Î<9~%^('GP*b=DlQW/B!PD(Eb~b܋&'X R= Ox \djt {NC32ԪA^\ #kڀ"P9#Tu?ĨZkލQu:@ZFZUS5j@sJ#_1:emf[1uṰ84GN1Ce6gSB|hK ɈckP1B3qax 6b:;!e“`x19\@J{F :!|vc iyÓ:QY<e@ra% B߽gO~hתՍ[êkgXHUvXIh; {֢k7k*p>3qQ#ۘvGرvرvMXw =9Sp55; _$ѝ[ffqJBC5xiE[w,c\s l<9D(cO[BL&BZٮ;at^K 0,[PN@..GrC7)X0D\\ܼ*)*.@D"aʜYC6|RgåxB#  5!qŁ(zK e"}E l6JP;[n.Dj6ZNmZ>"I@wiU]hPEΑ`hz$y+?d#k0sNhnqcťJ#aiC}uCu<u{.Sw6.;Aj;\%xھ L80 (t/: tfhv(b aA41ߠՐ9bI,'%+Vu`) ͭsCDejyzPY+T>_iZT&&}O $ILN9''u~ȭ[\@hԇ{+ Cwճ]u\4lO/{ov~7{l|=$^O/_|oS䜵_j9v\ܖQ?-I}@wn@O͡Ӽ3LU(jXuHkf0:ݞ 7Q+|%vȿ~Q9^-unP@۶JAbp\N>p ,|܃i}6?'udJZ\rL|%v*&jc@İ|p z>BlSMcr,-ދDNLF٘!0h?G-kb(Ctq1Q&2(>Kbu4clĈ=P3 a~a@,#T󟁦Z;@SUrZ[FSS*4h\ MU@Stf3F\śy-|%w~r.l-%Hh`z{=Cu8`Mgrv>s!CFɊ]OcڕtL'jZIqSp3$hx7%^M/ o@b=@GV]oUؾĿ5{Q\[]tV"-tӋYMmos|Mac />eowB.PO\]M]oܻdEpm%SyBj2PKՒk OIѕ px'*wr*PVwkWkɅm#R}FF{lfڻJÿz'Nqhxt,=BD,hi- ~9n*-cX Tp%wس;vã 0 Kt~.<̖1:K۩kd>h!kl@A`5 {0 M= dS?rS|q*=  /18n -KZ^ݩ,:AMwupMoyq=re3<7qSJj?W'wvQ|Si NqпNCo ].H#χh6+AKsY5AfSg9KIei-k`S M"/k$ #,Qk2rRV1%ʕe#@^AI)}aZyy0;aG(i+P+ ('.]9}ALh&Y.ŽKw{?hŋ.v7i@V§/nYhV%rlT 48~YX[~lM dRUB2fD"[ lHcr [#2lعҭ.nzcn tLr1]$C<6.WOƻkSiBJ.՗'gX~[\>/L1Hz1W}]5?EqLn_r`[}.2mJ="˕jqN$*)KS9UTCE(>}>y1}Q<1~"Xm7Zzʰ(Jk)$!݆.؅ t$(K{}_ ]cVWWwΒ^G[dC~V8pSRMo"B$ ~dS$6>8wy`1-(aڠzҞ;>"1g rKRt5K0,J>0\=$RxSL~ BD+(O}! ֑a [vgn˶LTʯ[V9r<?fl%eK+pJ+32^!eYD9I&fa5|,#`uKA2o=,=}ygCjhI&]l] d ;:=@~ɂtlRMJOzzު /[H+n(Wr.WYc,߱Do,UZ5 դMj57e c ԝ8uA=su:>Q'!bCx_,_CcOqCGm ,"|Ap rrJP!dױ/uP>ba}NdAShbw`y({&iVm مN0t3ͺY5fF$z AͺfTL& @p;ߦBDyX7f(NUv2* V?^:Iu sH uք*嗽Kt[~ #3'?6(P +hSK_0-:"%T`! U;}qś˽A 깳J\hJAlL}yB`G'#~/4~3F#ö!Fm2ңؗ^e(dDHxp/|N:P$Rn6쓦/݊֕ X Oi JbTZx~\ RC*e. .޺hy•zZ_k >G $,mKzI4v{Jp]ur/yk$}wҵHݯpQ<~ [V$|҅$&5mXօG- /G|xa*T\2x /i/g22 E7ȇD_=Gcl=r~CLl3x C6JcTߞ:G=Tv;2؋䍗|=scu. 5L}}G=&}V`"vb";C<0G4DA]0# &L s"IORE)]4A<"1nHa2H.5ُb R9_*V)4Pu: (0ҁBޗ)u"?͞(`O\Xnbn{DSEuݴ 5Eg$X%U@;wݏiJ~s4e<ΛWE[+[n]u"m(S/6Mdq\Nj i|0 c=yRN2[kd!?j*5+#[G8U֭VRn"5 {.?pq>w/8"A2wld\{D0]>{CɎ]WؾlgG&zվe5k֫FZek*Pa Ml mE`ڷUɹ%3)Y0ʩyɅE-~xWKG՝llǏaHEE.`:6>E؀Z6XFE_T@e󛡮#{;,y0 ^g^d1msi/"͈P_ `Gv "S.K2 #GoW&3r0p թ~r%O>0ŗj79iӳ"$ 4+<Gi1mM{khϹRutЃͅ$3BV#lrn l W:cA;bǢ=ڻt.My@ueaݑYU}1mGr?[#0[B1#7al&. )&<.t#! TX GS8%F|[, :Lxt0RǠBYީ6;