Archive for the ‘Developers’ Category

Do You Love Your Hosting Company?

event-espresso+heart+digital-ocean

We all remember the first website we built; or if you’re building your first website now then you won’t forget it. I wish someone would have shared their hosting experience with me long ago so that we could have avoided some of the challenges we’ve had trying to find the right hosting for Event Espresso and Event Smart. In light of sharing what we’ve learned, here is our website hosting journey. We hope you will share your hosting story too so other people can learn and have a better experience.

The success of my business is largely dependent upon my websites remaining operational and performing well. If a site doesn’t perform well, it brings in less revenue, revenue that is used to pay the hosting bill, the team salaries, and more. With so much riding on the performance and reliability of the sites, it only makes sense that the platform I choose to host my sites on is one of the most important decisions I can make for my business. If the sites consistently have troubles due to the hosting infrastructure, the business will suffer.

Pippin on You should love your hosting company.

Our Hosting Journey

Everyone seems to have a story about their website hosting company. Either you love them, hate them, or have dated them all. This is our brief hosting story.

Chomping at the bit with HostGator

We began our hosting with HostGator because Seth had a reseller account that he used for his freelance clients. Event Espresso began like any other new project (boot strapped) so we didn’t spend a lot on hosting. We wanted to prove we had a good idea and that we could pay our bills before investing in unnecessary infrastructure. Over time, we needed additional processing power so we grew from a virtual machine to a dedicated server. The power of a dedicated server was sufficient for a time. However, HostGator eventually had a lot of service interruptions (sometimes for nearly a full day). I think we were paying less than $200 per month for a dedicated server with the technical specifications we needed, but the service up-time was falling. The interrupted service cost us far more in lost revenue than it cost in hosting fees. We knew we needed to find a better, more reliable host…

Trial and Error by FireHost

At the same time that we started looking for a new host for Event Espresso, we knew we wanted to choose a host with the infrastructure that could support Event Smart. We knew we would need firewall protection, scalability options, redundancy options, etc.

We knew of a specialized “WordPress hosting” company that used the FireHost infrastructure as their core service, so we thought it would be a good fit for our needs. We signed for two servers with FireHost: one for EventEspresso.com and one for EventSmart.com. For both servers, our hosting fees went from $200 per month to about $900 per month. We kind of expected those fees for a more scalable infrastructure, but we also expected things to work better than they did. For the most part, EventEspresso.com worked alright with FireHost. But we had a LOT of problems with the FireHost WAP (web application firewall) and WordPress multisite while trying to build EventSmart.com. We even tried their Advanced WAF but it didn’t work well enough either. In order to give us the service level we needed, FireHost was going to have to buy a new WAF appliance and charge us an additional $1,500 per month. So our hosting fees were going to go from $200 with HostGator to $2,500 with FireHost, and that’s even before we started scaling servers and building in redundancies. FireHost clearly was not going to work for us.

Learning to Swim in the DigitalOcean

Our experience with FireHost taught us a lot. We better understood our needs (especially for Event Smart), and we better understood the server management side of hosting (not the hardware). At this same time, a more simple cloud hosting service began called DigitalOcean. DigitalOcean is designed for developers who want or can manage their own servers. They keep things simple in that they limit most of their responsibility to keeping the server on and the datacenter secure. Users (we) are responsible for server configuration, WAF security, server updates, etc. (and I have to say Darren has done a great job at learning and handling this transition). They also use SSD disks which are usually faster than standard disks. This means that we can spin up a new server for as little as $5 – $640 per month. This gave us the option to control the server configuration, firewall protection, etc. for as little as $5 per month. And, if we wanted the top-rated plan it would still be less than it cost with FireHost!

This became a win-win for us. We now have more autonomy, higher up-time, built-in redundancies (especially for Event Smart) and more scaling options than we ever thought we would. We now run 10 VPS servers for less than $200 per month! We have individual servers for testing sites, EventEspresso.com, internal blogs, several servers forEventSmart.com (redundant databases with Hyperdb, etc.), servers just to collect and store backups, etc.

Needless to say, we love Digital Ocean! There have been small hiccups here and there (a few internal network interruptions), but these interruptions have been only momentary inconveniences. We HAPPILY use DigitalOcean to host EventEspresso.com and EventSmart.com (our cloud-based SaaS event registration and ticketing platform). We don’t claim to be server experts, but for the most part we don’t have to worry about the interruptions or cost that existed with our prior hosts.

Note: HostGator and FireHost may have improved their services since we were customers. You are welcome to try (or continue to use) their services.

Share your hosting story

Using a host you LOVE or HATE? Want to share your website hosting story with others? Please fill out this survey and we’ll share the results in a future blog post OR use the comments section below to go into detail.

Tags:
Posted in Open Source, Technology Partners, Developers, Hosting | 5 Comments »

Developer’s Guide to Payment Methods for Event Espresso 4.6+

Welcome! Let’s take a brief look at the payment methods as of Event Espresso 4.6.

In the Beginning…

In the old days of Event Espresso (EE3), all of the “payment gateways” (as we called them, then) were included in the core Event Espresso file system, which made the overall file size rather large and unwieldy over time. Some gateway folders ended up weighing in at around 2 – 3 megabytes each!

One of the many reasons we rebuilt Event Espresso 4 (EE4) from the ground up, was to make the gateway system more modular. So, in the beginning, we decided to build a simple payment gateway interface, that included only four of our most popular online payment gateways from EE3.  This approach allowed us to ship a working product, or rather a Minimum Viable Product (MVP), while allowing our developers time to fine tune Event Espresso and rebuild the entire gateway system.

Get Noticed!
Developers submit your add-ons to our Third-party Add-ons Directory.

Fast Forward to Event Espresso 4.6

We’ve now finished the “Gateway Rewrite”, or GWRW as we called it, in Event Espresso 4.6 and things are looking pretty sweet for Event Espresso gateway developers. We are now taking the approach of renaming “payment gateways” to “payment methods” in Event Espresso 4.6.

Payment Methods are now modular, and can be developed as an Event Espresso add-on. This allows us to keep EE4 core code and files lightweight, while providing our developers, as well as any third-party developers more flexibility to add new features, without lots of bloat.

As of  Event Espresso 4.6, developers are now invited to start developing new gateways, by following our in-depth payment method documentation.

Getting Started!

Ok, so you’re ready to build your own payment method? Head over to the EE4 Payment Method Development page on our developer documentation website.

Don’t forget, in order to give you a head-start, our developer’s have created an Add-on Skeleton that has  two working payment methods in it: one onsite and the other offsite. Of course neither actually communicates with a Payment Gateway, that’s what you’re going to do by following our gateway documentation!

The skeleton add-on is located in the event-espresso-core/tests/mocks/addons/new-payment-method. Currently the “tests” folder isn’t included by default in order to reduce plugin size, so you’ll need to get it from our github repo.

How Does the New Payment Method System Work?

In Event Espresso 4.6+, payment methods are PHP classes and associated files that take care of accepting payments from customers. They  define a form for its settings, possibly a form for billing information which can be displayed during Single Page Checkout, and possibly a gateway class which takes care of communicating with a payment gateway (eg Paypal.com) to actually transfer funds from the customer to you. They fall into 3 general categories:

  • ONSITE (where the customer enters their billing info directly on your site, and your site transfers billing data to the payment gateway directly),
  • OFFSITE ( where the customer is redirected to the payment gateway, enters their billing info, and then returns to your site afterwards), and
  • OFFLINE (where payment is marked to occur offline without a separate payment gateway).

Payment methods are more narrow in scope than EE Modules, and are generally placed in an EE4 Add-on. If you are building your own Payment Method as an add-on, please feel free to use our sample “New Payment Method” Add-on. For details, see the section Using the New Payment Method Add-on Skeleton section of our documentation.

What’s Next?

So, you’ve created a new gateway, and now you want to release it to the Event Espresso 4 community? First you need to decide if you want to sell and support the gateway, release it for free with limited support, or just keep it to yourself. Here’s some helpful tips on where to go next:

  • Selling & Supporting Your Custom Gateway – The best option is to list the plugin for sale on your website, using a shopping cart system, such as Easy Digital Downloads or eJunkie. Once the plugin is available on your website, please let us know so we can list it for you.
  • Release for Free With Limited Support – There are a few possible options. The easiest is to just release the plugin on Github. If you want other Event Espresso and WordPress users to find it easier, you can post it on WordPress.org plugin repository. Once you’ve uploaded it to one, or both of these locations, please let us know so we can list it on our website for you.
  • Keep it to Yourself – This is by far the easiest option, but no one else benefits from your hardwork 🙁

Wrapping Up

We hope that our gateway documentation works as a helpful guide to incorporating your own payment methods in Event Espresso 4. If you have technical questions, please feel free to post in our support forums. Developers with access to Event Espresso on Github can post questions there.

Tags: ,
Posted in Home Page, Development, EE4, Developers, Payment Methods | 3 Comments »

Announcing the Capabilities System in Event Espresso 4

As of Event Espresso 4.6, there’s a new way to manage event admins/managers. Gone are the days of an unfamiliar roles and permissions system. In EE3 we had the “Roles & Permissions” and “Roles & Permissions Pro“, where you could only allow your “event managers” access to certain areas of the admin. You also had to install two different add-on’s, just so you could get really crazy and allow users even more access to stuff. It was a truly cumbersome system.

Capabilities Are Now Baked Right Into Event Espresso 4 Core!

Now that the new capability system is baked right into Event Espresso 4 core, most of the limitations of the old system are history.

This incredible new feature introduces a large number of WordPress roles and capabilities for restricting access to various actions and views in the users dashboard. A number of capabilities follow the capability mapping system WordPress provides, for not only restricting access to general views, but also restricting access based on whether a user “owns” the item being viewed, or not (i.e. Event Authors only being able to edit their own events, or a user being able to edit only their own custom message templates).

What Else Is New?

Most of you know WordPress has a powerful user management system via its roles and capabilities system. We’d like to get things off to a great start with EE4, and so one of the most powerful things we have added to EE 4.6 core is the intelligently-placed capabilities that we use for restricting access to various parts of EE4. Not only that, but we’ve added plenty more goodies:

  • No UI for user management. The system is entirely hidden to the average user.
  • Over 100+ granular capabilities added. A number of capabilities follow the capability mapping system WordPress provides for not only restricting access to general views but also restricting access based on whether a user “owns” the item being viewed or not (i.e. Event Authors only being able to edit their own events, or a user being able to edit only their own custom message templates).
  • Easy to use plugin API for extending functionality. In EE4 we’ve provided a handy API for developers to quickly integrate add-ons with different core components of Event Espresso.
  • Takes care of initializing new roles and adding capabilities to existing roles. When you hook in your new capabilities using this system you are automatically integrated with all the stuff the EE Capabilities system does.
  • Areas of EE4 admin can also be restricted to certain capabilities. This Google Spreadsheet gives you a high level overview and description of all roles and capabilities as of Event Espresso 4.6. We’ve listed all of the EE4 admin routes in the left column and the capabilities across the top. Along the bottom, each sheet represents a different area of Event Espresso.
  • Use any third-party roles and capabilities plugin to manage access to Event Espresso 4 features. More on that below…

How Are Capabilities Managed?

Capabilities can now be managed using any number of third party role and capability management systems, such as Members by Justin Tadlock, to grant users (by role) access to attendee data, events, registrations, and WordPress pages and post content.

The system is entirely hidden to the average user, as there is no UI for user management. For the average EE4 user updating to 4.6.0, there will be no change in behavior, because all the new capabilities have been added to the core WP administrator role by default.

Getting Started with the EE4 Capability System

To get started, you should try to familiarize yourself with the “EE Capability System” and install a third party plugin, such as Members by Justin Tadlock, to use its extensive role and capability management system to grant users (by role) access to attendee data, events, registrations, and WordPress pages and post content.

Extending the EE4 Capability System

In EE4 we’ve provided a handy API for developers to quickly integrate add-ons with different core components of Event Espresso. The EE Capabilities system takes care of initializing new roles and adding capabilities to existing roles.  It is also used for users to reset default roles easily if needed.  When you hook in your new capabilities using this system you are automatically integrated with all the stuff the EE Capabilities system does.

This document highlights the EE_Register_Capabilities plugin API.

Any Questions?

Please first familiarize yourself with the EE4 Capability System and the EE4 Capability System Plugin API. If you have additional technical questions, please feel free to post in our support forums. Developers with access to Event Espresso on Github can post questions there. Feedback is welcome below!

Tags: , , , ,
Posted in Home Page, WordPress, Development, WordPress Plugins, Features, EE4, Developers | No Comments »

Developers Corner: Using Advanced Custom Fields to Quickly Extend EE4

acf-home-panel-fieldsEver wanted to add details about an event sponsor to each event? How about adding a custom downloads or course curriculum section on the thank you page? Or better yet, access to training videos?

Look no further! Using the Advanced Custom Fields plugin for WordPress the event presentation and content delivery  possibilities are endless.

 

Over 20 Custom Field Types!

Fully customize WordPress edit screens with powerful custom fields. Boasting a professional interface and a powerful API, it’s a must have for any web developer. The Advanced Custom Fields (ACF) plugin allows you to take full control of your edit screens & custom field data. With over 20 field types (free, premium and user submitted) to choose from, custom data management couldn’t be easier, or look any better!

 

Easy Integration with Event Espresso 4

Once ACF is installed, simply create a field group, add your fields and define the location rules. The custom fields you create will appear in the EE4 event editor and are ready to accept custom data. Fields that are populated with data can be displayed throughout your event and registration pages. ACF will allow you to add just about any type of custom content to your Event Espresso 4 registration pages. Such as event sponsors, course curriculum, downloads, video tutorials, and much more. The possibilities are endless!

 

How Do I Get Started?

Itching to get started, but don’t know how? Don’t worry, we have you covered! I have created a couple of examples to get you going, and will add a few more as time goes on.

Simply follow along with the tutorials below, and I will show you how to add a course curriculum and/or event sponsor section to your registration pages.

 

Tutorials

Requires Event Espresso 4.3

Creating a Course Curriculum/Downloads Section After Payment

This tutorial covers using the ACF plugin and the EE4 “Thank You” Page Actions & Filters to create a course curriculum/downloads section that will be displayed on the EE4 “Thank You” page. So once someone registers for a class/event, the curriculum/downloads section will be displayed and allow registrants to start downloading files immediately.

 

Creating an Event Sponsor Section Throughout the Event Registration Pages

This tutorial covers using the ACF plugin and the EE4 Single Page Checkout (SPCO) Actions & Filters to create a sponsor details section that appears throughout the registration process.

 

 

Posted in Event Registration, Tips & Tutorials, EE4, Developers | 4 Comments »

EE4 Test Drive Now Powered by Ninja Demo

take-a-testdrive-575x200

 

We’ve just finished launching our new Event Espresso 4 test drive website, powered by the Ninja Demo plugin for WordPress. Ninja Demo combined with WordPress Multisite, allows our customers to create their own sandbox website with Event Espresso 4 pre-installed, and is even pre-populated with example events and registration data.

Now taking a test drive of Event Espresso 4 is easier than ever!

EE4 in a true-to-life environment

ee4-ninjademo-screenshotWith Ninja Demo, our potential customers can login to a demo site, where they can modify, delete, upload, and test out various areas of the EE4 software. Our customers can easily demo EE4 without leaving anything permanent behind. You can try out EE4 in a true-to-life environment and Ninja Demo cleans up the sandbox site once its no longer needed. This is perfect for customers looking to learn more about EE4’s features, the Espresso Events Calendar, and our Iced Mocha theme.

Already an Event Espresso member?

No problem! Existing Event Espresso 3 and 4 members are highly encouraged to take the new test drive site for a spin. This will help you decide if you’re ready to make the move to EE4. You’ll also have the opportunity to test the new Iced Mocha theme we’ve created, just for EE4, which is pre-installed on each sandbox site.

Tags: ,
Posted in WordPress Plugins, Website, EE4, Developers, Themes, pre-sales | No Comments »

A New Direction For the Event Espresso 4 Support Licenses

a-new-direction

Since February when we released EE4 without any add-ons, we’ve realized that many people don’t need add-ons (such as the calendar); all they need is the core plugin. These users also do not want to be required to purchase something they do not need. As such, we’ve changed our method of packaging add-ons with the core plugin. The Event Espresso 4 Personal and Developer Licenses will no longer include add-ons. Add-ons can be purchased separately by anyone with at least a Personal Support License (whether EE3 or EE4 Personal Support License).

What is happening to the EE4 Developer License?

The EE4 Developer License is now an even better value. The EE4 Developer License includes five license keys, and more can be added at any time. Plus, when you purchase any of our add-on products, you can use those licenses across any of your active developer sites. This makes the EE4 Developer License more valuable with each add-on you purchase because you get even more great event registration software at a greater discount.

Where is the EE4 Business License?

In the near future we will offer a “Business License” (might be a different name) that is essentially a package that offers “one of everything” at a significantly discounted rate. This will allow event managers to get access to all our great event registration software for a super price. This support license package is yet to released.

These changes make Event Espresso more affordable and accessible to all event managers and WordPress developers.

Posted in Home Page, Addons, News, Calendar, Licenses, EE4, Developers | 15 Comments »

Developers Corner:
Theming in Event Espresso 4

What is the best way to customize EE4?

We think the BEST way to theme EE4 really depends on a few factors with the biggest factor being what you want to change. Sometimes all that is needed is a few CSS edits and other times customizations are done via a child theme, or even editing the PHP, HTML, and/or CSS files.

Basically, this means that existing WP theme developers will have an easier time developing customizable event designs for EE4, which in turn can benefit the end user. Developers are encouraged to view the list of currently available theme templates and tags.

Depending on what you want to change and your skill level, here are some options:

Child Themes
We want to make things as simple as we can for the end user, but with all the possible themes in use, there is a limit to how simple we can make it to customize things. The best solution (which is what we’ve taken IMO), is to integrate EE4 in “proper” WP ways that the majority of WP developers will understand. This ultimately benefits the end users who hire theme developers, or theme shops, that support EE4 templates in their themes.

Get Noticed!
Developers submit your add-ons to our Third-party Add-ons Directory.

Reassembly of the EE4 templates
Oh wait! Your theme doesn’t support child themes? No problem, simply reassemble all of the EE4 template parts and combine them with your theme’s templates to make one cohesive archive-espresso_events.php (or single-espresso_events.php, etc) file, that integrates perfectly with your theme. The files that contain the template tags that should be loaded automagically, anytime an incoming request is for one of EE’s CPTs (otherwise they can be found in the /core/helpers/ folder).

The Event Espresso specific template parts include:

  • Event Details (description)
  • Event Datetimes
  • Event Tickets
  • Event Venues
  • Event Venue Location
  • Event Venue Detail (excerpt)

Custom Post Types
We think theming Event Espresso will be easier using Custom Post Types (CPTs), because we are now following the WordPress (WP) Theme Development Standards. This makes it easy for WP developers and theme shops to build integrations with their themes and plugins in EE4.

EE4 CPT data includes normal post data including:

  • Title
  • Description
  • Tags
  • Categories
  • Featured Image
  • Commenting
  • Excerpt
  • Custom Fields
  • Slug
  • Author

This data can be queried and displayed in themes along with other post data.

View a list of currently available theme templates and tags.

What option is right for me?

We don’t know the specifics of your website, so it’s up to you to decide where to go from here. We are happy to recommend a few helpful tips:

  1. If your goal is along the lines of “I want the events page to match my theme better” then the answer is usually a CSS solution. Sometimes a few CSS edits are all that are needed, and if you don’t have a child theme set up (or don’t want to) you can install a CSS builder plugin like this one and customize with CSS (it turns out that you can do a lot with CSS changes only).
  2. Just want to change the wording of a few phrases? If so, no need to hack templates, just use Josh’s WP gettext filter.
  3. If you need to add/remove content that’s not already in the event template, then setting up a child theme and working through the templates and using Event Espresso’s WordPress hooks and filters may be the way forward.
  4. Sometimes, if it’s a PHP, HTML, or CSS based solution, you may need to contact a developer familiar with PHP, HTML, and/or CSS to help out. Our support team is also available in the support forums and will recommend the best solution for what you are trying to accomplish.
Are you a WordPress theme developer? Want to see how Event Espresso 4 integrates with your theme? Request access to the Event Espresso Core (4.0+) GitHub repository and get acquainted with the premier event registration system for WordPress.

We also have additional Event Espresso developer documentation at http://developer.eventespresso.com/.


Posted in WordPress Plugins, Tips & Tutorials, EE4, Developers | No Comments »

Do NOT follow this link or you will be banned from the site!