Woocommerce 自定义 product_type 似乎没有正确保存

MrF*_*ack 3 wordpress woocommerce

我正在为 woocommerce 创建自己的插件,并意识到在创建或更新产品时不会保存我的自定义 product_type。我确定问题出在我的插件上,但我不知道在哪里查看。添加 product_type 的函数(根据帖子)

function extend_woocommerce()
{
    Class WC_Product_Connected_To_General_Product extends WC_Product_Simple
    {
        public function __construct($product)
        {
            $this->product_type = 'connected_to_general_product';
            $this->manage_stock = 'yes';
            parent::__construct($product);
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

在插件中调用的类

Class general_stock {

/**
 * general_stock constructor.
 */
function __construct()
{
    if($this->check_if_woocommerce_is_active()){
     add_action('init',[$this, 'add_woocommerce_product_type'])
     add_filter('product_type_selector', [$this,'add_woocommerce_product_type_general_connected_product']);

...
}
/**
 * add_woocommerce_product_type
 */
function add_woocommerce_product_type(){
    extend_woocommerce();
}
/**
 * add_woocommerce_product_type_general_connected_product
 * @param $types
 * @return mixed
 */
function add_woocommerce_product_type_general_connected_product($types){
    $types[$this->product_type_name] = __('Connected to general Product','ln-general-stock');
    return $types;
}
Run Code Online (Sandbox Code Playgroud)

然而,到目前为止“一切”都有效:我可以在后端选择新产品类型并保存它。(当我编辑产品时选择它)。

但是当我在前端查询产品并转储它时,我认为应该是product_type等于的值还是这个信息存储在另一个值中?simpleconnected_to_general_product

预先感谢您的帮助!

小智 5

请记住,产品类名称的扩展必须以 WP_Product_ 开头,后跟产品类型。例如。:

class WC_Product_Moto extends WC_Product {
    protected $product_type = 'moto';

    public function get_type(){
        return 'moto';
    }
}
Run Code Online (Sandbox Code Playgroud)