2017-05-05 62 views
1

我需要添加更多列到客戶選項卡下名爲客戶列表的WooCommerce>報告。
我想在我的表單中添加名爲Apartment Complex(apt_complex)的列地址(billing_address_1),建築物編號(billing_billing_number),城市(billing_city),州(billing_state)和自定義字段。
我該怎麼做?將列添加到WooCommerce報告/客戶列表

回答

0

這是一種近乎艱難的。但你可以這樣做。這是我能得到的最接近的。

創建一個過濾器到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()); 
     } 
    } 
} 

我給你加了個城市爲例。你可以做你需要的其他人。 它會是這個樣子:

reigelgallarde.me

正如你所看到的,市列添加。