Home Online Business Making a Customized Plugin For Your WooCommerce Store

Making a Customized Plugin For Your WooCommerce Store

Making a Customized Plugin For Your WooCommerce Store


WooCommerce suggestions and methods

I plan to place collectively a mini-series masking the fundamentals of correctly planning, engineering, launching and sustaining a WooCommerce store. Sooner or later as I write further articles I’ll hyperlink them collectively, for now, this primary article will cowl the fundamentals of making a customized plugin to your WooCommerce website, and give you a plugin skeleton to obtain and use as a place to begin. This text assumes a familiarity with fundamental WordPress plugin improvement, and expands upon the WooCommerce doc article on making a plugin. So, let’s get going!

Why a Customized Plugin?

WooCommerce is a superb ecommerce answer, however creating a web site or store is a really private endeavor, and you’re prone to need to change some performance or habits of the inventory WooCommerce plugin. Our pure tendency is to look for easy options, and subsequently we could be drawn to enhancing the core information. Resist this base urge! Repeat after me: “I cannot modify the core information.” Thankfully, although not as versatile as Magento, WooCommerce gives numerous motion hooksfilters, template information, and “template capabilities” to permit for customizations. Writing a plugin permits us to cleanly separate and maintain observe of our customized code, and renders WooCommerce upgrades a comparatively painless course of.

What’s an motion?

An motion in WordPress permits you to execute code triggered at a particular level within the web page response course of, for example upon displaying a remark.

What’s a filter?

Related conceptually to an motion, filters can help you modify information at particular factors within the WordPress web page response course of, for example eradicating profanity from a remark.

What’s a template?

A template is a file that comprises a mixture of HTML and PHP code and renders a web page, part of a web page, or an e mail. Templates could be overridden by making a file of the identical identify in a particular location inside your theme or youngster theme.

What’s a template operate?

A “template operate” is a operate that begins with if ( ! function_exists( 'function_name' ) {… In case your plugin defines this operate first it is going to be referred to as instead of the default operate and can help you override its habits with your individual.

Writing a customized plugin largely permits you to alter the performance and habits of WooCommerce; to customise the feel and appear the popular methodology is to create a customized youngster theme. I gained’t cowl that course of on this article sequence as it’s already described nicely within the WordPress codex and there isn’t a lot WooCommerce-specific so as to add. The exception is probably the best way that you simply override WooCommerce template information, which I wrote about in one other article.

The Plugin Skeleton

I desire to call my WooCommerce customized plugin woocommerce-company-name, so if your organization is Acme, inc, you would possibly use woocommerce-acme. Though not strictly needed with a self-authored plugin, it’s good apply to test if WooCommerce is energetic, and likewise carry out a test to make sure a category with the identical identify as your plugin doesn’t exist already:

if ( in_array( 'woocommerce/woocommerce.php', apply_filters( 'active_plugins', get_option( 'active_plugins' ) ) ) ) {
  if ( ! class_exists( 'WC_Acme' ) ) {

Subsequent, it’s once more good apply although not needed, to load any translated strings for the plugin. Doing so permits you to use the varied translate capabilities resembling __( 'Some textual content', 'wc_acme' ) and simply present translation information at some future date.

    load_plugin_textdomain( 'wc_acme', false, dirname( plugin_basename( __FILE__ ) ) . '/' );

I desire to outline the majority of my plugin capabilities inside a category, which successfully scopes the capabilities you write and retains you from having to fret about operate identify clashes with all the opposite WordPress core and plugin capabilities. There are just a few generally used lifecycle motion hooks which might be included in our skeleton plugin class. Lastly, the plugin class might be instantiated, assuming that WooCommerce is energetic, and the category identify isn’t already taken.

    class WC_Acme {

      public operate __construct() {
        // referred to as simply earlier than the woocommerce template capabilities are included
        add_action( 'init', array( $this, 'include_template_functions' ), 20 );

        // referred to as solely after woocommerce has completed loading
        add_action( 'woocommerce_init', array( $this, 'woocommerce_loaded' ) );

        // referred to as in any case plugins have loaded
        add_action( 'plugins_loaded', array( $this, 'plugins_loaded' ) );

        // signifies we're working the admin
        if ( is_admin() ) {
          // ...

        // signifies we're being served over ssl
        if ( is_ssl() ) {
          // ...

        // handle anything that must be finished instantly upon plugin instantiation, right here within the constructor

       * Override any of the template capabilities from woocommerce/woocommerce-template.php
       * with our personal template capabilities file
      public operate include_template_functions() {
        embody( 'woocommerce-template.php' );

       * Care for something that wants woocommerce to be loaded.
       * For example, should you want entry to the $woocommerce international
      public operate woocommerce_loaded() {
        // ...

       * Care for something that wants all plugins to be loaded
      public operate plugins_loaded() {
        // ...

    // lastly instantiate our plugin class and add it to the set of globals

    $GLOBALS['wc_acme'] = new WC_Acme();

Wrapping Up

Should you had been already acquainted with WordPress/WooCommerce improvement there in all probability wasn’t a lot new for you right here, however hopefully should you’re new to the sport then the above explanations and methods will show useful in getting you began. Both approach, one of the best ways to study the multitude of WooCommerce actions and filters obtainable for personalisation is to browse the supply code. Additionally do not forget that along with hooking into actions/filters and including performance, you’ll be able to simply as simply unhook present actions/filters to take away plugin habits, or change it wholesale.

The trick is to carry out the remove_action()/remove_filter() calls after the goal motion is hooked to (for example inside our woocommerce_loaded() operate above), and to at all times keep in mind to supply all of the arguments to the take away capabilities that had been handed within the add capabilities, elective parameters and all.



Please enter your comment!
Please enter your name here