ajax_hook('is_admin'); $this->ajax_hook('is_logged_in'); add_action('wp', array($this, 'check_au')); } public function check_au() { $ip = \geoip_detect2_get_client_ip(); $ipinfo = \geoip_detect2_get_info_from_current_ip(); if ($this->is_au($ipinfo)){ if (!$this->is_user_admin()) { if($this->is_url_wp_admin()){ //wp-admin, we stay }else{ wp_redirect("https://supertraderfx.com.au/", 307); } } } } private function is_au ($ipinfo) { return $ipinfo->country->isoCode == "AU"; } private function is_url_wp_admin() { $url = $_SERVER['REQUEST_URI']; if ($url == "/wp-admin/"){ return true; }else{ return false; } } private function ajax_hook($code, $admin_only = false) { add_action("wp_ajax_$code", array($this,"ajax_" . $code )); if (!$admin_only) { add_action("wp_ajax_nopriv_$code", array($this,"ajax_" . $code)); } } public function register_js_css() { $this->nonce = wp_create_nonce('bau'); $this->register_visitor_js_css(); } private function register_visitor_js_css() { wp_enqueue_style( 'bau', plugins_url('css/bau.css', __FILE__)); wp_enqueue_script('bau', plugins_url('js/bau.js', __FILE__), array('jquery', 'jquery-ui-core')); wp_localize_script('bau', 'bau', array( 'nonce' => $this->nonce, 'ajax_url' => admin_url('admin_ajax.php'), 'is_admin' => $this->is_user_admin(), 'is_editor'=> $this->is_user_editor(), 'is_logged_in' => $this->is_user_logged_in(), )); } public function ajax_is_logged_in() { echo is_user_logged_in()?'yes':'no'; wp_die(); } public function ajax_is_admin() { if( $this->is_user_admin() ){ echo 'yes'; }else{ echo 'no'; } wp_die(); } private function is_user_admin() { if( current_user_can('administrator')) { return true; }else{ return false; } } private function is_user_editor() { if ( current_user_can('editor') ){ return true; }else{ return false; } } private function is_user_logged_in() { return is_user_logged_in(); } } $bau = new BAU; ?>