Skip to main content

Virtuemart: Different Free Shipping Amount For Different Countries

How to adapt Virtuemart's Minimum Amount For Free Shipping so it can handle different amounts for different countries:

Now, before we begin, the usual warning:  Backup the files you are going to be working with.  This is a hack of the global.php file to allow different free shipping amounts for different countries.

The file you'll be working with:  /administrator/components/com_virtuemart/global.php

First, in the Virtuemart administration page, go to the Store -> Edit Store page and set the base amount you want to use for 'free shipping'.  Usually, this should be the value you set for the most commonly used free amount you want to use (ie. your home country).

Now, open up global.php, and search for:

$vendor_freeshipping = $db->f("vendor_freeshipping");
The example will show how to detect for a country and hard-code in a new value for free-shipping. Ie. The amount set in the VM Admin page will be the base amount for free shipping in Canada. First, I'll show what to do when you want to eliminate free shipping to all countries, but one.

if ($_SESSION['auth']["country"] != "CAN") {
$vendor_freeshipping = "0"; } else { $vendor_freeshipping = $db->f("vendor_freeshipping"); }

So, what happens is the script checks to see what country it is.  If it is not Canada, then free shipping is negated (set to zero).  If it is Canada, then free shipping is set to whatever is in the VM admin backend.

Now, say you want the USA to have a different value before free shipping applies.  This is what that code would look like:

if ($_SESSION['auth']["country"] == "USA") {
$vendor_freeshipping = "75"; } else { $vendor_freeshipping = $db->f("vendor_freeshipping"); }

That's it.  Now, in the above example, if the country being shipped to is the USA, then the free shipping minimum is set to $75.  Otherwise, it is set to whatever you set in the Virtuemart backend.

Comments

Popular posts from this blog

How To Run Chrome From Within Notepad++

If you have recently tried to Run  Chrome from within Notepad++ recently, you've probably encountered the same issue I did.  Chrome didn't run. The fix is actually really simple.  Open up the Run box in Notepad++ and browse to your installation of Chrome. ie.  C:\Program Files\Google\Chrome\Application\Chrome.exe Select the file when you find it.  Now, the trick is: Put quotation marks around the path you see in the Run  box.  Now, put 1 space after the closing quotation mark. Type this: $(FULL_CURRENT_PATH) It'll look something like this: Click Run .  If Chrome opens, click Save and set your hotkey.

Developer Note: Virtuemart - Editing the Add to Cart MooTool Popup

To edit the “Add To Cart” popup that appears when you add an item to a cart in Virtuemart, there are few files that you need to know about. These are the files to know \components\com_virtuemart\themes\default\theme.js \components\com_virtuemart\js\mootools\   - contains the files for editing the appearance of the popup. To edit the appearance of the box, edit \components\com_virtuemart\js\mootools\mooPrompt.css to change the styles as well as editing the 2 images in the directory to edit how they appear as well (close box and header-background)

Divi Theme - Remove pause 'on hover' of the full width slider

In the Divi theme, open up /js/custom.js Comment out the following code (around line 144) if ( settings.slideshow && et_slides_number > 1 ) { $et_slider.hover( function() { $et_slider.addClass( 'et_slider_hovered' ); if ( typeof et_slider_timer != 'undefined' ) { clearInterval( et_slider_timer ); } }, function() { $et_slider.removeClass( 'et_slider_hovered' ); et_slider_auto_rotate(); } ); }