Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

153
Vistas
agregue un campo personalizado en un ID de producto específico woocommerce

Quiero agregar un campo personalizado "Descripción del producto" en un conjunto específico de productos de woocommerce en functions.php. Vea el siguiente código:

 add_action('woocommerce_before_add_to_cart_button','wdm_add_custom_fields'); function wdm_add_custom_fields( $cart ) { global $product; ob_start(); ?> <div class="wdm-custom-fields"> <label>Product Description</label>: <input type="text" name="wdm_name"> </div> <div class="clear"></div> <?php $content = ob_get_contents(); $targeted_ids = array(29, 27, 28, 72, 84, 95); ob_end_flush(); foreach ( $cart->get_cart() as $item ) { if ( array_intersect($targeted_ids, array($item['product_id'], $item['variation_id']) ) ); } return $content; }

No sé qué salió mal con el código, ya que Wordpress dice "Ha habido un error crítico en este sitio web". Aviso. Encendí el informe de errores de WordPress en el archivo wp-config.php pero no mostró ningún error.

 define('WP_DEBUG', true); define('WP_DEBUG_DISPLAY', true);

Tal vez la instrucción if no esté funcionando. Por favor avise.

over 4 years ago · Santiago Trujillo
1 Respuestas
Responde la pregunta

0

He activado el modo de depuración y obtuve un error en el registro de depuración. Tienes que agregar define( 'WP_DEBUG_LOG', true ); al archivo wp-config.php para registrar los errores en un archivo llamado debug.log

En lugar de usar $cart en foreach, usa WC()->cart->get_cart() .

Pero si su requisito es mostrar un campo personalizado en la página de un solo producto para una ID de producto en particular, entonces podría usar lo siguiente.

 add_action('woocommerce_before_add_to_cart_button','wdm_add_custom_fields'); function wdm_add_custom_fields() { global $product; $targeted_ids = array(29, 27, 28, 72, 84, 95); if(in_array( $product->get_id(), $targeted_ids ) ){ ?> <div class="wdm-custom-fields"> <label>Product Description</label>: <input type="text" name="wdm_name"> </div> <div class="clear"></div> <?php } }

Suponiendo que necesita mostrar un campo personalizado en la página de un solo producto en función de la identificación del producto, se equivocó. Estaba tratando de obtener productos del carrito, lo que significa que el producto debe agregarse al carrito para mostrar el campo personalizado. En su lugar, debe acceder al ID del producto desde la variable global $product .

Además, no necesita devolver datos a un enlace de acción, puede escribir html o simplemente echo de los contenidos almacenados en una variable.

over 4 years ago · Santiago Trujillo Denunciar
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda