【发布时间】:2020-04-24 19:55:15
【问题描述】:
我目前正在编写一个适用于 WooCommerce 的 WordPress 插件。我查询 WooCommerce 订单,目标是使用这些订单的地址,使用来自荷兰路线规划服务的 API 来规划送货路线。
为我写PHP已经有一段时间了,我上次写的PHP是7年前,所以我的PHP技能有点生疏。
查询订单后,我想调用函数routexl_generate(),这个函数在我的代码中定义。但是,运行代码会引发以下错误:
致命错误:未捕获错误:调用 /home/u48469p44993/domains/dev.geusdiervoeding.nl/public_html/wp-content/plugins/geusdiervoeding-wc-rxlplanner/geusdiervoeding-wc-rxlplanner 中的未定义函数 routexl_generate()。 php:120 堆栈跟踪:#0 /home/u48469p44993/domains/dev.geusdiervoeding.nl/public_html/wp-content/plugins/geusdiervoeding-wc-rxlplanner/geusdiervoeding-wc-rxlplanner.php(100): wc_order_query() # 1 /home/u48469p44993/domains/dev.geusdiervoeding.nl/public_html/wp-includes/class-wp-hook.php(288): rxlp_menu_init('') #2 /home/u48469p44993/domains/dev.geusdiervoeding.nl /public_html/wp-includes/class-wp-hook.php(312): WP_Hook->apply_filters('', Array) #3 /home/u48469p44993/domains/dev.geusdiervoeding.nl/public_html/wp-includes/plugin .php(478): WP_Hook->do_action(Array) #4 /home/u48469p44993/domains/dev.geusdiervoeding.nl/public_html/wp-admin/admin.php(254): do_action('woocommerce_pag...') #5 {main} 在 /home/u48469p44993/domains/dev.geusdiervoeding.nl/public_html/wp-cont 中抛出ent/plugins/geusdiervoeding-wc-rxlplanner/geusdiervoeding-wc-rxlplanner.php 在第 120 行
我真的不明白它为什么会这样,因为函数已定义......不胜感激。
这是(部分)我的代码:
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
}
}
【问题讨论】:
-
是否在一个类中定义了
$this->缺失? -
wc_get_orders 来自 WooCommerce 开发的一个类。我的代码是一个使用该类的插件。你是什么意思 bij $this->
-
如果你在 INSIDE AN IF 中定义了函数,那么直到实际执行到达它才真正定义它。换句话说,它没有在正常的代码解释过程中定义为在 IF 之外定义的函数
标签: php wordpress woocommerce