Ошибка: вызов функции-члена post() на null в WooCommerce Rest API
Я пытаюсь добавить продукты WooCommerce через собственный плагин. Моя форма отображается, но когда я ее отправляю, возникает ошибка.
Это моя форма, которая отображается:
После отправки формы выше появляется ошибка (подробности ошибки):
Это мой код:
/**
*Plugin Name: Product Form
*Description: This my First Plugin
**/
require __DIR__ . '/../vendor/autoload.php';
use Automattic\WooCommerce\Client;
use Automattic\WooCommerce\HttpClient\HttpClientException;
$woocommerce = new Client(
'http://httpsjaymodi873626907wordpresscom.local/',
'my ck',
'my cs',
[
'wp_api' => true,
'version' => 'wc/v3',
'verify_ssl' => 'false'
]
);
<?php
function product_form_menu_option()
{
add_menu_page('Form', 'Product Form', 'manage_options', 'product_form_menu', 'product_form_page', '', 200);
}
add_action('admin_menu', 'product_form_menu_option');
function product_form_page()
{
?>
<h1>Product Form</h1>
<form action="" method="post">
<label>Product Name</label>
<input type="text" name="name" required=""><br><br>
<label>Price</label>
<input type="text" name="regular_price"><br><br>
<label>Description</label>
<input type="text" name="description" required=""><br><br>
<label>Short Description</label>
<input type="text" name="short_description"><br><br><br>
<button type="submit" name="submit">Submit</button>
</form>
<?php
}
if(isset($_POST['submit']))
{
addProduct();
}
function addProduct()
{
echo $_POST['name'];
$data = [
'name' => $_POST['name'],
'type' => $_POST['regular_price'],
'regular_price' => $_POST['regular_price'],
'description' => $_POST['description'],
'short_description' => $_POST['short_description'],
];
print_r($woocommerce->post('products', $data));
}
?>
1 ответ
Похоже на твой <?php
открытый тег должен быть в первой строке. ошибка в основном говорит$woocommerce
переменная равна нулю.
Кроме того, вероятно, имеет смысл инициализировать эту переменную внутри соответствующей функции, иначе у вас могут возникнуть проблемы с видимостью области видимости.