提交表单上更新订单状态



我正在尝试创建一个表单,该表单在提交表单后自动更新订单状态。表格位于订单详细信息页面上,因此我假设当前页面ID等于OrderID。当我尝试进行表单提交时,它只是卡住了,什么也不会发生。我是要获得订单的问题,因此是要更新状态的订单。

我找到了gform_after_submission钩,并将其链接到订单详细信息页面上的表单(表单ID 7(。我一直在尝试使用全局$ WPDB;但不太确定那是正确的事情。

add_action( 'gform_after_submission', 'set_post_content', 10, 2 );
function update_order_submission( $order_id ) {
global $wpdb;
    //getting orderID
    $order = wc_get_order( $order_id );
    //changing order status
                $order = array();
                $order['ID'] = $order->ID;
                $order['post_status'] = 'wc-completed';
    //updating order
    wp_update_post( $order );
}

我希望一旦提交表格,则当前订单ID的订单状态(页面已提交的页面(将在Orderstatus完成后更新。

用以下内容替换代码 -

add_action( 'gform_after_submission', 'set_post_content', 10, 2 );
function update_order_submission( $entry, $form ) {
    global $post;
    $order_id = get_the_ID(); // getting orderID
    $order = wc_get_order( $order_id );
    if( $order ) {
        //changing order status
        $order->update_status( 'completed' );
    }
}

我通过使用$ _get [" id"]从URL获取orl urol来解决它,以获取URL参数。下面的functions.php中的代码解决了任务。

add_action( 'gform_after_submission_7', 'update_order_submission', 10, 2 );
function update_order_submission( $entry, $form ) {
global $post;
$order_id = $_GET["id"]; // getting orderID
$order = wc_get_order( $order_id );
if( $order ) {
//changing order status
$order->update_status( 'completed' );
}
}

最新更新