我正在尝试通过 WooCommerce REST API 更新产品。但我收到错误。
这是 HTML 表单:
<form action="update_product_connect.php" name="update" method="post">
<tbody>
<?php foreach ( $data as $row ) : ?>
<tr>
<td><?= $row['id']; ?></td>
<td><input type="text" name="namee" value="<?= $row['name']; ?>"/></td>
<td><input type="text" name="descriptions" value="<?= $row['description']; ?>"/></td>
<td><input type="text" name="short_descriptions" value="<?= $row['short_description']; ?>"/></td>
<td><input type="number" name="regular_pricee" value="<?= $row['regular_price']; ?>"/></td>
<td><input type="submit" name="sil" value="kaydet" /></form>
</td>
</tr>
<?php endforeach; ?>
这是 update_product_connect.php 文件中的代码,用于发送 HTTP 调用来更新产品。
<?php
$dataname = $_POST['namee'];
$dataprice = $_POST['regular_pricee'];
$datadescription = $_POST['descriptions'];
$datashort_description = $_POST['short_descriptions'];
$data =
[
'name' => $_POST['namee'],
'regular_price' => $_POST['regular_pricee'],
'description' => $_POST['descriptions'],
'short_description' => $_POST['short_descriptions'],
];
?>
<?php echo json_encode($woocommerce->PUT('products', $data)); ?>
下面是我收到的错误的屏幕截图:
最佳答案
很可能是因为您没有输入要在 $woocommerce->PUT()
请求端点中更新的产品 ID。
我发现表单中既没有产品 SKU,也没有产品 ID。您需要添加它们,以便让 WooCommerce 知道哪些产品需要更新。
应该是这样的:
<?php
$product_id = 123;
echo json_encode($woocommerce->PUT("products/{$product_id}", $data));
?>
或者:
<?php
$sku = 'B-678';
$product_id = wc_get_product_id_by_sku( $sku );
echo json_encode($woocommerce->PUT("products/{$product_id}", $data));
?>
您可以在此处找到更多信息:
有用的答案
关于php - WooCommerce Rest API "PUT"请求发生 fatal error (更新产品),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/67608143/