W3 Total Cache With Geolocation
-
My page speed programmer recently installed W3 Total Cache. And I’m sure that’s one of the reasons my page speed has improved.
However there is one small glitch. My dynamic geolocation country shipping rate quote has started to malfunction sometimes. For example, I usually see my country’s rate. But other times, I see the U.S. or the default rate for ISP’s the geolocation program can’t read. Please see the red shipping rate quote in the footer, below the coupon here: https://www.comparingvitamins.com/iherb-coupon-code
I found this thread about the same problem: https://www.ads-software.com/support/topic/plugin-w3-total-cache-how-to-cache-homepage-only?replies=2
Can I edit either W3 Total Cache or my geolocation program (below) so that it gives the correct country quote always?
Thank you,
Greg?php
/* Plugin Name: Country X
* Plugin URI: https://endemicdigital.com/
* Description: Displays the country of the user and the shipping rate defined by client.
* Author: Gary Henville
* Version: 1.0
* Author URI: https://www.endemicdigital.com/
*
* Copyright 2010 Gary Henville ([email protected])
*
*/// allow text widgets to use shortcodes
add_filter(‘widget_text’, ‘do_shortcode’);// get user ip
function get_ip_address() {
foreach (array(‘HTTP_CLIENT_IP’, ‘HTTP_X_FORWARDED_FOR’, ‘HTTP_X_FORWARDED’, ‘HTTP_X_CLUSTER_CLIENT_IP’, ‘HTTP_FORWARDED_FOR’, ‘HTTP_FORWARDED’, ‘REMOTE_ADDR’) as $key) {if (array_key_exists($key, $_SERVER) === true) {
foreach (explode(‘,’, $_SERVER[$key]) as $ip) {
if (filter_var($ip, FILTER_VALIDATE_IP) !== false) {
return $ip;
}
}
}
}
}// get user country
function get_country_x() {
include_once(ABSPATH.”maxmind/geoip.inc”);$ip = get_ip_address();
$gi = geoip_open(ABSPATH.”maxmind/GeoIP.dat”,GEOIP_STANDARD);$country = geoip_country_name_by_addr($gi, $ip);
geoip_close($gi);
return $country;
}// display user country
function view_country_x() {
return ‘<div id=”country-shipping-x”>’.get_country_x().'</div>’;
}// get shipping rate for country
function get_shipping_rate_x() {
include_once(“shipping-rate.php”);
include_once(“country-groups.php”);$country = get_country_x();
if (stristr($country_group_a, “|$country|”)) {
return $country.’ ‘.$rate_a;
} elseif (stristr($country_group_b, “|$country|”)) {
return $country.’ ‘.$rate_b;
} elseif (stristr($country_group_c, “|$country|”)) {
return $country.’ ‘.$rate_c;
} elseif (stristr($country_group_d, “|$country|”)) {
return $country.’ ‘.$rate_d;
} elseif (stristr($country_group_e, “|$country|”)) {
return $country.’ ‘.$rate_e;
} else {
return $default_rate_text;
}
}// display shipping rate for country shortcode
function view_shipping_rate_x($atts, $content=null) {
extract(shortcode_atts(array(
‘ra’ => ”,
‘rb’ => ”,
‘rc’ => ”,
‘rd’ => ”,
‘re’ => ”
), $atts));include_once(“shipping-rate.php”);
if ($ra == ”) {
$ra = $rate_a;
}if ($rb == ”) {
$rb = $rate_b;
}if ($rc == ”) {
$rc = $rate_c;
}if ($rd == ”) {
$rd = $rate_d;
}if ($re == ”) {
$re = $rate_e;
}if ($content == ”) {
$content = $default_rate_text;
}include_once(“country-groups.php”);
$country = get_country_x();
if (stristr($country_group_a, “|$country|”)) {
return ‘<div id=”country-shipping-x”>’.$country.’ ‘.$ra.'</div>’;
} elseif (stristr($country_group_b, “|$country|”)) {
return ‘<div id=”country-shipping-x”>’.$country.’ ‘.$rb.'</div>’;
} elseif (stristr($country_group_c, “|$country|”)) {
return ‘<div id=”country-shipping-x”>’.$country.’ ‘.$rc.'</div>’;
} elseif (stristr($country_group_d, “|$country|”)) {
return ‘<div id=”country-shipping-x”>’.$country.’ ‘.$rd.'</div>’;
} elseif (stristr($country_group_e, “|$country|”)) {
return ‘<div id=”country-shipping-x”>’.$country.’ ‘.$re.'</div>’;
} else {
return ‘<div id=”country-shipping-x”>’.$content.'</div>’;
}
}// shortcode to display user country
add_shortcode(‘country_x’, ‘view_country_x’);// shortcode to display shipping rate for user country
add_shortcode(‘shipping_rate_x’, ‘view_shipping_rate_x’);?
- The topic ‘W3 Total Cache With Geolocation’ is closed to new replies.