Pregunta sobre WooCommerce de Wordpress:

Mostrar% de descuento en la insignia de ventas

Un usuario preguntó 👇

Por favor, necesito ayuda. No sé qué hacer porque no sé cómo codificar cosas.

Quiero que la insignia de ventas de la tasa de descuento del producto muestre qué precio está por debajo del precio base, por ejemplo:

En lugar de decir «ahorre 12 dólares», diga «40% de descuento» y permita que el sitio calcule la tasa de descuento por sí mismo cada vez que cambie el precio de un producto.

Por favor, ayúdame, ten en cuenta que no sé cómo hacerlo gratis con códigos.

(@ nigel52)

Hace 1 año, 7 meses

Parece haber logrado el resultado que deseaba. ¿Puedo preguntarle cómo lo hizo mientras intentaba hacer algo similar en mi sitio?

(@ rynald0s)

Ingeniero Automático de Felicidad

Hace 1 año, 6 meses

¡Hola @ nigel52!

Puedes usar algo como esto:

add_filter( 'woocommerce_sale_flash', 'add_percentage_to_sale_badge', 20, 3 );
function add_percentage_to_sale_badge( $html, $post, $product ) {
    if( $product->is_type('variable')){
        $percentages = array();

        // Get all variation prices
        $prices = $product->get_variation_prices();

        // Loop through variation prices
        foreach( $prices['price'] as $key => $price ){
            // Only on sale variations
            if( $prices['regular_price'][$key] !== $price ){
                // Calculate and set in the array the percentage for each variation on sale
                $percentages[] = round(100 - ($prices['sale_price'][$key] / $prices['regular_price'][$key] * 100));
            }
        }
        $percentage = max($percentages) . '%';
    } else {
        $regular_price = (float) $product->get_regular_price();
        $sale_price    = (float) $product->get_sale_price();

        $percentage    = round(100 - ($sale_price / $regular_price * 100)) . '%';
    }
    return '<span class="onsale">' . esc_html__( 'SALE', 'woocommerce' ) . ' ' . $percentage . '</span>';
}

Puede usar un plugin gratuito como https://wordpress.org/plugins/code-snippets/ para agregar el código a su sitio.

¡Salud!

(@ rynald0s)

Ingeniero Automático de Felicidad

Hace 1 año, 6 meses

Hola!

No hemos tenido noticias tuyas en un tiempo, así que seguiré adelante y marcaré este hilo como resuelto. Si tiene alguna otra pregunta, inicie un nuevo hilo.

¡Salud!

(@ tocar)

hace 1 año

Hola,

Estoy usando este código, ¡pero no funciona! aquí prajamart.com

Agregué el código a continuación después de que el código anterior funcionó // mostrando el valor de guardado add_filter porcentaje (‘woocommerce_get_price_html’, ‘change_displayed_sale_price_html’, 10, 2); change_displayed_sale_price_html function ($ price, $ product) {// Solo los productos se venden en la interfaz y excluyen el precio mínimo / máximo para productos variables si ($ producto-> is_on_sale () &&! is_admin () &&! $ product-> is_type (‘ variable ‘)) {// Obtener precios de productos $ regular_price = (float) $ product-> get_regular_price (); // Precio normal $ sale_price = (float) $ product-> get_price (); // Precio activo (el «precio de venta» cuando está en oferta)

// calcula el «porcentaje de guardado» y formatea $ precisión = 1; // Número máximo de decimales $ save_percentage = round (100 – ($ sale_price / $ regular_price * 100), 1). ‘%’;

// Apéndice del precio de formación html $ price. = Sprintf (__ (‘

Ahorra

‘,’ woocommerce ‘), $ save_percentage); } return $ precio; }

Esto ahorra un porcentaje, pero ¿cómo mostrarlo también para productos cambiables?

Esta respuesta fue modificada hace 1 año por. Razón: código extra

(@dglite)

Hace 9 meses, 3 semanas

Hola: el código funcionó muy bien para mí, ¡muchas gracias!

(@ nikostar73)

Hace 8 meses, 3 semanas

Hola @ rynald0s Gracias por tu código.

He cambiado esto
$percentage = max($percentages) . '%';
Con este:
$percentage = round(max($percentages)) . '%';
En este caso, cuando tenía un precio exacto, el porcentaje resultó en una forma decimal. De todos modos, tengo un error para productos agrupados:

VENTA DE% – Advertencia: Compartir con cero en /home/miosito.it/htdocs/wp-content/plugins/code-snippets/php/snippet-ops.php(446): estimado () ‘d código en línea 24.

¿Cómo puedo resolverlo?

Esta respuesta fue modificada hace 8 meses, 3 semanas por.

(@ saadtahir581)

Hace 5 meses, 1 semana

Esto funciona para simple productos, pero me da dos errores sobre productos variables. En la venta flash en el archivo, encuentro NAN% con un error de «Se encontró un valor no numérico».

(@ náufrago7)

Hace 3 meses, 2 semanas

Hola, estoy muy interesado en el tema, pero soy un novato y no sé dónde tengo que poner el código. Probé el archivo functions.php pero después de probar ambos códigos, ninguno de ellos funciona para mí. ¿Alguien me puede ayudar? Gracias

(@ rynald0s)

Ingeniero Automático de Felicidad

Hace 3 meses, 2 semanas

¡Hola @ saadtahir581!

No puedo replicar el mismo error en productos variables. Funciona con el tema central y el tema Storefront más reciente. Si no funciona para usted, puede haber un conflicto con su tema u otro plugin, y es posible que deba probar un conflicto de acuerdo con https://docs.woocommerce.com/document/how-to-test-for-conflicts/

@ náufrago7

El código aún funciona. Puede usar https://wordpress.org/plugins/code-snippets/ para agregar el código. La forma correcta de agregar el código> http://rynaldo.com/how-to-add-custom-code-to-your-woocommerce-wordpress-site-the-right-way/

¡Salud!

(@ náufrago7)

Hace 3 meses, 2 semanas

Genial, ahora funciona perfectamente. Usé el plugin de fragmentos de código para ingresar el código y todo es perfecto.

Una vez que se inserta el código, ¿puedo desactivar o eliminar el plugin de fragmentos de código?

(@ rynald0s)

Ingeniero Automático de Felicidad

Hace 3 meses, 2 semanas

¡Hola @ castaway7!

Una vez que se inserta el código, ¿puedo desactivar o eliminar el plugin de fragmentos de código?

No, necesitas habilitarlo. La eliminación del plugin ya no funcionará.

¡Salud!

(@hliltd)

Hace 2 meses, 2 semanas

Hola @ rynald0s ¿Cómo hago lo mismo para los bloques de Woocommerce? Tengo una página de inicio construida con bloques de gutenburg y woocommerce, pero el porcentaje de ventas solo muestra trabajos en la página de producto y las páginas de categoría que no se muestran también en el bucle de la página principal de la tienda

Muchas gracias

Glyn

(@danielbmxd)

Hace 2 meses

Hola @ rynald0s, ¿Se puede agregar una condición cuando se muestra agotado donde tiene 0 existencias de un producto en particular? Para productos cambiables, el woocommerce no funciona en productos simples. Probé el siguiente código, deshabilité la venta flash predeterminada, pero no estoy seguro de si está configurada correctamente

add_action (‘woocommerce_before_shop_loop_item_title’, ‘custom_before_shop_loop_item_title’, 2); add_filter (‘woocommerce_sale_flash’, ‘__return_null’); add_action (‘woocommerce_before_single_product_summary’, ‘show_product_loop_outofstock_badge’); función custom_before_shop_loop_item_title () {remove_action (‘woocommerce_before_shop_loop_item_title’, ‘woocommerce_show_product_loop_sale_flash’, 10); remove_action (‘woocommerce_before_single_product_summary’, ‘woocommerce_show_product_sale_flash’, 10); add_action (‘woocommerce_before_shop_loop_item_title’, ‘show_product_loop_outofstock_badge’, 10); }

show_product_loop_outofstock_badge function () {publicación $ global, $ producto; if ($ producto-> get_stock_status () == ‘outofstock’) {echo ‘‘. esc_html __ (‘Vacío’, ‘woocommerce’). ‘‘;} else {if ($ producto-> is_on_sale ()) {if ($ producto-> is_type (‘ variable ‘)) {$ porcentajes = editar ();

// Obtener todos los precios cambiados $ precios = $ producto-> get_variation_prices ();

// Recorre cada cambio de precios ($ precios[‘price’] as $ key => $ price) {// Solo para variaciones de venta si ($ precios[‘regular_price’][$key] ! == $ precio) {// Calcule y configure la matriz para cada cambio en una venta porcentual de $[] exacto (100 – ($ precios)[‘sale_price’][$key] / $ precios[‘regular_price’][$key] * 100)); }} $ porcentaje = máximo ($ porcentajes). ‘%’; } else {$ regular_price = (float) $ product-> get_regular_price (); $ precio_venta = (flotante) $ producto-> obtener_precio_venta ();

$ porcentaje = ronda (100 – ($ precio_oferta / $ precio_regular * 100)). ‘%’; } eco ‘‘. esc_html __ (‘-‘, ‘woocommerce’). ». $ porcentaje. ‘‘; }}}

(@nguyengato)

Hace 1 mes, 2 semanas

Hola, ¿alguien puede decirme cómo reemplazar el texto «VENTA ..%» por «- ..%»?

(@iglitztech)

Hace 1 mes, 1 semana

Hola @nguyengato

Cambie ‘SELL’ a ‘-‘ en la última línea … como se muestra a continuación

regreso ‘‘. esc_html __ (‘VENTA’, ‘woocommerce’). ». $ porcentaje. ‘‘; traer de vuelta ‘‘. esc_html __ (‘-‘, ‘woocommerce’). ». $ porcentaje. ‘‘;

¡Salud!

Esta respuesta fue modificada hace 1 mes, 1 semana por.

¿Solucionó tu problema??

0 / 0

Deja una respuesta 0

Tu dirección de correo electrónico no será publicada.