set_option_gruop($option_gruop); $this->set_plugin_folder(basename(dirname($plugin_file))); $this->plugin_file = $plugin_file; $this->slug = basename($plugin_file); $this->plugin_path = dirname($plugin_file) . '/'; $this->plugin_url =plugin_dir_url($plugin_file); } public function get($key,$type='text') { if(array_key_exists($key,$_GET)) { $unsafe_val=$_GET[$key]; return $this->sanitize_req($unsafe_val,$type); } else { return ''; } } //---------------------------------------------------- public function post($key,$type='text') { if(array_key_exists($key,$_POST)) { $unsafe_val=$_POST[$key]; return $this->sanitize_req($unsafe_val,$type); } else { return ''; } } //---------------------------------------------------- public function sanitize_req($unsafe_val,$type='text') { switch ($type) { case 'text': return filter_var($unsafe_val, FILTER_SANITIZE_STRING);// sanitize_text_field($unsafe_val); break; case 'int': return intval($unsafe_val); break; case 'email': return filter_var($unsafe_val, FILTER_SANITIZE_EMAIL);//sanitize_email($unsafe_val); break; case 'filename': return sanitize_file_name($unsafe_val); break; case 'title': return filter_var($unsafe_val, FILTER_SANITIZE_STRING);//sanitize_title($unsafe_val); break; case 'url' : return filter_var($unsafe_val, FILTER_SANITIZE_SPECIAL_CHARS);//sanitize_title($unsafe_val); break; default: //return sanitize_text_field($unsafe_val); return filter_var($unsafe_val, FILTER_SANITIZE_STRING); // filter_var($var, FILTER_SANITIZE_URL) // FILTER_SANITIZE_STRING // FILTER_SANITIZE_EMAIL // FILTER_SANITIZE_NUMBER_INT } } //---------------------------------------------------- public function get_ref() { if(array_key_exists('HTTP_REFERER',$_SERVER)) { return $this->sanitize_req(strip_tags($_SERVER['HTTP_REFERER']),"url"); } else { return ''; } } //---------------------------------------------------- public function set_option_gruop($option_group_name) { $this->option_group_name=$option_group_name; } //---------------------------------------------------- public function get_option_gruop() { return $this->option_group_name; } //---------------------------------------------------- public function set_plugin_folder($folder) { $this->plugin_folder=$folder; } //---------------------------------------------------- public function get_plugin_folder() { return $this->plugin_folder; } //---------------------------------------------------- public function update_my_options($options) { update_option($this->get_option_gruop(),$options); } //---------------------------------------------------- public function get_my_options() { $options=get_option($this->get_option_gruop()); if(!is_array($options)) { add_option($this->get_option_gruop()); $options= array(); } return $options; } //--------------------------------------------------- public function get_option_value($key) { $options=$this->get_my_options(); if(array_key_exists($key,$options)) { return $options[$key]; }else { return ''; } } //---------------------------------------------------- public function update_option($key,$value) { $options=$this->get_my_options(); $options[$key]=$value; $this->update_my_options($options); } //---------------------------------------------------- public function update_post_option($key) { $options=$this->get_my_options(); $options[$key]=intval($this->post($key)); $this->update_my_options($options); } //---------------------------------------------------- public function delete_my_options() { delete_option($this->get_option_gruop()); } /* get_current_URL ---------------------------------------------- */ public function get_current_URL() { $pageURL = 'http'; if ( array_key_exists("HTTPS",$_SERVER) && $_SERVER["HTTPS"] == "on") { $pageURL .= "s"; } $pageURL .= "://"; $pageURL .= ($_SERVER["HTTP_HOST"].$_SERVER["REQUEST_URI"]); return $this->sanitize_req($pageURL,"url"); } //----------------------------------------------------- public function remove_url_http_www($url) { $url = str_ireplace("http://www.",'',$url); $url = str_ireplace("https://www.",'',$url); $url = str_ireplace("http://",'',$url); $url = str_ireplace("https://",'',$url); return ($url); } //----------------------------------------------------- public function make_relative_url($url) { if($url=="") { return ""; } $site_url = $this->remove_url_http_www(site_url()); if(stripos($url,$site_url) !==false) { $url_no_www = $this->remove_url_http_www($url); if(strtolower(substr($url_no_www,0,strlen($site_url))) == strtolower($site_url)) { $url = str_ireplace($site_url,'',$url_no_www); } } if($url=="") { $url="/"; } return esc_url_raw($url); } //---------------------------------------------------- public function make_absolute_url($url) { if(substr($url,0,1)=='/') { $url = site_url() . $url; } return esc_url_raw($url); } //---------------------------------------------------- public function get_current_relative_url() { return $this->make_relative_url($this->get_current_URL()); } //---------------------------------------------------- public function is_valid_url($url) { if(stripos($url,'://')!== false || substr($url,0, 1)=='/') { return true; }else{ return false; } } //---------------------------------------------------- public function WPSR_get_current_parameters($remove_parameter="") { if($_SERVER['QUERY_STRING']!='') { $qry = '?' . urldecode(sanitize_text_field($_SERVER['QUERY_STRING'])); if(is_array($remove_parameter)) { for($i=0;$isanitize_req($qry,"url")); }else { return ""; } } //--------------------------------------------------------------- public function get_plugin_path($folder='') { return WP_PLUGIN_DIR . '/' . $this->get_plugin_folder() . '/' . $folder; } /* get_plugin_path --------------------------------------------- public function get_plugin_path() { return $this->plugin_path; }*/ /* get plugin slug -------------------------------------------- */ public function get_plugin_slug() { return $this->slug; } /* get plugin slug -------------------------------------------- */ public function get_plugin_file() { return $this->plugin_file; } //----------------------------------------------------- public function get_plugin_url($url='') { return $this->plugin_url; } //---------------------------------------------------- public function get_visitor_IP() { $ipaddress = sanitize_text_field($_SERVER['REMOTE_ADDR']); if (!empty($_SERVER['HTTP_CLIENT_IP'])) { $ipaddress = sanitize_text_field($_SERVER['HTTP_CLIENT_IP']); } elseif (!empty($_SERVER['HTTP_X_FORWARDED_FOR'])) { $ipaddress = sanitize_text_field($_SERVER['HTTP_X_FORWARDED_FOR']); } return sanitize_text_field($ipaddress) ; } //---------------------------------------------------- public function get_visitor_OS() { $userAgent= sanitize_text_field($_SERVER['HTTP_USER_AGENT']); $oses = array ( 'iPhone' => '(iPhone)', 'Windows 3.11' => 'Win16', 'Windows 95' => '(Windows 95)|(Win95)|(Windows_95)', 'Windows 98' => '(Windows 98)|(Win98)', 'Windows 2000' => '(Windows NT 5.0)|(Windows 2000)', 'Windows XP' => '(Windows NT 5.1)|(Windows XP)', 'Windows 2003' => '(Windows NT 5.2)', 'Windows Vista' => '(Windows NT 6.0)|(Windows Vista)', 'Windows 7' => '(Windows NT 6.1)|(Windows 7)', 'Windows 8' => '(Windows NT 6.2)|(Windows 8)', 'Windows NT 4.0' => '(Windows NT 4.0)|(WinNT4.0)|(WinNT)|(Windows NT)', 'Windows ME' => 'Windows ME', 'Open BSD'=>'OpenBSD', 'Sun OS'=>'SunOS', //'Linux'=>'(Linux)|(X11)', to detect if android or not 'Safari' => '(Safari)', 'Macintosh'=>'(Mac_PowerPC)|(Macintosh)', 'QNX'=>'QNX', 'BeOS'=>'BeOS', 'OS/2'=>'OS\/2', 'SearchBot'=>'(nuhk)|(Googlebot)|(Yammybot)|(Openbot)|(Slurp\/cat)|(msnbot)|(ia_archiver)' ); foreach($oses as $os=>$pattern){ if(preg_match('/'.$pattern. '/i', $userAgent)) { return $os; } } // more tests $ua = strtolower($userAgent); if(stripos($ua,'android') !== false) { return 'Android'; } if(stripos($ua,'iphone') !== false) { return 'iOS'; } if(stripos($ua,'ipad') !== false) { return 'iOS'; } if(stripos($ua,'ipod') !== false) { return 'iOS'; } if(stripos($ua,'windows') !== false) { return 'Windows'; } if(stripos($ua,'linux') !== false) { return 'Linux'; } if(stripos($ua,'googlebot') !== false) { return 'Googlebot'; } if(stripos($ua,'bot') !== false) { return 'SearchBot'; } return 'Unknown'; } //----------------------------------------------------------------- public function get_visitor_Browser() { $u_agent= sanitize_text_field($_SERVER['HTTP_USER_AGENT']); $bname = 'Unknown'; if(preg_match('/MSIE/i',$u_agent) && !preg_match('/Opera/i',$u_agent)) { $bname = 'Internet Explorer'; } elseif(preg_match('/Firefox/i',$u_agent)) { $bname = 'Firefox'; } elseif(preg_match('/Chrome/i',$u_agent)) { $bname = 'Chrome'; } elseif(preg_match('/Safari/i',$u_agent)) { $bname = 'Safari'; } elseif(preg_match('/Opera/i',$u_agent)) { $bname = 'Opera'; } elseif(preg_match('/Netscape/i',$u_agent)) { $bname = 'Netscape'; } elseif(preg_match('/googlebot/i',$u_agent)) { $bname = 'GoogleBot'; } elseif(preg_match('/bot/i',$u_agent)) { $bname = 'SearchBot'; } return sanitize_text_field($bname); } //---------------------------------------------------- public function option_msg($msg,$out='echo') { if($out=='echo') echo '

' . esc_html($msg) . '

'; elseif($out=='push') $this->push_msg(esc_html($msg)); } //---------------------------------------------------- public function info_option_msg($msg,$out='echo') { if($out=='echo') echo '

' . esc_html($msg) . '

'; elseif($out=='push') $this->push_msg(esc_html($msg)); } //---------------------------------------------------- public function warning_option_msg($msg,$out='echo') { if($out=='echo') echo '

' . esc_html($msg) . '

'; elseif($out=='push') $this->push_msg(esc_html($msg)); } //---------------------------------------------------- public function success_option_msg($msg,$out='echo') { if($out=='echo') echo '

' . esc_html($msg) . '

'; elseif($out=='push') $this->push_msg(esc_html($msg)); } //---------------------------------------------------- public function failure_option_msg($msg,$out='echo') { if($out=='echo') echo '

' . esc_html($msg) . '

'; elseif($out=='push') $this->push_msg(esc_html($msg)); } //---------------------------------------------------- private function push_msg($msg) { global $utilpro; $msgs=$utilpro->get_option_value('admin_notices'); if(is_array($msgs)) { $msgs[count($msgs)]=$msg; }else { $msgs = array(); $msgs[0]=$msg; } $utilpro->update_option('admin_notices',$msgs); } //---------------------------------------------------- public function there_is_cache() { $plugins=get_option( 'active_plugins' ); for($i=0;$i','|',':','-',')','/', '\\'); $to= array('\\.', '\\+', '\\*', '\\?','\\[','\\^','\\]','\\$','\\(','\\)','\\{','\\}','\\=','\\!','\\<','\\>','\\|','\\:','\\-','\\)','\\/','\\\\'); return str_replace($from,$to,$string); } }} ?>