I AM LISTENING TO
|

WHAT I LIKE
Home · Blog · Development · WordPress
BLOG FILTER

6. March 2018

WordPress WooCommerce Appointments

WooCommerce Appointments is a commercial  booking plugin that allows you to setup appointments with WooCommerce. It has full integration into Google calendar to track appointments of your staff.

Staff availability can be set globally or via each staff members profile. While this is nice, I was looking for an option to actually handle availability via another Google Calendar as well. That was a must have feature for a current project.

What do you do, if that feature is not available yet ? You poke the code!

The magic entry point for the staff availability is the user meta “_wc_appointment_availability“, which is made available through includes/class-wc-product-appointment-staff.php.

A couple of weeks ago I asked support for a simple filter hook to alter the availability on demand from the outside.

The development team added the feature in one of the latest releases, making wc_appointments_staff_availability the entry point for my custom availability changes.

The filter hook

Getting the data

You can either pull Google Calendar Events directly through the Google Calendar API or use the available iCal export option. In this quick example I will use the private calendar iCal export file.

The availability calendar

Lets setup a quick clean calendar, called “Availability”. So simple and catchy :)

  1. Create a new calendar
  2. Create some test events. WooCommerce Appointments supports multiple availability rules, but I am focusing on the time:range option and recurring events for this example. I might be extending on this a bit more in the future ! So for this example:  Friday, timeframe 10:00 – 16:00 and repeating four times.
  3. Go into settings and get the link to the privat ical export file

Parse iCal data

For this example I am using the PHP ICS Parser, but any other parser will do.  Install it via composer: composer require johngrogg/ics-parser.

Lets create a quick little plugin to get us going and save it to /wp-content/plugins/CustomAvailability/smile.php

 

Set the availability

Its time to get the data into the system. I am only pulling and altering the availability for one single user in this example, the user with the USERID “3”. This should provide you with a good starting point.

The example pulls and parses the ics file on every load, use a transient or REDIS to store data and only refresh in certain intervals.

Hope this gets you started! I build a simple interface around it, with a lot of more rule options. This makes the setup for each staff member a brise. Now each of them can setup a calendar easily and provide  me with the ics link  :) WooCommerce Appointments rocks …

Enjoy coding ….

 

readmore

27. January 2018

Simple little snippet, that can easily be used in conjunction with wp_update_user()

Enjoy coding …

readmore

23. January 2018

When using your main content feed to share posts via buffer or other services, it is crucial that your feed validates cleanly.

[Valid RSS]

There are always things in the generated WordPress content that can break your feed validation. Here some things to cleanup or alter your delivered feed content.

CONDITIONAL TAGS

is_feed()
Check for syndication request. This tag is not typically used by users; it is used internally by WordPress and is available for Plugin Developers.

Check for feed syndication in your themes functions.php

REMOVE IFRAMES

REMOVE / DISABLE COMMENTS

REMOVE RESPONSIVE IMAGES

The sizes attribute breaks feed validation, here how to clean it up.

INCLUDE PAGES IN POST FEED

ADJUST AMOUNT OF POSTS

LIMIT BY CATEGORY

 

Enjoy coding …

readmore

30. August 2017

After some downtime, GreenApe is breathing again. I revived the brand with a good friend of mine and we will be reopening shop options shortly.

Michael and I have been friends for a long time. We have been working on many different projects over the years.

He launched GreenApe in 2011 and I helped him with his first steps. A couple of months ago we decided to merge our competences and expand what GreenApe offers and stands for.

From the website:The GreenApe brand was established in 2011. GreenApe’s career began with the 1st Single Malt Whisky Coffee.

As the first of its kind, our coffee is refined with Original Single Malt Whisky. To this day, he pampers many connoisseurs and gourmets with his unique taste. Now there is another reason to rejoice.

From now on, we are continuously expanding the GreenApe product world with several stylish gadgets and useful accessories. For you this means that you will be able to discover even more beautiful, special or practical things in the future.

GreenApe is all about lifestyle & leisure products, fun gadgets and unique food & drinks.

readmore

14. May 2017

wp-password-bcrypt is a WordPress plugin to replace WP’s outdated and insecure MD5-based password hashing with the modern and secure bcrypt.”

GitHub

readmore

10. January 2017

Paw is a full-featured HTTP client that lets you test the APIs you build or consume. It has a beautiful native OS X interface to compose requests, inspect server responses and generate client code out-of-the-box.

This is one of my go-to tools, when test-driving my API endpoints.

Paw for Mac

readmore

20. November 2016

When performing tasks using the Gravity Forms API, handling notifications and hook execution on demand is something that becomes really handy.

Enjoy coding ….

readmore

17. November 2016

Visual Composer shortcodes are normally not converted within the WordPress REST API rendered output.

This can be accomplished by calling WPBMap::addAllMappedShortcodes();

 

readmore

12. August 2016

WP Safe Updates allows users to test plugin updates in a sandbox before applying them on a live site.

The plugin tells WordPress to temporarily use a different database prefix and a different plugins directory while in the alternative sandbox.

WP Safe Updates

readmore

4. August 2016

Varying Vagrant Vagrants is an open source Vagrant configuration focused on WordPress development. The primary goal of Varying Vagrant Vagrants (VVV) is to provide an approachable development environment with a modern server configuration. VVV is ideal for developing themes and plugins.

GitHub

readmore