2017-12-12 1 views
7

사용자 지정 WordPress 플러그인 내에서 CloudConvert API를 사용하려고합니다. 내가 원했던 것은 모든 CloudConvert API 항목을 활성화 할 때 한 번만 초기화 한 다음 파일 변환에 필요한만큼 여러 번 사용할 수 있어야한다는 것입니다. 특히, 후크를 사용하여 WooCommerce 제품 페이지에 파일 변환 양식을 넣고 싶습니다.WordPress의 CloudConvert API 사용

여기 내 사용자 정의 플러그인 코드입니다 : PHP의 래퍼 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); 

). 나는 PHARs 사용 경험이별로 없기 때문에/wp-admin에 들어가야한다는 것을 알아내는 데는 시간이 걸렸습니다. - 찾을 경로를 설정하는 행운이 없었습니다. 내 플러그인 디렉토리에.

어쨌든 패키지화 된 PHAR 및 압축 해제 된 autoload.php 파일은 플러그인이 활성화시 오류를 발생시키지 않는다는 점에서로드가 잘되는 것 같습니다. add_file_conversion() 메소드가 실행될 때 대신,이 오류가 발생합니다 :

라인 19

가 나는 또한 $을 시도하는 전화의 새로운 API ("---")를 '입니다
[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 

전역 변수를 초기화하고 '초기화'를 '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을 만듭니다. 후크를 부착 당신은 클래스에 cloudconvert을 사용하는 기능을 래핑 할 수

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

, 당신이 함께 작동해야 할 때마다 해당 파일이 포함

  • 은 플러그인에서 autoload.php을 필요로 .

  • +0

    답장을 보내 주셔서 감사합니다. 작곡가는 내가 갖고있는 설치 문제를 해결했습니다. 나는 아직도 그것을 필요로하는 방식으로 실행시켜야하지만, 적어도 이제 나는 과거 초기화를 얻을 수있다. 감사! –