提交表单时更新订单状态
Update order status on form submission
我正在尝试创建一个表单,该表单在提交表单后自动更新订单状态。该表单位于订单详细信息页面,因此我假设当前页面 ID 等于 orderID。当我尝试提交表单时,它只是卡住了,没有任何反应。我假设这是获取 orderID 的问题,因此在哪个订单上更新状态。
我找到了 gform_after_submission 挂钩并将其链接到放置在订单详细信息页面上的表单(表单 ID 7)。我一直在尝试使用 global $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(提交表单的页面)的订单状态将随着订单状态的完成而更新。
用以下内容替换您的代码 -
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 获取 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' );
}
}
我正在尝试创建一个表单,该表单在提交表单后自动更新订单状态。该表单位于订单详细信息页面,因此我假设当前页面 ID 等于 orderID。当我尝试提交表单时,它只是卡住了,没有任何反应。我假设这是获取 orderID 的问题,因此在哪个订单上更新状态。
我找到了 gform_after_submission 挂钩并将其链接到放置在订单详细信息页面上的表单(表单 ID 7)。我一直在尝试使用 global $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(提交表单的页面)的订单状态将随着订单状态的完成而更新。
用以下内容替换您的代码 -
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 获取 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' );
}
}