问题描述

我想添加一个新的自定义”product type” 到 woocommerce 插件:

尝试将当前存在的产品类型文件 (woocommerce template structure)中的一个复制为新文件 (文件名和内部注释的名称),但不能工作!

最佳解决办法

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

要将列表中的项目添加到筛选 (在管理方面),而不是 front-end,与 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';
        parent::__construct( $product );
    }
}

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

参考文献

注:本文内容整合自 Google/Baidu/Bing 辅助翻译的英文资料结果。如果您对结果不满意,可以加入我们改善翻译效果:薇晓朵技术论坛。