Hola @sergio_dev,
@nuriadeco tiene razón. Tu código actual solo define la columna visualmente, pero no inyecta el dato en la consulta. Para PrestaShop 1.7.2.2, debes modificar las propiedades _select y _join de la clase AdminOrdersController dentro de tu override para incluir el número de teléfono desde la tabla de direcciones.
Aquí tienes cómo deberías modificar tu override. Esto añadirá el JOIN a la tabla ps_address usando el id_address_delivery del pedido y seleccionará el campo phone como customer_phone_number:
class AdminOrdersController extends AdminOrdersControllerCore
{
public function __construct()
{
parent::__construct();
$this->_join .= ' LEFT JOIN `' . _DB_PREFIX_ . 'address` adr ON (adr.`id_address` = a.`id_address_delivery`)';
$this->_select .= ' adr.`phone` AS `customer_phone_number`,';
$this->fields_list['customer_phone_number'] = array(
'title' => $this->l('Teléfono Cliente'),
'align' => 'center',
Explicación de los cambios:
$this->_join .= ' LEFT JOIN ...': Esto añade una unión (JOIN) a la tabla ps_address (con alias adr) usando la columna id_address_delivery de la tabla de pedidos (a es el alias predeterminado para ps_orders).
$this->_select .= ' adr.phoneAScustomer_phone_number,';: Esto selecciona el campo phone de la tabla ps_address y le asigna el alias customer_phone_number. Es crucial que este alias coincida con la clave que usas en $this->fields_list.
$this->fields_list['customer_phone_number'] = ...: Aquí se define la columna en la lista, utilizando el mismo alias customer_phone_number que seleccionamos en la consulta SQL. He añadido search => false y orderby => false ya que no es una columna fácilmente ordenable o buscable directamente sin más lógica.
Asegúrate de que el archivo se guarde como override/controllers/admin/AdminOrdersController.php y luego borra la caché de PrestaShop para que el override se cargue correctamente.