2016-01-14 10 views
7

Sto usando Woocommerce versione 2.4.12, l'ultimo. Voglio apportare alcune modifiche alla pagina degli ordini che si trova nella dashboard dell'amministratore sotto woocommerce -> orders. Woocommerce Orders PageCome modificare la pagina degli ordini di amministratore di woocommerce?

Dove si trova il file in plugins-> cartella woocommerce? Ho creato una cartella woocommerce nel mio tema per sovrascrivere i file modello. Voglio aggiungere il numero di telefono del cliente alla ship_to column. Il cliente desidera che il numero di telefono del cliente sia visibile nella pagina degli ordini. Qualche modo di usare functions.php per aggiungere un hook e apportare modifiche?

+0

file modelli sono io credo solo per le email e le pagine di frontend. Cosa stai cercando esattamente? – Reigel

+0

si desidera aggiornare la pagina dell'ordine della dashboard di amministrazione? Tema-> la cartella woo-commerce viene utilizzata per sovrascrivere i file per le pagine front-end e non per il back-end. –

+0

@Reigel Ya ho pensato anche io. Voglio aggiungere il numero di telefono del cliente alla ship_to column. Il cliente desidera che il numero di telefono del cliente sia visibile nella pagina degli ordini. –

risposta

14

provare questo al tuo functions.php

add_filter('manage_edit-shop_order_columns', 'shop_order_columns'); 
function shop_order_columns($columns){ 
    $new_columns = (is_array($columns)) ? $columns : array(); 

    $new_columns['phone'] = 'Phone'; 

    return $new_columns; 
} 

add_action('manage_shop_order_posts_custom_column', 'shop_order_posts_custom_column'); 
function shop_order_posts_custom_column($column){ 
    global $post, $the_order; 

    if (empty($the_order) || $the_order->get_id() != $post->ID) { 
     $the_order = wc_get_order($post->ID); 
    } 

    $billing_address = $the_order->get_address(); 
    if ($column == 'phone') {  
     echo (isset($billing_address['phone']) ? $billing_address['phone'] : ''); 
    } 
} 

problema Posizione ?? ..

provare questo per la prima funzione

function shop_order_columns($columns){ 
    $columns = (is_array($columns)) ? $columns : array(); 

    $phone = array('phone' => 'Phone'); 
    $position = 5; 
    $new_columns = array_slice($columns, 0, $position, true) + $phone; 

    return array_merge($new_columns, $columns); 
} 

Aggiornato per WooCommerce 3.

+0

Risposta corretta (y) –

+0

Funziona perfettamente. Ho appena copiato il codice. Grazie mille! @Reigel –

+1

Esattamente, questa non è una domanda specifica di WooCommerce e può essere risolta con i filtri core di WordPress. – helgatheviking

2

Si dovrebbe usare manage_shop_order_posts_custom_column azione e modificare i dati della colonna controllando il nome della colonna

switch($column) { 

     case 'shipping_address' : 
      echo 'sample data'; 
      break; 

    }