sourcecode

WordPress에서 CloudConvert API 사용

codebag 2023. 2. 7. 19:52
반응형

WordPress에서 CloudConvert API 사용

커스텀 WordPress 플러그인 내에서 CloudConvert API를 사용하려고 합니다.저는 모든 CloudConvert API를 활성화 시 한 번만 초기화하여 파일 변환에 필요한 만큼 여러 번 사용할 수 있도록 하고 싶습니다.구체적으로는 후크를 사용하여 WooCommerce 제품 페이지에 파일 변환 폼을 넣고 싶습니다.

커스텀 플러그인 코드는 다음과 같습니다.

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

https://github.com/cloudconvert/cloudconvert-php의 PHP Wrapper가 가장 좋은 방법이라고 생각했기 때문에, PAR를 패키지와 언팩(현재 코드와 같이)으로 사용해 보았습니다.저는 PAR를 사용한 경험이 별로 없기 때문에 /wp-admin을 사용해야 찾을 수 있다는 것을 깨닫는데 시간이 걸렸습니다.플러그인 디렉토리에서 검색하기 위한 포함 경로를 설정할 수 없었습니다.

어쨌든 패키징된 PAR과 언팩된 자동 로드.플러그인이 활성화 시 오류를 발생시키지 않는다는 점에서 php 파일이 정상적으로 로드되는 것 같습니다.대신 add_file_conversion() 메서드가 실행되면 다음 오류가 나타납니다.

[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

여기서 line 19는 'new API(---)'에 대한 호출입니다.

또한 $api를 글로벌하게 만들어 'use' 문 아래로 직접 초기화를 이동하려고 했는데, $api가 늘이기 때문에 add_file_conversion() 함수 내에서 호출하면 오류가 발생합니다.

너무 간단해야 할 것 같은데 아직 작동시킬 방법을 찾지 못했어요.누가 좀 도와줄래요?

방금 제 쪽에서 테스트를 했는데 잘 되고 있어요.설치에 뭔가 문제가 있는 것 같아요.동작시키기 위한 순서는 다음과 같습니다.

  1. 플러그인 루트 디렉터리 생성composer.json다음 내용을 포함하는 파일:

    {
        "name": "Example Application",
        "description": "This is an example",
        "require": {
            "cloudconvert/cloudconvert-php": "2.2.*"
        }
    }
    
  2. 달려.composer install명령어는 같은 디렉토리에 있습니다(컴포저를 인스톨 하지 않은 경우는, 여기서 다운로드해 인스톨 할 수 있습니다).종속성이 있는 클라우드 컨버트를 에 설치합니다.vendor디렉토리 및 작성한다.vendor/autoload.php프로젝트에 포함시킬 수 있습니다.

  3. 자동 로드가 필요합니다.플러그인의 php:

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

클래스에서 사용하는 클라우드 변환 기능을 래핑하고, 후크를 연결하고, 작업이 필요할 때마다 해당 파일을 포함할 수 있습니다.

언급URL : https://stackoverflow.com/questions/47771720/using-cloudconvert-api-in-wordpress

반응형