Подключение к базе данных Wordpress из FPDF - PullRequest
0 голосов
/ 11 сентября 2018

Я использую tuto для создания небольшого плагина для печати результатов из базы данных в pdf. Для этого я использовал библиотеку FPDF.

Теперь я просто хочу напечатать имя пользователя в моем pdf. Но, похоже, не работает для меня ... Вот проблема: «Uncaught Error: вызов неопределенной функции wp_get_current_user ()»

А вот и мой код:

     <?php

           if ( ! defined( 'ABSPATH' ) ) {
            exit;
        }

include($_SERVER['DOCUMENT_ROOT'].'/wp-load.php');
if(!function_exists('wp_get_current_user')) { include(ABSPATH . "wp-includes/pluggable.php"); } 


        include( 'atomicsmash-pdf-helper-functions.php');


        if( isset($_POST['generate_posts_pdf'])){
            output_pdf();
        }

        function output_pdf() {
          global $wpdb;
          $current_user = wp_get_current_user();
              $pdf = new PDF_HTML();
              $pdf->AddPage();
              $pdf->SetFont('Arial','B',16);
              $pdf->Cell(40,10, $current_user->display_name);
              $pdf->Cell(0,5,'L NAME:'.$current_user['display_name'], 0, 0, 'L');
              $pdf->Cell(40,10, 'Hello World');


            $pdf->Output('D','resultat.pdf');
            exit;
        }


        function as_fpdf_create_admin_page() {
        ?>
        <div class="wrap">
            <form method="post" id="as-fdpf-form">
                  <button class="button button-primary" type="submit" name="generate_posts_pdf" value="generate">Generate PDF from Wordpress Posts</button>
            </form>
        </div>
        <?php
        }

Кажется, что я не подключен к wpdb ...

Если кто-то может мне помочь, я буду очень благодарен!

Увидимся

1 Ответ

0 голосов
/ 11 сентября 2018

Я думаю, вам нужно включить wp-load.php

Это файл Bootstrap для установки константы ABSPATH и загрузки файла wp-config.php. Затем файл wp-config.php загрузит файл wp-settings.php, который затем настроит среду WordPress.

Если вы находитесь в папке плагинов, то вам нужно включить как:

require_once('../../../wp-load.php'); 
...