所以我有两个文件,'header.php'和'pluginfile.php'
我要调用的函数位于'pluginfile.php'中,并且是:
public function getNonSubscriptionAmount() {
$total = 0;
foreach($this->_items as $item) {
if(!$item->isSubscription()) {
$total += $item->getProductPrice() * $item->getQuantity();
}
else {
// item is subscription
$basePrice = $item->getBaseProductPrice();
Cart66Common::log('[' . basename(__FILE__) . ' - line ' . __LINE__ . "] Item is a subscription with base price $basePrice");
$total += $basePrice;
}
}
return $total;
}
所以在'header.php'中我有:
<?php
include_once($_SERVER['DOCUMENT_ROOT']."/wp-content/plugins/plugin-name/folder/PluginFile.php");
print getNonSubscriptionAmount();
?>
这会在加载任何页面时出现以下错误:
致命错误:调用未定义函数getnonsubscriptionamount() /home/username/domain.com/wp-content/themes/theme/header.php on 第72行
我现在花了几个小时试图独自解决这个问题而且无处可去!任何帮助非常感谢!
答案 0 :(得分:1)
@Wiseguy看起来他在评论中提出了正确的想法。
您正在声明方法而不是函数。该函数是整个plugin.php文件还是更多?如果是一切,请删除公共修饰符,然后声明
function getNonSubscriptionAmount() {
// code here
}
但从代码的外观来看,它是更大类的一部分。如果是这种情况,那么@Wiseguy注释是正确的,你需要在plugin.php中实例化该类的新对象,然后是所需的方法。
$obj = new PluginClass();
$obj->getNonSubscriptionAmount();
答案 1 :(得分:0)
你说:
我要调用的函数位于'plugin.php'中,并且是:
在你的文件中,你包括:
所以在'header.php'我有: include_once($ _ SERVER [ 'DOCUMENT_ROOT'] “/可湿性粉剂内容/插件/插件名/文件夹/ PluginFile.php”); print getNonSubscriptionAmount();
你没有包含'plugin.php',这是函数的生命。
Header.php应该包含'plugin.php',而不是'PluginFile.php'。