Connections Business Directory


Showcase | Documentation | Support | Templates | Extensions

Quite simply, Connections Business Directory is one of the best business directory plugins available for WordPress. Its simplicity in design and function, vast array of unique features and versatility are the reasons more and more people are turning to Connections Business Directory for their directory needs. You can use Connections to create a simple address book, maintain a staff or member directory and run a business directory or link directory. Connections Business Directory was built bottom up to be as configurable as possible while providing the features you need. Read on to learn about some of the best features Connections Business Directory has to offer…


  • Seamless integration with WordPress.
  • Highly rated support.
  • Continuously updated bringing you new features for free.
  • Dashboard admin page where you can see at a glance today’s anniversaries and birthdays as well as upcoming anniversaries and birthdays of members in your directory.
  • Multiple entry types from which to choose; such as individual, organization and family. The family entry type is unique to Connections. This entry type allows you to group individuals together as a family which makes Connections ideally suited for creating a church directory.
  • You control which entries are viewable to the public and which entries are private, viewable for logged in users only. You can even have entries set as unlisted so only admins can view them.
  • Repeatable fields for address, phone numbers, email, IM, social media, links and dates which allow you to add as much or as little as you need for each business in your business directory.
  • Hierarchical (nested) category support. Businesses and members in your business directory can be added to any number of categories.
  • Include a biographical text for an individual member or business description for each entry in your business directory using an easy to use rich text editor.
  • You can easily add a business logo or photo of the staff member for each entry in your business directory or staff directory. The photo and logo images are fully responsive with HiDPI (Retina) display support.
  • Scalable, manage directories which contain hundreds of thousands of entries.
  • CSV Export of addresses, phone numbers, email addresses and dates.
  • CSV Import of nested categories.
  • Role capability support.
  • Displaying your business directory on the frontend is as simple as putting a shortcode on a page. Don’t let this simplicity fool you. The shortcode provides a large array of options that are just too numerous to list. To learn more, go here.
  • SEO. Every entry in your business directory outputs following the hCard spec. Soon to be updated to following
  • Extensible and developer friendly.
  • Robust templating support with the Template Customizer. Several basic templates are provided to get you started with you business directory with many more premium templates available to really make your business directory shine.


Here are some great free extensions (with more on the way) that enhance your experience with Connections Business Directory:


  • Toolbar :: Provides quick links to the admin pages from the admin bar.
  • Login :: Provides a simple to use login shortcode and widget.
  • Anniversary and Birthday Emails :: Add the ability to automatically send a customizable email to entries on their anniversary or birthday.

Custom Fields


  • Face Detect :: Applies face detection before cropping an image.

Premium Extensions

  • Authored :: Displays a list of blog posts written by the entry on their profile page.
  • Contact :: Displays a contact form on the entry’s profile page to allow your visitors to contact the entry without revealing their email address.
  • CSV Import :: Bulk import your data in to your directory.
  • Custom Category Order :: Order your categories exactly as you need them.
  • Custom Entry Order :: Allows you to easily define the order that your business directory entries should be displayed.
  • Enhanced Categories :: Adds many features to the categories.
  • Form :: Allow site visitor to submit entries to your directory. Also provides frontend editing support.
  • Link :: Links a WordPress user to an entry so that user can maintain their entry with or without moderation.
  • ROT13 Encryption :: Protect email addresses from being harvested from your business directory by spam bots.
  • SiteShot :: Show a screen capture of the entry’s website.
  • Widget Pack :: A set of feature rich, versatile and highly configurable widgets that can be used to enhance your directory.

Premium Templates

Connections Business Directory comes with a couple templates to get you started which fully support the Template Customizer. In addition to these free templates there are many premium templates available to take your business directory the level visually.

  • Circled :: A simple but bold template specifically designed for displaying small team or staff directory.
  • cMap :: Our most popular go to template for a business directory and chamber of commerce business directory, featuring full Template Customizer support.
  • Excerpt Plus :: Simple design which features a directory entry name, photo thumbnail and excerpt.
  • Gridder :: Another simple but bold template which displays the directory in a grid layout. Perfect for displaying a small team or staff directory
  • Slim Plus :: Specifically designed to take up as little space on the page as possible.
  • Tile Plus :: This template was purposely designed to display the directory in a grid or column layout.

Developer Friendly

  • Open development on Github.
  • Access to 180 action hooks and over 300 filters … and counting.
  • Term API.
  • Custom Metabox and Fields API.
  • Template Engine and API.
  • Fragment Cache API.
  • Log API (stateless and stateful).
  • Admin Notices API.
  • Email API.
  • Settings API.

Connections Business Directory has a very flexible template engine. The loading of template and CSS are context aware. This means you could create specific templates that load when a user visits a specific entry, category, postal code and more.

Templates and CSS overriding is very granular and update safe. Check out these links for the details:


Connections Business Directory has been embraced around the world and has been translated by its users in the following languages.

  • Arabic [60% Complete]
  • Catalan [52% Complete]
  • Croatian (Croatia) [22% Complete]
  • Danish [31% Complete]
  • Danish (Denmark) [29% Complete]
  • Dutch (Netherlands) [49% Complete]
  • Finnish [78% Complete]
  • French (France) [90% Complete]
  • German (Germany) [86% Complete]
  • Greek (Greece) [69% Complete]
  • Hebrew (Israel) [61% Complete]
  • Hungarian (Hungry) [52% Complete]
  • Italian (Italy) [58% Complete]
  • Norwegian [13% Complete]
  • Persian (Iran) [52% Complete]
  • Polish (Poland) [52% Complete]
  • Portuguese (Brazil) [77% Complete]
  • Portuguese (Portugal) [24% Complete]
  • Romanian (Romania) [69% Complete]
  • Russian (Russia) [40% Complete]
  • Serbian (Latin) [2% Complete]
  • Spanish (Latin America) [49% Complete]
  • Spanish (Mexico) [99% Complete]
  • Spanish (Spain) [99% Complete]
  • Sweden (Swedish) [96% Complete]
  • Turkish (Turkey) [58% Complete]




A comprehensive list of FAQs can be found here.

How do I install Connections?

Installation instructions can be found here.

Using the WordPress Plugin Search

  1. Navigate to the Add New sub-page under the Plugins admin page.
  2. Search for connections business directory.
  3. The plugin should be listed first in the search results.
  4. Click the Install Now link.
  5. Lastly click the Activate Plugin link to activate the plugin.

Uploading in WordPress Admin

  1. Download the plugin zip file and save it to your computer.
  2. Navigate to the Add New sub-page under the Plugins admin page.
  3. Click the Upload link.
  4. Select Connections Business Directory zip file from where you saved the zip file on your computer.
  5. Click the Install Now button.
  6. Lastly click the Activate Plugin link to activate the plugin.

Using FTP

  1. Download the plugin zip file and save it to your computer.
  2. Extract the Connections Business Directory zip file.
  3. Create a new directory named connections directory in the ../wp-content/plugins/ directory.
  4. Upload the files from the folder extracted in Step 2.
  5. Activate the plugin on the Plugins admin page.
How do I display the business directory on my site?

We have a QuickStart available that’ll walk you thru the most basic setup. Basically all you need to do is, create a page, and add the [connections] shortcode and then start adding entries to your directory.

Will it work with my theme?

Connections Business Directory has been designed to work with any theme.

Is Connections Business Directory translation-ready?

Yes it is. Connections Business Directory comes with many user supplied translations. We use Transifex to manage translations. This service make it easy for us manage and easy for you to translate. To read more, see this page.

Is Connections Business Directory compatible with WordPress Multisite?

Yes it is. However, do not Network activate Connections. Activate it on only the subsites that you wish to use Connections.

Is it possible to share entries with other sites within a WordPress Multisite installation?

Yes this is possible but there is a special setup required to do so. It is recommended this is done before added entries to your business directory.

  1. Activate Connections Business Directory the primary site.
  2. Add define( 'CN_MULTISITE_ENABLED', FALSE ); to your wp-config.php file. NOTE: If you have added any entries to any of your subsites, that data will be lost as Connections will read the directory entry data from the primary site’s database tables.
  3. Activate Connections Business Directory on the subsites you wish to use Connections.
What are the requirements to run Connections?
  • WordPress version: >= 4.4
  • PHP version: >= 5.2.4 ( >= 7.0 is highly recommended)
  • NOTE: Upgrading from version 0.6.1 and newer only, is supported. Previous version must upgrade to 0.6.1 before upgrading to the current version.


Excellent plugin and support

We’ve been using this plugin to manage a vendor directory on our website, and with it’s incredibly flexibility, it has handled every scenario that we’ve thrown at it. I’ve reached out to support a couple of times to ask how the developer would handle some special things that we’ve wanted to do, and let me tell you what, he has provided some of the best support I have ever received. He’s an amazing person, an amazing developer, and this is an amazing plugin. Would highly recommend!

Exceptional plugin, world class support

We wanted a member directory for our site. With Connections we got an exceptional plugin that we were able to configure giving members complete control of their entries from the front end so minimal management by site admins. This is exactly what we wanted. We have an exceptional directory that is the highlight of the site. When we’ve needed it, the support has been world class. No other plugin, and we have a few, is so well supported.

5 Star Service, Support and Functionality!

I have used Stephen Zahn’s Connections Pro plugin for two high profile directories over the last few years. Connections Pro is hands-down THE very best directory plugin for WordPress! So adaptable, easy to use, and does the job well! The support for his plugins and extensions is impeccable. He is very attentive and explains things very clearly in both the documentation and in the support forum. From a web developer (by trade), working with WordPress for nearly 10 years, I highly recommend this plugin for any of your directory needs.

Excellent Directory Plugin, Excellent Customer Support

This is a cost-effective, robust, and flexible directory plugin. It can be customized as necessary and is easy to use on the admin side. Steven Zahm provides accurate and fast customer support. He is also willing to provide code for your customizations when necessary, as well as quick and easy ways to install them using Snippets. He also warns users to not install code in certain directories in order to avoid the code being re-written in WordPress upgrades, which is something that I truly appreciate.

I checked out many other directory plugins but Connections and the Cmap template are by far the best.

I strongly recommend this plugin and the Cmap tempalte.

Excellent support and long time user

We’ve deployed the Connections plugin on multiple sites for clients across many industries and they love it!

Church directories, business vendor listings and more!

The plugins works great, support is excellent and responsive.

Read all 303 reviews

Contributors & Developers

“Connections Business Directory” is open source software. The following people have contributed to this plugin.


“Connections Business Directory” has been translated into 1 locale. Thank you to the translators for their contributions.

Translate “Connections Business Directory” into your language.

Interested in development?

Browse the code, check out the SVN repository, or subscribe to the development log by RSS.


Complete Changelog can be found here.

8.28 09/14/2018

  • NEW: Bump minimum PHP version to 5.4.
  • NEW: Introduce the Map API with multiple map tile service providers such as Google Maps, Wikimedia Maps and OpenStreetMaps.
  • NEW: Add new shortcode which utilizes the new Map API.
  • NEW: Templates which support displaying maps will default to displaying Wikimedia Maps if Google Maps API has not been setup.
  • NEW: Templates which support display of maps will now display a map marker for each address added to the entry with a popup displaying the address.
  • TWEAK: Tweak Divi’s Grab first post image option compatibility.
  • TWEAK: Tweak logic applied for Maps Marker plugin compatibility.
  • TWEAK: Remove the copy entry action until it can be fixed.
  • TWEAK: Default the base map tiles to Wikimedia instead of OpenStreetMap when displaying the geocoding map in admin when adding/editing and entry.
  • TWEAK: Replace spaces with hyphens when escaping the HTML element id attribute.
  • TWEAK Refactor cnOutput::getMapBlock() to utilize the new Map API.
  • BUG: The cnHTML::attribute() method had a double ‘data’ in switch statement. Rename duplicate to ‘data-array` to reflect intended application.
  • OTHER: Remove stray whitespace.
  • OTHER: Remove EOL from cnOutput::mapBlock().
  • OTHER: Remove usage of deprecated getJavaScriptFooter() method.
  • DEV: Add a few helper methods to cnCoordinates to create object from various supplied types.
  • DEV: Add __String() to cnCoordinates.

8.27 08/31/2018

  • NEW: Add Algolia as a geocoding provider.
  • TWEAK: Default to Algolia to geocode address if the Google Maps API Server key has not been set in the settings.
  • TWEAK: Switch from the goMap library to the Leaflet library to provide mapping and geocoding when clicking the Geocode button while adding an address.
  • TWEAK: Default to Wikimedia Maps to display maps if the Google Maps API Browser key has not been set in the settings.
  • DEV: phpDoc corrections
  • DEV: A package.json update to remove grunt-phpdocumentor.

8.26 08/20/2018

  • NEW: Introduce multiple service provider geocoding API.
  • NEW: Refactor entry action to geocode addresses to utilize the new multiple service provider geocode API.
  • TWEAK: Tweak to cnEntry_Collection_Item::__isset() and cnEntry_Collection_Item::__get() so empty() calls return values as expected.
  • TWEAK: Remove duplicate code in cnAddress by extending it using cnEntry_Collection_Item to match the other entry object types.
  • TWEAK: Add toArray method to cnCoordinates.
  • TWEAK: Move country an coordinates to the Model folder.
  • TWEAK: Move cnTimezone to Model folder.
  • TWEAK: Update user-agent sent when doing plugin update check.
  • TWEAK: Update dependencies registry to account for file path changes.
  • TWEAK: Remove old geocoding functions.
  • DEV: phpDoc additions and corrections.

8.25.1 08/06/2018

  • BUG: Add limit parameter to cnOutput::getDateBlock() to correct index not defined PHP notice.
  • DEV: phpDoc correction.

8.25 08/01/2018

  • TWEAK: Refactor the Manage admin page to utilize cnEntryDates::render().
  • TWEAK: Refactor cnEntry_Output::getDateBlock() to utilize the cnEntry_Dates objects render() method using templates.
  • TWEAK: Remove unused parameters from methods in cnOutput.
  • BUG: Correct a couple typos in cnEntry_Dates::render().
  • I18N: Update POT file.
  • I18N: Update MO files.
  • DEV: phpDoc correction.

8.24 07/27/2018

  • NEW: Introduce cnString::replaceFirst() and cnString::replaceLast().
  • TWEAK: Refactor cnEntry to utilize cnEntry_Dates.
  • TWEAK: Refactor cnShortcode::single() to utilize cnString::replaceFirst().
  • TWEAK: Use wp_kses_post() instead of esc_html() to display setting descriptions so HTML such as links can be used.
  • TWEAK: Add missing link to documentation in the content block setting descriptions.
  • I18N: Update POT file.
  • I18N: Update MO files.
  • OTHER: Correct copy/paste error within some inline code comments.

8.23 07/23/2018

  • BUG: Honor the $saving parameter when querying entry data from its object cache.

8.22 07/18/2018

  • FEATURE: Introduce the Date Fieldset configuration options.
  • NEW: Introduce cnEntry_Dates() and cnEntry_Date().
  • TWEAK: Init a new cnMessenger object instead of stdClass when creating “dummy” objects for the messenger fieldset.
  • TWEAK: Ensure $screen is instance of WP_Screen before accessing methods.
  • TWEAK Make data parameter in cnAddress, cnPhone, cnEmail_Address, cnLink and cnMessenger optional. Default to array.
  • TWEAK: Init each entry template field with the corresponding object instead of a generic stdClass.
  • TWEAK: If there are no active entry types, use the default entry type.
  • BUG: Get default messenger type instead of default email type in the messenger fieldset.
  • BUG: Sanitize messenger user ID correctly.
  • OTHER: Add trailing comma to array.
  • DEV: phpDoc corrections.

8.21 06/11/2018

  • TWEAK: Remove usage of $connections global from cnOutput::vcard().
  • TWEAK: Update cnText_Domain::create() to accept the plugin basename parameter.
  • TWEAK: Tweak the cnText_Domain::register() $priority parameter to accept a value of load so the text domain is loaded instead of registered via the plugins_loaded action hook.
  • TWEAK: Requirements check for tested up to compatibility only compares major.minor ignoring release version.
  • TWEAK: Remove unused parameters from methods in cnOutput.
  • TWEAK: Refactor cnEntry_Output::getLinkBlock() to utilize the cnEntry_Links objects render() method using templates.
  • I18N: Add translation text context for person “Title” and link “Title” so the can be translated individually.
  • COMPATIBILITY: Compatibility tweak for the MayaShop theme. Remove the filter being applied to the clean_url being applied by the theme.
  • BUG: cnOutput::renderMetaBlock() should echo, not return.
  • DEV: Some phpDoc cleanup.

8.20 06/01/2018

  • NEW: Load plugin only if the current environment passes the requirements checks.
  • NEW: Bump minimum WP version to 4.5.3.
  • NEW: Introduce cnRequirements_Check.
  • TWEAK: Disable the no shortcode 404 trigger. Once again foiled by visual page builders!
  • TWEAK: Add the address property to cnLink for backwards compatibility.
  • TWEAK: Strip tags when displaying the upgrade notice.
  • TWEAK: Tweak regex for parsing the extensions changelog text to be compatible with EDD-SL >= 3.6.
  • TWEAK: Add Settings heading to the settings admin page.
  • TWEAK: Slight refactor of cnText_Domain to make it plugin-agnostic, not rely on plugin constants, so it can be utilized by add-ons to reduce code duplication.
  • BUG: If link title is blank, use the link URL.
  • BUG: Remove extra div/unclosed tags on the manage admin page.
  • COMPATIBILITY: Divi, disable the “Grab the first post image” option on pages where the [connections] shortcode exists.

8.19.1 05/09/2018

  • BUG: If link title is blank, use the link URL.
  • BUG: Add the address property to cnLink for backwards compatibility.

8.19 05/02/2018

  • NEW: Introduce the cn_customizer_image_options filter.
  • NEW: Introduce cnEntry_Links() and cnLink().
  • NEW: Introduce helper methods maybeUnserialize() and fromMaybeSerialized() to cnEntry_Object_Collection.
  • NEW: Introduce cnEntry_Image.
  • TWEAK: Ensure link URL is a string before prefixing it and passing it to the objects property.
  • TWEAK: Update cnLink with helper methods for attaching a link to an image and add helper methods to get which image the link might be attached to.
  • TWEAK: Update cnEntry_Links, added support to filter links attached to images.
  • TWEAK: Move the messenger back compatibility logic from cnEntry to cnEntry_Messenger_IDs.
  • TWEAK: Refactor cnEntry to utilize cnEntry_Links.
  • TWEAK: Init the cnEntry_Image object and refactor code, moving the legacy image processing logic to cnEntry_Image.
  • TWEAK: If shortcode is not found in post content and a registered query var is detected, trigger a 404.
  • DEV: phpDoc updates.
  • DEV: Remove dead commented out code from constructor in cnEntry.
  • DEV: Remove unused method properties in cnEntry.
  • DEV: Remove unused private method in cnEntry.
  • DEV: Remove unused properties in cnEntry.
  • DEV: Change satooshi/php-coveralls to php-coveralls/php-coveralls in composer.json.
  • DEV: Update php-coveralls/php-coveralls required version.

8.18 04/20/2018

  • TWEAK: Switch all is_a() instances of to instanceof.
  • TWEAK: Update teh jQuery Validate library to 1.17.0.
  • TWEAK: Add option to cnOutput::getImage() to enable the logo/photo to be a entry permalink unless overridden by an assigned link.
  • TWEAK: Update the Default Entry Card template so the logo/photo will be a permalink to the entry.
  • TWEAK: Update the Profile template so the logo/photo will be a permalink to the entry.
  • TWEAK: Rename cnSEO::trigger404() to cnSEO::trigger404_entryNotFound().
  • OTHER: Correct misspelling.
  • DEV: phpDoc corrections.
  • DEV: Remove unused variables.

8.17 04/13/2018

  • FEATURE: Add link fieldset configuration options.
  • TWEAK: Change class constant access syntax to be compatible with php5.3.
  • TWEAK: Minor tweak to logic to ensure the preferred array value does not create a new messenger ID object when updating from array.
  • TWEAK: Create instance of cnPhone instead of stdClass when creating a new phone number object when creating a “dummy” placeholder object for the phone fieldset.
  • TWEAK: Create instance of cnEmail_Address instead of stdClass when creating a new email address object when creating a “dummy” placeholder object for the email fieldset.
  • TWEAK: Set the cnEntry::getLinks() default value for type to query to NULL instead of the registered core types so all links will be queried vs. only the registered types.
  • TWEAK: Change default date format of cnEntry::getFormattedTimeStamp() to use the WordPress default date format set by the user in the settings.
  • TWEAK: When saving/updating an entry, the added date time and updated date time should be saved in UTC.
  • TWEAK: Update various spots in the code to account that the last updated and date added timestamps are in UTC so they will properly be cconverted into the current user’s timezone.
  • TWEAK: Change cnEntry::getDateAdded() to use the user’s defined date format from the WP settings.
  • TWEAK: Add time to cnEntry::getFormattedTimeStamp() default date format. Default to user’s defined date time format from the WP settings.
  • TWEAK: Add time to cnEntry::getDateAdded() default date format. Default to user’s defined date time format from the WP settings.
  • TWEAK: Remove the hardcoded date time formats used on the Manage admin page so they will display in the users defined date time format in the WP settings.
  • TWEAK: Ensure cnEntry::getBio() and cnEntry::getNotes() only return strings.
  • BUG: Correct PHP index not found notice.
  • BUG: The messenger fieldset was not updated to honor the fieldset settings!
  • BUG: Version should be string.
  • OTHER: Remove extra spaces.
  • OTHER: Remove todo in cnEntry.
  • OTHER: Remove extra tabs and align span tags.
  • OTHER: Remove trailing spaces.
  • OTHER: Remove extra spaces.
  • I18N: Correct string so it can be translated.
  • DEV: phpDoc corrections.
  • DEV: Remove some commented out debug code.

8.16 03/30/2018

  • FEATURE: Introduce the Instant Messenger Fieldset configuration options.
  • NEW: Introduce cnEntry_Messenger_IDs and cnMessenger objects.
  • NEW: Introduce cnText_Domain::register().
  • TWEAK: Add abstract constructor to cnEntry_Collection_Item.
  • TWEAK: Add method create() to cnEntry_Collection_Item.
  • TWEAK: Remove method create() from cnPhone and cnEmail to remove code duplication.
  • TWEAK: Refactor cnEntry::getIm() and cnEntry::setIm() to utilize the cnEntry_Messenger_IDs object.
  • TWEAK:Refactor cnEntry_Output::getImBlock() to utilize the cnEntry_Messenger_IDs objects render() method using templates.
  • TWEAK: Add VERSION constant to the core plugin class to store the plugin version.
  • TWEAK: Use class VERSION constant to set the global version constant for the plugin version.
  • TWEAK: Deprecate cnText_Domain::create().
  • TWEAK: Use cnText_Domain::register() instead of cnText_Domain::create().
  • TWEAK: Add a few class variables and helper methods to get the plugin path, url and basename.
  • TWEAK: Use the helper methods to set the global constants for the plugin path, url and basename.
  • BUG: Phone number was being sanitized as a street address, corrected so it is sanitized as a phone number.
  • OTHER: Correct misspelling.
  • DEV: Correct inline documentation.
  • DEV: phpDoc corrections.
  • DEV: Correct code indents.
  • DEV: Add phpDoc block to ConnectionsLoad::hooks().

8.15 03/24/2018

  • BUG: Ensure cnEntry_Email_Addresses is properly initialized when adding new entry.

8.14 03/23/2018

  • NEW: Introduce cnEntry_Email_Addresses and cnEmail_Address.
  • TWEAK: Use array_replace() instead of array_merge() when setting the order of a sortable settings input list.
  • TWEAK: Refactor cnEntry::getEmailAddresses() and cnEntry::setEmailAddresses() to utilize cnEntry_Email_Addresses and cnEmail_Adress.
  • TWEAK: Refactor cnEntry_Output::getEmailAddressBlock() to utilize cnEntry_Email_Addresses::render().
  • TWEAK: Update manage admin page to utilize the new email addresses template.
  • BUG: Ensure integer is passed to gmdate().
  • BUG: The method cnRetrieve::entries() is not static, but was called statically.
  • OTHER: Add the new Certifications add on to the readme.txt file.
  • OTHER: Correct the version changelog section.
  • DEV: Correct phpdoc alignment.
  • DEV: phpDoc corrections.

8.13 03/09/2018

  • FEATURE: Add new option to the Connections : Manage admin page Screen Option to allow the user to choose between the entry logo or photo as the thumbail.
  • NEW: Introduce cnUser::getMeta() and cnUser::setMeta().
  • NEW: Introduce cnUser::getScreenOptions() and cnUser::setScreenOptions().
  • NEW: Introduce cnUser::getScreenOption() and cnUser::setScreenOption().
  • TWEAK: Refactor cnUser::getFilterPage() and cnUser::setFilterPage() to use cnUser::getScreenOption() and cnUser::setScreenOption() respectively and then deprecate those methods.
  • TWEAK: Add connectionsLoad::$user as reference to connectionsLoad::$currentUser.
  • OTHER: Update the Screen Options library from version 1.3 to 1.4.
  • OTHER: Update Chosen library from 1.7.0 to 1.8.3.
  • I18N: Update POT file.
  • I18N: Update MO files.
  • DEV: Update package.json.
  • DEV: phpDoc corrections.

8.12 02/19/2018

  • NEW: Introduce several new timezone helper methods in cnDate.
  • TWEAK: Add options to the cnRetrieve::upcoming() method to suport whether or not to check user caps and from timestamp.
  • TWEAK: Add option to cnRetrieve::entries() to support whether or not to check user caps.
  • TWEAK: Remove a bunch of unused and unnecessary methods from cnDate.
  • TWEAK: Use cnDate::getWPUTCOffset() helper method in cnEntry_vCard::getUTCOffset().
  • TWEAK: Cast result of date(‘I’) to int.
  • BUG: The wp_script_is() requires a handle to check.
  • BUG: Correct array to string conversion PHP notice.
  • DEV: phpDoc corrections in cnDate.

8.11 02/05/2018

  • NEW: Add support for the plugin bannerS in plugin info REST API responses.
  • NEW: Add support for the plugin iconS in plugin info REST API responses.
  • NEW: Add support for opting into beta versions of the installed addons.
  • NEW: Introduce cnPlugn_Updater::maybe_unserialize_response().
  • NEW: Introduce cnText_Domain.
  • TWEAK: Check for DOING_AJAX when adjusting the addon update check and status check.
  • TWEAK: Clean plugin cache on addon activate/deactivate.
  • TWEAK: When doing addon status check use the same timeout as used during update checks when on the WP Updates admin page.
  • TWEAK: Update addon statuses after doing an update check.
  • TWEAK: Clean the plugin cache before running the addon status check.
  • TWEAK: Change the priority of addon status check to 9 on the WP Plugins admin page so it runs before the addon update check.
  • TWEAK: Utilize cnText_Domain to load the plugin translation files.
  • BUG: Ensure the $atts variable is an array before setting values when viewing all.
  • DEV: phpDoc corrections.
  • DEV: Update plugin header.

8.10 01/26/2018

  • NEW: Introduce abstract class cnEntry_Object_Collection.
  • NEW: Introduce abstract class cnEntry_Collection_Item.
  • NEW: Introduce class cnEntry_Phone_Numbers.
  • NEW: Introduce class cnPhone.
  • NEW: Introduce cnCSV_Batch_Export_All::getFields().
  • NEW: Create the phone tempalte files for hCard and the manage admin page.
  • NEW: Complete refactor of phone number model using cnEntry_Phone_Numbers and cnPhone objects.
  • TWEAK: Ensure upcoming dates are translated thru date_i18n().
  • TWEAK: Use the default address type rather than “other” when constructing a new address if type was not supplied.
  • TWEAK: Add phone number to the sanitize field method.
  • TWEAK: Make cnCSV_Batch_Export::getTerms() a public method.
  • TWEAK: Refactor cnCSV_Batch_Export_All and introduce filters for plugins to hook into.
  • TWEAK: PHP7.2 notice fix.
  • TWEAK: Rename “Field Configuration” settings tab to “Fieldset Configuration” for consistency.
  • TWEAK: Add “Fieldset” to the settings sections title for consistency.
  • TWEAK: Add the missing “Link Fieldset” settings section.
  • TWEAK: cnEntry property should not be init’d as a string since it is an cnEntry_Addresses object.
  • DEV: phpDoc corrections.

8.9 01/12/2018

  • FEATURE: Add email fieldset configuration options.
  • TWEAK: Minor tweaks to CN_parseCSV::parse_string() and CN_parseCSV::unparse() to use column indexes rather than column header names as the array index to allow duplicate column names in the source CSV file.
  • BUG: Link title and url fields were not being sanitized.
  • DEV: phpDoc corrections.

8.8 12/22/2017

  • FEATURE: Add phone fieldset configuration options.
  • TWEAK: Ensure jquery-form is registered, seems some plugin/theme is unregistering this core WP script.
  • TWEAK: Tweak to ensure Say What text changes can be applied to address type labels.
  • TWEAK: cnOptions::getRegisteredAddressTypes()` should return all active and inactive address types.
  • TWEAK: Deprecated cnOptions::getDefaultAddressValues()should return cnOptions::getAddressTypesOptions().
  • TWEAK: Minor CSS tweak to admin widget title, setting min height.
  • BUG: Fix PHP Warning: natsort() expects parameter 1 to be array, null given.

8.7.1 12/13/2017

  • TWEAK: Use strtolower() instead of mb_strtolower().
  • TWEAK: Use strtoupper() instead of mb_strtoupper().
  • TWEAK: Do not use ternary shorthand, requires PHP > 5.3.
  • BUG: Update minified CSS/JS files.
  • BUG: Remove placeholder string in settings.
  • DEV: Add couple phpDoc references.

Complete Changelog can be found here.