Cómo depurar en WooCommerce 3+

Resuelto Dallin Davis asked hace 54 años • 2 respuestas

Estoy creando un método de envío personalizado para Woocommerce usando este tutorial https://docs.woocommerce.com/document/shipping-method-api/ pero tengo problemas de depuración. Cada vez que el usuario actualiza los métodos de envío, las llamadas de WooCommerce calculan el envío. He anulado esta función con lo siguiente.

public function calculate_shipping( $package ) {
    // This is where you'll add your rates
    $rate = array(
      'idea' => $this->id,
      'label' => $this->title,
      'cost' => '90.00',
      'calc_tax' => 'per_item'
    );
    echo "<script>console.log('Calculating shipping');</script>";
    $this->add_rate($rate);
  }

Al final, tengo una forma bastante compleja de calcular el "costo", pero no tengo forma de depurarlo porque esa línea de eco no produce resultados en la consola de Chrome. Alguna idea de lo que está pasando aquí?

Cualquier ayuda sería muy apreciada. Gracias.

Dallin Davis avatar Jan 01 '70 08:01 Dallin Davis
Aceptado

Primera función auxiliar Crear PHP

 function console_output($data) {
 $output = $data;
if (is_array($output))
    $output = implode(',', $output);

  echo "<script>console.log('Debug Objects: " . $output . "' );</script>";
 }

Entonces puedes usarlo así:

public function calculate_shipping( $package ) {
// This is where you'll add your rates
$rate = array(
  'idea' => $this->id,
  'label' => $this->title,
  'cost' => '90.00',
  'calc_tax' => 'per_item'
     );
   console_output("Calculating shipping");
    $this->add_rate($rate);
   }

Esto creará una salida como esta:

  Debug Objects: Calculating shipping
Yahya Ayyoub avatar May 11 '2020 22:05 Yahya Ayyoub