Custom WooCommerce Membership Sites with Curtis McHale

Do the Woo - WooCommerce Podcast, Community and News
Do the Woo - WooCommerce Podcast, Community and News
Custom WooCommerce Membership Sites with Curtis McHale

Thanks to our sponsors

WP Activity Log

Membership sites have been around for a while but have grown even more popular over the years. Curtis has been working on them for more than 10 years and spends his time with larger, customized sites, primarily using WooCommerce.

A Chat with Curtis McHale from SFNdesign

In episode 59, Brad Williams and I chat with Curtis about:

  • His evolution in working with membership sites using WordPress
  • When Curtis started using WooCommerce for his projects
  • How teams play into his membership site projects
  • What value clients are gaining by going virtual with memberships
  • Limitations with membership sites built with WordPress and/or WooCommerce
  • The EULA plugin, born out of clients need
  • What membership site trends he has seen of recent
  • Why he built his only plugin, Easy Restricted Content for WooCommerce
  • What Curtis thinks of Gutenberg and whether his clients are using it

We start with hearing how Curtis migrated into the WooCommerce arena and how that has played into his decade or more of creating custom membership sites for clients.

Currently one of his two projects involve teams and we had to dive into that part deeper to get a better understanding of how teams play into a membership site, or how one utilizes teams.

Brad then asks about the market and how people are pivoting into membership sites due to the current circumstances. And he hear how Curtis feels those clients are finding value in moving to the online space in businesses that are traditionally brick and mortar.

We ask Curtis if he has found limitations with WordPress and/or WooCommerce when doing membership sites, and the answer, which is not the first time we have heard it, is around massive data.

We also chat about two plugins. The first being an end-user license agreement plugin that he has used for clients, and the other, Easy Restricted Content for WooCommerce. The latter he sells and we learn how it came to be and if Curtis is planning on building and selling more plugins.

We touch on what he has seen in the most recent trends around membership sites and cannot leave without asking him his thoughts on Gutenberg and if his clients are using it.

Where to Find Curtis on the Web

The Conversation

Yes, this the transcript. But not in the traditional sense, transcribed word for word. We do not speak as we write. Often the flow of transcribed content is hard to follow. So I have taken it a few steps further by seriously editing, at times, the conversation and even using my editorial freedom to clarify some points. So enjoy.

Brad: Welcome back to another episode of Do the Woo. Number 59, we're back Bob, five nine.

Bob: Five nine, we're almost at 60.

Brad: That is after 59. That's exciting.

We've got a great episode today, which we'll get into in just a minute, but first I want to thank our episode sponsors. First and foremost, WooCommerce is our community sponsor. Maybe you've heard of it, maybe you haven't. If you haven't, it'd be interesting that you're listening to this podcast because that's all we talk about is WooCommerce. So thank you for that community sponsorship.

Also, an abandoned cart and email marketing solutions. Increase those conversions because people were walking away from their shopping cart with goods in there. It's definitely something every commerce store should have.

And, a log of all the changes that happen on your site. Someone changes the content on a product, a page, who did it? It's always nice to have a log so you can kind of track when things change, what happened, and get that fixed up if need be. So definitely check that out. So thanks for our sponsors.

So let's get right into it, Bob. We have a very special guest this week. I'm excited to dig into some WooCommerce and membership discussions. Curtis McHale. Welcome to the show, Curtis,

Curtis: Thank you very much.

Brad: Glad to have you here. Why don't you tell everyone who you are, what you do, how you Do the Woo.

Curtis: So I am Curtis McHale. I live outside of Vancouver, British Columbia, and I've been doing membership sites for 10, 12 years now, long before there was any tools to help me do it. I was building them. Now we have better tools. It was a fun challenge. Although, I distinctly remember since I have a counseling background and taught myself programming, crying at my screen at the end of the day, because I didn't even know the right questions to ask yet. But I don't know what it was about now, but it was not fun sometimes.

Brad: So, going back, you've been obviously, like you said, been doing membership sites for a long time. I'm curious how you got into WordPress. Was it just the natural evolution of a system to build websites? Was it the attraction to some membership products coming out? What did that evolution look like, for you?

Curtis: I don't even remember. I remember being in counseling class, psychology classes and being bored and teaching myself HTML. And I found, I guess, the Boagworld podcast and maybe they mentioned it. So right away, I was just coming in around the transition away from tables, and I've barely ever written tables in my life. So that's not a bad thing.

Brad: No, it's not. Yeah. that goes back way back, because that podcast, I used to listen to that as well. And that was actually even at the time, when I was doing the first podcast I ever did. I think you did talk about WordPress on the show. But moving on, you've been working with WordPress. Woo obviously has a lot of membership capabilities. Is Woo the first membership component used within WordPress, or did you do some things before that? Were you doing custom setups?

Curtis: I built and still actually build a lot of custom setups. So the first one I really remember being like a big thing, it was for a corporate trainer at Vancouver, and he would divide up the members in the corporate teams into sub teams, and they could vote on good behavior, changing their corporate culture, and they could vote on each other and award points. And the team would accumulate points over the month, and he would destroy the teams and realign them.

There was chat into a team, and file uploads and a bunch of stuff. That was like the first big one I remember building. I've just always been the kind of sure I can do that. That's how I learned to drive standard in downtown Toronto one time. Sure, I can drive standard, boss. Drove a big truck with a machine behind it through Toronto.

Brad: When I bought my first manual car, I could not drive it off the lot. Had to have a friend come with me. But you figure it out, right. That's what we do. And that's probably why we're in this industry. We'd like to figure things out.

Curtis: That's exactly it.

Brad: Very cool. So you touched a little bit around teams. I'm curious, because I know you mentioned during pre-show that you're working on some membership site teams. Tell us a little bit about that, because I'm curious what that means, exactly.

Curtis: So for teams, my one client sells access to a company, to their news, and the company signs up the employees as team members. And that's how we leverage teams. I've built systems like that multiple times before and it's difficult. I've done technically similar things for a sales company once where they could move their customers through a user flow in the backend of WooCommerce. So they could do all their sales from that end, from onboarding to support at the end. Things that are structurally similar on the backend. You're like, "Oh, that's just like the same thing." Even though someone's like, "That doesn't look the same at all." But it's really the same thing.

I built multiple things like that, like groups and teams, multiple times, but even on top of teams now, there is a sort of facility inside teams to not renew a team, but I just exposed it on the front-end, and found all the filters to shut teams down, and I adjusted all the templates in WooCommerce. So you can't edit users anymore. You can't edit your address, because they occasionally have people that just want to say, "No, we don't want to deal with you anymore." Let your membership run out, you're not allowed to renew. Even down to you putting your email in to purchase, and we say, "No, no, no, no. That doesn't work, because we know you and you can't come back." And on the flip side of that when you put your email in, it says, "Hey, we know you. You should just log in and all your information we filled out." So doing some stuff like that at the same time.

Brad: Yeah. So they line that up. That's pretty cool.

Curtis: Yeah. Literally that one actually searches through every email address we have for the team. So if you are anywhere on the team, and the team says do not renew, you cannot renew.

Brad: It's an interesting aspect of it. I know, obviously with everything going on in the pandemic, and most of us around the world are quarantined, or starting to come out of it. But the idea of online memberships has really taken off because so many businesses have had to quickly pivot specifically on things like gyms. I know a lot of gyms. Some businesses had to pivot online into kind of a membership based format of how can they still give value to their clients and customers and not lose them. How can they do it virtually?

Well, the answer is a membership site, right? So I think it's a really topical discussion around how businesses can pivot, and how they can roll out these membership based sites and take what they were doing in a more physical space and move it to virtual with the type of stuff that you're building. Are you running into that now? Have you seen an increase in engagement? Are people reaching out that are trying to make that pivot?

Curtis: I've had a few locally. But it's funny you say gyms, that's exactly how I've explained every time to someone who doesn't know about building this stuff. It's like your gym membership. People sign in and sign out. I've had a few, and I've helped a few local businesses just to get their inventory online. Whether that was like, I'll look at your Shopify site and just help you because I want you to stay around, right, and stuff like that.

But I don't know. Generally it's a particular type of customer that finds me, and they've usually talked to two or three other people, and come to me with "Curtis, we need to import 1.5 million records." Okay. "And we need to redo 300,000 of them every month." Okay. So that's generally what I end up getting. I actually very rarely work for anyone in Canada, despite living here. So my taxes are always interesting when they're like, "Hey, where's all your GST?" And I was like, "You just owe me money." I didn't pay, I didn't charge anyone any of that, because I don't have to out of the US, or out of other countries.

Their comprehensive activity logs that you can use with WooCommerce keeps you on top of what is going on with your shop managers and your team. You will be able to monitor and record when they make changes to products, order and coupons. And notably, it will help you with your store compliances. They make it easy to troubleshoot when there is something going on. In fact, you will be able to configure emails and instant SMS notifications to get alerted of critical changes.

Want to go a step further? You will see who is logged in and what changes are being made in real-time. And if needed, you can mange, limit, block and even terminate any user sessions. This is perfect for membership or subscription sites as it can help you control limitations on single user access.

There is a number of reports you can generate from the activity logs and you are able to use the search and filters for troubleshooting. In a nutshell, stay on top of it all. What is going on, where and when. No better way to manage your WooCommerce store. You can check them out at and click on the activity log for WooCommerce.

Now let’s head on back to the show.

Brad: I'm curious what with working in WooCommerce, we know every platform is going to have pros and cons, right? This particular setup, something like WooCommerce, or WordPress in general, how customizable it is, how endlessly flexible it is, could be a good thing. It could be a bad thing. I'm curious, what type of areas or limitations you run into where you immediately identified as being an area that's going to be tough. Maybe a very costly area to work in, or maybe an area that just isn't a good fit for something like WooCommerce with memberships, or WordPress in general.

Curtis: So my biggest pain point lately is I had to migrate my client's site with, I don't know, it's like 80,000 records, 48,000 images over the last number of years. And I'm like, this is going to take a long time. Even the fast ways to do it means it takes forever. Just for fun, what if I pull all this stuff into a system called Statamic, and I migrate it? Well, you just have to git pull the files, and it's done. So it still takes a while, because it's a big site, but it's like orders of magnitude faster. And that's what I hit regularly, because all of the sites I work on are fairly large scale.

Lots of data records. Not necessarily lots of concurrent transactions or anything, but I usually am talking at least about 50,000 users on something, or 50,000 records, whether it's orders, or any type. So I'm always hitting those times when it takes forever. I remember hitting this a long time ago in WooCommerce. It took a query. I was like, "This doesn't work." And I went up to get a coffee and came back it worked on my computer only. Why? Because my PHP was set up to just run as long as it wanted.

And it did work after 12 minutes, and it came down to searching, email addresses, and orders. That's why we couldn't do it. So the fastest way to do this client is to just not search for email addresses, and I'll submit a bug because that's really slow, and we removed the ability to search, to have fuzzy search, basically, for orders. So they just had to have some more information first because otherwise it just wouldn't work. It was either we have it or we don't. I had those regularly.

Brad: Yeah. I mean, data at scale, we run into that many times, and not just WooCommerce specific, but even WordPress in general. We've worked on sites that have millions and millions of posts, tens of thousands of users, things like that. And at scale, when you start having to manipulate that data, or migrate it, or really do anything with it at scale, there's a lot of really performance considerations you need to take.

I mean, we've had stores that we worked on the past that had tens of thousands of products that had to sync inventory across multiple stores nightly. So every single night, they had to run this massive job that basically recalculated all the inventory and made sure it was correct, across multiple stores from a centralized inventory management system. And that's no easy task. It's not a fast task. So I think it's something you always need to consider when they're working with.

Curtis: Yeah. And I've ended up writing custom shell scripts for that, too, right. You upload your Excel file, we agree on the data format, it'll be figured out by the time you're back in the morning. And I've done that multiple times. I get to work on lots of weird old systems, too. I have ported multiple homegrown 2006 PHP, whatever, weird sites into WooCommerce and ran multiple imports because data is just everywhere in the database they have.

Curtis: So figuring out how to migrate it one step, and then the next step, I've done that, again, multiple times, which is a fun problem and sometimes frustrating, because it just takes a long time to sort through the data sometimes. You might spend a day modeling the data first, and then you get to start writing the import, and then you're like, "Okay, why is it breaking in one area? Oh, they have a weird character." Like an option symbol from a Mac is in their data somewhere, and that one symbol breaks it, and you're like, "Okay, well where is this?" In the midst of whatever 60,000 products, or something. You've got to find that one product that happens to break it.

Brad: If there's one thing I know about Bob, is he loves working with big data, and moving big data. Right, Bob? Just like when you clean up your site.

Bob: Yeah. My big data is an old file cabinet, and they put it on a handcart and, move it around. That's about how much I move big data around.

Curtis: See, that's why I bought a toolbox with file cabinets big enough, like box drawers for a file cabinet. Just have a big Husky toolbox for my files now. It's all on wheels.

Bob: Yeah, that's the easiest way to move anything around for me.

One of the questions I had was that you said you had just finished an end user license agreement plugin for one of your teams, and I thought it would interesting to dive into that a little bit. Could tell us about it, and then also how often you end up doing these custom plugins for your clients? Is that the case, most of the time?

Curtis: So that is like my entire job, building custom weird stuff. I built the end user license agreement plugin twice. Actually, I built it once. I can't remember if it was RCP, Restrict Content Pro, or for Easy Digital Downloads, but one of Pippin's plugins. I could look it up, and I used that same base again to build for WooCommerce. And again specifically for teams in both instances. So I think it was Restrict Content Pro, where at least in WooCommerce, when we issue a new end user license agreement, it updates on the post, and automatically puts the old one in draft. And we log on the post by user ID and email address who signed it. Each team will get a record. So if the team has signed it, because a team manager did, then they'll get a record there that says the team assigned it, and then users can go in.

And if a user is on a team that hasn't signed it, it gives them some UI feedback that says, basically, go talk to Bob, it's his fault, and you need to go get him to sign it. And I think we even did an email form in there so they can just click a button and email the person. I think that's what we did for that one. So that's multiple times I've built that. So if you don't have your user license signed, then it blocks you, and just takes you to the hey, sign that user license page, and no one on your team can go anywhere.

Brad: It's one of those necessarily annoying things that just has to exist, but everybody hates it. The thing that nobody reads, but they accept.

Curtis: Yeah. And the first one I built was for a chiropractic training site. Basically it said, you're learning stuff online so make sure you have more practice. It's not our fault if you break somebody.

Brad: Yeah. I mean, if you have any type of a service, we're all familiar with it on our phones, and our computers. When you update, you always have to accept the new licensing agreement and terms. We're like, great. Let me on my phone. I'll take it. But that's pretty cool.

What are some other types of sites you've building out with a focus on membership? And what kind of trends in your field. Having done this for so long, what type of industries or even people that have been drawn into memberships? What are you seeing out there?

Curtis: I think that people are taking it a little more seriously. I've worked for mainly one client for almost a year, because I only work and do development about 50% of my time, and the rest of my time I write and do other stuff, and they like working with me. That's not true. I work with one other client who runs the biggest motorcycle shop in Malaysia. Big enough that occasionally it's in YouTube videos, we'd be like, Oh, you worked for that site. I'm totally following you now, because they know it. I don't know. I can't read half their content, because it's a language I don't speak. I think people are taking it more seriously.

Probably two years ago now, I built a custom eCommerce bookings and accommodations set up for an SAT training company. And they just were coming into it, taking it very seriously from the beginning, and their budget was definitely the smaller end compared to the one client I'm working with now. But they just took it professionally and seriously. When we talked about feature A, we looked at it from a business value perspective, and not, I want new shiny things. There was two or three of their ideas, and I'm like, "I don't think that's a good one." And I explained why. And they said, "Oh, okay, you're right. That is a bad idea." So we didn't do it. And that's been nice, because that's just generally how I think about things. Will I get X number of dollars of value out of whatever I purchase? And if the answer's yes, I'll buy it. Sometimes to my wife's chagrin, because I'm like, "But I got the value. How fun."

Brad: Yeah, if you could talk to my wife about that too, that'd would be great. "I have fun. It's worth it. The value is there."

Curtis: We're both runners and outdoor people, too. So I think sometimes our biggest fight is you got a new sleeping bag, when do I get one? Or, new running shoes. You have three pairs of running shoes, but mine were on sale.

Bob: One of the things I wanted to ask you about was on your site, you have the one plugin that you sell Easy Restricted Content for WooCommerce. Brad and I have talked with a lot of people that sell plugins, and also do service work, and often the plugin came out of service work. It was something that was born with a need. Wondering if that's the case for this plugin. ,

So first touch on this particular plugin, how it came to be, and then are there plans for future plugins, or do you prefer the customization work with clients, and doing it that way?

Curtis: So that plugin totally came from building something, a very simple membership site, multiple times for people. Actually, I built it on my site and was probably the very first iteration, and basically if you bought product A, you could see content B. That's it. There was no special account stuff. It was like, yes, you have access. You bought the book, so you get access to the forum with the book, or something like that. You get access to the LearnDash course that goes with it. And I used that for a couple clients, and it just got refined. Eventually I just bundled it into a plugin. I changed nothing on it between two clients.

And it supports forums. It supports LearnDash, mainly because I was using LearnDash, to be honest. I wondered if I can make it use LearnDash, and after not touching the plugin for six months, I got it working on LearnDash in like 35 minutes. I was like, well, I guess I did a good job. It was fairly easy to run a few filters on it.

Do I want to be in the plugin space? I hate having appointments. I don't want people to monopolize my time at all. So I'm probably terrible at support. So the answer is probably no. I don't ultimately want to be in the plugin space. I've had people approach me. I mean, WooCommerce has asked me like, "Oh, would you put your plugin on our site?" And I said, "Nah." They're like, "Oh, you'll sell more." I was like, "Yeah, no." Just not going to. It drives some business to me. People find it and they say, "Oh, this is great. It's super simple. Like I don't have to configure all these other 9,000 options. I just say whatever content, and there's a dropdown to say you have to have own this product to have it, and that's it."

And yeah, I have thought about releasing the end user license agreement plugin because I've got it in two versions. It's very little change between one and the other. I just changed some of the filters for WooCommerce to move it over to the other one. So I think if I had to build it a third time, I'd be able to get a fairly well abstracted and unit tested plugin that would let me sell it. And again, unit tested, so when I do something, I don't break stuff, hopefully.

Brad: Something to be said for plugins that do one thing well, especially as the market's evolved so much in the past five, six, eight years. There's so many plugins out there that are just, the core of what they do is still there, but then they do all these other things that you really don't care about. And it just makes you nervous come update time, and I'm sure we can name a few of those, but I think there will always be a market for stuff like that, regardless of who dominates that particular need. And I think there will always be a market for those simple solutions that just work well, and just continue to work.

Curtis: Yeah. And it's not like a big income driver for me at all, really. I sell it. Oh, I don't know. I probably sell one or two a month. That's it. There's some renewals. I don't do anything to make sure I drive home renewals, or anything. People are like, "I didn't renew two years ago." And I was like, well, there's really not an update that it pertains to you. So you probably shouldn't bother. And like, "Really?" It's like, "Yeah." But they're like, "Oh, I stopped using the plugin three years ago, but I see I paid for it a bunch." "I'll just refund the last few years." "Really?" "Yeah." Like I'd be annoyed. It's nice to be able to do that, and to have people take it so nonchalantly in general. I'm a pretty chill person. I broke my site on Friday,. It's pizza night, and I just went for pizza, went and had a big run. I fixed it Sunday, but the site was down for days. Whatever. Not a big deal.

Thanks to our sponsor: This episode is brought to you by Recapture Abandoned Cart Recovery and email marketing for WooCommerce.

Anyone who runs a Woo shop knows how frustrating abandoned carts are. And getting them back with Recapture is easy and setup takes less than 5 minutes. With their ready-to-use emails you can take them out of the box and start working for you right away. You’ll save time having to start from scratch. 

Abandoned cart emails are managed for you automatically as the email service runs outside of your store ensuring the best delivery to your customers. Their easy to ready analytics reports will help you to monitor your cart recover. And what’s really cool is you can watch what is happening live on your store with Recaptures Live Cart Feed.

The plugin is highly optimized so don’t worry about it slowing down your site. And their guarantee of email delivery, traffic increase loads and support make it a valuable investment compared to the free plugins out there.

From what I hear, if you sign up you will be joining thousands of merchants who have already recovered over $115,000,000.

Make sure and check them out and as a listener, get 60 days free with Recapture. Just go to

And now, back to our conversation.

Brad: I'm curious, how is Gutenberg and the block editor? Are you integrating that? Or you like it, you hate it. What are your thoughts?

Curtis: I have not had a single client want to use it in any fashion. Now, as I was running on the weekend, I was listening to the episode with Matt Mullenweg, and he was talking about it being the future, and I remember sitting there thinking not one client, whether it's an old client who has a legacy site, or a new client, who's coming to me and we talk about it and they're like, no, I don't want that at all. Not one client at all. So I have actually never built a block. I do a bad job of learning something when I don't have to learn it to do something. I just kind of peruse things. Its like I just wasted like an hour not really learning anything when I could have been doing something else.

So I will dig into it, and learn it when I need to. And so far, no clients. I've even recommended it to clients where we had some short codes, and they were going to really do a big revamp. I'm like, "You know what? We just should just build this into blocks." And they're like, "Nope, we don't want that." It's like, "Really? Did you look at it?" They're like, "We've looked at it. We never want those."

Okay, when it came out, I was not stoked about it. Now, I would recommend it. I think it's probably the future. If you want to continue building sites, you need to learn it, and I will learn it at some point, but not yet. And I don't do a lot of, I always call it front-end to work. I don't do a lot of that. I do a lot of deeper server side stuff. So blocks feel a little bit out of my comfort zone as well, to be true. I do very little JavaScript work in general, mostly PHP and server side scripting of things.

Bob: I'm curious about that. When you talk to the clients, and you you bring up blocks, are most of them already using WordPress? Do you think it's a transition they don't want to do? Or is it people that have never used WordPress, and here is A and here is B,, Which would you rather do?

Curtis: Yeah. So I know for my one site, for the motorcycle site, we've been working together for, I don't even know 10 years, maybe? And he's just like, "No, I don't want to do this. I know this, I've trained all my staff on what we have. I just want to use..." Even actually this morning. I was like, "Hey, this would be a time to transition for blocks for this plugin." He's like, "Nope." Okay. Nope, just put the short code in. And so I wrote the short code into a couple of spots that he needed it, and let him set the ID that the shortcode needs for each page.

So another big client that I've had for a while, they had just come in, and they had just started a WordPress, and I was like, "Hey, you should probably look at blocks. I think this will be easier long term." And they looked at it, and they were like, "No, that's not for us." And I'm not sure if any of their team had used it before. The one person I deal with is technically savvy enough that as we moved into Git, I gave her a basic Git branching and merging so she could update plugins on WPEngine, and within a week, after few fixes by me, she had it. She can do this. They're technically savvy enough to do these things, but they just didn't want it. So I don't know. I run my SFN design site on WordPress, but I don't run my personal site at Curtis McHale on WordPress anymore, because I just, I didn't want to. That's it.

Brad: Yeah. I mean, I think I look at Gutenberg, at least today, as a tool, It's like how I look at different technologies. I don't feel, in my opinion, it needs to be forced on a project where a client that doesn't need it or want it. I think it's an option that makes sense for a lot of people out there., especially if they're looking to do really beautiful, long-form articles, and things like marketing sites. It can be really great fo things like that. But I don't look at it as a tool that needs to be used by everybody, because I think it can be intimidating. Honestly, most people are just very apprehensive to change.

They're used to something working and looking a certain way, and it could be WordPress. It could be Twitter. Anytime Twitter changes, or Facebook changes, or whatever changes. WordPress has Gutenberg UI comes out, everybody complains. Everybody. You know what I mean? And then about a year or two later, it's just what it is. Everybody's just used to it. So there's that initial gut reaction of I don't want to do that. It's different. But I also don't believe it should be forced on people, either, because I do think there are plenty of cases where it's overkill and doesn't make sense, and it's too much. Just keep it easy. I don't take the all-in approach like some people do.

Bob: Alrighty. Well, I don't know if we have any announcements, anything going on, anybody doing anything. I'm not really, I don't have any exciting plans either personally or professionally in the next week, besides just my daily stuff. Anything going on with you, Curtis?

Curtis: Like you, we just celebrated our anniversary. Although our kids are little enough that we could go nowhere, and do nothing. So we just hung out with the kids because we can't have a babysitter right now. I went for a run. My wife went for a run. I took my kid biking. We had sushi. That was our 17th anniversary.

Bob: Yeah. Yeah. Cool. Congrats on the nice, mellow anniversary.

Curtis: Yeah, and I think we just told the kids, "Go to sleep." And made the joke about Samuel L. Jackson's Go the F to Sleep book multiple times.

Brad: That's a great book.

Curtis: It is. It is.

Bob: Brad, anything going on?

Brad: Yeah. I'll give you a little self plug. My new book's out. Maybe you heard of it, Bob, Professional WordPress Plugin Development, Second Edition. Nine years after the first, never thought I'd see the light of day, and I'm looking at a copy of it right now. So pretty excited to have that out.

Curtis: Well, like you said online, you need to raise your monitor, right?

Brad: I know. That is the most expensive monitor stand I own are the five books I've written sitting under it. It was a good one. I liked that book specifically because there was nothing like it back then nine years ago. And I've had so many people come up and tell me that it made an impact on their WordPress development, their career, their business, or even in their own sites.

Curtis: I'd pull it off my shelf and just be like, what about users again? And just kind of flip through. Oh yeah. Okay. Here's the big things I need to remember, and then stick it back.

Brad: I still do it, because I forget. I don't code as much these days, so I like the ebook, and you can search real quick and say, how do I add a menu? What's that function again? What's the parameters?

Curtis: I promise you that experienced developers only know how to Google faster than you do.

Brad: That's right.

Curtis: That's all they know how to do. And how to look at the answer and be like, yes, no, maybe

Brad: That's all we do. We're just better looking things up. But check it out. It's on Amazon. It's out now. Give it a read, and let us know your thoughts, feedback, love to hear from it. But pretty excited. I got my first copy this week.

Bob: All right. Excellent. Well, where can people find you on the web, Curtis? Where's the best place for them to connect with you?

Curtis: I am CurtisMcHale everywhere, on Twitter, my personal site. If you need membership work, it's at, and if anyone can actually figure out what SFN means, I will even figure out a discount for your membership work. I've mentioned it maybe twice in the last 10 years in different podcasts.

Brad: I assume San Francisco but then I realize where you're at. I'm like, "That doesn't really make any sense."

Curtis: No. I'll tell you all off air after, if you really want to know.

Bob: Yeah. Okay, We'll keep the secret.

Alrighty. Appreciate you taking time. It's great hearing about what you're doing, and yeah, keep those membership sites going for sure.

Curtis: Thanks for having me.

Bob: And everyone, make sure you check out our sponsors. A quick shout out again.,, and All three of them can help you with your Woo store.

You can always sign up for the podcast on your favorite app. Check out the Woo news I put out each week, either through a post or a podcast, and become a friend of Do the Woo, and that'll do it for this week. Until next week, Do the Woo.