Notice: These forums are now retired and closed. For active support, please Submit a Ticket or visit our official WordPress.org community pages.
Kadence Theme | Kadence Blocks | Starter Templates | WooCommerce Email Designer | Ascend | Virtue | Pinnacle

Geolocation Filter

Home / Forums / Virtue Theme / Geolocation Filter

This topic is: Not Resolved
[Not Resolved]
Posted in: Virtue Theme
March 10, 2019 at 5:28 pm

Hi,
I want to filter prices and add to cart button based on users geolocation. Have tried this which works on prices and simple products, but on variable product I still get an add to cart button (although it is disabled):

// Utility function to get geolocated user country based on Woocommerce WC_Geolocation Class
function get_geolocated_user_country(){
// Get an instance of the WC_Geolocation object class
$geolocation_instance = new WC_Geolocation();
// Get user IP
$user_ip_address = $geolocation_instance->get_ip_address();
// Get geolocated user IP country code.
$user_geolocation = $geolocation_instance->geolocate_ip( $user_ip_address );

return $user_geolocation[‘country’];
}

// Disable purchasing of products if the country is not United States
add_filter(‘woocommerce_is_purchasable’, ‘purchasable_country_based’, 10, 2);
function purchasable_country_based( $is_purchasable, $product ) {
// Enable for “US” only geolocated users country
if( get_geolocated_user_country() ===’US’ )
return true;
else
return false;
}
// Filter out prices based on country
add_filter( ‘woocommerce_variable_sale_price_html’, ‘display_prices_country_based’, 10, 2 );
add_filter( ‘woocommerce_variable_price_html’, ‘display_prices_country_based’, 10, 2 );
add_filter( ‘woocommerce_get_price_html’, ‘display_prices_country_based’, 10, 2 );
function display_prices_country_based( $price, $product ) {
// Enable for “US” only geolocated users country
if( get_geolocated_user_country() === ‘US’ )
return $price;
else
return ”;
}

Also added this without filter and button still remains:

add_action( ‘woocommerce_single_product_summary’, ‘hide_add_to_cart_button_variable_product’, 1, 0 );
function hide_add_to_cart_button_variable_product() {

// Removing add to cart button and quantities only
remove_action( ‘woocommerce_single_variation’, ‘woocommerce_single_variation_add_to_cart_button’, 20 );
}

  • The forum ‘Virtue Theme’ is closed to new topics and replies.