After almost 2 years of development, GEO my WP 3.0 is finally here and ready to be tested. You can find the download link at the end of this post. It is, however, important that you read this post before updating.
Version 3.0 is a major update and the most complicated one since the initial release of the plugin. 80% of the plugin was rewritten from scratch to improve performance, user and developer experience, better integration and more.
Before I go into details and list some of the major changes in this version, please note that this is the first beta of version 3.0 with massive core changes, so bugs are expected and it is not recommended to install this version of the plugin on a production site. Also, the premium extensions will need to be updated in order to be compatible with GEO my WP 3.0. So any of the premium extensions installed on your site will most likely not work properly with this beta version GEO my WP 3.0.
Please also keep in mind that I am a single developer working on GEO my WP. Which means the development of the core plugin and the extensions, updates, documentation, and support. This is the main reason it took me nearly 2 years ( on and off development ) to wrap up version 3.0. I tested this version on multiple environments and fixed all the issues I could find. However, as a single developer I am limited and cannot test it enough. Therefore, more issues are expected. When this happens, kindly use the comments below to report it.
So What’s New In Version 3.0?
Expandability and Developer Friendly
The main focus in this version was to make GEO my WP more extendable and developer friendly. With many new classes, functions, and hooks that can be used to extend GEO my WP, I am hoping that themes and plugins developers will contribute and integrate their work with GEO my WP. With some of the new classes, it should be easier to register a custom extension ( add-on ), use the proximity search queries with the custom extension, use the location form and more. More details for developers I will post in the future. Perhaps, after the official release of the plugin.
Locations Database Table
Up to this version of the plugin a custom database table, which holds the geolocation data, was created for each object ( posts, BP members, Groups… ). Custom tables like wp_places_locator, wppl_friends_locator, and wp_groups_locator. Having multiple custom tables was hard to maintain and there was no good integration/relation between the different tables. Now, in GEO my WP 3.0, there is a single locations table ( gmw_locations ) that will hold the geolocation data of the different objects. Also, this table is a global table and will be used with all the subsites of a multisite installation. This is instead of creating a custom table per subsite. Having a single table now will be easier to maintain and it can be easily used when registering a custom extension.
After the update of GEO my WP 3.0 you will need to import the existing location into the new locations table. The importing process is described at the end of this post.
Location Meta Database Table
Along with the new locations table, a new locations meta table ( gmw_locationsmeta ) was added. With the new GMW_Location class GEO my WP can create, update and delete location meta. This is very similar to custom fields ( post meta ) and user meta. Up until this version, GEO my WP would save custom data such as phone, fax, email, and website ( for post types ) in custom fields and some user/member data in user meta. Having its own location meta system, there is a better integration between each object and its location meta as well as between each location data to the location meta. It is also possible ( for developers ) to extend the location form with custom location meta. So data such as phone, fax, email, and website can be removed and new meta can be added.
Search Forms Database Table
Up to this version GEO my WP saved its forms data in the wp_options table. In version 3.0 a new database table ( gmw_forms ) was added where the forms data will be saved. Doing so make it easier to maintain the forms data.
Finally, the location form of the “Edit post” page, which is one of the more important parts of GEO my WP, was completely redone. It has a new face ( which I hope you’ll like ), I believe that it is more user-friendly ( feedback is welcome ) and it is generated by a class that can be extended to work with custom extensions. It can as well be modified in many ways using action hooks and filters. The GMW_Location_Form class should make it easier for themes and plugins developer to display the location form in the back-end and front-end for better integration with GEO my WP.
GEO my WP Forms Page
Both the “Forms” and the “Edit form” page were improved ( in my opinion. Your feedback is welcome ). The “Forms” page was slightly modified and is now better organized. The major change is in the “Edit Form” page. Now when editing a form, the editor expands to a full-screen size to give more space and to make it easier to work with. In addition to that, a new “Form Submission” tab was added. The settings in this tab already existed in different tabs. This new tab was added to better group the different form settings.
Extensions / Add-ons Page
The Extensions page was as well rewritten from scratch and It is now looking more like the WordPress’ plugins page, which I personally like. The page contains more information about each extension and it should take care of some issues with the activation/deactivation of the extensions and license keys.
Internal Caching System
GEO my WP 3.0 has a new internal caching system. This system uses transients to save complex queries, such as WP terms, WP posts and WP users queries, which should improve the plugin’s performance.
Deprecated Functions, Classes and Shortcodes
Some functions, classes, and shortcodes are now deprecated and replaced and they are now placed in a file dedicated for that. If you have WP_DEBUG enabled ( which I advise you to enable while testing a beta version ) you might see some warnings after the updated ( most likely if you use custom search form or search results template files ). You should follow the warning and replace the deprecated functions as advised.
Plugin Usage Tracking System
After the activation of GEO my WP 3.0 you should see an admin notice asking if you would like GEO my WP to track its usage on your site. You can either allow or disallow tracking. You can also enable and disable it at any time from GEO my WP Settings page.
The system tracks minimal, non-sensitive information that can help me improve the plugin. Information like the theme and the plugins that are being used on the site, server, WP version, PHP version, and GEO my WP version.
You will not notice big changes in the front-end, except minimal styling improvements. There are no new search form or search results template files at the moment. I might look into it once I am done with the official release of GEO my WP 3.0 and the extensions.
After The Update
After the update of the plugin ( if you are updating from an earlier version ), the first thing you should see is an admin notice asking you to import existing locations. A click on the link in the notice will take you to the “Import / Export” page, under the “GEO my WP v3.0” tab. Simply click the “Import” button to import the existing locations.
One thing I still need to do is to go over and fix the description of the settings in the Settings page and the form editor.
That is it!
I believe I covered almost everything. You can download GEO my WP 3.0 beta 1 from here and replace it with the current version installed on your site.
Feedback, comments, and bug reports are welcome via the comments section below.
While the beta version is being tested, I will be updating the extensions, which hopefull, will be ready by the time the official release of GEO my WP 3.0 is ready.
Your support is greatly appreciated.