为了账号安全,请及时绑定邮箱和手机立即绑定

提交表单时更新订单状态

提交表单时更新订单状态

PHP
沧海一幻觉 2021-09-18 16:07:02
我正在尝试创建一个表单,该表单在提交表单后自动更新订单状态。该表单位于订单详细信息页面,因此我假设当前页面 ID 等于 orderID。当我尝试提交表单时,它只是卡住了,什么也没有发生。我假设获取 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(提交表单的页面)的订单状态将随着订单状态完成而更新。
查看完整描述

2 回答

?
桃花长相依

TA贡献1860条经验 获得超8个赞

用以下替换您的代码 -


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' );

    }

}


查看完整回答
反对 回复 2021-09-18
?
慕尼黑5688855

TA贡献1848条经验 获得超2个赞

我设法通过使用 $_GET["id"] 从 URL 获取 orderID 来获取 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' );

}

}


查看完整回答
反对 回复 2021-09-18
  • 2 回答
  • 0 关注
  • 145 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信