我尝试获取分组产品的类型,但是woocommerce返回空白或总是"简单"如果我使用WC_Product_Factory。
当我使用时:
$the_product = new WC_Product(2886);
echo $the_product->product_type;
返回空。
当我使用WC_Product_Factory时:
$the_product = new WC_Product(2886);
$the_product_factory = new WC_Product_Factory();
$the_product = $the_product_factory->get_product($the_product);
echo $the_product->product_type;
总是返回"简单"
我尝试使用:
$the_product = wc_get_product(2886);
echo $the_product->product_type;
但是这会返回一个错误"在...中的非对象上调用成员函数get_product();"
我的代码在:
之内add_action( 'plugins_loaded', function(){
$the_product = new WC_Product(2886);
echo $the_product->product_type;
$the_product = new WC_Product(2886);
$the_product_factory = new WC_Product_Factory();
$the_product = $the_product_factory->get_product($the_product);
echo $the_product->product_type;
$the_product = wc_get_product(2886);
echo $the_product->product_type;
die();
});
好的,谢谢你的帮助!
答案 0 :(得分:1)
我找到了解决方案或我的错误,将plugins_loaded更改为init:
add_action( 'init', function(){
$the_product = new WC_Product(2886);
echo $the_product->product_type;
$the_product = new WC_Product(2886);
$the_product_factory = new WC_Product_Factory();
$the_product = $the_product_factory->get_product($the_product);
echo $the_product->product_type;
$the_product = wc_get_product(2886);
echo $the_product->product_type;
die();
});
这项工作!
快乐的编码! :)
答案 1 :(得分:1)
您可以使用此代码获取自定义产品类型:
$terms = get_the_terms($product_id, 'product_type');
$product_type = !empty($terms) ? sanitize_title(current($terms)->name) : 'simple';