在Woocommerce中,我有与这行代码相关的错误日志:
$product->id = $product->variation_id;
错误日志为:
(致命错误)未捕获错误:无法访问受保护的属性 WC_Product_Variation::$id in ....:857
堆栈跟踪:(对象(WC_Product_Variation) 881
881: $variation = $this->convert_variation_product_prices($variation, $currency);
堆栈跟踪:load_variation_in_currency (811)
811: $variation = $this->load_variation_in_currency($variation_id, $currency);
堆栈跟踪:convert_variable_product_prices(对象(WC_Product_Variable) 767
767: $product = $object->$method($product, $currency);
谢谢
您需要替换不正确的有罪行:$product->id = $product->variation_id;
以下内容(因为$product
是WC_Product_Variation
):
$product_id = $product->get_id();
或
$variation_id = $product->get_id();
其中$product_id
(或$variation_id
)是要在代码中使用的变量。
由于 WooCommerce 3 和 CRUD 对象
WC_Product
属性无法直接访问,因此您应该改用可用的 getters 方法。所以
需要改为$product->id
$product->get_id()
获取您将使用的父变量产品 ID
$parent_product_id = $product->get_parent_id();