WooCommerce调用update_meta_data()报on int错误是什么原因
问题根源
你调用的wc_get_product_id_by_sku() 函数返回值为产品ID(整数类型),而非WC_Product产品对象,你直接对整数类型变量调用对象方法update_meta_data()自然会抛出类型错误。
修复方案
你需要先通过拿到的产品ID获取对应的WC_Product对象,再执行元数据更新操作,同时建议增加非空判断避免SKU不存在时的后续报错,正确代码示例如下:
// 通过SKU获取产品ID $product_id = wc_get_product_id_by_sku( $wproduct['code'] ); // 判断ID是否有效 if ( $product_id ) { // 获取产品对象 $product = wc_get_product( $product_id ); if ( $product ) { $product->update_meta_data('_bims_id', $wproduct['bims_id']); $product->save(); } }
补充说明:如果传入的SKU不存在,
wc_get_product_id_by_sku()会返回0,此时不会进入后续更新逻辑,避免出现额外报错。
内容的提问来源于stack exchange,提问作者Enrique Benitez
相关产品推荐
相关产品推荐

