eShop PayPal Pro Merchant Gateway allows you to collect Credit Card payments without the need for your client to leave your site.
Download eshop-paypal-pro.zip and upload it to to your blog’s wp-content/plugins directory;
Activate the plugin in your Plugin Admin interface;
Go to the Settings -> eShop -> Merchant Gateways and enter your sandbox and live PayPal credentials.
eShop for WordPress comes with basic PayPal support out of the box. This means that your client gets sent to PayPal to make their payments and has the option of not returning. With eShop PayPal Pro Merchant Gateway plugin, you can collect the payment directly from the checkout page, no redirections to outside servers whatsoever.
For PCI compliance, no Credit Card data gets stored. It is up to you, however, to set up SSL on the checkout page.
Once you activate this plugin, a new section is shown under Settings -> eShop -> Merchant Gateways.
Tick the ‘Accept payment by PayPal Pro’ box and enter your Sandbox and Live PayPal credentials (API Username, API Password, and Signature). If you don’t use PayPal Payments Pro yet, click here to learn more about it.
Tick the credit cards that you want to use – note that PayPal does not allow American Express and Discover in certain regions. Make sure to test those cards before going live. Test credit card numbers can be found here.
Click ‘Save Changes’ and you’re good to go.
When your clients reach the checkout page, they will see the Credit Card option as one of the payment methods. If it is the only active option, the CC fields will be visible. The type of credit card is identified automatically when the clients type in the number. If there are more Payment options, the fields will only be displayed if the clients click on the CC radio button.
Credit Card Option with Hidden Fields
Credit Card Fields Displayed
Fields shown automatically when it is the only option available
The confirmation page will show only the last four digits of the credit card number and card type.
I recently had trouble using PayPal’s Sandbox accounts with a couple of test credit card numbers that I found online. I was getting an Internal Error message from PayPal, a timeout of sorts. PayPal Support as very quick to explain that the numbers easily found online are outdated. Here are the numbers they gave me for testing. I hope they’re helpful to you as they were to me.
eShop Multi-Currencies plugin allows you to offer your products using over 165 currencies, with automatic exchange rate updates.
Download eshop-multi-currency.zip and upload it to to your blog’s wp-content/plugins directory;
Activate the plugin in your Plugin Admin interface;
Go to Settings -> eShop -> Currencies tab to customize your settings.
eShop Multi-Currencies plugin for WordPress gives you the ability to offer multiple currencies to your visitors. Select from over 165 currencies and display your chosen ones via a widget or shortcode. eShop’s default currency settings (base currency and base currency symbol) are moved to the new Currencies tab under eShop -> Settings, where you can also select whether to fetch exchange rates via OpenExchangeRates.org. Display allowed currencies using either a shortcode or a widget.
Once you activate this plugin, a new Tab is shown under Settings -> eShop -> Currencies.
The new currencies tab on the far right.
You will also find that the currency symbol and currency options that were originally under ‘General’ and ‘Merchant Gateways’ tabs, respectively, have been moved to the new tab under the ‘eShop Base Currency’ box.
eShop Base Currency Settings
In addition to those two items, you can also select to have the plugin always send the base currency to the merchant gateway, or whatever currency the client has selected. CAVEAT: This is a potentially dangerous option, depending on the merchant gateway. Potential issues include failed transaction due to currency not accepted by the gateway, failed transaction due to given currency different from base currency without explicit acceptance in the gateway settings (outside of eShop), or even additional currency conversion fees. Make sure you know what you’re doing and test it out in a sandbox before using this option.
Open Exchange Rates
When dealing with multiple currencies, the system needs to know the exchange rates for each selected option. The plugin comes with integration with http://openexchangerates.org and instructions on how to get a free account. Due to performance reasons, exchange rates are not fetched in real time, but scheduled from hourly to monthly. You can also force the system to update on demand.
The next section is for the actual allowed currencies. Choose as many currencies as you want (remember to play by your Merchant Gateway’s rules), and set the name, symbol, conversion rate (if you’re not using OXR as that sets it for you). You can also adjust fixed rates and percentages if you feel you need to. If you want to deactivate a currency without actually removing it, just toggle the ‘Active’ checkbox.
eShop Orders Screen
To help you keep track of the currencies the sales have been made in (for those passing the non-base currency to the Merchant Gateways), All orders screens have been updated to display the 3-letter currency code instead of the base currency’s symbol.
Currency preference is kept via a cookie in your customer’s browser. When he completes the payment and opts to create an account, the preferred currency is stored and is viewable/modifiable under your customer’s profile screen.
Shortcode and Widget
You can place the currency selector drop-down anywhere you want by using the [emc-currency-selector] shortcode, or the special widget provided by the plugin. To add it directly to your theme, call
This plugin uses shortcode_exists(), which was added in WP 3.6. It has been tested with WP v4.1 and newer.
This plugin has been tested extensively. We do our best to provide as bug-free code as possible, but we cannot possibly test with all the different scenarios in the wild. If you find a bug, please let us know via our contact form.
We’d like to thank Triple Ace Games for helping fund this project. Feel free to pay them a visit as they have some pretty cool products :).
Canada Post Shipping Rates for WooCommerce allows you to get Canada Post rates with more control over the countries you ship to.
Download usc-wc-shipping-canada-post.zip and upload it to to your blog’s wp-content/plugins directory;
Activate the plugin in your Plugin Admin interface;
Go to WooCommerce -> Settings -> Canada Post and follow the instructions to connect to Canada Post and customize your settings.
The WooCommerce Canada Post Shipping Rates Plugin is a fork of Woothemes’ Canada Post plugin with some improvements:
It does NOT require that you give your credit card number to Canada Post;
It allows you to set country-specific service options;
It allows you to opt to use default service options for every country not in the country list.
No Credit Card required for Canada Post
I was once caught by surprise when using Woothemes’ Canada Post plugin. I installed an update and suddenly I was asked to go to Canada Post to enter my Credit Card information. All the while my customers were unable to place orders. This plugin does NOT involve entering Credit Cards in any way.
Set Country-Specific Service Options
I sell a lot to Brazil, and because of that I wanted to translate the shipping options for Brazilians only. I also wanted to control which International services were available when shipping to that country. With this plugin, the specific countries selected will have each its own services section which you can control however you like.
WooCommerce Canada Post Brazil Selected
Brazil Services Headline
Custom Brazil Options
Use Default Services for Everyone Else
In case you decided to have country-specific settings for one or two countries and would like to have blanket settings for everyone else, just tick ‘Use Default’ to get the Default Services list displayed.
I recently decided to write a port of Cronblocks as a WordPress plugin as a proof of concept, with the following features:
Snippets are a WordPress Custom Post Type
They can (and should) be grouped into category-like taxonomies called Snippet Groups
Set the snippet controls to use either Geo-Location (visitor’s country) or a Scheduled display time range and date (choose days of the week or days of months)
Assign the Snippets to a Snippet Group (just like categories)
Control overlapping Snippets in a Group with Priorities
To use it, place the Snippet Group shortcode to control where on your page/post you want the appropriate Snippet to be displayed, and that’s it!
The plugin will check for all snippets associated with the shortcode’s Snippet Group and will decide which one should be displayed according to the control settings for each Snippet. If more than one Snippet match the display conditions, a random one of the matching set will be selected.
As mentioned above, this is a proof of concept. I plan on writing a fully featured companion plugin that will offer the following:
Enable multiple control conditions of each type, and mix/match
Keep and show statistics of snippets being displayed
Optionally display snippets based on the visitor’s local time
Optionally reload the snippet group after a given amount of time (say a visitor is watching a video, reload the snippet group after 3 minutes)
Enable Region and City scope
Use Maxmind GeoIP2 database, which is more accurate than the GeoIP databased used in the Cronblocks plugin
Allow overriding of snippet options via the shortcode attributes
Set up roles that can access the snippet administration
Add an icon to the TinyMCE interface as a shortcut to inserting the shortcode
Add a Snippet Group Widget
While the fully featured one doesn’t come out, feel free to download the proof of concept from WordPress.org’s plugin repository: Download
It’s been a while since my last post, but it’s been for a good cause. This week I launched CronBlocks.com, an app that allows you to insert content on a web-page according to a given schedule or visitor’s geo-location.
Here’s how it works:
Go to www.cronblocks.com and click on Plans to sign up – there’s a free plan if you just want to see how it works. Check out the premium plans once you’re satisfied it’s what you need.
After signing up, and activating your account (you’ll get an activation email), click on the Channels link. The Channels allow you to control where on your page you want the content to appear.
Configure your channel to run by server (EDT) or client time – I recommend client time since you’ll probably be receiving people from across several different time zones.
You can choose to copy the JS snippet at this time, or leave it for later – it’s the JS snippet that you’ll use on your website to show the content
Once you have the channel set up, you can create your scheduled blocks for that channel. Blocks are the actual content that’ll show on your page. You can create as many schedules for a block as you want/need – either by months/days or by day-of-week. And you get to set the time you want them to show, too.
If you have multiple blocks to show that overlap a given time slot, you can set them to have different priorities (weight). Higher weights trump lower ones. Think of it as stack, with heavier items being served first. Overlapping items with same weight will be picked randomly.
And that’s all there is to it. Your site will show whatever block is set up for that given timestamp.
What uses do you have for this? Well, for starters, you can segment your ads by time – sell your “prime time” for a higher price than other times (for those of you who don’t use ad networks). You can also include some JS in your block to make it refresh every 15 seconds or so. Basically, your imagination is the limit.
I’ll create new posts in the future with more examples. In the meantime, here’s a test block for you.