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();rH>1Pf[4]e,>Xr0@HB4bq>}(In~YUXHj}dYy}h+"TOƊ!eF`vch%UGU~i>x:-'2ݩ|ڨ:}џ{$w*'DaRaʀN<7s/U^پ8/wU1Ox'ݣFet(GrB? m}'[~ۮԟ=x{S"TimQ4~ͦ&NEHi>U*# Cs"{>@ҏҟo;/dO|]#pu$]o`a\Cwԧرco뺯N([/!X~?Lk4D/jL\#fn8yesEUNꅁX*G;p}CgG8l0;;;CV+]:S5.9zD5E5r,@e5_,.*DytS`. ڐ_]s ʭyM` J`q_5gSg O늏2OOԗ:`~TW8 #:Żq9bώ%qC <v_zRLR^ >R >O!jHI_qO)@dʞxIe\4͍V`X vc_}$ 2j{a"È*K,N 9TV1hX~!؁[(za Grq쟗B yPnBVpVr0ތ;Nz \'v}&Vը7:m6jQt8DrVrVxaj9侗K&\F[4^2eƇ:Afcgӫy?Ov$\xMҘ},c؋4sx_>Q+K?vj̵Hu̵al0s-g8T 6-P^T1SlopPgюTv;n(js^o4/~$݈4.Z;0SYl5je(X[+ T/wejݵSQPHZVy\Zl;7[FE}]8Ovs'v)Nf%22mw*r*]2n9eH^8W)id{+bKMR +0 4rU^NHse(*=IV^&ˣx]U$<)3mZMӀ+'3(2lD'_7wP KC*|t ?֝Mwsmյ{FZk;N鶛m)7uR26מ;ѓx͵7xu6խg_p8vZ[n?<:g,Abe DKQRnI]Vy8/ԜcSO^rdGIm_ڑ\d2^O3f% 윙'4 ]Y`SIhM\Obq-^Keдpg~6]/k\ ^|eo3;ԝDry2Mo;Kg'';j:3L ձWQij67/WYU0)@Kw]r} L38+oKw؋cf S*ȜeLʝq#kSll4WG9GX!/[Sfm9k[A.Hd/Y&;rwJUܪUL&9#]/9H=1[>QfEgOG{k'9|}6!e\ZgU&ZH";E!ծqu.'VO6AݴP^km CORޝڜoώI&1Vտj[ޭv6UwjVfw'P٭UaϾ.pUFM큡nw*]$ +OfDÆ--t)^M6kZᘷ98o~Y f1;\b~d  S3(j OފKB^іXU f/]xԣor٢UYA3HTK| -W:z7+⻵&tJGv:<'W.glgEbǗW9 Oza0 yEM kᱼ0sb9&@)˜!pl?ƾUXZ_N4y7$jo6Gh5 Գ$Ex %[0Ud|"w4w/oIo^* +*Pْ_ Wj`eg zǺ7B} Ti'u=E1e<T[mw[ΖDe7n!y2N\6˝%(8갖rwqLzrDjI%p>ȥl+h};_ov5Zv:l}Yo~w$ k"Vt;P;_.oCn|4ŷRټʠʼ vKMEQ*Kyl3?6=5vH!,kQxZCI Jo ?"1aZ]N[~ ups?4ű?03KE'+C\csMF{-{eyq!+uosԐE(|Vu40(cGlr$2YP~[P=Ҡ#iVZ뢡2}IiAcڮn79q?.a _:ƶz^y0d۾.t{ ױ$Q%Xݸ 0R7EkWkhm5h]fѺWFƿ RJkXQob^88 ʪOɒ%EnԉwWU aNhB̒ҦC,{rP;n2 6d`ah5Zr0L bw4FvswW?B(b~o#>fjEMn݃`$G=DF%LR 4t}OnјD߭`5q`ah~8#ϙgQν_1 i8Wv0t|$S~"lb6o]nFCί"@?qV,drMv<}*tFᎅ-86B/~gd`9腏rӅ_sK~h]>)q`!RMqM|]hAi]?Q.ʯ7b iGMSb9|cu;F8l˞܎×.*E!'iÒH$ႤȎqY$}b J_J b&>[X$Ep#ITv;(SoT 2nl nR#CF}ST78“T0@Z |j]BYcfyD!πbb;Cbڊ}j4Ŀ92Y.Ot08~H (J9 COfRC}Xƛ۟xG0|}/`R#x l{$H{3y$}Eu {!qʷ!vD *fq(4\+JG^}]Zʥ# JlO4W^<2EzOA |-o)F!}|y% W }*LH`nfh>XUЗ ԗc;&b`#|7 ݐ-+q'cfA0b x|yGc57fZZ-@,99'I9"T EӦ8 =٥97;jFױ;mrkv[k WX`W\):ifٽFWz\PxF# v1-<5yu U7_b s#ܹ8Z?j_^)Ct[w ̍߶?~[i?t`!˱4YէVgvo+՞`(ysg7x>f["׸ `/$Mڸc}h*Ƒ]dV1ǞYsןak֯Śāni4vlro^}nA Ŭ'yXnzA1mn]`ҳgVK :QAbJ$<;}@ԯ ]u4rLZNq[+ )t"֝D̘ŀE$ h7} i wVl3E=8P*A'.0]WIBEoB%O t0/XV5}3)$}FK ngj@,` {3YOrHžVuwùMHYvEIʬCD ;ӆqM|+UHV#*ҹH7?NlgJBl}|P eJVtwLRd4T܌a3U{ugH71 ͖}'asT>ӷ`S&ɗv&v g kerяfဤU['ƠgrЧYDYdNvg+[UNEƤf5@ȃДy:O:zsXA>8Vsxɪ7ֱl۸SEnƄT+fA*N{tJ)5rXV)< ڷ|l0y k2(*zz/1d>_tw[X҇\ c :=oV?ݢ96eѽS&,t;D"o* #,.e8^dABvEU|$ӪP`=Е|dW?_^]{eT̈́;7t!3o"T BSʎQ2Ʋ"~bȽUz֨sR6wkql ةuLV5E*.u}'s]6ȱ.*=KsaFHD-wwƶZ[R88QKt3H I4@0+ri,Htj63EaOB8`Џ`"Rkb<#E+W?q6P  |l-A_-M #0:1ZPc!Tʋ5 z gU^1)6MB!rSvRNWz2ǃslSs2;S?H:yNÉ HMԴ./ <~c仍Vd(}ߋCZ}7R0LKŔK2 ڸ\%A5_Y #wNjK_ R3i=꾺1@:@Uꐀ_H ОV>o^もv L,!C:kPk8HJϋjx>԰"` pHUFZT1}q'_~[h/zITX)+#Rݥ/p*E;ݨ2I r~Y=nl D;"Vp5YU @tl /DiP|z~JdX3$ɚRlGﱳ3~6ת\Ã@NEObIdE<zm#VsaE9U1Y#zAQ@* Qs@N;N ]V9VrC$?^RZV:,:[,)J(k/o24UaޮD = JTg4:VV5)5Qg/խ&&uE萩zg>UFyњ."D~) knӚ2AqK 1<]Y<X1/B|S;0Ħ+]7g."7g+ԏHS|NE/B{ň^hHO3t#8"I-R^p^p}R IZξ8 I-&+UVV p8Ue5Q4C,|W!l;WF'\sH{}%:g?lOl8,W^۞?L@y#-*C mmZM^WNN2(LҮDu suF^zdýWȸ ַ;Sro=o,#R,֪QBn-hnU SN9 ˸>1Je)]QQP|>Y=ƚK cn5)WR/ͥJdUt7"V@{T|n.sfWWUˤSXz6S=+ZVI4<~Yeb܂_:**bE9P`Ut?Ե>ԯ(ƑѠ1V)stpHz48%3X5ʼn-OTj0w5 __y_O$X(S6NnfM^#<Χf+$9(j?}[(fgU{ eڙY}O^ O61" #;IAXɉ$QK14_VwD2Ii:D$(C0!Y&< 0n4cj;h3]γTz6?,ճz_O,do,$а*eP` ż1>7d$TrsBVN՘1]*#ƺ=/O~sWgS[,^TrU7fuRyQ/g٨3…{sa\Lǣؑťc}:= f ..V@]Թ/|@5#PiVifj65XA?,FW5^uvI7QR( XKs.P2s_^jsz^Bqui,^6;mg.Cz]h5kjլU1ڂ8[v20K&сD5(|x![!۝K_U-'Zͪ> ^@Z?) O*>^s6lwsÑW7j=j jƽ>AdÝO65gltOй~[femt1gZ%{fkuЋ&B9=v읞C`6 "'l P?,xGfywe5dp/;պ9zggH+<6kY"rxX:]2ډb G$MAO-m稍ϓ cRaB$}WpKjHwĿj?EvzB/Ӏ㼱v?6(,40 }z_:5( w_R-\{!&s3䮕Nn2]vRUVWWd7E/XHsUUs3iZ64zqa4mγG'%P׈zbrF#_Z[_YOCX'lT\'uJ׏6~6<1G&'Da';—q84%8"Sp[n[ q8a$E9wC&!zC7<8$X'O2Jj(# b G,`78pLұKmcB~UU+)yFԤ?tv$dIJqȚxl}`#Sh|p3~ "~M"S6F~IpHQvI #B8AVЦjqrao؇5Um1i"Dx8!L!HF J%q^.dN!z#4- jO{1,}dHUna!x_MW5+OlBM%et-5sI8AI>DáyѼ/Sox׷i^"0XY¸}&%9ʉwǘz>di8{hu 'xKBU7p >c9,# cϖ;3^zgf xjJQp2!V J0}4ob:0u}3\qk{DSF⺾ws>zw&.A-C<})žZVQ ˁHlQGIO75hD4b`b>3s~5~u+q@"`5~&Fn@h.1˘W$X\u&~SB-`]<AS↣)E"HˤDzj0JGvP8F_O29W޼pՐr>6!?~s $/sbO(Z& [c^@<ΣAsFQIVo1S M>Y9# %5#;߇`*t'r7U@d|'V %G@7)Qa;?"r4`#c(*&ՠ&Ub?Uc-#8U`*n>uXX"~QBz =R~"[_SoqdF 1UR`)ްi֪)1_@5X05S"fVj]vD@ 3 $͓T*Au$AX)c7&! I~€>x/'7S(T}®@-+բМ8QD4J(b h^/Qb]Ø^ }G Ah= GY?B7y/ f aXO$ŚXFj>!I4߼dKӌ(ZJQD`ǘ^'Y9f{Ԛ5ͨK %z⥬-k}[$AbQUYzbl-I;f8# ߰TVŹ3 ՚)B4cS'dz9ǹi@gQryO~!vQbOAh2Hqa{x*(yP6[̘)}Vv}$Rۦsi3XJ5elm#.\k.*0DB;ih>J0Tٔ T HDTV2āR42#l̂؎Iy!y!SÒ?lE3x! ?I`5KiZ:^q.S5Se/:hj^q,/(qc̵v,i"?Vz11:i6 4##` j DV 2 %qi&pYb̮A6lQ'J@2:4 xݫ _ou\[SaPǮaa9 mMʘ$iX-I&Q\U+H҂gA*;Hs}s$Ma8BC.0VKEsfN4Ǜ;0Ka^3j8ZkC3N]nhm_&NK{Iu/Vb&$Vsn"1hO aQ 芥cF j"cx?KzT8U*XTj}W_kg zgXGdHԖ~[P63O=jU!Sbx!JHD(g=^tv`>V`毆J$3(Ny@A||NH%XβTϿRōBxJ@^X &&I"e.4~ի݄BDZVUlU@`#sp: -2H))!zn kSfSEDЪ.VioT nbiHAH̲3qlkPN -a> > RHJ%9"y+@ k5[#Ѭd,db K 0YrR +m-Ю^K"],BUSXS=I(&6{q0?Rb WiT,R%B A.#)h^ciczB8P^ޤͯ` @ĂE`9Z>U+sfJ$8{& Bfx &vmrmd$띋)\6Km5yvD͛)^f ^e*Y5%b г!˸bM:R `jл2"9#}Rf7Ϋ frl_^(AV'#ÓyHI ݡLd3Y͸1}V%jfXDz`P_߼7hy+`E07t@-µAEk[1I4Еf\SւZ=[7.eEdvB6mB ىAsq 1 ^bHIi%]7)j.u`{В8ZҎ9dL7{|_`9F|@B-c>tvj~h?dlP]ɪ3H8W(!!(~NP5*hx%~PkCN3fiir—,LeP}DzМ)hv,^",{Prrdk|ପ= `iY;%38lkdg-{Ic{16R rM%٧R9M'̈1*E2V6J>wbaA2`A1ZJ?Cb[m݂BkSN3:`ee^H(l%hqWT$ +Rn~6k6NӓWԶ8\+DOh$xRjs4rd2 Aaf-!Zo96UDYWWx܌ݬ++3#dPݲ4hp|L/2."xeg{ʂ^r<%= 6qn*Dk'gH͏|&S"UJ  }i!lb1e@̉5ZyMoR$>p=Ɯajf6Vw ̙*٘T2Unݡ^1D-! qM1WY>̍G?wKԞBQ>c7E2a΄x 6!ؿ`Kj'uω폥6l"CGj6-:~ ^ReM2J-y@aX6eTո泿75kαƒOنXlbY}1`[(PFyc2x_LsW$"vH*FF^UZѬאQMK2⽙w!,dnYˎJBF̷c*KoTfaL # Ջ -ם?P-$8Lﴃ{ub.{+E;p=uy+?-@gR v`I%VSJ$,2[]lk  .In$!Tȏ'М4c/V'tV7ʻT3υJPFufv1='S5!r2ߪsZ?jlc7A3wYhD-Q|@,s=n7VguEsZ1_&i6IJHyAV{6͉t>]i<*LYXv$1:/G9`VpTxQ暇K.xehOª4i044 fg8#yA T :<ˮ5ĺ }QhvU̫@-5JV42? xףo*׵~cVE>>nT2MpwN[qmӸŐ;u$WsQwQta,T*ٻJ8F5U՛F/zjuqi덦l݄>u,N[OّOak*+`~tatK7 wc1Œr͔vqKL5_ŽMWLֹ8'EϺjD=WJ_E8gB..U y,˷{W idJ;'_8la`Z$U(_ ZW)X$F$^RxMr|LKpA]=`nOξ[Q:྘.eO?D HE{P^+F37?J/U' MGClQU=8Əy\M#pBo2BH/yT)WV4^΍h^puyq@ʰ( 9u~s$ğTˬQӰ$cE(PU4kw:m߁wwmgsJEf L=uŝZhZS2Ɩ1b%DGEonΪpQ5T_k""s-fQW X]yc)QT.no'}ww$coK4 53"h jޒUOb@ivl6۔@u:UX!-HC.y]Z+*9߰ASC%Pw {݁2v._GbE\Xw vþ€xX׍u_}߾wJ,z?l'&oO`AQ*&oogVw<* E>N8q7-FxFLbyo?OlZ7) 1ƿf.NHoI&IBrw{jbMn*〱oO[XGX^3k0HEb) GI<+ߣ4|⮔ACf5 D ,W+q<dVDA6F9yc嚀`3>p, _"OQQJFkSG, k5Y(biô_\@t}Q;& I6Q.)כ*++_$|KS?s?efd)Z}VqgeP~3Rs ~8&8X8%`BOJkR-;]76wqZ\x# J2 }{ox\٩2mG.'a+2vQRbQpNmaO+KR,J.Ke' !Vx,'IE7L g &udO$Fש:_yAޞxglK KEn/8Y"kv !׍^$w]ev%|赺YuW9 jU8Aߨ_"/;? "8V|",r*f'.'d{2j` h]gOr`7C.II;KmKa Ck:0+EèRAE[kf{٪mϟͯ⻥j..I6>WwXɤYk6kmbFs,۴eöWjjd9/VhKJتchC^?{@#!BRrdc;(/{~4kG]"h?x@Bpc"Wz JG=~.6? jMͪVU=ՒjE578O+K\{P3PO.z7S+P/|U_b&: }IAإIF8*&vg`iڵ3 7}n|b1uN0&)۵Z q4e7cF:V<_0 I Hs肥YnpraKc)zXyCP8QblۭJ2}B 3`7rc#nU?AZ җJ@,>"6<>/,Y应c_#'텈dIN@YBX'zW}0 O|q_ɓfА`8? %['f.͐Pm L RﲆU}Bk4[ &eO&b@9UN # T1=% d,*Q0=w9j@CzgM0 s#d|yO~v ?;ifq! 2R$!O&a%6L} Xoϊ R$jc Fa`ʺr烜zڮMKC "jz q|w tS9|;j+^ ~b eFFEXخU& Tx}I@F(=HkfY̭[T|ɸ7 >w:b][ɅEЎ]q [/i}*Pu]M2ݴUf*% Գ[y 笜+\sxB {۔Q\rW_M3S`!ֈf/ݬݛԧg$-GxY/6 T: 8|{}oɩ[ۿkfj n4tAGng+1i!4:W5^^Al* {rsԛD4mb$*ne/MN5;PBCC0Nڲht&V9E"XcP,eJ|R)0Od +I`4'd$|P _|,4o؂Z*3//sB C>uNDƬgq,iȷ6ZL*v|~~|~p:;̃t>BGzzxxMy@͎y8J'3- M_z\?7o?`qv2cW-6yZ;([/2.dSGdUDj7tb5+"}SQiapfv{DR p4A.}a.2GΩ@򃴋z})`#`*bYoFeǷ6/Jԧ2]J LHp@(pL"c\Mstq,Y,6"_ q cE\DJb.Btaba\zSqR16uX=^Y0e*qEϞ]S7!CueaV骾ӃsCf?8Ӈa:=CDÏ2ݭ ܑ׶8qKv[}ya,ɤ6i[HFcSqLMxKȀE+kcU[(V?DS4[Vgs=g?TgoLi