在WordPress中使用CloudConvert API

问题描述 投票:8回答:1

我试图在自定义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似乎还有很长的路要走,所以我尝试使用它们推荐的PHAR,无论是作为包还是未打包(如代码所示)。我没有太多使用PHAR的经验所以我花了一段时间才弄清楚它需要进入/ wp-admin才能找到它 - 我没有任何运气设置包含路径让它看起来在我的插件目录中。

无论如何,打包的PHAR和解压缩的autoload.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

第19行是对“新API(”---“)”的调用

我也尝试将$ api全局化并直接在'use'语句下进行初始化,但是在add_file_conversion()函数中调用它会引发错误,因为$ api为null。

我觉得应该这么简单,但还没有办法让它运转起来。有人可以帮忙吗?

wordpress cloudconvert
1个回答
5
投票

刚刚测试完毕,它运行正常。看起来安装出了问题。以下是使其工作的步骤:

  1. 在插件根目录中,使用以下内容创建composer.json文件: { "name": "Example Application", "description": "This is an example", "require": { "cloudconvert/cloudconvert-php": "2.2.*" } }
  2. 在同一目录下运行composer install命令(如果你没有安装composer,你可以从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的功能,附加挂钩,并在需要操作时包含该文件。

© www.soinside.com 2019 - 2024. All rights reserved.