Zao WordPress web development, Zao WordPress team, WordPress web development, WordPress web developers,

Zao: A Look Back at 2017

Last year, we celebrated a huge 2016 with excitement and anticipation for what the future would bring.

We’re happy and humbled to report that 2017 didn’t disappoint. We added a Project Manager to our team, we posted some rad content, worked on some incredible projects, and learned a lot along the way.

Here are the highlights of what went down in Zao’s 2017:

Continue Reading

using quickbooks in WordPress, WordPress plugins, WordPress Quickbooks plugin,

Quickbooks and WooCommerce: It Was Only a Matter of Time

At Zao, one of our passions is building modular tools that solve client problems, and (our favorite part) releasing them to the public.

We were tasked with integrating QuickBooks Online with WooCommerce for one of our super rad clients, Brooklyn Tweed. Specifically, Brooklyn Tweed needed to be able to create QuickBooks invoices every time a manual wholesale order is generated (sidenote: If you’re familiar with WooCommerce, you know there is no such thing as a manual wholesale order [yet], but stay tuned for a future blog post and plugin release).

Naturally, the first step was to look for a WooCommerce/QuickBooks plugin. It might surprise you, as it did me, to find that there is not much available. Sure, there are a few SAAS options available, but nothing looked quite plug and play for what our client needed and wanted.

Continue Reading

WordPress, Gutenberg Project, WordPress editor, WordPress thought leaders, WordPress thoughts, WordPress professionals

My Thoughts on Gutenberg

We’re in an incredibly exciting time in the development of WordPress as a platform: the REST API is in core, we’re imagining a new JavaScript-driven future for WordPress, and we’re in the early stages of development of a new editor for WordPress, Gutenberg.

As one might expect, anytime major changes happen in open source software, hot takes abound! While my take isn’t necessarily as hot (I highly recommend each of those posts!), I’d like to share some of my observations on the community reaction to the process of introducing Gutenberg to WordPress.

This post is not a feature-by-feature review of Gutenberg. Any of the posts linked to above do a far better job of that than I could hope to. Rather, I’d like to explore the general sense of animus this project has seemed to introduce into our community – and if possible, I’d like to explore that without pointing any fingers.

Continue Reading

Zao PDF Viewer, view PDFs in WordPress, view PDFs in your WordPress site, making PDFs viewable in your WordPress site, WordPress plugins

View PDFs in Your WordPress Site with Zao PDF Viewer

While we love an excellent out-of-the-box tool (and the WordPress community supplies so many of them!), we’re no strangers to making something from scratch when we feel it would be the best option. Not only is it fun, but we can really make it our own and make it exactly the way we like.

Not too long ago, we collaborated with Travis Smith, who is a champ. He had a plugin he’d built for a client, but hadn’t released. We reached out to him and he was generous enough to give us access to the source code so we could fork the plugin and make it our own.

Built on Travis’ solid foundation, we created the Zao PDF Viewer. It allows PDFs to be previewed inline on a website, using a viewer that is similar to the PDF viewer used in Firefox.

Continue Reading

WordPress tutorials, CMB2 tutorials, CMB2 meta fields, CMB2 how to, CMB2 WordPress plugin,

How to Save a Backslash (\) to CMB2 Meta Fields

Recently, we had a user request that their backslashes be preserved when saving their CMB2 fields. Typically, when a user wants non-standard sanitization, our canned response is to use the provided field parameter sanitization override, 'sanitization_cb'. If you’re not aware of this field parameter (and it’s cousin, 'escape_cb'), let me explain a bit.

By default, CMB2 does quite a bit of heavy-lifting for you when it comes to sanitizing your users’ input, as well as escaping that value for proper display. This is just one of the aspects of CMB2 that I appreciate; that I don’t have to “think” about the sanitization/escaping of my fields.

“It just works.”

Except, of course, when it doesn’t.

Continue Reading

A Healthier Option Helps WordPress Users Improve the Options Table

A Healthier Option Helps WordPress Users Improve the Options Table

You may have noticed we’ve been covering a lot of plugins lately. What can we say? We’re doin’ work! We have yet another amazing plugin that we’d like you to meet, called A Healthier Option. A Healthier Option analyzes your options table and offers suggestions on how to make it healthier.

Autoloading WordPress options

WordPress provides a way to autoload (or not) certain options. WordPress stores these autoloaded options in a big bucket, like an object cache that allows a user to say, “This is an option that needs to be available all the time.” To make it constantly available, the option is placed in the autoload bucket, making it easy for the user to access it without having to go to the database. The option is stored in memory and far less computationally expensive.

For a fantastic rundown on understanding alloptions in WordPress, take a peek at this article from our friend, John James Jacoby.

The problem

By default, most object cache buckets can be up to 1 MB. When it’s filled with a reasonable amount of data, that’s totally fine. However, when you’re talking about a lot of plugins with a ton of autoloaded options, the autoloaded options cache bucket can fill up real quick. Once it’s overfilled, it stops working properly.

WordPress attempts to make all autoloaded options available on every page load. This is great, in theory, as it should save a lot of trips to the database. When the cache bucket for autoloaded options is too big, this breaks, and can cause a significant performance drain on your website.

If you have 10,000 options with big values, and 5,000 of those are autoloaded, then it can quickly become a performance strain. Suddenly, your options table gets unwieldy.

Depending on the configuration of your server, your database, and your object cache, what WordPress intended to be a simple and relatively small table of options can turn into the culprit behind your site’s slow speed. We know that loading time can make a huge difference in terms of sales and success, so keeping your site quick should be a high priority. A Healthier Option plugin helps you do that, and makes it wicked easy to manage.

Continue Reading

Zao Mock API: A WordPress Plugin for Testing API Responses

Right now, REST API usage is at an all-time high, especially now that WordPress, which powers 27% of the web, has its own REST API. And it makes absolute sense. There are so many great services and data sources in the world wide web, and there has been a need for those sites/services to “talk” to each other for almost as long as the web has been a thing. REST APIs have long been a subject we are passionate about at Zao.

If you’re not familiar with REST APIs, I recommend doing some reading, and bookmark this article (and plugin) for later.

Continue Reading

Zao Adopts Asset Queue Manager on background of WordPress code image

Zao Adopts Asset Queue Manager

You’ve already heard our good news about CMB2…but wait, there’s more! We recently adopted Asset Queue Manager, a WordPress plugin that allows experienced front-end performance engineers to take control over the scripts and styles enqueued on their site(s).

About Asset Queue Manager

AQM is a well-liked and regarded plugin built by a developer from the UK named Nate Wright.

When plugins are bad citizens, they enqueue their assets everywhere on the front-end, which means their style sheets and JavaScript files are loaded everywhere, regardless of where they need to be. AQM allows you to manage whether or not those assets are actually enqueued. It’s a fantastic tool based on a great idea, and it has a really cool UI.

Continue Reading

CMB2 heart heart heart heart heart heart heart

CMB2 Grows: Where Human Made, Zao, and WebDevStudios Meet

If you know WordPress, you certainly know CMB2. CMB2 is a developer’s toolkit for building metaboxes, custom fields, and forms for WordPress. It’s a thriving plugin, with over 100K active installs and a five star rating on WordPress.org and over 1500 stars on Github. CMB2 also happens to be flexible enough to be bundled in other projects (plugins/themes), and those installation numbers are unaccounted for. If you account for the plugins and themes which bundle CMB2, this number is truly astounding.

After a long history of many contributors and iterations, three WordPress web development companies, Human Made, Zao, and WebDevStudios, are coming together to work on CMB2 and create its own Github organization.

Continue Reading