1
我需要添加更多列到客戶選項卡下名爲客戶列表的WooCommerce>報告。
我想在我的表單中添加名爲Apartment Complex(apt_complex)的列地址(billing_address_1),建築物編號(billing_billing_number),城市(billing_city),州(billing_state)和自定義字段。
我該怎麼做?將列添加到WooCommerce報告/客戶列表
我需要添加更多列到客戶選項卡下名爲客戶列表的WooCommerce>報告。
我想在我的表單中添加名爲Apartment Complex(apt_complex)的列地址(billing_address_1),建築物編號(billing_billing_number),城市(billing_city),州(billing_state)和自定義字段。
我該怎麼做?將列添加到WooCommerce報告/客戶列表
這是一種近乎艱難的。但你可以這樣做。這是我能得到的最接近的。
創建一個過濾器到woocommerce_admin_reports
。具體而言,我們需要更改客戶列表報告的回調。在它的下方是'customer_list_get_report'
。
add_filter('woocommerce_admin_reports', 'woocommerce_admin_reports');
function woocommerce_admin_reports($reports) {
$reports['customers']['reports']['customer_list']['callback'] = 'customer_list_get_report';
return $reports;
}
然後創建函數'customer_list_get_report'
。該功能生成報告。請注意0,這是我們包括類WC_Report_Customer_List
,我們可以擴展到它並覆蓋它的一些功能。
function customer_list_get_report($name) {
$class = 'My_WC_Report_Customer_List';
do_action('class_wc_report_customer_list');
if (! class_exists($class))
return;
$report = new $class();
$report->output_report();
}
下面這是您進行編輯的位置。
add_action('class_wc_report_customer_list', 'class_wc_report_customer_list');
function class_wc_report_customer_list() {
if (! class_exists('WC_Report_Customer_List')) {
include_once(WC_ABSPATH . 'includes/admin/reports/class-wc-report-customer-list.php');
}
class My_WC_Report_Customer_List extends WC_Report_Customer_List {
/**
* Get column value.
*
* @param WP_User $user
* @param string $column_name
* @return string
*/
public function column_default($user, $column_name) {
global $wpdb;
switch ($column_name) {
case 'city' :
return get_user_meta($user->ID, 'billing_city', true);
}
return parent::column_default($user, $column_name);
}
/**
* Get columns.
*
* @return array
*/
public function get_columns() {
/* default columns.
$columns = array(
'customer_name' => __('Name (Last, First)', 'woocommerce'),
'username' => __('Username', 'woocommerce'),
'email' => __('Email', 'woocommerce'),
'location' => __('Location', 'woocommerce'),
'orders' => __('Orders', 'woocommerce'),
'spent' => __('Money spent', 'woocommerce'),
'last_order' => __('Last order', 'woocommerce'),
'user_actions' => __('Actions', 'woocommerce'),
); */
// sample adding City next to Location.
$columns = array(
'customer_name' => __('Name (Last, First)', 'woocommerce'),
'username' => __('Username', 'woocommerce'),
'email' => __('Email', 'woocommerce'),
'location' => __('Location', 'woocommerce'),
'city' => __('City', 'woocommerce'),
);
return array_merge($columns, parent::get_columns());
}
}
}
我給你加了個城市爲例。你可以做你需要的其他人。 它會是這個樣子:
正如你所看到的,市列添加。