Last active
September 21, 2017 13:37
-
-
Save craigedmonds/19f3f7a512c57c33caf2f1e41b31c8b8 to your computer and use it in GitHub Desktop.
Wordpress Redirect User based on Country and Page ID
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
<?php | |
############################ | |
// Block a country from accessing a certain wordpress page | |
// Put this script into your functions.php | |
// Author: craig@123marbella.com | |
// Date: 21/9/2017 | |
############################ | |
//define some page id's that you want to block | |
$array_of_page_ids_to_block = array( | |
"999", | |
"888", | |
); | |
//define a list of countries you want to block | |
$array_of_country_codes_to_block = array( | |
"NO", | |
"ES", | |
); | |
//define the url you want to redirect to | |
$blocked_redirect_page = "https://www.somedomain.com/"; | |
//check to see if this page is in the list of pages to block | |
if(in_array(get_the_ID(), $array_of_page_ids_to_block)){ | |
//grab the country code from ipinfo.io | |
$country_code = file_get_contents("https://ipinfo.io/{$_SERVER['REMOTE_ADDR']}/country"); | |
//ipinfo adds a whitespace to the end of the response so filter it out | |
$country_code = trim($country_code); | |
//check now to see if the country is in the block list | |
if(in_array($country_code, $array_of_country_codes_to_block)){ | |
//redirect the user to the $redirect_page | |
wp_redirect ($blocked_redirect_page); | |
} | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment