This blog post is mainly to draw attention to the brewing problem with using Font Awesome v5 in your WordPress Plugin or Theme.

What is Font Awesome?

It’s a little CSS (or JS in v5) file that you can add to your site to be able to use lots and lots of fancy icons on your site.

What’s the problem?

There are really two problems;

1. The first (less serious) problem is a common problem with JS/CSS libraries and WordPress and can affect FA v4 not just FA v5, that is the fact that two developers might add the script and use different names so the same file gets added to the website twice. The fix to this is relatively simple and is resolved by the two devs using the same name to add the file, we use and we suggest “font-awesome”.

2. The main brewing problem with using Font Awesome in WP these days is that FA v5 introduced a new way to use it, in FA v4 it was always just a CSS file but now it can be used either as a CSS file or as a JS file. This is fine for “Joe Blogs” with his html website but once you are using a CMS (content management system) like WordPress which has plugins built by many many devs you have the situation that both the CSS and the JS can be used and this can lead to many problems.

The main problem is

that the JS version of FA will replace the item that has the FA class with a

<svg>

tag, this is not by its self a problem but the problem is when developers have been using just the CSS version and either style for that tag or use JS to fire a onclick method on that specific tag or even on a link or button which in all cases your going to have a bad time.

Just today i seen issues with two widely used WP products, the first was with Ninja Forms, they use the FA v5 CSS version and if the JS version of FA is loaded then you can’t exit out of the form edit screen as their

<a>

tag link to exit is rendered as a

<svg>

tag and is no longer a link. The other issue i seen this with was the BuddyBoss theme, they do something similar with an

<a>

tag but its href=”#” so that is not the problem but the onclick handler i guess targets the

<a>

tag and so again it does not fire.

The solution

1. Developers, please name your scripts “font-awesome” when you enqueue them.
(i know you might run into version issues but its likely far less of an issue than if you load it twice).

2. The main problem:
Devs have been used to being able to use the FA classes anywhere like on links and buttons but to make it all nice an compatible for everyone we should all just stick to the recommended way of using

<i>

tags.
The beauty of this fix is that it is pretty simple, it would change something like:

<a href="#" id="custom-nav" class="sidebar-btn fa fa-bars"></a>

to:

<a href="#" id="custom-nav" class="sidebar-btn">
<i class="fas fa-bars"></i>
</a>

After thoughts

I think a simple plugin that dequeued all the added FA CSS/JS and then added the latest JS FA might be handy but it would still be affected with the main problem here unless we make it an industry standard to always use the

<i>

tags…

Today we released the 1st BETA version of the Directory Starter Theme for GeoDirectory V2.

You can download it from your account area now. Because directory starter is free, you don’t need to be a member to download it.

You’ll need to go to this page: https://wpgeodirectory.com/downloads/directory-starter/, add the theme to the cart and check out (again it’s free).

You will find both V1 and V2 BETA in your account page.

No more GeoDirectory templates

We removed all the GeoDirectory templates. Now it just has one geodirectory.php page template so it can have separate widget areas.

We also added theme supports info to the GeoDirectory core plugin so the setup wizard knows what sidebars to install the dummy widgets into.

If you install the theme and then GDv2, your demo should look good out the box.

As usual, please report bugs in the appropriate forum: https://wpgeodirectory.com/support/forum/directory-starter-theme/directory-starter-v2-beta/#new-post

GeoMarketplace is a new plugin created by the top rated Developer of the GeoDirectory Experts Directory: Webnware

It connects WooCommmerce and WC Marketplace with GeoDirectory, to allow listings owners to sell their products from within their listings, by creating a new profile tab called “Shop”.

shop tab

At the moment it allows to sell only Digital and Physical products, but the developer told us there are plan to integrate the WooCommerce Booking and Box Office Extensions.

So that listings owners could be able to offer online booking capabilities and sell tickets for Events.

We installed the plugin on “GeoDirectory Experts”, our directory of GeoDirectory Developers for Hire, so that they can start selling 3rd party add-ons and or their services packaged at a fix price.

Example could be : GeoDirectory Install & Configuration, SEO, CSV files with public listings data (example: All Hotels in New York) and so on.

Vendor Registration & Dashboard

GeoMarketplace will provide a menu item that behaves differently for different users.

  • It will be invisible for non logged in users and regular subscribers.
  • It will be visible for listing owners with the anchor text “Become a Vendor”.
  • It will be visible for those who registered as vendor with the anchor text “Vendor Dashboard”.

The vendor dashboard comes from WC Marketplace as is:

vendor dashboard

Front End Products Management.

Vendors can create and edit products from a front end form, they can also review orders received.

manage products

add new product

Buyers Front End Orders Management

Buyers can manage orders made and downloads from the front end too.

orders made

order download

Custom vendor profiles with UsersWP

If you wish to provide vendors and users with enhanced custom WooCommerce user profiles displaying Purchases, Product reviews, Total Spent,  Number of orders and even product listed for Vendors, you can use the UsersWP x WooCommerce add-on for that.

Get it here

The developer decided to sell it through his listing on the GeoDirectory Expert Directory:

Buy GeoMarketplace

Support and Updates

Support and updates will be provided directly by the developer on his website: http://webnware.com/

If you wish to Check out a simpler way to sell online with WordPress, have a look at our new plugin called GetPaid. We’ll soon release the add-ons needed to replace all of the above.

Today GeoDirectory Version 2 comes out of BETA and the Release Candidate can be downloaded here.

This has been a huge effort for us (+12 months), while it lands with few weeks of delay (that we apologize for) we can assure that the time has been invested to bring in some additional improvements that we are positive you will love.

Notably:

GDPR compliance

gdpr ready

We will be the only directory plugin for WordPress that is mostly GDPR compliant. We will be fully compliant when WordPress will allow us to be.

Business hours – now built in

business hours

You can create different operating time for each day of the week and even multiple schedules per day. All fully schema compliant.

Setup wizard improvements

setup wizard

the new setup wizard will allow to kick start a new Directory in no time.

Tabbed content builder

tabbed content builder

With V1, it was possible to re-order the Tabs in the listing detail page through filter hooks. You can see the old procedure here.

Now we added a system that allows you to do that via a drag and drop UI. This user interface also allows to basically add any bit of listing data in any part of the listing page content.

With this UI and the option to design the directory templates via shortcodes or using Gutenberg, GeoDirectory design customization options are virtually endless.

Ninja forms integration

ninja forms integration

The old contact form was difficult to customize and almost featureless.

We integrated what we think to be the most impressive free Contact Form plugin.

You’ll be able to customize the form completely, add multiple forms per listings and also keep track of messages sent through them, making it a real lead generator.

More information about the GeoDirectory X Ninja Forms integration.

Sort options builder

sorting builder

You will be able to create a primary and a secondary sorting for listings.

For example sort by ratings as the primary sorting option, and create a secondary sorting for the listings without ratings that could be random, or post date, or alphabetic.

Install extension via WP Easy Updates.

extensions page

Once all add-ons for V2 will be released, if WP Easy Updates is active on your website, you will be able to install the add-ons directly from the GeoDirectory extensions page, inside the WordPress dashboard.

No need to download any of the add-ons from our website.

You just need to input and activate the license key for each add-on and the download and install will be seamless.

Other features enhancements

All WPML code has been moved to an add-on

WPML Integration

we will make it available on the wp.org repository once V2 is live on it too.

Currently it can be found here.

This makes the core plugin even lighter in size for those who don’t need a multilingual website.

New Price Range custom field

price range custom field

an important custom fields option that is missing in V1 that in V2 will also populate schema info, giving to your directory better filtering capabilities and SEO opportunities.

New Predefined Logo field.

logo custom field

The post_images shortcode/widget now has the option to show the business logo as the first image of the listing gallery.

Better GeoDirectory image attachments.

All images are now created in all WP image sizes, they are responsive and Ajax loading by default. This will reduce considerably the loading time of listings pages.

Font Awesome V5.

we took advantage of this major update of GeoDirectory to bring all 3rd party script that we use to their latest version and Font Awesome is one of them. Keeping V4 could have brought conflict with new themes or plugins using V5.

Converted chosen-select to select2 JS

Chosen-select created several responsive problems in V1. This script proved to work much better on mobile devices.

Custom fields now have placeholder setting

Where applicable, now you can add a placeholder to your custom fields.

Sessions have been completely removed.

This should fix some hosting caching issues

What’s Next? Add-ons V2 and conversion tool

All the above has been added since we released the very 1st beta, back at the end of March.

While the beta was debugged, our team started converting the add-ons to work with V2.

We will add 1 major improvements to each add-on before releasing them.

More enhancement will be introduced in future versions.

The 1st add-on to be worked on is the location manager.

We will focus the 1st improvement around the Location Switcher.

When the Location Manager V2 Beta will be out, we’ll start working on the V1 -> V2 conversion tool.

Finally all other add-ons one by one.

While the developers will be coding, the support team will take care of the new documentation.

We hope to complete this process within the next couple of months.

Our team of WordPress developers just welcomed a new element and things should become a lot faster now that the biggest task has been completed.

Can I use this version for a production site?

You can use this version for a production site, we are fairly confident you will not encounter major bugs or fatal errors. What you cannot do yet, is converting your current GeoDirectory powered website from V1 to V2.

It can still be used for new websites only and without any of the add-ons.

Can I use this version to start designing a theme or building an add-on for it?

Absolutely yes. You can start building themes and add-ons for it with confidence that only minor changes will be made to its code.

When will you update GeoDirectory on WordPress.org?

When all add-ons are ready and a good amount of testing has been done for them all, we will update GeoDirectory officially on wordpress.org too.

We hope you enjoy the new version of GeoDirectory, please don’t hesitate to share your feedback in a comments down below and to report any bug you may find in our support forum!

Team GeoDirectory

Google Maps Platform, did you hear about it?

Google announced today the launch of the Google Maps Platform. They described the new platform as:

a simplified product structure, pay as you go pricing for all, and more

Technically speaking, from a developers point of view there are no changes to how the Google Maps API will work, the only difference will be in regards to their pricing model.

Starting from June 11, 2018, if you don’t enable billing with a credit card within your Google Maps Platform account and you don’t have have a valid API key for all projects, Google Maps will stop working on your website.

Does it mean that using Google Maps API is no longer free?

No, use up to a certain limits is still free, so it doesn’t mean that you will have to pay for sure. What it means, is that you must have a valid credit card and enable billing on your Google Maps Platform account, to use a Google Maps based applications.

What they radically changed, is the pricing model and the way they calculate the thresholds for free use.

Until 2 years ago, Google Maps API would return up to 25,000 keyless requests per day and would require an API key and payments only after exceeding the 25,000 limit for 90 consecutive days.

2 years ago they introduced the Google Maps API Key and new limits, where each new websites needed a API key and they raised the limit to 25,000 free API requests per day without grace days.

What is the new Google Maps Platform Pricing Model?

Even though they present this as a simplified product structure, the new pricing model is definitely more complex than in the past and calculating the limits to see if your website will need to pay or not, won’t be that easy.

The main simplification is that there is no longer a free general amount of requests. Each API request is counted differently depending on the service requested and they provide a $200/monthly credit to every user.

Requests of Mobile Native Static Maps or Mobile Native Dynamic Maps are free and unlimited. With the $200 credit, you’ll never have to pay for Mobile Native Static Maps or Mobile Native Dynamic Maps requests to the Google Maps API.

Requests to Dynamic Street View cost $0.014 per request up to 100k requests (after the price goes down to $0.0112). With the $200 monthly credit you can do up to 14000 requests.

This is the pricing table for the Google Maps Platform API for Maps:

Free monthly usage ($200 value) Price per thousand calls
Monthly volume range 0—100,000 100,001+
Mobile Native Static Maps Unlimited loads $0.00 $0.00
Mobile Native Dynamic Maps Unlimited loads $0.00 $0.00
Embed Unlimited loads $0.00 $0.00
Embed Advanced Up to 14,000 loads $14.00 $11.20
Static Maps Up to 100,000 loads $2.00 $1.60
Dynamic Maps Up to 28,000 loads $7.00 $5.60
Static Street View Up to 28,000 panos $7.00 $5.60
Dynamic Street View Up to 14,000 panos $14.00 $11.20

This is the pricing table for the Google Maps Platform API for Routes:

Free monthly usage ($200 value) Price per thousand calls
Monthly volume range 0—100,000 100,001+
Directions Up to 40,000 calls $5.00 $4.00
Distance Matrix Up to 40,000 elements $5.00 $4.00
Directions Advanced Up to 20,000 calls $10.00 $8.00
Distance Matrix Advanced Up to 20,000 elements $10.00 $8.00
Roads – Route Traveled Up to 40,000 calls $10.00 $8.00
Roads – Nearest Road Up to 40,000 calls $10.00 $8.00

This is the pricing table for the Google Maps Platform API for Places:

Free monthly usage ($200 value) Price per thousand calls
Monthly volume range 0—100,000 100,001+
Autocomplete – Per Character Up to 70,000 chars $2.83 $2.26
Autocomplete – Per Session Up to 11,000 sessions $17.00 $13.60
Places Details – Basic Up to 11,000 calls $17.00 $13.60
Places Details – Basic + Contact Up to 10,000 calls $20.00 $16.00
Places Details – Basic + Atmosphere Up to 9,000 calls $22.00 $17.60
Places Details – Basic + Contact + Atmosphere Up to 8,000 calls $25.00 $20.00
Places Photo Up to 28,000 calls $7.00 $5.60
Geocoding Up to 40,000 calls $5.00 $4.00
Geolocation Up to 40,000 calls $5.00 $4.00
Time Zone Up to 40,000 calls $5.00 $4.00
Elevation Up to 40,000 calls $5.00 $4.00
Find Place Up to 11,000 calls $17.00 $13.60
Places – Nearby Search (includes Basic + Contact + Atmosphere) Up to 5,000 calls $40.00 $32.00
Places – Text Search (includes Basic + Contact + Atmosphere) Up to 5,000 calls $40.00 $32.00

How do I calculate if I’m within the limits?

These are the API that GeoDirectory currently uses:

  1. Directions API: up to 40k free requests
  2. Distance Matrix API: up to 40k free requests
  3. Elevation API: up to 40k free requests
  4. JavaScript Dynamic Maps: up to 28k free requests
  5. Embedded Maps: Free
  6. Places API : (limit depends on fields used)
  7. Static Maps: up to 100,000 loads
  8. Street View: up to 28,000 panos
  9. Geocoding API: up to 40k free requests
  10. Geolocation API: up to 40k free requests
  11. Time Zone API: up to 40k free requests

What we use the most on GeoDirectory are definitely the Dynamic Maps and the new Google Maps Platform provides 28k free requests for those.

Considering that now they are offering 25k free requests per day, the limit appear to have been dramatically lowered.

Below is an example of a small directory we run (75 listings) for the last 30 days:


On the face of it the site is using about 40% of its free allowance for about 30k sessions and about 120k page views. For relevancy this site makes around $5,000 a year.

What are the steps to enable billing and keep using the Google Maps API

Google provided a transition tool. You need to visit this URL: https://mapsplatformtransition.withgoogle.com/ and login in the Google Account used to create the Google Maps API key of your Directory.

A screen like this will appear:

After clicking on the “Add Billing” button, you will be taken to complete a form asking for your personal information and a credit card number.

That is all you need to do.

After enabling billing, the console provides tools to set alarms or limits, so that you never overspend, even in case of unexpected traffic spikes.

What is our response to this news?

The vast majority of our users won’t be affected by these new limits, sure they might be forced to give Google their billing details but most will remain on the free plan.

GeoDirectory already has the option to use Open Street Maps (OSM) which continues to be free and does not even require an API key.

If your site is set to “Auto” for the maps provider (which it is by default) then there is a chance you are already using OSM without even knowing it.

When it’s set to “Auto” we try to load Google maps but if it fails then we will automatically switch to OSM.

This feature was built in a long time ago mostly for our customers who live in countries where the Google maps API is blocked, if anyone visits your GeoDirectory site from a country where the Google API is blocked, then they will see OSM instead of a broken map 🙂

It is currently unclear how Google will handle things when limits are reached, but if it is possible, we will make it so that it will automatically transition to OSM. Just like it does now for users who live in countries where the Google API is blocked.

We may also look at ways to reduce API calls such as implementing static maps (which are 100% free) on the details pages that only load dynamic maps when interacted with.

Conclusion

We knew this day would come the day Google implemented mandatory API keys for all map API calls.

Its almost 2 years since that came into effect, back then this change broke many old plugins and themes that had not developed a system to add a API key to the map calls.

For that we wrote a small plugin to easily generate a API key and fix the calls on the fly https://wordpress.org/plugins/api-key-for-google-maps/. This is now helping over 100,000 websites!

The small percentage of GeoDirectory customers that will be affected by this, have the option to switch to OSM and continue to use maps on their directory for free.

We will continue to develop solutions that reduce API calls where possible.

Thanks,

Team GeoDirectory

GeoDirectory V2 and Ninja Forms integration

we decided to integrate GeoDirectory V2 with Ninja Forms, here’s why:

While GeoDirectory V1 comes with a built in contact form, GeoDirectory V2 will not have one out of the box.

We removed our contact form, because:

  • It is limited.
  • You can’t customize it easily.
  • It doesn’t keep track of submissions (Lead Management).
  • You could use it only once per listing page.

In addition, if you wanted to add a general contact form to your directory website, you needed a 3rd party plugin, which would make its code redundant.

If you install GeoDirectory V2 today and you add an email address to a listing, the email address will appear instead of the “Send Inquiry” link that used to be there on V1.

However we added a section in the setup wizard to install Ninja Forms.

Why Ninja Forms?

We considered and tested only free plugins and it’s the one we liked the most.

The free version does everything a directory owner may want. If he wants more than the average directory owner, there are plenty of premium extension to choose from.

Ninja Forms is by far the most user friendly, intuitive and well coded of all the plugins that we tested. Stiofan was so impressed that he had no doubt.

In the future we may decide to integrate other plugins, but for the moment Ninja Forms it is…

What will it add to GeoDirectory V2?

  1. The setup wizard will ask you to install the Ninja Forms plugin and will auto-create a basic form, which you can use right away.

  2. You’ll be able to add the form to the listing via widget or shortcode or a Gutenberg block and it will open up in a modal window.

  3. It will be super easy to extend the form with any fields needed.
  4. Ninja Forms comes with built submission tracking (Lead Management). 👋
  5. You can add as many Forms as you wish to any listing via GeoDirectory custom fields and a Ninja Forms shortcode.
  6. You can use Ninja Form for the general contact form of your Directory.

The next beta version of GeoDirectory V2 (it should be released before the week end) will include this new features.

We hope you’ll like it and you’ll help us test it to make it a stable new features as soon as possible.

LAST UPDATED 13/06/2018

today we are releasing the BETA version of GeoDirectory V2. See change log at the end of this article.

This GeoDirectory core BETA is a very early release and is not recommended for a production site.

GeoDirectory addons are not supported yet, this is a core BETA only. Add-ons will be supported once core is out of beta.

WARNING: Directory Starter theme breaks the JS as its still using the old non mobile friendly select boxes. We will provide a BETA V2 for Directory Starter too ASAP.

Please do your testing with alternative themes.

Stiofan and the development team started working on it approximately 9 months ago. The first commit dates June 29th 2017.

GeoDirectory V2 is not an updated version of V1. It is a new software.

Only minimal part of the previous code base has been used. Approximately 10% of the old code remained untouched.

Over 90% of the code has been rewritten to improve the old features and to eliminate the technical debt accumulated with years of development.

We have been thoroughly testing V2 for the past 7 days internally and we are ready to pass it on to you for further testing.

One of the new features of GeoDirectory V2 is usage tracking and report it to us. Usage tracking is on by default at this early stage, but it can be disabled from general settings under “advanced settings”.

Bugs are to be expected and reported here: https://wpgeodirectory.com/support/forum/geodirectory-core-plugin-forum/v2-beta/#new-post

The team will fix everything reported asap and will keep refining few points that we already identified. We will release updates daily if possible until we will get to a stable enough version.

Once V2 core is stable we will start releasing add-ons for BETA testing so we can focus on getting core V2 ready as soon as possible.

Following is a list of the major changes you will see in V2 compared to V1:

Back End UI/UX

Compared to the old settings page, we added a dashboard with the fundamental stats needed to better operate a directory.

We removed the orange icons from the WordPress menu and used proper icons.

We also redesigned completely the back end settings pages, to blend more naturally with the WordPress dashboard UI, adding advance settings to each page to reduce the number of options visible to the bare minimum.

Old Dashboard

V1 Settings Page

New Dashboard

V2 New Dashboard

V2 New Settings Page

V2 New Settings Page

New Templates System

In the “Pages” settings now you can assign 1 page for each of the templates needed by GeoDirectory:

  1. Details page
  2. Archive page
  3. Archive page item

New Templates System - 100% Gutenberg compatible.

New Templates System – 100% Gutenberg compatible.

Finally you can add the elements that compose these pages via Shortcodes or via Gutenberg in the pages themselves.

GD Details Template

GD Details Template

GD Archive Template

GD Archive Template

GD Archive Item Template

GD Archive Item Template

Improved Import / Export of data including Reviews and Settings

Import Export Reviews

Import Export Reviews

Import Export Settings

Import Export Settings

Improved Reviews Settings

Improved Reviews Settings

Improved Reviews Settings

Improved Email Template Settings

Improved Email Template Settings

Improved Email Template Settings

Place Settings & Add Listing Page Improvements

Adding new listings and register simultaneously is a new option. In V1 registration was mandatory to even see the add listing form.

Add Listing as Guest

Add Listing as Guest

The admin can re-order all fields of the add listing page, including title and description.

Reorder Title & Description fields

Reorder Title & Description fields

We optimized the Custom Post Type settings too.

Improved Custom Post Type Settings

Improved Custom Post Type Settings

As promised, we included an advance Business Hours system

Business Hours

Business Hours

Improved Permalinks

Permalinks were one of the major strength of GeoDirectory V1 and now we made them even better. We moved the Permalinks settings into the regular WordPress Permalinks settings page and you’ll find them to be even more flexible than before.

Improved Permalinks

Improved Permalinks

Front End Improvements

We hired a new UI/UX specialist to help us refresh GD default design. We didn’t want him to do anything too fancy, because being a plugin in our opinion GeoDirectory should remain as vanilla as possible.

Following are few of the screenshots of his work. We haven’t finished applying the new styles yet, so we released this 1st BETA with old styles. Tomorrow we will finish applying them while correcting bugs reported by first BETA testers.

Listings Grid View 5 Columns

Listings Grid View 5 Columns

Listing Slider

Listing Slider

Recent Reviews

Recent Reviews

We hope that you’ll like what you’ll see and that you’ll help us test it as much as possible!

Team GeoDirectory


Change log of BETA:

v2.0.0.14-beta (13/06/2018)

Map default language setting is not working for OpenStreetMap – FIXED
GDPR compliance – ADDED
Remove send to friend functionality as it against the GDPR policy – CHANGED
CSS responsive changes and fixes – FIXED
Search page with no query returns its own page – FIXED
Categories widget sub cats not displaying correctly – FIXED
Radio custom fields should not show Yes/No if values are 1/0 without a label – CHANGED/FIXED
Select custom field not showing 0 values – FIXED
OSM address encoder fails if site is non SSL – FIXED
Added setting to be able to disable Yoast SEO on GD pages (if active) – ADDED
Yoast details page og and twitter descriptions using template text instead of post text – FIXED
SD Widget added to be able to display the category description text – ADDED
Some problems with title and meta variables not saving or displaying correctly – FIXED
Categories on add listing page have no hierarchical distinction – FIXED
Custom fields now have placeholder setting where applicable – ADDED
Custom fields settings converted to new style to be more WP like – CHANGED
Sorting settings converted to new style to be more WP like – CHANGED
Sorting settings refactored to use sub queries (delete and re-add sort options recommended) – ADDED
OpenStreetMap populates wrong region for UK – FIXED

v2.0.0.13-beta (07/05/2018)

Page templates for building layouts now restricted from frontend viewing – CHANGED
GD page settings now containg link to edit/view pages when set – ADDED
Custom fields icon now has option to select font awesome icon from a list – ADDED
validation_pattern for custom fields can have slashes stripped which can break validation – FIXED
File upload custom field can now accept multiple files – CHANGED
File uploads now stored in GD attachments table – CHANGED
Get Directions link moved from CF to widget/shortcode – CHANGED
Get user location for directions now uses manual set if user locations cant be auto detected – ADDED
Setup wizard does not warn user if they try to continue while dummy data is being installed – FIXED
Logo predefined field added, post_images shortcode/widget now has option to show logo as first image – ADDED
Preview listing link now has icon to show it opens in new window – ADDED
Tabs show even if no content in them – FIXED
Option added in GD Listings widget to show nearest listings – ADDED
Titles and Meta settings page added and implemented – ADDED
Shortcode builder outputs multiselect values as array instead of sting – FIXED
Default placeholder images for listings will now use the image title/caption if set – CHANGED
Details slider initial load height very tall, max-height set – CHANGED
Review output given GD specific basic styles – ADDED
Some CSS changes to simplify and improve the basics – CHANGED

v2.0.0.12-beta (24/04/2018)

Attachment table date_gmt field added – ADDED
Widget show/hide settings improved for better UI – CHANGED
Post meta widget refactored to give the `show` options more flexibility – CHANGED
Tabs Layout section added to be able to drag/drop create the details page tabs – ADDED

v2.0.0.11-beta (13/04/2018)

gd_listings shortcode/widget sort_by can now use custom sort_by options – CHANGED
Some predefined custom fields are single use only and now show a warning if attempting to add again – CHANGED
Search still looks for featured column even if missing – FIXED
Best of widget CSS and template changes – FIXED
GD Dashboard widget refactored to remove login form when logged out – CHANGED
Fieldset shows error when being added – FIXED
Add listing can sometime show default city warning multiple times – FIXED
Email custom field not showing in map bubble if set to do so – FIXED
Multiselect custom field not resizing DB varchar value on options change – FIXED
General style and spelling corrections – FIXED

v2.0.0.10-beta (06/04/2018)

gd_map shortcode should not show “Enable marker cluster?” if plugin not active – FIXED
Business Hours: add a text if place is closed whole day – ADDED
Shortcode builder not working with WooCommerce products – FIXED
lat/lon DB length increased from 20 to 22 chars to account for negative decimals – CHANGED
Map direction unit conflicts when multiple maps are on the page – FIXED
Extensions screen improvements functionality and UI – CHANGED
Super Duper Class chnaged to show shortcode title like widget title if used – CHANGED
Shortcode builder not using 100% height on large displays – FIXED
Category widget output slightly changed for title_tag – CHANGED
Default image not checking for default category image – FIXED

v2.0.0.9-beta (03/04/2018)

Add listing page shows info might be lost even after save – FIXED
Favorites not adding/removing due to var rename – FIXED
Favorites not adding/removing in map info window – FIXED
Some custom fields not allowing sort by option – FIXED
Added warning if changing default city when listings are present – ADDED
Backend edit review rating missing – FIXED

v2.0.0.8-beta (02/04/2018)

Sorting options not working on archive pages – FIXED
Schema markup updated and activated – FIXED

v2.0.0.7-beta (03/31/2018)

Ninja Forms template used wrong format for to field – FIXED

v2.0.0.6-beta (03/31/2018)

If categories are removed via quick edit we try to add default category – ADDED
Quick edit screen breaks layout of columns – FIXED
CPT settings, required toggle now shown as standard – CHANGED
CPT settings, show/hide advanced settings button moved inside settings – CHANGED
CPT settings, opening one setting will now close all others – CHANGED
Email output mailto spam prevention link not working – FIXED
New setup wizard step added to install recommend plugins – ADDED

v2.0.0.5-beta (03/30/2018)

Double five star bars in dashboard activity box – FIXED
Select2 updated to v4.0.5 – CHANGED
Post badge feature implemented – CHANGED
Post images CSS and lightbox added – ADDED
New images not being added to current listings – FIXED
WP dashboard recent GD reviews block – FIXED
Ninja Forms can now be used to create contact fomrs and more (install wizard step remains) – ADDED
KLEO theme deprecated_function problem – FIXED

v2.0.0.4-beta (03/23/2018)

Tooltips on CPT settings can become stuck when adding a new field – FIXED
Search and archive pages, if no listings found, page is blank – FIXED
Added developer settings section, added setting to disable advanced settings toggle – ADDED
OSM add listing page JS error – FIXED
Autozoom not working for single marker on the map – FIXED
Export button on FireFox causes page refresh which means no access to CSV – FIXED
We now add a uncategorized category on install so you can go straight from the install wizard to add a new post – ADDED
Changing CPT name does not change taxonomies names – FIXED

v2.0.0.3-beta(03/22/2018)

Shortcode builder button added to pages/posts – ADDED

v2.0.0.2-beta (03/21/2018)

Business Hours not working on map popup – FIXED
Backend author filed should show all users not only authors – FIXED
Backend add listing has no validation – FIXED
Lat/Lon HTML5 number inputs can show comma instead of decimal depending on browser language – FIXED
submit_ip is varchar(20) which will not support IPv6 address – FIXED
Tab description does not respect non-HTML line breaks – FIXED
Added design setting to be able to change what page template file the details page uses for theme compatibility – ADDED

v2.0.0.1-beta (03/20/2018)
More then one image slider with same id on same page not working – FIXED
Reviews count not showing on listing – FIXED
Category ID settings column too wide – FIXED
GD > Listings widget now used Archive item page template – FIXED
CPT custom fields settings show unused save button – FIXED
Default location setting missing the “Set address on map” button – FIXED

February though a short month, has been a busy one for GeoDirectory V2.

Our original hope was to have a beta out by the end of the month but alas the best laid plans

I spent some time earlier today going through all the outstanding tasks we need to complete before we can release the beta.

The list is much shorter now and most tasks are final checks on functionality that might have been affected by other changes.

The vast majority of core functionality is already complete.

With that being said, the majority of our development team (apart from me) are on holiday today and tomorrow, so back on Monday the 5th of March.

I have set our milestone goals as:

  1. 12th March Alpha release (mostly for internal testing, and early developer preview)
  2. 19th March Beta release (public beta)

With that out of the way, lets give you a little peek at what we have been up to in February 🙂

Most of the things mentioned here deserve their own post so for some I will only provide few details in bullet points.

Gutenberg

The Gutenberg editor will be released in WordPress v5, it will be one of the biggest changes to WordPress in recent history and we want to be ready for it!

The biggest delay we had was finding a way to make GeoDirectory V2 Gutenberg ready.

For listings, the editor can be used to build template pages for things like Details, Listing and Search pages.

It took us a while to develop this part, because in these template pages we are not pulling “real” data but giving demo data just to build the templates.

We ended up creating our own class for this which turns all the GeoDirectory output features, available as either a shortcode, widget or Gutenberg “block”.

This is done in such a way that no matter what you use, you will have consistent output.

So going from a template page of shortcodes to blocks will be very easy.

(here is a demo of how easy it is to add info to the details page template with Gutenberg)

Rating Styles

GeoDirectory V1 gives you the ability to use either a transparent image star or a FontAwesome Star icon.

These two systems had their own drawbacks, they used generic JS libraries like everyone does to make it work, but also limited the functionality.

The solution was to write our own code. We striped our 5 JS/CSS files and compressed it all down to a just a few lines of JS.

In GeoDirectory V2 you will have the ability to upload your own transparent ratings image if you want, but you can now also use ANY fontawesome icon and set the colors and rating text right from the settings 🙂

Import / Export

This really deserves its own post so i’ll just list a few of the main bullet points

  • Improved error checking (ex: CSV row 216: Missing Title)
  • Improved import speed (especially for large data sets)
  • Auto fill GPS details if enough address info is provided.
  • Import / Export / Backup all GD settings
  • Import / Export reviews added

Email templates

V2 will give you greater control over email and their styling, as well as adding some new features.

  • Editable email template design
  • Edit any email template
  • Easier to translate
  • Added action tags *

* You can now decide if you would like to let the listing OWNER Approve, Reject and/or Spam new reviews.

Not in all cases will you want to allow this self moderating of reviews, that’s why each action can be added individually, maybe you only want the listing owner to be able to Approve their own reviews but not spam or delete it.

Business Hours / Opening Times

Again this deserves its own post so here i will only give the main points.

Building our own system we wanted it to be as versatile as possible:

  • Allows multiple open/close times per day
  • Live open/close status with dropdown for full times
  • Cache proof open/close status (wont be affected by server caching)
  • Live updating, if you are browsing a listing when it opens/closes the status will change without a page refresh
  • Compatible with normal import/export.

Add listing

A few little bullet points before a full post.

  • Option to allow posting without loggin in.
  • Option to remove preview page
  • Now uses Default WP preview system.
  • Auto save every few seconds
  • Start listing, return later feature.
  • Start edits, return later feature.
  • Improved category selection
  • Improved tags selection
  • Image title/description feature.

Backend Listings

You can now show more info in the backend listing screens.

We also now have a “Closed down” post status which if set a listing will not show in search or listing views but will be able to be directly accessed and show a closed down message.

Quick edit / bulk edit menus which were previously disabled now fully work.

Permalinks

Have it your way! 🙂

The End

There are many improvements not listed here, the most significant are under the hood which will make GeoDirectory much more future proof and expandable for both developers and users.

Thanks,

Team GeoDirectory!

Join the GeoDirectory translation team to translate GeoDirectory into 20+ languages in 2018! Read on to learn about how you can join our awesome language team that translates GeoDirectory using our cool new Translator’s Handbook.

Calling All GeoDirectory #polyglots !

Hello, my name is Ismi Aini, and I do UX including translations. I’m here to support members who want to translate GeoDirectory into their own language. I can help you find your translation team and get your request for validation filled out correctly. In this post I also want to introduce our new Translator’s Handbook where we keep all the resources you might need. Our goal is to help you translate GeoDirectory into 20+ languages this year!

Who Translates GeoDirectory? Everyone!

In 2017 WordPress translations changed completely. First there was a change to the location of translation files, and now the responsibility for who creates the translations has changed, too. Instead of plugin authors, it is now all of us, the plugin users and site managers and everyone together who are responsible for translating plugins into our own language.

It’s a big job, but luckily both WordPress.org and AyeCode are providing us with tools and support to help us get organized. Read on to find out more about joining the GeoDirectory Translations Team and make GeoDirectory available in 20+ languages in 2018!

GeoDirectory Core Translations are on WordPress.org

Have you heard? Translations for GeoDirectory are now available on WordPress.org. You can visit the GeoDirectory page on WordPress.org and click through to see the GeoDirectory translations. If you are logged in you can click right through to your language and start translating!
Translator's Handbook Screenshot

GeoDirectory Translator’s Handbook

Each WordPress language team for WordPress has different rules, so we decided to put together a handbook to make it easier for our members to find their language team and get started on their translation. In the handbook you can find details about the GD forum topics for each locale, reaching out to your WordPress language team, flagging the GeoDirectory language during your validation phase, and even a template for submitting your validation request to your language team. The new Translator’s Handbook is here so check it out!
Translator's Handbook Screenshot

GeoDirectory Membership for Lead Translators

A lead translator for each language can gain and keep a free GeoDirectory membership by completing the translations of the GeoDirectory Core plugin and addons, getting them validated, and keeping them updated. When the translation shows on WordPress.org we will get your membership approved and you can continue on with translating the addons. You can see the complete details in the handbook.

Join the GeoDirectory Translation Team

Join our GeoDirectory Translation team by participating in our Translation Forum and on WordPress Slack. We work together and update the forum locale topics so everyone can join in and keep track of your progress. Get started by taking a look at the GeoDirectory Translator’s Handbook and following the steps listed there.

Comments or questions? Join us in the new GeoDirectory Translations Forum!

Dealing with refunds for digital products in 2022

Whether you are selling WordPress Themes, Plugins, or services, dealing with refunds for digital products is a very delicate matter. When someone requests a refund there is a possibility for either party to feel unsatisfied with the result.

  1. The vendor may feel the refund request is unjustified.
  2. The client could be unhappy if the vendor refuses to provide a refund.

We have changed our refund policy several times and now we are convinced there is a right way to deal with refunds, and with this post, we are sharing it with you.

Do online vendors have the right to deny a refund?

Not only do they have the right, (except in the UK under the Consumer Rights Act) but many others do not even provide refunds for digital products.

This is because while digital products can be downloaded they cannot be returned like a physical product, and the same goes for any digital services offered.

Try asking GoDaddy to refund you for a domain you forgot to cancel and you’ll see from their reply what I mean. Last time I tried to contact them concerning this issue they didn’t even reply.

The iTunes App store sales policy clearly says that you cannot cancel a purchase or receive a refund for purchase (but if you have a valid reason, they have been known to make exceptions).

As mentioned above, only in the UK are digital and physical goods treated equally.

However, for a client to get a refund they should be able to prove that the digital product isn’t:

  • Of satisfactory quality.
  • Fit for a particular purpose.
  • As described by the seller.

That’s not that easy to prove.

In almost every country (with some exceptions) refunds for digital products are not mandatory.

In most cases, merchants are only required to clearly post their refund policy.

PayPal has both a buyer and seller protection program. Digital products are not included in seller protection, so refunds for digital products could be granted in dispute cases fairly often.

Before buying, always ask yourself: is there a refund policy?

The onus is on you, as a consumer, to make responsible decisions about the purchases you make online.

Typically there are three types of refund policy.

  1. The Marketing Suicide: We stand by our product and we provide no refund whatsoever.
  2. Would be fair, but just isn’t: 30 days’ money back if you asked for support and we failed to provide a solution.
  3. The smart solution: 30-day money-back guarantee no questions asked.

We tried them all for a long period of time so we can tell you all about them.

The Marketing Suicide – No Refunds

At first, we were so proud and protective of our work that we took it badly on a personal level every time someone even thought to request a refund.

In hindsight, it was not a productive or worthwhile manner in which to conduct ourselves.

It created a bitter, stunted feeling between both parties and left us unhappy.

In addition to increasing our workload when we could have been devoting our attention to improving our products.

It just wasn’t worth it, especially when we considered that we were a growing company with increased visibility.

Our 1st refund policy was the following:

We offer digital media (software) that can be downloaded instantly after a purchase has been made. There is no “trial” or “grace period” after purchasing any product which means all sales are final. Once you have purchased the software, there is no way to “return” it.

It is a member’s responsibility to cancel any payment authorized through PayPal. If you decide to stop the membership and discontinue using our Products, remember to login to your PayPal and cancel the Authorization.

There will be no refund for members that forget to cancel their subscription.

Reading it now gave me chills 🙁, it was a disgraceful way to act, and we learned it the hard way.

Would be fair, but it’s not: 30-day money back if you asked for support and we failed to provide a solution.

When we realized that our 1st refund policy was creating more problems than it was solving, we decided it was time for a change. We looked at the rising stars at the time, that being WooCommerce, and decided to follow in their footsteps.

Our 2nd refund policy stated:

If you are still not satisfied with our products and services after giving us at least one chance to make GeoDirectory work for you (by interacting with us in the support forum):

We will refund your money, as we feel we have failed out responsibilities as support staff.

Ask for a refund within 30 days from your initial purchase here. You will get it, no questions asked.

It is a client’s responsibility to stop payments authorized through PayPal. If you decide you would like to discontinue using our products, please remember to login to your PayPal account and cancel the Authorization.

This was more effective than our first policy but still created friction with clients. Some clients didn’t attempt to seek support and expressed through their inaction their desire to leave our partnership.

Our previous efforts brought us to our third and final policy.

30-day money-back guarantee, no questions asked

Our third and final, refund policy states:

If you are not satisfied with our products and services and are still within 30 days of the original purchase date, your request for a refund will be honored, no questions asked. You can request it here. (Lifetime deals are not covered by this refund policy, please read below)

We cannot grant refunds on renewal payments.

We will send you 2 reminders about your renewing subscrition. The first notification is sent two weeks prior to your renewal date and the second email is sent one week prior to your renewal date.

You may use these opportunities to cancel your subscription before the renewal payment is automatically processed.

For our protection, refunds are not permitted on Lifetime Deals.

The payment gateways refund fees for Lifetime Deals are almost as high as the purchase of one of our add-ons.

This is the reason why refunds for the LTD do not make business sense for us.

If you wish to test the product before commiting to the lifetime deal, please consider purchasing a 4, 6, or 12 months membership, which are covered by the refund policy.

If you decide to upgrade to the Lifetime deal before the end of the membership, we will provide a coupon code for the full amount paid for the initial purchase.

Disputes

Should you open a dispute, instead of asking for a refund, we will keep 50% of the disputed amount while we gather evidence for our submission of the refund.

It is a client’s responsibility to cancel payments authorized through PayPal or Stripe.

If you decide to cancel your membership and discontinue using our products, please remember to login to your PayPal and cancel the authorization. (see instruction here for Paypal). For payments made through Stripe, you can cancel the subscription after logging in, through the “Your Account” page.

Why is it the best?

First of all, you may be surprised to find out how many clients request a refund without providing a valid reason. They are an insignificant percentage.

As a business, we are not losing money. It’s lost revenue, but we didn’t lose the respect of a potential future client who may not ever approach us in the future as the result of a bad customer support issue.

We stand by our products and can personally attest to their quality. While our business is in selling products, we would rather maintain a satisfied customer base than naked profiteering.

While we can definitely afford to lose some business, we understand that many of our clients are not so easily able to lose $200 on business investment, such as a digital product.

Why don’t refund renewals?

That should be self-explanatory. We send you 2 reminders. One 2 weeks prior and one 1 week before the renewal takes place.

The product has been used for one year and if you are asking for a refund, it is definitely not because the product was not satisfactory.

The only reason can be, that the customer disregarded both renewal notifications or straight up forgot to cancel. In that case, the onus shouldn’t be on us.

Especially considering the refunds have costs for the vendor.

Why do we state we keep 50% if a dispute is open instead of a direct refund request?

If you open a dispute with your bank, PayPal or Stripe, because you didn’t read our policy, you’ll make us do extra work to gather evidence that PayPal or other Payment Gateways require to close disputes.

Not only this, but in most cases, gateways charge a dispute fee, not only would we be refunding the money but we would be out of pocket also, so this statement is meant as a deterrent so we are not out of pocket. (our first step of a dispute is to email the customer to find out what’s happening, if they close the dispute before we have to gather and submit evidence then we do give a full refund for first-time purchases)

If you fail to read our policy and then go on to open a dispute with your bank, Paypal or Stripe then you are causing us to take time away from improving our products and business.

When you could have asked for a refund directly?

Why do customers open disputes, when you are that willing to refund?

90% of the time for renewals (recurring payments) which are not covered by our refund policy. I guess because they don’t read what they are buying and ignore renewal notifications.

We  still to this day get people sending us angry emails that often sound like this:

You charged me without my authorization! I opened a dispute and you better give me my money back!

Obviously, we didn’t charge them without their authorization. We couldn’t even if we wanted to.

What happened is that they didn’t read what they were paying for, and we’re not talking about fine prints.

We are extremely clear about a subscription & recurring payments. It’s written everywhere:

(there are single non-subscription options with our memberships)

On the pricing page

In the Frequently Asked Questions, below the pricing table

On the Check out page

If you use Paypal, it will remind you before the final check out

PayPal repeat it once more in their email receipt

Finally, we send you 2 email reminders 14 and 7 days before the renewal.

Conclusions for Buyers

Just make sure you read any and all Terms and Conditions, and the refund policy before buying. Most vendors are honest and are not trying to fool you. By reading the Terms and Conditions, you can make sure this never happens to you.

Conclusions for Vendors

While dealing with refunds is inevitable, dealing with them graciously is more important.

Turning refunds from bad to positive experiences will help to maintain a positive relationship with our client base, and in turn, help our reputation. We will attract back customers in the future that we may have otherwise lost forever.

We may even get referrals from them that we wouldn’t have done if we hadn’t done something to change our policies.

We’ll have less work and be able to keep our stress levels under control, leading to better products in the future and a more positive environment in which to conduct our business.

While we may be losing revenue in the short run, we’ll feel better about our products and clients in the long run.

Do you agree with us? How do you deal with refunds? Please let us know in the comment down below.