Come ottenere tutti i prodotti senza peso in un Woocommerce

Wordpress: Domini Diversi Per Diverse Pagine

In un ecommerce piuttosto grande, non sapevo come fare per ottenere tutti i prodotti senza il relativo peso.
Il peso era necessario per effettuare il calcolo delle spese di spedizione e quindi ogni prodotto e variante di prodotto acquistabile doveva avere il peso per poter completare il checkout.
Non era pensabile di passare prodotto per prodotto perchè erano veramente tanti e il tempo per scorrerli tutti sarebbe stato troppo.
Quindi ho trovato questa soluzione che permette nel listato prodotto da backend di ottenere la lista prodotti che non hanno il peso e anche il dettaglio della variazione senza questa informazione.
A me è stato molto utile… e a voi?

add_action( 'admin_notices', 'nn_products_no_weight_admin' );
function nn_products_no_weight_admin(){
    global $pagenow, $typenow;
    if ( 'edit.php' === $pagenow && 'product' === $typenow ) {
      $i=0;
      $args = array(
         'status' => 'publish',
         'visibility' => 'visible',
         'limit' => -1
      );
      $products = wc_get_products( $args );
      foreach ( $products as $product ) {
         if ( ! $product->get_weight()) {
			if( $product->is_type( 'variable' ) ){
				foreach ( $product->get_available_variations() as $key => $variation_data ) {
					$weight = $variation_data['weight']; // Get weight from variation

					if ( ! $weight ) {
						
						if (!$i) {
							echo '<div class="notice notice-warning is-dismissible"><h3>Questi prodotti sono acquistabili e non hanno peso</h3><ul>';
							$i++;
						}
						echo '<li><a href="' . esc_url( get_edit_post_link( $product->get_id() ) ) . '">' . $product->get_name() . ' Variation sku :' .$variation_data['sku'] .' Variation ID #:'.$variation_data['variation_id'].'</a></li>';
					} 
				}
			} else {
				if (!$i) {
					echo '<div class="notice notice-warning is-dismissible"><h3>Questi prodotti sono acquistabili e non hanno peso</h3><ul>';
					$i++;
				}
				echo '<li><a href="' . esc_url( get_edit_post_link( $product->get_id() ) ) . '">' . $product->get_name() . '</a></li>';
			}
         }
      }
	  if($i){
		echo '</ul></div>';
	  }
    }
}

Hai un problema con il web?

Il tuo sito internet non vuole funzionare?

Vuoi rinnovarlo o sistemarlo?

Hai un’idea di integrazione ma non sai se è possibile realizzarla o meno?

    Accetto la Privacy Policy
    Autorizzo al trattamento dei miei dati personali, per ricevere le informazioni richieste attraverso questo modulo di contatto. I dati da te inseriti attraverso questo modulo verranno utilizzati solo per essere da me ricontattato.

    Recensioni

    Scrivimi una recensione

    Questo QR Code ti permette di lasciarmi una recensione in maniera facile e veloce.

    Altrimenti qui sotto ti lascio un bottone, con il quale puoi lasciare la recensione direttamente su Google My Business.

    Lascia una recensione su Google