wordpress中的woocommerce返回总是简单的产品类型

时间:2015-02-05 23:06:04

标签: wordpress-plugin woocommerce

我尝试获取分组产品的类型,但是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();
});

好的,谢谢你的帮助!

2 个答案:

答案 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();
});

这项工作!

这个网址https://wordpress.stackexchange.com/questions/120055/woocommerce-create-new-product-and-add-to-cart-on-form-submit给了我这个想法。

快乐的编码! :)

答案 1 :(得分:1)

您可以使用此代码获取自定义产品类型:

$terms = get_the_terms($product_id, 'product_type');
$product_type = !empty($terms) ? sanitize_title(current($terms)->name) : 'simple';