it-swarm.cn

如何在woocommerce产品类型上添加新产品类型?

我想在woocommerce插件中添加一个新的自定义“产品类型”:

enter image description here

试图复制一个当前存在的产品类型文件 (woocommerce模板结构) 作为一个新文件(文件名和内部注释名称)但没有工作!

enter image description here

7
Amino

添加到购物车模板只是您需要做的许多事情中的一个。每种产品类型在/includes/文件夹中都有自己的类。每个扩展WC_Product类。

要将项目添加到列表中,您已经进行了屏幕加载(在管理端而不是前端,与add-to-cart.php模板不同,您需要过滤product_type_selector

add_filter( 'product_type_selector', 'wpa_120215_add_product_type' );
function wpa_120215_add_product_type( $types ){
    $types[ 'your_type' ] = __( 'Your Product Type' );
    return $types;
}

那么你需要声明你的产品类。标准命名系统是WC_Product_Type_Class所以在这个例子中它将是:

class WC_Product_Your_Type extends WC_Product{
    /**
     * __construct function.
     *
     * @access public
     * @param mixed $product
     */
    public function __construct( $product ) {
        $this->product_type = 'your_type'; // Deprecated as of WC3.0 see get_type() method
        parent::__construct( $product );
    }

     /**
     * Get internal type.
     * Needed for WooCommerce 3.0 Compatibility
     * @return string
     */
    public function get_type() {
        return 'your_product';
    }
}

你问的是一个非常复杂的问题,我无法提供更完整的答案。希望这会让你走上正确的道路。我强烈建议您阅读WooCommerce中的代码。评论非常好,您可以看到他们如何处理不同的产品类型。

编辑 添加了WC3.0与产品类型类的兼容性。

18
helgatheviking