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();rF(Uw3-qM,eNŷd\!0$aGUS^(INwIvMan======?lL ;d^`2C~unO{ 2cq[ #1tOwKW:5? [(8S;YR-17BA_Y(vK*{lńWhT{7l1lӇOoO'"(n×Fj|>zN\1 (\':ĵA s}7qg6ĮUa~N <{̝ϼ?;pF ?{N5` I7mP:UY!Y_AT QbSx5#nYXPɵBCLmzwZݬ5zH˞J畒(N~~^19eA7e+-<7vn-#} xdU|, w '8\t~pp#ԍ#bG[s7>_̈, {J=JxFw3~-~ϣ"R Tvx"ޫ.ujV0Vkf4K2kWe0,jVͳjwK?XSm>OW/+ dgVŦ|Db7e-縊#TI.*> :>Tg{zYY5 ֩vG(r"GD=zBʩ9,UN=fI1%X[~jv\vsG0 {FQ0eK(?CE7S,D\gws"lf[@M4vBo MkPO"ߠ}c XvB#P˫ҿsAҵ);y3M6w7S˚ڂ]ְP]#Bǹ5-t@mHKIՖȚBi8AXDʶ{j^e!p-$aFVݐtr(qɣƳi>wෳ!IE67pSo`Usӯb7V^c*_C%ǵkHdZ8û]j&./ZGg>^ @HjrB]/.閱gYr[WܫE ` k1EzUnĆ hbtՀ"Zduj&#\CID D۟C= xxf3b0 H@q1R F'⚬VVLG;4[nܴ[o/XAaߒ>Ox GoEQ73%=n&h,t^7_I3V|a'n\{;r'F>OiD!M}3%Xd] 5tx!:) Mk{B 2)q#7yo9LЀzuzudeWA?$qLbV۵̮ٸtFa r%ExE6&;bUۍlO\&$88F#Ϊf-?8k3xAt98w*E~hHzly[x(/፾ʣ>v|ic9{Aoi"M/ɾNw7Mf"SM|6RD(݇ZjjGE|EG"[࢈o~EoG^ _G;_7hNq|^m *`7\\uqӨs׵R}D>-=v7An-X|0k O_.D5|Z거~ k00ey&8*݄|2Aڒ5,H,b #)5l ![.YBث%w)cbNY3"a]}½aӔKUFsҁɎYNsZߩv,<q.& Mݑp7 Ҟ{c- ڽ_1Q+%+ӵy?t:Y_2YYgK]'FtW&AŘ)];M'>R#^3 G:xZ a_Q- U:u-:jAVkxˬͮm!L`$֑ƳQ|3 ĭF'bǟCnT7b{$60݄ɰ^r#3 `8g>ho ٫ߗ7N7WDwnEes*FÏϟ>Q@{tdG7ZoD(51|,IA䨆bY7Z=C? 郈Eziͽ;јG8UmV۪2`Č'`7OD+6L_JDظE%%?Ue@!8~eJx0~L,&VQ Ey\@Rq`h ME=}XmJL'-LH:zfS !>J*v.&G96e Jx!%.x>§Vq`kJ !1ڤF\ ʕzU߬rD}2aixw}>d p1I _zK?'K}[s~y^1o~x~'ad)ZȟO˩%ξ2[㎃ub(!_M+CɰYRZ6 dFzQ5ff=H =zu+<'Χ$29}J8S~j L$v 1+;}\d1"r/y6h=y:蕾mshίt*XLSF1^j*,ɨDs" Aj5PGCö=|Bp&&D+a&}3Sc[9Z?ĜB x@x&6fG}?b)u4DMUܦ}<Sa8}/ DZY]0b[;iԴהbKqTF7IBv6SiS4tn[s-!0H`I~,B HdWG!Ō<Q 3#݉9}h#?Qs%8t">b'hU/u׍S ҩI Cq$+.0Bx35w4Jq#yfЖS7E$c}CVr5xHiACˣ% rudR.°%LW [ϿS~C7‰K> 2 1)g<iU,;:Ur@6e %ԅ^LJt()AH3@ʲBM"'N(^^OU`؇S>ƽOILXz@U+ U9A=(j+sfv0 =e[ Wl]U18v?K2%v~Ulk R47hky)т$SbHRm-6uip>1#1v]k͆;nAi7"+m Z.?(aٿ@/r^*'tx dGW[tTqD Gi*՛TX1-] =w3w=E6hs\t;j ^"=X"5`;&e>#uTm ޾0;pG{QC0acN(ATe9#m\"˝tHX #g/ 0/9;O{_ dQA[$oc3oN{H<2)g} <ȫ5ՙtJ; pR C*ehyh\f_.`&c la#Cg$\-jE^ 3 WM F\Hz+=7KOr8=C\Y-Xac/@EjoWLUdDxNF0iLG*<ͣVx}IXVz;9QɲR/ c9b[89핊N]tO$cy")sT;Cڐ> ']qCWԗtt+ x(+ VPv7Z#^TcBoУV4ujutPS:_Jhq} }]vZq%&#KJvbIi!,/X(r,e_2Y=N[iwiˈpGyX=N-&wڶ5n7])a3ݓw15ZՐͣ |2 )6&&qvQktx* _:yPO5ƣ;W*w6 2y]׮5Os@ă3]b&3܀6O#T+새aRaay$//#C) iGWЖz~#]И@'#鱔2W7]釴y Tke_8nW˝:' yF;(:Ov&wȤK*Ӓek*үkT.dtJ^X&O ^4^dD w.|;I,]},֬Y@ڥ_rs 1Qok6;hWz>'Py~X"JvKj06/{q_QFV@wFjy+^R;.rX]yO@ Gi(uO؎V҇Jz2xcx=1h0>CRpI*qN^w N )_Ҷ'i2 Td)H^*N/“%Sr̾͘>m]˽~Q8%,@]JomJ(F$&0:^ƨu:Z;}sr(=e%V[BO0M|㼬\;s X|xAlGx( FP+]_ūcpIë0< g&BSn22JYrb EG1s(dK(gIZ>/(KyZ񅵎Z/*Ky *Lsg eLd &Ed\Ĝ&Aid+UمEqt yse!q 'ꄟJ:M^,hDu@n,}2c$%GI-.'ye~ZKm NI^-8I߭yl1eRN: XhX5w;Ds˛;֛;Κ;x'?З,'JQV{ Y̊^A ڽ]-dbFy2h A/#籠$LQ>&:zMVU'ޞ>LS0yMHv)?DI&6O nlͧYe%ˊ$4q맏J?Oa n"(/@EO5'\H:hB\^fLYʼyJ kS%EL;|󚔅oK@mI@Mٗ '𔝗2xβ+ T<h4BK= 7Fz%lyC@}#cn/o ybiWbHi I2ܷZf蘭fEy6~ӄh*v8(ƔZZ"g~9 : }e? ϽI'}岀 =!)ީT<>?aU sC^feR&-Z6`_x7#j%&ButǠ_`:L$ cw3bURb8:q=V%&Bv#Fx>.U|V˫nUyŔ\%HK~7&65OO c[H:nxDUbicIyD €\c:4SPV3HƔ{}sX-|)u b#* Y`vJ|ʤ\Q2LΨWU.1C|!Ts̔ 3 S1*ǀ:z XɽrmGF y`6ČL%DɪCYɊ!$1:3E9 ӹAQZl3?Cke фcx*~;pB zz`ȍ(&@WoѮZ &&}r;6Y"jN" {[&gSPԟ`Xg PP#. j[jr$Hw8e RF̧:Popv&2 3f4ul(IG@"Z)0M!fxзHx8zS:< HJx N\4)BK~vKGoiƫt; Ѵ|#[ H),>^Yr|nYԡFTE9jPHrn?.t ?lЮ0hp*ϼ?;fdp2] mOfyμr| &]<Ύo.wxw#;TLY^GMq}NS͚gMmuwP<;_N3>x:0@EFOxo#?O*`޻hibBCq8 eIJ6S _@*Q"iٗԆw%Nvуl"x+r~"MrU<<ûY`؂4E"f*I41\8Y3XRDȺA~=6.K6NRC]6,CFYP)/̒}QX,}Fsa[aZU7 viOFB*j%4ǥe"ԓ82Z,{"wJ֌CyKHYJ#.Bgi^1,">A+b?p:7hY@N3.§0Io)H ^p].xP4'ɌDazNY= CEqHr+2ar˴2kdvFK<դz:P58ܺl^aE[WVW-Ht Y:zi9=)8=95k̴v6jlέtSUd|"r iX$KVA [YdcX-}TWP 9S]}cٰAI$@gIґsIwlv1M Z .U"4vjQ}yg|y4HvT*쩴yByזVvNn|f{7kz7ƈ`_m>tZz-̦uT5B -ApI&*=%m6s!Bʍiܸ/TPKN8URB*IT||Bd̦zdl-fUx.4WVvCk3f/}Ⱦ.NWc7F%@*oا*Y]Z ;6Cl!]7f<6 }C)K7^3' K%+z'O=P-{13aTXK}kbtu kfY5?FVs8Z w Co:lYnic۩p֛N&0q ~ ѿ@"~J!Vϥ3 (łYtK{@vۭ׭Oӧ-,Zީoa6,-~0+~lG|6i~jZ+"ͨ2&%z6/b|Fl]YĮ_ߵ?˗ WVr1\G蘆p}qސMj_wl8ʻugxCUzp! >wfaAүͫqRCOZy<j4el w7Po8s݌sR.3eHWnF~NMU7}XL پgGia×AeJ )d&*#%_ЎS  =[~#fMe7ZxgMVSvSk̯K.Ldta DoFE.pΝk߬~-F49o_tMu-_TjM/fM~xiݮ_w:_nTҰ`8f^G#g'-h+TD'©>{v]_WWgP4EZj G~'{>: BUPGݒb.z]eiYUz]QRkonI9XVn1[a^j,^=Wp9.Z-F\xgTs'Gf0@Y* fTsEҶ([xgzEb3qIXa BLrU$ZWHP4""UެX)-.*/uNrʊ"9zo.ay_aiLK<]$1?yRr KAN'%]ph\6ɥaf@#toS-$Em{$&Hڂ5ZmꑟM ΆN~ݝ lVTLH5ܹ4z>vJ%>pk"$;\s3o+MXn.8?57@xܸ-Tc'=*ɔ;ڬqԵ=aʝc=ضs~c穥 Z4[E'ԭ=DM^^'^ ]XD7yobf\uYlCȿUZ]x담JxS: ]hN#8K|D>dr(.>>s/ LupԘaX`/xOG 1zaj#@~I[~~ҫ?@ Y?VVW+kdMYi{o$|]8b#ܘ:,#xv$`s5 D@>,~^O9Ԭe 0C婨^ lXHxÿ__ȼxI{󆝝Գ?&(E+Î(8U&¿E>t ,@>l Vġ| /f~j|`}t6X=GpiTUΐmoP`>G"&sms3VF{w/43'.a%PM)d ߻&eЛ?~O"(Gձ&Tgѷt$s-Tb{G%<1ҢG6;O.XN+hW}}tE+'q0a($TDhGgәUlb~z%ߛw78[J߄J Q,LQmbL;E4c21tNANtHPQ~XTBAꈬ$a&+0~$UG,APJ}w5 Sl c81f3vr|yP*=aq+a=i_>f'0Pt^uM50)EܻD%3`H_\Xہ@ДiOl)_Qrx/GzמsiHJ t-h)`ȸY":} br'M (Gi*0R3*c?9|F'b&ೃo q#Xծ_}i{OLa(bhX-m꼵nh6:]ѬۍAs`6Cd B3gM-\2&  G޽N֎5dMWzHzK;< !Z|vBf6%>zSB~}r fs zch`|Dluwriq_rjrU ;znFv6-ɾ/w|%Gd"%2p4ͯ F֔[dIUu1KﺸԣVp!Iܣ>J_(p#NO񫂋_$D3)F]'Xy_7qxLU U01%cX/Y6;eq?&.mH14aK(œx{%{l$ՇqC]f|̺Wsu{oM9_zwSurn,EQ|݀>8E&rq><%/吸lcT(8 YgxktdX_+9Ҙs h-gҙv2a--?rN]~ @FFtY0+ d2NkfpClEltUr (tm`8t`}4aqm$CRbȗP VM aK-dfaf]N' /<Ԅ:=g 1)s)taHE 'A%n搸tG=۬H)uۢTe5z޻r-d" 3Rֱ8UÇ *3O6@lݻv'a3k t>ﯲׂG>)̶.jg$Rè׾x v5X0 +=O+,Zz}a{R