A screenshot of stacked bar graphs with accordion web elements below it.

Parallel Practice: Gravity Forms Pattern

Round of the parallel practice tool was done in Google Forms/Sheets. Things went pretty well and an internal award was given to help take the project to the next level. I did a bit of early sketching with the form a little while ago. This week, I’ve been working on it more diligently and I thought it’d be interesting to talk through one path for storing, viewing, and updating data straight from the Gravity Form entries. It’s not entirely standard and so might be worth checking out just to see some odd things you can do. I could have made each form submission create a post or some custom post type1 but I thought it might be a bit cleaner just to have one place where the data lives (Gravity Forms entries) and reference that data elsewhere. It’s just a decision. I could argue either side of this. You can see a video tour below if you like that kind of thing. Getting Gravity Form Entries The GFAPI provides a solid, supported path for getting form entries. First, I have a custom post type for the student data. Each student gets one and it’s where they enter and see their data. So we’ve got to show just their data. The function below will search for Gravity Form entries where the […]


Weekly Web Harvest for 2022-06-19

video programming . . . how it really works worth reading these examples . . . I used to think there were more rules with programming but so much of it is just figuring out whatever way you can to solve a problem Write for your audience | plainlanguage.gov There is a law (the plain writing act of 2010) that requires federal agencies to use clear language in communication with the public. This is the writing guide that supports the law. How marketing helped Southern New Hampshire University make it big online That was over a decade ago. SNHU representatives now aim to call prospective students so fast that they don’t have time to click away from the university website. The university typically returns 98 percent of new lead calls in under three minutes.


Adding Gravity Form Merge Field Modifiers

Gravity Forms does all kinds of nice things with merge fields. These mail-merge-like chunks make it really easy to create content, send custom messages, or redirect people using the data submitted via forms. When your plain data doesn’t do what you need, there are a number of useful built in modifiers. I’ve mainly used the value modifier in the past but the label modifier looks pretty useful as well. Looking at the merge field example below, I’d be targeting the question where I asked about their favorite cat (form field #2) and I’m going to write out the value. The person filling out the form might see the option cat but I could set the value to an image representing a cat or make a little div class to make a cat. A stupid example perhaps but that simple pattern opens up all kinds of opportunities. Sometimes though the thing you need isn’t there. Luckily, Gravity Forms lets you write your own modifier. In this case, Jim wanted to make a link to a particular tag but had problems when the tag had a space in it. You can’t set values in tags and, unlike categories, you can’t get the tag ID as a modifier. A quick Google search led me to this example in the Gravity Forms documentation. I […]


In spite of

Audrey’s post explaining why she’s stepping away from ed-tech for good was something that resonated with me in a few different ways. I’ve also been a fan of Desmos (the tool) and Dan Meyer (the person) for a long time. That’s going back many years (2009 easily). But I separate the tool and the person from the business.1 Audrey’s post led to a conversation with Jim and his post has inspired this post. I imagine being Ed Tech’s Cassandra as a depressing path. Looking at previous edtech travesties to contextualize the mess currently being pursued at massive profit is not going to make anyone who cares about humans happy. There’s some joy in being right. There’s the hope that maybe you prevent some bad choices but being a bad-news-Nostradamus2 is not a fun long-term occupation. Audrey provided research, history, and a compelling narrative but I’m confident she could accurately predict these futures without bothering with any of that. I’ve always suffered when I look at scale, when I focus on how little we’ve taken advantage of the potential, when I look at the timeline required for institutional change, when I see what failed to catch on in the 1960s.3 The basic problem is that edtech is a bag of gold. It’s just not the same bag of gold for lots […]


Weekly Web Harvest for 2022-06-12

White Parents Rallied to Chase a Black Educator Out of Town. Then, They Followed Her to the Next One. — ProPublica She then briefed them on how to file grievances about school board members’ teaching licenses and on their right to request school board members’ cellphone records. And she advised them on the benefit of collaborating with “outside forces” to file open records requests to school systems for employee emails and curriculum plans that could provide evidence of inappropriate material being taught in classrooms. Doing so would allow those outsiders to “take some of the heat.” But there was one agenda item that would inspire the crowd to take more urgent action than any other: They had to figure out what to do about the Cherokee County School District’s decision to hire a woman named Cecelia Lewis. The End For a long, long time, if anyone asked me if there was any ed-tech I liked — and I would get this question a lot, often asked as though it was some sort of “gotcha” — I’d reply in a heartbeat, “Desmos.” I adore Eli; and Desmos has always had a great team, including, of course, the incredible Dan Meyer (who I also adore, even though I blame him whenever I chose the slowest check-out lane in the grocery store.) —so […]

A screenshot of the advanced post creation dashboard with elements numbered 1 through 5.

Gravity Forms to Events Calendar Pro

I did some work making Gravity Forms create Events Calendar events back in 2017. Things have gotten easier with the Gravity Forms Advanced Post Creation plugin. I used this on the Anti-Racism site and forgot to document it. First set up your form so it gets you the data you need. You’ll need something like . . . event title start date start time end date end time description I suggest using the date and time form fields to help people with their entries. If the advanced post creation plugin is installed and active, you’ll have Settings > Post Creation visible associated with your form. We’ll choose to make one of those. I’ll use this embarrassingly large screenshot to talk us through the pattern. I’ll stick with the major pieces but much of this may be self explanatory. Step 1 – set the post type You’ll want to create an event. It’s available as a drop down option under custom post types. That’s handy.1 Step 2 – set the post status In our case, we wanted to approve this before it went live so we chose to put the post in Pending but you have your normal WordPress post status options. Steps 3 and 4 – set the title and description This is just a typical Gravity Forms variable. {whatever:12} […]


Changing the Order of Fields on Gravity Forms Mobile View

This is one of those odd needs that maybe no one will ever have but I think it’s worth documenting because you can do it. Seeing possibilities helps change how you think. While this scenario might be unique, you might have a different odd need that’s close enough that this inspires some different thoughts around how to solve it. Anyway, enough attempts at justification. I’m taking the parallel practice Google forms/sheet and making it into a WordPress theme. I’m doing that because I’ll have a lot more control over the entire experience. One of the things I wanted to emphasize was the parallel nature of the logging so putting the two logging patterns side-by-side seems to make sense. Gravity Forms lets you do that very easily with drag/drop now. The problem though was that in mobile view, the form fields end up sorting in a way that make sense. It just doesn’t work in this scenario. You can see that below. So there were a number of things I might do to deal with this (and I still might do them) but I had a vague memory that I could set the sort order for flexbox and grid via CSS. So I could do something in the CSS like this that applies only at screen sizes at 645px or below. […]

A screenshot of the message generated by the markdown.

Customizing Your Gravity Forms to Slack Message

Gravity Forms has a great Slack addon that lets you push content from form submissions into Slack. I like it because you can centralize conversations in Slack while guiding submissions from people outside your organization. I’ve used it mainly for support requests. Slack is an easy place to discuss the submission (doing this via email sucks) and it’s a good place to indicate that your answering the request. All that happens live and prevents the crossed wires that tends to happen when you try this via email. Once you have the plugin installed, you need to connect it to your Slack account and then you can set up your notifications. Once you have the plugin installed, Slack will show up as an option under Settings for any form you have. You can make multiple Slack notifications for a single form, like you see above. The Slack messages can be posts to particular channels, private groups, or directly to individuals. To format the messages, you can use the Markdown that Slack supports. You will want to look at that link if you don’t want to get frustrated trying things Slack doesn’t support. Here’s an example of how I format our messages. It’s a bit of markdown and some emojis. Everything in curly brackets is a variable from the form. The question […]


Weekly Web Harvest for 2022-06-05

How to automate Google Apps Script deployments with GitHub Actions – AppsScriptPulse Alan Graham on Twitter: “I’m creating a new type of collectible item, called a TIMS (This Is Mine Still). Here’s how it works. I’ll sell and mail you a copy of the receipt for something I own, like this Rolex. You’ll own the proof of purchase, but I’ll st invest now! The Web’s Timeline Anosognosiogenesis on Twitter: “The problem with convincing yourself that people in power are playing 5D chess, is that those people are too busy effortlessly fucking you over with zero fear of consequences to bother trying to obfuscate anything whatsoeve


Change WordPress slug on title change

I’m trying to post smaller pieces of code as they come up to better document things for myself and maybe it’ll end up helpful for others. So these things aren’t terribly exciting and may, in fact, be boring. The Context I set up a custom post type named “Cards” and another custom post type named “Updates” shows up under the cards. There’s a front-end Advanced Custom Fields form that automatically tags the update with the title of the card. We had a problem where some of the updates were getting tagged but were not showing up where they should. Turns out I had originally set the code to look for the slug (post_name) so I could use that in the show updates query more easily.1 The problem was that when a post is first saved the slug is generated at that point. If the title gets changed down the road, the slug doesn’t automatically update. That was our problem. A post might initially be titled TRM Something and then be re-titled TRLM Something. It’s a hard thing to spot even if you knew to look at the slug portion of the permalink. All the following code does is sync up the slug with the title. It’s hooked to the acf/safe_post action but could be tied to more any of the […]