首页 > 解决方案 > Woocommerce ID 调用不正确

问题描述

我为 woocommerce 使用插件 IWD,这是我收到的一致错误。寻求有关如何解决此问题的帮助?我对代码很陌生,并试图理解它。但这超出了我的知识水平。

[2020 年 7 月 29 日星期三 19:36:02.765466] [php7:notice] [pid 31401] [client 101.161.102.84:53742] id 调用不正确。不应直接访问产品属性。回溯:require('wp-blog-header.php'), require_once('wp-includes/template-loader.php'), do_action('template_redirect'), WP_Hook->do_action, WP_Hook->apply_filters, WC_AJAX:: do_wc_ajax, do_action('wc_ajax_iwd_opc_update_order_review'), WP_Hook->do_action, WP_Hook->apply_filters, IWD_OPC_AJAX::iwd_opc_update_order_review, woocommerce_order_review, wc_get_template, include('/plugins/iwd-woocommerce-checkout-suite/public/templates/commerce review-order.php'),WC_Abstract_Legacy_Product->__get,wc_doing_it_wrong。3.0版本增加了这条消息,referer:https://

标签: phpwordpresswoocommerce

解决方案


在 WC 3.0 中,更新为大多数公共变量添加了 getter/setters 方法(hello OOP),但由于向后兼容,它们保持公共状态。将来它会变成私有/受保护的,我想如果没有额外的权限检查,它将成为致命错误,而不是警告。所以如果在我们之前

$product = wc_get_product($id); // Instance of WC_Product
echo $product->id; // wrong
echo $product->get_id(); // nice

由于您的日志,您正在使用 wd-woocommerce-checkout-suite 插件,上次更新是一年多以前,所以您的选择

  1. 更新iwd-woocommerce-checkout-suite/public/templates/woocommerce/checkout/review-order.php,第 30 行,从$_product->id$_product->get_id()
  2. 选择另一个插件

推荐阅读