Recently, I updated a few instances of Mautic from 1.9 and 2.8.1 to 2.8.2 and encountered the following error message:

It didn’t take long to realize for some reason the update was redirecting to a path and adding an additional forward slash before the “/s/update/” part of the URL.  Just manually remove the extra slash in the URL and force your browser to open that address and I have confirmed the update will continue.

Before doing any upgrades with Mautic, or ANY system for that matter, to make backups of your affected directories and database and NEVER update on a live site without the ability to roll back!

Some of you may encounter an error after that, just navigate back to your /s/login/ path and you should be fine!  To set up and run marketing automation, you don’t have to be a full-fledged PHP web developer, but it sure helps!

Mautic WordPress Plug-in

Mautic is an incredible Marketing Automation tool, their free community version has very powerful capabilities that many businesses pay thousands of dollars a month for with Hub Spot, Marketo, Pardot, InfusionSoft, etc.  Mautic also has a series of free WordPress plug-ins so you can integrate Mautic with your website with a simple click of the “Install Plug-in” button.  To try them out, just go to your WordPress Plug-in manager and type “mautic” to see the latest list.

The most indispensable Mautic plug-in is “WP Mautic“, which is made by Mautic and creates an interface for you to use short codes and embed your Mautic forms directly in your website.  I can say first hand that it is very reliable and easy to use.

There is one small catch — it doesn’t say anywhere in the instructions but when you install the WP Mautic plug-in, go to its settings where it asks you for the URL of where you log in to Mautic.  Be sure not to add a trailing slash at the end of it or it won’t connect to it!

More about Mautic, the powerful, free Marketing Automation Tool

To set up Mautic and connect it to your website you actually need very little or no actual coding knowledge!  So, if you want your website to limit how often you have a pop-up form bother someone, if you want to customize page content based on a particular visitor’s tracking info and previous historical data Mautic’s already collected, or perhaps you want to throw an exit intent pop-up to just make sure before they view a certain page you give them one last chance to think about it…. You can do all this by setting up Mautic and installing the WordPress plug-in.

The list of ways to make your website more powerful, smart, intuitive and maybe even less annoying, are all made possible through this plug-in and how well you set up your Mautic account to deal with all these conditions and behaviors.

You don’t need a web developer to set up Marketing Automation?!

The fact you can get a website up and running, install and set up your own marketing automation, and get your website and marketing automation to share data and work together all without knowing any code is good news for you, bad news for web developers, right?  Well, I contend that if you want Mautic set up right, you need more than someone who has a Marketing degree, you need someone who understands systems and how to convert business logic into reliable system actions.  It can get complicated fast so you need someone with a programmer’s mentality or you will likely end up with a poorly designed system that is inefficient to work with, update, and enhance later.

Here’s a typical boilerplate campaign set up in Mautic.  By the way, now Mautic can let customers decide how they prefer to be contacted so the same campaign can send an email, SMS text OR a twitter message all through the same workflow!

Even a simple boilerplate campaign could seem overwhelming, so just because you can set all this up yourself without knowing how to write code still doesn’t mean you won’t need to hire a PHP web developer who can help you design it to work so it’s future proof and adaptable.  I often find businesses expect WordPress to do everything for them, then, they run into a brick wall where their 50 plug-ins no longer update or work well with their current theme, etc.  By this time, they’ve wasted years of time stacking an ever higher house of cards that will take more time to redo right.

The definition of insanity is to do the same thing over and over again but expect a different result.  To really enhance your website and get it to do amazing things, not just normal things, if you need a website to do more than just be a glorified business card or blog repository, you will likely be looking for a competent web developer to make it happen.  No matter how easy the tools and integrations seem to be on the surface (think one-click plug-in installs), unless you keep things really simple and need to just do simple things, beware of not utilizing someone with a programmer’s mentality who can think far ahead of your current project scope.  Beware of relying one someone who doesn’t have the proven experience setting up business systems.

Your organization needs someone who has proven their competence working with data, system design, a variety of web systems.  You need a person who has programming experience who understands efficiency, code reusability and the importance of future-proof scalability.  Using the right system designer to spearhead your marketing automation project will save your organization years of headaches and possibly hundreds of thousands of dollars of wasted money thrown at amateurish attempts experimenting with your resources on your dime to only deliver you a system that won’t meet your marketing requirements.

If you are an organization in the Jacksonville Northeast Florida area looking for open source PHP web developers with experience in WordPress, Symfony, Drupal, Magento, or API integration experts, please drop me a note, I have a list of competent people who I can recommend here in Jacksonville, Southwest Florida, and throughout the US, Canada, UK, Australia, and Germany as temporary web development consultants or remote web developers!


To create a custom template in WordPress for specific categories based on the slug is not a built-in function.  Not sure why since it makes sense to build this capability without creating a new filter.  This could be plug-in, but it’s so simple, it’s one of those things you wonder why it’s taking so long to be included in the core capabilities.  Who wants to install all those single-purpose plug-ins, anyway?

So if you have a category slug called “news” and you want all your news posts to use this new template, just add this filter to your child theme’s footer.php file.  In this example, you would need to create a template file called “single-news.php” and WordPress will automatically use this to override the theme’s template for that category.

//Gets WP category slug of post and looks for single-[cat slug].php template file:

add_filter('single_template', create_function(

      '$the_template',
      'foreach( (array) get_the_category() as $cat ) {
            if ( file_exists(STYLESHEETPATH . "/single-{$cat->slug}.php") )
                  return STYLESHEETPATH . "/single-{$cat->slug}.php"; }
           return $the_template;' )
);

NOTE: If you’re not using a child theme, read this first, then if you’re still not convinced, use:   TEMPLATEPATH  instead of STYLESHEETPATH for above.  But don’t ever do it that way, every time WordPress gets updated you’ll end up having to make these changes, unless you just like letting code get broken because you’re too insecure of a web developer to want to create new solutions so you’d prefer to just keep fixing things you could prevent from breaking…


I added some new improvements to the “Insert Script” WordPress plug-in.  You can now declare a JSON string and it will parse it out as $json_vals_arr, an array that gets passed directly to your external PHP script.

You can also declare “strings” instead of “vals” as a GET URL string like:  “strings=’variable1=value1&variable2=value2&etc=andSoOn'”.

To download the most recent version, type in “Insert Script” and select the plug-in author “Aaron Belchamber”.  To learn more, visit the official Insert Script WordPress Plug-in Page.  This is a simple and clean way for WordPress PHP developers looking to integrate external scripts and content within a WordPress page, post, or widget.


Sometimes, I wonder if the WordPress community doesn’t create some over-complication of things just because it can.  I came across the term “texturizing” when I was developing another WordPress plug-in.  I ignored the warning before but figured it warranted a second look.  After all, it sounds like it could affect something on one of our WordPress sites, right?!  What on earth does “texture” refer to in the context of the web?!

I had 5 minutes and I do not like to leave things to chance — hardly a luxury when you’re in charge of a bunch of national websites.  Why haven’t I heard of “texturizing” before?!  I thought.  We technical “experts” have to know more than others, after all.  Our jobs and livelihood depend on it.  I had to find out, so I searched the web and found this link:

https://codex.wordpress.org/Plugin_API/Filter_Reference/no_texturize_shortcodes

At this link, I learned what “texturizing” in WordPress means.  To save you the suffering of visiting its usually out-dated and anemic reference guide, it means replacing normal quotes with fancy quotes.

Really?  File this one away in the “I heard of that but don’t think it’s very important directory” in your mind.  In other words, forget it.  Sorry to even have wasted your time with this one, but in case someone stumbles on it through some miracle of web search sorcery, now you know, now only if we could sound smart saying “is that website texturized properly?!”  At least that could be “fun”.  Notice the quotes around “fun”?!   🙂

Looking for a PHP, Symfony, Magento, WordPress, MySQL expert?  We have you covered!


Love Infusionsoft or hate it, if you are stuck using it, you want to be able to deploy useful forms with fields that optimize your visitors’ UX.  If you are collecting date information, Infusionsoft forms don’t export the code with any built-in AJAX functionality.  None. Someone made a conscious decision there to do the bare minimum in making sure this CRM’s capabilities could deploy forms.

Plugging your Infusionsoft form into a CMS like WordPress should be as simple as copy and paste, but unless you’re making really simple forms, good luck with that.  With their web interface, they took jQuery drag and drop and AJAXed so much of their interface, yet, the forms you create from a campaign are all designed to be simple standalone pages, there’s no choice to get code to work within an existing page — figure that one out.

That’s the biggest reason I don’t particularly care for Infusionsoft, the code they generate for simple forms is bloated, clunky, and it is not encapsulated to allow you to paste easily into existing web pages without it being likely to interfere somehow with other code on your page.  Wouldn’t it be nice if the campaign form generator asked you whether your JQuery library is loaded and what version you use?  You know, keep the customer happy kind of features?

I’m sure they offer upsells or other plug-ins that can turn your Infusionsoft forms into simple AJAX WordPress on-any-page widgets, but for the cost of this system, I think they need to get their act together and catch up to the more modern forms out there that plays nicely with other systems and performs simple AJAX out of the box.

So, if you are looking for a simple way to add a datepicker widget to your form, the best thing to do is add hidden HTML to your Infusionsoft form and follow the instructions I eventually found here:

http://ug.infusionsoft.com/article/AA-00840/0/Add-a-calendar-date-picker-to-a-web-form.html

For your convenience, here’s the snippet that goes into the html form element.

<link rel="stylesheet" type="text/css" href="https://ajax.googleapis.com/ajax/libs/jqueryui/1.8.11/themes/base/jquery-ui.css" />
<script src="https://ajax.googleapis.com/ajax/libs/jqueryui/1.8.11/jquery-ui.min.js" type="text/javascript">
</script>
<script type="text/javascript">
jQuery('#inf_field_YourDateField').datepicker();
</script>

Why it’s just not a simple option for form elements or they just have a “date” widget like most frameworks is a poor oversight.  As frequent and common date fields are, don’t get me started with Infusionsoft.  There are some great things about their system but I often wonder if they listen to their users.  It’s just common sense to offer robust form creation leveraging the newest technologies to offer the best UX, but then again, Infusionsoft often feels (and looks) like it was designed without a clear plan and where common sense was an after thought.  Don’t get me wrong, Infusionsoft has potential, but it is bloated, slow, and the API is strangely limited in its capabilities, which in turn limits the businesses (you know, their paying customers) that use it.

By the way, with the above snippet, you have to change the jQuery selector from ‘#inf_field_YourDateField’ to the field name from your particular form.