Отображать список элементов из листов Google в раскрывающемся меню выбора в форме Wordpress, созданной Ninja Forms.

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

Чтобы выполнить предварительное заполнение поля Select с помощью Ninja Forms, я сослался на https://francescocarlucci.com/wordpress/select-field-pre-population-ninja-forms/ $options — это массив, который при статической установке дает мне ожидаемое раскрывающееся меню: например. -

$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' ); код не может получить доступ к файлу учетных данных.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

person Shritama Sengupta    schedule 09.07.2019    source источник
comment
PHP сообщает вам, что не может найти ваш файл credentials.json. Попробуйте вместо этого: $client->setAuthConfig( get_theme_file_path('credentials.json') );   -  person cabrerahector    schedule 09.07.2019
comment
Это сработало. Большое спасибо! Очень ценю.   -  person Shritama Sengupta    schedule 09.07.2019


Ответы (1)


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

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

person Shritama Sengupta    schedule 18.07.2019