2017-05-05 19 views
1

[顧客リスト]の[顧客]タブの下にある[WooCommerce]> [レポート]に列を追加する必要があります。
住所(billing_address_1)、建物番号(billing_billing_number)、都市(billing_city)、州(billing_state)、カスタムフィールドをApartment Complex(apt_complex)というフォームに追加します。
どうすればいいですか?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'という関数を作成します。この関数はレポートを生成します。 do_actionをメモしておきます。ここには、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()); 
     } 
    } 
} 

例としてCityを追加しました。必要なものは他にもできます。 それは次のようになります:あなたが見ることができるように

reigelgallarde.me

、市の列が追加されました。