我正在使用Woocommerce REST API,需要将商品添加到商店。
以前工作过。现在我有这个错误:
stdClass Object ( [errors] => Array (
[0] => stdClass Object ( [code] =>
woocommerce_api_invalid_remote_product_image
[message] => Error getting remote image
https://www.google.lt/images/srpr/logo11w.png ) ) )
以下是通过WooCommerce REST API添加产品的文档 http://woothemes.github.io/woocommerce-rest-api-docs/#create-a-product
这是我的代码:
$dataArray = array(
'title' => 'xxxxxxxxxx',
'description' => 'description1',
'price' => '69',
'sku' => 'sku2',
'tags' => 'tag1, tag2, tag3',
'color' => array('red', 'blue'),
'size' => array('S', 'M'),
'image' => 'https://www.google.lt/images/srpr/logo11w.png'
);
public function addProduct($data)
{
$wc_api = $this->_getClient();
$newProductData = array(
'product' => array(
'title' => $data['title'],
'type' => 'variable',
'regular_price' => $data['price'],
'description' => $data['description'],
'sku' => $data['sku'],
'tags' => [ $data['tags'] ],
'images' => [ array('src' => $data['image'], 'position' => '0') ],
'virtual' => true
)
);
return $wc_api->create_product($newProductData);
}
我正在使用此客户端来调用REST API
https://github.com/kloon/WooCommerce-REST-API-Client-Library
EDITED: 如果我从wordpress获得图像,其中woocommerce托管,那么一切都很好。但是,如果我使用其他网站的链接,那么我会收到错误。
答案 0 :(得分:2)
我有一个类似的问题,而且cURL在WordPress中产生的错误导致woocommerce_api_invalid_remote_product_image
为{"errors":{"http_request_failed":["SSLRead() return error -9806"]},"error_data":[]}
,这意味着,根据Asaph https://stackoverflow.com/a/26538127/266531的说法,
php是使用Apple的安全版cURL编译的 在Yosemite下运输和URL请求的目标不是 支持SSLv3(可能由于POODLE而被禁用) 漏洞)。
我的猜测是,您在使用SSL而不是cURL时遇到错误。
您是否尝试使用http
链接,而不是感谢https
?
如果您可以调试服务器端,请查看第1700行左右class-wc-api-products.php
内发生的情况。这是产生错误的原因。您可能遇到了SSL错误。
如果是相同类型的SSL问题,则可能的解决方案是
http
代替https
)或答案 1 :(得分:2)
在Woocommerce REST API liblary中您还可以设置选项以不验证SSL。
$options = array(
'debug' => true,
'return_as_array' => false,
'validate_url' => false,
'timeout' => 60,
'ssl_verify' => false,
);