WooCommerce:添加新报告选项卡

时间:2018-10-11 作者:swani

我有一个学校的项目。课堂上的座位作为可变WooCommerce产品出售,学生信息在结帐时被捕获。我想在WooCommerce的报告部分添加一个新选项卡来存储所有名册。我不想只在现有选项卡上添加新报告。整整一天,我一直在四处寻找如何做到这一点。

这是我独自一人的地方。不知道这是否正确。

当我深入WC时,我发现了一个名为“woocommerce\\u admin\\u reports”的过滤器,它允许您修改名为$reports的数组的值。筛选器位于以下文件中:

wp content\\plugins\\woocommerce\\includes\\admin\\class wc admin报告。php

这似乎是正确的开始位置,但其中一个值是回调,它似乎使用get\\u report()来提取正确的文件。当我查看get\\u report()时,它似乎在构建一个字符串,然后从wp content\\plugins\\woocommerce\\includes\\admin\\reports中提取报告。

public static function get_report( $name ) {
    $name  = sanitize_title( str_replace( \'_\', \'-\', $name ) );
    $class = \'WC_Report_\' . str_replace( \'-\', \'_\', $name );

    include_once apply_filters( \'wc_admin_reports_path\', \'reports/class-wc-report-\' . $name . \'.php\', $name, $class );

    if ( ! class_exists( $class ) ) {
        return;
    }

    $report = new $class();
    $report->output_report();
}
因此,我只需复制/粘贴一个报告并将其重命名为:

wp content\\plugins\\woocommerce\\includes\\admin\\reports\\class wc report-rosters.php

但我得到的只是一份来自各地的错误列表:

Notice: Undefined variable: reports in reports in C:\\xampp\\htdocs\\eele\\wp-content\\themes\\eele-child\\functions.php on line 1271

Notice: Undefined offset: 0 in C:\\xampp\\htdocs\\eele\\wp-includes\\plugin.php on line 897

Notice: Undefined offset: 0 in C:\\xampp\\htdocs\\eele\\wp-includes\\plugin.php on line 915

Warning: call_user_func_array() expects parameter 1 to be a valid callback, no array or string given in C:\\xampp\\htdocs\\eele\\wp-includes\\class-wp-hook.php on line 286

Warning: Invalid argument supplied for foreach() in C:\\xampp\\htdocs\\eele\\wp-content\\plugins\\woocommerce\\includes\\admin\\class-wc-admin-reports.php on line 146

Warning: array_keys() expects parameter 1 to be array, null given in C:\\xampp\\htdocs\\eele\\wp-content\\plugins\\woocommerce\\includes\\admin\\class-wc-admin-reports.php on line 31

Warning: array_keys() expects parameter 1 to be array, null given in C:\\xampp\\htdocs\\eele\\wp-content\\plugins\\woocommerce\\includes\\admin\\class-wc-admin-reports.php on line 33

Warning: current() expects parameter 1 to be array, null given in C:\\xampp\\htdocs\\eele\\wp-content\\plugins\\woocommerce\\includes\\admin\\class-wc-admin-reports.php on line 33

Warning: Invalid argument supplied for foreach() in C:\\xampp\\htdocs\\eele\\wp-content\\plugins\\woocommerce\\includes\\admin\\views\\html-admin-page-reports.php on line 14
这是我在函数中输入的函数。php来尝试实现这一点。注释掉add\\u filter()行会删除所有错误,因此我知道所有错误都是由于这项工作造成的。

function eele_add_wc_reports( $reports ){

    $reports[\'rosters\'] = array(
        \'title\'   => __( \'Rosters\', \'woocommerce\' ),
        \'reports\' => array(
            \'rosters\' => array(
                \'title\'       => __( \'Rosters\', \'woocommerce\' ),
                \'description\' => \'\',
                \'hide_title\'  => true,
                \'callback\'    => array( __CLASS__, \'get_report\' ),
            ),
        ),
    );
    return $reports;
}
add_filter( \'woocommerce_admin_reports\', $reports );
不管怎样,我知道这很长。如果你能做到这一点,谢谢你抽出时间。如果有我错过的教程或其他东西,我非常乐意看一看。很多人想知道如何在前端添加标签,这让我的搜索变得更加困难,所以我得到了很多这样的结果。

如果你有任何问题,请告诉我。

谢谢

斯瓦尼

1 个回复
SO网友:Chirag pancholi
add_filter(\'woocommerce_admin_reports\',\'custom_tab\');

function custom_tab($reports)
{
    $reports[\'custom_tab\']= array(      
        \'title\'=>__(\'Custom Reports\',\'woocommerce\'),    
        \'description\'=> \'WooCommerce Orders Listing Here...\',
        \'hide_title\'=> true,     
        \'callback\'=>array(\'wc_admin_orders_customers\', \'display_orders_list_cusotomers\')
    );
    return $reports;
}
结束

相关推荐

纯css将admin_bar子节点的子节点数“浮动”到右侧

我添加了一个admin\\u bar节点。该节点中的每个项都有数量可变的子项。我想在项目标题右侧显示每个“浮动”项目的子项目数(项目标题和子项目数之间有一些空格),如所示:我可以做到以下几点:PHPadd_action( \'admin_bar_menu\', \'add_my_admin_bar_node\' ); function add_my_admin_bar_node() { global $wp_admin_bar; $args = arra