所以我觉得这很奇怪,但也许有人可以帮忙。
当wordpress网站的管理员更新后端的订单时,我需要保存来自远程服务器的传入文件。
我正在使用的钩子是
add_action( 'save_post', 'courier_save_wc_order_fields', 10, 2 );
现在一切正常,我可以根据需要更新post_meta。
当要保存传入的PDF文件时,事情就变了。
在此垂直钩子内(我只发现过一个),我无法保存文件。
这是因为这是woocommerce即将保存到DB的时候吗?
我什至删除了所有其他代码并将其保留为
add_action( 'save_post', 'courier_save_wc_order_fields', 10, 2 );
function courier_save_wc_order_fields( $post_id ) {
file_put_contents('incommingdata.txt', print_r("This is random text",true));
}
同样,这是唯一发生此情况的地方。 有没有更好的挂钩可以解决这个问题?
我需要一个在管理员订单页面中检查meta_box值并相应更新订单元的功能,同时与远程服务器进行通信以保存和检索文件。...除此文件保存外,其他所有方法都有效。
旁注:
$path="my_file_received.pdf"
$decodedString = base64_decode($base64string);
$fileHandle = fopen($path, "w");
if ($fileHandle) {
fwrite($fileHandle, $decodedString);
fclose($fileHandle);
return 1;
}
不显示错误,但文件也不存在。
答案 0 :(得分:0)
所以我找到了问题的答案...
save_post
钩子的URL与我使用的其他钩子不同。
所以我通常使用
file_put_contents('incommingdata.txt', print_r("This is random text",true));
我总是将文件保存在插件文件夹或主题文件夹或基本URL中。
此挂钩的URL是wp-admin文件夹,而不是基本域或插件文件夹。
要解决此问题,并确保我将解决方案保存在正确的文件夹中,
$this_dir_of_my_file = dirname(__FILE__);
$this_dir_of_my_file = $this_dir_of_my_file . "/Example.txt";
file_put_contents($this_dir_of_mine, print_r("This is random text in my file.",true));