<?php

if (!defined('ABSPATH')) {
    exit; // Exit if accessed directly
}

if (false === $template_term_exists = get_term_by('slug', 'wiaastemplate', 'product_type')) {
    wp_insert_term('wiaastemplate', 'product_type');
}


function construct_template_products_class() {

    class WC_Product_Template extends WC_Product {


        public function __construct($product) {
            parent::__construct($product);
        }

        /**
         * Get internal type.
         *
         * @return string
         */
        public function get_type() {
            return 'wiaastemplate';
        }


    }
}


add_action('init', 'construct_template_products_class');

function woocommerce_product_class($classname, $product_type) {

    if ($product_type == 'wiaastemplate') {
        $classname = 'WC_Product_Template';
    }

    return $classname;
}

add_filter('woocommerce_product_class', 'woocommerce_product_class', 10, 2);
