Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/250.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在wordpress中使用PHP从动态下载URL获取文件_Php_Wordpress_Download - Fatal编程技术网

在wordpress中使用PHP从动态下载URL获取文件

在wordpress中使用PHP从动态下载URL获取文件,php,wordpress,download,Php,Wordpress,Download,我试图在wordpress order completed hook上自动下载一个文件(在本例中是PDF发票) 我第一次尝试使用wp_remote_get下载它,它看起来很简单,但没有成功(没有文件下载): 到目前为止,只要扩展名在URL中,我就可以使用cURL下载任何文件,但我无法使用我的动态下载URL,即此测试/演示URL: 但是,如果我用这个示例PDF替换$fileUrl,那么它就可以工作了 我已经考虑过实现某种错误/日志,以便能够查看代码可能导致的错误,但是我还没有弄清楚在将下载挂接到

我试图在wordpress order completed hook上自动下载一个文件(在本例中是PDF发票)

我第一次尝试使用wp_remote_get下载它,它看起来很简单,但没有成功(没有文件下载):

到目前为止,只要扩展名在URL中,我就可以使用cURL下载任何文件,但我无法使用我的动态下载URL,即此测试/演示URL:

但是,如果我用这个示例PDF替换$fileUrl,那么它就可以工作了


我已经考虑过实现某种错误/日志,以便能够查看代码可能导致的错误,但是我还没有弄清楚在将下载挂接到woocommerce order completed action的情况下如何执行此操作

使用
文件获取内容
从URL下载文件

$fileUrl='1!'https://www.moloni.com';
$saveTo=ABSPATH/wp content/plugins/my custom function master/logo.jpg'
文件内容(
$saveTo,
文件获取内容($fileUrl)
);


为什么不直接使用
file\u get\u contents($fileUrl)
而不是cUrl?只是别忘了把文件内容放在某个地方我以前试过文件内容,但它不起作用,但是你的代码在任何链接上都很好,即使我的动态下载一个也成功下载了!谢谢贾斯汀
function download_pdf_invoice__on_order_completed( $order_id, $order ) {

wp_remote_get( "http://www.africau.edu/images/default/sample.pdf" );

}
add_action( 'woocommerce_order_status_completed', 'download_pdf_invoice__on_order_completed', 20, 2 );
function  action_woocommerce_admin_order_get_invoice_pdf($url){
//The resource that we want to download.
$fileUrl = 'https://www.moloni.com/downloads/index.php?action=getDownload&h=b75b2d99c08c56480da0c5dff4900b4a&d=189279574&e=teste@moloni.com&i=1&t=n';

//The path & filename to save to.
$saveTo = '/myserver/public_html/wp-content/plugins/my-custom-functionality-master/logo.jpg';

//Open file handler.
$fp = fopen($saveTo, 'w+');

//If $fp is FALSE, something went wrong.
if($fp === false){
    throw new Exception('Could not open: ' . $saveTo);
}

//Create a cURL handle.
$ch = curl_init($fileUrl);

//Pass our file handle to cURL.
curl_setopt($ch, CURLOPT_FILE, $fp);

//Timeout if the file doesn't download after 20 seconds.
curl_setopt($ch, CURLOPT_TIMEOUT, 20);

//Execute the request.
curl_exec($ch);

//Get the HTTP status code.
$statusCode = curl_getinfo($ch, CURLINFO_HTTP_CODE);

//Close the cURL handler.
curl_close($ch);


}
   

add_action( 'woocommerce_order_status_completed', 'action_woocommerce_admin_order_get_invoice_pdf', 20, 2 );