Мне нужно вставить опцию last4Days на вкладке отчетов. Я сделал это, изменив исходные файлы, но WooCommerce через некоторое время переходит к оригиналу. Итак, я попытался найти фильтр, чтобы сделать это, но я не нахожу его.Настройка времени выполнения запросов Woocommerce
ответ
К сожалению, команда Woo не сделала ничего удобного и включила фильтр в аргументы длины отчета. За исключением некоторой метапрограммной магии (например, динамически переписывая аргументы в файле .php-файла перед загрузкой, очень опасно), единственный способ, который я вижу, - это перейти к лестнице создания объектов до точки, где создается отчет, и то попросите его вызвать пользовательский класс, основанный на том, который вы используете. К счастью, WooCommerce предоставляет фильтр для пути к файлу отчета, он находится в wc-class-admin-reports.php
, а крючок называется wc_admin_reports_path
. Если мы расширяли отчет об использовании купона, она будет выглядеть немного что-то вроде:
add_filter('wc_admin_reports_path', 'redirect_coupon_report_class_path', 10, 2);
function redirect_coupon_report_class_path($path, $report_name, $class) {
if($report_name == 'coupon-usage') {
$path = 'path/to/my/custom/class.php';
}
return $path;
}
Что вам нужно сделать, это скопировать класс отчета, который вы пытаетесь изменить, и вставить его где-нибудь в ваша тема или плагин. Затем добавьте фильтр, вызывающий функцию, которая будет проверять, является ли передаваемый отчет тем, который вы хотите изменить, и перенаправите его в свой собственный класс. В пределах вашего пользовательского класса вы можете делать практически все, что хотите, но, как и при любом переопределении, вы захотите увидеть, что они изменяют в этом файле с каждым обновлением. Вы можете расширить класс следующим образом:
class WC_Report_Coupon_Usage_Custom extends WC_Report_Coupon_Usage {
// Call the parent constructor
function __construct() {
parent::__construct();
}
// Add a method that you would have previously overwritten directly in the plugin file
public function output_report() {
$ranges = array(
'year' => __('Year', 'woocommerce'),
'last_month' => __('Last Month', 'woocommerce'),
'month' => __('This Month', 'woocommerce'),
'7day' => __('Last 7 Days', 'woocommerce'),
'4day' => __('Last 4 Days', 'woocommerce')
);
$this->chart_colours = array(
'discount_amount' => '#3498db',
'coupon_count' => '#d4d9dc',
);
$current_range = ! empty($_GET['range']) ? sanitize_text_field($_GET['range']) : '7day';
if (! in_array($current_range, array('custom', 'year', 'last_month', 'month', '7day'))) {
$current_range = '7day';
}
$this->calculate_current_range($current_range);
include(WC()->plugin_path() . '/includes/admin/views/html-report-by-date.php');
}
}
- 1. Настройка времени выполнения datagridview
- 2. Изменение времени выполнения SQL запросов
- 3. Rails: настройка времени выполнения ActionMailer?
- 4. Настройка свойств времени выполнения SpringApplicationBuilder()
- 5. Настройка времени выполнения в android
- 6. Woocommerce: Настройка доступности категории
- 7. Wordpress - Настройка поисковых запросов
- 8. Оптимизация запросов для уменьшения времени выполнения
- 9. Настройка времени выполнения TCP/UDP-сервера
- 10. Настройка времени выполнения MSVC в CMake
- 11. Настройка Silverlight Image.Source вызывает ошибку времени выполнения
- 12. Jackson XML - настройка времени выполнения сериализатора @JsonSerialize
- 13. Настройка времени выполнения tomcat с использованием maven
- 14. Настройка времени выполнения клиента с использованием Glimpse
- 15. Настройка фиксированной ставки woocommerce
- 16. Настройка полей адресов woocommerce
- 17. Woocommerce - настройка фильтра Hook
- 18. Настройка доставки по Woocommerce
- 19. woocommerce Настройка полей проверки
- 20. Настройка таблицы электронной почты Woocommerce
- 21. Улучшение времени выполнения хранимой процедуры отчетности - настройка временных таблиц?
- 22. Точная настройка запросов Oracle
- 23. Ошибка выполнения времени выполнения
- 24. Проверка выполнения выполнения запросов Oracle
- 25. Ошибка выполнения выполнения DB2 для запросов
- 26. Выберите запрос принимая много времени для выполнения - оптимизация запросов
- 27. Анализ времени выполнения запросов в базе данных MySQL?
- 28. Ошибка времени выполнения '5': попытка импортировать таблицу запросов из сети
- 29. Сравнение времени выполнения ближайших соседних запросов в разных структурах данных
- 30. Excel 2007 - 1004 Ошибка времени выполнения Обновить таблицу запросов