WordPress - Modificar php en wordpress

 
Vista:
sin imagen de perfil

Modificar php en wordpress

Publicado por Elisa (1 intervención) el 22/03/2021 13:50:50
No se como modificar este código para que el texto de después del precio solo salga en la PÁGINA DE LA TIENDA y no en la de producto al calcular el precio.

Adjunto código :

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
add_action( 'woocommerce_product_options_general_product_data', 'woo_anadir_sufijo', 10);
	function woo_anadir_sufijo() {
	global $woocommerce;
 
// CAMPO DE EDICIÓN DE TEXTO DEL SUFIJO.
woocommerce_wp_textarea_input(
   array(
   'class' => array('large_windows_sufijo'),
   'id' => '_sufijo',
   'label' =>__( 'Sufijo detras del precio(F)', 'woocommerce' ),
   'placeholder' => 'Pej: Sin IVA, (+IVA), En liquidación, Últimas unidades, Artículo rabajado, Por m2, Por litro, En oferta....',
   'desc_tip' => 'true',
   'description' => __( '<center><strong>SUFIJO PERSONALIZADO EN PRECIOS<center></strong>A&#241;ada aqu&iacute; un texto personalizado a modo de sufijo para que se muestre detras del precio del producto principal para informar a sus clientes de alguna caracter&iacute;stica destacada sobre &eacute;l o sobre cantidades incluidas etc. Pej: Sin IVA, (+IVA), En liquidaci&oacute;n, Art&iacute;culo rabajado, Por m2, Por litro, En oferta, 100g o100 Piezas por caja etc.... o una combinaci&oacute;n de varios. Este sufijo se mostrar&aacute; en los productos de la parrilla de cada categor&iacute;a y en el precio de producto principal.</strong>.', 'woocommerce' )));
}
 
// GUARDA EL CAMPO DEL SUFIJO EN LA DB.
add_action( 'woocommerce_process_product_meta', 'woo_salvar_sufijo' );
     function woo_salvar_sufijo( $post_id ){
     $woocommerce_sufijo = $_POST['_sufijo'];
     if( isset( $woocommerce_sufijo ) )
     update_post_meta( $post_id, '_sufijo', esc_attr( $woocommerce_sufijo ) );
}
// echo get_post_meta(get_the_ID(), 'wc_price_per_unit_key', true);
// MUESTRA EL SUFIJO DETRAS DEL PRECIO EN EL PRODUCTO PRINCIPAL Y  EN LOS DE LA PARRILLA
add_filter('woocommerce_get_price_html','anade_sufijo_detras_del_precio');
	function anade_sufijo_detras_del_precio( $price ) {
    $price .= ' ' . get_post_meta(get_the_ID(),  '_sufijo', true);
    return $price;
	add_action( 'woocommerce_before_calculate_totals', 'anade_sufijo_detras_del_precio' );	// Esta línea coloca el sufijo en el producto principal.
	add_action( 'woocommerce_after_shop_loop_item_title', 'anade_sufijo_detras_del_precio', 11 ); // Esta línea coloca el sufijo en los productos de la parrilla.
}
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
Imágen de perfil de Alejandro

Mostrar el sufijo solo en la página de la tienda y no en la página de producto al calcular el precio

Publicado por Alejandro (169 intervenciones) el 16/04/2024 19:21:54
Elisa, para lograr que el texto después del precio solo se muestre en la página de la tienda y no en la página de producto al calcular el precio, puedes seguir los siguientes pasos:

1. Abre el archivo functions.php de tu tema de WordPress.
2. Agrega el siguiente código al final del archivo:

1
2
3
4
5
6
7
add_filter('woocommerce_get_price_html','anade_sufijo_detras_del_precio');
function anade_sufijo_detras_del_precio( $price ) {
    if (is_shop()) { // Verifica si es la página de la tienda
        $price .= ' ' . get_post_meta(get_the_ID(),  '_sufijo', true);
    }
    return $price;
}

Este código agrega un filtro a la función woocommerce_get_price_html que se encarga de mostrar el precio en la página de producto. Dentro de la función anade_sufijo_detras_del_precio, se verifica si la página actual es la de la tienda utilizando la función is_shop(). Si es la página de la tienda, se agrega el sufijo al precio.

Guarda los cambios en el archivo functions.php y verifica si el problema se ha solucionado. Ahora, el sufijo solo se mostrará en la página de la tienda y no en la página de producto al calcular el precio.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar