2017-12-12 13 views
7

カスタムWordPressプラグイン内でCloudConvert APIを使用しようとしています。私がしたいのは、CloudConvert APIのすべてのものを起動時に一度だけ初期化し、ファイル変換のために必要に応じて複数回使用できるようにすることです。具体的には、フックを使用してWooCommerce製品ページにファイル変換フォームを配置したいと考えています。WordPressでCloudConvert APIを使用する

は、ここに私のカスタムプラグインのコードです:PHP Wrapperがhttps://github.com/cloudconvert/cloudconvert-phpで移動するための方法に見えたので、コードが現在示しているとして、彼らは(パッケージとパッケージされていないとしても、お勧めと私はPHARを使用してみました

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

)。私はPHARを使った経験があまりないので、それが見つかるには/ wp-adminに入る必要があることを理解するのに私はしばらく時間がかかりました - 私はそれが見えるようにインクルードパスを設定する運がありませんでした私のプラグインディレクトリにあります。

とにかく、パッケージ化されたPHARファイルと解凍されたautoload.phpファイルは、プラグインが起動時にエラーをスローしないという点でokです。 add_file_conversion()メソッドが実行されたときに代わりに、私はこのエラーを取得する:ライン19はへの呼び出しである

[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 

の新しいAPI( "---") '

また、私は$を作ってみましたapi globalとその初期化を 'use'ステートメントの下で直接動かしますが、add_file_conversion()関数内でそれを呼び出すと、$ apiがnullなのでエラーがスローされます。

私はそれがとてもシンプルであるべきだと思っていますが、まだそれを働かせる方法を見つけていません。誰でも助けてくれますか?

+0

'$ api = new Api(" --- ");'の部分を関数の 'use \ CloudConvert \ Api;'行の下に移動すると、正しく動作していますか? –

+0

cloudconvert APIを一度初期化する方法が不明です。余分なロジックがある場合は、そのコードも投稿してください。 –

答えて

5

ちょうど私のテストでテストしたところ、うまくいきました。インストールに何か問題があるように見えます。ここ は、それが作業を取得するために従うべき手順です:プラグインのルートディレクトリに

  1. 次の内容のcomposer.jsonファイルを作成します。同じディレクトリに

    { 
        "name": "Example Application", 
        "description": "This is an example", 
        "require": { 
         "cloudconvert/cloudconvert-php": "2.2.*" 
        } 
    } 
    
  2. 実行composer installコマンドを(中あなたが作曲家をインストールしていない場合は、hereからダウンロードしてインストールできます)。依存関係のあるcloudconvertをvendorディレクトリにインストールし、プロジェクトに含めるvendor/autoload.phpを作成します。

  3. は、プラグインからautoload.phpが必要です

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

あなたは、あなたがクラスでcloudconvertを使用する機能をラップフックを取り付け、そしてあなたがで動作する必要があるとき、そのファイルを含むことができ、 。

+0

返信いただきありがとうございます、実行中のコンポーザーは、私が持っていたインストールの問題を修正しました。私はまだそれが必要な方法で実行する必要がありますが、少なくとも私は実際に過去の初期化を取得することができます。ありがとう! –

関連する問題