Woocommerce Prodotto Singolo – Cambiare l’ordine degli hooks

Lo snippet di seguito permette di personalizzare l’ordine delle informazioni che vengono create nelle pagine dei singoli prodotti da Woocommerce.

Lo snippet va inserito nel file del tema child functions.php

/*Separazione delle info in woocommerce_template_single_meta */
/*
//questi comandi servono a creare una riga per le category e un'altra per lo sku
//dopodiché le category vanno messe prima del titolo (hook posizione<5), mentre lo sku va messo sotto il titolo (=6)
*/

//Funzione personalizzata che estrae solo la categoria dai meta-data

function woocommerce_template_single_meta_keep_category_only(){    

global $post, $product;

$cat_count = sizeof( get_the_terms( $post->ID, 'product_cat' ) );
$tag_count = sizeof( get_the_terms( $post->ID, 'product_tag' ) );

?>
<div class="product_meta">

  <?php do_action( 'woocommerce_product_meta_start' ); ?>


  <?php echo $product->get_categories( ', ', '<span class="posted_in_AB">' . _n( '', '', $cat_count, 'woocommerce' ) . ' ', '</span> <hr/>' ); ?>

  <?php do_action( 'woocommerce_product_meta_end' ); ?>

</div>

<?php
}

//Funzione personalizzata che estrae solo lo SKU dai meta-data
function woocommerce_template_single_meta_keep_SKU_only(){    

global $post, $product;

?>
<div class="product_meta">

	<?php do_action( 'woocommerce_product_meta_start' ); ?>

	<?php if ( wc_product_sku_enabled() && ( $product->get_sku() || $product->is_type( 'variable' ) ) ) : ?>

		<span class="sku_wrapper"><?php _e( 'SKU:', 'woocommerce' ); ?> <span class="sku" itemprop="sku"><?php echo ( $sku = $product->get_sku() ) ? $sku : __( 'N/A', 'woocommerce' ); ?></span></span>

	<?php endif; ?>

	<?php do_action( 'woocommerce_product_meta_end' ); ?>

</div>

<?php
}

/*inserisce una riga dopo il prezzo*/
function woocommerce_template_single_divider() {
	echo '<hr>';
}

/*inserisce del testo dopo "acquista il prodotto" (inseriscie*/
function woocommerce_template_single_text() {
	echo '<p>Ti ricordiamo che questi prodotti sono eseguiti a mano</p>';
}

//Changes the order of single product elements
add_action ( 'woocommerce_single_product_summary', 'woocommerce_template_single_meta_keep_category_only', 4);
remove_action( 'woocommerce_single_product_summary', 'woocommerce_template_single_meta', 40 );
add_action( 'woocommerce_single_product_summary', 'woocommerce_template_single_meta_keep_SKU_only', 6 );
remove_action( 'woocommerce_single_product_summary', 'woocommerce_template_single_excerpt', 20 );
add_action( 'woocommerce_single_product_summary', 'woocommerce_template_single_excerpt', 10 );
remove_action( 'woocommerce_single_product_summary', 'woocommerce_template_single_price', 10 );
add_action( 'woocommerce_single_product_summary', 'woocommerce_template_single_price', 20 );
add_action( 'woocommerce_single_product_summary', 'woocommerce_template_single_divider', 15 );
add_action( 'woocommerce_single_product_summary', 'woocommerce_template_single_text', 30 );