首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >提交表单时更新订单状态

提交表单时更新订单状态
EN

Stack Overflow用户
提问于 2019-07-01 00:51:09
回答 2查看 249关注 0票数 0

我正在尝试创建一个表单,一旦表单提交,它会自动更新订单状态。表单位于订单详细信息页面,因此我假设当前页面ID等于orderID。当我尝试提交表单时,它只是卡住了,什么也没有发生。我在想,这是一个关于获取orderID的问题,因此需要更新哪个订单的状态。

我已经找到了gform_after_submission钩子,并将其链接到订单详细信息页面上的表单(表单ID 7)。我一直在尝试使用全局$wpdb;但不太确定这样做是否正确。

代码语言:javascript
复制
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 (提交表单的页面)的订单状态将被更新为已完成的订单状态。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2019-07-01 19:04:53

我设法解决了这个问题,通过使用$_GET"id“来获取URL参数,从而从url中获取orderID。下面的functions.php代码解决了这个问题。

代码语言:javascript
复制
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' );
}
}
票数 0
EN

Stack Overflow用户

发布于 2019-07-01 13:48:57

用下面的代码替换你的代码-

代码语言:javascript
复制
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' );
    }
}
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/56826538

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档