我目前正在写一个WoodPress插件,它可以与WooCommerce一起工作。我查询WooCommerce订单,目标是使用来自荷兰route planner服务的API,使用这些订单的地址来规划配送路线。
为我编写PHP已经有一段时间了,我最后一次编写PHP是在7年前,所以我的PHP技能有些生疏。
查询订单后,我想调用函数routexl_generate(),该函数在我的代码中定义。但是,运行此代码会引发以下错误:
致命错误:未捕获错误:调用未定义的函数routexl_generate()在/home/u48469p44993/domains/dev.geusdiervoeding.nl/public_html/wp content/plugins/geusdiervoeding-wc-rxlplanner/geusdiervoeding-wc-rxlplanner.php:120堆栈跟踪:#0/home/u48469p44993/domains/dev.geusdiervoeding.nl/public_-html/wp-content/plugins/geusdiervoediervoeding-wc-rxlplanner.php(100):wc-order-query()#1/home/u48469p44993/domains/dev.geusdiervoeding.nl/public_html/wp includes/class wp hook.php(288):rxlp_菜单_init(“”)#2/home/u48469p44993/domains/dev.geusdiervoeding.nl/public_html/wp includes/class wp hook.php(312):wp_hook-
我真的不明白为什么它会这样,因为函数是定义的。。。我们将不胜感激。
这是我的代码的(一部分):
function wc_order_query()
{
if(isset($_GET['area'])) {
$route = $_GET[ 'area' ];
$date = $_GET[ 'date' ];
$args = array(
'status' => $route,
'meta_key' => 'jckwds_date',
'meta_value' => $date,
);
$orders = wc_get_orders( $args );
if (empty($orders)) {
echo ('<ul><li>Op '.$date.' zijn er geen bezorgorders voor het gekozen routegebied.</li></ul>');
} else {
routexl_generate();
}
//RouteXL API aanroepen
function routexl_generate(){
//Query results to API
}
}
如果在If中定义函数,则在实际执行到达函数之前,不会实际定义函数。换句话说,在正常的代码解释过程中,它不是定义为在IF之外定义的函数
因此,如果您想在if中定义函数,我建议您不要这样做,那么您必须在调用它们之前定义它们,就好像解释器只是一个过程一样。
示例:这很有效
function x($p = false)
{
function xx($pp)
{
echo $pp;
}
if ($p) {
xx($p);
}
}
x('hello');
结果
你好
但事实并非如此
function x($p = false)
{
if ($p) {
xx($p);
}
function xx($pp)
{
echo $pp;
}
}
x('hello');
结果
致命错误:未捕获错误:调用未定义的函数xx()
首先你必须声明函数,然后调用你犯了一个错误,你在声明之前调用了一个函数
//RouteXL API aanroepen
function routexl_generate(){
//Query results to API
}
function wc_order_query() {
if(isset($_GET['area'])){
$route = $_GET[ 'area' ];
$date = $_GET[ 'date' ];
$args = array(
'status' => $route,
'meta_key' => 'jckwds_date',
'meta_value' => $date,
);
$orders = wc_get_orders( $args );
if (empty($orders)) {
echo ('<ul><li>Op '.$date.' zijn er geen bezorgorders voor het gekozen routegebied.</li></ul>');
}else{
routexl_generate();
}
}
}
我意识到这只是你代码的一部分,但是你展示的内容有问题:
wc\u order\u query()
函数未关闭
routexl\u generate()
在wc\u order\u query()中
routexl\u generate()
在if
条件内wc\u订单查询()中
从技术上讲,嵌套函数没有问题,但为了清楚起见,将
routexl\u generate()
完全移出函数外是有意义的:
function wc_order_query() {
if (isset($_GET['area'])) {
$route = $_GET[ 'area' ];
$date = $_GET[ 'date' ];
$args = array(
'status' => $route,
'meta_key' => 'jckwds_date',
'meta_value' => $date,
);
$orders = wc_get_orders( $args );
if (empty($orders)) {
echo ('<ul><li>Op '.$date.' zijn er geen bezorgorders voor het gekozen routegebied.</li></ul>');
} else {
routexl_generate();
}
}
}
// RouteXL API aanroepen
function routexl_generate(){
// Query results to API
}
测试
我试图通过WordPress中的自定义程序设置一个简单的标题。我是PHP和WP开发新手。 这是我的功能。php: 还有我的错误代码。我在访问前端定制程序时通常会遇到以下情况: "致命错误:未捕获错误:调用未知的成员函数add_setting()在C:\xampp\htdocs\localwp.com\wp-内容\主题\llorix-one-lite-孩子\functions.php:20堆栈跟踪:
问题内容: 当我要实现Authorize.net付款网关时。但是,我收到此错误: 调用未定义的函数curl_init() 请让我知道其中有什么问题。 问题答案: 如果您使用的是Windows: 转到您的php.ini文件,并从以下行的开头删除标记: 保存文件后, 必须 重新启动HTTP服务器软件(例如Apache),然后才能生效。 对于Ubuntu 13.0及更高版本,只需使用已解包的软件包。在终
问题内容: 我刚刚将脚本切换到其他服务器。在以前的服务器上,它可以完美地工作,现在,我将它们切换到其他服务器上,我无法理解问题。 我不确定是否有帮助,但这是相关的代码。 PHP版本是:PHP 5.3.2 问题答案: 从文档开始,在PHP 5.4.0发行之前: 仅当PHP作为Apache模块安装时才支持此功能。 PHP 5.4.0和更高版本无条件支持此功能。 所述文档还包括替换功能,这些功能通过逐步
我正在OSX El Capitan和Apache服务器上运行最新版本的PHP(目前为5.6.22)。 我正在尝试使用PostgreSQL数据库,实际上,昨天已经成功了,但在我重写了httpd之后。conf文件和默认文件(我想这就是问题所在)我收到了以下消息: 调用中未定义的函数pg_connect()。。。 问题是我没有改变php。ini文件。如果我运行phpinfo();我得到了etc/php。
但是,我一定遗漏了什么,因为在构建项目时,我得到了一个关于OpenCL函数的未定义引用错误。这是完整的错误:任务“:App:ExternalNativeBuildArm8Debug”执行失败。 你知道我错过了什么吗?在过去的两天里,我搜索了几个小时关于如何在Android Studio中设置OpenCL的问题,但我找到的所有东西似乎都过时了,似乎对我的问题不起作用。
问题内容: 我正在开发一个自定义WordPress插件,在其中,我在主插件页面上有一些HTML表单,在后页上有一些PHP的函数,如从数据库中获取信息等。为详细解释,这里是代码。 。 主插件文件: 这是 my_functions.php 文件。 但是我的代码无法正常工作,甚至无法命中my_functions.php文件。这里有什么问题?仅需要基本步骤即可在此模式下工作。 问题答案: 最后,在获得 T