WordPress 4.4 “Clifford” explained

WordPress 4.4 “Clifford” (named for jazz musician Clifford Brown) was released with over 2,000 contributions by 471 contributors. That’s the largest number of contributors to a point release by far.

Here’s the short launch video for this version.

As you can see, there are a lot of great things in this release like:

Read more

What is WordPress Calypso and what does it mean for self hosted sites?

Matt Mullenweg, the CEO of Automattic recently announced a new interface for WordPress.com called Calypso. You can now manage your blogs, publish and edit posts as well as read other people articles all from a new look and feel.

This is great, however, what’s truly remarkable is the fact that the new interface is written entirely in Javascript.

By using the new JSON API from WordPress.com they were able to create a brand new admin for WordPress.com sites that is written entirely in JavaScript, HTML, and CSS and it can run locally on a device with a lightweight node.js server setup.


Read more

A free WordPress Membership plugin – Paid Member Subscriptions

Sometimes, finding the right WordPress membership plugin can cause issues even for experienced developers.

  • “A really steep learning curve”
  • “Could not figure out how to set access levels”
  • “Paid for the premium and got half ass support”
  • “After activating this plugin, the speed of my site dropped dramatically”
  • “Not developer friendly”

These is all real feedback from people regarding various WordPress membership plugins. None of the above has anything to do with features or what the plugin can do. Instead, they emphasize:

  • bad user experience
  • really difficult to set up
  • and lack of developer support

Paid Member Subscriptions – A free WordPress membership plugin

While developing our new plugin, we didn’t try to implement every single feature a WordPress membership plugin might need. Instead we tried to focus on:

  • ease of use and good user experience
  • using best practices when developing the plugin
  • creating a core of features that we can support for all our users (particularly since this it’s a free plugin)
  • took into consideration the possibility to extend the plugin through hooks and filters
  • make sure it works well with other plugins

Keeping it simple

While developing our plugin, we tried to find a balance between a few core features that need to be found in the plugin and features that can be later added via addons or 3’rd party plugins. And this is what we came up width:

Read more

Create WordPress Demo Site with Multisite


Creating demo sites with WordPress Multisite is a quick way to let your customer to try your theme or plugin in a true-to-life environment.

Setting up a demo site for WordPress plugins or themes can be as simple as installing WordPress and giving everyone a demo account. This has several drawbacks:

  • anyone can overwrite what the other testers did and will lead to a messy demo site
  • you can limit what the demo account can do, crippling the effectiveness of the demo
  • you have to reset / clean the demo site every few weeks

Alternatively, you could use a plugin like Ninja Demo, however we decided not due to the price (~ $200), but simply because we figured out this can be a really fun project to play with internally.

With WordPress multisite, you can let them modify, delete upload on your demo without interacting with other demo accounts by simply allowing your users to create a brand new demo site.

In this tutorial we’ll go through:

  • Creating a demo subdomain to the main domain
  • Installing WordPress Multisite
  • Setting up available plugins and themes
  • Replace the complex WordPress signup with a simple “Create Demo” button (custom plugin) that will:
    • Automatically create a new account with a random username and the “demo” password
    • Automatically redirecting and login in the user to the new demo we just created
  • Further improving our setup by hiding certain backend menus and using a site template so all new WordPress demo sites are all the same
  • Conclusions

Read more

Safari Push notifications for WordPress how and why

Starting with October 2013, with Apple launching OSX Mavericks, Mac users running this operating system could start receiving safari push notifications for WordPress on their desktop not only from their installed apps (i.e. from Gmail or Skype) but also from websites that enabled this service.

To subscribe to a website, one need only visit it from Safari. Once they agree to the subscription, Safari is no longer needed. Actually, no browser is needed. Notifications will pop up in the top right corner.


Read more

WCK Single Metabox just got better


Creating custom fields with our WordPress Creation Kit plugin has just become simpler.

We’ve redesigned the way Single Metaboxes work, reducing the number of steps required for adding content.

WCK’s Custom Field Creator allows you to create single or repeater metaboxes.

One of WCK’s strong points is the ability to create repeater fields as well as repeater groups. This is super helpful when you need to add multiple custom fields or groups of custom fields of the same kind, without knowing the exact number.

This repeater metabox attached to "Our Team" page allows you to add as many team members as you need.

This repeater metabox attached to “Our Team” page allows you to add as many team members as you need.

WCK Single Metabox Improvements

The problem was that because WCK was designed with repeater custom fields in mind, the Single Metabox design was adapted from the Repeater one.

Simply put, in the previous version, to add custom fields which are not repeatable (stored in a single metabox) you needed to click the “Add Entry” button for each one of the custom field groups attached to a post, page or CPT. Only after doing this, you could “Publish” the page/post and have the saved custom fields attached to it.

Here we're using a Single Metabox attached to an Events CPT to add event details stored in custom fields.

Here we’re using a Single Metabox attached to a Events CPT to add event details stored in custom fields.

Only after clicking the "Add Entry" button custom fields data is saved.

Only after clicking the “Add Entry” button custom fields data is saved and you can go ahead and “Publish” the event.

If however you forget to click the “Add Entry” button after adding content in the custom fields and simply click Publish, the custom field data will not be saved and the single metabox content will be empty. An alert of unsaved data may have helped, but it was still going half-way.

This was a serious usability issue which needed improvement. In the redesigned WCK Single Metaboxes, we rethinked the way Single Metaboxes are built, so that we can remove the “Add Entry” button altogether. This eliminates an extra step and simplifies the data entry process.

The NEW Single Metabox:

NEW Single Metabox design eliminates the redundant "Add Entry" button.

The NEW Single Metabox design eliminates the redundant “Add Entry” button.

This redesign impacts and simplifies the WCK UI as well. Based on WCK API, some WCK modules (like Custom Fields Creator, Front-end Posting etc.) were using the single metabox format as well.

This basically means that from now on creating custom content types with WCK will require less steps and fewer clicks.

Note: The improved WCK Single Metabox is available starting with WCK version 1.1.4.

Import / Export WCK Settings addon

Another important addition is the Import / Export Settings addon. This makes it really easy for people working on two environments, to export all WCK Settings from the development site and import them on the live site.

No need to define the same metaboxes, taxonomies or custom post types twice, for both sites. Simply export them to as many sites as you need.

Download The Import And Export Add-On

Have any suggestions on how we can make WCK even better? Share your thoughts in the comments section below.

User Field Visibility for Profile Builder

I would like to have some fields which are not visible, some fields visible but not editable for logged users.


Did you ever wanted to have some admin only fields attached to your user profiles? Or fields that are editable by administrators and visible by your user?

Now it’s possible with a new addon for Profile Builder: Field Visibility

Profile Builder – Field Visibility Add-On

By default, extra fields created with Profile Builder can be visible and editable by all user roles both in the front-end forms or in the backend.

Now you can add extra fields that are only visible and editable by an administrator like:

  • admin notes about the user
  • custom ID to connect the user with another system
  • a custom category that only admins can add the users in


User Role based field visibility

Wouldn’t it be nice to have different profiles for different user roles?

Now this is possible with the User Role Visibility for fields.

If in the past you had to use the multiple edit profile forms to achieve this, the User Field Visibility Addon gives you the possibility to have a single edit profile form that displays different fields depending on what user role the current user has.

This applies to the backend Edit Profile page as well.

Note: User Field Visibility requires Profile Builder Pro or Hobbyist version 2.0.8 or higher.

Get Field Visibility for Profile Builder

Numbers and Phone Validation Addon for Profile Builder

I want to restrict an input field to be numerical How can I do that?

Zip codes, phone numbers, custom ID’s require the custom input field in a registration form to be made up of numbers only. That’s where this addon for Profile Builder comes in handy.

Download and activate

icon-150x150First of all, click on the button below to download the add-on. Unzip the downloaded file and copy the contents in the wp-content/plugins directory.

Download The Numbers Only Field Add-On

Please note: The Numbers and Phone Validation Add-On requires Profile Builder version 2.0.5 or higher.

Once the files are moved, head over to the Plugins section of the Dashboard and activate the add-on.

Enable Numbers or Phone Validation for a Custom Input

Once the add-on has been activated head over to the Manage Fields page in Profile Builder. If you select an input field you will see that a new property named Numbers Only appeared below the other properties.


See it in action

Too see your work in action head over to the page where you display the register or edit form and type some letters into your new field and submit the form. You will get an error asking you to enter numbers only!


WordPress Shortcode – Compare Values


With both Profile Builder and WordPress Creation Kit plugins using Mustache as their template system for things like User Listing and Swift Templates, we need at times the possibility to compares different values.

This however, is not possible in Mustache. So a shortcode to compare values comes to the rescue.

Compare Shortcode

Download Compare Shortcode

How to use

[compare val1="test" val2="test" operator="=="]
    List if the values is the same?
// Inside Profile Builder or WordPress Creation Kit you'll probably use it like so:
[compare val1="{{my-custom-field-2}}" val2="Yes" operator="=="]
    List if the values is the same?

Code wise, it’s fairly straight forward. You can also see what operators are supported:

 * Compare shortcode. Tags: shortcode, compare,
 * Usage:
	[compare val1="test" val2="test" operator="=="]
		List if the values is the same?
add_shortcode( 'compare', 'wppbc_compare_shortcode' );
function wppbc_compare_shortcode( $atts, $content ){
		$out = shortcode_atts(	array( 'val1' => '', 'val2' => '', 'operator' => ''), $atts )
	// quick fix for WordPress bug: https://core.trac.wordpress.org/ticket/29658
	foreach($out as $key => $value){
		$out[$key] = str_replace('”', '', $value );
	$l = $out['val1'];
	$r = $out['val2'];
	$operators = array(
		'=='    => create_function('$l, $r', 'return $l == $r;'),
		'==='   => create_function('$l, $r', 'return $l === $r;'),
		'!='    => create_function('$l, $r', 'return $l != $r;'),
		'<'     => create_function('$l, $r', 'return $l < $r;'),
		'>'     => create_function('$l, $r', 'return $l > $r;'),
		'<='    => create_function('$l, $r', 'return $l <= $r;'),
		'<='    => create_function('$l, $r', 'return $l <= $r;'),
		'>='    => create_function('$l, $r', 'return $l >= $r;'),
		''      => create_function('$l, $r', 'return $l == $r;'),
	if ( !array_key_exists($out['operator'], $operators ) ){
		return '<p>The compare operator <strong style="padding:0 10px;">' . $out["operator"] . '</strong> is not recognized. Please try: == , ===, !=, <, >, <=, >=';
	$bool = $operators[$out['operator']]($l, $r);
	if( $bool ) {
		return $content;

WordPress Passwordless Login


WordPress Passwordless Login is a plugin that allows your users to login without a password. It’s as simple as installing it and adding a shortcode in a page or widget.

Download Passwordless Login from WordPress.org

These past months have been filled with security reports, articles and 0-day exploits. It’s fair to say they had little to do with WordPress, but that’s besides the point. What’s certain is that we’re now living in an increasingly technologically complex world and it’s getting harder and harder to keep everything safe and secure.

This article draws it’s inspiration from the Passwordless authentication: Secure, simple, and fast to deploy, an article published something like two weeks ago. It explains how to get passwordless login for node.js but more importantly, why you want passwordless login.

Username + passwords will probably not be replaced anytime soon. But that doesn’t mean we can’t come up with alternatives.

Everybody has a “friend” that uses the same password or some variation: the pass with numbers in it, the pass with capital letters, the pass with special characters in it, the pass with the year at the end in it, etc.

Lately there have been great solutions involving one time passwords like Persona from Mozilla. Whenever a user wants to log in, they receive a short-lived, one-time link with a token via email or text message.

There is also Clef that uses a QR code and also supports WordPress via a plugin

But all these are third party so let’s look into building something native to WordPress.

Read more