Cambiar el orden del HTML de los productos en WooCommerce


La ficha del producto en WooCommerce se muestra en el fichero “single-products.php”, en el podemos ver la siguiente función:

/**
 * woocommerce_single_product_summary hook
 *
 * @hooked woocommerce_template_single_title - 5
 * @hooked woocommerce_template_single_rating - 10
 * @hooked woocommerce_template_single_price - 10
 * @hooked woocommerce_template_single_excerpt - 20
 * @hooked woocommerce_template_single_add_to_cart - 30
 * @hooked woocommerce_template_single_meta - 40
 * @hooked woocommerce_template_single_sharing - 50
 */
do_action( 'woocommerce_single_product_summary' );

Esta función llama a todos los “templates” para formar la ficha del producto. Pero si queremos cambiar el orden en el que se muestran estos “hooks”, podemos hacerlo escribiendo las siguientes lineas en el fichero functions.php

remove_action( 'woocommerce_single_product_summary', 'woocommerce_template_single_add_to_cart', 30 );
add_action( 'woocommerce_single_product_summary', 'woocommerce_template_single_add_to_cart', 15 );

Con esto modificamos la “prioridad” del template, eliminándolo primero y volviéndolo a agregar. En este caso lo que hemos hecho es que el “add_to_cart” vaya delante que el “excerpt”.

Si quisiéramos ahora por ejemplo poner el “meta” (etiquetas) justo abajo del add_to_cart haríamos lo siguiente:

remove_action( 'woocommerce_single_product_summary', 'woocommerce_template_single_meta', 40 );
add_action( 'woocommerce_single_product_summary', 'woocommerce_template_single_meta', 16 );
Etiquetas: , ,
@AguayoMarcos

Fullstack Developer, programador iOS / Android y emprendedor. Actualmente trabajo en Cocunat.com como CTO.

You may also like