Отобразить список элементов из листов Google в выпадающем меню выбора в Wordpress Form, созданном Ninja Forms - PullRequest
0 голосов
/ 09 июля 2019

Поэтому я пытаюсь манипулировать файлом functions.php в Wordpress, чтобы добавить функцию, которая будет выполнять вызов API для API Google Sheets с помощью OAUth 2.0 или ключа API (в зависимости от того, что более безопасно), получить список элементов встолбец и сохранить его в массиве $ options, который затем будет отображаться в виде выпадающего списка меню.

Для этого Выберите предварительное заполнение поля с помощью форм ниндзя, я ссылался https://francescocarlucci.com/wordpress/select-field-pre-population-ninja-forms/ Параметры $массив, который при статической установке дает мне ожидаемое выпадающее меню: например, -

$options[1]['label'] = "One";
$options[2]['label'] = "Two";
$options[3]['label'] = "Three"; 

Я пробовал метод OAuth 2.0 из https://developers.google.com/sheets/api/quickstart/php

В строке $client->setAuthConfig( '/credentials.json' ); код не можетполучить доступ к файлу credentials.json.Я добавил файл JSON и все другие соответствующие файлы API в ту же папку, что и functions.php.Также мне нужен способ автоматизации

Я хочу, чтобы список элементов отображался в раскрывающемся меню Wordpress.Вместо этого я получаю пустую страницу и трассировку стека в моем файле debug.log:

[09-Jul-2019 19:46:15 UTC] PHP Fatal error:  Uncaught InvalidArgumentException: file "/credentials.json" does not exist in /var/www/html/wp-content/themes/twentynineteen/vendor/google/apiclient/src/Google/Client.php:870
#0 /var/www/html/wp-content/themes/twentynineteen/functions.php(322): 
Google_Client->setAuthConfig('/credentials.js...')
#1 /var/www/html/wp-content/themes/twentynineteen/functions.php(371): getClient()
#2 /var/www/html/wp-content/themes/twentynineteen/functions.php(437): quickstart()
#3 /var/www/html/wp-includes/class-wp-hook.php(286): select_pre_population_callback(Array, Array)
#4 /var/www/html/wp-includes/plugin.php(208): WP_Hook->apply_filters(Array, Array)
#5 /var/www/html/wp-content/plugins/ninja-forms/includes/Display/Render.php(271): apply_filters('ninja_forms_ren...', Array, Array)
#6 /var/www/html/wp-content/plugins/ninja-forms/includes/Display/Render.php(400): NF_Display_Render::localize(1)
#7 /var/www/html/wp-content/plugins/ninja-forms/ninja-forms.php(935): NF_Display_Render::localize_preview('1')
#8 /var/www/h in /var/www/html/wp-content/themes/twentynineteen/vendor/google/apiclient/src/Google/Client.php on line 870

1 Ответ

0 голосов
/ 18 июля 2019

Комментарий @cabrerahector работал для меня.

PHP сообщает, что не может найти файл credentials.json. Попробовал это вместо этого: $ client-> setAuthConfig (get_theme_file_path ('credentials.json')

...