我有一个学校的项目。课堂上的座位作为可变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 );
不管怎样,我知道这很长。如果你能做到这一点,谢谢你抽出时间。如果有我错过的教程或其他东西,我非常乐意看一看。很多人想知道如何在前端添加标签,这让我的搜索变得更加困难,所以我得到了很多这样的结果。
如果你有任何问题,请告诉我。
谢谢
斯瓦尼