'WordPress plugin extend WC_product with namespace class not found

I am trying to add new woocommerce custom product type from my plugin.

I just have a simple construct in the class that extend WC_Product

namespace giftbox\models\woocommerce;

class register_product_type  extends \WC_Product
{
    public function __construct()
    {
        $this->product_type = 'gift_box';
        parent::__construct( $product );
    }
}

then I am call it by the follow action

add_action( 'init',  array(new register_product_type()) );

this is the error: Uncaught Error: Class 'WC_Product' not found

I am stuck on it because I try different way for solving and no one work for me.

Another example is when I tried to call it by function (has same error)

add_action( 'init',  'register_gift_box_types' );
function register_gift_box_types () {
    class register_product_types extends \WC_Product
    {
        public function __construct( $product ) {
            $this->product_type = 'gift_box';
            parent::__construct( $product );
        }
    }
}

I also tried to include abstract-wc-product.php but return a completely different error "Use of undefined constant WC_ABSPATH."

I know must to be a solution but I am completely stack from a couple of day

I am using namespace and autoloader is possible to find in the follow link (https://gist.github.com/sankarsuda/7818600)

Any idea how to solve this problem? Thanks in advance.



Solution 1:[1]

That is because you not import the class

use WC_Product;

Sources

This article follows the attribution requirements of Stack Overflow and is licensed under CC BY-SA 3.0.

Source: Stack Overflow

Solution Source
Solution 1 Pablo Mendez