php - 在 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);
谢谢
解决方案
您需要将不正确的有罪行替换为$product->id = $product->variation_id;
以下内容(如$product
a 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();
推荐阅读
- mysql - “在不存在的地方插入” - 在本地 (5.6.35) 上工作,但不在服务器 (5.7.22) 上工作 - 不显示错误
- ios - 带有整页单元格的 UICollectionView VS 带有子视图控制器的 UIScrollView
- php - 顶部有匹配项的订单标签
- tensorflow - tf.data.Dataset 中的 TensorFlow 动态批量大小
- c++ - 从异构列表中提取数据
- sql - SSRS 表达式在替换括号“(”“)”时显示#Error
- xml - 在 oracle 中每隔 3 次出现逗号后打印所有字符
- java - 与框架相同的包名和类名
- python - 如何在 Python 中使用 Kullback-Leibler Divergence 获得概率密度函数
- magento2 - 如果 magento 2 中有两次,请从 URL 末尾删除 .html