How I Light my Live Streams: Automated Lighting Setups

One of my biggest pieces of advice for people getting into video (or even doing virtual talks) is, “Have good lighting.” This will make you look better, and your webcam won’t have to work as hard, meaning a better picture. There are some simple solutions, but I wanted something a little more automated. Here’s what I’ve got!

Read More “How I Light my Live Streams: Automated Lighting Setups”

Setting All Videos To Show Controls In LearnDash

One of the biggest pieces of feedback I’ve gotten on my course videos in recent weeks was that the controls on my videos were hidden. To be honest, I didn’t realize students couldn’t scrub through videos, or rewind – I assumed everything was working! After looking through the LearnDash settings and not finding a global option, I decided to the problem with just a little bit of code.

TL;DR: The Code

So I’ll cut to the quick and give you code first. Read on to learn about it! This is the setting you want: 

learndash_update_setting( get_the_ID(), 'lesson_video_show_controls', true ); 

The full code is in this public gist.

Updating the LearnDash Setting

A few months ago I dug through the LearnDash code for a similar plugin I wrote to convert ACF videos to native LearnDash videos. I figured there was a similar setting for video controls, and I was right. If you use the Chrome inspector, you can see the name of the control in the source.

So I grabbed the name of that form field and fed it into the function I discovered earlier:learndash_update_setting(), which accepts a post ID, the setting name, and the value.

Confirming it worked for a single setting, it’s time to write the loop that would update all settings.

The Loop

I won’t dig into the full mechanics of the loop, but I do want to point out the custom post types I needed to update: 

$lessons = new WP_Query(
        'post_type' => array( 'sfwd-lessons', 'sfwd-topic' ),
        'posts_per_page' => -1,

I’m grabbing all posts that are lessons and topics within LearnDash. Then I loop through them all, updating the video controls settings.

This is slightly inelegant because I should really check to see if there is a video on the post before turning on controls, but it worked!

Hooking it in.

Now that we have a working function that will update all posts, we need to figure out where to hook it into WordPress. Honestly, there’s only one smart option for this, and it’s on plugin activation: 

register_activation_hook( __FILE__, 'jc_swap_videos' ); 

This will ensure the code only runs once, when the plugin is enabled.

If you are adding it to your functions.php file or something like that, you should do it at a point where it won’t disrupt end users, so I would choose an admin hook, like admin_init.

I would also make sure it executes once, then comment out the action so it doesn’t run every time you load the admin.

Future Proofing

Now, this only counts for existing posts and not future lessons and topics you might add. I’d recommend toggling the option as you add the rest, but if you really want to make sure you don’t forget, you could repurpose the code to set the option on post save. Something like this will work:

function jc_set_video_controls_on( $post_id ) {
      learndash_update_setting( $post_id, 'lesson_video_show_controls', true );
add_action( 'save_post', 'jc_set_video_controls_on' );

What Do You Think?

When you take online courses, do you prefer video controls on? I sure do! As a course creator, what reasons do you have for turning them off? Let me know in the comments!

| |

How I’ve Configured My Stream Deck

Perhaps the best device I’ve purchased in the last couple of years is my 32-Key Elgato Stream Deck. It’s a streamlined way for me to manage live streams, devices, and automation. I absolutely love it. When I first got it, I shared a photo on Twitter, fully configured. A lot has changed since then…including upgrading from the 15- to the 32-key. Here’s a breakdown of how I’ve set it up – everything from what it’s connected to, to where I got the icons.

Read More “How I’ve Configured My Stream Deck”
| | |

Podcasting: How to Get Good Room Acoustics

Since professional recording is now the lion’s share of my work, I wanted to make sure that I was doing everything I could to get good room acoustics. Here, I break down what I did to make sure that my sound it top quality, before it ever hits my mic. If video is your preferred format, I have that too, after the jump!

Read More “Podcasting: How to Get Good Room Acoustics”


Make an Easy Membership Site with WordPress and Patreon

This week I wrote about how I’m doubling down on Patreon to deliver more quality content to my backers. Well, things have just gotten a lot easier for me, because their timing is impeccable.

Patreon has recently release a WordPress plugin that allows you to take posts on your blog and make them viewable to Patrons only. This allows us to make membership sites quickly and easily, without having to worry about processing payments or subscriptions. In this video tutorial, I show you exactly how to make a Patreon WordPress Membership Site.

Read More “Make an Easy Membership Site with WordPress and Patreon”

How Do We Best Teach Programming to Beginners?

I’ve been thinking a lot lately about how I teach. I tend to take a “learn by doing” approach in my online courses where there are very clear, step-by-step instructions completed via video. However, this format gets pretty tough to execute in other contexts. For example, I teach an online graduate course for the University of Scranton, which is primarily text-based. This course’s goal is to get students with a healthcare background proficient in programming; the assumption is they are at least somewhat technical. After getting feedback, especially this semester, I’m realizing the approach my co-author and I took in creating the course was wrong. This got me thinking: how do we best teach programming to people who have never seen it?

Read More “How Do We Best Teach Programming to Beginners?”