Verwenden der CloudConvert-API in WordPress

Lesezeit: 3 Minuten

Benutzeravatar von Jo Batkin
Jo Batkin

Ich versuche, die CloudConvert-API in einem benutzerdefinierten WordPress-Plugin zu verwenden. Ich möchte das gesamte CloudConvert-API-Zeug nur einmal bei der Aktivierung initialisieren und es dann bei Bedarf mehrmals für Dateikonvertierungen verwenden können. Insbesondere möchte ich mithilfe eines Hooks ein Dateikonvertierungsformular auf einer WooCommerce-Produktseite platzieren.

Hier ist mein benutzerdefinierter Plugin-Code:

require __DIR__ . '/vendor/autoload.php';
use \CloudConvert\Api;

function add_file_conversion()
{
    $api = new Api("---");

    $psd_process = $api->createProcess([
        "inputformat" => "psd",
        "outputformat" => "png",
    ]);

    $psd_process->start([
        "input" => "upload",
        "outputformat" => "png",
        "download" => true
    ]);
    ?>
    <form id="files-convert-form" action="<?php echo $psd_process->upload->url; ?>">
        <label>If you have a PSD or PDF file, please convert it </label>
        <input type="file" name="myfile" id="files-convert" autocomplete="off"/>
        <button type="button" class="btn btn-primary" id="action-convert">Convert</button>
    </form>
    <?php
}
add_action('woocommerce_single_product_summary', 'add_file_conversion', 25);

Der PHP-Wrapper unter https://github.com/cloudconvert/cloudconvert-php schien der Weg zu gehen, also habe ich versucht, das PHAR so zu verwenden, wie sie es empfehlen, sowohl als Paket als auch unverpackt (wie der Code derzeit zeigt). Ich habe nicht viel Erfahrung mit PHARs, also hat es eine Weile gedauert, bis ich herausgefunden habe, dass es in /wp-admin gehen muss, damit es gefunden wird – ich hatte kein Glück, den Include-Pfad festzulegen, damit es aussieht in meinem Plugin-Verzeichnis.

Wie auch immer, sowohl die gepackte PHAR- als auch die entpackte autoload.php-Datei scheinen in Ordnung zu laden, da das Plugin bei der Aktivierung keine Fehler auslöst. Stattdessen erhalte ich beim Ausführen der Methode add_file_conversion() diesen Fehler:

[12-Dec-2017 11:17:58 UTC] PHP Fatal error:  Class 'CloudConvert\Api' not found in /.../wp-content/plugins/cloudconvert-puzzlepic/cloudconvert-puzzlepic.php on line 19

wo Zeile 19 der Aufruf von ‘new API(“—“)’ ist

Ich habe auch versucht, $api global zu machen und seine Initialisierung direkt unter die ‘use’-Anweisung zu verschieben, aber dann wird beim Aufrufen innerhalb der Funktion add_file_conversion() ein Fehler ausgegeben, weil $api null ist.

Ich denke, es sollte so einfach sein, aber ich habe noch keinen Weg gefunden, es zum Laufen zu bringen. Kann jemand bitte helfen?

  • Wenn Sie sich bewegen $api = new Api("---"); Teil aus der Funktion, unterhalb der use \CloudConvert\Api; Linie, funktioniert es richtig?

    – Avag Sargsjan

    1. Januar 2018 um 14:49 Uhr

  • Sie sind sich nicht sicher, wie Sie die Cloudconvert-API einmal initialisieren. Bitte posten Sie diesen Code auch, wenn es eine zusätzliche Logik dafür gibt.

    – Avag Sargsjan

    1. Januar 2018 um 14:54 Uhr

Gerade bei mir getestet, funktioniert einwandfrei. Scheint bei der Installation etwas schief gelaufen zu sein. Hier sind die Schritte, die Sie befolgen müssen, damit es funktioniert:

  1. Erstellen Sie im Plug-in-Stammverzeichnis composer.json Datei mit folgendem Inhalt:

    {
        "name": "Example Application",
        "description": "This is an example",
        "require": {
            "cloudconvert/cloudconvert-php": "2.2.*"
        }
    }
    
  2. Lauf composer install Befehl im selben Verzeichnis (falls Sie Composer nicht installiert haben, können Sie es von herunterladen und installieren hier). Es installiert cloudconvert mit Abhängigkeiten in die vendor Verzeichnis und erstellt vendor/autoload.php die Sie in Ihr Projekt einbeziehen.

  3. erfordern autoload.php von Ihrem Plug-in:

    require __DIR__ . '/vendor/autoload.php';
    use \CloudConvert\Api;
    $api = new Api("your_api_key");
    var_dump($api); exit;
    

Sie können die Funktionalität, die Sie verwenden, cloudconvert in eine Klasse packen, Hooks anhängen und diese Datei einschließen, wann immer Sie damit arbeiten müssen.

  • Vielen Dank für die Antwort, Running Composer hat alle Installationsprobleme behoben, die ich hatte. Ich muss es noch so zum Laufen bringen, wie ich es brauche, aber zumindest kann ich die Initialisierung jetzt tatsächlich hinter mir lassen. Vielen Dank!

    – Jo Batkin

    20. Januar 2018 um 8:08 Uhr

1386720cookie-checkVerwenden der CloudConvert-API in WordPress

This website is using cookies to improve the user-friendliness. You agree by using the website further.

Privacy policy