Pregunta sobre Developing with WordPress de Wordpress:

La clase FPDF no se puede declarar porque el nombre ya está en uso

Un usuario preguntó 👇

¡Hola!

Soy nuevo en el foro y tengo un problema que es extremadamente fácil de resolver para alguien con pocas habilidades en el desarrollo de WP :-).

Quiero crear un plugin que cree archivos PDF. He estado usando FPDF desde que lo usé antes y creo que funciona muy bien.

Mi problema es que cuando intento reclamar la clase fpdf, aparece el error: Error fatal: No se puede declarar la clase FPDF, porque el nombre ya está en uso en / wp-content / plugins / tage- test / fpdf181 / fpdf.php en línea 12

A continuación se muestra una versión simplificada en la que solo intento crear un archivo PDF. Si alguien pudiera ayudarme o guiarme en la dirección correcta, ¡realmente lo quiero!

add_shortcode (‘crear_factura’, ‘forma_maratón’); require_once (‘fpdf181 / fpdf.php’);

function marathon_form () {$ pdf = new FPDF (); $ pdf-> SetDisplayMode (‘página completa’); $ pdf-> SetMargins (0, 15); $ pdf-> AddFont (‘VerlagBook’, «, ‘HBGMv-Book.php’); $ pdf-> AddFont (‘VerlagBold’, ‘B’, ‘HBGMv-Bold.php’); $ pdf-> AddPage ( ‘P’, ‘A4’); $ pdf-> SetFont (‘VerlagBold’, ‘B’, 15); $ pdf-> Cell (185,5, ‘Factura’, 0,1, ‘R’);

$ outputName = ‘sonrasc.pdf’; $ pdf-> Salida ($ outputName, ‘F’);

}

(@jakept)

Hace 2 años, 4 meses

Es posible que ya tenga instalado un plugin que incluye una biblioteca FPDF. ¿Sigue ocurriendo el error si desactiva sus otros plugins?

Lanzador de hilos

(@andreasgartmyr)

Hace 2 años, 4 meses

Te dije que era fácil :-)! Tienes mucha razon. ¡Gracias por tomarse el tiempo! Encontré el plugin y lo eliminé. ¡¡Gracias!!

Ahora surge otro problema. Cuando ejecuto el código para crear PDF en un archivo php separado, se crea el PDF pero cuando lo uso en un plugin como se mencionó anteriormente, aparece un error: Error fatal: Excepción no anunciada: Error de FPDF: Algunos datos ya se han enviado no envíe un archivo PDF (la salida comenzó en /home/helsing1/public_html/runnersclub.se/wp-includes/class.wp-styles.php:225) en /home/helsing1/public_html/runnersclub.se/wp- content / plugins /tage-test/fpdf181/fpdf.php:271 Seguimiento de apilamiento: # 0 /home/helsing1/public_html/runnersclub.se/wp-content/plugins/tage-test/fpdf181/fpdf.php(1052): FPDF- > Error (‘Sí …’) # 1 /home/helsing1/public_html/runnersclub.se/wp-content/plugins/tage-test/fpdf181/fpdf.php(999): FPDF -> _ checkoutput () # 2 /home/helsing1/public_html/runnersclub.se/wp-content/plugins/tage-test/tage-test.php(22): FPDF-> Salida (‘I’) # 3 / home / helsing1 / public_html / runnersclub . se / wp-include / shortcodes.php (319): marathon_form (”,”, ‘mjau’) # 4 [internal function]: do_shortcode_tag (matriz) # 5 /home/helsing1/public_html/runnersclub.se/wp-includes/shortcodes.php(197): preg_replace_callback (‘/ \[(\[?)(mjau)(…’, ‘do_shortcode_ta…’, ‘[mjau]’) # 6 /home/helsing1/public_html/runnersclub.se/wp-content/pl en /home/helsing1/public_html/runnersclub.se/wp-content/plugins/tage-test/fpdf181/fpdf.php en línea 271

(@bcworkz)

Hace 2 años, 4 meses

No estoy familiarizado con FPDF, pero espero que agregue encabezados de tipo MIME antes de que se genere el PDF. Los encabezados PHP no se pueden enviar si la salida ya ha comenzado. Para los atajos, la salida siempre se inicia. Así que me temo que los atajos son el vehículo equivocado para implementar FPDF.

Necesita código que maneje FPDF instantáneamente y salida PDF sin enviar otras salidas primero. Si no necesita recursos de WP para hacer esto, una página .php independiente puede ser la más fácil. Si necesita recursos de WP, la mejor manera de avanzar depende de enviar los datos necesarios a la muestra FPDF. Sus opciones son limitadas: Ajax, vaya a admin-post.php o plantilla de página personalizada sin encabezado personalizado u otra salida previa.

Por cierto, cuando declara una clase que está disponible como FPDF, es una buena práctica devolver la declaración a if ( class_exists('FPDF')): declaración para prevenir … Los errores no se pueden declarar. Si todos los plugins de desarrolladores hicieran esto, tales errores nunca ocurrirían.

Lanzador de hilos

(@andreasgartmyr)

Hace 2 años, 4 meses

¡Gracias por tu respuesta @bcworkz! Tendré que probar un enfoque diferente.

¡Cuídate!

¿Solucionó tu problema??

0 / 0

Deja una respuesta 0

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