2016-04-19 12 views
2

Ich erstelle Produkte von externen in Woocommerce Website. Mein Code ist wie unten:Woocommerce Produkt api nicht akzeptieren Bilder in einigen URLs

if($_POST["Type"] == "CREATE"){ 
     $data = array(
      'product' => array(
       'title' => $_POST["Title"], 
       'type' => 'simple', 
       'regular_price' => $_POST["Regular_price"], 
       'description' => $_POST["Description"], 
       'short_description' => $_POST["Short_description"], 
       'categories' => array(
        $_POST['CategoryName'] 
       ), 
       'images' => array(
        array(
         'src' => $_POST["Image_url"], 
         'position' => 0 
        ), 
        array(
         'src' => $_POST["Image_url"], 
         'position' => 1 
        ) 
       ) 
      ) 
     ); 
    $res = $client->products->create($data); 
} 

Bei der Verwendung von $_POST["Image_url"] so wie http://app.test.net:8080/test/img/company-logo.png den folgenden Fehler gibt:

PHP Fatal error: Uncaught exception 'WC_API_Client_HTTP_Exception' with message 'Error: Error getting remote image 

Aber wenn wir eine normale URL geben (url enthält nicht die spezifische Port), so wie http://test.com/wp-content/uploads/2016/02/test.png es funktioniert richtig.

Wie löst man das?

+0

Ich habe nur für das Produkt getestet.Außerdem debug die API in der Server-Seite kann den Fehler nicht finden. –

+0

Nein mit ursprünglichen Thema direkt.Themename ist Blanco –

+0

meine Bilder in separaten Webserver läuft auf Port 8080 –

Antwort

2

In meinem Fall oben genannten Code in einer solchen URL (http://app.test.net:8080/api/v1/product.php). Aufruf dieser API von .net-Anwendung von (http://appname.test.net). Beide haben den gleichen Domain-Teil (test.net).

Da ist es schwierig, die URL zu woo Commerce zu finden.Ich habe die URL der .net-Anwendung von meinem Server-Konfiguration ändern (Ich habe virtuelle Hosts) .Dann funktioniert es richtig.

1

---- (Edit 2) ----

Sorry, aber Ihre Frage ist überhaupt nicht klar. Sie müssen es aktualisieren, weil es sehr unvollständig und unscharf ist. Das Gleiche gilt für den Titel.

die Medien Bilder in einem zweiten Server auf Port 8080 befinden, rechts ...

mich Formular ist das Problem hier in:

'images' => array(
    array(
     'src' => $_POST["Image_url"], 
     'position' => 0 
    ), 
    array(
     'src' => $_POST["Image_url"], 
     'position' => 0 
    ) 
) 

mit 'src' => $_POST["Image_url"]

Werfen Sie einen Blick auf diese interessante verwandtes Thema: Synchronize external database with woocommerce database

+0

Ich habe diese beiden Zeilen hinzugefügt, aber nicht funktioniert gleichen Fehler vorhanden.Meine Bilder sind nicht in der Woo-Commerce (Word Press) -Server Sie befinden sich auf einem separaten Server. –

+0

Ich habe eine .net-Anwendung. Es gibt Produkte in dieser Anwendung.In hören, dass ich diese Produkte zum woocommerce versenke. Dort für Bilder sind in externem server.Swing eine Woocommerce API Anfrage, um das gleiche Produkt in der Woocommerce von .net Seite zu erstellen. –

+0

Aber beim Erstellen von einem anderen Server (meine. NET-Anwendung enthalten Server) Bild richtig in meinem Code.Only wenn es einen Port enthält in der URL Es nicht zu nehmen (geben Fehler) .If entfernen "Bilder" => Array (Teil und setzen 'src' => $ _POST ["Image_url"] Produkt erfolgreich erstellen.Abbildung nicht nehmen Es erhalten Woocommerce Standardbild als Produktbild. –