AngularJS + Lavarel opensource CRM : review of invoiceninja

Moving from the world of static html generation from dynamic PHP code  to Angular Js powered system is a challenging opportunity for us freelancers. What better option to start with lavarel and angularjs than to try a full featured opensource Customer Relation application ? I was getting bored of the twenty century looking DOLIBARR and InvoiceNinja is a very neat looking bootstrap based application that can be used online or self hosted. The big advantage of this solution is that the installation process is quite straight forward if you know how to create your own database within a classic LAMP system. Invoice Ninja is really good for task management, invoicing and product management, and deserves the few minutes of trial you'll spend on it .

Optimizing images for WordPress

There are two main methods for optimizing images when working on wordpress.

First method is to work on your computer before uploading : batch processing is easy if you take the time to find the right software. Windows user will like  Image Resizer or light image resizer while Mac users will find Image Optim or Iresize.

SEcond method is to use a software as a service provider associated with a wordpress plugin, that will resize images on the fly. services like that cost a few dollar per month and offer the advantage of not working on your computer, saves one step, time saver. disavantage is time loading of the image which can vary depending on you rinternet connection. Such services are  zara4, cheetaho, ...

Elementor hover tooltip for carousel

Visual composer addict can quit : free wordpress plugin Elementor is out and keeps growing with basic and very efficient widgets, like the carousel that visually beats VC's native. One drawback I encoutered though was the lack of explicit tooltip on image hover that we love to interact when viewing multiple images in a carousel :


Assembling pieces of code from all over the web, it took me quite a while to get that so I thought I might share. This piece of code is good for experienced wordpress theme developer who knows how to integrate style and javascript, any jquery powered script will accept that one, make sure the carousel you want tooltips has the hovertooltip class because you might not want to apply the effect to all carousels, big full screen might not need that.

javscript hack : creating title attribute from alt, and creating tooltip from title

$(document).ready( function(){
	$('.hovertooltip img').each(  function() {   $(this).attr("title",$(this).attr('alt') ); }); //breizhwave
		$('.hovertooltip img').hover(function(){
			// Hover over code
			var title = $(this).attr('title');
			$(this).data('tipText', title).removeAttr('title');
			$('<p class="tooltip"></p>')
				.show() ;
		}, function() {
			// Hover out code
			$(this).attr('title', $(this).data('tipText'));
		}).mousemove(function(e) {
			var mousex = e.pageX -250; //Get X coordinates
			var mousey = e.pageY + 10; //Get Y coordinates
				.css({ top: mousey, left: mousex })

styling the tooltip : css

.elementor-image-carousel-wrapper img {cursor:pointer}
.tooltip {
    padding:0px 10px 10px 10px;




Woocommerce : reasons for choosing additional field plugin

Developping additionnal fields for woocommerce products can be done using custom fields, but this method is not user friendly for the ecommerce administrator. There are many plugins for wordpress that enhance this feature, and we will start comparing the two best known plugins : Advanced Custom Fields (ACF) and (Custom Field Suite) CFS. These two plugins are not specific to woocommerce : they are designed to work for any  custom post type, including woocommerce products.


popularity is the first relevant  indicator for the choice of a wordpress plugin, for many reasons : when a plugin is used by a consistent community, you can safely rely on it for the present and medium term future : you have less chance that it will be abandoned, amount of users  gives a good idea of how the plugin will be maintained in the future. Security is a  big issue on wordpress and active plugins are more subject to attacks, and as such more subject to receiving security patches in time.

As of today, the biggest difference between ACF and CFS is their popularity : ACR has been downloaded on more than 1 million active installs, while CFS ranks 30000, which is not a bad indicator, but largely below ACF, the community preferred custom field plugin.


Basically, all you can do on CFS can be done with ACF, with one big exception. the CFS plgin page itself mentions : "This plugin is a free, lightweight alternative to Advanced Custom Fields."

both plugins have basic field types : text input, date input, wysiwyg input, relationship, file  upload. While ACF offers more diversity on the selection of input types, CFS has a big advantage on its free version with the repeater section that is only available in the premium (paid version) of ACF.

Admin Columns

the ability to display products in a single list is a basic operation that any wordpress data type provides, and products in woocommerce obey to that rule. The possibility to include custom fields in the list can be implemented via specific code (ACF / CFS). For those who do not want to code, or if you want an easy to use interface, Admin columns (premium version) do the job and integrate very well with both ACF and CFS, with the problematic fact that you would have to renew your license every year if you want updates.

Method for choosing

First thing you should do is plan : make a list of fields you will need for your products. If you do not plan to make purchases soon, and if you require the repeater field, then go for CFS : its simple API will let you work with custom fields very quickly. On the other hand if you plan more advanced features like color chooser, google map location chooser, then go for ACF.

Other extensions to watch