Learn JavaScript & The WP REST API Deeply at a Day of REST

A Day of REST Boston 2017 - The WordPress REST API and JavaScript Conference

A Day of REST is Coming to the States!!!

The Day of REST Conference kicked off last year in the UK with an incredible line-up of speakers, all using the API in production project and a few core contributors to the WP REST API.

In 2017 The Day of REST Conference is coming to the US for the first time and I encourage you all to attend!  Here are 3 good reasons:

  1. This is THE Conference on the WP REST API (and JS for WP)
  2. This year they are adding 6 AMAZING Workshops
  3. I believe supporting A Day of REST supports WP API adoption

Hurry before the Early Bird Discount Expires!

 

I Mean, Just Check Out These Workshops

Just attending the one day of talks is worth the entire trip.  I attended last year in the UK when I still had a lot of questions about the API and using it with JavaScript.  I got all of my questions answered and a lot more.  

In addition to the day of talks, they are adding two days of workshops (one day before and one day after).

a-day-of-rest-workshops

The Workshops Include:

  • Full Day – JavaScript w Zac Gordon (That’s Me!)
  • Full Day – React w Wes Bos (Teacher crush!)
  • Half Day – Webpack w K. Adam White (Webpack goes deep..)
  • Half Day – WP API Authentication w Joe Hoyle (Worth the entire trip)
  • Half Day – Backbone & WP API w Adam Silverstein (It’s already in Core!)
  • Half Day – WooCommerce API w Brian Richards (The API is for Woo Too 🙂

The pricing for the conference and the workshops depends on what you want to attend, but I can guarantee that coming out here will up your JS and WP API game.  You want to be in the cutting edge of WP Dev, right?  This is the community and event to plug into.  Keep reading to hear why I feel this so strongly.

 

Why We Should Support The Day of REST Conference

ready10ywp

I have been honored to work a bit with the folks from Human Made who put on the Day of REST and Week of REST events.  But Human Made is also a VIP WP Partner, they build production apps and sites with the REST API, and they contribute time to Core API development.  I really doubt the WordPress REST API would be where it is today without their support.  On top of that they’re amazing Human Beings.

Anyone who gets into running conferences knows you don’t do it for the money.  I do not know all the inner workings of A Day of REST, but I do know that putting on a quality event like this takes a lot of human and financial resources.  Again, this is on top of the amazing Core Development and professional implementations they already do as a company.

One of the easiest ways you can show your support for a wider adoption of the WP REST API is to drum up attention for and attend A Day of REST.

This is why I think it comes to us in the community who want to see more from the WP REST API to support these events.  Even if you cannot fly to Boston in March, buy a ticket just to show your support for what A Day of REST and Human Made are doing to help further education around the WP REST API.

20160906_094644

My hope is that if A Day of REST goes well, Human Made will continue to offer it and also bring A Week of REST to the States.  And let me tell you what… that is gonna be one heck of a “You Want To Be Here” Event! (Check out my 2016 Week of REST Review)

So, please, talk to your employers and partners and see if you can make it to A Day of REST on March 9th (Workshops on 8 and 10th) in Boston.  This is the one conference out there solely focused on the future of API Driven WordPress Development.

I hope to see you there!!!

Learn more about a Day of REST Boston on March 8-10th, 2017.

 

Oh! And as an added bonus the conference site is running on React and the WP REST API 😉

5 Big Announcements from the JavaScript for WordPress Master Course – 1 Year In!!!

1 Year Anniversary and A Lot of People to Thank!

 

Last weekend at WordCamp US 2016 marked my 1 year anniversary of working on the JavaScript for WordPress Master Course and the 1 year anniversary of us as a community having Learning JavaScript Deeply as a homework assignment.

Thank you to all of those I mention (and forget to) in the video above.  I would not be here still doing this course one year later without the support of the WordPress Community.  Thank you all.

An Announcement About the Cost of the Course

 

Starting on January 1st the cost of the course will go up from $397 to $697.  In this video above I talk about the important reasons for this and mention a way you can reserve your seat now to lock in the $397 price for the next enrollment period 🙂

Announcing the JS for WP Scholarship Fund!!!

 

Starting on January 1st we will be accepting nominations and applications for the new JS for WP Scholarship Fund.  Please take a listen to the reasoning for it and some of the details.

If you know someone (yourself included) who might want to sit on the Board of Directors to help nominate and select students, please contact me and let me know.

The Three Open Enrollment Periods for 2017

 

Last year, I announced enrollment dates late and planned them randomly.  This year is different 🙂  Check out the video to find out all three enrollment dates.

And, learn how to get one of the sweet JS for WP Bandanas!!!

Part 4 of the Course is FREE and Getting a Major Revamp

 

In this video I talk about the 4 Parts of the JavaScript for WordPress Master Course to put Part 4 of the course on Real World Projects into perspective.  Part 4 of the course became available for Free after the end of the last enrollment and is getting a major overhaul in the coming months.

If you have JavaScript or API related WordPress projects, please contact me and let me know!  I would love to feature them as a resource for the community.  Please watch above for details..

Slides from WordCamp Baltimore – A Year of Learning (and Teaching) JavaScript Deeply

Today I had the chance to speak at WordCamp Baltimore 2016 about my last year of learning and teaching JavaScript Deeply.

I had a great time preparing the slides and getting everything ready and hopefully it all went well 🙂  I’ll add up the video once its on WordPress.tv

 

Learn How I Built the JavaScript for WordPress Master Course and Teaching Site on the “How I Built It Podcast”

“If you’re looking to setup an online course just grab this podcast!”

I love hanging and chatting Joe Casabona.  Naturally, I was excited when I found out he wanted to chat with me on his How I Built it Podcast about how I built my JavaScript for WordPress Master Course.

A lot of folks have asked me content related questions about the course, but this is the first time I really go in depth about actually building the course, from researching content, to building a team, to picking an LMS, all the plugins I used and several of the snags I hit.

It was really fun to talk about all of this and I share a lot of information.  If you’re interested in how things are built and the behind the scenes technologies, I would definitely recommend listening to this episode.

Students may particularly appreciate what has gone into the course.

Episode 9: Zac Gordon & Javascript for WordPress

 

How to Save Wistia Video Player Speed in Local Storage with JavaScript, the Wistia API (and WordPress)

I love Wistia, the professional video hosting company with amazing stats.  I have used them since early on and host all the JavaScript for WordPress videos with them.

They have had an API for a while that lets you control player speed.  Recently, they updated their player  and added speed control right into the controls.

Wistia Video Player Speed

Video Speed Built into Wistia Player

However, there is no caching mechanism for this, so users have to reset the player speed for each video.  This requires 3 clicks, can be a bother, and takes away from the learning experience.

So… this being a JavaScript course and us having covered local storage, I decided to write a little custom code to listen for changes to player speed and save the latest speed in local storage.

Then, when any video on the site loads, it first checks if there is a speed saved in local storage and sets the player speed.

The Basic JavaScript Code

Here is the basic code I used to get this working.  I tried to comment it pretty well so it makes sense what is happening.

// Get the Wistia Player
window._wq = window._wq || [];

// Apply to all Wistia Videos
_wq.push({ id: "_all", onReady: function( video ) {

	// Get speed from local storage
	var localStorePlayerSpeed = JSON.parse( localStorage.getItem( 'video_speed' ) );

	// If local storage speed exisits, set player speed
	if ( localStorePlayerSpeed !== null ) {
		video.playbackRate( localStorePlayerSpeed );
	}

	// Listen for changes in player speed
	video.bind("playbackratechange", function( playerSpeed ) {

		// Save the updated player speed to local storage
	  	localStorage.setItem( 'video_speed', JSON.stringify( playerSpeed ) );

	});
}});

You should be able to just drop this JavaScript into one of your JS files and have it work.

Enqueuing Our JS for WordPress

Since I am using this with WordPress I also have to enqueue this code into my functions.php file.  I would ideally like to release this as a little plugin, but for now adding it to my theme works.

Here is the code I added to my theme functions.php file:

function wistia_customizations() {
	wp_enqueue_script( 'wistia-player', get_stylesheet_directory_uri() . '/js/wistia-player.js', array(), 1.1, true);
}
add_action( 'wp_enqueue_scripts', 'wistia_customizations' );

Of course then I would have my JavaScript in the first code snippet in a file named wistia-player.js.

Taking it Further

Although this does work for my purposes, if a user switches computer or goes from watching on the desktop to mobile it will not remember their last setting.

Taking is one step further could involve saving the player speed as User Meta Data using the REST API.

I’ll hopefully tackle this and release this feature as a little no configuration plugin at some point before the JavaScript for WordPress Master Course is complete.

If you use this or something similar or have faced this problem, please let me know what direction you went!

 

 

Connect WooCommerce Products with LearnDash Courses

I have been happily using LearnDash LMS with WordPress for my JavaScript for WordPress Master Course.

One of the tricks of using WooCommerce and LearnDash together is that you can build your courses separately from your WooCommerce products.

This is helpful for creating bundles that automatically grant access to individual or multiple courses.  In my Master Course I have it broken down into four parts, which are really individual courses behind the scenes.

To accomplish you have to install the Download, Install and Activate the Free LearnDash WooCommerce Integration Plugin from the LearnDash site.

Then after you create your Courses in LearnDash, create a Product in WooCommerce you will have an option to select Related Courses.

Integrate WooCommerce and LearnDash Courses

You will also want to go into WooCommerce Settings > Accounts and make sure to enable “Enable registration on the Checkout page.”

WooCommerce Enable registration on the "Checkout" page

With this configured, when someone purchases the course via WooCommerce on the front-end and creates an account during checkout they will automatically have access to the Related Courses you selected for the product.

You can check this by clicking on a User account and looking at the course access. Mine says Parts but yours will probably say Courses.

LearnDash Check User Enrolled in Courses

I have been quite happy with this combination of WooCommerce and LearnDash for selling my courses since WooCommerce allows me to customize the selling process quite a bit.

I will also add that you will likely want to customize your WooCommerce Emails to include welcome information about the course in addition to the default information.

Hopefully this helps you get up and running selling online courses using LearnDash and WooCommerce.

Good luck and enjoy!

Getting PayPal API Credentials for WooCommerce Refunds

You can process payments in WooCommerce with PayPal using only the account email.  However, in order to refund payments from within WooCommerce you must enter your PayPal API credentials.

Here are the steps for doing that:

  • Login to PayPal
  • Go to Profile > Profile and Settings
  • Click My Selling Tools
  • Go to API Access
  • Select NVP/SOAP API integration
  • Click to view API Username, Password and Signature
  • Add information into WooCommerce PayPal settings

I find it much easier to refund payment directly from within WooCommerce and not need to login to PayPal to refund manually in addition to from within WooCommerce as well.