Ayuda código PHP error plugin PDF Invoices & Packing Slips for WooCommerce
-
Buenos días,
Estoy teniendo problemas con el plugin PDF Invoices, hace unos meses modifiqué mi archivo functions.php del tema hijo para agregar un código php que añadiera el campo del dni en las compras de woocommerce.
Ahora al instalar este plugin me arroja el siguiente error y no sé como arreglarlo ya que el código php lo domino lo justo.¿Me podrían ayudar?
Fatal error: Call to a member function custom_field() on null /home/neurova/www/wp-content/themes/porto-child/functions.php (166) #0 /home/neurova/www/wp-includes/class-wp-hook.php(326): incluir_nif_en_factura('APANATE ASOCIAC...') #1 /home/neurova/www/wp-includes/plugin.php(205): WP_Hook->apply_filters('APANATE ASOCIAC...', Array) #2 /home/neurova/www/wp-content/plugins/woocommerce-pdf-invoices-packing-slips/includes/documents/abstract-wcpdf-order-document-methods.php(93): apply_filters('wpo_wcpdf_billi...', 'APANATE ASOCIAC...', Object(WPO\WC\PDF_Invoices\Documents\Invoice)) #3 /home/neurova/www/wp-content/plugins/woocommerce-pdf-invoices-packing-slips/includes/documents/abstract-wcpdf-order-document-methods.php(102): WPO\WC\PDF_Invoices\Documents\Order_Document_Methods->get_billing_address() #4 /home/neurova/www/wp-content/plugins/woocommerce-pdf-invoices-packing-slips/templates/Simple/invoice.php(42): WPO\WC\PDF_Invoices\Documents\Order_Document_Methods->billing_address() #5 /home/neurova/www/wp-content/plugins/woocommerce-pdf-invoices-packing-slips/includes/documents/abstract-wcpdf-order-document.php(1138): include('/home/neurova/w...') #6 /home/neurova/www/wp-content/plugins/woocommerce-pdf-invoices-packing-slips/includes/documents/abstract-wcpdf-order-document.php(982): WPO\WC\PDF_Invoices\Documents\Order_Document->render_template('/home/neurova/w...', Array) #7 /home/neurova/www/wp-content/plugins/woocommerce-pdf-invoices-packing-slips/includes/documents/abstract-wcpdf-order-document.php(937): WPO\WC\PDF_Invoices\Documents\Order_Document->get_html() #8 /home/neurova/www/wp-content/plugins/woocommerce-pdf-invoices-packing-slips/includes/documents/abstract-wcpdf-order-document.php(1004): WPO\WC\PDF_Invoices\Documents\Order_Document->get_pdf() #9 /home/neurova/www/wp-content/plugins/woocommerce-pdf-invoices-packing-slips/includes/class-wcpdf-main.php(580): WPO\WC\PDF_Invoices\Documents\Order_Document->output_pdf('inline') #10 /home/neurova/www/wp-includes/class-wp-hook.php(324): WPO\WC\PDF_Invoices\Main->generate_document_ajax('') #11 /home/neurova/www/wp-includes/class-wp-hook.php(348): WP_Hook->apply_filters('', Array) #12 /home/neurova/www/wp-includes/plugin.php(517): WP_Hook->do_action(Array) #13 /home/neurova/www/wp-admin/admin-ajax.php(188): do_action('wp_ajax_generat...') #14 {main}Y este es el código que añadí a mi functions, el error 166 que indica arriba es esta línea: ($wpo_wcpdf->custom_field( ‘NIF’, ‘NIF: ‘ ):
/** * Añade el campo NIF a la página de checkout de WooCommerce */ add_action( 'woocommerce_after_order_notes', 'agrega_mi_campo_personalizado' ); function agrega_mi_campo_personalizado( $checkout ) { echo '<div id="additional_checkout_field"><h2 class="informacion">' . __('Información adicional') . '</h2>'; woocommerce_form_field( 'nif', array( 'type' => 'text', 'class' => array('my-field-class form-row-wide'), 'label' => __('NIF-DNI'), 'required' => true, 'placeholder' => __('Introduzca el Nº NIF-DNI'), ), $checkout->get_value( 'nif' )); echo '</div>'; } /** * Comprueba que el campo NIF no esté vacío */ add_action('woocommerce_checkout_process', 'comprobar_campo_nif'); function comprobar_campo_nif() { // Comprueba si se ha introducido un valor y si está vacío se muestra un error. if ( ! $_POST['nif'] ) wc_add_notice( __( 'NIF-DNI, es un campo requerido. Debe de introducir su NIF DNI para finalizar la compra.' ), 'error' ); } /** * Actualiza la información del pedido con el nuevo campo */ add_action( 'woocommerce_checkout_update_order_meta', 'actualizar_info_pedido_con_nuevo_campo' ); function actualizar_info_pedido_con_nuevo_campo( $order_id ) { if ( ! empty( $_POST['nif'] ) ) { update_post_meta( $order_id, 'NIF', sanitize_text_field( $_POST['nif'] ) ); } } /** * Muestra el valor del nuevo campo NIF en la página de edición del pedido */ add_action( 'woocommerce_admin_order_data_after_billing_address', 'mostrar_campo_personalizado_en_admin_pedido', 10, 1 ); function mostrar_campo_personalizado_en_admin_pedido($order){ echo '<p><strong>'.__('NIF').':</strong> ' . get_post_meta( $order->id, 'NIF', true ) . '</p>'; } /** * Incluye el campo NIF en el email de notificación del cliente */ add_filter('woocommerce_email_order_meta_keys', 'muestra_campo_personalizado_email'); function muestra_campo_personalizado_email( $keys ) { $keys[] = 'NIF'; return $keys; } /** *Incluir NIF en la factura (necesario el plugin WooCommerce PDF Invoices & Packing Slips) */ add_filter( 'wpo_wcpdf_billing_address', 'incluir_nif_en_factura' ); function incluir_nif_en_factura( $address ){ global $wpo_wcpdf; echo $address . '<p>'; $wpo_wcpdf->custom_field( 'NIF', 'NIF: ' ); echo '</p>'; }
Viendo 3 respuestas - de la 1 a la 3 (de un total de 3)
Viendo 3 respuestas - de la 1 a la 3 (de un total de 3)
El debate ‘Ayuda código PHP error plugin PDF Invoices & Packing Slips for WooCommerce’ está cerrado a nuevas respuestas.