在 WordPress 中使用 CloudConvert API
Using CloudConvert API in WordPress
我正在尝试在自定义 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 行是对 'new API("---")'
的调用
我还尝试将 $api 设为全局并将其初始化直接向上移动到 'use' 语句下,但随后在 add_file_conversion() 函数中调用它会引发错误,因为 $ api 为空。
我觉得它应该如此简单,但还没有找到让它工作的方法。有人可以帮忙吗?
刚刚在我这边进行了测试,它工作正常。看起来安装出了点问题。
以下是使其正常工作的步骤:
在插件根目录创建composer.json
文件,内容如下:
{
"name": "Example Application",
"description": "This is an example",
"require": {
"cloudconvert/cloudconvert-php": "2.2.*"
}
}
运行 composer install
命令在同一目录下(如果你还没有安装composer,你可以从here下载并安装)。它会将带有依赖项的 cloudconvert 安装到 vendor
目录中,并将创建 vendor/autoload.php
,您将把它包含在您的项目中。
需要 autoload.php 来自您的插件:
require __DIR__ . '/vendor/autoload.php';
use \CloudConvert\Api;
$api = new Api("your_api_key");
var_dump($api); exit;
您可以将使用 cloudconvert 的功能包装在 class 中,附加挂钩,并在需要操作时包含该文件。
我正在尝试在自定义 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 行是对 'new API("---")'
的调用我还尝试将 $api 设为全局并将其初始化直接向上移动到 'use' 语句下,但随后在 add_file_conversion() 函数中调用它会引发错误,因为 $ api 为空。
我觉得它应该如此简单,但还没有找到让它工作的方法。有人可以帮忙吗?
刚刚在我这边进行了测试,它工作正常。看起来安装出了点问题。 以下是使其正常工作的步骤:
在插件根目录创建
composer.json
文件,内容如下:{ "name": "Example Application", "description": "This is an example", "require": { "cloudconvert/cloudconvert-php": "2.2.*" } }
运行
composer install
命令在同一目录下(如果你还没有安装composer,你可以从here下载并安装)。它会将带有依赖项的 cloudconvert 安装到vendor
目录中,并将创建vendor/autoload.php
,您将把它包含在您的项目中。需要 autoload.php 来自您的插件:
require __DIR__ . '/vendor/autoload.php'; use \CloudConvert\Api; $api = new Api("your_api_key"); var_dump($api); exit;
您可以将使用 cloudconvert 的功能包装在 class 中,附加挂钩,并在需要操作时包含该文件。