2017-11-23 3 views
1

Ich muss die Berichte in WooCommerce anpassen, so muss ich die Kerndatei class-wc-report-sales-by-date.php bearbeiten, solche Datei verwendet keine Haken.Override-Funktionen in Woocommerce Berichte Abschnitt

überprüfen diese in WC-Quellcode: includes/admin/reports/class-wc-report-sales-by-date.php

Ich habe die 393 Zeile zu bearbeiten, diese Variable: $ this-> report_data-> total_sales Ich brauche die Gesamtumsatz Betrag anpassen füge einen anderen Wert hinzu.

Wie kann ich WooCommerce diese Kerndatei überschreiben?

Antwort

2

Niemals Core-Dateien überschreiben ... Es gibt andere Möglichkeiten, Maid dafür. Wenn Sie Blick auf line 411, Sie haben woocommerce_admin_report_data Filter Haken, um Änderungen vorzunehmen, auf diese Weise (Beispiel):

add_filter('woocommerce_admin_report_data', 'custom_admin_report_data', 10, 1); 
function custom_admin_report_data($report_data){ 
    // HERE you make your calculations and changes 
    // New amout to set (example) 
    $new_calculated_amount = 100; 

    // Set the new amounts for "total_sales" key 
    $report_data->total_sales = $new_calculated_amount; 

    // Raw data output just for testing, to get the keys and the structure of the data 
    // to be removed 
    echo '<pre>'; print_r($report_data); echo '</pre>'; 

    // Return the changed data object 
    return $report_data; 
} 

-Code geht in function.php Datei Ihres aktiven Kind Thema (oder Thema) oder auch in jeder Plugin-Datei.

Getestet und funktioniert.

Ich habe eine einzige Zeile Code enthalten, der die Rohdaten ausgibt, die Sie entfernen sollten ... Es ist nur die Datenstruktur und die Änderungen Zofe auf dem "total_sales" Wert der Funktion zu sehen ...


Der Rohdaten Ausgang ist so etwas wie diese (das gibt Ihnen die Datenstruktur besser zu Änderungen vornehmen):

stdClass Object 
(
    [order_counts] => Array 
     (
      [0] => stdClass Object 
       (
        [count] => 1 
        [post_date] => 2017-11-21 16:45:43 
       ) 
     ) 
    [coupons] => Array 
     (
     ) 
    [order_items] => Array 
     (
      [0] => stdClass Object 
       (
        [order_item_count] => 1 
        [post_date] => 2017-11-21 16:45:43 
       ) 
     ) 
    [refunded_order_items] => 0 
    [orders] => Array 
     (
      [0] => stdClass Object 
       (
        [total_sales] => 48 
        [total_shipping] => 15 
        [total_tax] => 5 
        [total_shipping_tax] => 3 
        [post_date] => 2017-11-21 16:45:43 
       ) 
     ) 
    [full_refunds] => Array 
     (
     ) 
    [partial_refunds] => Array 
     (
     ) 
    [refund_lines] => Array 
     (
     ) 
    [total_tax_refunded] => 0 
    [total_shipping_refunded] => 0 
    [total_shipping_tax_refunded] => 0 
    [total_refunds] => 0 
    [total_tax] => 5.00 
    [total_shipping] => 15.00 
    [total_shipping_tax] => 3.00 
    [total_sales] => 48.00 
    [net_sales] => 25.00 
    [average_sales] => 3.57 
    [average_total_sales] => 6.86 
    [total_coupons] => 0.00 
    [total_refunded_orders] => 0 
    [total_orders] => 1 
    [total_items] => 1 
) 

So wie Sie auch sehen können, müssen Sie Änderungen an den „Aufträge“ Objektdaten machen, wie Sie auch die "total_sales" Schlüssel ...

+1

Dank. Das ist was ich brauche. Ich schätze deine Zeit und Hilfe wirklich :) –

Verwandte Themen