首页 > 解决方案 > 订单完成后,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
        
    }
}

该文件是在服务器中创建的,但是在状态更改为“完成”后如何下载文件?

我基本上需要浏览器来下载文件,就像下载任何其他文件一样。

标签: phpwordpresswoocommerce

解决方案


尝试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');
}

推荐阅读