首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >调用Wordpress插件中的未定义函数

调用Wordpress插件中的未定义函数
EN

Stack Overflow用户
提问于 2020-01-07 10:06:14
回答 2查看 2.5K关注 0票数 1

我目前正在编写一个与WordPress兼容的WooCommerce插件。我查询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.php:120堆栈跟踪中未定义函数routexl_generate()的调用:#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/

/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->应用_过滤器(’‘,数组) #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-content/plugins/geusdiervoeding-wc-rxlplanner/geusdiervoeding-wc-rxlplanner.php在120号线

我不明白它为什么会那样做,因为函数是定义的.我会感谢你的帮助。

这是我代码的一部分:

代码语言:javascript
运行
复制
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
        }
    }
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2020-01-07 10:23:59

我意识到这只是“代码的一部分”,但你所展示的是有问题的:

  • wc_order_query()函数不是closed;
  • routexl_generate()wc_order_query()

wc_order_query();

  • routexl_generate()if条件中

从技术上讲,嵌套函数没有问题,但是为了清晰起见,将routexl_generate()完全移出函数是有意义的:

代码语言:javascript
运行
复制
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
}

测试和工作。

票数 1
EN

Stack Overflow用户

发布于 2020-01-07 10:18:54

首先你必须声明函数,然后调用你犯了一个错误,你在声明之前调用了一个函数。

代码语言:javascript
运行
复制
//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();
        }
    }
}
票数 -1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/59626217

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档