【问题标题】:Warning issued upon moving site files to PHP7 server将站点文件移动到 PHP7 服务器时发出警告
【发布时间】:2017-12-24 04:30:13
【问题描述】:

我的网站有一个结帐功能,在提交测试购买后,它会在一个白页上同时显示以下警告。

警告:在 wordpress.php 第 1460 行从空值创建默认对象
警告:无法修改标头信息 - 标头已由(输出开始于 wordpress.php 第 1842 行

第 1460 行指的是以下内容:$totals->quantity = $total_qty;

这是部分代码:

if (!function_exists('yak_get_totals')) {
    /**
     * Return an array containing the total quantity and total price of an array of items.
     */
    function yak_get_totals(&$items) {
        $total_qty = 0;
        $total_price = 0;
        foreach ($items as $key=>$item) {
            if (!isset($item->price)) {
                $item->price = yak_calc_price($item->id, $item->cat_id, $item->price);
            }
            $total_qty += $item->quantity;
            $total_price += ($item->price * $item->quantity);
        }
        $totals->quantity = $total_qty;
        $totals->price = $total_price;
        return $totals;
    }
}

这段代码是我多年来一直在 WordPress 上使用的插件的一部分。该插件的开发人员停止了它,所以现在通过更改服务器我正在尝试更新代码以在 PHP7 中工作。

插件在后端正常工作。它会发送一封电子邮件,表明已完成销售,并且购买会显示在订单区域等中。但是,客户没有进入订单确认页面,而是进入了此页面。

【问题讨论】:

    标签: wordpress php-7


    【解决方案1】:

    我已经找到了这个问题的答案。 $totals->quantity = $total_qty;的第1460行

    $totals 需要声明如下:$totals = new StdClass;

    一旦完成,这两个错误就再也不会发生了。

    希望这对未来的其他人有所帮助!

    谢谢!

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2017-11-26
      • 1970-01-01
      • 2013-10-16
      • 2016-11-11
      • 2016-12-06
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多