【问题标题】:Cannot include WooCommerce-CustomerClass to other PHP-File不能将 WooCommerce-CustomerClass 包含到其他 PHP 文件中
【发布时间】:2018-12-10 13:18:29
【问题描述】:

我在 Wordpress 4.9.8 上使用 WooCommerce 3.5.2。 目前,我正在尝试为“WooCommerce PDF 发票和装箱单”构建自定义模板,并且仅当客户不在 woocommerce-shop 的总部时才显示文本字段。 我在“woocommerce/includes/class-wc-customer.php”中找到了一个名为“is_customer_outside_base()”的函数,并在我的模板文件中调用了这个函数。在文件的开头,我使用以下代码加载类文件

$path = $_SERVER['DOCUMENT_ROOT'];
$path .= '/wp-content/plugins/woocommerce/includes/class-wc-customer.php';
require_once($path); 

但每次生成发票时都会收到错误消息:

致命错误:调用未定义函数 is_customer_outside_base()

我不知道,为什么这不起作用,路径似乎正确,我在文件中放置了一个 echo "$path",输出为:/var/www/vhosts/easy/httpdocs/wp-content/插件/woocommerce/includes/class-wc-customer.php

模板文件的路径如下: /var/www/vhosts/easy//httpdocs/wp-content/themes/corporate-pro/woocommerce/pdf/simple_ww_new/invoice.php

希望得到您的建议。谢谢!

【问题讨论】:

  • 如果您需要 wp-load,您应该可以访问所有 wordpress 功能 - 其中还应该包括 woocommerce 功能。
  • like require_once('../../../../wp-load.php'); - 不知道你需要走多少步
  • require_once(rtrim($_SERVER['DOCUMENT_ROOT'], '/') . '/wp-load.php');

标签: php wordpress woocommerce


【解决方案1】:

require 工作正常,否则你将面临一个致命错误,在它可能达到未定义函数致命错误之前。

你是否在函数调用中引用了类?

即你在这样做吗:WC_Customer::is_customer_outside_base()

而不仅仅是这个:is_customer_outside_base()(不起作用)

?

【讨论】:

  • 这就是问题所在!我一直认为可能存在安全问题,但问题始终在屏幕前。谢谢!
猜你喜欢
  • 2021-12-22
  • 1970-01-01
  • 2015-11-06
  • 2018-05-22
  • 1970-01-01
  • 2013-04-13
  • 1970-01-01
  • 2016-03-20
相关资源
最近更新 更多