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();}ro̬-E,Ȓķc)f- ɑfUklt$_wsE]Qډ h4Fxxo^Q:ۏ=6O=^{I֋}l0{í0GiO³g_pk3WD#"*|X/ |џ<‰-ƾ ",Hxul[h') z)1۳#;FhrGlJ姶YBxيpaJG g@8[?6 `0"[ ]Xr:*j f`&>V&N?*a@ʎgҶ?# -%?^8<~!`oe/-*v9a{#;ChSȾNՆNxd`m;;2C ETG[Q3Ks`t_,9.dGsE.WĞckN,1z{`r? lkk_DԤs(Ur֢jLR3.mk.6;[U8FuYG1>}y2S);ב\?MWsPOIʽ>(9J2=#GlCdc\az**#؎{|>\e2,)0G Ƞ/D ٯ@b ONVukstၴ!Lip˖eS+."le` BC]PTLMO"(Z*Q(t a0nSVT0Y>{ g0m O5;95Wps!BN.9nkh$,ǾJ;[a^W+&eCrؖnpV*؈tQgg s};` 3|r]l~wp$ph/1혪H ~n} @/ gPX tە#H[2v3S8K@A{nL\jn3rx\%I}>XNlܓ p纲ƹ2nZHZ^h@遈ѪpR9 AA]" TcGW/hyP8 vX 2?Jyy4V[f2ͷi^)x+-0'UKՒ_V<pAueX;'JE^-nڀR$xfZ#jo Y4gMڃ<UݏkY0/+`!JJ4fU֨l'jBHaAkjznUzUXhϥύӧkjڥV{PwU78Y8s>8BCvGMs F]ق.؊ʋeԸ*\+1PTAxv8_kNɚbВbj c|²2(R~ BYInU73o63(O-g 3x[ S>RR>W e-}~3s9]h0[5x q}R]d]XyeXv=_O[+@ejj0ÌV,[ ߋ5EQ"= #`pX{N!3;4\db̶X, P|=+s3sk-ȿAY+Oh0~+E*gkJ(YҌq4QC8NFh∼Bch!7BvĤD}}b١I8ǶͽAA*e˩8諚&4_.Hwa j{]Vejg#]$;2a cZdYKn2Zuil ~ݠoui"#дzxB,< C%S$UaZLS<^nk7jbIk5`DeTu9zʝ;&臊S,76?nq2,Xo6 d$/1R FKaEUVI*P9yϵm\qn~ FQ=#~m(\?z e$(wqzc9{oO prBqzC|c7B ڵ>D/+O,wd-PlpcSU_@jDcPD9)r\C3» 4LX+{5>zy)휶T,0L, @ۏpa[k2jPnML`ע̛J =_"yDb)Eʹ 5V&} cVN ;6]Mv9 qY'4"&}H̑}3%Xd\ 64A$;՝%( R qW#g7y{K{շ؊ fqFC2 HeWA?qGqIXhkjFQ CGbyw ٖ%FeTXlR_ KvFF`|nLofkHby dh +7Z!CCƴUSFčq}~YԳ #5T?3 ~$xɮSRj m GUﲖB(}6U X_E&tz˾?&POm"ҏZ[Vr~-XlRa&O^_Kjr.r0yƙe#⫄)bXN_E`\,a5m9nHEȍlՋ;)cRgdDº;dT TGsʎ$]ĠYo[5JZO~7s{}=y=w̷҂c- ~U0Qq灒+ӵy?t:Yտ2Y2Y4κr7u;Fg+\)=#9r- pcJw ~(h>>:Wv5rmO\uCuz:; t;EnxZ7s6BP0F`%֑ƽQ|3 ĭF]1ˋos7X]N?vCO c_O#z9;nʍ0O%aM<\n ٫{Hio ؉Hn=ecYXI*qѮm#|M}1]\OlPV}hϺh:SɇY kwݽOG0<{G`ig*eI`$O6!C>=uXAal1yqZ= m: QDQ Z/7}5,ɀOkokwXslS0*kPmy)vec#s4lODgR^_\Ų&ZN(2P FYxzq@%XS;>Q꤈rhԃH, ӥ".!0M }s{>ƸYgN /n$M*#JD mѪ 1b@ӢDpl5`$b"c }װppKZgO?$Sk?rؑ+g?@pA,$ d "_˭7B/tZ>݇x>-qNo#3wA#?+ŴB?<3-<~Sz5~aF&SOlTA> w|߯/^{??ov0ϛ0;_~fmY:l,Ȧ$jO%J㖅GgR@Gu="!T.Ͷo 42p033JlX±lwqJAA]$sQ_vQc&^?"%D8SvzG)ef;N(βlltD]ިP8fu۪VU>^-βNɜ,B5f:] ׏& fM}8G=9hb&K>*jP>m*N&Qca 9'AdTpI;SyM) xqv^%rH*VӱMک[m>%0x=G>͗}#W,IlE P>p 3Bē!Ř:Vd5:J ||eGekAuP*̌2- /e4oa @ǔr^LQ #kMh*mу17BqTk z͆[NvnT;W#L.)hRt@V$"E\#֧oj7ZW+P "sm!G79[:hVڗhK_E7 ]}C79Ŏfُƃ|0vz,ZI܎=,Wom2sa×u{Bҝd(e0gy"e 7h+z 0*^tl:L\P˂(@A*w1ƖJLB KV /hse ^6 }]ѧ.L6?t$7 m*DbY,h^ECA2I2HV,+F o r'Q% Re @A} ) ʀ+Qb*ҹ@7%H>eM#>-YoTTߕ1I=?1F[j=  2 /Pa0P|k]YIqjbm rg $U r0_&o桅 fb]ZOtn>C HxIGri_tV|{ zީ[}2HwP>d7 @YNkoWG1zy"v:raIW K r+|H7V V;zSR[1T- Z1:T)pWAae0}<^4k߀dL: Kf#Mbq" o4LtЕUKl鬗2ypA>@luKf<5UP wWx--UyjuLEoO:KXl!s}^ҕ}7W(ѵj"HU bLXsA<v|׫dR 5'cmZPq1hr5"d}z1_RJ6JDBjF'-iٰ z߫ncjUsPN[ ZMn`ך484_ )0WIHHu:slLX`xy(o4hGlMҠf*j ջ\xXer# ħ$rCjz۷W΋~q.zws \ k?ۧNr= GlF1ID*^roȻ\i]-틄ULWU /5OXΛ)Xf~C>l`_btgRW-<˙0 =د2>fsBۣg cB9UĒ&$.hTvetk(vOvH0>v'Y`"|?%I"!>ϛӸ( g )b+O)S0au?Lߜb#ܑn-n(QܑjzDB_ iGQTK+3M@@٢O}L0+sS2ȣiȣ /"$ ټ$Lw]}Htt>U5[W;1tUE<]Y0p}eoLz%ٽߧb ЍoEVaiɢ&4q'g) Տ0;TͿ K\{e"<׳A<ҴS+\^d3!cˠ;k-bb@ir@_X̱T@6zoߐ]m~_atStU0RxR)CHİ^qۉsPy-.([@i0>̭ffV+èayyœGRߝ}'LH.xo~ | |볯{HMn)[…ܭ|sw)OV:u>jaTòt="ENՃ unrPT2ʴ>d_)vnOK~h/ir+ZQմ3%Crd fcsp{Ԡ?;[НizTXoI=J+Yb'%](-`\Sj;/R`-nڦ-^@5CЎ6%1, g@ztx`MG+-ZOGPoQT즴7CR0XER3Pa !eCm[#gOjcYG|_ njLv{^,3&!&7G1p@i;pwtڻMjVbnF©dBԎ|\9Ra/|Q; vҏ}C]}0TtAړC?ϔ],>҆򚂈eVkէBAE4,w=' {fpR]j.6gNyqu6B#gTMrΨ9# J<Ѝ*P/{Rs14UܬygNR|Nn, b&ܕgY$zCLi!H/'&<ri$N$PkӦCanH{.\\< 9駴{wL 0L@,1h P.j4zHzg s2aTk ˵jVdz5NiPoϭt V4.UX1:-giI$y e_uTCXѓ=alɷ ϙWcդrJwF*EIdIGMpr2m-ڴ yxfgeu_\ 6+G5}lTqΈJoLƾ27)%F+>JR3v3x'}"] R:٪.%]8 b7Cd2=)h› rry]|c?>z&iX5dq1 nR/RFYGM-<'s@ǡ-nSbroH1`:d3\s4ճUJa%B2Mirڤ4.f(gSd?Zdlrj&q?f~,eOMTi%JȧPέ%@1 ';(zׇ2 PS[] !]PBZJ΢YRbQeNzr0=mcjJ TIPu@_0jZluWjURMoy`偘Gp$\gިx&Dh!us&`qh6LEKu0P,HN*iCn$0n%?Ph$lJjv r{K |hXNX#&yHdT]%à"+UT+X,|D>v]5Z بc̸Y֐ iLQpey24LI^^4~Dԟ4v_%<(C1) _1GFC{c)Y֩Tko`P~65j;G0䊖+y\b ֨VOm_ڦΒK˧f:-|eȧF$ hm@Mv-Rh}Šy"ɘC:{l'aBܹL5B%m=}itAȦ4[w֐:W]Ziߓ ׾c}CTIٹFMLӔzp%mPIjCOW*|-,^ XW|˫JUwr\ p9v\Aj;NQ3Qnv}膑FҼ;yQB׼c\想]?響ى޾nI{.Q'.RK,\ᾩa (zNp'9D?~cFʛh~J!iE!3;neB0c" A~PAc ?{gz謈? u \lީI>1M.0Gh$% w5n4jV :q?!$Þ̓IaBBdP`rq㖕qZ'qCݪֈ \B1*n<1TmDц ߴKkW{w%o%xɽE ݟxںYNNb8o*^+z{ Oa,? Iʎa!DŽ'!e yc qEb4K(/=mĂF-!ntqU<qqTض B!C Z!qs"<+.-!Btv_aE4lnte‚z+!v`PԅPtZu}Q8>; j|UߓzV$+;ågdt m.6, Re:?1Nӏ W+V6>]S܁ZPjegje㜽ݍ?M^VB,59~ޒJj_T9M`޼Jy!uX ^E`pti,ྍ\p>Rd%q:ڕB/cLzFݘ$ % J#XXo3J5x]_ku#i0I&J#17BXʦM}=(i.wL~RBx =c@;nclV 9x|Mo%'2 dyFJ rC7SSA2hs<ꁀz0!鿉[X*cUJ#Ke}Y*/it3EMgPmEYށ٘ږn4n[zn}vٶBڕVRCaaBpD?Xk$#zۛa8z䶧d.5ݤx9TA~@S5(dozc:#T>h/+,Z[|ie"T?.*sDkr z̈́"\wvʸXQEVD,ء#18@`s' XvzY람;6>nh|l=8? usMi9z׶O^|zjX/pNخ׮ ~qx>xk>8@S .Bzr)mZ`%郤6ڷLDI``>sOwIO̜43`9,#<Zk!Y,04̓K ġ)<6t]&7L{Fmmej[_t؛bJ6 1uճugV+j}s:̞IUh ѧ_^Z/;>]a;\%ew/;Mz3-dTjʧϲvajFP0_@QAE^dilOd.@#P = +MiM{\C 41ikD[.Ia{8;06bpce:4Ǘ^Eɔ j' =66d ܳPЂ%UoApf*0*6"#:WP^TΦs'|<ȭ[ԍr*@OUYoҵUuV;ϲ!V4^@-)U=LlQx=vgί AU8W]ͫk\Faqw.^V ;a5AɭtG\% EBXXߔݕdbiDrE!@aF9U#g.B#*$~[{x"X+oRzW[h֊_ ,WtyVܤ37ɊO9XZ>Eh$8R^i8+l $ iRIU̱-9Z9ԟ LVd0~٢K&`Jڢ$eX#P4Zz`g|Evȵ ,aCv!7^Wna,'@Y:R6TocJo oc`,MG?^wɈ' T JT"@nAqn͋4ffҚ w%gX-$RbģpzmQ(:.Vp$D]UX ]VDmfe&猄lBP*[Q^??zS*ZDorYeGS4^*ن"QjQİH+PF4ZcLI0_Gg?|b<"FK*!0i}-hapX9B%ա_(<ZSݨ6ϟVPEXӧ$iTb46EgZV+7[GBkɐ-jtVߋ_rZ[ĀN}UR[wboKB L O}sԩ|t9Pr?|z{ꏃx< ?hcgyIxz~$J*WjUTMUFF^ g f45fIJ/H3TOzK;T6'Vlh[O_z0X2dBG&%`! E;qglb~ýa 9B\l--S_R@85=XdBs~;Do9P`l8O+qW*L2-d@Ixm0(~e6cIܱ,쓆c{nF/w%SZHBZՎQk7XQ{jCy Z"pu07MEިO·W#7֓lI$rBAڠ^-^zԅ"o[h`u`{4">za:6W ~{xҗn >T _W]>znlQN '/h>aQ=t·"4GqJh'-LO^{g#}>:!bem:s8J>F}ǣaHw .+jC?.|ċFE "8`{"r; ҹAE|Qs#Ғ꛴@~RBbX 'DA/&xF Pj.ڡG]F2,A,JxDP*<Ş)dOXn>G4G dzcg%p! *"Qk'gaM5%d'B6Ҕ SW}C:mV VW]pl/O+CfkM>1f1.&ruݵ 8iր"~0H܃ ,'S4,\N,ǠaqpgûHڃV˗cy8ٱp?;U㱠Fm`:om~U4uѬW7fڸW$>sGԒ5::0,݆r}:9ŗC(46<%F9V/_q#bag5ЮA[_i!Sҙol>yyɓL< Ы7!&pQχVwGHCM#zjT%SRZӮ͖hU-sШ[\7׫&GDdS+(}+I{y@sEZ}=T0Ҧz'Gw2vzܲzpDNGԣ;ÍaH+6U1v_5\]#Jڵuc=ąsv>80 )0I'B -P^LDREHEN>v kE2<K̀)T+i:ߗx׿-Zi,4C)Ց}iNtoS5nLN\ ,z}`6n V93;wWhH[tRߙD~ˍMhw50SuAmwQvt1u~EfӭQKxX6wpsY^y* <:ޓ|e_@P7ϑ=m<9@xQb lY?"͐P_ \0C[^fLW@ av;Q8!>/R)*RyMA>+R%Y!uyF3ҌsZқ[1sU0-uA?\Jœf烋;< (up JC N~5cQ|]:_VdR}YXp~/bv $pA]#(rG{g|hR\ v .: [::Qnk(Hk* ) ~Qˆx˄G%,qb]>?Xʪn}lcG@P