Mostrar el precio de venta antes del precio regular en WooCommerce

2 minutos de lectura

avatar de usuario
donald.sys

Soy un miembro nuevo y es débil en el programador. Quiero mostrar el precio de venta antes que el precio regular (como se adjuntan las imágenes). Determiné que el gancho aquí es woocommerce_before_variations_form. Aquí está el código para editar en el gancho.

// define the woocommerce_before_variations_form callback
function action_woocommerce_before_variations_form () {
     // make action magic happen here ...
};
         
// add the action
add_action ('woocommerce_before_variations_form', 'action_woocommerce_before_variations_form', 10, 0);

imágenes

¿Me pueden ayudar a mostrar el precio de oferta antes que el precio normal?

  • ¿Puedes compartir algún código html y css relacionado con esto?

    – Nasser Alí Karimi

    17 de febrero de 2019 a las 4:55


El siguiente código de función enganchado mostrará el precio de venta antes del precio normal:

add_filter( 'woocommerce_format_sale_price', 'invert_formatted_sale_price', 10, 3 );
function invert_formatted_sale_price( $price, $regular_price, $sale_price ) {
    return '<ins>' . ( is_numeric( $sale_price ) ? wc_price( $sale_price ) : $sale_price ) . '</ins> <del>' . ( is_numeric( $regular_price ) ? wc_price( $regular_price ) : $regular_price ) . '</del>';
}

El código va en el archivo function.php del tema secundario activo (o tema activo). Probado y funciona.

  • Probé y esto funciona en algunos productos pero no funciona en otros. Revisé y son del mismo tipo de producto (suscripción o producto simple). drive.google.com/file/d/1r7T6_Q-AKJO2jprmZE6SaB1pvRaqhNeh/… Enlace de ejemplo: oferta.grow.vn/danh-muc/oferta

    – ALEGRÍA

    3 de agosto de 2021 a las 4:36


  • En realidad, descubrí que no funciona con el descuento de membresías de WooCommerce. Entonces, si el producto fue descontado por el plan de membresía, aún muestra el precio de venta después del precio regular.

    – ALEGRÍA

    3 de agosto de 2021 a las 8:46

Puede resolver esto usando solo jQuery y cambiar a un elemento que muestre el precio regular y el precio de venta:

$("#element1").before($("#element2"));

o

$("#element1").after($("#element2"));

🙂

y uno más en js fiddle
https://jsfiddle.net/nak73406/v9k7b5c1/5/

¿Ha sido útil esta solución?