Posts

WordPress Premium themes I’ve used

Having difficulty finding the right codebase for your wordpress design ? fancy trying out premium themes ? check out real live example with this chronological sample of websites I've designed using premium and free wordpress themes. I can't list advantages and drawbacks of them all, the only rule is ... know your stuff, get used to it... and stick to VISUAL COMPOSER for future updates...

and free themes I've used... apart from the twenties series : responsive from cyberchimps for Guilers Auto's website

Removing spam from wordpress gravity form entries

There are many solutions to avoid spam filling your gravity form with unsollicited trash messages. You can use the original gravity forms captcha field  but I would not recommend this basic solution because it requires you to create an account on google's famous recaptcha service. Another drawback of the gravity forms captcha field is that it disables the AJAX option (read on gravityhelp) : if you want to use AJAX option or would like to have you captcha feature hosted on your server, you can use the famous wordpress plugin Really Simple CAPTCHA.

A third solution is to use simple rules on your form like asking the result of a simple mathematic operation like "what does 2+3 make"  and use Min and Max on the number field type. Ok this is for reducing SPAM entries. But once you have caught thousand of bad entries in your form, how do you remove them quickly ?

I encountered the problem with a few thousand of SPAM entries dropped to my favourite contact form in less than an hour. Manual deletion of thousands of messages is easy but tedious when the default 20 entries per page makes you repeat the same operation a few dozen times. Here comes the gform_entry_page_size filter, detailed on gravityforms documentation : simply code the following filter in your thems functions.php file and depending on your server capacity you can substantially increase the number of entries displayed on the messages page, and accelerate the stupid deletion task..

And next time remember to setup antispam strategy..

10 features for a perfect wordpress starter theme

These are very important features we'd like to recommend if you want to develop your own commercial themes. Remember that themes are supposed to be used and reused on many sites, which means various configuration options, either codebased of configuration based

  • Theme customizer :
    • Logo upload for theme customization is now a standard wordpress feature, documented on the codex. The custom header feature allows you to uypload your logo, and possibly cropping of the uploaded image. Interesting when trying it variations of formats and or colors.
    • Layout options :
      • theme customizer should allow you to define layout options like : full width, fixed width with max width specification (1020, 960, you pick). Of crouse any serious theme layout should be full responsive and grid based, and compatible with drag and drop content editors like page builder of visual composer
      • good options should allow to define default behaviour for all custom options within pages or posts 'see second pargraph below)
      • color schema should be easy to customize : ideally you should show off a dozen color schemas with your theme
  • Menus 
    • handling a main menu - with unlimited hierarchy levels and responsivness -  is the minimum for a good theme, but I suggest your prepare other locations for secondary menus : top menu (for social networks), bottom menu (adress, legal ...)
  • Custom post types
  • Handling custom Font
    • it is necessary to provide som e sort of easy font customizing, either in the code via a filter or action, or via backend admin interface
    • icons : the font awesome library provides more than 300 hundred icons, it is quite necessary to provide this iconset within your theme. It is good to provide tinymce integration for quick icon integration within text
  • Custom options for pages :
    • custom box for choice of sidebar display :
      • custom sidebar selection (the free plugin Custom Sidebars is available for this feature if you don't want to implement it in your theme. But it does not allow you to remove a sidebar from a page)
      • sidebar position (right, left, none, both)

free drag and drop page builders for wordpress

whoever has tried visual composer from code canyon should be enthousiastic about the future of wordpress as a full featured content management system.

while there are many licensed (paid) drag and drop plugins for worpdress page editor, we have found one free alternative that does the job quite well

  • Page Builder by SiteOrigin has the big advantage of relying on widgets, a de facto standard for element contents in wordpress. It also comes with a very efficient column handler which does not limit you to a fixed width ! also comes with default widgets, very efficient :
    • Gallery widget for inserting image galleries, overrides default gallery system
    • Image widget for inserting standard images.
    • Self hosted video widget for embedding your own videos.
    • Post Loop to display a list of posts. 
  • little drawback of page builder is that it does not display the content within the blocks :
    wordpress-drag-drop

Other solutions i have not tested yet

Apart from free plugins, I have also tested commercial plugins like Visual Composer, which now comes with front end editing, have a look at my previous article on this subject

 

Information management with WORDPRESS / PART II : bulk editing

While comparing wordpress woocommerce with magento, I pointed out the very efficient bulk editing feature for products in magento : it's quite amazing to find out that new versions of wordpress bring features you would not even imagine. Version 2.7 of wordpress, brought to the world in december 2008, brought the famous Batch and inline editing, also known as BULK EDITING. Our main interest of bulk editing in wordpress for information management is the bulk editing of tags and categories. Codex mentions fields that can be bulk edited.

Bulk Edit allows the fields, Author, Comments Allowed, Status, Pings Allowed, and Sticky, to be changed for all the selected Posts

Limitations : wordpress codex highlights the fact that Categories and Tags can be ADDED in bulk to a set of Posts, but it is not possible to CHANGE, or DELETE, a Category, or Tag, for those Posts.

the delete category feature is an important issue, as moving products, posts, or other elements does involve adding categories but obviously you'd need to remove categories from posts : this was the subject of a discussion topic on wordpress forum where some piece of code was posted : read Remove Categories with bulk edit to find this piece of code that could be transformed into a plugin or simply added to your theme.

Woocommerce extra bulk edit

woocommerce plugin is a perfect exemple of the extensibility of the bulk editing feature : price information (% increase or decrease), sale information,status, weight and stock information can be bulk edited. developers will find interesting coding information for adding extra fields to the bulk editing feature in woocommerce codebase.

worpress-woocommerce-bulk-edit

 

 

Other extensions and plugins

for coders

for non coders

Information management with wordpress : POSTS

WORDPRESS INFORMATION MANAGEMENT -

PART 1 : POSTS

Basic information structure   in wordpress

All information in wordpress is stored as “post”. Each post shares specific information :

  • id : unique numeric (integer) identifier
  • creation and modification date
  • author
  • title
  • status (publish / draft / private)
  • post name : unique literal identifier
  • post type

POST TYPE

Default types of posts - Codex source http://codex.wordpress.org/Post_Types

  • wordpress articles
    • use for temporary dated  information / blog articles / news or press review
  • wordpress pages
    • use for presentation information, atemporal information, non related to specific time
  • wordpress attachment : images, pdf
  • wordpress menu entry
  • worpdress post revision

Custom post types

  • wordpress custom post type allow creation via code or plugins of specific information blocks : imagine any type of data store, it can be done by custom post types : products, movie database, book database, glossary...

CLASSIFICATION

all posts can be grouped, or classified, via taxonomies : categories or tags by default, custom taxonomies by extensioninformation-management-wp-book1

Delete taxonomy terms of a specific level or superior

I had produced a code that automatically creates taxonomy terms when visitors visit my web site : i found out that thousands of terms had been created , cloaking my database. only solution was to use the following code to automatically delete terms of level >1

 

set_time_limit(0);
 error_reporting(E_ERROR | E_WARNING | E_PARSE);

  function myErrorHandler($errno, $errstr, $errfile, $errline) {
    echo "<br>error" . $errstr . $errfile;
    return true;
  }
if (!strstr($_SERVER["SERVER_NAME"],"cadiou")) exit();
  //$old_error_handler = set_error_handler("myErrorHandler");
require( './wp-load.php' ); 

$tax_name = 'gamme';
$terms = get_terms( $tax_name );
function sort_terms_hierarchicaly(Array &$cats, Array &$into, $parentId = 0, $level=0)
{
    foreach ($cats as $i => $cat) {
        if ($cat->parent == $parentId) {
            $into[$cat->term_id] = $cat;
			echo"<br> $level ".str_repeat(" - " ,$level) . $cat->term_id . " : " .  $cat->slug;
			if ($level>1) wp_delete_term($cat->term_id, "gamme");
            unset($cats[$i]);
        }
    }

    foreach ($into as $topCat) {
        $topCat->children = array();
        sort_terms_hierarchicaly($cats, $topCat->children, $topCat->term_id, $level++);
    }
}$categories = get_terms('gamme', array('hide_empty' => false));
$categoryHierarchy = array();
sort_terms_hierarchicaly($categories, $categoryHierarchy);

 

woocommerce order product list

The latest version of woocommerce adds a feature to the order list  :  the Purchased column describes items purchased for that order : the number of items is displayed and a click on the line displays all order products.Interesting behaviour when there are many products per order : if you have one or two product per average order, it might be better to display everything in the column, to get a whole view of various recent orders , like a sales report:

woocommerce-order-sales-reportthe code is very simple, use the manage_shop_order_posts_custom_column action to add some text to the purchased column :

 

add_action( 'manage_shop_order_posts_custom_column' , 'po20140324_addColumns_column', 10, 2 );
function po20140324_addColumns_column( $column ) {
 global $post, $woocommerce, $the_order;

    switch ( $column ) {

        case 'order_items' :
            $terms = $the_order->get_items();

	      if ( is_array( $terms ) ) {
             	foreach($terms as $term)
		{
		echo '<br />' . $term['item_meta']['_qty'][0] .' x ' . $term['name'] .'';
		}
              } else {
              	_e( 'No product to display ? ', 'woocommerce' );
		}
            break;

    }
}

 

managing multiple wordpress installations

In a previous article, we took some time to  describe our own hack to provide multiple wordpress installation on a single web host, with multiple databases instead of multiple prefixes.

In this article we describe how to manage multiple wordpress install

http://infinitewp.com/ : a client/ server installation that requires a webhost for the management software and a plugin on each wordpress installation you want to manage. This plugin is free and comes with a lot of features that simplify multiple wordpress website management :
Additional plugin (50$) allows cloning / duplication of a wordpress site

 

https://managewp.com is a subscription based wordpress management tool

twenty fourteen wordpress theme : remove sidebar

The new twenty fourteen theme that comes with wordpress default installation is a very good responsive theme, than easily be customized to render a CMS website with pages only. But if you want to remove the sidebar you have to manipulate a few files

 

  • sidebar.php : add "return" at the beginning of the file, after the opening php code, and after the comments
  • style.css : commentline 3914 that adds a left margin the content div when displayed on big screens, and line 3565

 

Woocommerce : how to choose your theme

There are thousand of free and premium themes available for woo commerce. Before choosing one, make sure you have checked a few important things

  • most professional wordpress / woocommerce themes are responsive : they can display your website in mobile phones. But you do need to check the websites on all formats including IPADS, Iphones, and Android. Prepare a list of all resolutions devices can have, including windows powered phones that can turn out very tricky if someone uses internet explorer (see below)
  • after you have checked the theme on various sizes, check it on various browsers : a wordpress theme that works on Internet explorer 8 is the sign of very good HTML standard compliance, so you need to be able to check on various versions of Internet Explorer, which means many computers available !
  • Have a look at the stylesheet : it should be not too big and include not too many extra useless formatting.  But a good woo commerce theme comes with its own woo commerce stylesheet, and removes the original woo commerce style sheet

Woocommerce product admin category persistence

Can be a long task to edit products within woocommerce.

the code below can be integrated in a plugin or within your theme : it will store the last selected product  category filter in the product admin and restore it at next display of product page

add_filter( 'init', 'wpse34956_persistent_posts_list_mode' ,1);
function wpse34956_persistent_posts_list_mode() {

// take into account post types that support excerpts
$post_type = isset( $_GET['post_type'] ) ? $_GET['post_type'] : '';

if (is_admin() && $post_type=="product")
{
if ( isset( $_GET['product_cat'] ) ) {
// save the list mode
update_user_meta( get_current_user_id(), 'product_cat' . $post_type, $_GET['product_cat'] );
return;
}

// retrieve the list mode
if ( $product_cat = get_user_meta( get_current_user_id(), 'product_cat' . $post_type, true ) )
{ $_GET['product_cat'] = $product_cat;}

}
}

WordPress drag and drop content management : plugin comparison

I have tested and used Visual Composer for many sites : very efficient drag and drop responsive content manager that integrates within the wordpress page editing screen. Only drawback of this kind of system is that it forces you to use fixed column size : you have the choice of divisions of page, like most responsive grid systems, so you have to accomodate the 1/2, 1/3, 1/4 parts of your page.

On the other hand most of the plugins I've tested  only works from the backend :  first solution below  work from the front end and it's better to visually understand what's going on depending on your layout width. But let's look deeper.

  • WordPress Front end builder incorporates front end editing and mobile / tablet screen display picker which looks like it works with media queries.The row management interface is very intuitive and allows for various content width configuration. wordpress-layout-rows

 

wordpress-drag-drop-layout

  • MiniMax Layout Builder  has very slick backend integration, same style as visual composer, with column layout picker for each row :
    • unlike visual composer, Minimax sits within the tinymce framework and as such it is good because it does not surcharge your screen but has the drawback of limiting the editing height to the initial height of the editor. You can have multiple elements in a single column, as illustrated below. Another drawback I found in the demo is the image uploader, old type (pre wordpress 3.5) - Developers can get more technical info on how to  integrate recent wordpress media manager  on shibashake.com
    • Like visual composer, minimax has some sort of templating recording but not as good because it is implemented in the form of locally stored text files

 

wordpress-drag-drop-layout-2

wordpress drag and drop form makers : gravity forms vs ninja forms

I've been using gravity forms for years and have been able to implement many user driven web sites. Now a free competitor to gravity forms has arrived, it's pretty mature and extremely popular (more than 100K downloads on wordpress.com  : enter NINJA FORMS !

  • Gravity forms comes at the price of 39$ per site. Ninja forms is ...free in its full version but a lot of features come as priceable plugins.
  • Ninja forms is very similar to gravity forms:  it features a drag and drop interface for building form fields. But I prefer gravity forms interface, which  is more clear, easier to understand and is more effective at displaying the form parameters.
  • In my case I want to perform user front end post submission : in gravity forms  that's native, with ninja forms you'll have to purchase the front end posting extension at the cost of 39$. Advantage goes to gravity forms who has file upload feature in its native form, whereas ninja forms will cost you another 29$ to get file upload extension
    Note : another form plugin does front end user submission and response editing, formidable pro, at the price of 47$ .
  • entry management is very good in both gravity forms and ninja forms. Gravity forms has a very good interface to let you choose which columns are displayed. Shame the entry date is not selected by default, but overall this feature is better implemented in gravity forms too

Conclusion : I know ninja form is free but extended features will go cheaper with gravity forms

Magento vs woocommerce vs prestashop comparison

There was a time when I was working on multiple solutions, thinking positively that a lot of time spent on each of them would give me a great insight of  all possibilities that a mix of solutions could offer. And year after year, solutions evolve and some get better and easier to maintain and develop, and some not. I have been using prestashop, magento and wordpress / woocommerce for years and here is a quick review of all these solutions, from the point of view of the developer but also of the website owner, and of course of the end user. Curiously you will find that all these point of view lead to the same conclusion : wordpress woocommerce for all !

Magento / WOOcommerce / Prestashop comparison

The developer point of view

Prestashop is very simple to setup and offers a very quick configuration process, especially when you are working in France, because it is a french product. I quickly found out that developing themes, extensions and modules for prestashop is a bit strange and dodgy, and forces you to learn and maintain some strange knowledge of an extra language from the old twentieth century : smarty templating language. Just as if learning CSS, HTML, Javascript, PHP and Mysql was not enough. In my opinion, the simple fact that prestashop is using smarty shows that its developers have forgotten the original purpose of PHP. And to finish on prestashop, I have a few very good shops running on it for years, without any problem and doing good sales, but I have one problem :  I am too afraid to perform a software upgrade. don't ask me why but that's a looser solution for me.

Magento is incredibly smart. When I mean smart I mean you'll need a few months before you can even understand how to access data from the database. you need serious ZEND specific OOP knowledge and a lot of time and expertise to code Magento. And that's expensive. Yes a developer with magento expertise can earn a lot, but who pays. check that below in the website owner section.

in comparison with the truck and the pickup above,  Wordpress at first glance looks like a horse carriage. In its default distribution package, wordpress is just a blogging platform. Well that's what is was a few years ago when I started using it just for blogging. And I was developing my own e commerce package and trying various CMS platforms like Modx or silverstripe. And suddenly  Wordpress evolved to a full featured CMS platform that I integrated with MAgento and prestashop websites for serious content management those two cannot afford. And suddenly e commerce plugins came to the market. I've tried a few and my preferred is woocommerce. As a developper I just love using the same platform for content management, shopping cart, order management, online payment. And I've never felt limited by the almost perfect customisation development that wordpress integrates : themes and plugins   just illustrate the perfect division of tasks for a web site developer. If you want to do OOP like Magento, you can. But you don't have too. If you want to use Smarty like prestashop you can, but there's really no point. And if you want to develop once and reuse code in various website projects, well you can mix all aspects of a website with wordpress. That's just magic I think, at the cost of a rigourous selection of plugins that will take you more than an hour to select and install.

The shop owner point of view

It all depends which kind of shop owner you are. If you can afford one or two full time senior developers, then Magento is all right for you. If not, you will find that unless you have a good friend developer,  magento is expensive. Too expensive for my customers. But Yes it comes with a lot of features, but not more than prestashop and woocommerce. At some early stage, Magento was a leader in bulk product editing, very useful when playing with categories and products. But it's now 4 years that WordPress does that job quite well (see our article on information management with wordpress)

Prestashop is not expensive : in fact it runs very well on shared hosting. It also comes all featured, and is much easier to configure and setup than magento, but it has less customisation, especially graphic, possibilities.

WordPress is in my opinion the best compromise between cost, usability and security. as a website owner, you will, just like your developer, love the unique administration platform with drag and drop image uploading, drag and drop content management (via plugins), easy maintenance and upgrades meaning reduced administration costs. Of course this comes at a price : default worpdress installation is not e commerce ready, you need a good professional partner to set you up. After this initial step is done (finding the right web site expert), you have the guarantee of a stable platform for all your web development need : content management , advertising, product management, customer management, newsletter, etc...

The end user point of view

Yes you are building e commerce presence : the end user is the first and last contributor to your project, because it brings the finance that will ensure durability of your online project. Well I might repeat myself now but after a few years of ecommerce development I always felt very frustrated but the lack of Content Management offered by native ecommerce platforms like magento and prestashop. Now that wordpress has its own ecommerce capabilities, it is a very sensible choice to move all your ecommerce data to a single platform. And as a e commerce buyer, I like a website with a lot of information not only on products but also on the company that distributes them. WordPress offers so many layout capabilities that your online customer with feel in good company before he goes to purchase your   product.

Conclusion : woocommerce only ?

did I miss something ? are there really some unique features on magento and prestashop that woocommerce cannot perform ?

 

Easy wp guide PDF for your wordpress customers

we do WordPress developement for developers but also for our final customer, the web site owner. And even with a platform easy to use like WordPress, it can be good to provide basic instructions and written notes for content management. Usually I write specific tutorials for my customers but I have to admit that the Easy WP GUIDE is a good example of what I could give to all my customers. It is written and distributed in pdf version for free by Anthony Hortin, web developer from Melbourne Australia

Using Amazon S3 cloud storage with WordPress

I was quickly hooked to Amazon S3 storage via the free account creation offer on Amazon Cloud's website. AWS offers 5 free gigabytes of cloud storage, which is interesting if, as in my case, you need to host big files permanently, that could hardly be stored via standard wordpress installation. Of course you could increase upload limit but I am afraid this could be  security issue.

It turns out that the AMAZON WEB SERVICES is a cluster of different hosted applications, among which S3 is the simplest to use : it is no more than a file storage utility with a web based browser, web access to files, and various protection features.

If you want to host your WORDPRESS Media files on AMAZON S3, you need to install a plugin. I tried the WP READ ONLY plugin that is very easy to configure. All you need is to have configured  your S3 account :

  • choose a bucket   (some kind of folder for amazon S3),
  •  your amazon credentials : developer key and SECRET KEY

Other plugin I tried is wp2cloud but this one is more complex to configure as it requires linux skills to install Clouse,  Cloud Storage Engine for MySQL