=== Plugin Name ===
Contributors: sourcefound
Donate link: https://membershipworks.com
Tags: membershipworks, memberfindme, membership, event calendar, event tickets, directory, membership management, subscription, billing, stripe, paypal, authorize, braintree, quickbooks
Requires at least: 3.0.2
Tested up to: 4.6.1
Stable tag: 5.6
License: GPL2
License URI: http://www.gnu.org/licenses/gpl-2.0.html

Membership and donor management, event calendar, event ticketing, shopping cart, donations and member directory system for groups and organizations.

== Description ==

[MembershipWorks](https://membershipworks.com/) (formerly MemberFindMe) is a comprehensive membership management, donor management, event calendar, event ticketing, and member directory platform for chambers of commerce, professional groups, associations and other membership groups.

This plugin integrates MembershipWorks membership, event and directory platform to your Wordpress site. MembershipWorks is fully responsive and works with any theme. A MembershipWorks account is required, MembershipWorks is free for small groups and also free to try with our 50 member/account plan.

= Membership and Subscription Management =

* Collect membership subscriptions and dues with [Stripe](http://stripe.com), [Paypal](https://paypal.com) or Authorize.net
* Unlimited membership levels
* Allow multiple billing options for each membership level - including automatic recurring billing, online billing, pay by check and lifetime billing
* Setup tax rates for membership levels by city, state, zip or country
* Allow members to upgrade and downgrade between membership levels at any time
* Create membership add-ons
* Allow members to change membership add-ons at any time
* Sophisticated pro-rating calculations when switching between billing options, membership levels or membership add-ons
* Automatically send upcoming renewal and past-due notices to members, customized for each membership level
* Members can sign-in to manage their membership billing and directory profile from your website
* Labels let you find members by committees, categories and more
* Member Timeline \(CRM\) allows you to see a member's history at a glance
* Group memberships for families, businesses or organizations
* Allow multiple contacts under a membership account, every contact can sign in independently
* Dashboard lets you to see membership metrics, member signups, member renewals, expired memberships, and event sales in one place
* Financial dashboard charts your membership, donation, event and tax revenue
* Daily membership report email
* Export membership payments, invoices, and fees to QuickBooks or a spreadsheet
* Export membership data to a spreadsheet
* Group email members
* Advanced custom fields and customizable membership forms
* Show or hide different areas of the membership form based on membership level or label

= Restrict Access for Members =

* Restrict access to members only on any page or post with a shortcode
* Restrict access by membership level or label

= Event Calendar =

* Infinitely scrolling event calendar promotes discovery and reduces friction
* Event list view
* Color coded events on event calendar
* Event categories
* Allow members to add or edit events with advanced permissions
* SEO optimized with Rich Snippets
* Upcoming events widget

= Event Ticketing and Registration =

* Pay for event tickets on-page through [Stripe](http://stripe.com), [Paypal](https://paypal.com) or Authorize.net
* Automatic event registration confirmation email with iCalendar attachment let attendees add your event to their calendars \(works with Outlook, gmail, etc\)
* Create custom event registration questions
* Create multiple event tickets
* Create free or paid event tickets
* Setup tax rates for events by city, state, zip or country, override tax settings by event or ticket
* Limit event ticket quantity, event capacity, event tickets per registration, and more
* Member only event tickets
* Limit event tickets to specific membership levels
* Discount codes for event tickets
* Group email event attendees
* Cancel and refund a single event registration, or the entire event
* Edit event registrations and issue partial refunds
* Export event invoices, event payments and fees to QuickBooks or a spreadsheet
* Export registration data to a spreadsheet
* Event registration and event check-in linked to membership Timeline for members

= Member Directory and Deals =

* Smart keyword search delivers more relevant search results
* Search directory by geographic area
* Search directory by labels/categories
* Interactive map view for directory
* Multiple locations for a business or organization
* Business card motif allows your members to express their identity
* Rich member profiles with logos, pictures, map, social media links and more
* Generate leads with user recommendations
* Create member deals or offers
* Comply with CAN-SPAM act and protect member emails from spam with our messaging system
* SEO optimized with Rich Snippets
* Member slideshow widget
* Create multiple directory pages by keywords, geographic area, labels/categories 
* Create multiple membership directories using folders
* Customizable profile template
* Limit access to profile information by membership level or label
* Limit what members can publish in their profiles by membership level or label

= Forms, Shopping Cart and Donations =

* Create forms for committee or volunteer signup, contact forms, and more
* Sell items 
* Collect fixed or flexible donations
* Combine shopping cart and donations on one form
* One page checkout for higher conversions
* Collect payments or donations with [Stripe](http://stripe.com), [Paypal](https://paypal.com) or Authorize.net
* Create custom questions for each item
* Setup item quantities and checkout limits
* Setup tax rates by city, state, zip or country, override tax settings by form or by item
* Create custom email receipts by form, item or donation
* Automated notifications by item, donation or form
* Form activity linked to membership Timelines
* Setup actions to add or remove labels, or create new accounts in specific folders
* Combine shopping cart, form actions and member only access to sell access to online content
* Track donations and item sales for financial analysis or for export to QuickBooks or spreadsheet

...and much more\!

== Installation ==

1. Install the plugin via the WordPress.org plugin directory or upload it to your plugins directory.
1. Activate the plugin
1. Sign in with your MembershipWorks account
1. Create pages for your membership sign up form, member sign-in form, member directory, member deals page, event calendar using our shortcodes
1. Create your membership levels, and setup Stripe, Paypal or Authorize.net for membership billing
1. Setup your membership and event tax rates as needed
1. Import your members with a csv file
1. For help, videos and documentation, see the Help section in the plugin

== Frequently Asked Questions ==

= Can I use this plugin without a MembershipWorks account? =

This plugin is an interface to the MembershipWorks platform, so a MembershipWorks account is required. Please visit [MembershipWorks](https://membershipworks.com/) to sign up.

= How does MembershipWorks work? =

MembershipWorks is designed from the ground up to integrate with any website, it works alot like Google Maps, allowing your membership forms and event calendar to work seamlessly on your website. So you use your own WordPress server to publish your web content and layout, but have MembershipWorks perform the heavy lifting of managing memberships and events, storing your sensitive membership and event data with our high availability, triple redundant, secure and PCI compliant data servers. Your membership and event data is safe even if your WordPress server creashes or if it is hacked, and you can continue to access that data without WordPress.

= How does MembershipWorks SEO work? =

Unlike iframe widgets or redirects to sub-domains, our next generation SEO system allows the plugin to deliver dynamic web content to search engines using the Ajax crawling scheme, so all directory and event pages are attributed to your domain.

Every directory profile and event page is delivered with Rich Snippets (structured data, microdata, schema.org), which provides detailed information to search engines to better help your pages get found.

= How do I setup the membership sign-up form, member sign-in form, directory, deals, event calendar? =

Create pages and use the corresponding shortcode on the page. For the most up-to-date list of shortcodes please refer to the plugin help section under MembershipWorks > Help > Basics & Setup > Adding Membership/Events/Forms to WordPress > WordPress Shortcodes.

The membership forms and directory profiles are pre-setup with a good default. You can further customize the form and profile templates under MembershipWorks > Customization.

= Can I customize the colors in the membership forms, events, etc? =

Information about customizing css can be found in the plugin under MembershipWorks > Help > Customization > CSS & colors

= Can I use Paypal Standard for membership billing? =

No, at this time MembershipWorks requires Paypal Pro in order to interface directly with Paypal, in order to track fees and payments in the Timeline, generate membership invoices and financial data, issue refunds, and more.

If you do not have Paypal Pro and do not want to deal with the fees, we recommend using Stripe.

= Can I restrict access to a page or post to members only? =

To restrict the content of the entire post/page to members, place the \[memberonly\] shortcode at the beginning of the post/page. Placing the \[memberonly\] shortcode within the page will allow content above the shortcode to be displayed to non-members, and content below the shortcode to be restricted to members.

By default the memberonly shortcode restricts content to users in your Members folder whose membership is not expired. To restrict access to a different folder use \[memberonly folder="..."\].

To restrict access to certain membership levels or labels instead, add a label option to the shortcode, ie. \[memberonly label="..."\]. For example \[memberonly label="business member"\]. You can restrict content to more than 1 label by separating the labels with a comma, for example \[memberonly label="membership committee,marketing committee"\]. If your label or membership level name contains a comma, you should escape the comma, for example \[memberonly label="label%2C1,label%2C2"\]. 

Under Plugin Settings you can configure the messages displayed to users who are not logged-in, users whose membership has expired, and users without the required folders/labels.

To customize modify the message for a specific page, add the message option to the shortcode, ie. \[memberonly message="..."\]. Note that this message will be displayed to all users that are not allowed to access the content, regardless of whether they are not logged-in, their membership has expired, or they do not have required folders/labels.

To omit the login form for users who are not logged in, add the nologin option to the shortcode, ie. \[memberonly nologin\].

To automatically redirect users who are not allowed to access the content to a different page use \[memberonly nonmember-redirect="..."\]

To display a MembershipWorks form or cart users who are not allowed to access the content use \[memberonly nonmember="!form/..."\]

= What automated membership or event emails are generated by the system? =

MembershipWorks can generate the following automated emails to your members:

* Upcoming membership renewal 
* Past-due membership
* New member welcome
* Membership payment receipts
* Membership payment failure for automatic recurring billing \(eg. expired credit card\)

MembershipWorks generates the following automated emails to your event attendees:

* Event registration confirmation with iCalendar attachment
* Event payment receipt

MembershipWorks also generates the following automated emails to you as the administrator:

* New member signup
* Member signup failure due to billing error \(eg. invalid credit card\)
* Daily membership report of new members, lapsed members, renewal notifications upgrade and downgrades whenever there is activity
* Event registrations
* Email delivery bounce or failure for receipts, group emails, welcome email, and more

= Can I email my members directly from the system? =

You can email any group of members directly from the system, including:

* Individual member or individual contact under member account
* Members who signed-up in any date range
* Members who renewed in any date range
* Members with upcoming membership renewals for any date range
* Members with past-due memberships for any date range
* Members with a specific membership level
* Members with a specific label
* Members in any folder
* Members pulled up with a keyword search

Within any group you can also individually remove a member from the email. You can also include all contacts stored under a member account in the email.

= How do I create categories for my directory? =

You can enable membership levels or labels as categories for the directory, simply by enabling the option to make them searchable in the directory.

= Can I create multiple directory pages, or create custom directories? =

You can create custom directory pages or custom actions on a directory page, that corresponds to a search by area, by label or membership level, or by keyword, or any combination of.

You can also create multiple membership directories using folders.

For more information, please refer to MembershipWorks > Help > Customization.

== Screenshots ==

1. Member profiles.
2. Event calendar.
3. Membership Timeline \(CRM\).
4. Membership metrics, signups, renewals and event registrations.
5. Chart membership and event revenue.
6. Interactive member directory map.
7. Member deals.

== Changelog ==

= 0.1 =
* Initial release

= 1.0 =
* Stable release

= 1.2 =
* SEO improvements

= 1.5 =
* Adds menu for label and membership

= 1.6 =
* Adds menu for advanced customization

= 1.6.1 =
* Adds option to disable social share buttons
* Adds option to load js/css inline

= 1.6.2 =
* Widget can now pull contacts from a label
* Adds option to display contact name on cards

= 1.7 =
* Moves plugin settings under MembershipWorks menu
* Improved http request compatibility

= 1.7.1 =
* Adds listlabel and listfolder shortcodes
* Adds support for label specific directory

= 1.7.2 =
* Adds support for group specific event calendar

= 1.7.3 =
* Minor bug fix

= 1.8 =
* Adds listevents shortcode
* Adds ability redirect to another page after signing in \(from account manage screen\)

= 1.8.1 =
* Fixes minor bug with member slideshow widget

= 1.8.2 =
* Fix for members slideshow widget for themes that do not set ID on widget

= 1.8.3 =
* Fix for page titles on themes that do not provide correct number of parameters
* Adds support for directories by folder

= 2.0 =
* Adds support for Member Sign in and redirect to page
* Adds forms, shopping cart and donations feature

= 2.1 =
* Fixes escaped html in event and member widgets
* Search engine support for directories by folder

= 2.1.1 =
* Adds separator between dates in event widget and event list shortcode
* Minor bug fixes

= 2.2 =
* Prevents W3 Total Cache and WP Super Cache from caching dynamic pages
* Adds setting for redirect url on log out

= 3.0 =
* Adds page top offset setting for themes with fixed menu bars
* Supports improved WordPress user synchronization with MembershipWorks Login Connector

= 3.0.1 =
* Fixes compatibility with older MembershipWorks Login Connector version

= 3.0.2 =
* Fixes compatibility with WordPress 4.0.1

= 3.1 =
* Fixes compatibility with WordPress 4.0.1

= 3.2 =
* Improves compatibility with WordPress 4.0.1 with i8n and visual editor plugins

= 3.3 =
* Fixes some PHP warnings
* Thumbnail option for upcoming events widget

= 3.4 =
* Fixes compatibility with Yoast SEO 1.7.3 and up
* Adds membership level filter for signup form
* Adds option to always display name for member slideshow widget

= 3.5 =
* Updated resources to not load from MaxCDN, which may be blocked due to SpamHaus listing

= 3.6 =
* Fixes compatibility with WordPress 4.0.1 and up
* Add options to enable or disable event date/times and location to event list widet

= 3.7 =
* Fixes missing title with Yoast SEO when force rewrite titles is enabled

= 3.8 =
* Removes a deprecated plugin option
* URL encodes certain parameters when calling for server generated pages

= 3.8.1 =
* Renamed function due to function name conflict with Swift Framework

= 3.9 =
* Fixes issue with certain themes/frameworks that call wp_title within wp_head

= 4.0 =
* Fixes issue with unicode quotation marks inside shortcode 

= 4.1 =
* Fixed issue with Facebook share image on HTTPS pages

= 5.0 =
* MembershipWorks is now MembershipWorks!
* Display event or folder widgets with shortcode
* Supports member only content directly
* Customize failure messages for memberonly shortcode
* Closure for memberonly content
* Multiple memberonly blocks per page

= 5.1 =
* Fixes bug with memberonly shortcode that crops off last 13 characters of content when no closure is used

= 5.2 =
* Fixes error with wp_register_style called incorrectly

= 5.3 =
* Fixes issue with shortcodes with certain language settings

= 5.4 =
* Fixes escaped html bug with listevents and listfolder shortcodes
* Fixes issue with wp_enqueue_style not working
* Session expired response for memberonly shortcode
* Adds false and nomessage option for memberonly shortcode
* Adds name shortcode

= 5.5 =
* Fixes potential infinite loop refresh with corrupted cookies
* Fixes undeclared variable warning

= 5.6 =
* Fixes escaped HTML in member widget