如何使用 php 代码将 woocommerce 产品添加到自定义 Product_type?

How to add a woocommerce product to the custom Product_type using php code?

WooCommerce 产品很容易创建,但该产品正在添加到 product_type:simple。我想将产品添加到 "custom product_type:test"

static function createTicket($postId, $productDetails) {
$id = wp_insert_post(array(
    'post_type' => 'product',
    'post_title' => $productDetails['title'],
    'post_content' => $productDetails['description'],
    'post_status' => get_post_status($postId),
        'max_value' => 1,
));
update_post_meta($id, '_price', $productDetails['price']);
update_post_meta($id, '_regular_price', $productDetails['price']);
update_post_meta($id, '_wpws_testID', $postId);
update_post_meta($id, '_sold_individually', "yes");
wp_set_object_terms( $id, 'test', 'product_type' );
return $id;
}

我已经添加了

wp_set_object_terms( $id, 'test', 'product_type' );

但没有任何效果

已使用 product_type_selector 挂钩

// add a product type
add_filter( 'product_type_selector', 'add_custom_product_type' );
function add_custom_product_type( $types ){
    $types[ 'test_custom_product_type' ] = __( 'test Product' );
    return $types;
}

Edit

请查看下面的链接,它可以帮助您了解更多

Edit

以上代码适用于旧版 WooCommerce

使用此代码保存具有自定义产品类型的产品。它与 WooCommerce 3.* 一起工作 检查此以获取更多信息 https://gist.github.com/stirtingale/753ac6ddb076bd551c3261007c9c63a5

function register_simple_rental_product_type() {
    class WC_Product_Simple_Rental extends WC_Product {

        public function __construct( $product ) {
            $this->product_type = 'simple_rental';
            parent::__construct( $product );
        }
    }
}
add_action( 'init', 'register_simple_rental_product_type' );
function add_simple_rental_product( $types ){
    // Key should be exactly the same as in the class
    $types[ 'simple_rental' ] = __( 'Simple Rental' );
    return $types;
}
add_filter( 'product_type_selector', 'add_simple_rental_product' );