首页 > 解决方案 > 在 Woocommerce 中访问受保护的属性 WC_Product_Variation::$id

问题描述

在 Woocommerce 中,我有与这行代码相关的错误日志:

$product->id = $product->variation_id;

错误日志是:

(致命错误)未捕获的错误:无法访问受保护的属性 WC_Product_Variation::$id in ....:857

堆栈跟踪:(对象(WC_Product_Variation)881

第881章:

堆栈跟踪:load_variation_in_currency (811)

第811章:

堆栈跟踪:convert_variable_product_prices(Object(WC_Product_Variable) 767

767: $product = $object->$method($product, $currency);

谢谢

标签: phpwoocommerce

解决方案


您需要将不正确的有罪行替换为$product->id = $product->variation_id;以下内容(如$producta WC_Product_Variation

$product_id = $product->get_id();

或者

$variation_id = $product->get_id();

其中$product_id (或$variation_id是代码中要使用的变量。

由于无法直接访问Woocommerce 3 和CRUD Objects属性,因此您应该使用 可用的 getters 方法WC_Product

所以$product->id需要改成$product->get_id()

要获取您将使用的父变量产品 ID

$parent_product_id = $product->get_parent_id();

推荐阅读