My Plugins

This quotation is based on the a attribute addtoquote with a value of yes or no.
If the item has this attribute with the value of yes, a Add to Quote button to replace the Add to Cart Button.
There is a quote page where client can adjust / remove items and send the quotation request.
They will receive a confirmation email that a request has been sent and you will receive an email with the clients details and items that needs to be quote on along with a csv file.

Quotations

HEADER

Dynamic Product Brand Menu

Requirements

WooCommerce, Code Snippets

Compatibility

All themes & theme builders

Installation

Import Code Snippet

Create a Menu item "Brands" with a link URL "#"

You can customise how menu Brands should appear per Parent Menu & how many characters the Parent group should be

example 1 would be A-C, 2 would be AA-CA, 20 characters should be enough to cover from brand name to brand name

Price on Request

Device Compatibility

Dynamic Product Category Menu

Where it all started Credit goes to MistaPrime on Stackoverflow (See original link below) https://stackoverflow.com/questions/58270716/how-to-make-a-menu-with-product-category-dynamically-in-wordpress My plugin evolved to something much more robust and easier to change within the Wordpress Backend, instead of using the functions.php. However I decided to have the source code available of my original changes to anyone wanting to use it. This can be added to your functions.php file of your theme / child theme file. Be sure to create a "Shop" menu link in your Wordpress Menu and to check the Menu ID. Replace 8545 with your menu ID.

Requirements

WooCommerce

Compatibility

All themes & theme builders

This plugin is part of the Smart-IT Master Suite

Original Source Code
function traverse_tree($parent, $cat, $counter, $items) {
$item_count = $cat->count;
$menu_parent = $parent->ID;
$terms = get_terms( array('taxonomy' => 'product_cat', 'parent' => $cat -> term_taxonomy_id ) );
foreach ($terms as $term) {
$item_count += $term->count;
$parent_item = _custom_nav_menu_item( $term->name, get_term_link($term), $counter, $menu_parent );
$terms_child = get_terms( array('taxonomy' => 'product_cat', 'parent' => $term->term_id ) );
$parent_added = false;
if(!empty($terms_child))
{
list($child_item_count, $child_counter, $child_items) = traverse_tree($parent_item, $term, $counter+1, []);
$item_count += $child_item_count;
if ($child_item_count > 0) {
if ($parent_added === false) {
$items[] = $parent_item;
$parent_added = true;
}
$counter = $child_counter;
$items = array_merge($items, $child_items);
}
}
if ($item_count > 0 && $parent_added === false) {
$items[] = $parent_item;
$counter++;
}

}
return [$item_count, $counter, $items];
}

function _custom_nav_menu_item( $title, $url, $order, $parent = 0 ){
$item = new stdClass();
$item->ID = 1000000 + $order + $parent;
$item->db_id = $item->ID;
$item->title = $title;
$item->url = $url;
$item->menu_order = $order;
$item->menu_item_parent = $parent;
$item->type = '';
$item->object = '';
$item->object_id = '';
$item->classes = array();
$item->target = '';
$item->attr_title = '';
$item->description = '';
$item->xfn = '';
$item->status = '';
return $item;
}
add_filter("wp_get_nav_menu_items", function ($items, $menu, $args) {
if( $menu->term_id != 8545 ) return $items; // Where 8545 is Menu ID, so the code won't affect other menus.

// don't add child categories in administration of menus
if (is_admin()) {
return $items;
}

$args = array(
'taxonomy' => 'product_cat', // WooCommerce product categories taxonomy
'hide_empty' => false, // Show categories even if they have no products
'parent' => 0 // Get only top-level categories (parent ID is 0)
);

$top_level_categories = get_terms( $args );
usort( $top_level_categories, function( $a, $b ) {
return strcmp( $a->name, $b->name );
});

$shop_item = findObjectByName($items, 'shop');
//echo 'test' . print_r($shop_item) . '';

$counter=($items[sizeof($items)-1]->ID)+1;
foreach ($top_level_categories as $cat) {
$new_top_item = _custom_nav_menu_item( $cat->name, get_term_link($cat), $counter, $shop_item->ID );
// echo 'here'.$cat->name.'('.$cat->count.')';
list($item_count, $child_counter, $child_items) = traverse_tree($new_top_item, $cat, $counter+1, []);
if ($item_count > 0) {
$items[] = $new_top_item;
$counter = $child_counter;
$items += array_merge($items, $child_items);
}

}

return $items;
}, 10, 3);
Device Compatibility

Product Categories Auto Populate Menu with Hierarchy

Adding and maintaining Product Categories to your menu system is a tedious task as you need to add / remove individual Product Categories to your Menu. This plugin allows you to generate or remove the Product Categories with hierarchy in a few clicks.

Requirements

WooCommerce

Compatibility

All themes & theme builders

This plugin is part of the Smart-IT Master Suite

Device Compatibility

HOME PAGE

Product Brand Images Widgets

You will have options on the widget settings:

  • Image spacing in pixels
  • Arrow Color
  • Font Awesome Icons Size and Type
  • Number of Images
  • Images Width 150px
  • Enable Auto-Scroll
  • Scroll Speed (ms)
  • Number of Images to Auto-Scroll
  • Transition Delay in (ms) 

Requirements

WooCommerce

Compatibility

All themes & Theme Builders

Part of Smart-IT Master Collection

Device Compatibility

PRODUCT PAGES

Product Parts

This plugin has a backend interface in WordPress under the Products.
A user can create and delete a Make, Model and Type for the Parts to reference (Can also be deleted)
They can also Add a Entry (SKU [Input Box], Make [Drop Down], Model [Drop Down], Type [Drop Down] and Year [Input Box]
IDs are recorded automatically and Import / Export of CSV files are supported.
On the front end you will have a separate page where users can select the make, model, type, year of the item and it will show them compatible parts.
On the Product Single View Page you will also see all items compatible with the part.

Pages

Product Archive, Product Single (Compatible with Product Variations)

Requirements

WooCommerce, Oxygen Builder, Code Snippets

Compatibility

Oxygen Builder

Price on Request

Device Compatibility

Custom Stock Statuses

You can setup Custom Stock Statuses messages for In Stock, Out of Stock and Supplier has stock in Smart-IT.

By default this correctly to the product's backend, but most themes does not support this functionality in the front end.

That's where this plugin shines, displays your custom messages in the front end.

Pages

Product Archive, Product Single

Requirements

WooCommerce

Compatibility

All themes & theme builders

Price available on request

Device Compatibility

PRODUCT SINGLE

Product Accessories

Depending on what type of product you sell some products might have accessories associated with it.
An example would be a Cordless Drill has Product Accessories of Drill Bits.

A button will be displayed on the Product Single view Page of any specific Cordless Drills to the Drill Bits.

 

How do you link a product to its accessories?

You will link the Product Category of the Main Item(s) to the Target (Accessories) Product Category

example

The Product Category example Cordless Drills will be linked to another Product Category example Drill Bits.

On all the Drills (that are contained in the Product Category Drills)  the button will appear for Drill Bits

 

How do I setup Accessories?

On WooCommerce, go to Products and then Parts. Here you ware bale to setup the rules.

 

Requirements

WooCommerce

Compatibility

All themes & theme builders

This plugin is part of the Smart-IT Master Suite

Device Compatibility

Square meter calculator

If you are selling products for construction, tiling etc. and need the customer to be able to input the square meter of their project to determine how many units of the product they need to buy you need this plugin!

 

How do you tell the product how many square meters a unit can produce?

On your product attributes, you will create a attribute for "yield"

Add all the values here.

Then go to your products that need to have the calculator and assign the attribute and value.

 

What does the client see on the product?

The client will see a extra input box "Square meter"

They will input their square meter value and depending on the value of the yield attribute assigned to the item it will automatically change the value of the amount of units the client can add to cart.

All items without this attribute will render without the Square meter input box.

 

Requirements

WooCommerce

Compatibility

All themes & theme builders

Price available on request

Device Compatibility