我有一个数组,里面装满了我搜索的ID。
$ID = wc_get_product_id_by_sku($CodProduto);
然后初始化对象并设置当前数量的库存。
$Product = new WC_Product( $ID);
$return = wc_update_product_stock( $Product, $Stock);
到目前为止一切顺利!一切正常。我的问题是,当$ID
是一个产品的变化,它不会初始化对象,并会给予一个错误。所以我初始化所有的ID:
$Product = new WC_Product_Variation( $ID );
然后我像以前一样更新股票。问题是,当一个产品没有变化,woocommerce把名称为(没有标题),但股票工作正常。
有没有一种方法可以在不初始化对象$Product的情况下检查ID是否用于变体???
5条答案
按热度按时间093gszye1#
您可以使用wc_get_product()来获取产品。
这样,您将始终获得正确的产品类simple/variation。
nuypyhwy2#
你可以用get_parent_id()检查product是否是变量,如果是变量,你将得到父ID,如果不是,你将得到零。即
wqnecbli3#
我想你可以用另一种方法在数据库中搜索
例如,如果不确定此ID是用于产品还是用于变体产品,则可以用途:
( get_post( not_sure_ID ) )->post_parent;
作为子发布(变体产品),其父值不会为0。另一方面是0(产品)。
或
( get_post( not_sure_ID ) )->post_type;
如果此ID是Variation Product,则返回值应为product_variation
uemypmqf4#
如果将ID输入get_post_type(),它应该返回'product'或'product_variation'。这对我很有效。
krcsximq5#
最好检查它是否真的是一个变量。