php - 订单完成后,WooCommerce 将文件从服务器下载到客户端浏览器
问题描述
目前我在functions.php中有以下代码,它执行了两次,一次是在处理订单时,一次是在完成后。
add_action( 'woocommerce_order_status_changed', 'executeFile', 10, 3 );
function executeFile( $order_id, $old_status, $new_status ) {
if ( $new_status == "processing" ) {
file_put_contents(wp_upload_dir()['basedir'].'/filetodownload.txt', 'some text');
$order->update_status( 'completed', '', true );
}elseif ( $new_status == "completed" ) {
## Download Code
}
}
该文件是在服务器中创建的,但是在状态更改为“完成”后如何下载文件?
我基本上需要浏览器来下载文件,就像下载任何其他文件一样。
解决方案
尝试woocommerce_order_status_completed
动作挂钩。订单完成后,此挂钩将触发。检查下面的代码。
add_action( 'woocommerce_order_status_completed', 'executeFile', 10 );
function executeFile( $order_id ) {
$order = wc_get_order( $order_id );
file_put_contents(wp_upload_dir()['basedir'].'/filetodownload.txt', 'some text');
}
推荐阅读
- optimization - 快速评估决策森林
- python - 拆分数据 Python
- java - 我们可以创建一个数组,其中前两个元素是 int 类型,第三个元素本身就是一个数组吗?
- opengl-es - 在 EGL 上启用 4x MSAA 不会影响图像质量
- python - 围绕特定 GPS 坐标的中心散景瓷砖供应商地图
- reactjs - Formiz:React FormizStep 组件在刷新浏览器时不保留步骤
- xml - 使用 XSD 验证 XML - 意外的子错误
- terraform-provider-aws - 如何为 terraform 配置 aws sso?
- r - 使用循环在 R 中使用不同的数据集运行回归?
- java - 无法解决项目 Maven 的依赖关系