如何在函数.php wordpress的函数中创建类的对象


How to create object of class inside function in function.php of wordpress

我正在将谷歌电子表格集成到我的项目中。 我必须将表单数据保存到谷歌电子表格中。
为此,我正在使用asimqt php-google-spreadsheet-client库。

我在网站上有一个表单,该表单正在使用 ajax 提交。为此,我在函数.php中编写了函数。

初始化 DefaultServiceRequest 类的对象时出错。

错误:

致命错误:找不到类"Google''电子表格''默认服务请求"

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"语句?

似乎是vendor文件夹位置的问题。确保文件可以访问供应商文件夹

将文件夹层次结构视为

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

如果您的供应商文件夹在your-theme/vendor则在您的函数中.php

你应该写

require 'vendor/autoload.php';

如果vendor在WP的根目录中,请确保使用以下内容遍历回根文件夹:

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

只需将require '/vendor/autoload.php';替换为require_once('vendor/autoload.php');

刚才我自己在这里为你尝试了这个,它有效。