Как создать объект класса внутри функции в function.php wordpress

Я интегрирую электронную таблицу Google в свой проект. Я должен сохранить данные формы в электронную таблицу Google.
Для этого я использую asimqt PHP-Google-таблицы-клиент библиотека.

У меня есть одна форма на сайте, которая отправляется с использованием ajax. Для этого я написал функцию в function.php.

Получение ошибки при инициализации объекта класса DefaultServiceRequest.

Ошибка: Неустранимая ошибка: класс ‘Google \ Spreadsheet \ DefaultServiceRequest’ не найден

require '/vendor/autoload.php';

use  Google\Spreadsheet\DefaultServiceRequest;
use  Google\Spreadsheet\ServiceRequestFactory;function spreadsheet_feeds()
{
$access_tok = 'xyz-token';

$serviceRequest = new DefaultServiceRequest($access_tok); // Getting error
ServiceRequestFactory::setInstance($serviceRequest);

$spreadsheetService = new Google\Spreadsheet\SpreadsheetService();
$spreadsheetFeed = $spreadsheetService->getSpreadsheets();

}

add_action( 'wp_ajax_nopriv_spreadsheet_data', 'spreadsheet_feeds' );
add_action('wp_ajax_spreadsheet_data','spreadsheet_feeds');

Любая помощь, почему эта ошибка происходит, потому что класс уже включается с помощью оператора «use»?

0

Решение

Кажется, это проблема с расположением вашего vendor папка.
Убедитесь, что папка вендора доступна файлу

Учитывая вашу иерархию папок, чтобы быть

-wp-content
--themes
---your-theme
----functions.php

Если у вас есть папка поставщика в your-theme/vendor тогда в вашем functions.php

ты должен написать

require 'vendor/autoload.php';

и если vendor находится в корневом каталоге WP, убедитесь, что вы вернулись обратно в корневую папку, используя что-то вроде:

require __DIR__ .'/../../../../vendor/autoload.php';

0

Другие решения

Просто замени require '/vendor/autoload.php'; в require_once('vendor/autoload.php');

Только сейчас я попробовал это здесь для себя, и это работает.

0

По вопросам рекламы [email protected]