简体   繁体   中英

Fatal error for WooCommerce Rest API "PUT" request (update product)

I am trying to update the product via the WooCommerce REST API. But I am getting an error.

This is the HTML form:

<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; ?>

And this is the code inside the update_product_connect.php file that sends the HTTP call to update the product.

<?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)); ?>

Below is a screenshot of the error I'm getting:

在此处输入图像描述

Most likely it is because you are not entering the product ID to be updated in the $woocommerce->PUT() request endpoint.

I see that in the form you have neither the product SKU nor the product ID. You will need to add them to let WooCommerce know which product needs to be updated.

It should be something like this:

<?php
$product_id = 123;
echo json_encode($woocommerce->PUT("products/{$product_id}", $data));
?>

or:

<?php
$sku = 'B-678';
$product_id = wc_get_product_id_by_sku( $sku );
echo json_encode($woocommerce->PUT("products/{$product_id}", $data));
?>

You can find more information here:

USEFUL ANSWERS

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM